diff --git a/.gitignore b/.gitignore
index dedb7eb01..999472070 100644
--- a/.gitignore
+++ b/.gitignore
@@ -48,3 +48,4 @@ tools/
.DS_Store
.vscode/
+*.user
diff --git a/Samples/Forms/Core/FormsSample.csproj b/Samples/Forms/Core/FormsSample.csproj
index 55bb60631..7f6b9eb96 100644
--- a/Samples/Forms/Core/FormsSample.csproj
+++ b/Samples/Forms/Core/FormsSample.csproj
@@ -54,6 +54,6 @@
-
+
\ No newline at end of file
diff --git a/Samples/Forms/Droid/FormsSample.Droid.csproj b/Samples/Forms/Droid/FormsSample.Droid.csproj
index 7b6757de4..d11f473e1 100644
--- a/Samples/Forms/Droid/FormsSample.Droid.csproj
+++ b/Samples/Forms/Droid/FormsSample.Droid.csproj
@@ -15,7 +15,7 @@
True
FormsSample.Droid
Properties\AndroidManifest.xml
- v7.1
+ v9.0
@@ -98,6 +98,6 @@
-
+
\ No newline at end of file
diff --git a/Samples/Forms/GTK/FormsSample.GTK.csproj b/Samples/Forms/GTK/FormsSample.GTK.csproj
new file mode 100644
index 000000000..8a5f32541
--- /dev/null
+++ b/Samples/Forms/GTK/FormsSample.GTK.csproj
@@ -0,0 +1,131 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {2BC36FB5-2164-4C6E-A2BC-4BF7101AE94F}
+ WinExe
+ FormsSample.GTK
+ FormsSample.GTK
+ v4.7
+
+
+ true
+ full
+ false
+ bin\Debug
+ DEBUG;
+ prompt
+ 4
+
+
+ true
+ bin\Release
+ prompt
+ 4
+
+
+
+
+ ..\packages\Xamarin.Forms.Platform.GTK.3.0.0.446417\lib\net45\OpenTK.dll
+ True
+
+
+
+ ..\..\..\Source\ZXing.Net.Mobile.GTK\Libs\gtk-sharp\gtk-sharp-2.0\gdk-sharp.dll
+
+
+ ..\..\..\Source\ZXing.Net.Mobile.GTK\Libs\gtk-sharp\gtk-sharp-2.0\glib-sharp.dll
+
+
+ ..\..\..\Source\ZXing.Net.Mobile.GTK\Libs\gtk-sharp\gtk-sharp-2.0\gtk-sharp.dll
+
+
+ ..\..\..\Source\ZXing.Net.Mobile.GTK\Libs\gtk-sharp\gtk-sharp-2.0\glade-sharp.dll
+
+
+ ..\..\..\Source\ZXing.Net.Mobile.GTK\Libs\gtk-sharp\gtk-sharp-2.0\pango-sharp.dll
+
+
+ ..\..\..\Source\ZXing.Net.Mobile.GTK\Libs\gtk-sharp\gtk-sharp-2.0\pango-sharp.dll
+
+
+ ..\..\..\Source\ZXing.Net.Mobile.GTK\Libs\gtk-sharp\gtk-sharp-2.0\atk-sharp.dll
+
+
+ ..\..\..\Source\ZXing.Net.Mobile.GTK\Libs\gtk-sharp\Mono.Cairo\Mono.Cairo.dll
+
+
+ ..\..\..\Source\ZXing.Net.Mobile.GTK\Libs\gtk-sharp\Mono.Posix\Mono.Posix.dll
+
+
+ ..\packages\Xamarin.Forms.Platform.GTK.3.0.0.446417\lib\net45\webkit-sharp.dll
+ True
+
+
+ ..\packages\Xamarin.Forms.3.0.0.446417\lib\netstandard2.0\Xamarin.Forms.Core.dll
+ True
+
+
+ ..\packages\Xamarin.Forms.3.0.0.446417\lib\netstandard2.0\Design\Xamarin.Forms.Core.Design.dll
+ True
+
+
+ ..\packages\Xamarin.Forms.3.0.0.446417\lib\netstandard2.0\Xamarin.Forms.Platform.dll
+ True
+
+
+ ..\packages\Xamarin.Forms.Platform.GTK.3.0.0.446417\lib\net45\Xamarin.Forms.Platform.GTK.dll
+ True
+
+
+ ..\packages\Xamarin.Forms.3.0.0.446417\lib\netstandard2.0\Xamarin.Forms.Xaml.dll
+ True
+
+
+ ..\packages\Xamarin.Forms.3.0.0.446417\lib\netstandard2.0\Design\Xamarin.Forms.Xaml.Design.dll
+ True
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {7528dd0a-1781-47f4-adbf-eeddb011f6bb}
+ ZXing.Net.Mobile.Core
+
+
+ {7aa0abcf-dbf1-4190-8e82-44dd736be2f3}
+ ZXing.Net.Mobile.Forms.GTK
+
+
+ {007476ef-d7ca-4198-bded-3544d0ebd546}
+ ZXing.Net.Mobile.GTK
+
+
+ {24b441f2-cbe9-4405-9fd0-72ebcbea0ec3}
+ zxing.portable
+
+
+ {0daf97ca-02db-4e4f-9163-b8f14eae2d90}
+ FormsSample
+
+
+
+
+
+ This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105.The missing file is {0}.
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Samples/Forms/GTK/OpenTK.dll.config b/Samples/Forms/GTK/OpenTK.dll.config
new file mode 100644
index 000000000..7098d39e9
--- /dev/null
+++ b/Samples/Forms/GTK/OpenTK.dll.config
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Samples/Forms/GTK/Program.cs b/Samples/Forms/GTK/Program.cs
new file mode 100644
index 000000000..a00646399
--- /dev/null
+++ b/Samples/Forms/GTK/Program.cs
@@ -0,0 +1,24 @@
+using System;
+using Xamarin.Forms;
+using Xamarin.Forms.Platform.GTK;
+using Application = Gtk.Application;
+
+namespace FormsSample.GTK
+{
+ class MainClass
+ {
+ public static void Main(string[] args)
+ {
+ Application.Init();
+ Forms.Init();
+ ZXing.Net.Mobile.Forms.GTK.Platform.Init ();
+
+ var app = new App();
+ var window = new FormsWindow();
+ window.LoadApplication(app);
+ window.SetApplicationTitle("GTK example");
+ window.Show();
+ Application.Run();
+ }
+ }
+}
diff --git a/Samples/Forms/GTK/Properties/AssemblyInfo.cs b/Samples/Forms/GTK/Properties/AssemblyInfo.cs
new file mode 100644
index 000000000..6da8083d6
--- /dev/null
+++ b/Samples/Forms/GTK/Properties/AssemblyInfo.cs
@@ -0,0 +1,26 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+// Information about this assembly is defined by the following attributes.
+// Change them to the values specific to your project.
+
+[assembly: AssemblyTitle("FormsSample.GTK")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("")]
+[assembly: AssemblyCopyright("${AuthorCopyright}")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}".
+// The form "{Major}.{Minor}.*" will automatically update the build and revision,
+// and "{Major}.{Minor}.{Build}.*" will update just the revision.
+
+[assembly: AssemblyVersion("1.0.*")]
+
+// The following attributes are used to specify the signing key for the assembly,
+// if desired. See the Mono documentation for more information about signing.
+
+//[assembly: AssemblyDelaySign(false)]
+//[assembly: AssemblyKeyFile("")]
diff --git a/Samples/Forms/GTK/packages.config b/Samples/Forms/GTK/packages.config
new file mode 100644
index 000000000..9861b1f7c
--- /dev/null
+++ b/Samples/Forms/GTK/packages.config
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/Samples/Forms/GTK/webkit-sharp.dll.config b/Samples/Forms/GTK/webkit-sharp.dll.config
new file mode 100644
index 000000000..438480176
--- /dev/null
+++ b/Samples/Forms/GTK/webkit-sharp.dll.config
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/Samples/Forms/Sample.Forms.sln b/Samples/Forms/Sample.Forms.sln
index c91c00639..0c2318d3f 100644
--- a/Samples/Forms/Sample.Forms.sln
+++ b/Samples/Forms/Sample.Forms.sln
@@ -31,6 +31,12 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ZXing.Net.Mobile.Forms.iOS"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "zxing.portable", "..\..\Source\ZXing.Net\Source\lib\zxing.portable.csproj", "{24B441F2-CBE9-4405-9FD0-72EBCBEA0EC3}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ZXing.Net.Mobile.GTK", "..\..\Source\ZXing.Net.Mobile.GTK\ZXing.Net.Mobile.GTK.csproj", "{007476EF-D7CA-4198-BDED-3544D0EBD546}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ZXing.Net.Mobile.Forms.GTK", "..\..\Source\ZXing.Net.Mobile.Forms.GTK\ZXing.Net.Mobile.Forms.GTK.csproj", "{7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FormsSample.GTK", "GTK\FormsSample.GTK.csproj", "{2BC36FB5-2164-4C6E-A2BC-4BF7101AE94F}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -376,6 +382,78 @@ Global
{24B441F2-CBE9-4405-9FD0-72EBCBEA0EC3}.Release|x64.Build.0 = Release|Any CPU
{24B441F2-CBE9-4405-9FD0-72EBCBEA0EC3}.Release|x86.ActiveCfg = Release|Any CPU
{24B441F2-CBE9-4405-9FD0-72EBCBEA0EC3}.Release|x86.Build.0 = Release|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.Debug|ARM.Build.0 = Debug|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.Debug|x64.Build.0 = Debug|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.Debug|x86.Build.0 = Debug|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.Release|Any CPU.Build.0 = Release|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.Release|ARM.ActiveCfg = Release|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.Release|ARM.Build.0 = Release|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.Release|iPhone.Build.0 = Release|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.Release|x64.ActiveCfg = Release|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.Release|x64.Build.0 = Release|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.Release|x86.ActiveCfg = Release|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.Release|x86.Build.0 = Release|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.Debug|ARM.Build.0 = Debug|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.Debug|x64.Build.0 = Debug|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.Debug|x86.Build.0 = Debug|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.Release|Any CPU.Build.0 = Release|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.Release|ARM.ActiveCfg = Release|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.Release|ARM.Build.0 = Release|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.Release|iPhone.Build.0 = Release|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.Release|x64.ActiveCfg = Release|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.Release|x64.Build.0 = Release|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.Release|x86.ActiveCfg = Release|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.Release|x86.Build.0 = Release|Any CPU
+ {2BC36FB5-2164-4C6E-A2BC-4BF7101AE94F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {2BC36FB5-2164-4C6E-A2BC-4BF7101AE94F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {2BC36FB5-2164-4C6E-A2BC-4BF7101AE94F}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {2BC36FB5-2164-4C6E-A2BC-4BF7101AE94F}.Debug|ARM.Build.0 = Debug|Any CPU
+ {2BC36FB5-2164-4C6E-A2BC-4BF7101AE94F}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {2BC36FB5-2164-4C6E-A2BC-4BF7101AE94F}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {2BC36FB5-2164-4C6E-A2BC-4BF7101AE94F}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {2BC36FB5-2164-4C6E-A2BC-4BF7101AE94F}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {2BC36FB5-2164-4C6E-A2BC-4BF7101AE94F}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {2BC36FB5-2164-4C6E-A2BC-4BF7101AE94F}.Debug|x64.Build.0 = Debug|Any CPU
+ {2BC36FB5-2164-4C6E-A2BC-4BF7101AE94F}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {2BC36FB5-2164-4C6E-A2BC-4BF7101AE94F}.Debug|x86.Build.0 = Debug|Any CPU
+ {2BC36FB5-2164-4C6E-A2BC-4BF7101AE94F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {2BC36FB5-2164-4C6E-A2BC-4BF7101AE94F}.Release|Any CPU.Build.0 = Release|Any CPU
+ {2BC36FB5-2164-4C6E-A2BC-4BF7101AE94F}.Release|ARM.ActiveCfg = Release|Any CPU
+ {2BC36FB5-2164-4C6E-A2BC-4BF7101AE94F}.Release|ARM.Build.0 = Release|Any CPU
+ {2BC36FB5-2164-4C6E-A2BC-4BF7101AE94F}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {2BC36FB5-2164-4C6E-A2BC-4BF7101AE94F}.Release|iPhone.Build.0 = Release|Any CPU
+ {2BC36FB5-2164-4C6E-A2BC-4BF7101AE94F}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {2BC36FB5-2164-4C6E-A2BC-4BF7101AE94F}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {2BC36FB5-2164-4C6E-A2BC-4BF7101AE94F}.Release|x64.ActiveCfg = Release|Any CPU
+ {2BC36FB5-2164-4C6E-A2BC-4BF7101AE94F}.Release|x64.Build.0 = Release|Any CPU
+ {2BC36FB5-2164-4C6E-A2BC-4BF7101AE94F}.Release|x86.ActiveCfg = Release|Any CPU
+ {2BC36FB5-2164-4C6E-A2BC-4BF7101AE94F}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -385,5 +463,6 @@ Global
{69094754-B453-4BFA-9609-3DE9C9185157} = {AB98471E-2FC8-405D-BB69-D80AE6AE40B9}
{0DAF97CA-02DB-4E4F-9163-B8F14EAE2D90} = {AB98471E-2FC8-405D-BB69-D80AE6AE40B9}
{776B89DF-2915-4701-B8A3-127D3340C77F} = {AB98471E-2FC8-405D-BB69-D80AE6AE40B9}
+ {2BC36FB5-2164-4C6E-A2BC-4BF7101AE94F} = {AB98471E-2FC8-405D-BB69-D80AE6AE40B9}
EndGlobalSection
EndGlobal
diff --git a/Samples/Forms/WindowsUniversal/project.json b/Samples/Forms/WindowsUniversal/project.json
index 140f37629..96c342fb3 100644
--- a/Samples/Forms/WindowsUniversal/project.json
+++ b/Samples/Forms/WindowsUniversal/project.json
@@ -4,7 +4,7 @@
"Microsoft.ApplicationInsights.PersistenceChannel": "1.2.3",
"Microsoft.ApplicationInsights.WindowsApps": "1.1.1",
"Microsoft.NETCore.UniversalWindowsPlatform": "6.0.1",
- "Xamarin.Forms": "2.4.0.18342"
+ "Xamarin.Forms": "3.0.0.446417"
},
"frameworks": {
"uap10.0": {}
diff --git a/Samples/Forms/iOS/FormsSample.iOS.csproj b/Samples/Forms/iOS/FormsSample.iOS.csproj
index 351585a19..3634fa8f2 100644
--- a/Samples/Forms/iOS/FormsSample.iOS.csproj
+++ b/Samples/Forms/iOS/FormsSample.iOS.csproj
@@ -126,6 +126,6 @@
-
+
\ No newline at end of file
diff --git a/Samples/GTK/MainWindow.cs b/Samples/GTK/MainWindow.cs
new file mode 100644
index 000000000..27d345542
--- /dev/null
+++ b/Samples/GTK/MainWindow.cs
@@ -0,0 +1,31 @@
+using System;
+using Gdk;
+using Gtk;
+using ZXing.Net.Mobile.GTK;
+
+public partial class MainWindow : Gtk.Window
+{
+ public MainWindow() : base(Gtk.WindowType.Toplevel)
+ {
+ Build();
+ var barcodeWriter = new BarcodeWriter
+ {
+ Format = ZXing.BarcodeFormat.QR_CODE,
+ Options = new ZXing.Common.EncodingOptions
+ {
+ Width = 300,
+ Height = 300,
+ Margin = 10
+ }
+ };
+
+ var barcode = barcodeWriter.Write("ZXing.Net.Mobile");
+ barcodeImage.Pixbuf = barcode;
+ }
+
+ protected void OnDeleteEvent(object sender, DeleteEventArgs a)
+ {
+ Application.Quit();
+ a.RetVal = true;
+ }
+}
diff --git a/Samples/GTK/Program.cs b/Samples/GTK/Program.cs
new file mode 100644
index 000000000..1737331b0
--- /dev/null
+++ b/Samples/GTK/Program.cs
@@ -0,0 +1,16 @@
+using System;
+using Gtk;
+
+namespace Sample.GTK
+{
+ class MainClass
+ {
+ public static void Main(string[] args)
+ {
+ Application.Init();
+ MainWindow win = new MainWindow();
+ win.Show();
+ Application.Run();
+ }
+ }
+}
diff --git a/Samples/GTK/Properties/AssemblyInfo.cs b/Samples/GTK/Properties/AssemblyInfo.cs
new file mode 100644
index 000000000..f802df36b
--- /dev/null
+++ b/Samples/GTK/Properties/AssemblyInfo.cs
@@ -0,0 +1,26 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+// Information about this assembly is defined by the following attributes.
+// Change them to the values specific to your project.
+
+[assembly: AssemblyTitle("Sample.GTK")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("")]
+[assembly: AssemblyCopyright("${AuthorCopyright}")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}".
+// The form "{Major}.{Minor}.*" will automatically update the build and revision,
+// and "{Major}.{Minor}.{Build}.*" will update just the revision.
+
+[assembly: AssemblyVersion("1.0.*")]
+
+// The following attributes are used to specify the signing key for the assembly,
+// if desired. See the Mono documentation for more information about signing.
+
+//[assembly: AssemblyDelaySign(false)]
+//[assembly: AssemblyKeyFile("")]
diff --git a/Samples/GTK/Sample.GTK.csproj b/Samples/GTK/Sample.GTK.csproj
new file mode 100644
index 000000000..6401aa8b9
--- /dev/null
+++ b/Samples/GTK/Sample.GTK.csproj
@@ -0,0 +1,89 @@
+
+
+
+ Debug
+ x86
+ {E2709E25-2837-4F2C-B7D5-54CD0CBEB063}
+ WinExe
+ Sample.GTK
+ Sample.GTK
+ v4.7
+
+
+ true
+ full
+ false
+ bin\Debug
+ DEBUG;
+ prompt
+ 4
+ x86
+
+
+ true
+ bin\Release
+ prompt
+ 4
+ x86
+
+
+
+ ..\..\Source\ZXing.Net.Mobile.GTK\Libs\gtk-sharp\gtk-sharp-2.0\atk-sharp.dll
+
+
+ ..\..\Source\ZXing.Net.Mobile.GTK\Libs\gtk-sharp\gtk-sharp-2.0\gdk-sharp.dll
+
+
+ ..\..\Source\ZXing.Net.Mobile.GTK\Libs\gtk-sharp\gtk-sharp-2.0\glade-sharp.dll
+
+
+ ..\..\Source\ZXing.Net.Mobile.GTK\Libs\gtk-sharp\gtk-sharp-2.0\glib-sharp.dll
+
+
+ ..\..\Source\ZXing.Net.Mobile.GTK\Libs\gtk-sharp\gtk-sharp-2.0\gtk-dotnet.dll
+
+
+ ..\..\Source\ZXing.Net.Mobile.GTK\Libs\gtk-sharp\gtk-sharp-2.0\gtk-sharp.dll
+
+
+ ..\..\Source\ZXing.Net.Mobile.GTK\Libs\gtk-sharp\Mono.Posix\Mono.Posix.dll
+
+
+ ..\..\Source\ZXing.Net.Mobile.GTK\Libs\OpenTK\OpenTK.dll
+
+
+ ..\..\Source\ZXing.Net.Mobile.GTK\Libs\gtk-sharp\gtk-sharp-2.0\pango-sharp.dll
+
+
+
+ ..\..\Source\ZXing.Net.Mobile.GTK\Libs\webkit-sharp\webkit-sharp.dll
+
+
+
+
+ gui.stetic
+
+
+
+
+
+
+
+
+
+
+
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}
+ ZXing.Net.Mobile.GTK
+
+
+ {24B441F2-CBE9-4405-9FD0-72EBCBEA0EC3}
+ zxing.portable
+
+
+ {7528DD0A-1781-47F4-ADBF-EEDDB011F6BB}
+ ZXing.Net.Mobile.Core
+
+
+
+
\ No newline at end of file
diff --git a/Samples/GTK/Sample.GTK.sln b/Samples/GTK/Sample.GTK.sln
new file mode 100644
index 000000000..02555a304
--- /dev/null
+++ b/Samples/GTK/Sample.GTK.sln
@@ -0,0 +1,35 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 15
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sample.GTK", "Sample.GTK.csproj", "{E2709E25-2837-4F2C-B7D5-54CD0CBEB063}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ZXing.Net.Mobile.Core", "..\..\Source\ZXing.Net.Mobile.Core\ZXing.Net.Mobile.Core.csproj", "{7528DD0A-1781-47F4-ADBF-EEDDB011F6BB}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ZXing.Net.Mobile.GTK", "..\..\Source\ZXing.Net.Mobile.GTK\ZXing.Net.Mobile.GTK.csproj", "{007476EF-D7CA-4198-BDED-3544D0EBD546}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "zxing.portable", "..\..\Source\ZXing.Net\Source\lib\zxing.portable.csproj", "{24B441F2-CBE9-4405-9FD0-72EBCBEA0EC3}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|x86 = Debug|x86
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {E2709E25-2837-4F2C-B7D5-54CD0CBEB063}.Debug|x86.ActiveCfg = Debug|x86
+ {E2709E25-2837-4F2C-B7D5-54CD0CBEB063}.Debug|x86.Build.0 = Debug|x86
+ {E2709E25-2837-4F2C-B7D5-54CD0CBEB063}.Release|x86.ActiveCfg = Release|x86
+ {E2709E25-2837-4F2C-B7D5-54CD0CBEB063}.Release|x86.Build.0 = Release|x86
+ {7528DD0A-1781-47F4-ADBF-EEDDB011F6BB}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {7528DD0A-1781-47F4-ADBF-EEDDB011F6BB}.Debug|x86.Build.0 = Debug|Any CPU
+ {7528DD0A-1781-47F4-ADBF-EEDDB011F6BB}.Release|x86.ActiveCfg = Release|Any CPU
+ {7528DD0A-1781-47F4-ADBF-EEDDB011F6BB}.Release|x86.Build.0 = Release|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.Debug|x86.Build.0 = Debug|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.Release|x86.ActiveCfg = Release|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.Release|x86.Build.0 = Release|Any CPU
+ {24B441F2-CBE9-4405-9FD0-72EBCBEA0EC3}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {24B441F2-CBE9-4405-9FD0-72EBCBEA0EC3}.Debug|x86.Build.0 = Debug|Any CPU
+ {24B441F2-CBE9-4405-9FD0-72EBCBEA0EC3}.Release|x86.ActiveCfg = Release|Any CPU
+ {24B441F2-CBE9-4405-9FD0-72EBCBEA0EC3}.Release|x86.Build.0 = Release|Any CPU
+ EndGlobalSection
+EndGlobal
diff --git a/Samples/GTK/gtk-gui/MainWindow.cs b/Samples/GTK/gtk-gui/MainWindow.cs
new file mode 100644
index 000000000..50aef57b7
--- /dev/null
+++ b/Samples/GTK/gtk-gui/MainWindow.cs
@@ -0,0 +1,28 @@
+
+// This file has been generated by the GUI designer. Do not modify.
+
+public partial class MainWindow
+{
+ private global::Gtk.Image barcodeImage;
+
+ protected virtual void Build()
+ {
+ global::Stetic.Gui.Initialize(this);
+ // Widget MainWindow
+ this.Name = "MainWindow";
+ this.Title = global::Mono.Unix.Catalog.GetString("MainWindow");
+ this.WindowPosition = ((global::Gtk.WindowPosition)(4));
+ // Container child MainWindow.Gtk.Container+ContainerChild
+ this.barcodeImage = new global::Gtk.Image();
+ this.barcodeImage.Name = "barcodeImage";
+ this.Add(this.barcodeImage);
+ if ((this.Child != null))
+ {
+ this.Child.ShowAll();
+ }
+ this.DefaultWidth = 400;
+ this.DefaultHeight = 300;
+ this.Show();
+ this.DeleteEvent += new global::Gtk.DeleteEventHandler(this.OnDeleteEvent);
+ }
+}
diff --git a/Samples/GTK/gtk-gui/generated.cs b/Samples/GTK/gtk-gui/generated.cs
new file mode 100644
index 000000000..4842e95d7
--- /dev/null
+++ b/Samples/GTK/gtk-gui/generated.cs
@@ -0,0 +1,30 @@
+
+// This file has been generated by the GUI designer. Do not modify.
+namespace Stetic
+{
+ internal class Gui
+ {
+ private static bool initialized;
+
+ internal static void Initialize(Gtk.Widget iconRenderer)
+ {
+ if ((Stetic.Gui.initialized == false))
+ {
+ Stetic.Gui.initialized = true;
+ }
+ }
+ }
+
+ internal class ActionGroups
+ {
+ public static Gtk.ActionGroup GetActionGroup(System.Type type)
+ {
+ return Stetic.ActionGroups.GetActionGroup(type.FullName);
+ }
+
+ public static Gtk.ActionGroup GetActionGroup(string name)
+ {
+ return null;
+ }
+ }
+}
diff --git a/Samples/GTK/gtk-gui/gui.stetic b/Samples/GTK/gtk-gui/gui.stetic
new file mode 100644
index 000000000..b9ae87857
--- /dev/null
+++ b/Samples/GTK/gtk-gui/gui.stetic
@@ -0,0 +1,21 @@
+
+
+
+ ..
+
+
+
+
+
+
+
+ MainWindow
+ CenterOnParent
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Source/ZXing.Net.Mobile.Forms.Android/ZXing.Net.Mobile.Forms.Android.csproj b/Source/ZXing.Net.Mobile.Forms.Android/ZXing.Net.Mobile.Forms.Android.csproj
index 0164f7cab..47b4b04c4 100644
--- a/Source/ZXing.Net.Mobile.Forms.Android/ZXing.Net.Mobile.Forms.Android.csproj
+++ b/Source/ZXing.Net.Mobile.Forms.Android/ZXing.Net.Mobile.Forms.Android.csproj
@@ -13,7 +13,7 @@
Resources\Resource.designer.cs
True
ZXing.Net.Mobile.Forms.Android
- v7.1
+ v9.0
@@ -79,6 +79,6 @@
-
+
\ No newline at end of file
diff --git a/Source/ZXing.Net.Mobile.Forms.GTK/OpenTK.dll.config b/Source/ZXing.Net.Mobile.Forms.GTK/OpenTK.dll.config
new file mode 100644
index 000000000..7098d39e9
--- /dev/null
+++ b/Source/ZXing.Net.Mobile.Forms.GTK/OpenTK.dll.config
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Source/ZXing.Net.Mobile.Forms.GTK/Platform.cs b/Source/ZXing.Net.Mobile.Forms.GTK/Platform.cs
new file mode 100644
index 000000000..65e44b092
--- /dev/null
+++ b/Source/ZXing.Net.Mobile.Forms.GTK/Platform.cs
@@ -0,0 +1,10 @@
+namespace ZXing.Net.Mobile.Forms.GTK
+{
+ public class Platform
+ {
+ public static void Init ()
+ {
+ ZXing.Net.Mobile.Forms.GTK.ZXingBarcodeImageViewRenderer.Init();
+ }
+ }
+}
\ No newline at end of file
diff --git a/Source/ZXing.Net.Mobile.Forms.GTK/Properties/AssemblyInfo.cs b/Source/ZXing.Net.Mobile.Forms.GTK/Properties/AssemblyInfo.cs
new file mode 100644
index 000000000..edf44aae9
--- /dev/null
+++ b/Source/ZXing.Net.Mobile.Forms.GTK/Properties/AssemblyInfo.cs
@@ -0,0 +1,35 @@
+using System.Reflection;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("ZXing.Net.Mobile.Forms.GTK")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("ZXing.Net.Mobile.Forms.GTK")]
+[assembly: AssemblyCopyright("${AuthorCopyright}")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
\ No newline at end of file
diff --git a/Source/ZXing.Net.Mobile.Forms.GTK/ZXing.Net.Mobile.Forms.GTK.csproj b/Source/ZXing.Net.Mobile.Forms.GTK/ZXing.Net.Mobile.Forms.GTK.csproj
new file mode 100644
index 000000000..1a6a29ac6
--- /dev/null
+++ b/Source/ZXing.Net.Mobile.Forms.GTK/ZXing.Net.Mobile.Forms.GTK.csproj
@@ -0,0 +1,127 @@
+
+
+
+
+
+ Debug
+ AnyCPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}
+ Library
+ Properties
+ ZXing.Net.Mobile.Forms.GTK
+ ZXing.Net.Mobile.Forms.GTK
+ v4.7
+ 512
+
+
+ AnyCPU
+ true
+ full
+ false
+ ..\..\Build\Forms\Debug\xamgtk
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ AnyCPU
+ pdbonly
+ true
+ ..\..\Build\Forms\Release\xamgtk
+ TRACE
+ prompt
+ 4
+
+
+
+ ..\ZXing.Net.Mobile.GTK\Libs\gtk-sharp\gtk-sharp-2.0\gdk-sharp.dll
+
+
+ ..\ZXing.Net.Mobile.GTK\Libs\gtk-sharp\gtk-sharp-2.0\glib-sharp.dll
+
+
+ ..\ZXing.Net.Mobile.GTK\Libs\gtk-sharp\gtk-sharp-2.0\gtk-sharp.dll
+
+
+ ..\..\packages\Xamarin.Forms.Platform.GTK.3.0.0.446417\lib\net45\OpenTK.dll
+ True
+
+
+
+
+
+
+
+ ..\..\packages\Xamarin.Forms.Platform.GTK.3.0.0.446417\lib\net45\webkit-sharp.dll
+ True
+
+
+ ..\..\packages\Xamarin.Forms.3.0.0.446417\lib\netstandard2.0\Xamarin.Forms.Core.dll
+ True
+
+
+ ..\..\packages\Xamarin.Forms.3.0.0.446417\lib\netstandard2.0\Design\Xamarin.Forms.Core.Design.dll
+ True
+
+
+ ..\..\packages\Xamarin.Forms.3.0.0.446417\lib\netstandard2.0\Xamarin.Forms.Platform.dll
+ True
+
+
+ ..\..\packages\Xamarin.Forms.Platform.GTK.3.0.0.446417\lib\net45\Xamarin.Forms.Platform.GTK.dll
+ True
+
+
+ ..\..\packages\Xamarin.Forms.3.0.0.446417\lib\netstandard2.0\Xamarin.Forms.Xaml.dll
+ True
+
+
+ ..\..\packages\Xamarin.Forms.3.0.0.446417\lib\netstandard2.0\Design\Xamarin.Forms.Xaml.Design.dll
+ True
+
+
+
+
+
+
+
+
+
+ {7528dd0a-1781-47f4-adbf-eeddb011f6bb}
+ ZXing.Net.Mobile.Core
+
+
+ {8e54db74-c094-4016-859a-d1c7f2509a58}
+ ZXing.Net.Mobile.Forms
+
+
+ {007476ef-d7ca-4198-bded-3544d0ebd546}
+ ZXing.Net.Mobile.GTK
+
+
+ {24b441f2-cbe9-4405-9fd0-72ebcbea0ec3}
+ zxing.portable
+
+
+
+
+
+
+
+
+
+
+ This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105.The missing file is {0}.
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Source/ZXing.Net.Mobile.Forms.GTK/ZXingBarcodeImageViewRenderer.cs b/Source/ZXing.Net.Mobile.Forms.GTK/ZXingBarcodeImageViewRenderer.cs
new file mode 100644
index 000000000..b14aad3f7
--- /dev/null
+++ b/Source/ZXing.Net.Mobile.Forms.GTK/ZXingBarcodeImageViewRenderer.cs
@@ -0,0 +1,73 @@
+using System;
+using System.ComponentModel;
+using Xamarin.Forms;
+using Xamarin.Forms.Platform.GTK;
+using ZXing.Net.Mobile.Forms;
+using ZXing.Net.Mobile.Forms.GTK;
+using ZXing.Net.Mobile.GTK;
+using Image = Gtk.Image;
+
+[assembly:ExportRenderer(typeof(ZXingBarcodeImageView), typeof(ZXingBarcodeImageViewRenderer))]
+namespace ZXing.Net.Mobile.Forms.GTK
+{
+ public class ZXingBarcodeImageViewRenderer : ViewRenderer
+ {
+ public static void Init()
+ {
+ var temp = DateTime.Now;
+ }
+
+ ZXingBarcodeImageView formsView;
+ Image gtkImage;
+
+ protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
+ {
+ // in GTK there are a way to many properties that are changed compared to other platforms
+ if (e.PropertyName == ZXingBarcodeImageView.BarcodeValueProperty.PropertyName ||
+ e.PropertyName == ZXingBarcodeImageView.BarcodeFormatProperty.PropertyName ||
+ e.PropertyName == ZXingBarcodeImageView.BarcodeOptionsProperty.PropertyName)
+ {
+ Regenerate();
+ }
+
+ base.OnElementPropertyChanged(sender, e);
+ }
+
+ protected override void OnElementChanged(ElementChangedEventArgs e)
+ {
+ formsView = Element;
+
+ if (gtkImage == null)
+ {
+ gtkImage = new Image();
+
+ base.SetNativeControl(gtkImage);
+ }
+
+ Regenerate();
+
+ base.OnElementChanged(e);
+ }
+
+ void Regenerate ()
+ {
+ if (formsView != null && formsView.BarcodeValue != null)
+ {
+ var writer = new BarcodeWriter();
+
+ if (formsView != null && formsView.BarcodeOptions != null)
+ writer.Options = formsView.BarcodeOptions;
+ if (formsView != null && formsView.BarcodeFormat != null)
+ writer.Format = formsView.BarcodeFormat;
+
+ var value = formsView != null ? formsView.BarcodeValue : string.Empty;
+
+ Device.BeginInvokeOnMainThread(() =>
+ {
+ var pixBuf = writer.Write(value);
+ gtkImage.Pixbuf = pixBuf;
+ });
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Source/ZXing.Net.Mobile.Forms.GTK/packages.config b/Source/ZXing.Net.Mobile.Forms.GTK/packages.config
new file mode 100644
index 000000000..9861b1f7c
--- /dev/null
+++ b/Source/ZXing.Net.Mobile.Forms.GTK/packages.config
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/Source/ZXing.Net.Mobile.Forms.GTK/webkit-sharp.dll.config b/Source/ZXing.Net.Mobile.Forms.GTK/webkit-sharp.dll.config
new file mode 100644
index 000000000..a901fab83
--- /dev/null
+++ b/Source/ZXing.Net.Mobile.Forms.GTK/webkit-sharp.dll.config
@@ -0,0 +1,3 @@
+
+
+
diff --git a/Source/ZXing.Net.Mobile.Forms.WindowsUniversal/Libs/netstandard.dll b/Source/ZXing.Net.Mobile.Forms.WindowsUniversal/Libs/netstandard.dll
new file mode 100644
index 000000000..1f1ab22ca
Binary files /dev/null and b/Source/ZXing.Net.Mobile.Forms.WindowsUniversal/Libs/netstandard.dll differ
diff --git a/Source/ZXing.Net.Mobile.Forms.WindowsUniversal/ZXing.Net.Mobile.Forms.WindowsUniversal.csproj b/Source/ZXing.Net.Mobile.Forms.WindowsUniversal/ZXing.Net.Mobile.Forms.WindowsUniversal.csproj
index 60edc22f3..0380fd070 100644
--- a/Source/ZXing.Net.Mobile.Forms.WindowsUniversal/ZXing.Net.Mobile.Forms.WindowsUniversal.csproj
+++ b/Source/ZXing.Net.Mobile.Forms.WindowsUniversal/ZXing.Net.Mobile.Forms.WindowsUniversal.csproj
@@ -130,6 +130,11 @@
zxing.portable
+
+
+ Libs\netstandard.dll
+
+
14.0
diff --git a/Source/ZXing.Net.Mobile.Forms.WindowsUniversal/project.json b/Source/ZXing.Net.Mobile.Forms.WindowsUniversal/project.json
index c4e711589..6984d93ab 100644
--- a/Source/ZXing.Net.Mobile.Forms.WindowsUniversal/project.json
+++ b/Source/ZXing.Net.Mobile.Forms.WindowsUniversal/project.json
@@ -1,7 +1,7 @@
{
"dependencies": {
"Microsoft.NETCore.UniversalWindowsPlatform": "6.0.1",
- "Xamarin.Forms": "2.3.4.270"
+ "Xamarin.Forms": "3.0.0.446417"
},
"frameworks": {
"uap10.0": {}
diff --git a/Source/ZXing.Net.Mobile.Forms.iOS/ZXing.Net.Mobile.Forms.iOS.csproj b/Source/ZXing.Net.Mobile.Forms.iOS/ZXing.Net.Mobile.Forms.iOS.csproj
index aee6862b2..989c67a47 100644
--- a/Source/ZXing.Net.Mobile.Forms.iOS/ZXing.Net.Mobile.Forms.iOS.csproj
+++ b/Source/ZXing.Net.Mobile.Forms.iOS/ZXing.Net.Mobile.Forms.iOS.csproj
@@ -65,6 +65,6 @@
-
+
\ No newline at end of file
diff --git a/Source/ZXing.Net.Mobile.Forms.macOS/ZXing.Net.Mobile.Forms.macOS.csproj b/Source/ZXing.Net.Mobile.Forms.macOS/ZXing.Net.Mobile.Forms.macOS.csproj
index 13a98c62d..c2e7c2cbc 100644
--- a/Source/ZXing.Net.Mobile.Forms.macOS/ZXing.Net.Mobile.Forms.macOS.csproj
+++ b/Source/ZXing.Net.Mobile.Forms.macOS/ZXing.Net.Mobile.Forms.macOS.csproj
@@ -1,6 +1,6 @@
-
+
Debug
AnyCPU
@@ -62,6 +62,22 @@
..\..\packages\Xamarin.Forms.3.2.0.871581\lib\Xamarin.Mac\Xamarin.Forms.Xaml.dll
+
+ ..\..\packages\Xamarin.Forms.3.0.0.446417\lib\Xamarin.Mac\Xamarin.Forms.Core.dll
+ True
+
+
+ ..\..\packages\Xamarin.Forms.3.0.0.446417\lib\Xamarin.Mac\Xamarin.Forms.Platform.dll
+ True
+
+
+ ..\..\packages\Xamarin.Forms.3.0.0.446417\lib\Xamarin.Mac\Xamarin.Forms.Platform.macOS.dll
+ True
+
+
+ ..\..\packages\Xamarin.Forms.3.0.0.446417\lib\Xamarin.Mac\Xamarin.Forms.Xaml.dll
+ True
+
@@ -91,4 +107,12 @@
+
+
+ This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105.The missing file is {0}.
+
+
+
+
+
\ No newline at end of file
diff --git a/Source/ZXing.Net.Mobile.Forms.macOS/packages.config b/Source/ZXing.Net.Mobile.Forms.macOS/packages.config
index 4144d0f84..2fb3ea65c 100644
--- a/Source/ZXing.Net.Mobile.Forms.macOS/packages.config
+++ b/Source/ZXing.Net.Mobile.Forms.macOS/packages.config
@@ -1,4 +1,4 @@
-
-
\ No newline at end of file
+
+
diff --git a/Source/ZXing.Net.Mobile.Forms/ZXing.Net.Mobile.Forms.csproj b/Source/ZXing.Net.Mobile.Forms/ZXing.Net.Mobile.Forms.csproj
index 79fd21eca..b02c8a298 100644
--- a/Source/ZXing.Net.Mobile.Forms/ZXing.Net.Mobile.Forms.csproj
+++ b/Source/ZXing.Net.Mobile.Forms/ZXing.Net.Mobile.Forms.csproj
@@ -51,6 +51,6 @@
-
+
\ No newline at end of file
diff --git a/Source/ZXing.Net.Mobile.GTK/BarcodeWriter.cs b/Source/ZXing.Net.Mobile.GTK/BarcodeWriter.cs
new file mode 100644
index 000000000..fb65497b7
--- /dev/null
+++ b/Source/ZXing.Net.Mobile.GTK/BarcodeWriter.cs
@@ -0,0 +1,12 @@
+using Gdk;
+
+namespace ZXing.Net.Mobile.GTK
+{
+ public class BarcodeWriter : BarcodeWriter, IBarcodeWriter
+ {
+ public BarcodeWriter()
+ {
+ Renderer = new BitmapRenderer();
+ }
+ }
+}
\ No newline at end of file
diff --git a/Source/ZXing.Net.Mobile.GTK/BitmapRenderer.cs b/Source/ZXing.Net.Mobile.GTK/BitmapRenderer.cs
new file mode 100644
index 000000000..244a10aff
--- /dev/null
+++ b/Source/ZXing.Net.Mobile.GTK/BitmapRenderer.cs
@@ -0,0 +1,45 @@
+using Cairo;
+using Gdk;
+using ZXing.Common;
+using ZXing.Rendering;
+
+namespace ZXing.Net.Mobile.GTK
+{
+ public class BitmapRenderer : IBarcodeRenderer
+ {
+ public Pixbuf Render(BitMatrix matrix, BarcodeFormat format, string content)
+ {
+ var black = new Cairo.Color(0, 0, 0);
+ var white = new Cairo.Color(1, 1, 1);
+ var surface = new ImageSurface(Format.RGB24, matrix.Width, matrix.Height);
+ var cr = new Context(surface);
+ for (var x = 0; x < matrix.Width; x++)
+ {
+ for (var y = 0; y < matrix.Height; y++)
+ {
+ SetSourceColor(cr, matrix[x, y] ? black : white);
+ cr.MoveTo(x, y);
+ cr.LineTo(x + 1, y);
+ cr.Stroke();
+ }
+ }
+ return new Pixbuf(surface.Data,
+ Colorspace.Rgb,
+ true,
+ 8,
+ matrix.Width,
+ matrix.Height,
+ surface.Stride);
+ }
+
+ private void SetSourceColor(Context context, Cairo.Color color)
+ {
+ context.SetSourceRGB(color.R, color.G, color.B);
+ }
+
+ public Pixbuf Render(BitMatrix matrix, BarcodeFormat format, string content, EncodingOptions options)
+ {
+ return Render(matrix, format, content);
+ }
+ }
+}
\ No newline at end of file
diff --git a/Source/ZXing.Net.Mobile.GTK/Libs/OpenTK/OpenTK.dll b/Source/ZXing.Net.Mobile.GTK/Libs/OpenTK/OpenTK.dll
new file mode 100755
index 000000000..74955bafb
Binary files /dev/null and b/Source/ZXing.Net.Mobile.GTK/Libs/OpenTK/OpenTK.dll differ
diff --git a/Source/ZXing.Net.Mobile.GTK/Libs/OpenTK/OpenTK.dll.config b/Source/ZXing.Net.Mobile.GTK/Libs/OpenTK/OpenTK.dll.config
new file mode 100755
index 000000000..7098d39e9
--- /dev/null
+++ b/Source/ZXing.Net.Mobile.GTK/Libs/OpenTK/OpenTK.dll.config
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Source/ZXing.Net.Mobile.GTK/Libs/OpenTK/README.txt b/Source/ZXing.Net.Mobile.GTK/Libs/OpenTK/README.txt
new file mode 100755
index 000000000..6ff2316b4
--- /dev/null
+++ b/Source/ZXing.Net.Mobile.GTK/Libs/OpenTK/README.txt
@@ -0,0 +1 @@
+https://github.com/opentk/opentk
\ No newline at end of file
diff --git a/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/Mono.Cairo/Mono.Cairo.dll b/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/Mono.Cairo/Mono.Cairo.dll
new file mode 100755
index 000000000..924785a5e
Binary files /dev/null and b/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/Mono.Cairo/Mono.Cairo.dll differ
diff --git a/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/Mono.Posix/Mono.Posix.dll b/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/Mono.Posix/Mono.Posix.dll
new file mode 100755
index 000000000..83fff4608
Binary files /dev/null and b/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/Mono.Posix/Mono.Posix.dll differ
diff --git a/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/README.txt b/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/README.txt
new file mode 100755
index 000000000..b49a3bc47
--- /dev/null
+++ b/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/README.txt
@@ -0,0 +1 @@
+https://github.com/mono/gtk-sharp
\ No newline at end of file
diff --git a/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/gtk-sharp-2.0/atk-sharp.dll b/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/gtk-sharp-2.0/atk-sharp.dll
new file mode 100755
index 000000000..9f3ac86b6
Binary files /dev/null and b/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/gtk-sharp-2.0/atk-sharp.dll differ
diff --git a/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/gtk-sharp-2.0/atk-sharp.dll.config b/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/gtk-sharp-2.0/atk-sharp.dll.config
new file mode 100644
index 000000000..f6d925fa8
--- /dev/null
+++ b/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/gtk-sharp-2.0/atk-sharp.dll.config
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/gtk-sharp-2.0/atk-sharp.pdb b/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/gtk-sharp-2.0/atk-sharp.pdb
new file mode 100755
index 000000000..c2bce621f
Binary files /dev/null and b/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/gtk-sharp-2.0/atk-sharp.pdb differ
diff --git a/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/gtk-sharp-2.0/gdk-sharp.dll b/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/gtk-sharp-2.0/gdk-sharp.dll
new file mode 100755
index 000000000..5c799afa2
Binary files /dev/null and b/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/gtk-sharp-2.0/gdk-sharp.dll differ
diff --git a/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/gtk-sharp-2.0/gdk-sharp.dll.config b/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/gtk-sharp-2.0/gdk-sharp.dll.config
new file mode 100644
index 000000000..8c16b10dd
--- /dev/null
+++ b/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/gtk-sharp-2.0/gdk-sharp.dll.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/gtk-sharp-2.0/gdk-sharp.pdb b/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/gtk-sharp-2.0/gdk-sharp.pdb
new file mode 100755
index 000000000..813ff10ef
Binary files /dev/null and b/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/gtk-sharp-2.0/gdk-sharp.pdb differ
diff --git a/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/gtk-sharp-2.0/glade-sharp.dll b/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/gtk-sharp-2.0/glade-sharp.dll
new file mode 100755
index 000000000..58248a0ea
Binary files /dev/null and b/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/gtk-sharp-2.0/glade-sharp.dll differ
diff --git a/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/gtk-sharp-2.0/glade-sharp.dll.config b/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/gtk-sharp-2.0/glade-sharp.dll.config
new file mode 100644
index 000000000..27ab53d2a
--- /dev/null
+++ b/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/gtk-sharp-2.0/glade-sharp.dll.config
@@ -0,0 +1,3 @@
+
+
+
diff --git a/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/gtk-sharp-2.0/glade-sharp.pdb b/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/gtk-sharp-2.0/glade-sharp.pdb
new file mode 100755
index 000000000..3329a768a
Binary files /dev/null and b/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/gtk-sharp-2.0/glade-sharp.pdb differ
diff --git a/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/gtk-sharp-2.0/glib-sharp.dll b/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/gtk-sharp-2.0/glib-sharp.dll
new file mode 100755
index 000000000..0c5171b90
Binary files /dev/null and b/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/gtk-sharp-2.0/glib-sharp.dll differ
diff --git a/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/gtk-sharp-2.0/glib-sharp.dll.config b/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/gtk-sharp-2.0/glib-sharp.dll.config
new file mode 100644
index 000000000..0af11ac99
--- /dev/null
+++ b/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/gtk-sharp-2.0/glib-sharp.dll.config
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/gtk-sharp-2.0/glib-sharp.pdb b/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/gtk-sharp-2.0/glib-sharp.pdb
new file mode 100755
index 000000000..e21bdee54
Binary files /dev/null and b/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/gtk-sharp-2.0/glib-sharp.pdb differ
diff --git a/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/gtk-sharp-2.0/gtk-dotnet.dll b/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/gtk-sharp-2.0/gtk-dotnet.dll
new file mode 100755
index 000000000..5fe8fd462
Binary files /dev/null and b/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/gtk-sharp-2.0/gtk-dotnet.dll differ
diff --git a/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/gtk-sharp-2.0/gtk-dotnet.dll.config b/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/gtk-sharp-2.0/gtk-dotnet.dll.config
new file mode 100644
index 000000000..ee8038e57
--- /dev/null
+++ b/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/gtk-sharp-2.0/gtk-dotnet.dll.config
@@ -0,0 +1,3 @@
+
+
+
diff --git a/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/gtk-sharp-2.0/gtk-dotnet.pdb b/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/gtk-sharp-2.0/gtk-dotnet.pdb
new file mode 100755
index 000000000..849fc794a
Binary files /dev/null and b/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/gtk-sharp-2.0/gtk-dotnet.pdb differ
diff --git a/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/gtk-sharp-2.0/gtk-sharp.dll b/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/gtk-sharp-2.0/gtk-sharp.dll
new file mode 100755
index 000000000..09ebb10e5
Binary files /dev/null and b/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/gtk-sharp-2.0/gtk-sharp.dll differ
diff --git a/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/gtk-sharp-2.0/gtk-sharp.dll.config b/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/gtk-sharp-2.0/gtk-sharp.dll.config
new file mode 100644
index 000000000..7468e04bf
--- /dev/null
+++ b/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/gtk-sharp-2.0/gtk-sharp.dll.config
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/gtk-sharp-2.0/pango-sharp.dll b/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/gtk-sharp-2.0/pango-sharp.dll
new file mode 100755
index 000000000..5fc3867e7
Binary files /dev/null and b/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/gtk-sharp-2.0/pango-sharp.dll differ
diff --git a/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/gtk-sharp-2.0/pango-sharp.dll.config b/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/gtk-sharp-2.0/pango-sharp.dll.config
new file mode 100644
index 000000000..81777bc8a
--- /dev/null
+++ b/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/gtk-sharp-2.0/pango-sharp.dll.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/gtk-sharp-2.0/pango-sharp.pdb b/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/gtk-sharp-2.0/pango-sharp.pdb
new file mode 100755
index 000000000..524a7e2f2
Binary files /dev/null and b/Source/ZXing.Net.Mobile.GTK/Libs/gtk-sharp/gtk-sharp-2.0/pango-sharp.pdb differ
diff --git a/Source/ZXing.Net.Mobile.GTK/Libs/webkit-sharp/README.txt b/Source/ZXing.Net.Mobile.GTK/Libs/webkit-sharp/README.txt
new file mode 100755
index 000000000..dc5848e2e
--- /dev/null
+++ b/Source/ZXing.Net.Mobile.GTK/Libs/webkit-sharp/README.txt
@@ -0,0 +1 @@
+https://github.com/mono/webkit-sharp
\ No newline at end of file
diff --git a/Source/ZXing.Net.Mobile.GTK/Libs/webkit-sharp/webkit-sharp.dll b/Source/ZXing.Net.Mobile.GTK/Libs/webkit-sharp/webkit-sharp.dll
new file mode 100755
index 000000000..46646ba82
Binary files /dev/null and b/Source/ZXing.Net.Mobile.GTK/Libs/webkit-sharp/webkit-sharp.dll differ
diff --git a/Source/ZXing.Net.Mobile.GTK/Libs/webkit-sharp/webkit-sharp.dll.config b/Source/ZXing.Net.Mobile.GTK/Libs/webkit-sharp/webkit-sharp.dll.config
new file mode 100755
index 000000000..438480176
--- /dev/null
+++ b/Source/ZXing.Net.Mobile.GTK/Libs/webkit-sharp/webkit-sharp.dll.config
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/Source/ZXing.Net.Mobile.GTK/Properties/AssemblyInfo.cs b/Source/ZXing.Net.Mobile.GTK/Properties/AssemblyInfo.cs
new file mode 100644
index 000000000..ee45e40a5
--- /dev/null
+++ b/Source/ZXing.Net.Mobile.GTK/Properties/AssemblyInfo.cs
@@ -0,0 +1,35 @@
+using System.Reflection;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("ZXing.Net.Mobile.GTK")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("ZXing.Net.Mobile.GTK")]
+[assembly: AssemblyCopyright("${AuthorCopyright}")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("007476EF-D7CA-4198-BDED-3544D0EBD546")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
\ No newline at end of file
diff --git a/Source/ZXing.Net.Mobile.GTK/ZXing.Net.Mobile.GTK.csproj b/Source/ZXing.Net.Mobile.GTK/ZXing.Net.Mobile.GTK.csproj
new file mode 100644
index 000000000..fd48c0dba
--- /dev/null
+++ b/Source/ZXing.Net.Mobile.GTK/ZXing.Net.Mobile.GTK.csproj
@@ -0,0 +1,75 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}
+ Library
+ Properties
+ ZXing.Net.Mobile
+ ZXingNetMobile
+ v4.7
+ 512
+
+
+ AnyCPU
+ true
+ full
+ false
+ ..\..\Build\Debug\xamgtk
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ AnyCPU
+ pdbonly
+ true
+ ..\..\Build\Release\xamgtk
+ TRACE
+ prompt
+ 4
+
+
+
+ Libs\gtk-sharp\gtk-sharp-2.0\gdk-sharp.dll
+
+
+ Libs\gtk-sharp\gtk-sharp-2.0\glib-sharp.dll
+
+
+ Libs\gtk-sharp\gtk-sharp-2.0\gtk-sharp.dll
+
+
+ Libs\gtk-sharp\Mono.Cairo\Mono.Cairo.dll
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {7528dd0a-1781-47f4-adbf-eeddb011f6bb}
+ ZXing.Net.Mobile.Core
+
+
+ {24b441f2-cbe9-4405-9fd0-72ebcbea0ec3}
+ zxing.portable
+
+
+
+
+
\ No newline at end of file
diff --git a/ZXing.Net.Mobile.Forms.nuspec b/ZXing.Net.Mobile.Forms.nuspec
index 288a9e3e0..9528579bc 100644
--- a/ZXing.Net.Mobile.Forms.nuspec
+++ b/ZXing.Net.Mobile.Forms.nuspec
@@ -19,6 +19,10 @@
+
+
+
+
@@ -28,11 +32,11 @@
-
+
-
+
@@ -40,19 +44,19 @@
-
+
-
+
-
+
-
+
@@ -71,6 +75,17 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ZXing.Net.Mobile.Forms.sln b/ZXing.Net.Mobile.Forms.sln
index 6a4b632d7..87b696fe6 100644
--- a/ZXing.Net.Mobile.Forms.sln
+++ b/ZXing.Net.Mobile.Forms.sln
@@ -29,6 +29,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ZXing.Net.Mobile.Forms.Wind
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ZXing.Net.Mobile.Forms.iOS", "Source\ZXing.Net.Mobile.Forms.iOS\ZXing.Net.Mobile.Forms.iOS.csproj", "{8370ADB4-229C-4DEC-908F-B1A8FC155523}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ZXing.Net.Mobile.GTK", "Source\ZXing.Net.Mobile.GTK\ZXing.Net.Mobile.GTK.csproj", "{007476EF-D7CA-4198-BDED-3544D0EBD546}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ZXing.Net.Mobile.Forms.GTK", "Source\ZXing.Net.Mobile.Forms.GTK\ZXing.Net.Mobile.Forms.GTK.csproj", "{7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}"
+EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ZXing.Net.Mobile.macOS", "Source\ZXing.Net.Mobile.macOS\ZXing.Net.Mobile.macOS.csproj", "{A7E26AE0-12AF-4CFD-9B1E-3101347CC6F4}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ZXing.Net.Mobile.Forms.macOS", "Source\ZXing.Net.Mobile.Forms.macOS\ZXing.Net.Mobile.Forms.macOS.csproj", "{B35BF95F-D2AA-4DD3-8BC9-44F85F8C4DA1}"
@@ -582,6 +586,102 @@ Global
{8370ADB4-229C-4DEC-908F-B1A8FC155523}.ReleaseWin|x64.Build.0 = Release|Any CPU
{8370ADB4-229C-4DEC-908F-B1A8FC155523}.ReleaseWin|x86.ActiveCfg = Release|Any CPU
{8370ADB4-229C-4DEC-908F-B1A8FC155523}.ReleaseWin|x86.Build.0 = Release|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.Debug|ARM.Build.0 = Debug|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.Debug|x64.Build.0 = Debug|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.Debug|x86.Build.0 = Debug|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.Release|Any CPU.Build.0 = Release|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.Release|ARM.ActiveCfg = Release|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.Release|ARM.Build.0 = Release|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.Release|iPhone.Build.0 = Release|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.Release|x64.ActiveCfg = Release|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.Release|x64.Build.0 = Release|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.Release|x86.ActiveCfg = Release|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.Release|x86.Build.0 = Release|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.ReleaseMac|Any CPU.ActiveCfg = Debug|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.ReleaseMac|Any CPU.Build.0 = Debug|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.ReleaseMac|ARM.ActiveCfg = Debug|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.ReleaseMac|ARM.Build.0 = Debug|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.ReleaseMac|iPhone.ActiveCfg = Debug|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.ReleaseMac|iPhone.Build.0 = Debug|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.ReleaseMac|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.ReleaseMac|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.ReleaseMac|x64.ActiveCfg = Debug|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.ReleaseMac|x64.Build.0 = Debug|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.ReleaseMac|x86.ActiveCfg = Debug|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.ReleaseMac|x86.Build.0 = Debug|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.ReleaseWin|Any CPU.ActiveCfg = Debug|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.ReleaseWin|Any CPU.Build.0 = Debug|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.ReleaseWin|ARM.ActiveCfg = Debug|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.ReleaseWin|ARM.Build.0 = Debug|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.ReleaseWin|iPhone.ActiveCfg = Debug|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.ReleaseWin|iPhone.Build.0 = Debug|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.ReleaseWin|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.ReleaseWin|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.ReleaseWin|x64.ActiveCfg = Debug|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.ReleaseWin|x64.Build.0 = Debug|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.ReleaseWin|x86.ActiveCfg = Debug|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.ReleaseWin|x86.Build.0 = Debug|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.Debug|ARM.Build.0 = Debug|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.Debug|x64.Build.0 = Debug|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.Debug|x86.Build.0 = Debug|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.Release|Any CPU.Build.0 = Release|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.Release|ARM.ActiveCfg = Release|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.Release|ARM.Build.0 = Release|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.Release|iPhone.Build.0 = Release|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.Release|x64.ActiveCfg = Release|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.Release|x64.Build.0 = Release|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.Release|x86.ActiveCfg = Release|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.Release|x86.Build.0 = Release|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.ReleaseMac|Any CPU.ActiveCfg = Debug|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.ReleaseMac|Any CPU.Build.0 = Debug|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.ReleaseMac|ARM.ActiveCfg = Debug|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.ReleaseMac|ARM.Build.0 = Debug|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.ReleaseMac|iPhone.ActiveCfg = Debug|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.ReleaseMac|iPhone.Build.0 = Debug|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.ReleaseMac|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.ReleaseMac|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.ReleaseMac|x64.ActiveCfg = Debug|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.ReleaseMac|x64.Build.0 = Debug|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.ReleaseMac|x86.ActiveCfg = Debug|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.ReleaseMac|x86.Build.0 = Debug|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.ReleaseWin|Any CPU.ActiveCfg = Debug|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.ReleaseWin|Any CPU.Build.0 = Debug|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.ReleaseWin|ARM.ActiveCfg = Debug|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.ReleaseWin|ARM.Build.0 = Debug|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.ReleaseWin|iPhone.ActiveCfg = Debug|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.ReleaseWin|iPhone.Build.0 = Debug|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.ReleaseWin|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.ReleaseWin|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.ReleaseWin|x64.ActiveCfg = Debug|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.ReleaseWin|x64.Build.0 = Debug|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.ReleaseWin|x86.ActiveCfg = Debug|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.ReleaseWin|x86.Build.0 = Debug|Any CPU
{A7E26AE0-12AF-4CFD-9B1E-3101347CC6F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A7E26AE0-12AF-4CFD-9B1E-3101347CC6F4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A7E26AE0-12AF-4CFD-9B1E-3101347CC6F4}.Debug|ARM.ActiveCfg = Debug|Any CPU
@@ -694,6 +794,8 @@ Global
{DC2FF2AE-4090-4056-BBE4-087BDE6567BD} = {72EC3146-EA1B-4963-9248-55065728AF7F}
{C785F56E-0D1D-492C-850B-4D882314F29B} = {72EC3146-EA1B-4963-9248-55065728AF7F}
{8370ADB4-229C-4DEC-908F-B1A8FC155523} = {72EC3146-EA1B-4963-9248-55065728AF7F}
+ {007476EF-D7CA-4198-BDED-3544D0EBD546} = {2DC0C8D5-DF7F-4D96-886D-D7E83522C9BF}
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3} = {72EC3146-EA1B-4963-9248-55065728AF7F}
{A7E26AE0-12AF-4CFD-9B1E-3101347CC6F4} = {2DC0C8D5-DF7F-4D96-886D-D7E83522C9BF}
{B35BF95F-D2AA-4DD3-8BC9-44F85F8C4DA1} = {72EC3146-EA1B-4963-9248-55065728AF7F}
EndGlobalSection
diff --git a/ZXing.Net.Mobile.nuspec b/ZXing.Net.Mobile.nuspec
index c48c153d5..0d693b9c6 100644
--- a/ZXing.Net.Mobile.nuspec
+++ b/ZXing.Net.Mobile.nuspec
@@ -62,6 +62,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/readme.md b/readme.md
index ca96bbdbd..b9b564ec0 100644
--- a/readme.md
+++ b/readme.md
@@ -64,6 +64,14 @@ In your `AppDelegate`'s `FinishedLaunching (..)` implementation, call:
ZXing.Net.Mobile.Forms.iOS.Platform.Init();
```
+##### GTK#
+
+In your `MainClass`'s `Main (..)` implementation, call:
+
+```csharp
+ZXing.Net.Mobile.Forms.GTK.Platform.Init();
+```
+
##### macOS
@@ -96,6 +104,7 @@ If you notice that finishing scanning or pressing the back button is causing you
- Xamarin.iOS
- Xamarin.Mac (rendering only, not scanning)
- Xamarin.Android (Including Google Glass)
+- GTK# (rendering only, not scanning)
- Windows Phone 8
- Simple API - Scan in as little as 2 lines of code!
- Scanner as a View - UIView (iOS) / Fragment (Android) / Control (WP)