diff --git a/Source/GtkSharp.sln b/Source/GtkSharp.sln
index aa8869906..cd2a0e5a3 100644
--- a/Source/GtkSharp.sln
+++ b/Source/GtkSharp.sln
@@ -1,25 +1,24 @@
-
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
-VisualStudioVersion = 15.0.26124.0
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.29424.173
MinimumVisualStudioVersion = 15.0.26124.0
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Libs", "Libs", "{CCEA1235-D75F-4919-83F6-16793B11BEF5}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GLibSharp", "Libs\GLibSharp\GLibSharp.csproj", "{B29673A7-EBEA-41F4-9F22-D72B333042A2}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GLibSharp", "Libs\GLibSharp\GLibSharp.csproj", "{B29673A7-EBEA-41F4-9F22-D72B333042A2}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PangoSharp", "Libs\PangoSharp\PangoSharp.csproj", "{D3E99527-1FEC-4DC7-8083-85E7C338E287}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PangoSharp", "Libs\PangoSharp\PangoSharp.csproj", "{D3E99527-1FEC-4DC7-8083-85E7C338E287}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CairoSharp", "Libs\CairoSharp\CairoSharp.csproj", "{92C67E4C-8FDE-463B-BEB9-CB09970887DD}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CairoSharp", "Libs\CairoSharp\CairoSharp.csproj", "{92C67E4C-8FDE-463B-BEB9-CB09970887DD}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AtkSharp", "Libs\AtkSharp\AtkSharp.csproj", "{12A721AA-8E7F-459A-A62D-F7372350E5F1}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AtkSharp", "Libs\AtkSharp\AtkSharp.csproj", "{12A721AA-8E7F-459A-A62D-F7372350E5F1}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GdkSharp", "Libs\GdkSharp\GdkSharp.csproj", "{E6D83259-6389-4768-B0A0-A649892DFE62}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GdkSharp", "Libs\GdkSharp\GdkSharp.csproj", "{E6D83259-6389-4768-B0A0-A649892DFE62}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GioSharp", "Libs\GioSharp\GioSharp.csproj", "{B4B26375-BED5-4000-A38F-899FF1672B47}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GioSharp", "Libs\GioSharp\GioSharp.csproj", "{B4B26375-BED5-4000-A38F-899FF1672B47}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GtkSharp", "Libs\GtkSharp\GtkSharp.csproj", "{04597E0B-375D-4E08-A16C-EE5FF3937B73}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GtkSharp", "Libs\GtkSharp\GtkSharp.csproj", "{04597E0B-375D-4E08-A16C-EE5FF3937B73}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Samples", "Samples\Samples.csproj", "{A5667C9B-5D29-4FB6-B548-D1317A2CEF90}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Samples", "Samples\Samples.csproj", "{A5667C9B-5D29-4FB6-B548-D1317A2CEF90}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -30,106 +29,106 @@ Global
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{B29673A7-EBEA-41F4-9F22-D72B333042A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B29673A7-EBEA-41F4-9F22-D72B333042A2}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {B29673A7-EBEA-41F4-9F22-D72B333042A2}.Debug|x64.ActiveCfg = Debug|x64
- {B29673A7-EBEA-41F4-9F22-D72B333042A2}.Debug|x64.Build.0 = Debug|x64
- {B29673A7-EBEA-41F4-9F22-D72B333042A2}.Debug|x86.ActiveCfg = Debug|x86
- {B29673A7-EBEA-41F4-9F22-D72B333042A2}.Debug|x86.Build.0 = Debug|x86
+ {B29673A7-EBEA-41F4-9F22-D72B333042A2}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {B29673A7-EBEA-41F4-9F22-D72B333042A2}.Debug|x64.Build.0 = Debug|Any CPU
+ {B29673A7-EBEA-41F4-9F22-D72B333042A2}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {B29673A7-EBEA-41F4-9F22-D72B333042A2}.Debug|x86.Build.0 = Debug|Any CPU
{B29673A7-EBEA-41F4-9F22-D72B333042A2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B29673A7-EBEA-41F4-9F22-D72B333042A2}.Release|Any CPU.Build.0 = Release|Any CPU
- {B29673A7-EBEA-41F4-9F22-D72B333042A2}.Release|x64.ActiveCfg = Release|x64
- {B29673A7-EBEA-41F4-9F22-D72B333042A2}.Release|x64.Build.0 = Release|x64
- {B29673A7-EBEA-41F4-9F22-D72B333042A2}.Release|x86.ActiveCfg = Release|x86
- {B29673A7-EBEA-41F4-9F22-D72B333042A2}.Release|x86.Build.0 = Release|x86
+ {B29673A7-EBEA-41F4-9F22-D72B333042A2}.Release|x64.ActiveCfg = Release|Any CPU
+ {B29673A7-EBEA-41F4-9F22-D72B333042A2}.Release|x64.Build.0 = Release|Any CPU
+ {B29673A7-EBEA-41F4-9F22-D72B333042A2}.Release|x86.ActiveCfg = Release|Any CPU
+ {B29673A7-EBEA-41F4-9F22-D72B333042A2}.Release|x86.Build.0 = Release|Any CPU
{D3E99527-1FEC-4DC7-8083-85E7C338E287}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D3E99527-1FEC-4DC7-8083-85E7C338E287}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {D3E99527-1FEC-4DC7-8083-85E7C338E287}.Debug|x64.ActiveCfg = Debug|x64
- {D3E99527-1FEC-4DC7-8083-85E7C338E287}.Debug|x64.Build.0 = Debug|x64
- {D3E99527-1FEC-4DC7-8083-85E7C338E287}.Debug|x86.ActiveCfg = Debug|x86
- {D3E99527-1FEC-4DC7-8083-85E7C338E287}.Debug|x86.Build.0 = Debug|x86
+ {D3E99527-1FEC-4DC7-8083-85E7C338E287}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {D3E99527-1FEC-4DC7-8083-85E7C338E287}.Debug|x64.Build.0 = Debug|Any CPU
+ {D3E99527-1FEC-4DC7-8083-85E7C338E287}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {D3E99527-1FEC-4DC7-8083-85E7C338E287}.Debug|x86.Build.0 = Debug|Any CPU
{D3E99527-1FEC-4DC7-8083-85E7C338E287}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D3E99527-1FEC-4DC7-8083-85E7C338E287}.Release|Any CPU.Build.0 = Release|Any CPU
- {D3E99527-1FEC-4DC7-8083-85E7C338E287}.Release|x64.ActiveCfg = Release|x64
- {D3E99527-1FEC-4DC7-8083-85E7C338E287}.Release|x64.Build.0 = Release|x64
- {D3E99527-1FEC-4DC7-8083-85E7C338E287}.Release|x86.ActiveCfg = Release|x86
- {D3E99527-1FEC-4DC7-8083-85E7C338E287}.Release|x86.Build.0 = Release|x86
+ {D3E99527-1FEC-4DC7-8083-85E7C338E287}.Release|x64.ActiveCfg = Release|Any CPU
+ {D3E99527-1FEC-4DC7-8083-85E7C338E287}.Release|x64.Build.0 = Release|Any CPU
+ {D3E99527-1FEC-4DC7-8083-85E7C338E287}.Release|x86.ActiveCfg = Release|Any CPU
+ {D3E99527-1FEC-4DC7-8083-85E7C338E287}.Release|x86.Build.0 = Release|Any CPU
{92C67E4C-8FDE-463B-BEB9-CB09970887DD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{92C67E4C-8FDE-463B-BEB9-CB09970887DD}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {92C67E4C-8FDE-463B-BEB9-CB09970887DD}.Debug|x64.ActiveCfg = Debug|x64
- {92C67E4C-8FDE-463B-BEB9-CB09970887DD}.Debug|x64.Build.0 = Debug|x64
- {92C67E4C-8FDE-463B-BEB9-CB09970887DD}.Debug|x86.ActiveCfg = Debug|x86
- {92C67E4C-8FDE-463B-BEB9-CB09970887DD}.Debug|x86.Build.0 = Debug|x86
+ {92C67E4C-8FDE-463B-BEB9-CB09970887DD}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {92C67E4C-8FDE-463B-BEB9-CB09970887DD}.Debug|x64.Build.0 = Debug|Any CPU
+ {92C67E4C-8FDE-463B-BEB9-CB09970887DD}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {92C67E4C-8FDE-463B-BEB9-CB09970887DD}.Debug|x86.Build.0 = Debug|Any CPU
{92C67E4C-8FDE-463B-BEB9-CB09970887DD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{92C67E4C-8FDE-463B-BEB9-CB09970887DD}.Release|Any CPU.Build.0 = Release|Any CPU
- {92C67E4C-8FDE-463B-BEB9-CB09970887DD}.Release|x64.ActiveCfg = Release|x64
- {92C67E4C-8FDE-463B-BEB9-CB09970887DD}.Release|x64.Build.0 = Release|x64
- {92C67E4C-8FDE-463B-BEB9-CB09970887DD}.Release|x86.ActiveCfg = Release|x86
- {92C67E4C-8FDE-463B-BEB9-CB09970887DD}.Release|x86.Build.0 = Release|x86
+ {92C67E4C-8FDE-463B-BEB9-CB09970887DD}.Release|x64.ActiveCfg = Release|Any CPU
+ {92C67E4C-8FDE-463B-BEB9-CB09970887DD}.Release|x64.Build.0 = Release|Any CPU
+ {92C67E4C-8FDE-463B-BEB9-CB09970887DD}.Release|x86.ActiveCfg = Release|Any CPU
+ {92C67E4C-8FDE-463B-BEB9-CB09970887DD}.Release|x86.Build.0 = Release|Any CPU
{12A721AA-8E7F-459A-A62D-F7372350E5F1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{12A721AA-8E7F-459A-A62D-F7372350E5F1}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {12A721AA-8E7F-459A-A62D-F7372350E5F1}.Debug|x64.ActiveCfg = Debug|x64
- {12A721AA-8E7F-459A-A62D-F7372350E5F1}.Debug|x64.Build.0 = Debug|x64
- {12A721AA-8E7F-459A-A62D-F7372350E5F1}.Debug|x86.ActiveCfg = Debug|x86
- {12A721AA-8E7F-459A-A62D-F7372350E5F1}.Debug|x86.Build.0 = Debug|x86
+ {12A721AA-8E7F-459A-A62D-F7372350E5F1}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {12A721AA-8E7F-459A-A62D-F7372350E5F1}.Debug|x64.Build.0 = Debug|Any CPU
+ {12A721AA-8E7F-459A-A62D-F7372350E5F1}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {12A721AA-8E7F-459A-A62D-F7372350E5F1}.Debug|x86.Build.0 = Debug|Any CPU
{12A721AA-8E7F-459A-A62D-F7372350E5F1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{12A721AA-8E7F-459A-A62D-F7372350E5F1}.Release|Any CPU.Build.0 = Release|Any CPU
- {12A721AA-8E7F-459A-A62D-F7372350E5F1}.Release|x64.ActiveCfg = Release|x64
- {12A721AA-8E7F-459A-A62D-F7372350E5F1}.Release|x64.Build.0 = Release|x64
- {12A721AA-8E7F-459A-A62D-F7372350E5F1}.Release|x86.ActiveCfg = Release|x86
- {12A721AA-8E7F-459A-A62D-F7372350E5F1}.Release|x86.Build.0 = Release|x86
+ {12A721AA-8E7F-459A-A62D-F7372350E5F1}.Release|x64.ActiveCfg = Release|Any CPU
+ {12A721AA-8E7F-459A-A62D-F7372350E5F1}.Release|x64.Build.0 = Release|Any CPU
+ {12A721AA-8E7F-459A-A62D-F7372350E5F1}.Release|x86.ActiveCfg = Release|Any CPU
+ {12A721AA-8E7F-459A-A62D-F7372350E5F1}.Release|x86.Build.0 = Release|Any CPU
{E6D83259-6389-4768-B0A0-A649892DFE62}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E6D83259-6389-4768-B0A0-A649892DFE62}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E6D83259-6389-4768-B0A0-A649892DFE62}.Debug|x64.ActiveCfg = Debug|x64
- {E6D83259-6389-4768-B0A0-A649892DFE62}.Debug|x64.Build.0 = Debug|x64
- {E6D83259-6389-4768-B0A0-A649892DFE62}.Debug|x86.ActiveCfg = Debug|x86
- {E6D83259-6389-4768-B0A0-A649892DFE62}.Debug|x86.Build.0 = Debug|x86
+ {E6D83259-6389-4768-B0A0-A649892DFE62}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {E6D83259-6389-4768-B0A0-A649892DFE62}.Debug|x64.Build.0 = Debug|Any CPU
+ {E6D83259-6389-4768-B0A0-A649892DFE62}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {E6D83259-6389-4768-B0A0-A649892DFE62}.Debug|x86.Build.0 = Debug|Any CPU
{E6D83259-6389-4768-B0A0-A649892DFE62}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E6D83259-6389-4768-B0A0-A649892DFE62}.Release|Any CPU.Build.0 = Release|Any CPU
- {E6D83259-6389-4768-B0A0-A649892DFE62}.Release|x64.ActiveCfg = Release|x64
- {E6D83259-6389-4768-B0A0-A649892DFE62}.Release|x64.Build.0 = Release|x64
- {E6D83259-6389-4768-B0A0-A649892DFE62}.Release|x86.ActiveCfg = Release|x86
- {E6D83259-6389-4768-B0A0-A649892DFE62}.Release|x86.Build.0 = Release|x86
+ {E6D83259-6389-4768-B0A0-A649892DFE62}.Release|x64.ActiveCfg = Release|Any CPU
+ {E6D83259-6389-4768-B0A0-A649892DFE62}.Release|x64.Build.0 = Release|Any CPU
+ {E6D83259-6389-4768-B0A0-A649892DFE62}.Release|x86.ActiveCfg = Release|Any CPU
+ {E6D83259-6389-4768-B0A0-A649892DFE62}.Release|x86.Build.0 = Release|Any CPU
{B4B26375-BED5-4000-A38F-899FF1672B47}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B4B26375-BED5-4000-A38F-899FF1672B47}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {B4B26375-BED5-4000-A38F-899FF1672B47}.Debug|x64.ActiveCfg = Debug|x64
- {B4B26375-BED5-4000-A38F-899FF1672B47}.Debug|x64.Build.0 = Debug|x64
- {B4B26375-BED5-4000-A38F-899FF1672B47}.Debug|x86.ActiveCfg = Debug|x86
- {B4B26375-BED5-4000-A38F-899FF1672B47}.Debug|x86.Build.0 = Debug|x86
+ {B4B26375-BED5-4000-A38F-899FF1672B47}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {B4B26375-BED5-4000-A38F-899FF1672B47}.Debug|x64.Build.0 = Debug|Any CPU
+ {B4B26375-BED5-4000-A38F-899FF1672B47}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {B4B26375-BED5-4000-A38F-899FF1672B47}.Debug|x86.Build.0 = Debug|Any CPU
{B4B26375-BED5-4000-A38F-899FF1672B47}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B4B26375-BED5-4000-A38F-899FF1672B47}.Release|Any CPU.Build.0 = Release|Any CPU
- {B4B26375-BED5-4000-A38F-899FF1672B47}.Release|x64.ActiveCfg = Release|x64
- {B4B26375-BED5-4000-A38F-899FF1672B47}.Release|x64.Build.0 = Release|x64
- {B4B26375-BED5-4000-A38F-899FF1672B47}.Release|x86.ActiveCfg = Release|x86
- {B4B26375-BED5-4000-A38F-899FF1672B47}.Release|x86.Build.0 = Release|x86
+ {B4B26375-BED5-4000-A38F-899FF1672B47}.Release|x64.ActiveCfg = Release|Any CPU
+ {B4B26375-BED5-4000-A38F-899FF1672B47}.Release|x64.Build.0 = Release|Any CPU
+ {B4B26375-BED5-4000-A38F-899FF1672B47}.Release|x86.ActiveCfg = Release|Any CPU
+ {B4B26375-BED5-4000-A38F-899FF1672B47}.Release|x86.Build.0 = Release|Any CPU
{04597E0B-375D-4E08-A16C-EE5FF3937B73}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{04597E0B-375D-4E08-A16C-EE5FF3937B73}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {04597E0B-375D-4E08-A16C-EE5FF3937B73}.Debug|x64.ActiveCfg = Debug|x64
- {04597E0B-375D-4E08-A16C-EE5FF3937B73}.Debug|x64.Build.0 = Debug|x64
- {04597E0B-375D-4E08-A16C-EE5FF3937B73}.Debug|x86.ActiveCfg = Debug|x86
- {04597E0B-375D-4E08-A16C-EE5FF3937B73}.Debug|x86.Build.0 = Debug|x86
+ {04597E0B-375D-4E08-A16C-EE5FF3937B73}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {04597E0B-375D-4E08-A16C-EE5FF3937B73}.Debug|x64.Build.0 = Debug|Any CPU
+ {04597E0B-375D-4E08-A16C-EE5FF3937B73}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {04597E0B-375D-4E08-A16C-EE5FF3937B73}.Debug|x86.Build.0 = Debug|Any CPU
{04597E0B-375D-4E08-A16C-EE5FF3937B73}.Release|Any CPU.ActiveCfg = Release|Any CPU
{04597E0B-375D-4E08-A16C-EE5FF3937B73}.Release|Any CPU.Build.0 = Release|Any CPU
- {04597E0B-375D-4E08-A16C-EE5FF3937B73}.Release|x64.ActiveCfg = Release|x64
- {04597E0B-375D-4E08-A16C-EE5FF3937B73}.Release|x64.Build.0 = Release|x64
- {04597E0B-375D-4E08-A16C-EE5FF3937B73}.Release|x86.ActiveCfg = Release|x86
- {04597E0B-375D-4E08-A16C-EE5FF3937B73}.Release|x86.Build.0 = Release|x86
+ {04597E0B-375D-4E08-A16C-EE5FF3937B73}.Release|x64.ActiveCfg = Release|Any CPU
+ {04597E0B-375D-4E08-A16C-EE5FF3937B73}.Release|x64.Build.0 = Release|Any CPU
+ {04597E0B-375D-4E08-A16C-EE5FF3937B73}.Release|x86.ActiveCfg = Release|Any CPU
+ {04597E0B-375D-4E08-A16C-EE5FF3937B73}.Release|x86.Build.0 = Release|Any CPU
{A5667C9B-5D29-4FB6-B548-D1317A2CEF90}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A5667C9B-5D29-4FB6-B548-D1317A2CEF90}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {A5667C9B-5D29-4FB6-B548-D1317A2CEF90}.Debug|x64.ActiveCfg = Debug|x64
- {A5667C9B-5D29-4FB6-B548-D1317A2CEF90}.Debug|x64.Build.0 = Debug|x64
- {A5667C9B-5D29-4FB6-B548-D1317A2CEF90}.Debug|x86.ActiveCfg = Debug|x86
- {A5667C9B-5D29-4FB6-B548-D1317A2CEF90}.Debug|x86.Build.0 = Debug|x86
+ {A5667C9B-5D29-4FB6-B548-D1317A2CEF90}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {A5667C9B-5D29-4FB6-B548-D1317A2CEF90}.Debug|x64.Build.0 = Debug|Any CPU
+ {A5667C9B-5D29-4FB6-B548-D1317A2CEF90}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {A5667C9B-5D29-4FB6-B548-D1317A2CEF90}.Debug|x86.Build.0 = Debug|Any CPU
{A5667C9B-5D29-4FB6-B548-D1317A2CEF90}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A5667C9B-5D29-4FB6-B548-D1317A2CEF90}.Release|Any CPU.Build.0 = Release|Any CPU
- {A5667C9B-5D29-4FB6-B548-D1317A2CEF90}.Release|x64.ActiveCfg = Release|x64
- {A5667C9B-5D29-4FB6-B548-D1317A2CEF90}.Release|x64.Build.0 = Release|x64
- {A5667C9B-5D29-4FB6-B548-D1317A2CEF90}.Release|x86.ActiveCfg = Release|x86
- {A5667C9B-5D29-4FB6-B548-D1317A2CEF90}.Release|x86.Build.0 = Release|x86
+ {A5667C9B-5D29-4FB6-B548-D1317A2CEF90}.Release|x64.ActiveCfg = Release|Any CPU
+ {A5667C9B-5D29-4FB6-B548-D1317A2CEF90}.Release|x64.Build.0 = Release|Any CPU
+ {A5667C9B-5D29-4FB6-B548-D1317A2CEF90}.Release|x86.ActiveCfg = Release|Any CPU
+ {A5667C9B-5D29-4FB6-B548-D1317A2CEF90}.Release|x86.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{B29673A7-EBEA-41F4-9F22-D72B333042A2} = {CCEA1235-D75F-4919-83F6-16793B11BEF5}
@@ -140,4 +139,7 @@ Global
{B4B26375-BED5-4000-A38F-899FF1672B47} = {CCEA1235-D75F-4919-83F6-16793B11BEF5}
{04597E0B-375D-4E08-A16C-EE5FF3937B73} = {CCEA1235-D75F-4919-83F6-16793B11BEF5}
EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {DA4DD75D-B6C8-4836-AF84-B5FF538D9D86}
+ EndGlobalSection
EndGlobal
diff --git a/Source/Libs/GtkSharp/GtkSharp.csproj b/Source/Libs/GtkSharp/GtkSharp.csproj
index 557cfd20d..7e809048d 100644
--- a/Source/Libs/GtkSharp/GtkSharp.csproj
+++ b/Source/Libs/GtkSharp/GtkSharp.csproj
@@ -41,4 +41,168 @@
%(RecursiveDir)%(Filename)%(Extension)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ runtimes\win-x64\native
+ PreserveNewest
+
+
+ runtimes\win-x64\native
+ PreserveNewest
+
+
+ runtimes\win-x64\native
+ PreserveNewest
+
+
+ runtimes\win-x64\native
+ PreserveNewest
+
+
+ runtimes\win-x64\native
+ PreserveNewest
+
+
+ runtimes\win-x64\native
+ PreserveNewest
+
+
+ runtimes\win-x64\native
+ PreserveNewest
+
+
+ runtimes\win-x64\native
+ PreserveNewest
+
+
+ runtimes\win-x64\native
+ PreserveNewest
+
+
+ runtimes\win-x64\native
+ PreserveNewest
+
+
+ runtimes\win-x64\native
+ PreserveNewest
+
+
+ runtimes\win-x64\native
+ PreserveNewest
+
+
+ runtimes\win-x64\native
+ PreserveNewest
+
+
+ runtimes\win-x64\native
+ PreserveNewest
+
+
+ runtimes\win-x64\native
+ PreserveNewest
+
+
+ runtimes\win-x64\native
+ PreserveNewest
+
+
+ runtimes\win-x64\native
+ PreserveNewest
+
+
+ runtimes\win-x64\native
+ PreserveNewest
+
+
+ runtimes\win-x64\native
+ PreserveNewest
+
+
+ runtimes\win-x64\native
+ PreserveNewest
+
+
+ runtimes\win-x64\native
+ PreserveNewest
+
+
+ runtimes\win-x64\native
+ PreserveNewest
+
+
+ runtimes\win-x64\native
+ PreserveNewest
+
+
+ runtimes\win-x64\native
+ PreserveNewest
+
+
+ runtimes\win-x64\native
+ PreserveNewest
+
+
+ runtimes\win-x64\native
+ PreserveNewest
+
+
+ runtimes\win-x64\native
+ PreserveNewest
+
+
+ runtimes\win-x64\native
+ PreserveNewest
+
+
+ runtimes\win-x64\native
+ PreserveNewest
+
+
+ runtimes\win-x64\native
+ PreserveNewest
+
+
+ runtimes\win-x64\native
+ PreserveNewest
+
+
+ runtimes\win-x64\native
+ PreserveNewest
+
+
diff --git a/Source/Libs/GtkSharp/windows-x64/atk-1.dll b/Source/Libs/GtkSharp/windows-x64/atk-1.dll
new file mode 100644
index 000000000..d842a3f2d
Binary files /dev/null and b/Source/Libs/GtkSharp/windows-x64/atk-1.dll differ
diff --git a/Source/Libs/GtkSharp/windows-x64/bz2.dll b/Source/Libs/GtkSharp/windows-x64/bz2.dll
new file mode 100644
index 000000000..bdcb36502
Binary files /dev/null and b/Source/Libs/GtkSharp/windows-x64/bz2.dll differ
diff --git a/Source/Libs/GtkSharp/windows-x64/cairo-gobject.dll b/Source/Libs/GtkSharp/windows-x64/cairo-gobject.dll
new file mode 100644
index 000000000..8bd18b780
Binary files /dev/null and b/Source/Libs/GtkSharp/windows-x64/cairo-gobject.dll differ
diff --git a/Source/Libs/GtkSharp/windows-x64/cairo.dll b/Source/Libs/GtkSharp/windows-x64/cairo.dll
new file mode 100644
index 000000000..79678c8d4
Binary files /dev/null and b/Source/Libs/GtkSharp/windows-x64/cairo.dll differ
diff --git a/Source/Libs/GtkSharp/windows-x64/epoxy-0.dll b/Source/Libs/GtkSharp/windows-x64/epoxy-0.dll
new file mode 100644
index 000000000..2db5d7eda
Binary files /dev/null and b/Source/Libs/GtkSharp/windows-x64/epoxy-0.dll differ
diff --git a/Source/Libs/GtkSharp/windows-x64/expat.dll b/Source/Libs/GtkSharp/windows-x64/expat.dll
new file mode 100644
index 000000000..9d18183da
Binary files /dev/null and b/Source/Libs/GtkSharp/windows-x64/expat.dll differ
diff --git a/Source/Libs/GtkSharp/windows-x64/fontconfig.dll b/Source/Libs/GtkSharp/windows-x64/fontconfig.dll
new file mode 100644
index 000000000..8c3aba760
Binary files /dev/null and b/Source/Libs/GtkSharp/windows-x64/fontconfig.dll differ
diff --git a/Source/Libs/GtkSharp/windows-x64/freetype.dll b/Source/Libs/GtkSharp/windows-x64/freetype.dll
new file mode 100644
index 000000000..9b189a1d8
Binary files /dev/null and b/Source/Libs/GtkSharp/windows-x64/freetype.dll differ
diff --git a/Source/Libs/GtkSharp/windows-x64/gailutil-3.dll b/Source/Libs/GtkSharp/windows-x64/gailutil-3.dll
new file mode 100644
index 000000000..37b2714e1
Binary files /dev/null and b/Source/Libs/GtkSharp/windows-x64/gailutil-3.dll differ
diff --git a/Source/Libs/GtkSharp/windows-x64/gdk-3.dll b/Source/Libs/GtkSharp/windows-x64/gdk-3.dll
new file mode 100644
index 000000000..05a8bed85
Binary files /dev/null and b/Source/Libs/GtkSharp/windows-x64/gdk-3.dll differ
diff --git a/Source/Libs/GtkSharp/windows-x64/gdk_pixbuf-2.dll b/Source/Libs/GtkSharp/windows-x64/gdk_pixbuf-2.dll
new file mode 100644
index 000000000..4ac739f56
Binary files /dev/null and b/Source/Libs/GtkSharp/windows-x64/gdk_pixbuf-2.dll differ
diff --git a/Source/Libs/GtkSharp/windows-x64/gio-2.dll b/Source/Libs/GtkSharp/windows-x64/gio-2.dll
new file mode 100644
index 000000000..ea13ad901
Binary files /dev/null and b/Source/Libs/GtkSharp/windows-x64/gio-2.dll differ
diff --git a/Source/Libs/GtkSharp/windows-x64/glib-2.dll b/Source/Libs/GtkSharp/windows-x64/glib-2.dll
new file mode 100644
index 000000000..bb6c0de17
Binary files /dev/null and b/Source/Libs/GtkSharp/windows-x64/glib-2.dll differ
diff --git a/Source/Libs/GtkSharp/windows-x64/gmodule-2.dll b/Source/Libs/GtkSharp/windows-x64/gmodule-2.dll
new file mode 100644
index 000000000..afd394d33
Binary files /dev/null and b/Source/Libs/GtkSharp/windows-x64/gmodule-2.dll differ
diff --git a/Source/Libs/GtkSharp/windows-x64/gobject-2.dll b/Source/Libs/GtkSharp/windows-x64/gobject-2.dll
new file mode 100644
index 000000000..158be66de
Binary files /dev/null and b/Source/Libs/GtkSharp/windows-x64/gobject-2.dll differ
diff --git a/Source/Libs/GtkSharp/windows-x64/gthread-2.dll b/Source/Libs/GtkSharp/windows-x64/gthread-2.dll
new file mode 100644
index 000000000..b58dbdbdd
Binary files /dev/null and b/Source/Libs/GtkSharp/windows-x64/gthread-2.dll differ
diff --git a/Source/Libs/GtkSharp/windows-x64/gtk-3.dll b/Source/Libs/GtkSharp/windows-x64/gtk-3.dll
new file mode 100644
index 000000000..a4a7a67fc
Binary files /dev/null and b/Source/Libs/GtkSharp/windows-x64/gtk-3.dll differ
diff --git a/Source/Libs/GtkSharp/windows-x64/harfbuzz.dll b/Source/Libs/GtkSharp/windows-x64/harfbuzz.dll
new file mode 100644
index 000000000..8ccd63e42
Binary files /dev/null and b/Source/Libs/GtkSharp/windows-x64/harfbuzz.dll differ
diff --git a/Source/Libs/GtkSharp/windows-x64/libcharset.dll b/Source/Libs/GtkSharp/windows-x64/libcharset.dll
new file mode 100644
index 000000000..e4dccc2a6
Binary files /dev/null and b/Source/Libs/GtkSharp/windows-x64/libcharset.dll differ
diff --git a/Source/Libs/GtkSharp/windows-x64/libiconv.dll b/Source/Libs/GtkSharp/windows-x64/libiconv.dll
new file mode 100644
index 000000000..640bb2ccb
Binary files /dev/null and b/Source/Libs/GtkSharp/windows-x64/libiconv.dll differ
diff --git a/Source/Libs/GtkSharp/windows-x64/libintl.dll b/Source/Libs/GtkSharp/windows-x64/libintl.dll
new file mode 100644
index 000000000..149141eb5
Binary files /dev/null and b/Source/Libs/GtkSharp/windows-x64/libintl.dll differ
diff --git a/Source/Libs/GtkSharp/windows-x64/libpng16.dll b/Source/Libs/GtkSharp/windows-x64/libpng16.dll
new file mode 100644
index 000000000..a7d4dc15f
Binary files /dev/null and b/Source/Libs/GtkSharp/windows-x64/libpng16.dll differ
diff --git a/Source/Libs/GtkSharp/windows-x64/pango-1.dll b/Source/Libs/GtkSharp/windows-x64/pango-1.dll
new file mode 100644
index 000000000..fab8d0d74
Binary files /dev/null and b/Source/Libs/GtkSharp/windows-x64/pango-1.dll differ
diff --git a/Source/Libs/GtkSharp/windows-x64/pangocairo-1.dll b/Source/Libs/GtkSharp/windows-x64/pangocairo-1.dll
new file mode 100644
index 000000000..0c48077c9
Binary files /dev/null and b/Source/Libs/GtkSharp/windows-x64/pangocairo-1.dll differ
diff --git a/Source/Libs/GtkSharp/windows-x64/pangoft2-1.dll b/Source/Libs/GtkSharp/windows-x64/pangoft2-1.dll
new file mode 100644
index 000000000..a3e78d7d1
Binary files /dev/null and b/Source/Libs/GtkSharp/windows-x64/pangoft2-1.dll differ
diff --git a/Source/Libs/GtkSharp/windows-x64/pangowin32-1.dll b/Source/Libs/GtkSharp/windows-x64/pangowin32-1.dll
new file mode 100644
index 000000000..f97fc5050
Binary files /dev/null and b/Source/Libs/GtkSharp/windows-x64/pangowin32-1.dll differ
diff --git a/Source/Libs/GtkSharp/windows-x64/pcre.dll b/Source/Libs/GtkSharp/windows-x64/pcre.dll
new file mode 100644
index 000000000..b22b6379e
Binary files /dev/null and b/Source/Libs/GtkSharp/windows-x64/pcre.dll differ
diff --git a/Source/Libs/GtkSharp/windows-x64/pcre16.dll b/Source/Libs/GtkSharp/windows-x64/pcre16.dll
new file mode 100644
index 000000000..1eb3b32fa
Binary files /dev/null and b/Source/Libs/GtkSharp/windows-x64/pcre16.dll differ
diff --git a/Source/Libs/GtkSharp/windows-x64/pcre32.dll b/Source/Libs/GtkSharp/windows-x64/pcre32.dll
new file mode 100644
index 000000000..befefc28e
Binary files /dev/null and b/Source/Libs/GtkSharp/windows-x64/pcre32.dll differ
diff --git a/Source/Libs/GtkSharp/windows-x64/pcrecpp.dll b/Source/Libs/GtkSharp/windows-x64/pcrecpp.dll
new file mode 100644
index 000000000..a7d0eeb31
Binary files /dev/null and b/Source/Libs/GtkSharp/windows-x64/pcrecpp.dll differ
diff --git a/Source/Libs/GtkSharp/windows-x64/pcreposix.dll b/Source/Libs/GtkSharp/windows-x64/pcreposix.dll
new file mode 100644
index 000000000..770d31a11
Binary files /dev/null and b/Source/Libs/GtkSharp/windows-x64/pcreposix.dll differ
diff --git a/Source/Libs/GtkSharp/windows-x64/zlib1.dll b/Source/Libs/GtkSharp/windows-x64/zlib1.dll
new file mode 100644
index 000000000..5dd74ccd8
Binary files /dev/null and b/Source/Libs/GtkSharp/windows-x64/zlib1.dll differ
diff --git a/Source/Libs/Shared/GLibrary.cs b/Source/Libs/Shared/GLibrary.cs
index 66f624b97..a7f2678f1 100644
--- a/Source/Libs/Shared/GLibrary.cs
+++ b/Source/Libs/Shared/GLibrary.cs
@@ -1,9 +1,13 @@
using System;
-using System.Runtime.InteropServices;
using System.Collections.Generic;
+using System.IO;
+using System.Runtime.InteropServices;
class GLibrary
{
+ [DllImport("kernel32.dll", SetLastError = true)]
+ private static extern bool SetDllDirectory(string lpPathName);
+
private static Dictionary _libraries;
private static Dictionary _customlibraries;
private static Dictionary _libraryDefinitions;
@@ -32,17 +36,17 @@ class GLibrary
return ret;
if (FuncLoader.IsWindows)
- ret = FuncLoader.LoadLibrary(_libraryDefinitions[library][0]);
+ ret = LoadLibrary(_libraryDefinitions[library][0]);
else if (FuncLoader.IsOSX)
- ret = FuncLoader.LoadLibrary(_libraryDefinitions[library][2]);
+ ret = LoadLibrary(_libraryDefinitions[library][2]);
else
- ret = FuncLoader.LoadLibrary(_libraryDefinitions[library][1]);
+ ret = LoadLibrary(_libraryDefinitions[library][1]);
if (ret == IntPtr.Zero)
{
for (int i = 0; i < _libraryDefinitions[library].Length; i++)
{
- ret = FuncLoader.LoadLibrary(_libraryDefinitions[library][i]);
+ ret = LoadLibrary(_libraryDefinitions[library][i]);
if (ret != IntPtr.Zero)
break;
@@ -51,11 +55,34 @@ class GLibrary
if (ret == IntPtr.Zero)
{
- var err = library + ": " + string.Join(", ", _libraryDefinitions);
+ var err = library + ": " + string.Join(", ", _libraryDefinitions[library]);
throw new DllNotFoundException(err);
}
_libraries[library] = ret;
return ret;
}
+
+ private static IntPtr LoadLibrary(string libname)
+ {
+ var ret = FuncLoader.LoadLibrary(libname);
+ if (ret != IntPtr.Zero)
+ return ret;
+
+ // Hacky solution to load libraries on Windows
+ if (FuncLoader.IsWindows)
+ {
+ var assemblyLocation = Path.GetDirectoryName(@"C:\Users\harry\.nuget\packages\glibsharp\3.22.24.47\lib\netstandard2.0\GLibSharp.dll");
+ var assemblyVersionDir = Path.GetDirectoryName(Path.GetDirectoryName(assemblyLocation));
+ var version = Path.GetFileName(assemblyVersionDir);
+ var gtkdir = Path.Combine(Path.GetDirectoryName(Path.GetDirectoryName(assemblyVersionDir)), "gtksharp");
+ var nativeLibDir = Path.Combine(gtkdir, version, "runtimes", "win-x64", "native");
+
+ SetDllDirectory(nativeLibDir);
+
+ ret = FuncLoader.LoadLibrary(Path.Combine(nativeLibDir, libname));
+ }
+
+ return ret;
+ }
}
\ No newline at end of file