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..fd6c9563a
--- /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..f3178fe62
--- /dev/null
+++ b/Source/ZXing.Net.Mobile.GTK/BitmapRenderer.cs
@@ -0,0 +1,46 @@
+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);
+ using (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..8d0cfd16e
--- /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..3bcf5e26a 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,10 @@
+
+
+
+
diff --git a/ZXing.Net.Mobile.Forms.sln b/ZXing.Net.Mobile.Forms.sln
index 6a4b632d7..e3b6b8a7f 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|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}.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}.ReleaseMac|x86.ActiveCfg = Release|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.ReleaseMac|x86.Build.0 = Release|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.ReleaseWin|x86.ActiveCfg = Release|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.ReleaseWin|x86.Build.0 = Release|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.ReleaseWin|Any CPU.ActiveCfg = Release|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.ReleaseWin|Any CPU.Build.0 = Release|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.ReleaseMac|Any CPU.ActiveCfg = Release|Any CPU
+ {007476EF-D7CA-4198-BDED-3544D0EBD546}.ReleaseMac|Any CPU.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
+ {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}.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}.ReleaseMac|x86.ActiveCfg = Release|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.ReleaseMac|x86.Build.0 = Release|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.ReleaseWin|x86.ActiveCfg = Release|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.ReleaseWin|x86.Build.0 = Release|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.ReleaseWin|Any CPU.ActiveCfg = Release|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.ReleaseWin|Any CPU.Build.0 = Release|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.ReleaseMac|Any CPU.ActiveCfg = Release|Any CPU
+ {7AA0ABCF-DBF1-4190-8E82-44DD736BE2F3}.ReleaseMac|Any CPU.Build.0 = Release|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..af9a1ce5b 100644
--- a/ZXing.Net.Mobile.nuspec
+++ b/ZXing.Net.Mobile.nuspec
@@ -62,6 +62,11 @@
+
+
+
+
+
diff --git a/readme.md b/readme.md
index ca96bbdbd..c6a03426c 100644
--- a/readme.md
+++ b/readme.md
@@ -2,7 +2,7 @@
![ZXing.Net.Xamarin Logo](https://raw.github.com/nblockchain/ZXing.Net.Xamarin/master/zxing.net.mobile_128x128.png)
-ZXing.Net.Xamarin is a C#/.NET library based on the open source Barcode Library: [ZXing (Zebra Crossing)](https://github.com/zxing/zxing), using the [ZXing.Net Port](https://github.com/micjahn/ZXing.Net). It works with Xamarin.iOS, Xamarin.Android, Xamarin.Mac, and Windows Phone. The goal of ZXing.Net.Xamarin is to make scanning barcodes as effortless and painless as possible in your own applications. The new iOS7 AVCaptureSession barcode scanning is now also supported!
+ZXing.Net.Xamarin is a C#/.NET library based on the open source Barcode Library: [ZXing (Zebra Crossing)](https://github.com/zxing/zxing), using the [ZXing.Net Port](https://github.com/micjahn/ZXing.Net). It works with Xamarin.iOS, Xamarin.Android, Xamarin.Mac, GTK# and Windows Phone. The goal of ZXing.Net.Xamarin is to make scanning barcodes as effortless and painless as possible in your own applications. The new iOS7 AVCaptureSession barcode scanning is now also supported!
[![AzureDevOps CI status](https://dev.azure.com/diginex/ZXing.Net.Xamarin/_apis/build/status/ZXing.Net.Xamarin-CI)](https://dev.azure.com/diginex/ZXing.Net.Xamarin/_build/latest?definitionId=1)
[![NuGet](https://img.shields.io/nuget/v/ZXing.Net.Xamarin.svg)](https://www.nuget.org/packages/ZXing.Net.Xamarin/)
@@ -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)