diff --git a/.gitignore b/.gitignore index 69345e974..0582bd33b 100644 --- a/.gitignore +++ b/.gitignore @@ -25,7 +25,7 @@ config.* configure depcomp doc/gtk-sharp-3-docs.* -generated +generated/*/*.cs generated.c generated-stamp install-sh @@ -42,3 +42,14 @@ stamp-h1 AssemblyInfo.cs Makefile Makefile.in + +# Nuget build files +NuGet/build +NuGet/nupkg + +# Python compiled files +*.egg-* +*.pyc +.eggs +dist +*.suo diff --git a/NuGet/Readme.md b/NuGet/Readme.md new file mode 100644 index 000000000..3c34a23c0 --- /dev/null +++ b/NuGet/Readme.md @@ -0,0 +1,67 @@ +# Readme + +## Overview + +This is a series of python scripts to generate the binaries and NuGet Packages for GtkSharp and Gtk + + * NuGet Packages for the GtkSharp .Net libraries + * NuGet Packages for the Windows 32bit / 64bit Gtk dll's + +## Windows + +### Depends + +The following is used as part of the build process + + * MSYS2 - Windows install + +Also it's assumed that you've already installed the 32bit and 64bit binaries for gtk within the MSYS environment +if your going to generate the Win32 / Win64 Nuget Packages for windows + +``` +pacman -S mingw-w64-i686-pango mingw-w64-i686-atk mingw-w64-i686-gtk3 +pacman -S mingw-w64-x86_64-pango mingw-w64-x86_64-atk mingw-w64-x86_64-gtk3 +``` + +And installed the executor python module +``` +C:\Python35\Scripts\pip.exe install executor yattag vsgen +``` + +### Running Build + +To run the build +``` +cd gtk-sharp\NuGet +build.py all +``` + +## Linux + +### Depends + +For Ubuntu we need to install pip for python 3 and a few other packages +``` +sudo apt-get install python3-pip autoconf libtool libtool-bin mono-complete +sudo apt-get install libglib2.0-dev libpango1.0-dev libatk1.0-dev libgtk-3-dev +``` + +Then install the executor python module +``` +pip3 install executor yattag vsgen +``` + +The version of Nuget needs to be the latest for linux +``` +sudo wget https://dist.nuget.org/win-x86-commandline/v3.5.0-rc1/NuGet.exe -O /usr/local/bin/nuget.exe +sudo chmod +x /usr/local/bin/nuget.exe +``` + +### Running Build + +To run the build +``` +cd gtk-sharp/NuGet +chmod +x build.py +./build.py all +``` diff --git a/NuGet/build.py b/NuGet/build.py new file mode 100644 index 000000000..99b2f7055 --- /dev/null +++ b/NuGet/build.py @@ -0,0 +1,92 @@ +#!/usr/bin/python3 +"""Script to build out the .Net dll's and package them into a Nuget Package for gtksharp3""" +import sys +from pybuild.profiles.GtkSharp import GtkSharp +from pybuild.profiles.GtkSharp_Core import GtkSharp_Core +from pybuild.profiles.Glue_Win32 import Glue_Win32 +from pybuild.profiles.Glue_Win64 import Glue_Win64 +from pybuild.profiles.Gtk_Win32 import Gtk_Win32 +from pybuild.profiles.Gtk_Win64 import Gtk_Win64 +from pybuild.Helper import Helper + + +# Ideally I'd like to see the GtkSharp Build system redone via the build system of .Net core (dotnet cli tool) +# and using Scons / Cuppa for the glue libraries +# For now though we rely on the use of make to build the .Net dll's +# under linux we run this natively, under windows we can use MSYS2 + +class Build(object): + # Clean the Build directory + @staticmethod + def clean(): + """Clean the build dir""" + Helper.emptydir('./build') + print("Clean finished") + + # Print Usage + @staticmethod + def usage(): + print("Please use GtkSharp3_Build.py where is one of") + print(" clean to clean the output directory: ./build") + + print(" gtksharp to build .Net libs for GtkSharp, via .Net 4.5") + print(" gtksharp_core to build .Net libs for GtkSharp, via .Net 4.5 using the dotnet cli tool") + + print(" gtk_win32 to build the Nuget package for GtkSharp.Win32") + print(" gtk_win64 to build the Nuget package for GtkSharp.Win64") + print(" all to make all") + + def main(self): + if len(sys.argv) != 2: + self.usage() + return + + if sys.argv[1] == 'all': + self.runbuild('gtksharp') + self.runbuild('gtk_win32') + self.runbuild('gtk_win64') + return + + self.runbuild(sys.argv[1]) + + def runbuild(self, build_type): + + if build_type == 'clean': + self.clean() + return + + Helper.install_pacman_deps() + + if build_type == 'gtksharp': + profile = GtkSharp() + profile.clean() + profile.build() + profile.copy() + profile.build_nuget() + + elif build_type == 'gtksharp_core': + profile = GtkSharp_Core() + profile.clean() + profile.build() + profile.copy_dll() + profile.build_nuget() + + elif build_type == 'gtk_win32': + profile_glue = Glue_Win32() + profile_glue.clean() + profile_glue.build() + profile_gtk = Gtk_Win32() + profile_gtk.build() + profile_gtk.build_nuget() + + elif build_type == 'gtk_win64': + profile_glue = Glue_Win64() + profile_glue.clean() + profile_glue.build() + profile = Gtk_Win64() + profile.build() + profile.build_nuget() + + +if __name__ == "__main__": + Build().main() diff --git a/NuGet/misc/GtkSharp.Native.targets b/NuGet/misc/GtkSharp.Native.targets new file mode 100644 index 000000000..16cf8d793 --- /dev/null +++ b/NuGet/misc/GtkSharp.Native.targets @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/NuGet/misc/GtkSharp.nuspec b/NuGet/misc/GtkSharp.nuspec new file mode 100644 index 000000000..70cc70bee --- /dev/null +++ b/NuGet/misc/GtkSharp.nuspec @@ -0,0 +1,16 @@ + + + + GBD.GtkSharp + 3.22.0 + Grbd + grbd + https://github.com/mono/gtk-sharp/blob/master/COPYING + https://github.com/mono/gtk-sharp + https://upload.wikimedia.org/wikipedia/en/5/5f/Gtk_Sharp_Logo.png + false + Gtk# is a .NET language binding for the GTK+ toolkit and assorted GNOME libraries. Gtk# is free software, licensed under the GNU LGPL. + Copyright 2016 + GTK3 GTK# gtk3-sharp + + \ No newline at end of file diff --git a/NuGet/misc/GtkSharp.targets b/NuGet/misc/GtkSharp.targets new file mode 100644 index 000000000..2ac7cc5a3 --- /dev/null +++ b/NuGet/misc/GtkSharp.targets @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/NuGet/pybuild/Helper.py b/NuGet/pybuild/Helper.py new file mode 100644 index 000000000..fa4d69203 --- /dev/null +++ b/NuGet/pybuild/Helper.py @@ -0,0 +1,101 @@ +#!/usr/bin/python3 +"""Helper Functions""" + +import os +from os.path import join + +from executor import ExternalCommand + + +class Helper(object): + @staticmethod + def emptydir(top): + """Empty a Directory""" + if top == '/' or top == "\\": + return + else: + for root, dirs, files in os.walk(top, topdown=False): + for name in files: + os.remove(os.path.join(root, name)) + for name in dirs: + os.rmdir(os.path.join(root, name)) + + @staticmethod + def run_cmd(cmdarray, workdir): + """Run a command on the shell""" + cmd = ExternalCommand(*cmdarray, capture=True, capture_stderr=True, async=True, shell=False, directory=workdir) + cmd.start() + last_out = '' + last_err = '' + while cmd.is_running: + new_out = cmd.stdout.decode(cmd.encoding, 'ignore').replace(last_out, '') + new_err = cmd.stderr.decode(cmd.encoding, 'ignore').replace(last_err, '') + + last_out += new_out + last_err += new_err + new_out = new_out.replace(u"\u2018", "'").replace(u"\u2019", "'") + new_err = new_err.replace(u"\u2018", "'").replace(u"\u2019", "'") + if new_out != '': + print(new_out, end='') + if new_err != '': + print(new_err, end='') + + if cmd.returncode != 0: + raise RuntimeError('Failure to run command') + return cmd + + @staticmethod + def winpath_to_msyspath(winpath): + """Convert a Windows path to a Msys type path""" + winpath = '/' + winpath[0] + winpath[2:].replace('\\', '/') + return winpath + + @staticmethod + def get_gtksharp_version(srcdir): + """Get the Version of GTK Sharp in use from the source directory""" + ret = None + with open(join(srcdir, 'configure.ac')) as f: + for line in f: + if line.startswith('AC_INIT'): + ret = line + ret = ret.replace('AC_INIT(gtk-sharp,', '') + ret = ret.replace(' ', '') + ret = ret.replace(')\n', '') + break + return ret + + @staticmethod + def install_pacman_deps(): + Helper.run_pacman_cmd(['-Sy']) + + args = ['--needed', '--nodeps', '--noprogressbar', '--noconfirm', '-S'] + args += 'unzip autoconf automake libtool pkg-config make'.split(' ') + + deps_arch = 'gcc glib2 pango atk gtk3 zlib libiconv' + args += ['mingw-w64-i686-{0}'.format(i) for i in deps_arch.split(' ')] + args += ['mingw-w64-x86_64-{0}'.format(i) for i in deps_arch.split(' ')] + + Helper.run_pacman_cmd(args) + + @staticmethod + def run_pacman_cmd(pacman_args): + msyspath = 'C:\\msys64' + pacman_path = join(msyspath, 'usr\\bin\\pacman.exe') + return Helper.run_cmd([pacman_path] + pacman_args, msyspath) + + @staticmethod + def get_gtk_version_msys(msyspath): + ret = '' + pacman_path = join(msyspath, 'usr\\bin\\pacman.exe') + # pull version from msys2 / pacman + # pacman -Qi mingw-w64-i686-gtk3 + cmd = Helper.run_cmd([pacman_path, '-Qi', 'mingw-w64-i686-gtk3'], msyspath) + + for line in cmd.output.split('\n'): + if 'Version' in line: + ret = line.replace('Version', '') + ret = ret.replace(' ', '').replace(':', '') + if '-' in ret: + ret = ret[:-2] + break + return ret diff --git a/NuGet/pybuild/ProfileBase.py b/NuGet/pybuild/ProfileBase.py new file mode 100644 index 000000000..cb64d8cb5 --- /dev/null +++ b/NuGet/pybuild/ProfileBase.py @@ -0,0 +1,88 @@ +#!/usr/bin/python3 +"""Base class for Settings profiles""" + +import os +import shutil +from os.path import abspath, join +from xml.etree import ElementTree as et + +from pybuild.Helper import Helper + + +class ProfileBase(object): + def __init__(self): + """Class Init""" + self._NuGetPath = 'nuget.exe' + self._SrcDir = '../' + self._BuildDir = './build' + self._PackageDestination = './nupkg' + self._NuGet_PackageName = '' + self._MsysPath = 'C:\\msys64' + self._LinuxBashPath = '/bin/bash' + self._Version = '0.0.0' + + @property + def NuGetPath(self): + return self._NuGetPath + + @property + def SrcDir(self): + return abspath(self._SrcDir) + + @property + def BuildDir(self): + return abspath(self._BuildDir) + + @property + def Build_NugetDir(self): + return abspath(join(self._BuildDir, 'nuget')) + + @property + def PackageDestination(self): + return abspath(self._PackageDestination) + + @property + def NuGet_PackageName(self): + return self._NuGet_PackageName + + @property + def MsysPath(self): + return abspath(self._MsysPath) + + @property + def LinuxBashPath(self): + return abspath(self._LinuxBashPath) + + @property + def Version(self): + return self._Version + + @staticmethod + def clean(): + """Clean the build dir""" + Helper.emptydir('./build') + print("Clean finished") + + def build_nuget(self): + """Package up a nuget file based on the default build""" + + # Copy Nuget Spec file + shutil.copy('./misc/GtkSharp.nuspec', self.Build_NugetDir) + + # Edit the XML version / package name in the .nuspec file + nuspecfile = join(self.Build_NugetDir, 'GtkSharp.nuspec') + et.register_namespace('', 'http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd') + tree = et.parse(nuspecfile) + xmlns = {'nuspec': '{http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd}'} + tree.find('.//{nuspec}version'.format(**xmlns)).text = self.Version + tree.find('.//{nuspec}id'.format(**xmlns)).text = self.NuGet_PackageName + tree.write(nuspecfile) + + # Run Nuget + Helper.run_cmd([self.NuGetPath, 'pack', 'GtkSharp.nuspec'], self.Build_NugetDir) + + # Copy Nuget files out of build directory + nugetfile = join(self.Build_NugetDir, self.NuGet_PackageName + '.' + self.Version + '.nupkg') + os.makedirs(self.PackageDestination, exist_ok=True) + shutil.copy(nugetfile, self.PackageDestination) + print('Generation of Nuget package complete - ' + self.NuGet_PackageName) diff --git a/NuGet/pybuild/__init__.py b/NuGet/pybuild/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/NuGet/pybuild/profiles/Glue_Win32.py b/NuGet/pybuild/profiles/Glue_Win32.py new file mode 100644 index 000000000..86117a4d3 --- /dev/null +++ b/NuGet/pybuild/profiles/Glue_Win32.py @@ -0,0 +1,54 @@ +#!/usr/bin/python3 + +import ntpath +import os +import shutil +from glob import glob +from os.path import abspath, join + +from pybuild.Helper import Helper +from pybuild.ProfileBase import ProfileBase +from pybuild.profiles.GtkSharp import GtkSharp + + +class Glue_Win32(ProfileBase): + def __init__(self): + """Class Init""" + super().__init__() + self._NuGet_PackageName = 'GtkSharp.Win32.Glue' + self._Version = Helper.get_gtksharp_version(self.SrcDir) + self.MSYSTEM = 'MINGW32' + + def Get_Dlls_GtkSharp_Glue(self): + ret = [] + + # Gtksharp Glue libs + ret.append(['atk/glue/.libs/*atksharpglue-3.dll', 'atksharpglue-3.dl_']) + ret.append(['pango/glue/.libs/*pangosharpglue-3.dll', 'pangosharpglue-3.dl_']) + ret.append(['gio/glue/.libs/*giosharpglue-3.dll', 'giosharpglue-3.dl_']) + ret.append(['gtk/glue/.libs/*gtksharpglue-3.dll', 'gtksharpglue-3.dl_']) + return ret + + def build(self): + """Package up a nuget file based on the default build""" + + if os.name != 'nt': + print("Skipping Native Nuget package build, as this needs to be run on Windows") + return + + # Trigger build of gtksharp with specific bash for Mingw32 + builder = GtkSharp() + builder.MSYSTEM = self.MSYSTEM + builder.build() + + net45_build_dir = join(self.Build_NugetDir, 'build', 'net45') + os.makedirs(net45_build_dir, exist_ok=True) + + print('Copying Files') + dll_list = self.Get_Dlls_GtkSharp_Glue() + + for item in dll_list: + src = glob(abspath(join(self.SrcDir, item[0])))[0] + f_basename, f_extension = os.path.splitext(ntpath.basename(src)) + dest = join(net45_build_dir, item[1]) + shutil.copy(src, dest) diff --git a/NuGet/pybuild/profiles/Glue_Win64.py b/NuGet/pybuild/profiles/Glue_Win64.py new file mode 100644 index 000000000..60f741fa9 --- /dev/null +++ b/NuGet/pybuild/profiles/Glue_Win64.py @@ -0,0 +1,13 @@ +#!/usr/bin/python3 + +from pybuild.Helper import Helper +from pybuild.profiles.Glue_Win32 import Glue_Win32 + + +class Glue_Win64(Glue_Win32): + def __init__(self): + """Class Init""" + super().__init__() + self._NuGet_PackageName = 'GtkSharp.Win64.Glue' + self._Version = Helper.get_gtksharp_version(self.SrcDir) + self.MSYSTEM = 'MINGW64' diff --git a/NuGet/pybuild/profiles/GtkSharp.py b/NuGet/pybuild/profiles/GtkSharp.py new file mode 100644 index 000000000..5b3660800 --- /dev/null +++ b/NuGet/pybuild/profiles/GtkSharp.py @@ -0,0 +1,73 @@ +#!/usr/bin/python3 +import os +import shutil +from os.path import abspath, join + +from pybuild.Helper import Helper +from pybuild.ProfileBase import ProfileBase + + +class GtkSharp(ProfileBase): + def __init__(self): + """Class Init""" + super().__init__() + self._NuGet_PackageName = 'GtkSharp' + self._Version = Helper.get_gtksharp_version(self.SrcDir) + self.MSYSTEM = 'MINGW64' + + @property + def Build_ScriptDir(self): + return abspath(join(self._BuildDir, 'scripts')) + + def build(self): + """Build the gtksharp binaries for .Net 4.5""" + os.makedirs(self.Build_ScriptDir, exist_ok=True) + buildfile = join(self.Build_ScriptDir, 'net45_build.sh') + buildbatch = join(self.Build_ScriptDir, 'net45_build.bat') + + # run script via MSYS for windows, or shell for linux + if os.name == 'nt': + print("Building .Net GtkSharp using MSYS2") + with open(buildfile, 'w') as f: + f.write('PATH=/c/Program\ Files\ \(x86\)/Microsoft\ SDKs/Windows/v10.0A/bin/NETFX\ 4.6\ Tools/:$PATH\n') + f.write('PATH=/c/Windows/Microsoft.NET/Framework/v4.0.30319/:$PATH\n') + f.write('cd ' + Helper.winpath_to_msyspath(self.SrcDir + '\n')) + f.write('./autogen.sh --prefix=/tmp/install\n') + f.write('make clean\n') + f.write('make\n') + + bashexe = join(self.MsysPath, 'usr\\bin\\bash.exe') + + with open(buildbatch, 'w') as f: + f.write('set MSYSTEM=' + self.MSYSTEM + '\n') + f.write(bashexe + ' --login ' + buildfile) + + cmds = ['C:\Windows\System32\cmd.exe', '/C', buildbatch] + cmd = Helper.run_cmd(cmds, self.SrcDir) + + else: + print("Building using Linux shell") + with open(buildfile, 'w') as f: + f.write('cd ' + self.SrcDir + '\n') + f.write('./autogen.sh --prefix=/tmp/install\n') + f.write('make clean\n') + f.write('make\n') + cmds = [self.LinuxBashPath, buildfile] + cmd = Helper.run_cmd(cmds, self.SrcDir) + + def copy(self): + """Copy the .Net 4.5 dll's to the build dir""" + + net45_build_dir = join(self.Build_NugetDir, 'build', 'net45') + net45_lib_dir = join(self.Build_NugetDir, 'lib', 'net45') + + os.makedirs(net45_build_dir, exist_ok=True) + os.makedirs(net45_lib_dir, exist_ok=True) + shutil.copy('./misc/GtkSharp.targets', net45_build_dir) + + dll_list = ['atk', 'cairo', 'gdk', 'gio', 'glib', 'gtk', 'pango'] + for item in dll_list: + shutil.copy(join(self.SrcDir, item, item + "-sharp.dll"), net45_lib_dir) + shutil.copy(join(self.SrcDir, item, item + "-sharp.pdb"), net45_lib_dir) + if item != 'cairo': + shutil.copy(join(self.SrcDir, item, item + '-sharp.dll.config'), net45_build_dir) diff --git a/NuGet/pybuild/profiles/GtkSharp_Core.py b/NuGet/pybuild/profiles/GtkSharp_Core.py new file mode 100644 index 000000000..18640ecf7 --- /dev/null +++ b/NuGet/pybuild/profiles/GtkSharp_Core.py @@ -0,0 +1,155 @@ +#!/usr/bin/python3 +import os +import shutil +from glob import glob +from os.path import abspath, join + +import vsgen + +from pybuild.Helper import Helper +from pybuild.ProfileBase import ProfileBase +from pybuild.vsgenext.CoreVSProject import CoreVSProject + + +# Note at this stage we can't complile GtkSharp using the .Net Core platform libraries, such as netstandard1.6 +# https://docs.microsoft.com/en-us/dotnet/articles/standard/library +# This is due to some small api changes in the platform that the Gtksharp code would need to be adjusted to + +# We can however use the newer dotnet build system specifying the net461 platform +# This is the same set of platform libs under the surface (using mono) but a step in the right direction +# with modernising the build system. One advantage to this newer build system is that we don't need to list all the .cs files +# Within the project files (see generated .xproj file and project.json) + +# TODO look into package for symbols, via NuGet -symbols + +class GtkSharp_Core(ProfileBase): + def __init__(self): + """Class Init""" + super().__init__() + self._NuGet_PackageName = 'GtkSharp.Core' + self._Version = Helper.get_gtksharp_version(self.SrcDir) + self.Solution = None + self.BuildConfig = 'Release' + + @property + def Build_CoreDir(self): + return abspath(join(self._BuildDir, 'core')) + + @property + def Dotnet_BuildExe(self): + return 'dotnet.exe' + + def Copy_CS_Files(self, csfiles): + srclist = glob(join(self.SrcDir, csfiles[0])) + destdir = join(self.Build_CoreDir, csfiles[1]) + os.makedirs(destdir, exist_ok=True) + for fname in srclist: + shutil.copy(fname, destdir) + + def SetupProject(self, projname): + proj = CoreVSProject() + proj.Name = projname + proj.RootNamespace = projname + proj.FileName = join(self.Build_CoreDir, projname, projname + '.xproj') + proj.Frameworks = {'net461': {}} + proj.Depends = {} + proj.BuildOptions = {"allowUnsafe": True, "outputName": projname + "-sharp"} + proj.Version = self._Version + self.Solution.Projects.append(proj) + self.Solution.write() + return proj + + def Build_Project(self, proj): + projdir = join(self.Build_CoreDir, proj.Name) + Helper.run_cmd([self.Dotnet_BuildExe, 'restore'], projdir) + Helper.run_cmd([self.Dotnet_BuildExe, 'build', + '--configuration', self.BuildConfig, + '--framework', 'net461', + '--output', join(self.Build_CoreDir, 'build')] + , projdir) + + def build(self): + """Build the gtksharp binaries for .Net 4.5""" + os.makedirs(self.Build_CoreDir, exist_ok=True) + self.Solution = vsgen.solution.VSGSolution() + self.Solution.FileName = join(self.Build_CoreDir, 'GtkSharp.sln') + + # Build Glib + self.Copy_CS_Files(['glib/*.cs', 'glib/']) + proj = self.SetupProject('glib') + proj.write() + self.Build_Project(proj) + + # Build Gio + self.Copy_CS_Files(['gio/*.cs', 'gio/']) + self.Copy_CS_Files(['gio/generated/GLib/*.cs', 'gio/generated/GLib/']) + proj = self.SetupProject('gio') + proj.Depends = {'glib': self._Version} + proj.write() + self.Build_Project(proj) + + # Build Cairo + self.Copy_CS_Files(['cairo/*.cs', 'cairo/']) + proj = self.SetupProject('cairo') + proj.write() + self.Build_Project(proj) + + # Build Pango + self.Copy_CS_Files(['pango/*.cs', 'pango/']) + self.Copy_CS_Files(['pango/generated/Pango/*.cs', 'pango/generated/Pango/']) + proj = self.SetupProject('pango') + proj.Depends = {'glib': self._Version, + 'cairo': self._Version} + proj.write() + self.Build_Project(proj) + + # Build Atk + self.Copy_CS_Files(['atk/*.cs', 'atk/']) + self.Copy_CS_Files(['atk/generated/Atk/*.cs', 'atk/generated/Atk/']) + proj = self.SetupProject('atk') + proj.Depends = {'glib': self._Version} + proj.write() + self.Build_Project(proj) + + # Build Gdk + self.Copy_CS_Files(['gdk/*.cs', 'gdk/']) + self.Copy_CS_Files(['gdk/generated/Gdk/*.cs', 'gdk/generated/Gdk/']) + self.Copy_CS_Files(['gdk/generated/GLib/*.cs', 'gdk/generated/GLib/']) + proj = self.SetupProject('gdk') + proj.Depends = {'atk': self._Version, + 'cairo': self._Version, + 'gio': self._Version, + 'glib': self._Version, + 'pango': self._Version} + proj.write() + self.Build_Project(proj) + + # Build Gtk + self.Copy_CS_Files(['gtk/*.cs', 'gtk/']) + self.Copy_CS_Files(['gtk/generated/GLib/*.cs', 'gtk/generated/GLib/']) + self.Copy_CS_Files(['gtk/generated/Gtk/*.cs', 'gtk/generated/Gtk/']) + proj = self.SetupProject('gtk') + proj.Depends = {'gdk': self._Version, + 'glib': self._Version} + proj.write() + self.Build_Project(proj) + + def copy_dll(self): + """Copy the .Net 4.5 dll's to the build dir""" + + net45_build_dir = join(self.Build_NugetDir, 'build', 'net45') + net45_lib_dir = join(self.Build_NugetDir, 'lib', 'net45') + + os.makedirs(net45_build_dir, exist_ok=True) + os.makedirs(net45_lib_dir, exist_ok=True) + shutil.copy('./misc/GtkSharp.targets', net45_build_dir) + + srclist = glob(join(self.Build_CoreDir, 'build', '*.dll')) + for item in srclist: + shutil.copy(item, net45_lib_dir) + + # Get the Config files + dll_list = ['atk', 'cairo', 'gdk', 'gio', 'glib', 'gtk', 'pango'] + for item in dll_list: + if item != 'cairo': + shutil.copy(join(self.SrcDir, item, item + '-sharp.dll.config'), net45_build_dir) diff --git a/NuGet/pybuild/profiles/Gtk_Win32.py b/NuGet/pybuild/profiles/Gtk_Win32.py new file mode 100644 index 000000000..311fb87a2 --- /dev/null +++ b/NuGet/pybuild/profiles/Gtk_Win32.py @@ -0,0 +1,103 @@ +#!/usr/bin/python3 +"""Build of GTK3 into a NuGet package - Windows 32bit""" + +import ntpath +import os +import shutil +from glob import iglob +from os.path import abspath, join + +from pybuild.Helper import Helper +from pybuild.ProfileBase import ProfileBase + + +class Gtk_Win32(ProfileBase): + def __init__(self): + """Class Init""" + super().__init__() + self._NuGet_PackageName = 'GtkSharp.Win32' + self._MingwBinPath = join(self.MsysPath + '\\mingw32\\bin') + self.arch = 'Win32' + self._Version = Helper.get_gtk_version_msys(self.MsysPath) + + @property + def MingwBinPath(self): + return abspath(self._MingwBinPath) + + def Get_Dlls_Native_GTK(self): + ret = [] + + # Gtk + ret.append('libgtk-3-0.dll') + ret.append('libgdk-3-0.dll') + + # atk + ret.append('libatk-1.0-0.dll') + + # cairo + ret.append('libcairo-2.dll') + ret.append('libcairo-gobject-2.dll') + + # gdk-pixbuf + ret.append('libgdk_pixbuf-2.0-0.dll') + + # glib2 + ret.append('libgio-2.0-0.dll') + ret.append('libglib-2.0-0.dll') + ret.append('libgmodule-2.0-0.dll') + ret.append('libgobject-2.0-0.dll') + + # pango + ret.append('libpango-1.0-0.dll') + ret.append('libpangocairo-1.0-0.dll') + ret.append('libpangoft2-1.0-0.dll') + ret.append('libpangowin32-1.0-0.dll') + return ret + + def Get_Dlls_Native_GTK_Deps(self): + ret = [] + # Determined by using PE Explorer + ret.append('libgcc_*.dll') + ret.append('libepoxy-0.dll') + ret.append('libintl-8.dll') + ret.append('libwinpthread-1.dll') + ret.append('libiconv-2.dll') + ret.append('libfontconfig-1.dll') + ret.append('libexpat-1.dll') + ret.append('libfreetype-6.dll') + ret.append('libpixman-1-0.dll') + ret.append('libpng16-16.dll') + ret.append('zlib1.dll') + ret.append('libpcre-1.dll') + ret.append('libffi-6.dll') + ret.append('libharfbuzz-0.dll') + ret.append('libgraphite2.dll') + ret.append('libstdc++-6.dll') + ret.append('libbz2-1.dll') + return ret + + def build(self): + """Package up a nuget file based on the default build""" + + if os.name != 'nt': + print("Skipping Native Nuget package build, as this needs to be run on Windows") + return + + net45_build_dir = join(self.Build_NugetDir, 'build', 'net45') + os.makedirs(net45_build_dir, exist_ok=True) + + print('Copying Files') + shutil.copy('./misc/GtkSharp.Native.targets', join(net45_build_dir, 'GtkSharp.' + self.arch + '.targets')) + + # Copy dlls + dll_list = [] + dll_list += self.Get_Dlls_Native_GTK() + dll_list += self.Get_Dlls_Native_GTK_Deps() + + for item in dll_list: + src = join(self.MingwBinPath, item) + + srclist = iglob(src) + for fname in srclist: + f_basename, f_extension = os.path.splitext(ntpath.basename(fname)) + shutil.copy(fname, join(net45_build_dir, f_basename + '.dl_')) diff --git a/NuGet/pybuild/profiles/Gtk_Win64.py b/NuGet/pybuild/profiles/Gtk_Win64.py new file mode 100644 index 000000000..97e8fe839 --- /dev/null +++ b/NuGet/pybuild/profiles/Gtk_Win64.py @@ -0,0 +1,17 @@ +#!/usr/bin/python3 +"""Build of GTK3 into a NuGet package - Windows 64bit""" + +from os.path import join + +from pybuild.Helper import Helper +from pybuild.profiles.Gtk_Win32 import Gtk_Win32 + + +class Gtk_Win64(Gtk_Win32): + def __init__(self): + """Class Init""" + super().__init__() + self._NuGet_PackageName = 'GtkSharp.Win64' + self._MingwBinPath = join(self.MsysPath + '\\mingw64\\bin') + self.arch = 'Win64' + self._Version = Helper.get_gtk_version_msys(self.MsysPath) diff --git a/NuGet/pybuild/profiles/__init__.py b/NuGet/pybuild/profiles/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/NuGet/pybuild/vsgenext/CoreVSProject.py b/NuGet/pybuild/vsgenext/CoreVSProject.py new file mode 100644 index 000000000..79dcca987 --- /dev/null +++ b/NuGet/pybuild/vsgenext/CoreVSProject.py @@ -0,0 +1,146 @@ +#!/usr/bin/python3 + +import json +import os +from collections import OrderedDict +from os.path import join +from xml.etree import ElementTree as et + +from vsgen.project import VSGProject +from yattag import indent + + +class CoreVSProject(VSGProject): + """ + CoreVSProject extends :class:`~vsgen.project.VSGProject` with data and logic needed to create a `.xproj` file. + :ivar str TargetFrameworkVersion: The target framework version. + :ivar str BaseIntermediateOutputPath: Intermediate path for building the output. + :ivar str ProjectXml: Override the xml within the .xproj file. + :ivar str ProjectJson: Override the json within the project.lock file. + """ + __project_type__ = 'netcore' + + __writable_name__ = "Visual Studio .Net Core Project" + + __registerable_name__ = "Visual Studio C# Compiler" + + def __init__(self, **kwargs): + """ + Constructor. + :param kwargs: List of arbitrary keyworded arguments to be processed as instance variable data + """ + super(CoreVSProject, self).__init__(**kwargs) + + def _import(self, datadict): + """ + Internal method to import instance variables data from a dictionary + :param dict datadict: The dictionary containing variables values. + """ + super(CoreVSProject, self)._import(datadict) + self.TargetFrameworkVersion = datadict.get('TargetFrameworkVersion', 'v4.6.1') + self.BaseIntermediateOutputPath = datadict.get('BaseIntermediateOutputPath', '.\obj') + self.ProjectXml = datadict.get('ProjectXml', None) + self.ProjectJson = datadict.get('ProjectJson', None) + self.Version = datadict.get('Version', '1.0.0-*') + self.Depends = datadict.get('Depends', {'NETStandard.Library': '1.6.0'}) + self.Frameworks = datadict.get('Frameworks', None) + self.BuildOptions = datadict.get('BuildOptions', None) + + def get_project_json(self): + """ + Get the json for use in Project.lock + """ + + data = OrderedDict() + ver = {'version': self.Version} + data.update(ver) + + depends = self.Depends + depends2 = {'dependencies': depends} + data.update(depends2) + + if self.Frameworks is not None: + frameworks = {'frameworks': self.Frameworks} + else: + frameworks = {'frameworks': {'netstandard1.6': {'imports': 'dnxcore50'}}} + data.update(frameworks) + + if self.BuildOptions is not None: + buildopts = {'buildOptions': self.BuildOptions} + data.update(buildopts) + + return data + + def get_project_xml(self): + """ + Get the xml for use in the xproj file + """ + + xml_projroot = et.Element('Project') + xml_projroot.set('ToolsVersion', '14.0') + xml_projroot.set('DefaultTargets', 'Build') + xml_projroot.set('xmlns', 'http://schemas.microsoft.com/developer/msbuild/2003') + + propgroup1 = et.SubElement(xml_projroot, 'PropertyGroup') + studiover = et.SubElement(propgroup1, 'VisualStudioVersion') + studiover.set('Condition', "'$(VisualStudioVersion)' == ''") + studiover.text = '14.0' + vstoolspath = et.SubElement(propgroup1, 'VSToolsPath') + vstoolspath.set('Condition', "'$(VSToolsPath)' == ''") + vstoolspath.text = r"$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)" + + import1 = et.SubElement(xml_projroot, 'Import') + import1.set('Project', '$(VSToolsPath)\DotNet\Microsoft.DotNet.Props') + import1.set('Condition', "'$(VSToolsPath)' != ''") + + propgroup2 = et.SubElement(xml_projroot, 'PropertyGroup') + propgroup2.set('Label', 'Globals') + projguid = et.SubElement(propgroup2, 'ProjectGuid') + projguid.text = self.lower(self.GUID) + rootnamespace = et.SubElement(propgroup2, 'RootNamespace') + rootnamespace.text = self.RootNamespace + baseintermediateoutputpath = et.SubElement(propgroup2, 'BaseIntermediateOutputPath') + baseintermediateoutputpath.set('Condition', "'$(BaseIntermediateOutputPath)'=='' ") + baseintermediateoutputpath.text = self.BaseIntermediateOutputPath + targetframeworkversion = et.SubElement(propgroup2, 'TargetFrameworkVersion') + targetframeworkversion.text = self.TargetFrameworkVersion + + propgroup3 = et.SubElement(xml_projroot, 'PropertyGroup') + schemaver = et.SubElement(propgroup3, 'SchemaVersion') + schemaver.text = '2.0' + + import2 = et.SubElement(xml_projroot, 'Import') + import2.set('Project', '$(VSToolsPath)\DotNet\Microsoft.DotNet.targets') + import2.set('Condition', "'$(VSToolsPath)' != ''") + + etstr = et.tostring(xml_projroot, encoding='utf-8', method='xml').decode('utf-8') + outtxt = indent(etstr) + return outtxt + + def write(self): + """ + Creates the project files. + """ + npath = os.path.normpath(self.FileName) + (filepath, filename) = os.path.split(npath) + os.makedirs(filepath, exist_ok=True) + + projectFileName = os.path.normpath(self.FileName) + projxml = '' + if self.ProjectXml is None: + projxml = self.get_project_xml() + else: + projxml = self.ProjectXml + with open(projectFileName, 'wt') as f: + f.write(projxml) + + jsonFileName = join(filepath, 'project.json') + + if self.ProjectJson is None: + projjson = self.get_project_json() + else: + projjson = self.ProjectJson + + with open(jsonFileName, 'w') as f: + txt = json.dumps(projjson, indent=2, separators=(',', ': ')) + f.write(txt) diff --git a/NuGet/pybuild/vsgenext/__init__.py b/NuGet/pybuild/vsgenext/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/NuGet/vs/GtkSharp-NugetBuild.sln b/NuGet/vs/GtkSharp-NugetBuild.sln new file mode 100644 index 000000000..5301fc15e --- /dev/null +++ b/NuGet/vs/GtkSharp-NugetBuild.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.25420.1 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "App", "App", "{52C7113D-CB6A-4A0E-AD00-F2840069C3A5}" +EndProject +Project("{888888A0-9F3D-457C-B088-3A5042F75D52}") = "GtkSharp-NugetBuild", "GtkSharp-NugetBuild\GtkSharp-NugetBuild.pyproj", "{222475C5-78B6-4961-9552-D83D2C65A9A1}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {222475C5-78B6-4961-9552-D83D2C65A9A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {222475C5-78B6-4961-9552-D83D2C65A9A1}.Release|Any CPU.ActiveCfg = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {222475C5-78B6-4961-9552-D83D2C65A9A1} = {52C7113D-CB6A-4A0E-AD00-F2840069C3A5} + EndGlobalSection +EndGlobal diff --git a/NuGet/vs/GtkSharp-NugetBuild/GtkSharp-NugetBuild.pyproj b/NuGet/vs/GtkSharp-NugetBuild/GtkSharp-NugetBuild.pyproj new file mode 100644 index 000000000..6a9c1dcc7 --- /dev/null +++ b/NuGet/vs/GtkSharp-NugetBuild/GtkSharp-NugetBuild.pyproj @@ -0,0 +1,93 @@ + + + + Debug + 2.0 + 222475c5-78b6-4961-9552-d83d2c65a9a1 + + + ..\..\build.py + ..\..\;..\..\pybuild\;..\..\pybuild\vsgen\ + ..\..\ + . + GtkSharp-NugetBuild + GtkSharp3-Build + False + {9a7a9026-48c1-4688-9d5d-e5699d47d074} + 3.5 + Standard Python launcher + False + all + + + true + false + + + true + false + + + 10.0 + $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Python Tools\Microsoft.PythonTools.targets + + + + + + + build.py + + + pybuild\Helper.py + + + pybuild\ProfileBase.py + + + pybuild\profiles\Glue_Win32.py + + + pybuild\profiles\Glue_Win64.py + + + pybuild\profiles\GtkSharp.py + + + pybuild\profiles\GtkSharp_Core.py + + + pybuild\profiles\Gtk_Win32.py + + + pybuild\profiles\Gtk_Win64.py + + + pybuild\profiles\__init__.py + + + pybuild\vsgenext\CoreVSProject.py + + + pybuild\vsgenext\__init__.py + + + pybuild\__init__.py + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/README b/README index c4fc25d2c..ed0139220 100644 --- a/README +++ b/README @@ -96,7 +96,7 @@ Developers: For developers wishing to "get started" with Gtk#, they are encouraged to read the Mono Hand Book: - http://www.mono-project.com/Monkeyguide + http://www.mono-project.com/docs/gui/gtksharp/ Hackers: diff --git a/atk/atk-api.raw b/atk/atk-api.raw index 86cf5c8dd..4be018fc8 100644 --- a/atk/atk-api.raw +++ b/atk/atk-api.raw @@ -138,6 +138,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -180,6 +214,10 @@ + + + + @@ -228,6 +266,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + @@ -240,28 +303,28 @@ - - + + - + - + - - + + @@ -274,7 +337,6 @@ - @@ -287,19 +349,19 @@ - + - + - + @@ -312,7 +374,7 @@ - + @@ -480,7 +542,7 @@ - + @@ -513,7 +575,7 @@ - + @@ -521,7 +583,7 @@ - + @@ -542,7 +604,7 @@ - + @@ -583,10 +645,8 @@ - - - - + + @@ -600,8 +660,14 @@ + + + + + + - + @@ -609,7 +675,7 @@ - + @@ -617,7 +683,7 @@ - + @@ -629,6 +695,14 @@ + + + + + + + + @@ -638,15 +712,21 @@ - + + + + - + - + + + + @@ -668,8 +748,6 @@ - - @@ -777,7 +855,6 @@ - @@ -797,9 +874,6 @@ - - - @@ -850,7 +924,6 @@ - @@ -861,7 +934,7 @@ - + @@ -878,7 +951,7 @@ - + @@ -939,8 +1012,6 @@ - - @@ -1035,7 +1106,7 @@ - + @@ -1047,7 +1118,7 @@ - + @@ -1071,7 +1142,7 @@ - + @@ -1116,10 +1187,6 @@ - - - - @@ -1214,7 +1281,7 @@ - + @@ -1226,7 +1293,7 @@ - + @@ -1351,7 +1418,7 @@ - + @@ -1376,7 +1443,7 @@ - + @@ -1389,7 +1456,7 @@ - + @@ -1511,6 +1578,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1537,7 +1686,7 @@ - + @@ -1546,6 +1695,22 @@ + + + + + + + + + + + + + + + + @@ -1696,6 +1861,15 @@ + + + + + + + + + @@ -1805,6 +1979,15 @@ + + + + + + + + + @@ -1812,7 +1995,7 @@ - + @@ -1821,7 +2004,7 @@ - + @@ -1830,7 +2013,7 @@ - + @@ -1871,8 +2054,19 @@ - + + + + + + + + + + + + @@ -1903,39 +2097,106 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + - + - + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2066,16 +2327,16 @@ - + - + - + - + @@ -2090,10 +2351,12 @@ + + @@ -2141,8 +2404,8 @@ + - @@ -2202,11 +2465,11 @@ - + - + @@ -2293,6 +2556,10 @@ + + + + @@ -2300,7 +2567,7 @@ - + @@ -2315,18 +2582,15 @@ - - - - - - + + + @@ -2349,6 +2613,9 @@ + + + @@ -2361,7 +2628,7 @@ - + @@ -2567,6 +2834,13 @@ + + + + + + + @@ -2728,10 +3002,10 @@ - + - + @@ -2762,6 +3036,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2773,21 +3074,25 @@ - + - + + + + + - + @@ -2807,12 +3112,27 @@ + + + + + + + + + + + + + + + @@ -2825,7 +3145,7 @@ - + @@ -2861,7 +3181,7 @@ - + @@ -2869,13 +3189,13 @@ - + - + diff --git a/atk/atk.csproj b/atk/atk.csproj index bf262bbe4..824da7ce4 100644 --- a/atk/atk.csproj +++ b/atk/atk.csproj @@ -1,5 +1,5 @@ - + Debug x86 @@ -9,7 +9,8 @@ Library atk atk-sharp - v3.5 + v4.0 + true @@ -127,6 +128,21 @@ + + + + + + + + + + + + + + Properties\AssemblyInfo.cs + @@ -134,12 +150,10 @@ glib - - - + PreserveNewest - \ No newline at end of file + diff --git a/atk/generated/meson.build b/atk/generated/meson.build new file mode 100644 index 000000000..23819a454 --- /dev/null +++ b/atk/generated/meson.build @@ -0,0 +1,128 @@ +generated_sources = [ + 'Atk_ActionAdapter.cs', + 'Atk_AtkSharp.FocusHandlerNative.cs', + 'Atk_NoOpObjectFactory.cs', + 'Atk_TextRange.cs', + 'Atk_TextBoundary.cs', + 'Atk_GObjectAccessible.cs', + 'Atk_IText.cs', + 'Atk_AtkSharp.KeySnoopFuncNative.cs', + 'Atk_ChildrenChangedHandler.cs', + 'Atk_PropertyValues.cs', + 'Atk_RealStateSet.cs', + 'Atk_NoOpObject.cs', + 'Atk_Object.cs', + 'Atk_EventListener.cs', + 'Atk_Layer.cs', + 'Atk_IHyperlinkImpl.cs', + 'Atk_FocusTracker.cs', + 'Atk_Rectangle.cs', + 'Atk_Global.cs', + 'Atk_IValue.cs', + 'Atk_ImageAdapter.cs', + 'Atk_TextRectangle.cs', + 'Atk_KeySnoopFunc.cs', + 'Atk_WindowAdapter.cs', + 'Atk_ColumnDeletedHandler.cs', + 'Atk_Relation.cs', + 'Atk_RelationType.cs', + 'Atk_FocusHandler.cs', + 'Atk_RowDeletedHandler.cs', + 'Atk_StateSet.cs', + 'Atk_StreamableContentAdapter.cs', + 'Atk_StateType.cs', + 'Atk_Range.cs', + 'Atk_TextClipType.cs', + 'Atk_IImplementor.cs', + 'Atk_AtkSharp.EventListenerNative.cs', + 'Atk_ITable.cs', + 'Atk_LinkSelectedHandler.cs', + 'Atk_IDocument.cs', + 'Atk_TextAdapter.cs', + 'Atk_AtkSharp.PropertyChangeHandlerNative.cs', + 'Atk_ComponentAdapter.cs', + 'Atk_EditableTextAdapter.cs', + 'Atk_KeyEventType.cs', + 'Atk_TableAdapter.cs', + 'Atk_EventListenerInit.cs', + 'Atk_ImplementorAdapter.cs', + 'Atk_AtkSharp.FunctionNative.cs', + 'Atk_ISelection.cs', + 'Atk_Attribute.cs', + 'Atk_SelectionAdapter.cs', + 'Atk_TextChangedHandler.cs', + 'Atk_FocusEventHandler.cs', + 'Atk_TextCaretMovedHandler.cs', + 'Atk_Role.cs', + 'Atk_BoundsChangedHandler.cs', + 'Atk_ColumnInsertedHandler.cs', + 'Atk_IWindow.cs', + 'Atk_TextInsertHandler.cs', + 'Atk_PropertyChangeEventHandler.cs', + 'Atk_ValueChangedHandler.cs', + 'Atk_RelationSet.cs', + 'Atk_TextGranularity.cs', + 'Atk_Registry.cs', + 'Atk_HyperlinkImplAdapter.cs', + 'Atk_UtilListenerInfo.cs', + 'Atk_Socket.cs', + 'Atk_IEditableText.cs', + 'Atk_ITableCell.cs', + 'Atk_CoordType.cs', + 'Atk_TableCellAdapter.cs', + 'Atk_ValueType.cs', + 'Atk_TextAttribute.cs', + 'Atk_AtkSharp.EventListenerInitNative.cs', + 'Atk_ValueAdapter.cs', + 'Atk_Plug.cs', + 'Atk_StateChangeHandler.cs', + 'Atk_KeyEventStruct.cs', + 'Atk_Function.cs', + 'Atk_Misc.cs', + 'Atk_PageChangedHandler.cs', + 'Atk_IStreamableContent.cs', + 'Atk_DocumentAdapter.cs', + 'Atk_RowInsertedHandler.cs', + 'Atk_IImage.cs', + 'Atk_StateManager.cs', + 'Atk_Focus.cs', + 'Atk_HyperlinkStateFlags.cs', + 'Atk_Util.cs', + 'Atk_ObjectFactory.cs', + 'Atk_HypertextAdapter.cs', + 'Atk_Hyperlink.cs', + 'Atk_ActiveDescendantChangedHandler.cs', + 'Atk_IHypertext.cs', + 'Atk_IComponent.cs', + 'Atk_TextRemoveHandler.cs', + 'Atk_PropertyChangeHandler.cs', + 'Atk_IAction.cs', +] + +source_gen = custom_target('atk_generated', + command: [ + generate_api, + '--api-raw', raw_api_fname, + '--gapi-fixup', gapi_fixup.full_path(), + '--metadata', metadata_fname, + '--gapi-codegen', gapi_codegen.full_path(), + '--extra-includes', glib_api_includes, + '--glue-file', gluefile, + '--glue-includes', glueincludes, + '--out', meson.current_build_dir(), + '--files', ';'.join(generated_sources), + '--assembly-name', meson.project_name() + ], + depends: [gapi_codegen, gapi_fixup], + input: raw_api_fname, + output: generated_sources, +) + +api_xml = custom_target(pkg + '_api_xml', + input: raw_api_fname, + output: pkg + '-api.xml', + command: [generate_api, '--fakeglue'], + depends: [source_gen], + install: true, + install_dir: gapi_xml_installdir) +atk_api_includes = join_paths(meson.current_build_dir(), 'atk-api.xml') diff --git a/atk/meson.build b/atk/meson.build new file mode 100644 index 000000000..a52a3b5f3 --- /dev/null +++ b/atk/meson.build @@ -0,0 +1,45 @@ +snk = join_paths(meson.current_source_dir(), '..', 'gtk-sharp.snk') +pkg = 'atk' + +assembly_name = pkg + '-sharp' +raw_api_fname = join_paths(meson.current_source_dir(), pkg + '-api.raw') +metadata_fname = join_paths(meson.current_source_dir(), 'Atk.metadata') +glueincludes = 'atk/atk.h' +gluefile = join_paths(meson.current_build_dir(), 'generate.c') + +configure_file(input: assembly_name + '.dll.config.in', + output: assembly_name + '.dll.config', + configuration : remap_dl_data) + +subdir('generated') + +sources = [ + 'Global.cs', + 'Hyperlink.cs', + 'Misc.cs', + 'Object.cs', + 'SelectionAdapter.cs', + 'TextAdapter.cs', + 'TextChangedDetail.cs', + 'Util.cs', +] + +atk_sharp = library(assembly_name, source_gen, sources, + cs_args: ['-unsafe', '-keyfile:' + snk], + link_with: glib_sharp, + install: true, + install_dir: lib_install_dir +) + +gluegen = custom_target('atkgluegen', + input: raw_api_fname, + output: 'generate.c', + command: [generate_api, '--fakeglue'], + depends: [source_gen]) + +library('atksharpglue-3', gluegen, + dependencies: [glib_dep, gio_dep, atk_dep], + install: true) + +install_infos += [assembly_name, atk_sharp.full_path()] +atk_sharp_dep = declare_dependency(link_with: [glib_sharp, atk_sharp]) diff --git a/audit/audit.csproj b/audit/audit.csproj index 5eecec0d7..19f2cedfe 100644 --- a/audit/audit.csproj +++ b/audit/audit.csproj @@ -1,5 +1,5 @@ - + Debug x86 @@ -9,7 +9,8 @@ Exe audit audit - v3.5 + v4.0 + true diff --git a/cairo/Context.cs b/cairo/Context.cs index a5902e8c9..05240fe33 100644 --- a/cairo/Context.cs +++ b/cairo/Context.cs @@ -259,7 +259,7 @@ public void SetDash (double [] dashes, double offset) NativeMethods.cairo_set_dash (handle, dashes, dashes.Length, offset); } - [Obsolete("Use GetSource/GetSource")] + [Obsolete("Use GetSource/SetSource")] public Pattern Pattern { set { SetSource (value); @@ -270,7 +270,7 @@ public Pattern Pattern { } //This is obsolete because it wasn't obvious it needed to be disposed - [Obsolete("Use GetSource/GetSource")] + [Obsolete("Use GetSource/SetSource")] public Pattern Source { set { SetSource (value); diff --git a/cairo/FontOptions.cs b/cairo/FontOptions.cs index e1fe2e5c1..aeb17f8f3 100644 --- a/cairo/FontOptions.cs +++ b/cairo/FontOptions.cs @@ -43,7 +43,7 @@ public FontOptions () : this (NativeMethods.cairo_font_options_create ()) Dispose (false); } - internal FontOptions (IntPtr handle) + public FontOptions (IntPtr handle) { if (handle == IntPtr.Zero) throw new ArgumentException ("handle should not be NULL", "handle"); diff --git a/cairo/Makefile.am b/cairo/Makefile.am index 826008d93..50d6b5061 100644 --- a/cairo/Makefile.am +++ b/cairo/Makefile.am @@ -6,6 +6,8 @@ SNK = $(srcdir)/mono.snk TARGET=$(ASSEMBLY) noinst_DATA = $(TARGET) +gapidir = $(datadir)/gapi-3.0 +gapi_DATA = cairo-api.xml CLEANFILES = $(ASSEMBLY) $(ASSEMBLY).mdb diff --git a/cairo/cairo.csproj b/cairo/cairo.csproj index a09505773..3b4d65db8 100644 --- a/cairo/cairo.csproj +++ b/cairo/cairo.csproj @@ -1,5 +1,5 @@ - + Debug x86 @@ -9,7 +9,8 @@ Library cairo cairo-sharp - v3.5 + v4.0 + true diff --git a/cairo/meson.build b/cairo/meson.build new file mode 100644 index 000000000..243ad7166 --- /dev/null +++ b/cairo/meson.build @@ -0,0 +1,76 @@ +snk = join_paths(meson.current_source_dir(), 'mono.snk') +assembly_name = 'cairo-sharp' + +raw_api_fname = join_paths(meson.current_source_dir(), 'cairo-api.raw') +metadata_fname = join_paths(meson.current_source_dir(), 'cairo.metadata') +glueincludes = '' +gluefile = join_paths(meson.current_build_dir(), 'generate.c') + +sources = [ + 'Antialias.cs', + 'Cairo.cs', + 'CairoDebug.cs', + 'Color.cs', + 'Content.cs', + 'Context.cs', + 'Device.cs', + 'DirectFBSurface.cs', + 'Distance.cs', + 'Extend.cs', + 'FillRule.cs', + 'Filter.cs', + 'FontExtents.cs', + 'FontFace.cs', + 'FontOptions.cs', + 'FontSlant.cs', + 'FontType.cs', + 'FontWeight.cs', + 'Format.cs', + 'GlitzSurface.cs', + 'Glyph.cs', + 'Gradient.cs', + 'HintMetrics.cs', + 'HintStyle.cs', + 'ImageSurface.cs', + 'LinearGradient.cs', + 'LineCap.cs', + 'LineJoin.cs', + 'Matrix.cs', + 'NativeMethods.cs', + 'Operator.cs', + 'Path.cs', + 'Pattern.cs', + 'PatternType.cs', + 'PdfSurface.cs', + 'Point.cs', + 'PointD.cs', + 'PSSurface.cs', + 'RadialGradient.cs', + 'Rectangle.cs', + 'Region.cs', + 'ScaledFont.cs', + 'SolidPattern.cs', + 'Status.cs', + 'SubpixelOrder.cs', + 'Surface.cs', + 'SurfacePattern.cs', + 'SurfaceType.cs', + 'SvgSurface.cs', + 'SvgVersion.cs', + 'TextExtents.cs', + 'Win32Surface.cs', + 'XcbSurface.cs', + 'XlibSurface.cs', +] + +cairo_sharp = library(assembly_name, sources, + cs_args: ['-keyfile:' + snk], + install: true, + install_dir: lib_install_dir +) + +install_infos += [assembly_name, cairo_sharp.full_path()] +cairo_api_includes = join_paths(meson.current_source_dir(), 'cairo-api.xml') +install_data(cairo_api_includes, install_dir: gapi_xml_installdir) + +cairo_sharp_dep = declare_dependency(link_with: cairo_sharp) diff --git a/configure.ac b/configure.ac index 4a407a2f1..eb8162efd 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ -AC_INIT(gtk-sharp, 2.99.4) +AC_INIT(gtk-sharp, 3.22.6) AM_INIT_AUTOMAKE([1.10 no-dist-gzip dist-bzip2 tar-ustar foreign]) AC_CANONICAL_HOST @@ -9,7 +9,7 @@ AC_CONFIG_MACRO_DIR([m4]) API_VERSION=3.0.0.0 AC_SUBST(API_VERSION) -CAIRO_API_VERSION=1.10.0.0 +CAIRO_API_VERSION=1.12.0.0 AC_SUBST(CAIRO_API_VERSION) POLICY_VERSIONS="" AC_SUBST(POLICY_VERSIONS) @@ -89,8 +89,9 @@ fi enable_msi="no" if test "x$platform_win32" = "xyes"; then - AC_PATH_PROG(WIX, candle, no) - if test "x$WIX" != "xno" ; then + AC_PATH_PROG(WIX_CANDLE, candle, no) + AC_PATH_PROG(WIX_LIGHT, light, no) + if test "x$WIX_CANDLE" != "xno" -a "x$WIX_LIGHT" != "xno" ; then enable_msi="yes" fi fi diff --git a/gacutil_install.py b/gacutil_install.py new file mode 100644 index 000000000..48ef320b2 --- /dev/null +++ b/gacutil_install.py @@ -0,0 +1,15 @@ +#!/usr/bin/env python3 + +import os +import sys +import subprocess + +outdir = os.path.join(os.environ['MESON_INSTALL_DESTDIR_PREFIX'], 'lib') +builddir = os.environ['MESON_BUILD_ROOT'] + +for i in range(1, len(sys.argv), 2): + assembly_name, fname = sys.argv[i], os.path.join(builddir, sys.argv[i + 1]) + + cmd = ['gacutil', '/i', fname, '/f', '/package', assembly_name, '/root', outdir] + print('(%s) Running %s' % (os.path.abspath(os.path.curdir), ' '.join(cmd))) + subprocess.check_call(cmd) diff --git a/gapi.xsd b/gapi.xsd index bd6c05575..592595a63 100644 --- a/gapi.xsd +++ b/gapi.xsd @@ -206,7 +206,6 @@ - @@ -250,7 +249,6 @@ - diff --git a/gdk/Gdk.metadata b/gdk/Gdk.metadata index 368b3d377..c1ac95520 100644 --- a/gdk/Gdk.metadata +++ b/gdk/Gdk.metadata @@ -12,6 +12,7 @@ 1 1 CairoHelper + true 1 out 1 @@ -42,6 +43,20 @@ ReleaseMask | 0x1fff InputOutput InputOnly + Pointer | Touch | TabletStylus + AllPointing | Keyboard + FlipX | FlipY + SlideX | SlideY + ResizeX | ResizeY + AxisUse.X + AxisUse.Y + AxisUse.Pressure + AxisUse.Xtilt + AxisUse.Ytilt + AxisUse.Wheel + AxisUse.Distance + AxisUse.Rotation + AxisUse.Slider 1 1 1 diff --git a/gdk/Makefile.am b/gdk/Makefile.am index 7d69ffbb7..21f63b986 100644 --- a/gdk/Makefile.am +++ b/gdk/Makefile.am @@ -43,6 +43,7 @@ sources = \ Point.cs \ Property.cs \ Rectangle.cs \ + RGBA.cs \ Screen.cs \ Selection.cs \ Size.cs \ diff --git a/gdk/Pixbuf.cs b/gdk/Pixbuf.cs index 5e9cce1a9..c54d6fa05 100644 --- a/gdk/Pixbuf.cs +++ b/gdk/Pixbuf.cs @@ -165,12 +165,15 @@ public Pixbuf(byte [] data, bool has_alpha, int bits_per_sample, int width, int public Pixbuf(byte [] data, Gdk.Colorspace colorspace, bool has_alpha, int bits_per_sample, int width, int height, int rowstride) : this (data, colorspace, has_alpha, bits_per_sample, width, height, rowstride, null) {} + /* gdk_pixbuf_new_from_inline has been deprecated since version 2.32 and should not be used in newly-written code. Use GResource instead */ + /* public unsafe Pixbuf(byte[] data, bool copy_pixels) : base (IntPtr.Zero) { IntPtr error = IntPtr.Zero; - Raw = gdk_pixbuf_new_from_inline(data.Length, data, copy_pixels, out error); + Raw = gdk_pixbuf_new_from_inline(data.Length, (IntPtr) data, copy_pixels, out error); if (error != IntPtr.Zero) throw new GLib.GException (error); } + */ [DllImport ("libgdk_pixbuf-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)] static extern unsafe IntPtr gdk_pixbuf_new_from_inline(int len, IntPtr data, bool copy_pixels, out IntPtr error); diff --git a/gdk/Property.cs b/gdk/Property.cs index 5e901d6e1..03773f0a5 100644 --- a/gdk/Property.cs +++ b/gdk/Property.cs @@ -64,7 +64,7 @@ public static bool Get (Gdk.Window window, Gdk.Atom property, Gdk.Atom type, ulo int block_size; if (format == 32) { // data returned in blocks the size of a C long #if WIN64LONGS - block_size = int.Size; + block_size = sizeof(int); #else block_size = IntPtr.Size; #endif diff --git a/gdk/RGBA.cs b/gdk/RGBA.cs new file mode 100644 index 000000000..176898c16 --- /dev/null +++ b/gdk/RGBA.cs @@ -0,0 +1,24 @@ +namespace Gdk { + + using System; + using System.Collections; + using System.Collections.Generic; + using System.Runtime.InteropServices; + + public partial struct RGBA { + + + public static explicit operator GLib.Value (Gdk.RGBA boxed) + { + GLib.Value val = GLib.Value.Empty; + val.Init (Gdk.RGBA.GType); + val.Val = boxed; + return val; + } + + public static explicit operator Gdk.RGBA (GLib.Value val) + { + return (Gdk.RGBA) val.Val; + } + } +} diff --git a/gdk/gdk-api.raw b/gdk/gdk-api.raw index 0dc3efc34..4ba1a40d5 100644 --- a/gdk/gdk-api.raw +++ b/gdk/gdk-api.raw @@ -7,6 +7,28 @@ --> + + + + + + + + + + + + + + + + + + + + + + @@ -15,6 +37,9 @@ + + + @@ -28,6 +53,9 @@ + + + @@ -111,6 +139,21 @@ + + + + + + + + + + + + + + + @@ -124,6 +167,11 @@ + + + + + @@ -132,6 +180,7 @@ + @@ -155,7 +204,11 @@ - + + + + + @@ -165,7 +218,9 @@ + + @@ -195,18 +250,43 @@ + + + + + + + + + + + - - - - - + + + + + + + + + + + + + + + + + + + @@ -218,6 +298,7 @@ + @@ -242,6 +323,19 @@ + + + + + + + + + + + + + @@ -257,9 +351,23 @@ + + + + + + + + + + + + + + @@ -290,6 +398,16 @@ + + + + + + + + + + @@ -303,6 +421,20 @@ + + + + + + + + + + + + + + @@ -372,6 +504,8 @@ + + @@ -380,6 +514,7 @@ + @@ -416,6 +551,14 @@ + + + + + + + + @@ -423,6 +566,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -469,13 +676,16 @@ - + - - - + + + + + + @@ -486,10 +696,17 @@ + + + + + + + - + @@ -514,6 +731,14 @@ + + + + + + + + @@ -543,10 +768,22 @@ + + + + + + + + + + + + @@ -576,20 +813,20 @@ - - + + - + - - - - + + + + @@ -613,8 +850,8 @@ - - + + @@ -636,6 +873,9 @@ + + + @@ -685,6 +925,9 @@ + + + @@ -705,6 +948,20 @@ + + + + + + + + + + + + + + @@ -719,6 +976,9 @@ + + + @@ -726,7 +986,14 @@ - + + + + + + + + @@ -737,7 +1004,7 @@ - + @@ -773,7 +1040,7 @@ - + @@ -826,7 +1093,7 @@ - + @@ -835,26 +1102,46 @@ - + + + + + + + + + + + + + + + + + + + + + + - - + @@ -869,8 +1156,7 @@ - - + @@ -889,9 +1175,16 @@ + + + + + + + - + @@ -901,19 +1194,33 @@ - - - - - - - - - - + + - + + + + + + + + + + + + + + + + + + + + + + + @@ -939,6 +1246,10 @@ + + + + @@ -1012,18 +1323,14 @@ - + - - - + + + - - - - @@ -1143,6 +1450,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1173,7 +1510,10 @@ - + + + + @@ -1186,7 +1526,29 @@ - + + + + + + + + + + + + + + + + + + + + + + + @@ -1201,7 +1563,10 @@ - + + + + @@ -1232,6 +1597,9 @@ + + + @@ -1244,7 +1612,7 @@ - + @@ -1295,7 +1663,7 @@ - + @@ -1328,15 +1696,6 @@ - - - - - - - - - @@ -1346,59 +1705,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -1436,7 +1742,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1500,7 +1839,47 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1509,6 +1888,9 @@ + + + @@ -1527,12 +1909,272 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1541,12 +2183,15 @@ + + + @@ -1579,6 +2224,10 @@ + + + + @@ -1626,6 +2275,16 @@ + + + + + + + + + + @@ -1664,9 +2323,21 @@ + + + + + + + + + + + + @@ -1698,6 +2369,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1714,6 +2453,7 @@ + @@ -1731,24 +2471,11 @@ - - - + + + + - - - - - - - - - - - - - - @@ -1810,6 +2537,13 @@ + + + + + + + @@ -1896,7 +2630,25 @@ - + + + + + + + + + + + + + + + + + + + @@ -1908,57 +2660,70 @@ - + - + - + - + - + - + - + - + - + + + + - + + + + + + + + + + + - + @@ -1986,19 +2751,19 @@ - + - + - + - + @@ -2007,7 +2772,7 @@ - + @@ -2022,46 +2787,152 @@ - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + @@ -2072,10 +2943,10 @@ - + - + @@ -2100,7 +2971,7 @@ - + @@ -2159,6 +3030,15 @@ + + + + + + + + + @@ -2190,7 +3070,7 @@ - + @@ -2200,22 +3080,38 @@ - + + + + + + + + + + + + + + + + + - + - + @@ -2231,14 +3127,25 @@ - + + + + + + + + + + + + - + @@ -2263,6 +3170,21 @@ + + + + + + + + + + + + + + + @@ -2277,16 +3199,22 @@ - + - + + + + + + + - + @@ -2295,7 +3223,7 @@ - + @@ -2304,22 +3232,34 @@ + + + + + + - + + + + + + + - + @@ -2352,6 +3292,15 @@ + + + + + + + + + @@ -2367,18 +3316,27 @@ + + + + + + + + + @@ -2407,7 +3365,10 @@ - + + + + @@ -2438,6 +3399,9 @@ + + + @@ -2540,6 +3504,12 @@ + + + + + + @@ -2640,22 +3610,22 @@ - + - + - + - + @@ -2664,7 +3634,7 @@ - + @@ -2676,7 +3646,7 @@ - + @@ -2702,6 +3672,12 @@ + + + + + + @@ -2714,6 +3690,12 @@ + + + + + + @@ -2745,6 +3727,12 @@ + + + + + + @@ -2769,18 +3757,39 @@ + + + + + + + + + + + + + + + + + + + + + @@ -2806,7 +3815,7 @@ - + @@ -2862,10 +3871,16 @@ + + + + + + - + @@ -2887,38 +3902,39 @@ + - + - + - + - + - + - + - + @@ -3036,6 +4052,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3063,6 +4106,9 @@ + + + @@ -3074,6 +4120,11 @@ + + + + + @@ -3081,6 +4132,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3094,6 +4192,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3136,14 +4263,12 @@ - - - + @@ -3179,8 +4304,10 @@ - + + + @@ -3224,7 +4351,7 @@ - + @@ -3236,9 +4363,6 @@ - - - @@ -3248,6 +4372,9 @@ + + + @@ -3255,7 +4382,7 @@ - + @@ -3265,8 +4392,14 @@ - + + + + + + + @@ -3312,12 +4445,26 @@ - + + + + + + + + + + + + + + + @@ -3325,6 +4472,12 @@ + + + + + + @@ -3345,7 +4498,7 @@ - + @@ -3377,6 +4530,14 @@ + + + + + + + + @@ -3401,6 +4562,16 @@ + + + + + + + + + + @@ -3408,6 +4579,13 @@ + + + + + + + @@ -3487,47 +4665,126 @@ - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + - - + + - - + + + + + + + + - - - - + + + + - + - - + - - + + @@ -3554,6 +4811,12 @@ + + + + + + @@ -3562,6 +4825,12 @@ + + + + + + @@ -3590,6 +4859,13 @@ + + + + + + + @@ -3604,6 +4880,12 @@ + + + + + + @@ -3718,6 +5000,12 @@ + + + + + + @@ -3826,14 +5114,14 @@ - + - + @@ -3842,6 +5130,13 @@ + + + + + + + @@ -3988,16 +5283,16 @@ - + - + - + - + @@ -4027,6 +5322,7 @@ + @@ -4039,7 +5335,7 @@ - + @@ -4049,7 +5345,7 @@ - + @@ -4087,8 +5383,10 @@ + + @@ -4166,6 +5464,12 @@ + + + + + + @@ -4181,17 +5485,12 @@ - - - - - - - - + + + @@ -4203,6 +5502,24 @@ + + + + + + + + + + + + + + + + + + @@ -4221,9 +5538,18 @@ + + + + + + + + + @@ -4233,19 +5559,24 @@ - - + - + + + + + - - + + + + @@ -4276,6 +5607,15 @@ + + + + + + + + + @@ -4284,11 +5624,32 @@ - + + + + + + + + + + + + + + + + + + + + + - - - + + + + @@ -4299,6 +5660,14 @@ + + + + + + + + @@ -4309,6 +5678,23 @@ + + + + + + + + + + + + + + + + + @@ -4323,8 +5709,17 @@ - - + + + + + + + + + + + @@ -4401,6 +5796,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -4411,6 +5847,16 @@ + + + + + + + + + + @@ -4434,8 +5880,12 @@ - - + + + + + + @@ -4466,12 +5916,39 @@ - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -4640,6 +6117,13 @@ + + + + + + + @@ -4673,6 +6157,7 @@ + @@ -4701,6 +6186,12 @@ + + + + + + @@ -4738,7 +6229,7 @@ - + @@ -4746,38 +6237,9 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/gdk/gdk.csproj b/gdk/gdk.csproj index 96e7fd688..a35afdffc 100644 --- a/gdk/gdk.csproj +++ b/gdk/gdk.csproj @@ -1,5 +1,5 @@ - + Debug x86 @@ -9,7 +9,8 @@ Library gdk gdk-sharp - v3.5 + v4.0 + true @@ -75,6 +76,8 @@ + + @@ -82,6 +85,7 @@ + @@ -111,18 +115,25 @@ - + + - + + + + + + + @@ -131,25 +142,24 @@ + + - - + - - @@ -183,9 +193,9 @@ + - @@ -206,23 +216,26 @@ + + + - - - + + Properties\AssemblyInfo.cs + @@ -242,14 +255,10 @@ pango - - - - - + PreserveNewest - \ No newline at end of file + diff --git a/gdk/generated/meson.build b/gdk/generated/meson.build new file mode 100644 index 000000000..87a0d0c54 --- /dev/null +++ b/gdk/generated/meson.build @@ -0,0 +1,226 @@ +generated_sources = [ + 'Gdk_Pixbuf.cs', + 'Gdk_GdkSharp.FilterFuncNative.cs', + 'Gdk_GdkSharp.EventFuncNative.cs', + 'Gdk_FilterFunc.cs', + 'Gdk_EventFunc.cs', + 'Gdk_ActionChangedHandler.cs', + 'Gdk_PixbufBufferQueue.cs', + 'Gdk_ByteOrder.cs', + 'Gdk_Error.cs', + 'Gdk_EventMask.cs', + 'Gdk_FilterReturn.cs', + 'Gdk_PixbufAniAnimIter.cs', + 'Gdk_WindowPaint.cs', + 'Gdk_ThreadsDispatch.cs', + 'Gdk_EventHelper.cs', + 'Gdk_DevicePadAdapter.cs', + 'Gdk_Monitor.cs', + 'Gdk_GLError.cs', + 'Gdk_EventFilter.cs', + 'Gdk_Cursor.cs', + 'Gdk_Events.cs', + 'Gdk_Gravity.cs', + 'Gdk_Backend.cs', + 'Gdk_FrameClockPhase.cs', + 'Gdk_Gif89.cs', + 'Gdk_OffscreenWindowClass.cs', + 'Gdk_AxisUse.cs', + 'Gdk_Global.cs', + 'Gdk_SeatCapabilities.cs', + 'Gdk_ArgContext.cs', + 'Gdk_DeviceToolType.cs', + 'Gdk_IOClosure.cs', + 'Gdk_WindowChildFunc.cs', + 'Gdk_Selection.cs', + 'Gdk_WindowType.cs', + 'Gdk_GLContext.cs', + 'Gdk_AreaUpdatedHandler.cs', + 'Gdk_ToolChangedHandler.cs', + 'Gdk_Drag.cs', + 'Gdk_GrabStatus.cs', + 'Gdk_CursorType.cs', + 'Gdk_PixbufFrameAction.cs', + 'Gdk_DeviceAddedHandler.cs', + 'Gdk_Color.cs', + 'Gdk_EventTouchpadPinch.cs', + 'Gdk_FrameClock.cs', + 'Gdk_DropPerformedHandler.cs', + 'Gdk_SeatRemovedHandler.cs', + 'Gdk_PixbufGifAnimIter.cs', + 'Gdk_MonitorAddedHandler.cs', + 'Gdk_WindowWindowClass.cs', + 'Gdk_PixbufGifAnim.cs', + 'Gdk_PixbufScaledAnimIter.cs', + 'Gdk_WMFunction.cs', + 'Gdk_PickEmbeddedChildHandler.cs', + 'Gdk_PropertyState.cs', + 'Gdk_Atom.cs', + 'Gdk_TiffContext.cs', + 'Gdk_MonitorRemovedHandler.cs', + 'Gdk_TimeCoord.cs', + 'Gdk_PixbufAlphaMode.cs', + 'Gdk_IcnsBlockHeader.cs', + 'Gdk_PixbufAnimation.cs', + 'Gdk_PixbufRotation.cs', + 'Gdk_PixbufFormat.cs', + 'Gdk_PixdataDumpType.cs', + 'Gdk_Window.cs', + 'Gdk_TGAContext.cs', + 'Gdk_SeatDefault.cs', + 'Gdk_WindowTypeHint.cs', + 'Gdk_Pixdata.cs', + 'Gdk_Pointer.cs', + 'Gdk_Screen.cs', + 'Gdk_DeviceChangedHandler.cs', + 'Gdk_PangoHelper.cs', + 'Gdk_GlobalErrorTrap.cs', + 'Gdk_ToEmbedderHandler.cs', + 'Gdk_XPMContext.cs', + 'Gdk_EventPadAxis.cs', + 'Gdk_Colorspace.cs', + 'Gdk_Predicate.cs', + 'Gdk_Seat.cs', + 'Gdk_InterpType.cs', + 'Gdk_TGAHeader.cs', + 'Gdk_PixdataType.cs', + 'Gdk_PixbufLoader.cs', + 'Gdk_MovedToRectHandler.cs', + 'Gdk_SizePreparedHandler.cs', + 'Gdk_LoadContext.cs', + 'Gdk_IconEntry.cs', + 'Gdk_SettingAction.cs', + 'Gdk_CrossingMode.cs', + 'Gdk_Property.cs', + 'Gdk_DragContext.cs', + 'Gdk_FrameTimings.cs', + 'Gdk_SeatGrabPrepareFunc.cs', + 'Gdk_ArgDesc.cs', + 'Gdk_ModifierIntent.cs', + 'Gdk_OffscreenWindow.cs', + 'Gdk_Keyval.cs', + 'Gdk_DragAction.cs', + 'Gdk_PixbufAnimationIter.cs', + 'Gdk_VisibilityState.cs', + 'Gdk_PixbufNonAnimIterClass.cs', + 'Gdk_NotifyType.cs', + 'Gdk_Keymap.cs', + 'Gdk_DisplayManager.cs', + 'Gdk_DeviceRemovedHandler.cs', + 'Gdk_CairoHelper.cs', + 'Gdk_PixbufNonAnimIter.cs', + 'Gdk_IDevicePad.cs', + 'Gdk_VisualType.cs', + 'Gdk_FullscreenMode.cs', + 'Gdk_Threads.cs', + 'Gdk_GifContext.cs', + 'Gdk_DeviceTool.cs', + 'Gdk_KeymapKey.cs', + 'Gdk_PixbufError.cs', + 'Gdk_Display.cs', + 'Gdk_ClosedHandler.cs', + 'Gdk_EventPadButton.cs', + 'Gdk_DeviceManager.cs', + 'Gdk_Device.cs', + 'Gdk_Visual.cs', + 'Gdk_PixbufNonAnim.cs', + 'Gdk_EventTouchpadSwipe.cs', + 'Gdk_DragProtocol.cs', + 'Gdk_PixbufSaveFunc.cs', + 'Gdk_InputMode.cs', + 'Gdk_DevicePadFeature.cs', + 'Gdk_WindowHints.cs', + 'Gdk_PixbufSimpleAnimIterClass.cs', + 'Gdk_AppLaunchContext.cs', + 'Gdk_ModifierType.cs', + 'Gdk_TGAFooter.cs', + 'Gdk_GdkSharp.PixbufDestroyNotifyNative.cs', + 'Gdk_WindowAttributesType.cs', + 'Gdk_DragCancelReason.cs', + 'Gdk_FrameClockIdle.cs', + 'Gdk_InputSource.cs', + 'Gdk_Status.cs', + 'Gdk_PixbufSimpleAnimIter.cs', + 'Gdk_AxisFlags.cs', + 'Gdk_PropMode.cs', + 'Gdk_PixbufScaledAnimIterClass.cs', + 'Gdk_DisplayOpenedHandler.cs', + 'Gdk_Geometry.cs', + 'Gdk_DeviceType.cs', + 'Gdk_WindowEdge.cs', + 'Gdk_WMDecoration.cs', + 'Gdk_WindowRedirect.cs', + 'Gdk_WindowAttr.cs', + 'Gdk_Keyboard.cs', + 'Gdk_EventPadGroupMode.cs', + 'Gdk_GdipContext.cs', + 'Gdk_PixbufDestroyNotify.cs', + 'Gdk_CancelHandler.cs', + 'Gdk_DrawingContext.cs', + 'Gdk_Point.cs', + 'Gdk_TGAColor.cs', + 'Gdk_TGAColormap.cs', + 'Gdk_AnchorHints.cs', + 'Gdk_PixbufSimpleAnim.cs', + 'Gdk_EventSequence.cs', + 'Gdk_GdkSharp.WindowChildFuncNative.cs', + 'Gdk_GdkSharp.PixbufSaveFuncNative.cs', + 'Gdk_Drop.cs', + 'Gdk_ClientFilter.cs', + 'Gdk_SubpixelLayout.cs', + 'Gdk_EventType.cs', + 'Gdk_TouchpadGesturePhase.cs', + 'Gdk_GrabOwnership.cs', + 'Gdk_RGBA.cs', + 'Gdk_PixbufNonAnimClass.cs', + 'Gdk_SeatDefaultClass.cs', + 'Gdk_WindowState.cs', + 'Gdk_SeatAddedHandler.cs', + 'Gdk_PixbufFrame.cs', + 'Gdk_GdkSharp.SeatGrabPrepareFuncNative.cs', + 'Gdk_AxisInfo.cs', + 'Gdk_ScrollDirection.cs', + 'Gdk_FromEmbedderHandler.cs', + 'Gdk_EventTouch.cs', + 'Gdk_XBMData.cs', + 'Gdk_OwnerChange.cs', + 'Gdk_PixbufAniAnim.cs', + 'Gdk_CreateSurfaceHandler.cs', + 'Gdk_GdkSharp.WindowInvalidateHandlerFuncNative.cs', + 'Gdk_WindowInvalidateHandlerFunc.cs', + 'GLib_GLibSharp.AsyncReadyCallbackNative.cs', + 'GLib_GLibSharp.GSourceFuncNative.cs', +] + +source_gen = custom_target(assembly_name + 'codegen', + input: raw_api_fname, + output: generated_sources, + command: [ + generate_api, + '--api-raw', '@INPUT@', + '--gapi-fixup', gapi_fixup.full_path(), + '--metadata', metadata_fname, + '--symbols', symbols, + '--gapi-codegen', gapi_codegen.full_path(), + '--extra-includes', glib_api_includes, + '--extra-includes', pango_api_includes, + '--extra-includes', gio_api_includes, + '--extra-includes', cairo_api_includes, + '--glue-file', gluefile, + '--glue-includes', glueincludes, + '--out', meson.current_build_dir(), + '--files', ';'.join(generated_sources), + '--assembly-name', assembly_name, + '--glue-libname', gluefile, + '--schema', schema, + ], + depends: [gapi_codegen, gapi_fixup]) + +api_xml = custom_target(pkg + '_api_xml', + input: raw_api_fname, + output: pkg + '-api.xml', + command: [generate_api, '--fakeglue'], + depends: [source_gen], + install: true, + install_dir: gapi_xml_installdir) +gdk_api_includes = join_paths(meson.current_build_dir(), 'gdk-api.xml') diff --git a/gdk/meson.build b/gdk/meson.build new file mode 100644 index 000000000..c2eb13448 --- /dev/null +++ b/gdk/meson.build @@ -0,0 +1,77 @@ +snk = join_paths(meson.current_source_dir(), '..', 'gtk-sharp.snk') +pkg = 'gdk' +assembly_name = pkg + '-sharp' +symbols = join_paths(meson.current_source_dir(), 'gdk-symbols.xml') + +raw_api_fname = join_paths(meson.current_source_dir(), 'gdk-api.raw') +metadata_fname = join_paths(meson.current_source_dir(), 'Gdk.metadata') +glueincludes = 'gdk/gdk.h' +gluefile = join_paths(meson.current_build_dir(), 'generate.c') + +configure_file(input: assembly_name + '.dll.config.in', + output: assembly_name + '.dll.config', + configuration : remap_dl_data) + +configure_file(input: assembly_name + '-3.0.pc.in', + output: assembly_name + '-3.0.pc', + configuration : version_data, + install_dir: pkg_install_dir, + install: true) + +subdir('generated') + +sources = [ + 'Atom.cs', + 'Color.cs', + 'Device.cs', + 'Display.cs', + 'DisplayManager.cs', + 'EventButton.cs', + 'EventConfigure.cs', + 'EventCrossing.cs', + 'Event.cs', + 'EventDND.cs', + 'EventExpose.cs', + 'EventFocus.cs', + 'EventGrabBroken.cs', + 'EventKey.cs', + 'EventMotion.cs', + 'EventOwnerChange.cs', + 'EventProperty.cs', + 'EventProximity.cs', + 'EventScroll.cs', + 'EventSelection.cs', + 'EventSetting.cs', + 'EventVisibility.cs', + 'EventWindowState.cs', + 'Global.cs', + 'Key.cs', + 'Keymap.cs', + 'Pixbuf.cs', + 'PixbufAnimation.cs', + 'PixbufFrame.cs', + 'PixbufLoader.cs', + 'Pixdata.cs', + 'Point.cs', + 'Property.cs', + 'Rectangle.cs', + 'RGBA.cs', + 'Screen.cs', + 'Selection.cs', + 'Size.cs', + 'TextProperty.cs', + 'WindowAttr.cs', + 'Window.cs', +] + +deps = [glib_sharp, pango_sharp, cairo_sharp, gio_sharp] +gdk_sharp = library(assembly_name, source_gen, sources, + cs_args: ['-unsafe', '-keyfile:' + snk], + link_with: deps, + install: true, + install_dir: lib_install_dir +) + +install_infos += [assembly_name, gdk_sharp.full_path()] +gdk_sharp_dep = declare_dependency(link_with: deps + [gdk_sharp]) + diff --git a/generator/CodeGenerator.cs b/generator/CodeGenerator.cs index 187cca62b..6cf82e0a9 100644 --- a/generator/CodeGenerator.cs +++ b/generator/CodeGenerator.cs @@ -78,23 +78,23 @@ public static int Main (string[] args) Console.Write ("gapi-codegen: "); Console.WriteLine (e.Message); Console.WriteLine ("Try `gapi-codegen --help' for more information."); - return 0; + return 64; } if (show_help) { ShowHelp (options); - return 1; + return 0; } if (filenames.Count == 0) { Console.WriteLine ("You need to specify a file to process using the --generate option."); Console.WriteLine ("Try `gapi-codegen --help' for more information."); - return 0; + return 64; } if (extra.Exists (v => { return v.StartsWith ("--customdir"); })) { Console.WriteLine ("Using .custom files is not supported anymore, use partial classes instead."); - return 0; + return 64; } if (!String.IsNullOrEmpty (schema_name) && !File.Exists (schema_name)) { diff --git a/generator/Ctor.cs b/generator/Ctor.cs index 9747b23d4..5553cd056 100644 --- a/generator/Ctor.cs +++ b/generator/Ctor.cs @@ -122,7 +122,7 @@ public void Generate (GenerationInfo gen_info) } } - if (names.Count == Parameters.Count) { + //if (names.Count == Parameters.Count) { sw.WriteLine ("\t\t\t\tvar vals = new List ();"); sw.WriteLine ("\t\t\t\tvar names = new List ();"); for (int i = 0; i < names.Count; i++) { @@ -141,8 +141,8 @@ public void Generate (GenerationInfo gen_info) sw.WriteLine ("\t\t\t\tCreateNativeObject (names.ToArray (), vals.ToArray ());"); sw.WriteLine ("\t\t\t\treturn;"); - } else - sw.WriteLine ("\t\t\t\tthrow new InvalidOperationException (\"Can't override this constructor.\");"); + //} else + // sw.WriteLine ("\t\t\t\tthrow new InvalidOperationException (\"Can't override this constructor.\");"); } sw.WriteLine ("\t\t\t}"); diff --git a/generator/Method.cs b/generator/Method.cs index d8859e95c..74423b873 100644 --- a/generator/Method.cs +++ b/generator/Method.cs @@ -34,7 +34,6 @@ public class Method : MethodBase { private string call; private bool is_get, is_set; private bool deprecated = false; - private bool win32_utf8_variant = false; public Method (XmlElement elem, ClassBase container_type) : base (elem, container_type) { @@ -44,16 +43,10 @@ public Method (XmlElement elem, ClassBase container_type) : base (elem, containe deprecated = elem.GetAttributeAsBoolean ("deprecated"); } - win32_utf8_variant = elem.GetAttributeAsBoolean ("win32_utf8_variant"); - if (Name == "GetType") Name = "GetGType"; } - public bool HasWin32Utf8Variant { - get { return win32_utf8_variant; } - } - public bool IsDeprecated { get { return deprecated; @@ -204,15 +197,6 @@ public void GenerateImport (StreamWriter sw) else sw.WriteLine("\t\tstatic extern " + Safety + retval.MarshalType + " " + CName + "(" + import_sig + ");"); sw.WriteLine(); - - if (HasWin32Utf8Variant) { - sw.WriteLine("\t\t[DllImport(\"" + LibraryName + "\")]"); - if (retval.MarshalType.StartsWith ("[return:")) - sw.WriteLine("\t\t" + retval.MarshalType + " static extern " + Safety + retval.CSType + " " + CName + "_utf8(" + import_sig + ");"); - else - sw.WriteLine("\t\tstatic extern " + Safety + retval.MarshalType + " " + CName + "_utf8(" + import_sig + ");"); - sw.WriteLine(); - } } public void GenerateOverloads (StreamWriter sw) @@ -304,33 +288,14 @@ public void GenerateBody (GenerationInfo gen_info, ClassBase implementor, string Body.InitAccessor (sw, Signature, indent); Body.Initialize(gen_info, is_get, is_set, indent); - if (HasWin32Utf8Variant) { - if (!retval.IsVoid) - sw.WriteLine(indent + "\t\t\t" + retval.MarshalType + " raw_ret;"); - sw.WriteLine(indent + "\t\t\t" + "if (Environment.OSVersion.Platform == PlatformID.Win32NT ||"); - sw.WriteLine(indent + "\t\t\t" + " Environment.OSVersion.Platform == PlatformID.Win32S ||"); - sw.WriteLine(indent + "\t\t\t" + " Environment.OSVersion.Platform == PlatformID.Win32Windows ||"); - sw.WriteLine(indent + "\t\t\t" + " Environment.OSVersion.Platform == PlatformID.WinCE)"); - if (retval.IsVoid) { - sw.WriteLine(indent + "\t\t\t\t" + CName + "_utf8" + call + ";"); - sw.WriteLine(indent + "\t\t\t" + "else"); - sw.WriteLine(indent + "\t\t\t\t" + CName + call + ";"); - } else { - sw.WriteLine(indent + "\t\t\t\traw_ret = " + CName + "_utf8" + call + ";"); - sw.WriteLine(indent + "\t\t\t" + "else"); - sw.WriteLine(indent + "\t\t\t\traw_ret = " + CName + call + ";"); - sw.WriteLine(indent + "\t\t\t" + retval.CSType + " ret = " + retval.FromNative ("raw_ret") + ";"); - } - } else { - sw.Write(indent + "\t\t\t"); - if (retval.IsVoid) - sw.WriteLine(CName + call + ";"); - else { - sw.WriteLine(retval.MarshalType + " raw_ret = " + CName + call + ";"); - sw.WriteLine(indent + "\t\t\t" + retval.CSType + " ret = " + retval.FromNative ("raw_ret") + ";"); - } + sw.Write(indent + "\t\t\t"); + if (retval.IsVoid) + sw.WriteLine(CName + call + ";"); + else { + sw.WriteLine(retval.MarshalType + " raw_ret = " + CName + call + ";"); + sw.WriteLine(indent + "\t\t\t" + retval.CSType + " ret = " + retval.FromNative ("raw_ret") + ";"); } - + if (!IsStatic && implementor != null) implementor.Finish (sw, indent + "\t\t\t"); Body.Finish (sw, indent); diff --git a/generator/ObjectBase.cs b/generator/ObjectBase.cs index 1db78d59b..d8965f8a4 100644 --- a/generator/ObjectBase.cs +++ b/generator/ObjectBase.cs @@ -183,7 +183,7 @@ public bool CanGenerateClassStruct { * as they may contain class fields which don't appear in the old (version 1) API files. There are also cases in which the order of the * and elements do not match the struct layout. */ - return (is_interface || this.ParserVersion >= 2) && class_fields_valid; + return (is_interface || this.ParserVersion >= 2) && (class_fields_valid || class_struct_name == "GtkWidgetClass"); } } diff --git a/generator/Parameter.cs b/generator/Parameter.cs index 7c6016b50..a77db28fc 100644 --- a/generator/Parameter.cs +++ b/generator/Parameter.cs @@ -408,9 +408,12 @@ public override string CallString { public override string[] Finish { get { - string[] result = new string [2]; - result [0] = CallName + " = " + FromNative ("native_" + CallName) + ";"; - result [1] = (Generatable as IManualMarshaler).ReleaseNative ("native_" + CallName) + ";"; + string[] result = new string [PassAs == string.Empty ? 1 : 2]; + int i = 0; + if (PassAs != string.Empty) { + result [i++] = CallName + " = " + FromNative ("native_" + CallName) + ";"; + } + result [i++] = (Generatable as IManualMarshaler).ReleaseNative ("native_" + CallName) + ";"; return result; } } diff --git a/generator/Parameters.cs b/generator/Parameters.cs index 9ebecea17..1b0544d5f 100644 --- a/generator/Parameters.cs +++ b/generator/Parameters.cs @@ -206,7 +206,7 @@ public bool Validate (LogWriter log) return false; } - if (p.IsOptional && p.PassAs == String.Empty) + if (p.IsOptional && p.PassAs == String.Empty && p.IsUserData == false) has_optional = true; IGeneratable gen = p.Generatable; diff --git a/generator/Property.cs b/generator/Property.cs index 7e0e09549..5dd7cc74a 100644 --- a/generator/Property.cs +++ b/generator/Property.cs @@ -68,10 +68,14 @@ protected virtual string PropertyAttribute (string qpname) { } protected virtual string RawGetter (string qpname) { + if (container_type is InterfaceGen) + return "implementor.GetProperty (" + qpname + ")"; return "GetProperty (" + qpname + ")"; } protected virtual string RawSetter (string qpname) { + if (container_type is InterfaceGen) + return "implementor.SetProperty(" + qpname + ", val)"; return "SetProperty(" + qpname + ", val)"; } diff --git a/generator/StructField.cs b/generator/StructField.cs index 58ccf1f11..78a15fb36 100644 --- a/generator/StructField.cs +++ b/generator/StructField.cs @@ -88,7 +88,7 @@ public string EqualityName { IGeneratable gen = table [CType]; if (IsArray || gen is IAccessor) - return StudlyName; + return Access == "public" ? StudlyName : Name; else if (IsBitfield) return Name; else if (IsPointer && (gen is StructGen || gen is BoxedGen || gen is UnionGen)) @@ -102,7 +102,11 @@ public string EqualityName { public bool IsPadding { get { - return (CName.StartsWith ("dummy") || CName.StartsWith ("padding")); + if (elem.GetAttributeAsBoolean ("is-padding")) + return elem.GetAttributeAsBoolean ("is-padding"); + + return (elem.GetAttribute ("access") == "private" && ( + CName.StartsWith ("dummy") || CName.StartsWith ("padding"))); } } diff --git a/generator/generator.csproj b/generator/generator.csproj index fbab856bb..b4673e6bc 100644 --- a/generator/generator.csproj +++ b/generator/generator.csproj @@ -1,5 +1,5 @@ - + Debug x86 @@ -9,7 +9,8 @@ Exe generator gapi_codegen - v3.5 + v4.0 + true diff --git a/generator/meson.build b/generator/meson.build new file mode 100644 index 000000000..b0c5987cd --- /dev/null +++ b/generator/meson.build @@ -0,0 +1,82 @@ +gapi_fixup = executable('gapi-fixup', 'gapi-fixup.cs', + install_dir : gapi_installdir, + install: true) + +configure_file(input: 'gapi3-fixup.in', + output: 'gapi3-fixup', + configuration : gapi_parser_data, + install_dir: get_option('bindir'), + install: true) + + +gapi_codegen = executable('gapi_codegen', + 'AliasGen.cs', + 'ArrayParameter.cs', + 'BoxedGen.cs', + 'ByRefGen.cs', + 'CallbackGen.cs', + 'ChildProperty.cs', + 'ClassBase.cs', + 'ClassField.cs', + 'ClassGen.cs', + 'CodeGenerator.cs', + 'ConstFilenameGen.cs', + 'ConstStringGen.cs', + 'Constant.cs', + 'Ctor.cs', + 'DefaultSignalHandler.cs', + 'EnumGen.cs', + 'FieldBase.cs', + 'GenBase.cs', + 'GenerationInfo.cs', + 'GObjectVM.cs', + 'HandleBase.cs', + 'IAccessor.cs', + 'IGeneratable.cs', + 'IManualMarshaler.cs', + 'InterfaceGen.cs', + 'InterfaceVM.cs', + 'IOwnable.cs', + 'LogWriter.cs', + 'LPGen.cs', + 'LPUGen.cs', + 'ManagedCallString.cs', + 'ManualGen.cs', + 'MarshalGen.cs', + 'MethodBase.cs', + 'MethodBody.cs', + 'Method.cs', + 'NativeStructGen.cs', + 'ObjectField.cs', + 'ObjectBase.cs', + 'ObjectGen.cs', + 'OpaqueGen.cs', + 'Options.cs', + 'OwnableGen.cs', + 'Parameter.cs', + 'Parameters.cs', + 'Parser.cs', + 'Property.cs', + 'PropertyBase.cs', + 'ReturnValue.cs', + 'Signal.cs', + 'Signature.cs', + 'SimpleBase.cs', + 'SimpleGen.cs', + 'Statistics.cs', + 'StructBase.cs', + 'StructField.cs', + 'StructGen.cs', + 'SymbolTable.cs', + 'UnionGen.cs', + 'VirtualMethod.cs', + 'VMSignature.cs', + 'XmlElementExtensions.cs', + install_dir : gapi_installdir, + install: true) + +configure_file(input: 'gapi3-codegen.in', + output: 'gapi3-codegen', + configuration : gapi_parser_data, + install_dir: get_option('bindir'), + install: true) diff --git a/gio/Gio.metadata b/gio/Gio.metadata index 22bff54f0..d080879db 100644 --- a/gio/Gio.metadata +++ b/gio/Gio.metadata @@ -4,7 +4,6 @@ call call GLib - GIOExtension* private 1 GSrvTarget* @@ -23,11 +22,6 @@ gchar* true true - DBus - GetAddressForBusSync - GetStream - GetStreamFinish - GetStreamSync IOError FromErrno FromWin32Error @@ -37,9 +31,9 @@ true ScanAllInDirectory CancelAllJobs - PushJob GioGlobal 1 + 1 1 ReportGerrorInIdle ReportTakeGerrorInIdle @@ -97,21 +91,12 @@ 1 1 GetMountInstance - GDBusAuthObserver - GDBusCapabilityFlags - GDBusConnection - GDBusConnectionFlags - GDBusInterfaceInfo - GDBusProxyFlags - GDBusServerFlags GIOStream GUnixFDList 1 Activated Opened - AuthenticatedPeerAuthorized - IsClosed - GetIsClosed + LaunchedFailed GEmblem* GFileInfo* true @@ -132,6 +117,7 @@ guchar* 1 1 + SetItemsChanged EmitReply guchar* 1 @@ -139,6 +125,7 @@ 1 guchar* 1 + 1 GInetAddress* true true @@ -160,13 +147,16 @@ 1 1 1 - Activated + 1 + 1 1 1 1 GTlsCertificate* true true + 1 + 1 GetDefault GMount* true @@ -177,6 +167,7 @@ GDrive* true true + 1 /api/namespace/class[@cname='GGlobal'] /api/namespace/object[@cname='GIOModule'] /api/namespace/object[@cname='GIOModule'] @@ -184,7 +175,5 @@ /api/namespace/struct[@cname='GIOSchedulerJob'] /api/namespace/object[@cname='GSimpleAsyncResult'] /api/namespace/object[@cname='GSimpleAsyncResult'] - - diff --git a/gio/generated/generate_code.py b/gio/generated/generate_code.py new file mode 100644 index 000000000..f49d8dc99 --- /dev/null +++ b/gio/generated/generate_code.py @@ -0,0 +1,83 @@ +#!/usr/bin/env python3 + +import argparse +import glob +import os +import re +import shutil +import subprocess + + +if __name__ == "__main__": + parser = argparse.ArgumentParser() + parser.add_argument("--api-raw") + parser.add_argument("--gapi-fixup") + parser.add_argument("--metadata") + parser.add_argument("--gapi-codegen") + parser.add_argument("--glue-file") + parser.add_argument("--glue-includes") + parser.add_argument("--glue-libname") + parser.add_argument("--assembly-name") + parser.add_argument("--extra-includes", action='append', default=[]) + parser.add_argument("--out") + parser.add_argument("--files") + parser.add_argument("--symbols") + parser.add_argument("--schema") + parser.add_argument("--fakeglue", action='store_true') + + opts = parser.parse_args() + if opts.fakeglue: + exit(0) + + if not opts.glue_libname: + opts.glue_libname = opts.assembly_name + 'sharpglue-3' + + api_xml = os.path.join(opts.out, os.path.basename( + opts.api_raw).replace('.raw', '.xml')) + + shutil.copyfile(opts.api_raw, api_xml) + + cmd = [opts.gapi_fixup, "--api=" + api_xml, + "--metadata=" + opts.metadata] + if opts.symbols: + cmd.extend(['--symbols=' + opts.symbols]) + subprocess.check_call(cmd) + + cmd = [ + opts.gapi_codegen, '--generate', api_xml, + '--outdir=' + opts.out, + '--glue-filename=' + opts.glue_file, + '--gluelib-name=' + opts.glue_libname, + '--glue-includes=' + opts.glue_includes, + '--assembly-name=' + opts.assembly_name,] + + if opts.schema: + cmd += ['--schema=' + opts.schema] + + cmd += ['-I' + i for i in opts.extra_includes] + + print(' '.join(cmd)) + subprocess.check_call(cmd) + + # WORKAROUND: Moving files into the out directory with special names + # as meson doesn't like path separator in output names. + regex = re.compile('_') + dirs = set() + for _f in opts.files.split(';'): + fpath = os.path.join(opts.out, regex.sub("/", _f, 1)) + dirs.add(os.path.dirname(fpath)) + _f = os.path.join(opts.out, _f) + shutil.move(fpath, _f) + + missing_files = [] + for _dir in dirs: + missing_files.extend(glob.glob(os.path.join(_dir, '*.cs'))) + + if missing_files: + print("Following files were generated but not listed:\n %s" % + '\n '.join(["'%s_%s'," % (m.split(os.path.sep)[-2], m.split(os.path.sep)[-1]) + for m in missing_files])) + exit(1) + + for _dir in dirs: + shutil.rmtree(_dir) diff --git a/gio/generated/meson.build b/gio/generated/meson.build new file mode 100644 index 000000000..2dd0c90aa --- /dev/null +++ b/gio/generated/meson.build @@ -0,0 +1,425 @@ +generate_api = find_program('generate_code.py') + +generated_sources = [ + 'GLib_DBusServer.cs', + 'GLib_GLibSharp.AsyncReadyCallbackNative.cs', + 'GLib_DBusProxyFlags.cs', + 'GLib_GLibSharp.SettingsBindGetMappingNative.cs', + 'GLib_FileAttributeInfoFlags.cs', + 'GLib_SettingsBackendWatch.cs', + 'GLib_ResourceFileEnumerator.cs', + 'GLib_Credentials.cs', + 'GLib_AsyncResultAdapter.cs', + 'GLib_DBusError.cs', + 'GLib_DBusMessageFlags.cs', + 'GLib_FileType.cs', + 'GLib_FdoNotificationBackend.cs', + 'GLib_TlsDatabaseVerifyFlags.cs', + 'GLib_DBusMessageType.cs', + 'GLib_MenuItem.cs', + 'GLib_GLibSharp.FileProgressCallbackNative.cs', + 'GLib_DBusCallFlags.cs', + 'GLib_SocketClient.cs', + 'GLib_ZlibDecompressor.cs', + 'GLib_ActionMapAdapter.cs', + 'GLib_IOModuleScope.cs', + 'GLib_DBusSubtreeFlags.cs', + 'GLib_InputStream.cs', + 'GLib_SimpleProxyResolver.cs', + 'GLib_NetworkAddress.cs', + 'GLib_DBusObjectSkeleton.cs', + 'GLib_Socks4aProxy.cs', + 'GLib_SocketListener.cs', + 'GLib_FileDescriptorBasedAdapter.cs', + 'GLib_ActionRemovedHandler.cs', + 'GLib_Resource.cs', + 'GLib_SettingsBindFlags.cs', + 'GLib_SocketAddress.cs', + 'GLib_EmblemedIcon.cs', + 'GLib_AcceptCertificateHandler.cs', + 'GLib_MenuExporterLink.cs', + 'GLib_PropertyAction.cs', + 'GLib_TlsDatabase.cs', + 'GLib_DummyTlsCertificate.cs', + 'GLib_Socks5Proxy.cs', + 'GLib_IFileDescriptorBased.cs', + 'GLib_FileIOStream.cs', + 'GLib_DataOutputStream.cs', + 'GLib_SocketListenerEvent.cs', + 'GLib_IOSchedulerJob.cs', + 'GLib_MountRemovedHandler.cs', + 'GLib_IDatagramBased.cs', + 'GLib_IOExtension.cs', + 'GLib_AsyncInitableAdapter.cs', + 'GLib_DummyTlsConnection.cs', + 'GLib_ShowUnmountProgressHandler.cs', + 'GLib_DBusErrorEntry.cs', + 'GLib_DummyTlsCertificateClass.cs', + 'GLib_DBusAnnotationInfo.cs', + 'GLib_SocketService.cs', + 'GLib_LaunchedFailedHandler.cs', + 'GLib_ChangeEventHandler.cs', + 'GLib_MemoryBuffer.cs', + 'GLib_Win32RegistrySubkeyIter.cs', + 'GLib_FileMeasureProgressCallback.cs', + 'GLib_OutputMessage.cs', + 'GLib_DBusObject.cs', + 'GLib_DBusInterfaceSkeleton.cs', + 'GLib_ActionGroupAdapter.cs', + 'GLib_ISeekable.cs', + 'GLib_GLibSharp.PollableSourceFuncNative.cs', + 'GLib_ResourceFileInputStreamClass.cs', + 'GLib_GLibSharp.CancellableSourceFuncNative.cs', + 'GLib_NativeVolumeMonitor.cs', + 'GLib_DBusServerClass.cs', + 'GLib_DBusMenuPath.cs', + 'GLib_Win32WinsockFuncs.cs', + 'GLib_MenuExporterGroup.cs', + 'GLib_DBusPropertyInfoFlags.cs', + 'GLib_DriveDisconnectedHandler.cs', + 'GLib_UnixFDMessage.cs', + 'GLib_Win32RegistryValueIter.cs', + 'GLib_ResourceFileInputStream.cs', + 'GLib_DBusAuthObserverClass.cs', + 'GLib_ConverterAdapter.cs', + 'GLib_ShowProcessesHandler.cs', + 'GLib_ItemsChangedHandler.cs', + 'GLib_CancellableSourceFunc.cs', + 'GLib_FileProgressCallback.cs', + 'GLib_DBusSignalInfo.cs', + 'GLib_DriveStartFlags.cs', + 'GLib_CredentialsType.cs', + 'GLib_Menu.cs', + 'GLib_IOStream.cs', + 'GLib_DriveConnectedHandler.cs', + 'GLib_MenuModel.cs', + 'GLib_LocalFileEnumerator.cs', + 'GLib_ProxyAddressEnumerator.cs', + 'GLib_Win32RegistryKeyWatchCallbackFunc.cs', + 'GLib_MenuExporterWatch.cs', + 'GLib_Win32AppInfoApplication.cs', + 'GLib_FileInfo.cs', + 'GLib_ContentType.cs', + 'GLib_MountOperation.cs', + 'GLib_DriveAdapter.cs', + 'GLib_GLibSharp.SocketSourceFuncNative.cs', + 'GLib_BytesIcon.cs', + 'GLib_ThreadedSocketService.cs', + 'GLib_ThreadedResolver.cs', + 'GLib_SettingsGetMapping.cs', + 'GLib_WritableChangedHandler.cs', + 'GLib_TestDBus.cs', + 'GLib_FileMeasureFlags.cs', + 'GLib_IAsyncResult.cs', + 'GLib_DBusMethodInfo.cs', + 'GLib_TaskThreadFunc.cs', + 'GLib_IDrive.cs', + 'GLib_SettingsBackendClosure.cs', + 'GLib_DBusArgInfo.cs', + 'GLib_DBusSendMessageFlags.cs', + 'GLib_DBusObjectManagerClientFlags.cs', + 'GLib_TlsCertificateFlags.cs', + 'GLib_IAppInfo.cs', + 'GLib_UnixFDList.cs', + 'GLib_ITlsServerConnection.cs', + 'GLib_SocketType.cs', + 'GLib_TlsDatabaseLookupFlags.cs', + 'GLib_Application.cs', + 'GLib_DBusInterface.cs', + 'GLib_HttpsProxy.cs', + 'GLib_OutputStream.cs', + 'GLib_TlsConnection.cs', + 'GLib_DBusMessageClass.cs', + 'GLib_ThemedIcon.cs', + 'GLib_IOErrorEnum.cs', + 'GLib_DBusServerFlags.cs', + 'GLib_TcpWrapperConnection.cs', + 'GLib_BusNameWatcherFlags.cs', + 'GLib_GLibSharp.IOSchedulerJobFuncNative.cs', + 'GLib_SocketProtocol.cs', + 'GLib_DummyTlsDatabase.cs', + 'GLib_TlsFileDatabase.cs', + 'GLib_SeekableAdapter.cs', + 'GLib_NetworkMonitor.cs', + 'GLib_DtlsServerConnection.cs', + 'GLib_SocketAddressEnumerator.cs', + 'GLib_CommandLineHandler.cs', + 'GLib_CocoaNotificationBackend.cs', + 'GLib_ConverterResult.cs', + 'GLib_TlsCertificateRequestFlags.cs', + 'GLib_MenuAttributeIter.cs', + 'GLib_IOError.cs', + 'GLib_TlsServerConnectionAdapter.cs', + 'GLib_SocketFamily.cs', + 'GLib_RunHandler.cs', + 'GLib_Win32AppInfoURLSchema.cs', + 'GLib_DBusObjectManager.cs', + 'GLib_MountAddedHandler.cs', + 'GLib_AskPasswordFlags.cs', + 'GLib_LocalFileIOStream.cs', + 'GLib_FileMonitorEvent.cs', + 'GLib_NativeSocketAddress.cs', + 'GLib_FileReadMoreCallback.cs', + 'GLib_EmblemOrigin.cs', + 'GLib_IOModule.cs', + 'GLib_VolumeAdapter.cs', + 'GLib_Subprocess.cs', + 'GLib_PortalNotificationBackend.cs', + 'GLib_OutputVector.cs', + 'GLib_SocketMsgFlags.cs', + 'GLib_LoadableIconAdapter.cs', + 'GLib_DataStreamNewlineType.cs', + 'GLib_VolumeChangedHandler.cs', + 'GLib_AskPasswordHandler.cs', + 'GLib_SubprocessFlags.cs', + 'GLib_FileAttributeInfo.cs', + 'GLib_BufferedInputStream.cs', + 'GLib_GLibSharp.SpawnChildSetupFuncNative.cs', + 'GLib_VolumeMonitor.cs', + 'GLib_DBusMethodInvocationClass.cs', + 'GLib_MenuLinkIter.cs', + 'GLib_ReplyHandler.cs', + 'GLib_PasswordSave.cs', + 'GLib_DBusInterfaceInfo.cs', + 'GLib_ResolverRecordType.cs', + 'GLib_Win32AppInfoFileExtensionClass.cs', + 'GLib_MountMountFlags.cs', + 'GLib_FilesystemPreviewType.cs', + 'GLib_DatagramBasedAdapter.cs', + 'GLib_ChangedHandler.cs', + 'GLib_TlsError.cs', + 'GLib_TlsCertificate.cs', + 'GLib_Resolver.cs', + 'GLib_SocketControlMessage.cs', + 'GLib_DataInputStream.cs', + 'GLib_MountAdapter.cs', + 'GLib_SocketConnection.cs', + 'GLib_DummyDtlsConnection.cs', + 'GLib_DBusInterfaceSkeletonFlags.cs', + 'GLib_IAsyncInitable.cs', + 'GLib_SimpleAsyncThreadFunc.cs', + 'GLib_TlsInteractionResult.cs', + 'GLib_InitableAdapter.cs', + 'GLib_DBusObjectManagerServer.cs', + 'GLib_UnixConnection.cs', + 'GLib_TlsPasswordFlags.cs', + 'GLib_ActionEnabledChangedHandler.cs', + 'GLib_GLibSharp.ReallocFuncNative.cs', + 'GLib_Win32AppInfoFileExtension.cs', + 'GLib_ZlibCompressorFormat.cs', + 'GLib_UnixSocketAddressType.cs', + 'GLib_InetAddressMask.cs', + 'GLib_MenuExporter.cs', + 'GLib_BusType.cs', + 'GLib_EventHandler.cs', + 'GLib_Win32AppInfoHandlerClass.cs', + 'GLib_TlsRehandshakeMode.cs', + 'GLib_FileIcon.cs', + 'GLib_SettingsBackend.cs', + 'GLib_ITlsClientConnection.cs', + 'GLib_ResourceFileEnumeratorClass.cs', + 'GLib_ResourceFlags.cs', + 'GLib_DBusObjectManagerClient.cs', + 'GLib_Socks4Proxy.cs', + 'GLib_DBusMessageByteOrder.cs', + 'GLib_SrvTarget.cs', + 'GLib_CharsetConverter.cs', + 'GLib_DriveStopButtonHandler.cs', + 'GLib_Emblem.cs', + 'GLib_DummyTlsConnectionClass.cs', + 'GLib_WritableChangeEventHandler.cs', + 'GLib_DummyDtlsConnectionClass.cs', + 'GLib_GtkNotificationBackend.cs', + 'GLib_FileMonitor.cs', + 'GLib_AppInfoMonitor.cs', + 'GLib_IOStreamSpliceFlags.cs', + 'GLib_FileInputStream.cs', + 'GLib_DBusSubtreeVTable.cs', + 'GLib_InputVector.cs', + 'GLib_DtlsClientConnection.cs', + 'GLib_ActionAddedHandler.cs', + 'GLib_GLibSharp.TaskThreadFuncNative.cs', + 'GLib_AppInfoCreateFlags.cs', + 'GLib_TlsInteraction.cs', + 'GLib_ReallocFunc.cs', + 'GLib_UnixCredentialsMessage.cs', + 'GLib_ResolverError.cs', + 'GLib_Settings.cs', + 'GLib_GLibSharp.SettingsBindSetMappingNative.cs', + 'GLib_IConverter.cs', + 'GLib_DBusMessage.cs', + 'GLib_SettingsBindGetMapping.cs', + 'GLib_MountUnmountFlags.cs', + 'GLib_IOSchedulerJobFunc.cs', + 'GLib_SimpleIOStream.cs', + 'GLib_IconAdapter.cs', + 'GLib_DBusConnectionFlags.cs', + 'GLib_SocketSourceFunc.cs', + 'GLib_GLibSharp.FileMeasureProgressCallbackNative.cs', + 'GLib_TestDBusClass.cs', + 'GLib_FileEnumerator.cs', + 'GLib_AppLaunchContext.cs', + 'GLib_Task.cs', + 'GLib_DBusProxy.cs', + 'GLib_ProxyResolverAdapter.cs', + 'GLib_DBusActionGroup.cs', + 'GLib_SettingsBindSetMapping.cs', + 'GLib_DriveChangedHandler.cs', + 'GLib_FileCreateFlags.cs', + 'GLib_PollableInputStream.cs', + 'GLib_ResourceError.cs', + 'GLib_MenuExporterRemote.cs', + 'GLib_ExportedSubtree.cs', + 'GLib_ApplicationFlags.cs', + 'GLib_ProxyResolverPortal.cs', + 'GLib_GioGlobal.cs', + 'GLib_GLibSharp.SimpleAsyncThreadFuncNative.cs', + 'GLib_DBusConnection.cs', + 'GLib_Socket.cs', + 'GLib_TlsClientConnectionAdapter.cs', + 'GLib_GLibSharp.Win32RegistryKeyWatchCallbackFuncNative.cs', + 'GLib_Win32AppInfoURLSchemaClass.cs', + 'GLib_IIcon.cs', + 'GLib_MountOperationResult.cs', + 'GLib_VolumeRemovedHandler.cs', + 'GLib_ProxyAdapter.cs', + 'GLib_SubprocessLauncher.cs', + 'GLib_ResourceLookupFlags.cs', + 'GLib_InetAddress.cs', + 'GLib_SimpleActionGroup.cs', + 'GLib_FileAttributeMatcher.cs', + 'GLib_NetworkConnectivity.cs', + 'GLib_ConverterFlags.cs', + 'GLib_DBusMessageHeaderField.cs', + 'GLib_IVolume.cs', + 'GLib_FileAdapter.cs', + 'GLib_Notification.cs', + 'GLib_DBusProxyTypeFunc.cs', + 'GLib_IOExtensionPoint.cs', + 'GLib_TcpConnection.cs', + 'GLib_Win32AppInfoHandler.cs', + 'GLib_DummyProxyResolver.cs', + 'GLib_TlsPassword.cs', + 'GLib_DataStreamByteOrder.cs', + 'GLib_DBusPropertyInfo.cs', + 'GLib_ISocketConnectable.cs', + 'GLib_OpenedHandler.cs', + 'GLib_IProxyResolver.cs', + 'GLib_ActionStateChangedHandler.cs', + 'GLib_FilterOutputStream.cs', + 'GLib_SocketClientEvent.cs', + 'GLib_IOStreamAdapter.cs', + 'GLib_VfsFileLookupFunc.cs', + 'GLib_NotificationPriority.cs', + 'GLib_InputMessage.cs', + 'GLib_ApplicationCommandLine.cs', + 'GLib_Cancellable.cs', + 'GLib_DBusObjectProxy.cs', + 'GLib_DBusSignalFlags.cs', + 'GLib_InetSocketAddress.cs', + 'GLib_Win32RegistryValueType.cs', + 'GLib_SchemaState.cs', + 'GLib_DBusAuthObserver.cs', + 'GLib_Win32RegistryKeyWatcherFlags.cs', + 'GLib_IActionGroup.cs', + 'GLib_Win32AppInfoApplicationClass.cs', + 'GLib_DatagramBasedSourceFunc.cs', + 'GLib_PollableSourceFunc.cs', + 'GLib_GLibSharp.GSourceFuncNative.cs', + 'GLib_Pollable.cs', + 'GLib_ZlibCompressor.cs', + 'GLib_DtlsConnection.cs', + 'GLib_GLibSharp.DatagramBasedSourceFuncNative.cs', + 'GLib_ExportedObject.cs', + 'GLib_TestDBusFlags.cs', + 'GLib_MenuExporterMenu.cs', + 'GLib_BusNameOwnerFlags.cs', + 'GLib_DBusNodeInfo.cs', + 'GLib_GLibSharp.VfsFileLookupFuncNative.cs', + 'GLib_NetworkService.cs', + 'GLib_DBusMethodInvocation.cs', + 'GLib_FileMonitorFlags.cs', + 'GLib_DBusConnectionClass.cs', + 'GLib_DBusInterfaceVTable.cs', + 'GLib_IProxy.cs', + 'GLib_IActionMap.cs', + 'GLib_Resources.cs', + 'GLib_SimplePermission.cs', + 'GLib_IFile.cs', + 'GLib_LaunchedHandler.cs', + 'GLib_NextstepSettingsBackend.cs', + 'GLib_VolumeAddedHandler.cs', + 'GLib_OutputStreamSpliceFlags.cs', + 'GLib_BufferedOutputStream.cs', + 'GLib_PollableOutputStream.cs', + 'GLib_FileCopyFlags.cs', + 'GLib_AskQuestionHandler.cs', + 'GLib_SimpleAsyncResult.cs', + 'GLib_IMount.cs', + 'GLib_DBusMenuGroup.cs', + 'GLib_FilenameCompleter.cs', + 'GLib_IOModuleScopeFlags.cs', + 'GLib_Permission.cs', + 'GLib_MountChangedHandler.cs', + 'GLib_DriveEjectButtonHandler.cs', + 'GLib_DummyTlsDatabaseClass.cs', + 'GLib_ProxyAddress.cs', + 'GLib_FileAttributeStatus.cs', + 'GLib_IInitable.cs', + 'GLib_MessageToWriteData.cs', + 'GLib_FileOutputStream.cs', + 'GLib_GLibSharp.FileReadMoreCallbackNative.cs', + 'GLib_Vfs.cs', + 'GLib_FileAttributeInfoList.cs', + 'GLib_DriveStartStopType.cs', + 'GLib_ActionEntry.cs', + 'GLib_Win32RegistryKey.cs', + 'GLib_NotificationBackend.cs', + 'GLib_IncomingHandler.cs', + 'GLib_HttpProxy.cs', + 'GLib_MountPreUnmountHandler.cs', + 'GLib_SocketConnectableAdapter.cs', + 'GLib_SimpleAction.cs', + 'GLib_ActionAdapter.cs', + 'GLib_FileQueryInfoFlags.cs', + 'GLib_FilterInputStream.cs', + 'GLib_GLibSharp.SettingsGetMappingNative.cs', + 'GLib_ILoadableIcon.cs', + 'GLib_TlsAuthenticationMode.cs', + 'GLib_GLibSharp.DBusProxyTypeFuncNative.cs', + 'GLib_FileAttributeType.cs', + 'GLib_AsyncReadyCallback.cs', + 'GLib_DBusCapabilityFlags.cs', + 'GLib_AppInfoAdapter.cs', + 'GLib_RemoteActionGroup.cs', + 'GLib_IAction.cs', +] + +source_gen = custom_target('gio_generated', + command: [ + generate_api, + '--api-raw', raw_api_fname, + '--gapi-fixup', gapi_fixup.full_path(), + '--metadata', metadata_fname, + '--gapi-codegen', gapi_codegen.full_path(), + '--extra-includes', glib_api_includes, + '--glue-file', gluefile, + '--glue-includes', glueincludes, + '--out', meson.current_build_dir(), + '--files', ';'.join(generated_sources), + '--assembly-name', assembly_name, + '--schema', schema, + ], + depends: [gapi_codegen, gapi_fixup], + input: raw_api_fname, + output: generated_sources, +) + +api_xml = custom_target(pkg + '_api_xml', + input: raw_api_fname, + output: pkg + '-api.xml', + command: [generate_api, '--fakeglue'], + depends: [source_gen], + install: true, + install_dir: gapi_xml_installdir) +gio_api_includes = join_paths(meson.current_build_dir(), 'gio-api.xml') diff --git a/gio/gio-api.raw b/gio/gio-api.raw index c138eddcc..27891c837 100644 --- a/gio/gio-api.raw +++ b/gio/gio-api.raw @@ -20,6 +20,8 @@ + + @@ -58,17 +60,14 @@ - - - - - - - + + + + @@ -124,6 +123,14 @@ + + + + + + + + @@ -133,6 +140,7 @@ + @@ -153,6 +161,10 @@ + + + + @@ -163,6 +175,8 @@ + + @@ -176,6 +190,8 @@ + + @@ -244,6 +260,12 @@ + + + + + + @@ -253,11 +275,16 @@ + + + + + @@ -322,6 +349,14 @@ + + + + + + + + @@ -341,6 +376,18 @@ + + + + + + + + + + + + @@ -356,6 +403,24 @@ + + + + + + + + + + + + + + + + + + @@ -364,12 +429,29 @@ + + + + + + + + + + + + + + + + + @@ -389,6 +471,20 @@ + + + + + + + + + + + + + + @@ -404,6 +500,16 @@ + + + + + + + + + + @@ -413,6 +519,17 @@ + + + + + + + + + + + @@ -425,6 +542,25 @@ + + + + + + + + + + + + + + + + + + + @@ -438,47 +574,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -486,101 +581,30 @@ - - - - - - - - - - - - - - + + - - + - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + - - + + + + @@ -662,6 +686,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + @@ -671,14 +719,14 @@ - + - - - + + + - + @@ -703,7 +751,7 @@ - + @@ -721,6 +769,12 @@ + + + + + + @@ -742,10 +796,26 @@ - - + + - + + + + + + + + + + + + + + + + + @@ -765,6 +835,7 @@ + @@ -789,7 +860,7 @@ - + @@ -846,6 +917,17 @@ + + + + + + + + + + + @@ -928,6 +1010,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -954,6 +1102,7 @@ + @@ -1068,6 +1217,10 @@ + + + + @@ -1157,6 +1310,9 @@ + + + @@ -1176,6 +1332,23 @@ + + + + + + + + + + + + + + + + + @@ -1315,6 +1488,7 @@ + @@ -1324,6 +1498,12 @@ + + + + + + @@ -1333,6 +1513,18 @@ + + + + + + + + + + + + @@ -1377,30 +1569,110 @@ - - - - + + + + + + + + - - + + - + + + + + + - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1430,6 +1702,9 @@ + + + @@ -1591,6 +1866,18 @@ + + + + + + + + + + + + @@ -1606,22 +1893,6 @@ - - - - - - - - - - - - - - - - @@ -1654,9 +1925,15 @@ + + + + + + @@ -1675,6 +1952,9 @@ + + + @@ -1781,14 +2061,14 @@ - - + + - - + + - - + + @@ -1828,6 +2108,9 @@ + + + @@ -2203,11 +2486,21 @@ - + + + + + + + - - + + + + + + @@ -2216,11 +2509,21 @@ - + + + + + + + - - + + + + + + @@ -2229,11 +2532,21 @@ - + + + + + + + - - + + + + + + @@ -2539,6 +2852,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2661,25 +3009,25 @@ - - - - + - + - + + + + @@ -2874,6 +3222,22 @@ + + + + + + + + + + + + + + + + @@ -2889,6 +3253,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2947,6 +3346,12 @@ + + + + + + @@ -2957,6 +3362,13 @@ + + + + + + + @@ -3158,6 +3570,18 @@ + + + + + + + + + + + + @@ -3376,16 +3800,16 @@ - + - + - + @@ -3410,15 +3834,7 @@ - - - - - - - - - + @@ -3433,6 +3849,7 @@ + @@ -3460,6 +3877,16 @@ + + + + + + + + + + @@ -3481,22 +3908,14 @@ + + + - - - - - - - - - - - - + @@ -3626,6 +4045,8 @@ + + @@ -3782,28 +4203,20 @@ + + + + + + + + - - - - - - - - - - - - - - - - @@ -3836,6 +4249,12 @@ + + + + + + @@ -3892,22 +4311,6 @@ - - - - - - - - - - - - - - - - @@ -3929,131 +4332,21 @@ - - + + - - - - + + + + - - - - - - - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -4259,6 +4552,7 @@ + @@ -4268,6 +4562,10 @@ + + + + @@ -4277,6 +4575,9 @@ + + + @@ -4285,6 +4586,11 @@ + + + + + @@ -4299,6 +4605,23 @@ + + + + + + + + + + + + + + + + + @@ -4308,12 +4631,27 @@ + + + + + + + + + + + + + + + @@ -4321,11 +4659,24 @@ + + + + + + + + + + + + + @@ -4405,6 +4756,8 @@ + + @@ -4510,28 +4863,20 @@ + + + + + + + + - - - - - - - - - - - - - - - - @@ -4573,6 +4918,12 @@ + + + + + + @@ -4635,16 +4986,26 @@ - + + + + + + - + + + + + + @@ -4666,6 +5027,12 @@ + + + + + + @@ -4699,27 +5066,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -4732,6 +5160,9 @@ + + + @@ -4746,6 +5177,9 @@ + + + @@ -4763,7 +5197,14 @@ - + + + + + + + + @@ -4775,6 +5216,9 @@ + + + @@ -4787,16 +5231,40 @@ + + + + + + + + + + + + + + + + + + + + + + - + + + @@ -4811,6 +5279,16 @@ + + + + + + + + + + @@ -4829,9 +5307,15 @@ + + + + + + @@ -4862,19 +5346,47 @@ + + + + + + + + + + + + + + + - + + - + + + + + + + + + + + + + @@ -4889,12 +5401,6 @@ - - - - - - @@ -4907,9 +5413,6 @@ - - - @@ -4917,6 +5420,9 @@ + + + @@ -4934,6 +5440,19 @@ + + + + + + + + + + + + + @@ -4989,6 +5508,9 @@ + + + @@ -5077,6 +5599,9 @@ + + + @@ -5110,6 +5635,24 @@ + + + + + + + + + + + + + + + + + + @@ -5258,6 +5801,9 @@ + + + @@ -5297,6 +5843,9 @@ + + + @@ -5323,6 +5872,12 @@ + + + + + + @@ -5449,6 +6004,22 @@ + + + + + + + + + + + + + + + + @@ -5565,6 +6136,9 @@ + + + @@ -5647,1287 +6221,1053 @@ - - + + + + + + + + + + - - + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - + - - - + + - - - + + - - - - - - + + + + + + + + + + + + - - + - - + + + + + + + + + + + + + - - - - - - - - + + - - - - - - + + + + + + + + + + + - - - - - - - - - - - - + + - - - - - - - - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + - - - + + + - - + - + - + + + + + + + - - + + - + + + + + + + + + + + + + - - - - - - - - - - - + + + + - - + + - - - - - - - + + + - - - + + - - + + - - - - - - - - + + - - - + + + - - - - - - - - - - - - - - - - + - - + + + - - + + - + - - + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - + + - + - + - - + + - - + - - - - - - - - - - - - - - + + - + - - + + - + - + + - - - - + + - - + - - + + + - + - - + + + - - - + + - - + + + - + - - + + + - - - - - + - - + + + + + + + + + + + + + + + + + + - - - - - - + - - - - - - - - - - + + + + + + + - - + + - - - - - - + - - + + + + + - + - + - - - - + - - + + - - - - - - - + - - + + - - + + + + - - + + - - - - - - + - - + + - + - - + + - - - - - - - - - + - - + + - + - - + + + + + - - + + - + - - + + - + - - - - - - - - + + - - - + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - + + - - + + - - + + - + - - + + + + + - - + + - - + + - - + + - - + + - - - - - - - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - + - - + + + - - - - + - - + + + - + - - + + + + - - - + - - - + + + - + + + - + - + + - + - + + - + - + + - + - + + - + - + - + - - + + - - + + - + + - + - + + - + - + + - + - + + - + - + + - + - + - + - + - + - + - + - + - + - + - - + + - - - + - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + - + - - - - + - + - - - + - + - - - - + - + - + - + - + + + + - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - + + + - - - + + + - - - - - - + + - - - - + + - - - + + + - + + + + + + + + + + + + + + + + + + + + + + - - + + - - - - + - - + + - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + - - + - - + + + + + + + - + + - - + + + - - - - - - + - - + + + - - - - - - + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + - + - + + + + + - - + + - + + - - + + - + + + + + + + - - - - - - - - + + + - + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - + + - - - - + + - - - - + + + + + + - - - - - - - - - - - - - + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - + + + - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - + + + + + + - - + + - - + - - - - - - - - - + + - - + + + + + + @@ -6943,482 +7283,625 @@ - - - - - - - - + + + + + + + + + + + + - + + - - + + - - - - - + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - + + - - + - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + - + + + + - + - - + + + + + + + + + + - - - + - - - - - - - - - - - - - + + + + - - - - - + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - + + - + - - - - - - - - + + - + - - - - - - - - - - - + + - - - - - + + - - - - - + + - - - - - + + - - - - - + + - - + + + + + + + + + + - + - - - + + - + + - - - + + - + - - - + + - + + + + - - - - - - - - - - - - - - - - - - - - - - - + + - + + + + + + + + + + + + + - - - - + - - - - - + + - - + + - - + + - + - + - + - - + - + + + - - - + + - + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + - - - + + - - - + + - - - + + + + + + + + + + + + + + + + + + + + + + + - - + + + + - - - + + + - - + + + - - - + + + - - + + - - + + - - + + + + + + - - - + + + - + + - - + + - - + + + + + - - - + + + - - + + - - + + - - + + + + - - - + + + - - + + - - + + + + + + + + + + + + + + + + + + + + - - + + - + - - + + + + - - + + - + + - - + + + + + + + + + + + - + + + + - - + + - + + + + + - + - + + + + + + - - + + - + + + - + - + + + + + + - - + + - + + + - + - + + + + + - - + + - + + - - + + - + + - - + + - + - - + + - + + + - + + + + + + + + + + + + + + + - - - - - - - - - + + + + + + + + + + + + + - - - + + + + + + - - + + - + - - - - - - - - - - - + - - - + + @@ -7439,115 +7922,109 @@ - - - - - + + + + + + + + + + + + + + + + + - - + + - - + - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + - - - - - - - - + + - - - + + - - - - - - - - - - - - + + - + + - - - + + + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + @@ -7565,65 +8042,54 @@ + - - + + + + + - - - - - + + - - - + + + - - + + + + + - - - - - + - - - + + - - + + + - + - - - - - + + + - - - - - - - - - - - - - - - + + + + + + @@ -7639,583 +8105,457 @@ - - + + + + + + - - + + + + + + + + + + - - - - + + + + + + + + - + + + + + + - - - + + - - + + - - - - + - - - - - - - + - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - + + - - - - - - - + + + + + + + + + - - - + + + - - - + + + - - - + + - - + + - - - - - + + + - - - + + + - - + + + - - - - - - - - - - - - - - - - - - + + + - - - - - - + + + + - - + + + + + - - + + - - - + + - + - - - - - + + - - + + - - + + + + - - - - - - + + + + - - - - - + + + + + + + - - - - - - - - + + - + - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + - + + + + + + + + - - + + + + + + - - + + + + + - + - + - + + - + - - + + - + - + + - + - + + - - + + + + + + + - - + + + + + + - - - - - - - - - - + + + + + + + - - + + + + + + - - + + + + + - + + - - + - + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - - - - - - - - - - - - + - - - + + + - - - - + + - - + + + + + - - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + - + + + + + - - - - - - + + - - + + - - + - + + + + + + + + + - - - - - + + - - + + - - + - - + + - - - - + + - + - - + + + + - - - - - - - - - - - - - - - - - - - - + + - - + + + - - + + - - - - + + - - - - - - + + - + - - - - - - - - - - - - - - - - + - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - + + - - - - - + - - + + - - + - - + + - - - - - + + + + + + @@ -8225,43 +8565,56 @@ - - - - - - - - - - - - - - - + + + - - + + + + - - + + - - - - + + - - - + + + - - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -8289,116 +8642,916 @@ - - - - - - - + - - - - - - - - - - - - + + - - - - - - + + - - + + - - + + - + - - - - - + + - - + + + - + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + + + + + + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + - + + + + + @@ -8414,925 +9567,923 @@ - - - - + - - - - - + + + + + + - + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + + + + + + - + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + - - + + + + + + + + + - - + + + + + + + + + + - + + - - - - + + - - - + + + - - + + - - - - - - - - - - - - - - - + + + + + - - + + - - - - + - - + + - - + + - + - + - - - - - - + + - - - + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + - - + + - - + + + + + + + + - - + + + + + + + + + + + + - - + + + + + + + + + + + + + + - - - - - + + + + + + + - - + + + + + - - + + + + + - - + + + + + - - + + + + + - - + + + + + - - - + + - + - - + + + + + - + - - + + - + - - + + - + + + - - + + - + + + - - + + - + - - + + - + - - - - - - - - + + - - + - - - - - - - - - - - - - - - - - - - - - - - - - + - + + - - + - - - + + + - - - + - - + + - - - + - - - - - - - - - - - - - - - + + + + + - - + + + + + - - + + - - + + - - + + - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - + + - - - + + - - + - - - + + - - + + + - - - + + - - - - - - + + - - - + + - - + + + - - - + + - - - - - - + + - - - + + + - - + + - - + + - - - - - + + - - + + + + + - - + + + - - - + + + - - - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - - + + - - - - + + - + - - + + - + - - + + - - + + - - - + + - + - - + + - - - - + + + + + - + + + + + - + + + + + - + - + + - - + + + + + - - - - + + - + + + - - - - - - + - - - + + + - - + + + + + + + + + + + + - - + - - - - + + - - - + + - - - - - + + + + + + + + + - + - - - - - - + - - + + - - + - - + + - - - - - - - + - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - - - + + + + + - - - - - - + + + + + + + + + + + + + + - - + + + - - - + + - + + - - - + + - - + + + + + + + - - - + + - - + + + + - - - + + - + + - - + + - - + - - - - - - - - - - - - - + - - - - - - - - + + - - + - - - + - - + + - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - + - - + + - - - - - - - - - - - - - - - - - - - + - - + + - - - - + - - - + + + - - - - - - + + + + + + - - - + - - + + - - - - + - - - + + + + + + + + + + + + - - + + - + + + + + + + + + + + + + + + + + + + + + + + + @@ -9348,721 +10499,733 @@ - - - - - + + + + + - + + + + + + + - + - + - + - - - - - + + + + + + - - + + + + + + + + + + + + + + + + + + + - - + + + + + - - + + + + + + + - - - - + + - - - + + + - + + - - + + + + + + + + + + - - - + + - - - - + + + + + + - - + + - - - - + - - - - - + + - - - - - + + - - - - - + + + + + - - - - - - - - - - - - - - - + + - - - - - - - + + + - - - - - - - - - + + + + + + + + + + - - - - - - - - + + - - - - - - - - - - - - + + - - - - - - - - + + - - + + - - - + - - + + - + + + - - + + - + + + + - - + + - + + - - + + - + + + + - - + + - + + + + + - - - - - + + - + + - - + + - - - + + + + - - + + - - + + + + - - + + - + + - - + + - + + + + - - + + - + + + + + - - - - - + + - + + - + - - - - - + + - - + + - - + + - - + + - + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + - - - + - - + + + - - + - - - + + + - - + - + - + - + - - - - - - + - - + + - - + - - + + - - + - - + + - - + - - + + - - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + - - + + - - + + + - + - - + + - - + + - - + - - + + - - + + + - - - - + - - + + + + - - - - - - - - - - - - - - + + - + - - - - - + + - + - - - - - + + - - - - - + + + + + - - - - - - - + + - - + + + + + + + + + + - - + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - + - - + + + - - - + + + + - - + + + + + + + + + + + + + + + + + - + + + + - - - - - - - - - - - - + + - - - - - + + - - - - - + + - - + + + + - + - - - + + + + + - + - + + + + + + + + + + + + + + + - - + + + + + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + - - - - + + + - + + + - - + + - - + + - + - - - - + + + - - + + - - - - + + + - - + + - + + + + + + - - + + - + + - - + + - + + + - - + + - - + + + - + - - - - + + + + + - + - - - - - - - - - + + + + + + + + + - - - + + + + - - - - - - - - - - - - - - - + + + + + + + + + @@ -10081,773 +11244,617 @@ - - - - - - - + + + + + + + + - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + - - + + - - - + + + + - + + + + - + + + + + - - - - - - - - + + - + - + + - + - - + + + - - - - - - - - - + + - - - - - + + - - + + - - + + - + - + - - - - - - - - - - - - - - - - - + + - - + + - - + + - + - - + + - - - - - + + - + - - - + + + - + - + + - - + + - - - - + - - + + - - - - - + + - - - - - - - + + - - + + - - - - - + + - - - + + - - + + - - - - - - - + - - + + - - - - + - - + + + + + + + + - - - - - + - + + + + + + - + + + - + - + - + - + - + - + - - + + - - - + - - - - - - - - - - - - - - - - - - - - - - + + - - - + - - - - - - - - + + + + + - + + - - + + + - - - + + + - - + + - - - - - - - - - - + + - + - - + + - - - + + - - - + + + - - + - - - - - + + - - + - + - - - + - - + + - - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + - + + - - - - - - - + + - - - - - - - - + + - - - - - - + + - - - - - - - - + + - - - - - - - - - + + - - - - - - + + - - + + + + + + + + + + + + + + + + + - - - - + + - - + - - + - + + + + + + + - - + + - - - + + - - - - + - - - + - + + + - - + + - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + + + + - + - + - + + + + - + - + + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - + - - + + - - - + - + - - - - + - - + + - + + - - + + + + + + + + + + + + + + + - + - - + + + + + + + + + - + + + + + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + - - - - - - - + - - - - - - - - + + - + - + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - + + + + - - - - + + + + - - - - - - - + + + + + + + + + @@ -10863,510 +11870,713 @@ - - - - - + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + - - - + - - + + - - + - - + - - + - - - + + - - - + + + - - - + + - - + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + - - - - - - + + - - - + + + - + - - + + + + + + + + + + + - - + - - + + - - - + + - - + + - - + + - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - - + + - - - - - - - - - - - - - - - - - + + - - - + + + + + + - + + + + + - - + + + + - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - - - - - - - - + + + + + - - + + + + + - + + - - + - + - - + + + + + + + + + + + + + + + + - - - - - - - + + + + + + + + + + + + + + - + + + + + + + + - - - - - - - - + + + - + + - - + + + - - + - - + + + - + + + + + - - + + - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + - - + + - - - - - - + + + + + + + + + - + + + + + + + + + - - + + + + + + - + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + - + + + + + + + + + + + + - + + + + + + - - - - - - - - - - - - - - - - + + + - - + + - - + + + + + + + + + - - + + + + + + + + + + - - + + - + - + + - + + + + - - + + + - - - + + + + + + - - + + + - - + - - + + + + - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + + + - - - - - - - - - - + + + - - + + + - - - + + + + + + + + + + + + + + + + + + + + + - + - + + - - + + - - + + - - + + + - - - - - - - - - - - + + + + + + + + - - + + + + + + - + - - + + + + + + + - - + + + + - + + + + + + + + + + - + + - - + + - + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + - + - + - + - + - + + + + + + + + + + + + + + + + - - - @@ -11378,6 +12588,21 @@ + + + + + + + + + + + + + + + @@ -11385,10 +12610,25 @@ - + + + + + + + + + + + + + + + + - + @@ -11402,19 +12642,8 @@ - - - - - - - - - - - @@ -11497,19 +12726,8 @@ - - - - - - - - - - - @@ -11536,25 +12754,17 @@ - - - - - - - - - - - + - + + + @@ -11578,12 +12788,6 @@ - - - - - - @@ -11605,13 +12809,13 @@ + - @@ -11680,6 +12884,12 @@ + + + + + + @@ -11698,9 +12908,6 @@ - - - @@ -11734,6 +12941,24 @@ + + + + + + + + + + + + + + + + + + @@ -11923,6 +13148,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -11973,248 +13282,130 @@ - - - - + + + - + - - + + + + - - - + - - + + + + + + + + + + + + - - - + - - + + - - + + + - - - - - - - + - - - - + + + - - + + + + + + + + + - - - - - + + - - - - - - - - - - - + + - + + + - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -12284,10 +13475,20 @@ + + + + + + + + + + @@ -12343,36 +13544,140 @@ - - - + + + - - - + - + + + - - - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -12410,148 +13715,193 @@ - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + - - - - + - - + + + + + + + + + + + - + + - - + + - - + + - - + + + + + - - - - - - - - + + - - + + + + + - - - - - - - + + - - + + + + + + + + + + + + + + + + + + + + + + + - - - - - + - - + + + + + + + + + + + - - - - - - + + + + - - + + - + + + + - - + + - + + + - - + + - - - - - - - + + + - - + + + + + - - - - - - - + + - - + + - - - - - + + - - + + + + + - - - - - + + - + + + + @@ -12578,6 +13928,12 @@ + + + + + + @@ -12590,6 +13946,12 @@ + + + + + + @@ -12622,225 +13984,252 @@ - - - + + + - - - + - - + + - - - - + - - + + + + + - - - + - - + + - - - - + + - - + + - + - - + + - + + - - + + + + + + + - + + - - + + - - + - - + + + + + - - + + - - - + + - + - - - - + + + + - + - - - - - + + - + - - - - - + + + - - + + - + + + + - - + + - - - + + - - + + + + + - - + + - + + + - - + + - + + + + + - - + + + + - + - - + + - + + + - - + + - + + + + + + - - + + - + + + + + - + - + + + + + + + - - - + + + + + + + + + + + - + + + - - + + - + + + + + - - - - - + + - + + + - - + + - + + + - - - - + - - - - - + - - - - + + - + - - - - - - - + @@ -12848,11 +14237,11 @@ - - + + - + @@ -12861,7 +14250,7 @@ - + @@ -12872,4 +14261,4 @@ - \ No newline at end of file + diff --git a/gio/gio.csproj b/gio/gio.csproj index 7495e21c6..6bc47ffcb 100644 --- a/gio/gio.csproj +++ b/gio/gio.csproj @@ -1,5 +1,5 @@ - + Debug x86 @@ -9,7 +9,8 @@ Library gio gio-sharp - v3.5 + v4.0 + true @@ -45,102 +46,95 @@ + + - + - - - - - - - - + - + - - - - - - - - - + - - - - - - + + - + - - + + + + - + + + + + + + + + + + - - - - - - + + + + @@ -154,11 +148,15 @@ + + - + + + @@ -171,38 +169,28 @@ + - + + - - + + - - - - - - - - - - - - - - + + @@ -214,14 +202,16 @@ - - + + + + + - @@ -230,24 +220,18 @@ - - - - - - + + - - @@ -255,12 +239,33 @@ + + + + + + + + + + + - - + + + + + + + + + + + + @@ -273,26 +278,42 @@ + - + + + + - - + + + + - + + + + + + + + + + + @@ -304,56 +325,68 @@ - + + + - - - + + + + + + + + + + - + - - + + + + + + + + - - - @@ -362,14 +395,14 @@ - - + - - + + Properties\AssemblyInfo.cs + @@ -380,13 +413,10 @@ - - - - + PreserveNewest - \ No newline at end of file + diff --git a/gio/meson.build b/gio/meson.build new file mode 100644 index 000000000..f561560a4 --- /dev/null +++ b/gio/meson.build @@ -0,0 +1,51 @@ +snk = join_paths(meson.current_source_dir(), '..', 'gtk-sharp.snk') +pkg = 'gio' +assembly_name = pkg + '-sharp' + +raw_api_fname = join_paths(meson.current_source_dir(), pkg + '-api.raw') +metadata_fname = join_paths(meson.current_source_dir(), 'Gio.metadata') +glueincludes = 'gio/gio.h' +gluefile = join_paths(meson.current_build_dir(), 'generate.c') + +configure_file(input: assembly_name + '.dll.config.in', + output: assembly_name + '.dll.config', + configuration : remap_dl_data) + +configure_file(input: assembly_name + '-3.0.pc.in', + output: assembly_name + '-3.0.pc', + configuration : version_data, + install_dir: pkg_install_dir, + install: true) + +subdir('generated') + +sources = [ + 'Application.cs', + 'AppInfoAdapter.cs', + 'FileAdapter.cs', + 'FileEnumerator.cs', + 'FileFactory.cs', + 'GioGlobal.cs', + 'GioStream.cs', + 'IFile.cs' +] + +gio_sharp = library(assembly_name, source_gen, sources, + cs_args: ['-unsafe', '-keyfile:' + snk], + link_with: glib_sharp, + install: true, + install_dir: lib_install_dir +) + +gluegen = custom_target('giogluegen', + input: raw_api_fname, + output: 'generate.c', + command: [generate_api, '--fakeglue'], + depends: [source_gen]) + +library('giosharpglue-3', gluegen, + dependencies: [glib_dep, gio_dep], + install: true) + +install_infos += [assembly_name, gio_sharp.full_path()] +gio_sharp_dep = declare_dependency(link_with: [glib_sharp, gio_sharp]) diff --git a/glib/GType.cs b/glib/GType.cs index 7f63e2bae..32e5eb878 100644 --- a/glib/GType.cs +++ b/glib/GType.cs @@ -95,19 +95,32 @@ public static GType FromName (string native_name) public static readonly GType Variant = new GType ((IntPtr) TypeFundamentals.TypeVariant); + static HashSet managedTypes = new HashSet (); static IDictionary types = new Dictionary (); static IDictionary gtypes = new Dictionary (); public static void Register (GType native_type, System.Type type) + { + Register (native_type, type, false); + } + + public static void Register (GType native_type, System.Type type, bool managed) { lock (types) { if (native_type != GType.Pointer && native_type != GType.Boxed && native_type != ManagedValue.GType) types[native_type.Val] = type; if (type != null) gtypes[type] = native_type; + if (managed) + managedTypes.Add(native_type); } } + public static bool IsManaged (GType gtype) + { + return managedTypes.Contains(gtype); + } + static GType () { g_type_init (); @@ -318,7 +331,7 @@ public GType GetBaseType () public GType GetThresholdType () { GType curr_type = this; - while (curr_type.ToString ().StartsWith ("__gtksharp_")) + while (IsManaged (curr_type)) curr_type = curr_type.GetBaseType (); return curr_type; } @@ -364,7 +377,9 @@ static string BuildEscapedName (System.Type t) internal static GType RegisterGObjectType (Object.ClassInitializer gobject_class_initializer) { GType parent_gtype = LookupGObjectType (gobject_class_initializer.Type.BaseType); - string name = BuildEscapedName (gobject_class_initializer.Type); + + TypeNameAttribute nattr = (TypeNameAttribute)Attribute.GetCustomAttribute (gobject_class_initializer.Type, typeof (TypeNameAttribute), false); + string name = nattr != null ? nattr.Name : BuildEscapedName (gobject_class_initializer.Type); IntPtr native_name = GLib.Marshaller.StringToPtrGStrdup (name); GTypeQuery query; @@ -376,7 +391,7 @@ internal static GType RegisterGObjectType (Object.ClassInitializer gobject_class GType gtype = new GType (g_type_register_static (parent_gtype.Val, native_name, ref info, 0)); GLib.Marshaller.Free (native_name); - Register (gtype, gobject_class_initializer.Type); + Register (gtype, gobject_class_initializer.Type, true); return gtype; } diff --git a/glib/Idle.cs b/glib/Idle.cs index 189b3a8b0..36f50909f 100644 --- a/glib/Idle.cs +++ b/glib/Idle.cs @@ -51,7 +51,12 @@ public bool Handler () bool cont = idle_handler (); if (!cont) - Remove (); + { + lock (this) + { + Remove (); + } + } return cont; } catch (Exception e) { ExceptionManager.RaiseUnhandledException (e, false); @@ -70,8 +75,11 @@ private Idle () public static uint Add (IdleHandler hndlr) { IdleProxy p = new IdleProxy (hndlr); - p.ID = g_idle_add ((IdleHandlerInternal) p.proxy_handler, IntPtr.Zero); - Source.AddSourceHandler (p.ID, p); + lock (p) + { + p.ID = g_idle_add ((IdleHandlerInternal) p.proxy_handler, IntPtr.Zero); + Source.AddSourceHandler (p.ID, p); + } return p.ID; } @@ -82,8 +90,11 @@ public static uint Add (IdleHandler hndlr) public static uint Add (IdleHandler hndlr, Priority priority) { IdleProxy p = new IdleProxy (hndlr); - p.ID = g_idle_add_full ((int)priority, (IdleHandlerInternal)p.proxy_handler, IntPtr.Zero, null); - Source.AddSourceHandler (p.ID, p); + lock (p) + { + p.ID = g_idle_add_full ((int)priority, (IdleHandlerInternal)p.proxy_handler, IntPtr.Zero, null); + Source.AddSourceHandler (p.ID, p); + } return p.ID; } diff --git a/glib/Makefile.am b/glib/Makefile.am index 4502f44b5..eb840d20c 100644 --- a/glib/Makefile.am +++ b/glib/Makefile.am @@ -90,6 +90,7 @@ sources = \ ToggleRef.cs \ TypeFundamentals.cs \ TypeInitializerAttribute.cs \ + TypeNameAttribute.cs \ ValueArray.cs \ Value.cs \ Variant.cs \ diff --git a/glib/Object.cs b/glib/Object.cs index df0ce8fbf..92bc6be5f 100644 --- a/glib/Object.cs +++ b/glib/Object.cs @@ -36,6 +36,7 @@ public class Object : IWrapper, IDisposable { bool disposed = false; static uint idx = 1; static Dictionary Objects = new Dictionary(); + static Dictionary> PropertiesToSet = new Dictionary>(); ~Object () { @@ -89,7 +90,9 @@ public static Object TryGetObject (IntPtr o) ToggleRef toggle_ref; lock (Objects) { - toggle_ref = (ToggleRef) Objects[o]; + if (!Objects.TryGetValue (o, out toggle_ref)) { + return null; + } } if (toggle_ref != null) { @@ -406,7 +409,9 @@ static IntPtr ConstructorCallback (IntPtr gtypeval, uint n_construct_properties, GType gtype = new GLib.GType (gtypeval); GObjectClass threshold_class = (GObjectClass) Marshal.PtrToStructure (gtype.GetThresholdType ().GetClassPtr (), typeof (GObjectClass)); IntPtr raw = threshold_class.constructor_cb (gtypeval, n_construct_properties, construct_properties); - bool construct_needed = true; + Dictionary deferred; + + GLib.Object obj = null; for (int i = 0; i < n_construct_properties; i++) { IntPtr p = new IntPtr (construct_properties.ToInt64 () + i * 2 * IntPtr.Size); @@ -417,16 +422,21 @@ static IntPtr ConstructorCallback (IntPtr gtypeval, uint n_construct_properties, Value val = (Value) Marshal.PtrToStructure (Marshal.ReadIntPtr (p, IntPtr.Size), typeof (Value)); if ((IntPtr) val.Val != IntPtr.Zero) { GCHandle gch = (GCHandle) (IntPtr) val.Val; - Object o = (GLib.Object) gch.Target; - o.Raw = raw; - construct_needed = false; + obj = (GLib.Object) gch.Target; + obj.Raw = raw; break; } } - if (construct_needed) - GetObject (raw, false); + if (obj == null) + obj = GetObject (raw, false); + if(PropertiesToSet.TryGetValue(raw, out deferred)) { + foreach(var item in deferred) { + SetDeferredProperty(obj, item.Value, item.Key); + } + PropertiesToSet.Remove(raw); + } return raw; } @@ -511,17 +521,30 @@ static GetPropertyDelegate GetPropertyHandler { static void SetPropertyCallback(IntPtr handle, uint property_id, ref GLib.Value value, IntPtr param_spec) { - // FIXME: Here is a big quick hack to avoid race condition when trying to set up adjustment with contructor - // Because Raw is set too late - if (param_spec != IntPtr.Zero) { - ParamSpec foo = new ParamSpec(param_spec); - if (foo.Name == "gtk-sharp-managed-instance") { - GCHandle gch = (GCHandle) (IntPtr) value.Val; - Object o = (GLib.Object) gch.Target; - o.Raw = handle; - } + // There are multiple issues in this place. + // We cannot construct an object here as it can be in construction + // from ConstructorCallback thus managed object already created. + // + // We cannot use the "gtk-sharp-managed-instance" property as when + // constructed by Gtk.Builder it is set to null. + // + // We defer setting the properties to later time when + // we have unmanaged and managed objects paired. + GLib.Object obj = TryGetObject(handle); + if(obj != null) { + SetDeferredProperty(obj, value, param_spec); + return; } - GLib.Object obj = GLib.Object.GetObject (handle, false); + Dictionary deferred; + if(!PropertiesToSet.TryGetValue(handle, out deferred)) { + deferred = new Dictionary(); + PropertiesToSet.Add(handle, deferred); + } + deferred[param_spec] = value; + } + + static void SetDeferredProperty(GLib.Object obj, GLib.Value value, IntPtr param_spec) + { var type = (Type)obj.LookupGType (); Dictionary props; @@ -596,7 +619,7 @@ struct GParameter { protected virtual void CreateNativeObject (string[] names, GLib.Value[] vals) { GType gtype = LookupGType (); - bool is_managed_subclass = gtype.ToString ().StartsWith ("__gtksharp"); + bool is_managed_subclass = GType.IsManaged (gtype); GParameter[] parms = new GParameter [is_managed_subclass ? names.Length + 1 : names.Length]; for (int i = 0; i < names.Length; i++) { parms [i].name = GLib.Marshaller.StringToPtrGStrdup (names [i]); @@ -705,7 +728,7 @@ public System.Collections.Hashtable Data { [DllImport (Global.GObjectNativeDll, CallingConvention = CallingConvention.Cdecl)] static extern void g_object_get_property (IntPtr obj, IntPtr name, ref GLib.Value val); - protected GLib.Value GetProperty (string name) + public GLib.Value GetProperty (string name) { Value val = new Value (this, name); IntPtr native_name = GLib.Marshaller.StringToPtrGStrdup (name); @@ -717,7 +740,7 @@ protected GLib.Value GetProperty (string name) [DllImport (Global.GObjectNativeDll, CallingConvention = CallingConvention.Cdecl)] static extern void g_object_set_property (IntPtr obj, IntPtr name, ref GLib.Value val); - protected void SetProperty (string name, GLib.Value val) + public void SetProperty (string name, GLib.Value val) { IntPtr native_name = GLib.Marshaller.StringToPtrGStrdup (name); g_object_set_property (Raw, native_name, ref val); diff --git a/glib/Timeout.cs b/glib/Timeout.cs index 2e68e068f..d0dc03c03 100644 --- a/glib/Timeout.cs +++ b/glib/Timeout.cs @@ -49,7 +49,12 @@ public bool Handler () bool cont = timeout_handler (); if (!cont) - Remove (); + { + lock (this) + { + Remove (); + } + } return cont; } catch (Exception e) { ExceptionManager.RaiseUnhandledException (e, false); @@ -65,9 +70,11 @@ private Timeout () {} public static uint Add (uint interval, TimeoutHandler hndlr) { TimeoutProxy p = new TimeoutProxy (hndlr); - - p.ID = g_timeout_add (interval, (TimeoutHandlerInternal) p.proxy_handler, IntPtr.Zero); - Source.AddSourceHandler (p.ID, p); + lock (p) + { + p.ID = g_timeout_add (interval, (TimeoutHandlerInternal) p.proxy_handler, IntPtr.Zero); + Source.AddSourceHandler (p.ID, p); + } return p.ID; } @@ -78,9 +85,11 @@ public static uint Add (uint interval, TimeoutHandler hndlr) public static uint Add (uint interval, TimeoutHandler hndlr, Priority priority) { TimeoutProxy p = new TimeoutProxy (hndlr); - - p.ID = g_timeout_add_full ((int)priority, interval, (TimeoutHandlerInternal) p.proxy_handler, IntPtr.Zero, null); - Source.AddSourceHandler (p.ID, p); + lock (p) + { + p.ID = g_timeout_add_full ((int)priority, interval, (TimeoutHandlerInternal) p.proxy_handler, IntPtr.Zero, null); + Source.AddSourceHandler (p.ID, p); + } return p.ID; } @@ -91,9 +100,11 @@ public static uint Add (uint interval, TimeoutHandler hndlr, Priority priority) public static uint AddSeconds (uint interval, TimeoutHandler hndlr) { TimeoutProxy p = new TimeoutProxy (hndlr); - - p.ID = g_timeout_add_seconds (interval, (TimeoutHandlerInternal) p.proxy_handler, IntPtr.Zero); - Source.AddSourceHandler (p.ID, p); + lock (p) + { + p.ID = g_timeout_add_seconds (interval, (TimeoutHandlerInternal) p.proxy_handler, IntPtr.Zero); + Source.AddSourceHandler (p.ID, p); + } return p.ID; } diff --git a/glib/TypeNameAttribute.cs b/glib/TypeNameAttribute.cs new file mode 100644 index 000000000..edadff098 --- /dev/null +++ b/glib/TypeNameAttribute.cs @@ -0,0 +1,41 @@ +// TypeNameAttribute.cs +// +// Copyright (c) 2015 Martin Kupec +// Copyright (c) 2015 Ales Kurecka +// +// This program is free software; you can redistribute it and/or +// modify it under the terms of version 2 of the Lesser GNU General +// Public License as published by the Free Software Foundation. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this program; if not, write to the +// Free Software Foundation, Inc., 59 Temple Place - Suite 330, +// Boston, MA 02111-1307, USA. + + +namespace GLib { + + using System; + + [AttributeUsage (AttributeTargets.Class, AllowMultiple = false, Inherited = false)] + public sealed class TypeNameAttribute : Attribute { + private readonly string name; + + public TypeNameAttribute (string name) + { + this.name = name; + } + + public string Name + { + get { + return name; + } + } + } +} diff --git a/glib/glib.csproj b/glib/glib.csproj index 762ceb644..24bf5bbda 100644 --- a/glib/glib.csproj +++ b/glib/glib.csproj @@ -1,5 +1,5 @@ - + Debug x86 @@ -9,7 +9,8 @@ Library glib glib-sharp - v3.5 + v4.0 + true @@ -102,6 +103,10 @@ + + + Properties\AssemblyInfo.cs + diff --git a/glib/meson.build b/glib/meson.build new file mode 100644 index 000000000..f3ed7f00a --- /dev/null +++ b/glib/meson.build @@ -0,0 +1,104 @@ +snk = join_paths(meson.current_source_dir(), '..', 'gtk-sharp.snk') +assembly_name = 'glib-sharp' + +configure_file(input: 'glib-sharp.dll.config.in', + output: 'glib-sharp.dll.config', + configuration : remap_dl_data) + +configure_file(input: 'glib-sharp-3.0.pc.in', + output: 'glib-sharp-3.0.pc', + configuration : version_data, + install_dir: pkg_install_dir, + install: true) + +policy_data = configuration_data() +policy_data.set('ASSEMBLY_NAME', assembly_name) +policy_data.set('API_VERSION', apiversion) + +policy = configure_file(input: policy_config, + output: 'policy.config', + configuration : policy_data) + +sources = [ + 'Argv.cs', + 'Bytes.cs', + 'ConnectBeforeAttribute.cs', + 'Cond.cs', + 'Date.cs', + 'DateTime.cs', + 'DefaultSignalHandlerAttribute.cs', + 'DestroyNotify.cs', + 'ExceptionManager.cs', + 'FileUtils.cs', + 'GException.cs', + 'GInterfaceAdapter.cs', + 'GInterfaceAttribute.cs', + 'GLibSynchronizationContext.cs', + 'Global.cs', + 'GString.cs', + 'GType.cs', + 'GTypeAttribute.cs', + 'Idle.cs', + 'InitiallyUnowned.cs', + 'IOChannel.cs', + 'IWrapper.cs', + 'KeyFile.cs', + 'ListBase.cs', + 'List.cs', + 'Log.cs', + 'MainContext.cs', + 'MainLoop.cs', + 'ManagedValue.cs', + 'Markup.cs', + 'Marshaller.cs', + 'MissingIntPtrCtorException.cs', + 'Mutex.cs', + 'NotifyHandler.cs', + 'Object.cs', + 'ObjectManager.cs', + 'Opaque.cs', + 'ParamSpec.cs', + 'PollFD.cs', + 'Priority.cs', + 'PropertyAttribute.cs', + 'PtrArray.cs', + 'RecMutex.cs', + 'Signal.cs', + 'SignalArgs.cs', + 'SignalAttribute.cs', + 'SignalClosure.cs', + 'SList.cs', + 'Source.cs', + 'SourceFunc.cs', + 'SourceFuncs.cs', + 'SourceDummyMarshal.cs', + 'GLibSharp.SourceFuncNative.cs', + 'GLibSharp.SourceDummyMarshalNative.cs', + 'SourceCallbackFuncs.cs', + 'Spawn.cs', + 'Thread.cs', + 'Timeout.cs', + 'TimeVal.cs', + 'TimeZone.cs', + 'ToggleRef.cs', + 'TypeFundamentals.cs', + 'TypeInitializerAttribute.cs', + 'TypeNameAttribute.cs', + 'ValueArray.cs', + 'Value.cs', + 'Variant.cs', + 'VariantType.cs' ] + + +glib_sharp = library(assembly_name, sources, + cs_args: ['-unsafe', '-keyfile:' + snk], + install: true, + install_dir: lib_install_dir +) + +install_infos += [assembly_name, glib_sharp.full_path()] + +glib_api_includes = join_paths(meson.current_source_dir(), 'glib-api.xml') +install_data(glib_api_includes, install_dir: gapi_xml_installdir) + +glib_sharp_dep = declare_dependency(link_with: glib_sharp) diff --git a/gtk-sharp.sln b/gtk-sharp.sln index ef9c2ffbf..300887f44 100644 --- a/gtk-sharp.sln +++ b/gtk-sharp.sln @@ -1,256 +1,261 @@ - -Microsoft Visual Studio Solution File, Format Version 10.00 -# Visual Studio 2008 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "sample", "sample\sample.csproj", "{48234565-8E78-462E-ADEC-9AAA81B641B2}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "generator", "generator\generator.csproj", "{80E73555-2284-40DC-9068-9A40B7359B0C}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "gtk-sharp", "gtk-sharp", "{E0AD538D-9979-479B-8CBA-ED9143536CE0}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "glib", "glib\glib.csproj", "{3BF1D531-8840-4F15-8066-A9788D8C398B}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "atk", "atk\atk.csproj", "{42FE871A-D8CF-4B29-9AFF-B02454E6C976}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "cairo", "cairo\cairo.csproj", "{364577DB-9728-4951-AC2C-EDF7A6FCC09D}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "gdk", "gdk\gdk.csproj", "{58346CC6-DE93-45B4-8093-3508BD5DAA12}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "gio", "gio\gio.csproj", "{1C3BB17B-336D-432A-8952-4E979BC90867}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "gtk", "gtk\gtk.csproj", "{94045F11-4266-40B4-910F-298985AF69D5}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "pango", "pango\pango.csproj", "{FF422D8C-562F-4EA6-8590-9D1A5CD40AD4}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "audit", "audit\audit.csproj", "{D8A1AAF8-EA10-4D1D-8A8A-D38C56C0A753}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|x86 = Debug|x86 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {1C3BB17B-336D-432A-8952-4E979BC90867}.Debug|x86.ActiveCfg = Debug|x86 - {1C3BB17B-336D-432A-8952-4E979BC90867}.Debug|x86.Build.0 = Debug|x86 - {1C3BB17B-336D-432A-8952-4E979BC90867}.Release|x86.ActiveCfg = Release|x86 - {1C3BB17B-336D-432A-8952-4E979BC90867}.Release|x86.Build.0 = Release|x86 - {364577DB-9728-4951-AC2C-EDF7A6FCC09D}.Debug|x86.ActiveCfg = Debug|x86 - {364577DB-9728-4951-AC2C-EDF7A6FCC09D}.Debug|x86.Build.0 = Debug|x86 - {364577DB-9728-4951-AC2C-EDF7A6FCC09D}.Release|x86.ActiveCfg = Release|x86 - {364577DB-9728-4951-AC2C-EDF7A6FCC09D}.Release|x86.Build.0 = Release|x86 - {3BF1D531-8840-4F15-8066-A9788D8C398B}.Debug|x86.ActiveCfg = Debug|x86 - {3BF1D531-8840-4F15-8066-A9788D8C398B}.Debug|x86.Build.0 = Debug|x86 - {3BF1D531-8840-4F15-8066-A9788D8C398B}.Release|x86.ActiveCfg = Release|x86 - {3BF1D531-8840-4F15-8066-A9788D8C398B}.Release|x86.Build.0 = Release|x86 - {42FE871A-D8CF-4B29-9AFF-B02454E6C976}.Debug|x86.ActiveCfg = Debug|x86 - {42FE871A-D8CF-4B29-9AFF-B02454E6C976}.Debug|x86.Build.0 = Debug|x86 - {42FE871A-D8CF-4B29-9AFF-B02454E6C976}.Release|x86.ActiveCfg = Release|x86 - {42FE871A-D8CF-4B29-9AFF-B02454E6C976}.Release|x86.Build.0 = Release|x86 - {48234565-8E78-462E-ADEC-9AAA81B641B2}.Debug|x86.ActiveCfg = Debug|x86 - {48234565-8E78-462E-ADEC-9AAA81B641B2}.Debug|x86.Build.0 = Debug|x86 - {48234565-8E78-462E-ADEC-9AAA81B641B2}.Release|x86.ActiveCfg = Release|x86 - {48234565-8E78-462E-ADEC-9AAA81B641B2}.Release|x86.Build.0 = Release|x86 - {58346CC6-DE93-45B4-8093-3508BD5DAA12}.Debug|x86.ActiveCfg = Debug|x86 - {58346CC6-DE93-45B4-8093-3508BD5DAA12}.Debug|x86.Build.0 = Debug|x86 - {58346CC6-DE93-45B4-8093-3508BD5DAA12}.Release|x86.ActiveCfg = Release|x86 - {58346CC6-DE93-45B4-8093-3508BD5DAA12}.Release|x86.Build.0 = Release|x86 - {80E73555-2284-40DC-9068-9A40B7359B0C}.Debug|x86.ActiveCfg = Debug|x86 - {80E73555-2284-40DC-9068-9A40B7359B0C}.Debug|x86.Build.0 = Debug|x86 - {80E73555-2284-40DC-9068-9A40B7359B0C}.Release|x86.ActiveCfg = Release|x86 - {80E73555-2284-40DC-9068-9A40B7359B0C}.Release|x86.Build.0 = Release|x86 - {94045F11-4266-40B4-910F-298985AF69D5}.Debug|x86.ActiveCfg = Debug|x86 - {94045F11-4266-40B4-910F-298985AF69D5}.Debug|x86.Build.0 = Debug|x86 - {94045F11-4266-40B4-910F-298985AF69D5}.Release|x86.ActiveCfg = Release|x86 - {94045F11-4266-40B4-910F-298985AF69D5}.Release|x86.Build.0 = Release|x86 - {D8A1AAF8-EA10-4D1D-8A8A-D38C56C0A753}.Debug|x86.ActiveCfg = Debug|x86 - {D8A1AAF8-EA10-4D1D-8A8A-D38C56C0A753}.Debug|x86.Build.0 = Debug|x86 - {D8A1AAF8-EA10-4D1D-8A8A-D38C56C0A753}.Release|x86.ActiveCfg = Release|x86 - {D8A1AAF8-EA10-4D1D-8A8A-D38C56C0A753}.Release|x86.Build.0 = Release|x86 - {FF422D8C-562F-4EA6-8590-9D1A5CD40AD4}.Debug|x86.ActiveCfg = Debug|x86 - {FF422D8C-562F-4EA6-8590-9D1A5CD40AD4}.Debug|x86.Build.0 = Debug|x86 - {FF422D8C-562F-4EA6-8590-9D1A5CD40AD4}.Release|x86.ActiveCfg = Release|x86 - {FF422D8C-562F-4EA6-8590-9D1A5CD40AD4}.Release|x86.Build.0 = Release|x86 - EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {3BF1D531-8840-4F15-8066-A9788D8C398B} = {E0AD538D-9979-479B-8CBA-ED9143536CE0} - {42FE871A-D8CF-4B29-9AFF-B02454E6C976} = {E0AD538D-9979-479B-8CBA-ED9143536CE0} - {364577DB-9728-4951-AC2C-EDF7A6FCC09D} = {E0AD538D-9979-479B-8CBA-ED9143536CE0} - {58346CC6-DE93-45B4-8093-3508BD5DAA12} = {E0AD538D-9979-479B-8CBA-ED9143536CE0} - {1C3BB17B-336D-432A-8952-4E979BC90867} = {E0AD538D-9979-479B-8CBA-ED9143536CE0} - {94045F11-4266-40B4-910F-298985AF69D5} = {E0AD538D-9979-479B-8CBA-ED9143536CE0} - {FF422D8C-562F-4EA6-8590-9D1A5CD40AD4} = {E0AD538D-9979-479B-8CBA-ED9143536CE0} - EndGlobalSection - GlobalSection(MonoDevelopProperties) = preSolution - StartupItem = sample\sample.csproj - Policies = $0 - $0.TextStylePolicy = $1 - $1.inheritsSet = null - $1.scope = text/x-csharp - $0.CSharpFormattingPolicy = $2 - $2.inheritsSet = Mono - $2.inheritsScope = text/x-csharp - $2.scope = text/x-csharp - $0.TextStylePolicy = $3 - $3.FileWidth = 120 - $3.TabsToSpaces = False - $3.inheritsSet = VisualStudio - $3.inheritsScope = text/plain - $3.scope = text/plain - $0.DotNetNamingPolicy = $4 - $4.DirectoryNamespaceAssociation = None - $4.ResourceNamePolicy = FileFormatDefault - $0.StandardHeader = $5 - $5.Text = - $5.IncludeInNewFiles = True - $0.NameConventionPolicy = $6 - $6.Rules = $7 - $7.NamingRule = $8 - $8.Name = Namespaces - $8.AffectedEntity = Namespace - $8.VisibilityMask = VisibilityMask - $8.NamingStyle = PascalCase - $8.IncludeInstanceMembers = True - $8.IncludeStaticEntities = True - $7.NamingRule = $9 - $9.Name = Types - $9.AffectedEntity = Class, Struct, Enum, Delegate - $9.VisibilityMask = VisibilityMask - $9.NamingStyle = PascalCase - $9.IncludeInstanceMembers = True - $9.IncludeStaticEntities = True - $7.NamingRule = $10 - $10.Name = Interfaces - $10.RequiredPrefixes = $11 - $11.String = I - $10.AffectedEntity = Interface - $10.VisibilityMask = VisibilityMask - $10.NamingStyle = PascalCase - $10.IncludeInstanceMembers = True - $10.IncludeStaticEntities = True - $7.NamingRule = $12 - $12.Name = Attributes - $12.RequiredSuffixes = $13 - $13.String = Attribute - $12.AffectedEntity = CustomAttributes - $12.VisibilityMask = VisibilityMask - $12.NamingStyle = PascalCase - $12.IncludeInstanceMembers = True - $12.IncludeStaticEntities = True - $7.NamingRule = $14 - $14.Name = Event Arguments - $14.RequiredSuffixes = $15 - $15.String = EventArgs - $14.AffectedEntity = CustomEventArgs - $14.VisibilityMask = VisibilityMask - $14.NamingStyle = PascalCase - $14.IncludeInstanceMembers = True - $14.IncludeStaticEntities = True - $7.NamingRule = $16 - $16.Name = Exceptions - $16.RequiredSuffixes = $17 - $17.String = Exception - $16.AffectedEntity = CustomExceptions - $16.VisibilityMask = VisibilityMask - $16.NamingStyle = PascalCase - $16.IncludeInstanceMembers = True - $16.IncludeStaticEntities = True - $7.NamingRule = $18 - $18.Name = Methods - $18.AffectedEntity = Methods - $18.VisibilityMask = VisibilityMask - $18.NamingStyle = PascalCase - $18.IncludeInstanceMembers = True - $18.IncludeStaticEntities = True - $7.NamingRule = $19 - $19.Name = Static Readonly Fields - $19.AffectedEntity = ReadonlyField - $19.VisibilityMask = Internal, Protected, Public - $19.NamingStyle = PascalCase - $19.IncludeInstanceMembers = False - $19.IncludeStaticEntities = True - $7.NamingRule = $20 - $20.Name = Fields (Non Private) - $20.AffectedEntity = Field - $20.VisibilityMask = Internal, Protected, Public - $20.NamingStyle = PascalCase - $20.IncludeInstanceMembers = True - $20.IncludeStaticEntities = True - $7.NamingRule = $21 - $21.Name = ReadOnly Fields (Non Private) - $21.AffectedEntity = ReadonlyField - $21.VisibilityMask = Internal, Protected, Public - $21.NamingStyle = PascalCase - $21.IncludeInstanceMembers = True - $21.IncludeStaticEntities = False - $7.NamingRule = $22 - $22.Name = Fields (Private) - $22.AllowedPrefixes = $23 - $23.String = _ - $23.String = m_ - $22.AffectedEntity = Field, ReadonlyField - $22.VisibilityMask = Private - $22.NamingStyle = CamelCase - $22.IncludeInstanceMembers = True - $22.IncludeStaticEntities = False - $7.NamingRule = $24 - $24.Name = Static Fields (Private) - $24.AffectedEntity = Field - $24.VisibilityMask = Private - $24.NamingStyle = CamelCase - $24.IncludeInstanceMembers = False - $24.IncludeStaticEntities = True - $7.NamingRule = $25 - $25.Name = ReadOnly Fields (Private) - $25.AllowedPrefixes = $26 - $26.String = _ - $26.String = m_ - $25.AffectedEntity = ReadonlyField - $25.VisibilityMask = Private - $25.NamingStyle = CamelCase - $25.IncludeInstanceMembers = True - $25.IncludeStaticEntities = False - $7.NamingRule = $27 - $27.Name = Constant Fields - $27.AffectedEntity = ConstantField - $27.VisibilityMask = VisibilityMask - $27.NamingStyle = PascalCase - $27.IncludeInstanceMembers = True - $27.IncludeStaticEntities = True - $7.NamingRule = $28 - $28.Name = Properties - $28.AffectedEntity = Property - $28.VisibilityMask = VisibilityMask - $28.NamingStyle = PascalCase - $28.IncludeInstanceMembers = True - $28.IncludeStaticEntities = True - $7.NamingRule = $29 - $29.Name = Events - $29.AffectedEntity = Event - $29.VisibilityMask = VisibilityMask - $29.NamingStyle = PascalCase - $29.IncludeInstanceMembers = True - $29.IncludeStaticEntities = True - $7.NamingRule = $30 - $30.Name = Enum Members - $30.AffectedEntity = EnumMember - $30.VisibilityMask = VisibilityMask - $30.NamingStyle = PascalCase - $30.IncludeInstanceMembers = True - $30.IncludeStaticEntities = True - $7.NamingRule = $31 - $31.Name = Parameters - $31.AffectedEntity = Parameter - $31.VisibilityMask = VisibilityMask - $31.NamingStyle = CamelCase - $31.IncludeInstanceMembers = True - $31.IncludeStaticEntities = True - $7.NamingRule = $32 - $32.Name = Type Parameters - $32.RequiredPrefixes = $33 - $33.String = T - $32.AffectedEntity = TypeParameter - $32.VisibilityMask = VisibilityMask - $32.NamingStyle = PascalCase - $32.IncludeInstanceMembers = True - $32.IncludeStaticEntities = True - EndGlobalSection -EndGlobal + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2013 +VisualStudioVersion = 12.0.40629.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "sample", "sample\sample.csproj", "{48234565-8E78-462E-ADEC-9AAA81B641B2}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "generator", "generator\generator.csproj", "{80E73555-2284-40DC-9068-9A40B7359B0C}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "gtk-sharp", "gtk-sharp", "{E0AD538D-9979-479B-8CBA-ED9143536CE0}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "glib", "glib\glib.csproj", "{3BF1D531-8840-4F15-8066-A9788D8C398B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "atk", "atk\atk.csproj", "{42FE871A-D8CF-4B29-9AFF-B02454E6C976}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "cairo", "cairo\cairo.csproj", "{364577DB-9728-4951-AC2C-EDF7A6FCC09D}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "gdk", "gdk\gdk.csproj", "{58346CC6-DE93-45B4-8093-3508BD5DAA12}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "gio", "gio\gio.csproj", "{1C3BB17B-336D-432A-8952-4E979BC90867}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "gtk", "gtk\gtk.csproj", "{94045F11-4266-40B4-910F-298985AF69D5}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "pango", "pango\pango.csproj", "{FF422D8C-562F-4EA6-8590-9D1A5CD40AD4}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "audit", "audit\audit.csproj", "{D8A1AAF8-EA10-4D1D-8A8A-D38C56C0A753}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x86 = Debug|x86 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {48234565-8E78-462E-ADEC-9AAA81B641B2}.Debug|x86.ActiveCfg = Debug|x86 + {48234565-8E78-462E-ADEC-9AAA81B641B2}.Debug|x86.Build.0 = Debug|x86 + {48234565-8E78-462E-ADEC-9AAA81B641B2}.Release|x86.ActiveCfg = Release|x86 + {48234565-8E78-462E-ADEC-9AAA81B641B2}.Release|x86.Build.0 = Release|x86 + {80E73555-2284-40DC-9068-9A40B7359B0C}.Debug|x86.ActiveCfg = Debug|x86 + {80E73555-2284-40DC-9068-9A40B7359B0C}.Debug|x86.Build.0 = Debug|x86 + {80E73555-2284-40DC-9068-9A40B7359B0C}.Release|x86.ActiveCfg = Release|x86 + {80E73555-2284-40DC-9068-9A40B7359B0C}.Release|x86.Build.0 = Release|x86 + {3BF1D531-8840-4F15-8066-A9788D8C398B}.Debug|x86.ActiveCfg = Debug|x86 + {3BF1D531-8840-4F15-8066-A9788D8C398B}.Debug|x86.Build.0 = Debug|x86 + {3BF1D531-8840-4F15-8066-A9788D8C398B}.Release|x86.ActiveCfg = Release|x86 + {3BF1D531-8840-4F15-8066-A9788D8C398B}.Release|x86.Build.0 = Release|x86 + {42FE871A-D8CF-4B29-9AFF-B02454E6C976}.Debug|x86.ActiveCfg = Debug|x86 + {42FE871A-D8CF-4B29-9AFF-B02454E6C976}.Debug|x86.Build.0 = Debug|x86 + {42FE871A-D8CF-4B29-9AFF-B02454E6C976}.Release|x86.ActiveCfg = Release|x86 + {42FE871A-D8CF-4B29-9AFF-B02454E6C976}.Release|x86.Build.0 = Release|x86 + {364577DB-9728-4951-AC2C-EDF7A6FCC09D}.Debug|x86.ActiveCfg = Debug|x86 + {364577DB-9728-4951-AC2C-EDF7A6FCC09D}.Debug|x86.Build.0 = Debug|x86 + {364577DB-9728-4951-AC2C-EDF7A6FCC09D}.Release|x86.ActiveCfg = Release|x86 + {364577DB-9728-4951-AC2C-EDF7A6FCC09D}.Release|x86.Build.0 = Release|x86 + {58346CC6-DE93-45B4-8093-3508BD5DAA12}.Debug|x86.ActiveCfg = Debug|x86 + {58346CC6-DE93-45B4-8093-3508BD5DAA12}.Debug|x86.Build.0 = Debug|x86 + {58346CC6-DE93-45B4-8093-3508BD5DAA12}.Release|x86.ActiveCfg = Release|x86 + {58346CC6-DE93-45B4-8093-3508BD5DAA12}.Release|x86.Build.0 = Release|x86 + {1C3BB17B-336D-432A-8952-4E979BC90867}.Debug|x86.ActiveCfg = Debug|x86 + {1C3BB17B-336D-432A-8952-4E979BC90867}.Debug|x86.Build.0 = Debug|x86 + {1C3BB17B-336D-432A-8952-4E979BC90867}.Release|x86.ActiveCfg = Release|x86 + {1C3BB17B-336D-432A-8952-4E979BC90867}.Release|x86.Build.0 = Release|x86 + {94045F11-4266-40B4-910F-298985AF69D5}.Debug|x86.ActiveCfg = Debug|x86 + {94045F11-4266-40B4-910F-298985AF69D5}.Debug|x86.Build.0 = Debug|x86 + {94045F11-4266-40B4-910F-298985AF69D5}.Release|x86.ActiveCfg = Release|x86 + {94045F11-4266-40B4-910F-298985AF69D5}.Release|x86.Build.0 = Release|x86 + {FF422D8C-562F-4EA6-8590-9D1A5CD40AD4}.Debug|x86.ActiveCfg = Debug|x86 + {FF422D8C-562F-4EA6-8590-9D1A5CD40AD4}.Debug|x86.Build.0 = Debug|x86 + {FF422D8C-562F-4EA6-8590-9D1A5CD40AD4}.Release|x86.ActiveCfg = Release|x86 + {FF422D8C-562F-4EA6-8590-9D1A5CD40AD4}.Release|x86.Build.0 = Release|x86 + {D8A1AAF8-EA10-4D1D-8A8A-D38C56C0A753}.Debug|x86.ActiveCfg = Debug|x86 + {D8A1AAF8-EA10-4D1D-8A8A-D38C56C0A753}.Debug|x86.Build.0 = Debug|x86 + {D8A1AAF8-EA10-4D1D-8A8A-D38C56C0A753}.Release|x86.ActiveCfg = Release|x86 + {D8A1AAF8-EA10-4D1D-8A8A-D38C56C0A753}.Release|x86.Build.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {3BF1D531-8840-4F15-8066-A9788D8C398B} = {E0AD538D-9979-479B-8CBA-ED9143536CE0} + {42FE871A-D8CF-4B29-9AFF-B02454E6C976} = {E0AD538D-9979-479B-8CBA-ED9143536CE0} + {364577DB-9728-4951-AC2C-EDF7A6FCC09D} = {E0AD538D-9979-479B-8CBA-ED9143536CE0} + {58346CC6-DE93-45B4-8093-3508BD5DAA12} = {E0AD538D-9979-479B-8CBA-ED9143536CE0} + {1C3BB17B-336D-432A-8952-4E979BC90867} = {E0AD538D-9979-479B-8CBA-ED9143536CE0} + {94045F11-4266-40B4-910F-298985AF69D5} = {E0AD538D-9979-479B-8CBA-ED9143536CE0} + {FF422D8C-562F-4EA6-8590-9D1A5CD40AD4} = {E0AD538D-9979-479B-8CBA-ED9143536CE0} + EndGlobalSection + GlobalSection(MonoDevelopProperties) = preSolution + StartupItem = sample\sample.csproj + Policies = $0 + $0.TextStylePolicy = $1 + $1.inheritsSet = null + $1.scope = text/x-csharp + $0.CSharpFormattingPolicy = $2 + $2.inheritsSet = Mono + $2.inheritsScope = text/x-csharp + $2.scope = text/x-csharp + $0.TextStylePolicy = $3 + $3.FileWidth = 120 + $3.TabsToSpaces = False + $3.inheritsSet = VisualStudio + $3.inheritsScope = text/plain + $3.scope = text/plain + $0.DotNetNamingPolicy = $4 + $4.DirectoryNamespaceAssociation = None + $4.ResourceNamePolicy = FileFormatDefault + $0.StandardHeader = $5 + $5.Text = + $5.IncludeInNewFiles = True + $0.NameConventionPolicy = $6 + $6.Rules = $7 + $7.NamingRule = $8 + $8.Name = Namespaces + $8.AffectedEntity = Namespace + $8.VisibilityMask = VisibilityMask + $8.NamingStyle = PascalCase + $8.IncludeInstanceMembers = True + $8.IncludeStaticEntities = True + $7.NamingRule = $9 + $9.Name = Types + $9.AffectedEntity = Class, Struct, Enum, Delegate + $9.VisibilityMask = VisibilityMask + $9.NamingStyle = PascalCase + $9.IncludeInstanceMembers = True + $9.IncludeStaticEntities = True + $7.NamingRule = $10 + $10.Name = Interfaces + $10.RequiredPrefixes = $11 + $11.String = I + $10.AffectedEntity = Interface + $10.VisibilityMask = VisibilityMask + $10.NamingStyle = PascalCase + $10.IncludeInstanceMembers = True + $10.IncludeStaticEntities = True + $7.NamingRule = $12 + $12.Name = Attributes + $12.RequiredSuffixes = $13 + $13.String = Attribute + $12.AffectedEntity = CustomAttributes + $12.VisibilityMask = VisibilityMask + $12.NamingStyle = PascalCase + $12.IncludeInstanceMembers = True + $12.IncludeStaticEntities = True + $7.NamingRule = $14 + $14.Name = Event Arguments + $14.RequiredSuffixes = $15 + $15.String = EventArgs + $14.AffectedEntity = CustomEventArgs + $14.VisibilityMask = VisibilityMask + $14.NamingStyle = PascalCase + $14.IncludeInstanceMembers = True + $14.IncludeStaticEntities = True + $7.NamingRule = $16 + $16.Name = Exceptions + $16.RequiredSuffixes = $17 + $17.String = Exception + $16.AffectedEntity = CustomExceptions + $16.VisibilityMask = VisibilityMask + $16.NamingStyle = PascalCase + $16.IncludeInstanceMembers = True + $16.IncludeStaticEntities = True + $7.NamingRule = $18 + $18.Name = Methods + $18.AffectedEntity = Methods + $18.VisibilityMask = VisibilityMask + $18.NamingStyle = PascalCase + $18.IncludeInstanceMembers = True + $18.IncludeStaticEntities = True + $7.NamingRule = $19 + $19.Name = Static Readonly Fields + $19.AffectedEntity = ReadonlyField + $19.VisibilityMask = Internal, Protected, Public + $19.NamingStyle = PascalCase + $19.IncludeInstanceMembers = False + $19.IncludeStaticEntities = True + $7.NamingRule = $20 + $20.Name = Fields (Non Private) + $20.AffectedEntity = Field + $20.VisibilityMask = Internal, Protected, Public + $20.NamingStyle = PascalCase + $20.IncludeInstanceMembers = True + $20.IncludeStaticEntities = True + $7.NamingRule = $21 + $21.Name = ReadOnly Fields (Non Private) + $21.AffectedEntity = ReadonlyField + $21.VisibilityMask = Internal, Protected, Public + $21.NamingStyle = PascalCase + $21.IncludeInstanceMembers = True + $21.IncludeStaticEntities = False + $7.NamingRule = $22 + $22.Name = Fields (Private) + $22.AllowedPrefixes = $23 + $23.String = _ + $23.String = m_ + $22.AffectedEntity = Field, ReadonlyField + $22.VisibilityMask = Private + $22.NamingStyle = CamelCase + $22.IncludeInstanceMembers = True + $22.IncludeStaticEntities = False + $7.NamingRule = $24 + $24.Name = Static Fields (Private) + $24.AffectedEntity = Field + $24.VisibilityMask = Private + $24.NamingStyle = CamelCase + $24.IncludeInstanceMembers = False + $24.IncludeStaticEntities = True + $7.NamingRule = $25 + $25.Name = ReadOnly Fields (Private) + $25.AllowedPrefixes = $26 + $26.String = _ + $26.String = m_ + $25.AffectedEntity = ReadonlyField + $25.VisibilityMask = Private + $25.NamingStyle = CamelCase + $25.IncludeInstanceMembers = True + $25.IncludeStaticEntities = False + $7.NamingRule = $27 + $27.Name = Constant Fields + $27.AffectedEntity = ConstantField + $27.VisibilityMask = VisibilityMask + $27.NamingStyle = PascalCase + $27.IncludeInstanceMembers = True + $27.IncludeStaticEntities = True + $7.NamingRule = $28 + $28.Name = Properties + $28.AffectedEntity = Property + $28.VisibilityMask = VisibilityMask + $28.NamingStyle = PascalCase + $28.IncludeInstanceMembers = True + $28.IncludeStaticEntities = True + $7.NamingRule = $29 + $29.Name = Events + $29.AffectedEntity = Event + $29.VisibilityMask = VisibilityMask + $29.NamingStyle = PascalCase + $29.IncludeInstanceMembers = True + $29.IncludeStaticEntities = True + $7.NamingRule = $30 + $30.Name = Enum Members + $30.AffectedEntity = EnumMember + $30.VisibilityMask = VisibilityMask + $30.NamingStyle = PascalCase + $30.IncludeInstanceMembers = True + $30.IncludeStaticEntities = True + $7.NamingRule = $31 + $31.Name = Parameters + $31.AffectedEntity = Parameter + $31.VisibilityMask = VisibilityMask + $31.NamingStyle = CamelCase + $31.IncludeInstanceMembers = True + $31.IncludeStaticEntities = True + $7.NamingRule = $32 + $32.Name = Type Parameters + $32.RequiredPrefixes = $33 + $33.String = T + $32.AffectedEntity = TypeParameter + $32.VisibilityMask = VisibilityMask + $32.NamingStyle = PascalCase + $32.IncludeInstanceMembers = True + $32.IncludeStaticEntities = True + EndGlobalSection +EndGlobal diff --git a/gtk/ArrayExtensions.cs b/gtk/ArrayExtensions.cs new file mode 100644 index 000000000..b58db2a8b --- /dev/null +++ b/gtk/ArrayExtensions.cs @@ -0,0 +1,35 @@ +// Gtk.TreeStore.cs - Gtk TreeStore class customizations +// +// Authors: Marek Habersack +// +// Copyright (c) 2016 Marek Habersack +// +// This program is free software; you can redistribute it and/or +// modify it under the terms of version 2 of the Lesser GNU General +// Public License as published by the Free Software Foundation. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this program; if not, write to the +// Free Software Foundation, Inc., 59 Temple Place - Suite 330, +// Boston, MA 02111-1307, USA. + +namespace Gtk { + using System; + + static class ArrayExtensions + { + public static object[] Explode (this Array arr) + { + if (arr == null) + return null; + var ret = new object [arr.Length]; + arr.CopyTo (ret, 0); + return ret; + } + } +} diff --git a/gtk/Dialog.cs b/gtk/Dialog.cs index 3f01060c8..c1d068bd0 100644 --- a/gtk/Dialog.cs +++ b/gtk/Dialog.cs @@ -30,22 +30,9 @@ public partial class Dialog { static extern IntPtr gtk_dialog_new_with_buttons (IntPtr title, IntPtr i, int flags, IntPtr dummy); public Dialog (string title, Gtk.Window parent, Gtk.DialogFlags flags, params object[] button_data) : base(IntPtr.Zero) { - if (GetType() != typeof (Dialog)) { - GLib.Value[] vals = new GLib.Value [1]; - string[] names = new string [1]; - names [0] = "title"; - vals [0] = new GLib.Value (title); - CreateNativeObject (names, vals); - TransientFor = parent; - if ((flags & DialogFlags.Modal) > 0) - Modal = true; - if ((flags & DialogFlags.DestroyWithParent) > 0) - DestroyWithParent = true; - } else { - IntPtr native = GLib.Marshaller.StringToPtrGStrdup (title); - Raw = gtk_dialog_new_with_buttons (native, parent == null ? IntPtr.Zero : parent.Handle, (int) flags, IntPtr.Zero); - GLib.Marshaller.Free (native); - } + IntPtr native = GLib.Marshaller.StringToPtrGStrdup (title); + Raw = gtk_dialog_new_with_buttons (native, parent == null ? IntPtr.Zero : parent.Handle, (int) flags, IntPtr.Zero); + GLib.Marshaller.Free (native); for (int i = 0; i < button_data.Length - 1; i += 2) AddButton ((string) button_data [i], (int) button_data [i + 1]); diff --git a/gtk/FileChooserNative.cs b/gtk/FileChooserNative.cs new file mode 100755 index 000000000..3ffd8f520 --- /dev/null +++ b/gtk/FileChooserNative.cs @@ -0,0 +1,88 @@ +// Gtk.FileChooserNative.cs - Gtk FileChooserNative class customizations +// +// Author: Mikkel Kruse Johnsen +// +// Copyright (c) 2016 XMedicus ApS +// +// This program is free software; you can redistribute it and/or +// modify it under the terms of version 2 of the Lesser GNU General +// Public License as published by the Free Software Foundation. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this program; if not, write to the +// Free Software Foundation, Inc., 59 Temple Place - Suite 330, +// Boston, MA 02111-1307, USA. + +namespace Gtk { + + using System; + using System.Runtime.InteropServices; + + public partial class FileChooserNative : Gtk.NativeDialog, Gtk.IFileChooser { + + public FileChooserNative (IntPtr raw) : base(raw) {} + + [DllImport (Global.GtkNativeDll, CallingConvention = CallingConvention.Cdecl)] + static extern IntPtr gtk_file_chooser_native_new(IntPtr title, IntPtr parent, int action, IntPtr accept_label, IntPtr cancel_label); + + [DllImport (Global.GtkNativeDll, CallingConvention = CallingConvention.Cdecl)] + static extern string gtk_file_chooser_native_get_accept_label(IntPtr self); + + [DllImport (Global.GtkNativeDll, CallingConvention = CallingConvention.Cdecl)] + static extern string gtk_file_chooser_native_set_accept_label(IntPtr self, string accept_label); + + [DllImport (Global.GtkNativeDll, CallingConvention = CallingConvention.Cdecl)] + static extern string gtk_file_chooser_native_get_cancel_label(IntPtr self); + + [DllImport (Global.GtkNativeDll, CallingConvention = CallingConvention.Cdecl)] + static extern string gtk_file_chooser_native_set_cancel_label(IntPtr self, string cancel_label); + + public FileChooserNative (string title, Gtk.Window parent, Gtk.FileChooserAction action, string accept_label, string cancel_label) : base(FileChooserNativeCreate(title, parent, action, accept_label, cancel_label)) + { + /* + if (GetType () != typeof (FileChooserNative)) { + var vals = new List (); + var names = new List (); + names.Add ("title"); + vals.Add (new GLib.Value (title)); + names.Add ("parent"); + vals.Add (new GLib.Value (parent)); + names.Add ("action"); + vals.Add (new GLib.Value (action)); + names.Add ("accept_label"); + vals.Add (new GLib.Value (accept_label)); + names.Add ("cancel_label"); + vals.Add (new GLib.Value (cancel_label)); + CreateNativeObject (names.ToArray (), vals.ToArray ()); + return; + } + */ + } + + static IntPtr FileChooserNativeCreate (string title, Gtk.Window parent, Gtk.FileChooserAction action, string accept_label, string cancel_label) + { + IntPtr native_title = GLib.Marshaller.StringToPtrGStrdup (title); + IntPtr native_accept_label = IntPtr.Zero; + if (accept_label != null) + native_accept_label = GLib.Marshaller.StringToPtrGStrdup (accept_label); + IntPtr native_cancel_label = IntPtr.Zero; + if (cancel_label != null) + native_cancel_label = GLib.Marshaller.StringToPtrGStrdup (cancel_label); + + IntPtr raw = gtk_file_chooser_native_new(native_title, parent.Handle, (int) action, native_accept_label, native_cancel_label); + + /*GLib.Marshaller.Free (native_title); + if (accept_label != null) + GLib.Marshaller.Free (native_accept_label); + if (cancel_label != null) + GLib.Marshaller.Free (native_cancel_label);*/ + + return raw; + } + } +} diff --git a/gtk/Gtk.metadata b/gtk/Gtk.metadata index 62d45d90e..8d153b6a8 100644 --- a/gtk/Gtk.metadata +++ b/gtk/Gtk.metadata @@ -8,14 +8,14 @@ 1 1 false + 1 + 1 + 1 1 - true 1 1 1 1 - true - true GtkPaperSize* true true @@ -32,6 +32,7 @@ 1 guchar 1 + 1 false GtkTargetFlags 1 @@ -59,7 +60,7 @@ 1 length 1 -ref + ref 1 1 1 @@ -73,16 +74,17 @@ GetEventsPending const-gchar* 1 + 1 1 1 1 1 async - true 1 - true - true 1 + 1 + 1 + 1 1 true 1 @@ -113,6 +115,7 @@ UInt32.MaxValue-2U 1 1 + 1 1 FinishEditing WidgetRemoved @@ -120,6 +123,9 @@ GtkCellRenderer* true 1 + + + out GetIsEditable ref SetIsEditable @@ -131,16 +137,12 @@ ref SelectRegion 1 - true gfilename* - true gfilename* - true true gfilename* true GFile* - true gfilename* const-gfilename* const-gfilename* @@ -150,7 +152,6 @@ GetFilters GtkFileFilter* true - true GetShortcutFolders true gfilename* @@ -159,12 +160,6 @@ gchar* true true - true - true - true - true - true - true GFile* 1 GetFilters @@ -191,6 +186,8 @@ GtkRecentFilter* false true + 1 + 1 call out 1 @@ -213,12 +210,12 @@ ChangeSortColumn 1 label - 1 - 1 - 1 - 1 - 1 - 1 + 1 + 1 + 1 + 1 + 1 + 1 Activated 1 1 @@ -228,9 +225,7 @@ modifier call call - true out - true MapChanged accel_path accel_key @@ -257,6 +252,9 @@ GtkWindow* 1 1 + 1 + 1 + 1 const-gfilename* 1 1 @@ -274,6 +272,7 @@ Activated Entered Left + call call GtkCellRenderer* @@ -293,6 +292,7 @@ 1 1 EmitToggled + ShowedHidden async async async @@ -305,7 +305,10 @@ 1 1 out - GdkRGBA + 1 + 1 + 1 + HasAlpha out 1 1 @@ -354,6 +357,8 @@ SetAlternativeButtonOrder 1 1 + + Activated ClipboardCopied ClipboardCut @@ -363,18 +368,19 @@ Activated 1 + SelectedAll + UnselectedAll GtkButton* GtkButton* 1 1 + 1 1 1 IsChildDetached 1 - true 1 1 - true 1 gchar* true @@ -384,8 +390,6 @@ true true LookupIcon - true - true 1 1 1 @@ -414,7 +418,6 @@ 1 1 pixbuf_animation - true file true 1 @@ -422,7 +425,6 @@ out out SetAnimation - true SetFile SetPixbuf out @@ -438,10 +440,15 @@ 1 label LineWrapMode + SetLabelMarkup + GetLabelMarkup 1 1 1 1 + SelectedAll + UnselectedAll + ListRowActivated 1 1 out @@ -471,6 +478,7 @@ 1 Canceled Deactivated + Inserted 1 1 GetIsShowing @@ -478,6 +486,9 @@ void const-gfilename* const-gfilename* + ShowedConnectToServer + ShowEnteredLocation + ShowedOtherLocations 1 1 IsEmbedded @@ -545,6 +556,7 @@ out GetVScrollbar void + 1 @@ -816,9 +828,9 @@ 1 1 1 - true - 1 - 1 + 1 + 1 + 1 1 1 1 @@ -827,8 +839,6 @@ [GLib.TypeInitializer (typeof (Gtk.Widget), "ClassInit")] 1 1 - 1 - 1 1 out true @@ -858,6 +868,7 @@ 1 1 1 + 1 AccelCanActivate ChildNotified 1 @@ -889,11 +900,10 @@ 1 GtkWindow* true - true 1 - true 1 1 + Maximized DefaultActivated FocusActivated 1 @@ -950,7 +960,6 @@ /api/namespace/object[@cname='GtkStyle'] /api/namespace/object[@cname='GtkStyle'] /api/namespace/object[@cname='GtkStyle'] - diff --git a/gtk/ListStore.cs b/gtk/ListStore.cs index 08f7bbeb0..585df14dc 100644 --- a/gtk/ListStore.cs +++ b/gtk/ListStore.cs @@ -110,23 +110,15 @@ public void SetValue (Gtk.TreeIter iter, int column, object value) public Gtk.TreeIter AppendValues (Array values) { Gtk.TreeIter iter = Append(); - - int col = 0; - foreach (object value in values) { - if (value != null) { - GLib.Value val = new GLib.Value (value); - SetValue (iter, col, val); - val.Dispose (); - } - col++; - } - + SetValues (iter, values.Explode ()); return iter; } public Gtk.TreeIter AppendValues (params object[] values) { - return AppendValues ((Array) values); + Gtk.TreeIter iter = Append(); + SetValues (iter, values); + return iter; } [DllImport (Global.GtkNativeDll, CallingConvention = CallingConvention.Cdecl)] diff --git a/gtk/Makefile.am b/gtk/Makefile.am index cb858dd62..19ecbd148 100644 --- a/gtk/Makefile.am +++ b/gtk/Makefile.am @@ -1,4 +1,8 @@ +if !PLATFORM_WIN32 SUBDIRS = . glue gui-thread-check +else +SUBDIRS = . glue +endif pkg = gtk pkgconfigdir=$(libdir)/pkgconfig @@ -18,6 +22,7 @@ sources = \ ActionGroup.cs \ Adjustment.cs \ Application.cs \ + ArrayExtensions.cs \ Bin.cs \ BindingAttribute.cs \ Builder.cs \ @@ -39,6 +44,7 @@ sources = \ Entry.cs \ EntryCompletion.cs \ FileChooserDialog.cs \ + FileChooserNative.cs \ Frame.cs \ Global.cs \ HBox.cs \ @@ -59,6 +65,7 @@ sources = \ Menu.cs \ MenuItem.cs \ MessageDialog.cs \ + NativeDialog.cs \ NodeCellDataFunc.cs \ NodeSelection.cs \ NodeStore.cs \ @@ -84,6 +91,7 @@ sources = \ StockManager.cs \ Style.cs \ StyleContext.cs \ + StyleProviderPriority.cs \ Target.cs \ TargetEntry.cs \ TargetList.cs \ diff --git a/gtk/Menu.cs b/gtk/Menu.cs index eb8d226a3..af848ed28 100644 --- a/gtk/Menu.cs +++ b/gtk/Menu.cs @@ -32,7 +32,7 @@ public void Popup (Gtk.Widget parent_menu_shell, Gtk.Widget parent_menu_item, Gt public void Popup () { - Popup (null, null, null, 3, Global.CurrentEventTime); + PopupAtPointer (null); } [DllImport (Global.GtkNativeDll, CallingConvention = CallingConvention.Cdecl)] diff --git a/gtk/NativeDialog.cs b/gtk/NativeDialog.cs new file mode 100755 index 000000000..a13bf0d01 --- /dev/null +++ b/gtk/NativeDialog.cs @@ -0,0 +1,107 @@ +// Gtk.NativeDialog.cs - Gtk NativeDialog class customizations +// +// Author: Mikkel Kruse Johnsen +// +// Copyright (c) 2016 XMedicus ApS +// +// This program is free software; you can redistribute it and/or +// modify it under the terms of version 2 of the Lesser GNU General +// Public License as published by the Free Software Foundation. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this program; if not, write to the +// Free Software Foundation, Inc., 59 Temple Place - Suite 330, +// Boston, MA 02111-1307, USA. + +namespace Gtk { + + using System; + using System.Runtime.InteropServices; + + public partial class NativeDialog : Gtk.FileChooserAdapter { + + public NativeDialog (IntPtr raw) : base(raw) { } + + [DllImport (Global.GtkNativeDll, CallingConvention = CallingConvention.Cdecl)] + static extern void gtk_native_dialog_show (IntPtr self); + + public void Show () + { + gtk_native_dialog_show (Handle); + } + + [DllImport (Global.GtkNativeDll, CallingConvention = CallingConvention.Cdecl)] + static extern void gtk_native_dialog_hide (IntPtr self); + + public void Hide () + { + gtk_native_dialog_hide (Handle); + } + + [DllImport (Global.GtkNativeDll, CallingConvention = CallingConvention.Cdecl)] + static extern void gtk_native_dialog_destroy (IntPtr self); + + public void Destroy () + { + gtk_native_dialog_destroy (Handle); + } + + [DllImport (Global.GtkNativeDll, CallingConvention = CallingConvention.Cdecl)] + static extern bool gtk_native_dialog_get_visible (IntPtr self); + + public bool Visible { + get { + return gtk_native_dialog_get_visible (Handle); + } + } + + [DllImport (Global.GtkNativeDll, CallingConvention = CallingConvention.Cdecl)] + static extern void gtk_native_dialog_set_modal (IntPtr self, bool modal); + + [DllImport (Global.GtkNativeDll, CallingConvention = CallingConvention.Cdecl)] + static extern bool gtk_native_dialog_get_modal (IntPtr self); + + public bool Modal { + set { + gtk_native_dialog_set_modal (Handle, value); + } + get { + return gtk_native_dialog_get_modal (Handle); + } + } + + [DllImport (Global.GtkNativeDll, CallingConvention = CallingConvention.Cdecl)] + static extern void gtk_native_dialog_set_title (IntPtr self, string title); + + [DllImport (Global.GtkNativeDll, CallingConvention = CallingConvention.Cdecl)] + static extern string gtk_native_dialog_get_title (IntPtr self); + + public string Title { + set { + gtk_native_dialog_set_title (Handle, value); + } + get { + return gtk_native_dialog_get_title (Handle); + } + } + + [DllImport (Global.GtkNativeDll, CallingConvention = CallingConvention.Cdecl)] + static extern void gtk_native_dialog_set_transient_for (IntPtr self, IntPtr parent); + + [DllImport (Global.GtkNativeDll, CallingConvention = CallingConvention.Cdecl)] + static extern IntPtr gtk_native_dialog_get_transient_for (IntPtr self); + + [DllImport (Global.GtkNativeDll, CallingConvention = CallingConvention.Cdecl)] + static extern int gtk_native_dialog_run (IntPtr self); + + public int Run () + { + return gtk_native_dialog_run (Handle); + } + } +} diff --git a/gtk/Plug.cs b/gtk/Plug.cs index f2c1cba9f..62f684300 100644 --- a/gtk/Plug.cs +++ b/gtk/Plug.cs @@ -33,7 +33,7 @@ public Plug (ulong socket_id) : base (IntPtr.Zero) { if (GetType () != typeof (Plug)) { CreateNativeObject (new string [0], new GLib.Value [0]); - Construct (socket_id); + Construct (Convert.ToUInt32(socket_id)); return; } Raw = gtk_plug_new (new UIntPtr (socket_id)); @@ -46,7 +46,7 @@ public Plug (Gdk.Display display, ulong socket_id) : base (IntPtr.Zero) { if (GetType () != typeof (Plug)) { CreateNativeObject (new string [0], new GLib.Value [0]); - ConstructForDisplay (display, socket_id); + ConstructForDisplay (display, Convert.ToUInt32(socket_id)); return; } Raw = gtk_plug_new_for_display (display.Handle, new UIntPtr (socket_id)); diff --git a/gtk/StyleProviderPriority.cs b/gtk/StyleProviderPriority.cs new file mode 100644 index 000000000..4ee37b384 --- /dev/null +++ b/gtk/StyleProviderPriority.cs @@ -0,0 +1,13 @@ +namespace Gtk { + + using System; + + public static class StyleProviderPriority + { + public const uint Fallback = 1; + public const uint Theme = 200; + public const uint Settings = 400; + public const uint Application = 600; + public const uint User = 800; + } +} diff --git a/gtk/TreeStore.cs b/gtk/TreeStore.cs index 2ecc91e90..9cfe85b2e 100644 --- a/gtk/TreeStore.cs +++ b/gtk/TreeStore.cs @@ -198,33 +198,28 @@ public void SetValue (Gtk.TreeIter iter, int column, object value) val.Dispose (); } - private void _AppendValues (Gtk.TreeIter iter, Array values) { - int col = 0; - foreach (object value in values) { - if (value != null) - SetValue (iter, col, value); - col++; - } - } - public Gtk.TreeIter AppendValues (Gtk.TreeIter parent, Array values) { Gtk.TreeIter iter = AppendNode (parent); - _AppendValues (iter, values); + SetValues (iter, values.Explode ()); return iter; } public Gtk.TreeIter AppendValues (Gtk.TreeIter parent, params object[] values) { - return AppendValues (parent, (Array) values); + Gtk.TreeIter iter = AppendNode (parent); + SetValues (iter, values); + return iter; } public Gtk.TreeIter AppendValues (Array values) { Gtk.TreeIter iter = AppendNode (); - _AppendValues (iter, values); + SetValues (iter, values.Explode ()); return iter; } public Gtk.TreeIter AppendValues (params object[] values) { - return AppendValues ((Array) values); + Gtk.TreeIter iter = AppendNode (); + SetValues (iter, values); + return iter; } [DllImport (Global.GtkNativeDll, CallingConvention = CallingConvention.Cdecl)] diff --git a/gtk/TreeView.cs b/gtk/TreeView.cs index b5754d268..9c4d0a9a3 100644 --- a/gtk/TreeView.cs +++ b/gtk/TreeView.cs @@ -28,6 +28,7 @@ namespace Gtk { public partial class TreeView { + /* public Gdk.Color OddRowColor { get { GLib.Value value = StyleGetPropertyValue ("odd-row-color"); @@ -45,6 +46,7 @@ public Gdk.Color EvenRowColor { return ret; } } + */ [DllImport (Global.GtkNativeDll, CallingConvention = CallingConvention.Cdecl)] static extern bool gtk_tree_view_get_path_at_pos (IntPtr raw, diff --git a/gtk/Widget.cs b/gtk/Widget.cs index 540072aee..ee3e63356 100644 --- a/gtk/Widget.cs +++ b/gtk/Widget.cs @@ -40,11 +40,13 @@ public void AddAccelerator (string accel_signal, AccelGroup accel_group, AccelKe this.AddAccelerator (accel_signal, accel_group, (uint) accel_key.Key, accel_key.AccelMods, accel_key.AccelFlags); } + /* public int FocusLineWidth { get { return (int) StyleGetProperty ("focus-line-width"); } } + */ struct GClosure { long fields; @@ -274,10 +276,12 @@ public Widget[] ListMnemonicLabels () return result; } + /* public void ModifyBase (Gtk.StateType state) { gtk_widget_modify_base (Handle, (int) state, IntPtr.Zero); } + */ public void ModifyBg (Gtk.StateType state) { @@ -289,10 +293,12 @@ public void ModifyFg (Gtk.StateType state) gtk_widget_modify_fg (Handle, (int) state, IntPtr.Zero); } + /* public void ModifyText (Gtk.StateType state) { gtk_widget_modify_text (Handle, (int) state, IntPtr.Zero); } + */ public void Path (out string path, out string path_reversed) { @@ -408,4 +414,4 @@ public virtual void Destroy () InternalDestroyed -= NativeDestroyHandler; } } -} \ No newline at end of file +} diff --git a/gtk/generated/meson.build b/gtk/generated/meson.build new file mode 100644 index 000000000..b76825b56 --- /dev/null +++ b/gtk/generated/meson.build @@ -0,0 +1,1094 @@ +generated_sources = [ + 'GLib_GLibSharp.AsyncReadyCallbackNative.cs', + 'Gtk_AboutDialog.cs', + 'Gtk_PopoverConstraint.cs', + 'Gtk_ColorScaleClass.cs', + 'Gtk_CellRendererState.cs', + 'Gtk_Orientation.cs', + 'Gtk_MessageType.cs', + 'Gtk_OrientableAdapter.cs', + 'Gtk_StatusbarMsg.cs', + 'Gtk_CssStyleClass.cs', + 'Gtk_ComboBoxText.cs', + 'Gtk_TextViewLayer.cs', + 'Gtk_UpdateHandler.cs', + 'Gtk_ImageDefinitionEmpty.cs', + 'Gtk_AssistantPageFunc.cs', + 'Gtk_ListBoxRow.cs', + 'Gtk_MountOperationLookupContext.cs', + 'Gtk_CssNode.cs', + 'Gtk_IconPressHandler.cs', + 'Gtk_BuilderConnectFunc.cs', + 'Gtk_ActionGroup.cs', + 'Gtk_OwnerChangeHandler.cs', + 'Gtk_PreeditChangedHandler.cs', + 'Gtk_MenuAttachData.cs', + 'Gtk_UnselectAllHandler.cs', + 'Gtk_TickCallback.cs', + 'Gtk_RequestURIInfo.cs', + 'Gtk_ApplicationInhibitFlags.cs', + 'Gtk_HSV.cs', + 'Gtk_LinkButton.cs', + 'Gtk_Stock.cs', + 'Gtk_TreeModelSort.cs', + 'Gtk_TagRemovedHandler.cs', + 'Gtk_ModelButton.cs', + 'Gtk_CellEditableAdapter.cs', + 'Gtk_ToolItemGroupInfo.cs', + 'Gtk_TrashMonitor.cs', + 'Gtk_IconInfo.cs', + 'Gtk_IconViewChild.cs', + 'Gtk_ImageDefinitionIconSet.cs', + 'Gtk_ActionBar.cs', + 'Gtk_GridRowProperties.cs', + 'Gtk_AppChooserWidget.cs', + 'Gtk_MenuToolButton.cs', + 'Gtk_IMContext.cs', + 'Gtk_TextViewChild.cs', + 'Gtk_ColorEditor.cs', + 'Gtk_ProgressBar.cs', + 'Gtk_Rc.cs', + 'Gtk_MenuItem.cs', + 'Gtk_CellRendererAccel.cs', + 'Gtk_ComboBox.cs', + 'Gtk_TagChangedHandler.cs', + 'Gtk_CellRendererText.cs', + 'Gtk_CssProviderError.cs', + 'Gtk_SortType.cs', + 'Gtk_MenuActivateHandler.cs', + 'Gtk_Bindings.cs', + 'Gtk_ColorScale.cs', + 'Gtk_SpinButton.cs', + 'Gtk_FileFilterInfo.cs', + 'Gtk_StyleProviderAdapter.cs', + 'Gtk_ScaleButton.cs', + 'Gtk_ClipboardRequest.cs', + 'Gtk_PrintOperationAction.cs', + 'Gtk_InfoBar.cs', + 'Gtk_CssGadgetClass.cs', + 'Gtk_ShortcutsGroup.cs', + 'Gtk_CssRuleset.cs', + 'Gtk_DragSourceInfo.cs', + 'Gtk_Grab.cs', + 'Gtk_AccelGroupFindFunc.cs', + 'Gtk_ToggleToolButton.cs', + 'Gtk_Native.cs', + 'Gtk_GtkSharp.CallbackNative.cs', + 'Gtk_PrintBackend.cs', + 'Gtk_EntryBuffer.cs', + 'Gtk_TreeIterCompareFunc.cs', + 'Gtk_ColorSwatch.cs', + 'Gtk_ListBox.cs', + 'Gtk_ScaleMark.cs', + 'Gtk_Init.cs', + 'Gtk_SymbolicColor.cs', + 'Gtk_ImageDefinitionIconName.cs', + 'Gtk_OrientationChangedHandler.cs', + 'Gtk_ResponseData.cs', + 'Gtk_GtkSharp.ListBoxCreateWidgetFuncNative.cs', + 'Gtk_TreeStore.cs', + 'Gtk_GtkSharp.AccelMapForeachNative.cs', + 'Gtk_CssSectionType.cs', + 'Gtk_GtkSharp.TextBufferSerializeFuncNative.cs', + 'Gtk_SeparatorMenuItem.cs', + 'Gtk_AccelMapForeach.cs', + 'Gtk_RecentChooserError.cs', + 'Gtk_CellRendererToggle.cs', + 'Gtk_ToolItemGroup.cs', + 'Gtk_IconFactory.cs', + 'Gtk_IconSet.cs', + 'Gtk_ActivateCurrentHandler.cs', + 'Gtk_CssShorthandProperty.cs', + 'Gtk_TreeCellDataFunc.cs', + 'Gtk_DeleteRangeHandler.cs', + 'Gtk_BeginPrintHandler.cs', + 'Gtk_ICellLayout.cs', + 'Gtk_GtkSharp.ListBoxForeachFuncNative.cs', + 'Gtk_TreeViewColumnSizing.cs', + 'Gtk_CssSelectorTreeBuilder.cs', + 'Gtk_GtkSharp.CalendarDetailFuncNative.cs', + 'Gtk_TextPixbuf.cs', + 'Gtk_ShortcutType.cs', + 'Gtk_AdjustBoundsHandler.cs', + 'Gtk_ColorStop.cs', + 'Gtk_ReleasedHandler.cs', + 'Gtk_PaginateHandler.cs', + 'Gtk_EndPrintHandler.cs', + 'Gtk_AddedHandler.cs', + 'Gtk_TransitionInfo.cs', + 'Gtk_RowCollapsedHandler.cs', + 'Gtk_ButtonPressEventHandler.cs', + 'Gtk_Paned.cs', + 'Gtk_DragDestInfo.cs', + 'Gtk_HandleWindow.cs', + 'Gtk_Main.cs', + 'Gtk_PrintStatus.cs', + 'Gtk_HBox.cs', + 'Gtk_Magnifier.cs', + 'Gtk_IconHelperClass.cs', + 'Gtk_ScrollableAdapter.cs', + 'Gtk_TreeModelAdapter.cs', + 'Gtk_CustomItemActivatedHandler.cs', + 'Gtk_TextHandleClass.cs', + 'Gtk_CssNodeClass.cs', + 'Gtk_Global.cs', + 'Gtk_ColorPlaneClass.cs', + 'Gtk_FileChooserButton.cs', + 'Gtk_CssAnimation.cs', + 'Gtk_IFontChooser.cs', + 'Gtk_GtkSharp.FlowBoxCreateWidgetFuncNative.cs', + 'Gtk_GtkSharp.PrintSettingsFuncNative.cs', + 'Gtk_GtkSharp.ListBoxFilterFuncNative.cs', + 'Gtk_TestCollapseRowHandler.cs', + 'Gtk_GtkSharp.TreeCellDataFuncNative.cs', + 'Gtk_Tooltip.cs', + 'Gtk_GtkSharp.KeySnoopFuncNative.cs', + 'Gtk_TextBufferTargetInfo.cs', + 'Gtk_PressedHandler.cs', + 'Gtk_StockItem.cs', + 'Gtk_IActionObserver.cs', + 'Gtk_PolicyType.cs', + 'Gtk_TextPoppedHandler.cs', + 'Gtk_WrapMode.cs', + 'Gtk_RecentData.cs', + 'Gtk_PrintBackendModule.cs', + 'Gtk_AttachOptions.cs', + 'Gtk_GtkSharp.TreeModelForeachFuncNative.cs', + 'Gtk_CellRendererAccelMode.cs', + 'Gtk_GotPageSizeHandler.cs', + 'Gtk_PageSet.cs', + 'Gtk_Frame.cs', + 'Gtk_EventData.cs', + 'Gtk_SizeGroupMode.cs', + 'Gtk_ClipboardReceivedFunc.cs', + 'Gtk_Selection.cs', + 'Gtk_TextRealIter.cs', + 'Gtk_UpdateCustomWidgetHandler.cs', + 'Gtk_ClipboardClearFunc.cs', + 'Gtk_EditableAdapter.cs', + 'Gtk_HashNode.cs', + 'Gtk_ListRowActivatedHandler.cs', + 'Gtk_TreeViewGridLines.cs', + 'Gtk_WindowType.cs', + 'Gtk_GtkSharp.TreeViewSearchEqualFuncNative.cs', + 'Gtk_TreeModelFilterModifyFunc.cs', + 'Gtk_KeySnoopFunc.cs', + 'Gtk_StackTransitionType.cs', + 'Gtk_ImageType.cs', + 'Gtk_Assistant.cs', + 'Gtk_Drag.cs', + 'Gtk_ToolPaletteDragTargets.cs', + 'Gtk_GetChildPositionHandler.cs', + 'Gtk_DecomposedMatrix.cs', + 'Gtk_CssScanner.cs', + 'Gtk_TreeView.cs', + 'Gtk_FontChooserProp.cs', + 'Gtk_ButtonReleaseEventHandler.cs', + 'Gtk_HeaderBar.cs', + 'Gtk_StyleCascadeIter.cs', + 'Gtk_GtkSharp.CellAllocCallbackNative.cs', + 'Gtk_ParsingErrorHandler.cs', + 'Gtk_MountHandler.cs', + 'Gtk_DrawPageHandler.cs', + 'Gtk_CellRendererMode.cs', + 'Gtk_ToolbarStyle.cs', + 'Gtk_PrintWin32Devnames.cs', + 'Gtk_RecentInfo.cs', + 'Gtk_CellView.cs', + 'Gtk_CellAreaBox.cs', + 'Gtk_ModelMenuItem.cs', + 'Gtk_TextInsertedHandler.cs', + 'Gtk_PreActivateHandler.cs', + 'Gtk_ITreeSortable.cs', + 'Gtk_RegionFlags.cs', + 'Gtk_RecentChooserAdapter.cs', + 'Gtk_Bitmask.cs', + 'Gtk_CssNodeDeclaration.cs', + 'Gtk_IMContextSimple.cs', + 'Gtk_CssMatcherSuperset.cs', + 'Gtk_CssGadget.cs', + 'Gtk_Popover.cs', + 'Gtk_CssWidgetNode.cs', + 'Gtk_EnableDebuggingHandler.cs', + 'Gtk_TreeSortableAdapter.cs', + 'Gtk_ThemingModule.cs', + 'Gtk_PrintContext.cs', + 'Gtk_AcceptPositionHandler.cs', + 'Gtk_CssStaticStyleClass.cs', + 'Gtk_GLArea.cs', + 'Gtk_CssImageFallbackClass.cs', + 'Gtk_IActionable.cs', + 'Gtk_CssImageRecolorClass.cs', + 'Gtk_GtkSharp.FileFilterFuncNative.cs', + 'Gtk_RecentSortType.cs', + 'Gtk_ColorPlane.cs', + 'Gtk_Stack.cs', + 'Gtk_CellEditableEventBox.cs', + 'Gtk_Printer.cs', + 'Gtk_LevelBar.cs', + 'Gtk_Label.cs', + 'Gtk_CssImageFallback.cs', + 'Gtk_IconAlias.cs', + 'Gtk_IconView.cs', + 'Gtk_MoveHandler.cs', + 'Gtk_ColorSelectionChangePaletteWithScreenFunc.cs', + 'Gtk_EntryCompletion.cs', + 'Gtk_IAppChooser.cs', + 'Gtk_TextBufferDeserializeFunc.cs', + 'Gtk_FillLayoutRenderer.cs', + 'Gtk_TagAppliedHandler.cs', + 'Gtk_VButtonBox.cs', + 'Gtk_IOrientable.cs', + 'Gtk_TextPushedHandler.cs', + 'Gtk_DragActionRequestedHandler.cs', + 'Gtk_Calendar.cs', + 'Gtk_MoveScrollHandler.cs', + 'Gtk_Scrollbar.cs', + 'Gtk_CssImage.cs', + 'Gtk_Unit.cs', + 'Gtk_GtkSharp.TextTagTableForeachNative.cs', + 'Gtk_Menu.cs', + 'Gtk_TreeViewChild.cs', + 'Gtk_RowDeletedHandler.cs', + 'Gtk_SelectCursorRowHandler.cs', + 'Gtk_ActionHelper.cs', + 'Gtk_LayoutChild.cs', + 'Gtk_FontChooserAdapter.cs', + 'Gtk_Target.cs', + 'Gtk_Requisition.cs', + 'Gtk_GridLine.cs', + 'Gtk_GestureSingle.cs', + 'Gtk_MenuTracker.cs', + 'Gtk_FilterRule.cs', + 'Gtk_ActionMuxer.cs', + 'Gtk_GtkSharp.TreeSelectionForeachFuncNative.cs', + 'Gtk_TextLayoutClass.cs', + 'Gtk_FontSelection.cs', + 'Gtk_Win32EmbedWidget.cs', + 'Gtk_HSLA.cs', + 'Gtk_BorderImage.cs', + 'Gtk_ToolItem.cs', + 'Gtk_ScaleChangedHandler.cs', + 'Gtk_ClipboardTextReceivedFunc.cs', + 'Gtk_Button.cs', + 'Gtk_MoveFocusOutHandler.cs', + 'Gtk_BuiltinIcon.cs', + 'Gtk_MenuPopdownData.cs', + 'Gtk_InsertTextHandler.cs', + 'Gtk_ActionObserverAdapter.cs', + 'Gtk_MountOperation.cs', + 'Gtk_TextAttrAppearance.cs', + 'Gtk_Icon.cs', + 'Gtk_ConnectProxyHandler.cs', + 'Gtk_GtkSharp.PageSetupDoneFuncNative.cs', + 'Gtk_RenderHandler.cs', + 'Gtk_KeyHashEntry.cs', + 'Gtk_SymbolicPixbufCache.cs', + 'Gtk_StateFlags.cs', + 'Gtk_AppChooserAdapter.cs', + 'Gtk_TextLine.cs', + 'Gtk_FilterLevel.cs', + 'Gtk_StyleCascade.cs', + 'Gtk_CompareInfo.cs', + 'Gtk_ToggleSizeAllocatedHandler.cs', + 'Gtk_ToolShellAdapter.cs', + 'Gtk_SizeChangedHandler.cs', + 'Gtk_Style.cs', + 'Gtk_CssCustomProperty.cs', + 'Gtk_SidebarRowClass.cs', + 'Gtk_CellRendererProgress.cs', + 'Gtk_ImageDefinitionSurface.cs', + 'Gtk_ItemActivatedHandler.cs', + 'Gtk_GridChild.cs', + 'Gtk_Gesture.cs', + 'Gtk_SelectionInfo.cs', + 'Gtk_IColorChooser.cs', + 'Gtk_CountingData.cs', + 'Gtk_CssLookup.cs', + 'Gtk_CssParser.cs', + 'Gtk_CssNumberValueClass.cs', + 'Gtk_ResizeMode.cs', + 'Gtk_PrintOperationPreviewAdapter.cs', + 'Gtk_TextTagTableForeach.cs', + 'Gtk_GtkSharp.MenuDetachFuncNative.cs', + 'Gtk_SizeRequestMode.cs', + 'Gtk_ActivateLinkHandler.cs', + 'Gtk_Window.cs', + 'Gtk_VScale.cs', + 'Gtk_EndHandler.cs', + 'Gtk_PopulatePopupHandler.cs', + 'Gtk_GtkSharp.MnemonicHashForeachNative.cs', + 'Gtk_PrintJobCompleteFunc.cs', + 'Gtk_TextChildBody.cs', + 'Gtk_StateType.cs', + 'Gtk_ChildAnchorInsertedHandler.cs', + 'Gtk_Targets.cs', + 'Gtk_GtkSharp.TreeSelectionFuncNative.cs', + 'Gtk_CursorOnMatchHandler.cs', + 'Gtk_PoppedUpHandler.cs', + 'Gtk_CssStylePropertyClass.cs', + 'Gtk_Overlay.cs', + 'Gtk_CssSelectorTree.cs', + 'Gtk_ShowErrorMessageHandler.cs', + 'Gtk_FileFilter.cs', + 'Gtk_GestureLongPress.cs', + 'Gtk_IFileChooser.cs', + 'Gtk_HSeparator.cs', + 'Gtk_RoundedBox.cs', + 'Gtk_ResizeHandler.cs', + 'Gtk_EventController.cs', + 'Gtk_EntryIconInfo.cs', + 'Gtk_ClipboardURIReceivedFunc.cs', + 'Gtk_GtkSharp.AccelGroupFindFuncNative.cs', + 'Gtk_PopupMenuHandler.cs', + 'Gtk_RowChangedHandler.cs', + 'Gtk_GridChildAttach.cs', + 'Gtk_AngleChangedHandler.cs', + 'Gtk_FontActivatedHandler.cs', + 'Gtk_TreeIter.cs', + 'Gtk_ConfirmOverwriteHandler.cs', + 'Gtk_ScrollEventHandler.cs', + 'Gtk_DragBeginHandler.cs', + 'Gtk_QueryTooltipHandler.cs', + 'Gtk_TranslateFunc.cs', + 'Gtk_HScrollbar.cs', + 'Gtk_FocusChildSetHandler.cs', + 'Gtk_StyleProviderPrivateInterface.cs', + 'Gtk_StartInteractiveSearchHandler.cs', + 'Gtk_CornerType.cs', + 'Gtk_ClipboardTargetsReceivedFunc.cs', + 'Gtk_PrinterFinder.cs', + 'Gtk_ButtonRole.cs', + 'Gtk_ActivatableAdapter.cs', + 'Gtk_Range.cs', + 'Gtk_Application.cs', + 'Gtk_Child.cs', + 'Gtk_TreeModelFlags.cs', + 'Gtk_TargetEntry.cs', + 'Gtk_PrinterFunc.cs', + 'Gtk_StackChildInfo.cs', + 'Gtk_PixbufInsertedHandler.cs', + 'Gtk_TagAddedHandler.cs', + 'Gtk_PadActionEntry.cs', + 'Gtk_TreeSelectionForeachFunc.cs', + 'Gtk_GtkSharp.AccelGroupActivateNative.cs', + 'Gtk_CssTransientNodeClass.cs', + 'Gtk_IStyleProvider.cs', + 'Gtk_GtkSharp.ListBoxUpdateHeaderFuncNative.cs', + 'Gtk_SortLevel.cs', + 'Gtk_MoveCursorHandler.cs', + 'Gtk_GtkSharp.IconViewForeachFuncNative.cs', + 'Gtk_WindowKeyEntry.cs', + 'Gtk_ColorSelectionChangePaletteFunc.cs', + 'Gtk_GtkSharp.FlowBoxForeachFuncNative.cs', + 'Gtk_IncrInfo.cs', + 'Gtk_MenuShell.cs', + 'Gtk_LinesWindow.cs', + 'Gtk_Region.cs', + 'Gtk_RecentManagerError.cs', + 'Gtk_ActionableAdapter.cs', + 'Gtk_GtkSharp.StylePropertyParserNative.cs', + 'Gtk_ListStore.cs', + 'Gtk_PropertyData.cs', + 'Gtk_MoveViewportHandler.cs', + 'Gtk_GtkSharp.TreeViewRowSeparatorFuncNative.cs', + 'Gtk_SettingsValue.cs', + 'Gtk_SelectCursorParentHandler.cs', + 'Gtk_GtkSharp.FlowBoxSortFuncNative.cs', + 'Gtk_ResponseType.cs', + 'Gtk_ValueData.cs', + 'Gtk_RequestTargetsInfo.cs', + 'Gtk_NotebookPage.cs', + 'Gtk_FontChooserDialog.cs', + 'Gtk_Justification.cs', + 'Gtk_ExpandCollapseCursorRowHandler.cs', + 'Gtk_CssMatcherWidgetPath.cs', + 'Gtk_TextChildAnchor.cs', + 'Gtk_GtkSharp.ColorSelectionChangePaletteWithScreenFuncNative.cs', + 'Gtk_CssStaticStyle.cs', + 'Gtk_CreateWindowHandler.cs', + 'Gtk_ToggleButton.cs', + 'Gtk_TextExtendSelection.cs', + 'Gtk_Box.cs', + 'Gtk_GtkSharp.EntryCompletionMatchFuncNative.cs', + 'Gtk_DragFindData.cs', + 'Gtk_License.cs', + 'Gtk_EventBox.cs', + 'Gtk_RequestTextInfo.cs', + 'Gtk_CssPathNodeClass.cs', + 'Gtk_RadioMenuItem.cs', + 'Gtk_TextView.cs', + 'Gtk_CssImageRecolor.cs', + 'Gtk_RevealerTransitionType.cs', + 'Gtk_GtkSharp.ClipboardGetFuncNative.cs', + 'Gtk_GestureMultiPress.cs', + 'Gtk_CssImageRadialClass.cs', + 'Gtk_RecentFilterInfo.cs', + 'Gtk_Grid.cs', + 'Gtk_DisconnectProxyHandler.cs', + 'Gtk_Scale.cs', + 'Gtk_ListBoxForeachFunc.cs', + 'Gtk_LevelBarMode.cs', + 'Gtk_Win32ThemePart.cs', + 'Gtk_HButtonBox.cs', + 'Gtk_GtkSharp.MenuTrackerRemoveFuncNative.cs', + 'Gtk_GtkSharp.FontFilterFuncNative.cs', + 'Gtk_RowSelectedHandler.cs', + 'Gtk_GtkSharp.RecentFilterFuncNative.cs', + 'Gtk_StockTranslateFunc.cs', + 'Gtk_ClipboardImageReceivedFunc.cs', + 'Gtk_EditedHandler.cs', + 'Gtk_TextAttributes.cs', + 'Gtk_Dialog.cs', + 'Gtk_RetrieveSurroundingHandler.cs', + 'Gtk_ImageMenuItem.cs', + 'Gtk_RetrievalInfo.cs', + 'Gtk_MoveSliderHandler.cs', + 'Gtk_RoundedBoxCorner.cs', + 'Gtk_CssAnimationClass.cs', + 'Gtk_CssAnimatedStyleClass.cs', + 'Gtk_FontChooserWidget.cs', + 'Gtk_FlowBoxSortFunc.cs', + 'Gtk_CellAreaBoxContext.cs', + 'Gtk_CssImageBuiltin.cs', + 'Gtk_MenuTrackerInsertFunc.cs', + 'Gtk_ChangeValueHandler.cs', + 'Gtk_GtkSharp.TickCallbackNative.cs', + 'Gtk_PoppedDownHandler.cs', + 'Gtk_ModuleInfo.cs', + 'Gtk_CssImageLinear.cs', + 'Gtk_RemovedHandler.cs', + 'Gtk_FillLayoutRendererClass.cs', + 'Gtk_ThemeEngine.cs', + 'Gtk_RcProperty.cs', + 'Gtk_UIManagerItemType.cs', + 'Gtk_ArrowPlacement.cs', + 'Gtk_MenuPositionFunc.cs', + 'Gtk_MenuButton.cs', + 'Gtk_ShortcutLabel.cs', + 'Gtk_CellRenderer.cs', + 'Gtk_AppChooserDialog.cs', + 'Gtk_AccelActivateHandler.cs', + 'Gtk_PositionType.cs', + 'Gtk_GtkSharp.ClipboardURIReceivedFuncNative.cs', + 'Gtk_TextBTreeNode.cs', + 'Gtk_ExpanderStyle.cs', + 'Gtk_CssPathNode.cs', + 'Gtk_CellLayoutDataFunc.cs', + 'Gtk_ReliefStyle.cs', + 'Gtk_MapChangedHandler.cs', + 'Gtk_GtkSharp.TreeModelFilterVisibleFuncNative.cs', + 'Gtk_DirectionType.cs', + 'Gtk_GtkSharp.ClipboardImageReceivedFuncNative.cs', + 'Gtk_ButtonBoxStyle.cs', + 'Gtk_WidgetPath.cs', + 'Gtk_Container.cs', + 'Gtk_CssImageSurface.cs', + 'Gtk_NumerableIcon.cs', + 'Gtk_ThemingBackground.cs', + 'Gtk_ModifierStyle.cs', + 'Gtk_Gradient.cs', + 'Gtk_ListBoxSortFunc.cs', + 'Gtk_DeleteType.cs', + 'Gtk_AspectFrame.cs', + 'Gtk_MoveSelectedHandler.cs', + 'Gtk_ThemingEngine.cs', + 'Gtk_CssStyleChange.cs', + 'Gtk_GtkSharp.TreeIterCompareFuncNative.cs', + 'Gtk_EdgeReachedHandler.cs', + 'Gtk_OpenLocationHandler.cs', + 'Gtk_MessageDialog.cs', + 'Gtk_GridLines.cs', + 'Gtk_CacheEntry.cs', + 'Gtk_CssImageScaledClass.cs', + 'Gtk_TextPendingScroll.cs', + 'Gtk_Adjustment.cs', + 'Gtk_ChildDetachedHandler.cs', + 'Gtk_ToggleCursorRowHandler.cs', + 'Gtk_ImageDefinitionPixbuf.cs', + 'Gtk_Invisible.cs', + 'Gtk_TextCharPredicate.cs', + 'Gtk_CellRendererSpin.cs', + 'Gtk_AssistantPage.cs', + 'Gtk_TextAppearance.cs', + 'Gtk_GtkSharp.ClipboardTargetsReceivedFuncNative.cs', + 'Gtk_StylePropertyValue.cs', + 'Gtk_GridRequest.cs', + 'Gtk_CssImageBuiltinClass.cs', + 'Gtk_StackSidebar.cs', + 'Gtk_InputHandler.cs', + 'Gtk_TextRendererClass.cs', + 'Gtk_SwitchPageHandler.cs', + 'Gtk_CancelPositionHandler.cs', + 'Gtk_PageOrientation.cs', + 'Gtk_OffscreenWindow.cs', + 'Gtk_PageAddedHandler.cs', + 'Gtk_CssImageLinearColorStop.cs', + 'Gtk_CssMatcherNode.cs', + 'Gtk_CssImageLinearClass.cs', + 'Gtk_InsertedTextHandler.cs', + 'Gtk_GtkSharp.RcPropertyParserNative.cs', + 'Gtk_DragUpdateHandler.cs', + 'Gtk_SortData.cs', + 'Gtk_ActionActivatedHandler.cs', + 'Gtk_Render.cs', + 'Gtk_GtkSharp.MenuTrackerInsertFuncNative.cs', + 'Gtk_ColorChooserDialog.cs', + 'Gtk_ChangedHandler.cs', + 'Gtk_ColorButton.cs', + 'Gtk_AccelChangedHandler.cs', + 'Gtk_CssTransition.cs', + 'Gtk_TextBufferSerializeFunc.cs', + 'Gtk_Border.cs', + 'Gtk_TreeViewMappingFunc.cs', + 'Gtk_FileChooserAction.cs', + 'Gtk_OffsetChangedHandler.cs', + 'Gtk_PageSetupDoneFunc.cs', + 'Gtk_CreateCustomWidgetHandler.cs', + 'Gtk_Accessible.cs', + 'Gtk_GtkSharp.FlowBoxFilterFuncNative.cs', + 'Gtk_WidgetHelpType.cs', + 'Gtk_TreeDragSourceAdapter.cs', + 'Gtk_TreeMenu.cs', + 'Gtk_StyleContext.cs', + 'Gtk_FocusTabHandler.cs', + 'Gtk_Arrow.cs', + 'Gtk_ImageDefinitionAnimation.cs', + 'Gtk_FormatEntryTextHandler.cs', + 'Gtk_JunctionSides.cs', + 'Gtk_MoveActiveHandler.cs', + 'Gtk_DragActionAskHandler.cs', + 'Gtk_ColorSelectionDialog.cs', + 'Gtk_InputPurpose.cs', + 'Gtk_HPaned.cs', + 'Gtk_PrintJob.cs', + 'Gtk_TreeViewColumnDropFunc.cs', + 'Gtk_TreeViewColumnReorder.cs', + 'Gtk_MoveHandleHandler.cs', + 'Gtk_TextLineDisplay.cs', + 'Gtk_CairoHelper.cs', + 'Gtk_EntryCompletionMatchFunc.cs', + 'Gtk_PrepareHandler.cs', + 'Gtk_RecentChooserProp.cs', + 'Gtk_PlacesOpenFlags.cs', + 'Gtk_TextHandle.cs', + 'Gtk_PrintUnixDialog.cs', + 'Gtk_FlowBoxCreateWidgetFunc.cs', + 'Gtk_CssSection.cs', + 'Gtk_ToolButton.cs', + 'Gtk_CssAnimatedStyle.cs', + 'Gtk_Statusbar.cs', + 'Gtk_BorderImageSliceSize.cs', + 'Gtk_Notebook.cs', + 'Gtk_FileChooserConfirmation.cs', + 'Gtk_CycleFocusHandler.cs', + 'Gtk_AccelGroupActivate.cs', + 'Gtk_CssStyleProperty.cs', + 'Gtk_BorderStyle.cs', + 'Gtk_CheckMenuItem.cs', + 'Gtk_ColorEditorClass.cs', + 'Gtk_NotebookTab.cs', + 'Gtk_BookmarksChangedFunc.cs', + 'Gtk_FlowBoxForeachFunc.cs', + 'Gtk_CreateMenuProxyHandler.cs', + 'Gtk_RecentChooserWidget.cs', + 'Gtk_CellCallback.cs', + 'Gtk_CssImageWin32.cs', + 'Gtk_FontButton.cs', + 'Gtk_DrawingArea.cs', + 'Gtk_SearchBar.cs', + 'Gtk_ToolbarContent.cs', + 'Gtk_GtkSharp.MenuPositionFuncNative.cs', + 'Gtk_PrintSettings.cs', + 'Gtk_GtkSharp.CellCallbackNative.cs', + 'Gtk_Clipboard.cs', + 'Gtk_DragPerformDropHandler.cs', + 'Gtk_CellRendererCombo.cs', + 'Gtk_AssistantPageType.cs', + 'Gtk_ScrollType.cs', + 'Gtk_ProgressTracker.cs', + 'Gtk_CalendarDetailFunc.cs', + 'Gtk_TreePath.cs', + 'Gtk_SequenceStateChangedHandler.cs', + 'Gtk_Device.cs', + 'Gtk_ScrollChildHandler.cs', + 'Gtk_SelectAllHandler.cs', + 'Gtk_BoxGadgetClass.cs', + 'Gtk_PageReorderedHandler.cs', + 'Gtk_TreeDragDestAdapter.cs', + 'Gtk_IconSource.cs', + 'Gtk_RadioToolButton.cs', + 'Gtk_FlowBox.cs', + 'Gtk_IconViewItem.cs', + 'Gtk_CssImageUrlClass.cs', + 'Gtk_AppChooserButton.cs', + 'Gtk_CheckButton.cs', + 'Gtk_Align.cs', + 'Gtk_ApplicationWindow.cs', + 'Gtk_Separator.cs', + 'Gtk_GtkSharp.ColorSelectionChangePaletteFuncNative.cs', + 'Gtk_GtkSharp.ClipboardReceivedFuncNative.cs', + 'Gtk_ListBoxCreateWidgetFunc.cs', + 'Gtk_IActivatable.cs', + 'Gtk_ApplicationActivatedHandler.cs', + 'Gtk_StyleProperty.cs', + 'Gtk_Image.cs', + 'Gtk_PostActivateHandler.cs', + 'Gtk_CustomWidgetApplyHandler.cs', + 'Gtk_GtkSharp.PrinterFuncNative.cs', + 'Gtk_EntryCapslockFeedback.cs', + 'Gtk_ValueChangedHandler.cs', + 'Gtk_BoxGadgetChild.cs', + 'Gtk_PointData.cs', + 'Gtk_MenuSectionBox.cs', + 'Gtk_TreeViewRowSeparatorFunc.cs', + 'Gtk_TextTagTable.cs', + 'Gtk_GtkSharp.TextBufferDeserializeFuncNative.cs', + 'Gtk_ToolPalette.cs', + 'Gtk_TreeViewSearchPositionFunc.cs', + 'Gtk_CssSelectorClass.cs', + 'Gtk_Settings.cs', + 'Gtk_PlacesView.cs', + 'Gtk_GestureRotate.cs', + 'Gtk_PageSetupUnixDialog.cs', + 'Gtk_IconReleaseHandler.cs', + 'Gtk_WindowGroup.cs', + 'Gtk_VBox.cs', + 'Gtk_RequestContentsInfo.cs', + 'Gtk_SelectionData.cs', + 'Gtk_TextLineData.cs', + 'Gtk_PropagationPhase.cs', + 'Gtk_ParseContext.cs', + 'Gtk_StyleAnimation.cs', + 'Gtk_WindowPopover.cs', + 'Gtk_DragEndHandler.cs', + 'Gtk_AccelEditedHandler.cs', + 'Gtk_MenuDirectionType.cs', + 'Gtk_DeleteFromCursorHandler.cs', + 'Gtk_ICellEditable.cs', + 'Gtk_SortElt.cs', + 'Gtk_StyleProperties.cs', + 'Gtk_GtkSharp.TreeViewSearchPositionFuncNative.cs', + 'Gtk_TreeViewColumn.cs', + 'Gtk_GestureZoom.cs', + 'Gtk_VolumeButton.cs', + 'Gtk_CssStyle.cs', + 'Gtk_TextEventHandler.cs', + 'Gtk_VScrollbar.cs', + 'Gtk_TextDirection.cs', + 'Gtk_BookmarksManager.cs', + 'Gtk_PanDirection.cs', + 'Gtk_DelayedFontDescription.cs', + 'Gtk_FontSelectionDialog.cs', + 'Gtk_AppChooserIface.cs', + 'Gtk_DragResult.cs', + 'Gtk_LocationPopupHandler.cs', + 'Gtk_MenuDetachFunc.cs', + 'Gtk_Revealer.cs', + 'Gtk_ExtendSelectionHandler.cs', + 'Gtk_HandleBox.cs', + 'Gtk_AddWidgetHandler.cs', + 'Gtk_TreeModelForeachFunc.cs', + 'Gtk_AccelLabel.cs', + 'Gtk_WidgetPropertyValue.cs', + 'Gtk_WindowAddedHandler.cs', + 'Gtk_IRecentChooser.cs', + 'Gtk_CssProvider.cs', + 'Gtk_Builder.cs', + 'Gtk_PaperSize.cs', + 'Gtk_TargetList.cs', + 'Gtk_MenuTrackerItemRole.cs', + 'Gtk_TargetFlags.cs', + 'Gtk_ColorSelection.cs', + 'Gtk_StackSwitcher.cs', + 'Gtk_MenuTrackerItem.cs', + 'Gtk_PageSetup.cs', + 'Gtk_FormatValueHandler.cs', + 'Gtk_PrintBackendModuleClass.cs', + 'Gtk_RecentFilterFunc.cs', + 'Gtk_ThemingModuleClass.cs', + 'Gtk_GesturePan.cs', + 'Gtk_InsertedHandler.cs', + 'Gtk_CellLayoutAdapter.cs', + 'Gtk_RequestImageInfo.cs', + 'Gtk_PrefixInsertedHandler.cs', + 'Gtk_TextDeletedHandler.cs', + 'Gtk_TreeRowData.cs', + 'Gtk_HScale.cs', + 'Gtk_RequestRichTextInfo.cs', + 'Gtk_IconLookupFlags.cs', + 'Gtk_Socket.cs', + 'Gtk_Alignment.cs', + 'Gtk_TreeRowReference.cs', + 'Gtk_CssImageIconThemeClass.cs', + 'Gtk_ToolItemGroupChild.cs', + 'Gtk_BeginHandler.cs', + 'Gtk_PrintPagesData.cs', + 'Gtk_PackDirection.cs', + 'Gtk_GtkSharp.TextCharPredicateNative.cs', + 'Gtk_IMModuleClass.cs', + 'Gtk_EventSequenceState.cs', + 'Gtk_FocusHomeOrEndHandler.cs', + 'Gtk_SizeGroup.cs', + 'Gtk_IActionObservable.cs', + 'Gtk_MenuTrackerRemoveFunc.cs', + 'Gtk_SearchEntry.cs', + 'Gtk_CommitHandler.cs', + 'Gtk_PanHandler.cs', + 'Gtk_TextMark.cs', + 'Gtk_Node.cs', + 'Gtk_CssWidgetNodeClass.cs', + 'Gtk_FlowBoxFilterFunc.cs', + 'Gtk_SharedData.cs', + 'Gtk_CssCustomPropertyClass.cs', + 'Gtk_GtkSharp.PrintJobCompleteFuncNative.cs', + 'Gtk_Table.cs', + 'Gtk_CssImageRadial.cs', + 'Gtk_CssImageWin32Class.cs', + 'Gtk_PrintOperationResult.cs', + 'Gtk_MenuBar.cs', + 'Gtk_PrintSettingsFunc.cs', + 'Gtk_SwipeHandler.cs', + 'Gtk_RowExpandedHandler.cs', + 'Gtk_PrimaryAccelChangedHandler.cs', + 'Gtk_Accelerator.cs', + 'Gtk_SetFocusHandler.cs', + 'Gtk_GestureDrag.cs', + 'Gtk_FileChooserDialog.cs', + 'Gtk_GtkSharp.AssistantPageFuncNative.cs', + 'Gtk_PlugRemovedHandler.cs', + 'Gtk_GtkSharp.ClipboardClearFuncNative.cs', + 'Gtk_TreeViewDropPosition.cs', + 'Gtk_IMModule.cs', + 'Gtk_StyleAnimationClass.cs', + 'Gtk_OverlayChild.cs', + 'Gtk_CellAreaBoxContextClass.cs', + 'Gtk_Switch.cs', + 'Gtk_EdgeOvershotHandler.cs', + 'Gtk_InputHints.cs', + 'Gtk_ColorSwatchClass.cs', + 'Gtk_CssImageClass.cs', + 'Gtk_ClipboardGetFunc.cs', + 'Gtk_TrayIcon.cs', + 'Gtk_Plug.cs', + 'Gtk_IconClass.cs', + 'Gtk_TreeModelFilter.cs', + 'Gtk_IconViewForeachFunc.cs', + 'Gtk_MatchSelectedHandler.cs', + 'Gtk_GtkSharp.TreeViewColumnDropFuncNative.cs', + 'Gtk_CustomPaperUnixDialog.cs', + 'Gtk_CycleHandleFocusHandler.cs', + 'Gtk_PlacesSidebar.cs', + 'Gtk_ShortcutsShortcut.cs', + 'Gtk_BuiltinIconClass.cs', + 'Gtk_CssImageRadialColorStop.cs', + 'Gtk_CellAllocCallback.cs', + 'Gtk_GtkSharp.ListBoxSortFuncNative.cs', + 'Gtk_ColorChooserAdapter.cs', + 'Gtk_SeparatorToolItem.cs', + 'Gtk_StateSetHandler.cs', + 'Gtk_CssTransitionClass.cs', + 'Gtk_TextLayout.cs', + 'Gtk_ChildAttachedHandler.cs', + 'Gtk_CssImageCrossFade.cs', + 'Gtk_TargetPair.cs', + 'Gtk_CssCustomGadgetClass.cs', + 'Gtk_Fixed.cs', + 'Gtk_VPaned.cs', + 'Gtk_PlacesViewClass.cs', + 'Gtk_TreeSelectionFunc.cs', + 'Gtk_ScrolledWindow.cs', + 'Gtk_EntryIconPosition.cs', + 'Gtk_TreeViewSearchEqualFunc.cs', + 'Gtk_StyleCascadeClass.cs', + 'Gtk_IconThemeError.cs', + 'Gtk_IToolShell.cs', + 'Gtk_WindowPosition.cs', + 'Gtk_TreeViewDragInfo.cs', + 'Gtk_ShortcutsSection.cs', + 'Gtk_FileChooserError.cs', + 'Gtk_WindowRemovedHandler.cs', + 'Gtk_DetailsAcquiredHandler.cs', + 'Gtk_BaselinePosition.cs', + 'Gtk_CssImageIconTheme.cs', + 'Gtk_FileChooserAdapter.cs', + 'Gtk_GtkSharp.TreeViewMappingFuncNative.cs', + 'Gtk_SpinType.cs', + 'Gtk_ButtonsType.cs', + 'Gtk_TextSearchFlags.cs', + 'Gtk_RecentFilterFlags.cs', + 'Gtk_NumberUpLayout.cs', + 'Gtk_IncrConversion.cs', + 'Gtk_Misc.cs', + 'Gtk_SurroundingDeletedHandler.cs', + 'Gtk_PrintCapabilities.cs', + 'Gtk_TextWindowType.cs', + 'Gtk_Accel.cs', + 'Gtk_CellRendererSpinner.cs', + 'Gtk_CancelHandler.cs', + 'Gtk_PageRemovedHandler.cs', + 'Gtk_CssImageScaled.cs', + 'Gtk_IconHelper.cs', + 'Gtk_PrintPages.cs', + 'Gtk_CycleChildFocusHandler.cs', + 'Gtk_CssImageCrossFadeClass.cs', + 'Gtk_GtkSharp.TreeModelFilterModifyFuncNative.cs', + 'Gtk_CellArea.cs', + 'Gtk_DeletedTextHandler.cs', + 'Gtk_AccelClearedHandler.cs', + 'Gtk_ActivateCursorItemHandler.cs', + 'Gtk_RcStyle.cs', + 'Gtk_SelectionMode.cs', + 'Gtk_RcPropertyParser.cs', + 'Gtk_ShowOtherLocationsWithFlagsHandler.cs', + 'Gtk_PageRange.cs', + 'Gtk_CssImageGradient.cs', + 'Gtk_TestExpandRowHandler.cs', + 'Gtk_CssValue.cs', + 'Gtk_RadioButton.cs', + 'Gtk_GtkSharp.TranslateFuncNative.cs', + 'Gtk_RecentAction.cs', + 'Gtk_ITreeModel.cs', + 'Gtk_StyleContextPrintFlags.cs', + 'Gtk_RespondHandler.cs', + 'Gtk_ButtonBox.cs', + 'Gtk_RecentChooserDefault.cs', + 'Gtk_CssShorthandPropertyClass.cs', + 'Gtk_IconTheme.cs', + 'Gtk_Spinner.cs', + 'Gtk_DialogFlags.cs', + 'Gtk_AccelGroupEntry.cs', + 'Gtk_CreateContextHandler.cs', + 'Gtk_PopoverMenu.cs', + 'Gtk_RowInsertedHandler.cs', + 'Gtk_MoveCurrentHandler.cs', + 'Gtk_StatusIcon.cs', + 'Gtk_UIManager.cs', + 'Gtk_CssMatcherClass.cs', + 'Gtk_TextWindow.cs', + 'Gtk_CssImageUrl.cs', + 'Gtk_ReorderTabHandler.cs', + 'Gtk_IconSize.cs', + 'Gtk_GtkSharp.BuilderConnectFuncNative.cs', + 'Gtk_SettingsPropertyValue.cs', + 'Gtk_XEmbedMessage.cs', + 'Gtk_Viewport.cs', + 'Gtk_TreeSelection.cs', + 'Gtk_MnemonicHashForeach.cs', + 'Gtk_Win32Theme.cs', + 'Gtk_TearoffMenuItem.cs', + 'Gtk_RecentManager.cs', + 'Gtk_InsertAtCursorHandler.cs', + 'Gtk_Action.cs', + 'Gtk_PasteDoneHandler.cs', + 'Gtk_PathElement.cs', + 'Gtk_ToolPaletteDragData.cs', + 'Gtk_CssValueClass.cs', + 'Gtk_StylePropertyParser.cs', + 'Gtk_AccelFlags.cs', + 'Gtk_CssImageSurfaceClass.cs', + 'Gtk_ITreeDragDest.cs', + 'Gtk_CellRendererPixbuf.cs', + 'Gtk_PixelCache.cs', + 'Gtk_PadController.cs', + 'Gtk_ChangeCurrentPageHandler.cs', + 'Gtk_ReadyHandler.cs', + 'Gtk_PropertyValue.cs', + 'Gtk_PrintError.cs', + 'Gtk_AccelKey.cs', + 'Gtk_GtkSharp.BookmarksChangedFuncNative.cs', + 'Gtk_DestDefaults.cs', + 'Gtk_KineticScrolling.cs', + 'Gtk_GtkSharp.CellLayoutDataFuncNative.cs', + 'Gtk_ScrollablePolicy.cs', + 'Gtk_Entry.cs', + 'Gtk_RowHasChildToggledHandler.cs', + 'Gtk_Callback.cs', + 'Gtk_CssNodeStyleCache.cs', + 'Gtk_StyleChangedHandler.cs', + 'Gtk_ListBoxFilterFunc.cs', + 'Gtk_RequestedSize.cs', + 'Gtk_ShadowType.cs', + 'Gtk_RecentSortFunc.cs', + 'Gtk_ITreeDragSource.cs', + 'Gtk_GtkSharp.ClipboardTextReceivedFuncNative.cs', + 'Gtk_DeviceGrabInfo.cs', + 'Gtk_AccelMap.cs', + 'Gtk_UnmountHandler.cs', + 'Gtk_PadActionType.cs', + 'Gtk_TickCallbackInfo.cs', + 'Gtk_ToggleAction.cs', + 'Gtk_QuickBookmarkHandler.cs', + 'Gtk_TextTag.cs', + 'Gtk_CssTransientNode.cs', + 'Gtk_ImageDefinitionGIcon.cs', + 'Gtk_KeySnooperData.cs', + 'Gtk_FileChooserWidget.cs', + 'Gtk_FontFilterFunc.cs', + 'Gtk_ToggledHandler.cs', + 'Gtk_TextIter.cs', + 'Gtk_Bookmark.cs', + 'Gtk_ShortcutsWindow.cs', + 'Gtk_MovementStep.cs', + 'Gtk_IScrollable.cs', + 'Gtk_StyleProviderData.cs', + 'Gtk_ListBoxUpdateHeaderFunc.cs', + 'Gtk_IEditable.cs', + 'Gtk_ChildActivatedHandler.cs', + 'Gtk_FileFilterFunc.cs', + 'Gtk_AccelGroup.cs', + 'Gtk_ColorChooserWidget.cs', + 'Gtk_DragDestSite.cs', + 'Gtk_ApplicationSelectedHandler.cs', + 'Gtk_MarkSetHandler.cs', + 'Gtk_EditingStartedHandler.cs', + 'Gtk_CssKeyframes.cs', + 'Gtk_ToggleHandleFocusHandler.cs', + 'Gtk_ScrollStep.cs', + 'Gtk_Print.cs', + 'Gtk_StylePropertyClass.cs', + 'Gtk_ToggleSizeRequestedHandler.cs', + 'Gtk_CssCustomGadget.cs', + 'Gtk_IMMulticontext.cs', + 'Gtk_RecentChooserMenu.cs', + 'Gtk_PopupContextMenuHandler.cs', + 'Gtk_NodeUIReference.cs', + 'Gtk_CalendarDisplayOptions.cs', + 'Gtk_RecentChooserDialog.cs', + 'Gtk_ImageDefinitionStock.cs', + 'Gtk_TextBuffer.cs', + 'Gtk_TreeModelFilterVisibleFunc.cs', + 'Gtk_RadioAction.cs', + 'Gtk_CellAreaContext.cs', + 'Gtk_MenuTrackerSection.cs', + 'Gtk_IPrintOperationPreview.cs', + 'Gtk_SelectionTargetList.cs', + 'Gtk_RowActivatedHandler.cs', + 'Gtk_FlowBoxChild.cs', + 'Gtk_BuilderError.cs', + 'Gtk_GridLineData.cs', + 'Gtk_TextRenderer.cs', + 'Gtk_SidebarRow.cs', + 'Gtk_CssImageGradientClass.cs', + 'Gtk_Bin.cs', + 'Gtk_PreviewHandler.cs', + 'Gtk_GtkSharp.TreeDestroyCountFuncNative.cs', + 'Gtk_DragSourceSite.cs', + 'Gtk_ActionObservableAdapter.cs', + 'Gtk_PrintDuplex.cs', + 'Gtk_SelectPageHandler.cs', + 'Gtk_VSeparator.cs', + 'Gtk_Layout.cs', + 'Gtk_FilterElt.cs', + 'Gtk_BoxGadget.cs', + 'Gtk_FileFilterFlags.cs', + 'Gtk_IconViewDropPosition.cs', + 'Gtk_RequestPageSetupHandler.cs', + 'Gtk_PackType.cs', + 'Gtk_TreeDestroyCountFunc.cs', + 'Gtk_MagnifierClass.cs', + 'Gtk_ArrowType.cs', + 'Gtk_Tree.cs', + 'Gtk_EntryPasswordHint.cs', + 'Gtk_GestureSwipe.cs', + 'Gtk_MnemonicHash.cs', + 'Gtk_ResponseHandler.cs', + 'Gtk_SpinButtonUpdatePolicy.cs', + 'Gtk_DoneHandler.cs', + 'Gtk_OutputHandler.cs', + 'Gtk_PrintQuality.cs', + 'Gtk_ColorActivatedHandler.cs', + 'Gtk_GtkSharp.RecentSortFuncNative.cs', + 'Gtk_SensitivityType.cs', + 'Gtk_PrintOperation.cs', + 'Gtk_Toolbar.cs', + 'Gtk_RecentFilter.cs', + 'Gtk_Expander.cs', + 'Gtk_MarkDeletedHandler.cs', + 'Gtk_KeyReleaseEventHandler.cs', + 'Gtk_SelectionClearEventHandler.cs', + 'Gtk_GrabNotifyHandler.cs', + 'Gtk_DragDropHandler.cs', + 'Gtk_ProximityInEventHandler.cs', + 'Gtk_DragDataGetHandler.cs', + 'Gtk_DirectionChangedHandler.cs', + 'Gtk_StateChangedHandler.cs', + 'Gtk_WindowStateEventHandler.cs', + 'Gtk_MoveFocusHandler.cs', + 'Gtk_SelectionReceivedHandler.cs', + 'Gtk_FocusedHandler.cs', + 'Gtk_ProximityOutEventHandler.cs', + 'Gtk_UnmapEventHandler.cs', + 'Gtk_MnemonicActivatedHandler.cs', + 'Gtk_KeyPressEventHandler.cs', + 'Gtk_AccelCanActivateHandler.cs', + 'Gtk_PropertyNotifyEventHandler.cs', + 'Gtk_StateFlagsChangedHandler.cs', + 'Gtk_DragDataReceivedHandler.cs', + 'Gtk_SelectionGetHandler.cs', + 'Gtk_TouchEventHandler.cs', + 'Gtk_EnterNotifyEventHandler.cs', + 'Gtk_StyleSetHandler.cs', + 'Gtk_LeaveNotifyEventHandler.cs', + 'Gtk_DragLeaveHandler.cs', + 'Gtk_DeleteEventHandler.cs', + 'Gtk_WidgetEventHandler.cs', + 'Gtk_Widget.cs', + 'Gtk_HierarchyChangedHandler.cs', + 'Gtk_VisibilityNotifyEventHandler.cs', + 'Gtk_DragDataDeleteHandler.cs', + 'Gtk_DestroyEventHandler.cs', + 'Gtk_WidgetEventAfterHandler.cs', + 'Gtk_FocusOutEventHandler.cs', + 'Gtk_ParentSetHandler.cs', + 'Gtk_SizeAllocatedHandler.cs', + 'Gtk_ChildNotifiedHandler.cs', + 'Gtk_DragFailedHandler.cs', + 'Gtk_MotionNotifyEventHandler.cs', + 'Gtk_DrawnHandler.cs', + 'Gtk_SelectionNotifyEventHandler.cs', + 'Gtk_HelpShownHandler.cs', + 'Gtk_GrabBrokenEventHandler.cs', + 'Gtk_ConfigureEventHandler.cs', + 'Gtk_FocusInEventHandler.cs', + 'Gtk_DragMotionHandler.cs', + 'Gtk_ScreenChangedHandler.cs', + 'Gtk_DamageEventHandler.cs', + 'Gtk_SelectionRequestEventHandler.cs', + 'Gtk_MapEventHandler.cs', +] + +source_gen = custom_target(assembly_name + 'codegen', + input: raw_api_fname, + output: generated_sources, + command: [ + generate_api, + '--api-raw', '@INPUT@', + '--gapi-fixup', gapi_fixup.full_path(), + '--metadata', metadata_fname, + '--symbols', symbols, + '--gapi-codegen', gapi_codegen.full_path(), + '--extra-includes', glib_api_includes, + '--extra-includes', pango_api_includes, + '--extra-includes', gio_api_includes, + '--extra-includes', cairo_api_includes, + '--extra-includes', gdk_api_includes, + '--extra-includes', atk_api_includes, + '--glue-file', gluefile, + '--glue-includes', glueincludes, + '--out', meson.current_build_dir(), + '--files', ';'.join(generated_sources), + '--assembly-name', assembly_name, + '--glue-libname', gluefile, + '--schema', schema, + ], + depends: [gapi_codegen, gapi_fixup]) + +api_xml = custom_target(pkg + '_api_xml', + input: raw_api_fname, + output: pkg + '-api.xml', + command: [generate_api, '--fakeglue'], + depends: [source_gen], + install: true, + install_dir: gapi_xml_installdir) +gtk_api_includes = join_paths(meson.current_build_dir(), 'gtk-api.xml') diff --git a/gtk/gtk-api.raw b/gtk/gtk-api.raw index 2a84e3eda..56ae9d1a5 100644 --- a/gtk/gtk-api.raw +++ b/gtk/gtk-api.raw @@ -17,6 +17,13 @@ + + + + + + + @@ -43,11 +50,22 @@ + + + + + + + + + + + @@ -59,6 +77,11 @@ + + + + + @@ -66,6 +89,12 @@ + + + + + + @@ -97,6 +126,8 @@ + + @@ -106,6 +137,22 @@ + + + + + + + + + + + + + + + + @@ -121,6 +168,15 @@ + + + + + + + + + @@ -141,6 +197,7 @@ + @@ -162,6 +219,11 @@ + + + + + @@ -191,6 +253,14 @@ + + + + + + + + @@ -207,6 +277,10 @@ + + + + @@ -237,6 +311,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + @@ -255,6 +354,10 @@ + + + + @@ -265,6 +368,11 @@ + + + + + @@ -272,6 +380,11 @@ + + + + + @@ -319,6 +432,11 @@ + + + + + @@ -330,6 +448,12 @@ + + + + + + @@ -343,10 +467,20 @@ + + + + + + + + + + @@ -412,13 +546,19 @@ + + + + + + - + @@ -506,6 +646,7 @@ + @@ -531,6 +672,14 @@ + + + + + + + + @@ -579,6 +728,16 @@ + + + + + + + + + + @@ -588,10 +747,7 @@ - - - - + @@ -610,6 +766,28 @@ + + + + + + + + + + + + + + + + + + + + + + @@ -618,6 +796,13 @@ + + + + + + + @@ -628,6 +813,11 @@ + + + + + @@ -644,11 +834,21 @@ + + + + + + + + + + @@ -658,17 +858,6 @@ - - - - - - - - - - - @@ -718,7 +907,7 @@ - + @@ -761,25 +950,6 @@ - - - - - - - - - - - - - - - - - - - @@ -814,6 +984,12 @@ + + + + + + @@ -967,6 +1143,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -983,6 +1197,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1000,6 +1252,21 @@ + + + + + + + + + + + + + + + @@ -1120,6 +1387,14 @@ + + + + + + + + @@ -1155,14 +1430,6 @@ - - - - - - - - @@ -1253,6 +1520,204 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1274,34 +1739,34 @@ - + - + - + - + - + - + - + @@ -1658,38 +2123,110 @@ - - - - - - - - - - - - - + + + + + + + + - + + + - - - + - + - - + - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1813,6 +2350,7 @@ + @@ -1831,6 +2369,10 @@ + + + + @@ -1880,6 +2422,10 @@ + + + + @@ -1947,6 +2493,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1973,6 +2556,12 @@ + + + + + + @@ -1985,6 +2574,9 @@ + + + @@ -2051,6 +2643,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2099,6 +2723,13 @@ + + + + + + + @@ -2225,6 +2856,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2577,11 +3326,24 @@ + + + + + + + + + + + + + @@ -2650,13 +3412,13 @@ - + - + @@ -3157,6 +3919,15 @@ + + + + + + + + + @@ -3297,6 +4068,13 @@ + + + + + + + @@ -3582,6 +4360,13 @@ + + + + + + + @@ -3599,6 +4384,13 @@ + + + + + + + @@ -3721,21 +4513,24 @@ - - + + + - + + - + + @@ -3743,7 +4538,7 @@ - + @@ -3835,91 +4630,91 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -3927,111 +4722,163 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - + + + - - - - - + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -4075,20 +4922,20 @@ - + - + - + @@ -4096,7 +4943,7 @@ - + @@ -4105,7 +4952,7 @@ - + @@ -4115,7 +4962,7 @@ - + @@ -4126,7 +4973,7 @@ - + @@ -4134,7 +4981,7 @@ - + @@ -4143,45 +4990,54 @@ - + + + + - + - + - + - + - + - + - + - + + + + + + + - + @@ -4189,25 +5045,130 @@ - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -4245,7 +5206,7 @@ - + @@ -4269,6 +5230,9 @@ + + + @@ -4333,7 +5297,7 @@ - + @@ -4366,7 +5330,7 @@ - + @@ -4375,10 +5339,10 @@ - + - + @@ -4386,7 +5350,7 @@ - + @@ -4395,7 +5359,7 @@ - + @@ -4408,33 +5372,185 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -4444,6 +5560,7 @@ + @@ -4468,6 +5585,9 @@ + + + @@ -4491,6 +5611,12 @@ + + + + + + @@ -4539,16 +5665,6 @@ - - - - - - - - - - @@ -4660,6 +5776,7 @@ + @@ -4672,16 +5789,16 @@ - + - + - + @@ -4768,11 +5885,19 @@ + + + + + + + + @@ -4824,13 +5949,19 @@ - + + + + + + + - + @@ -4877,6 +6008,12 @@ + + + + + + @@ -4898,14 +6035,21 @@ - + + + + + + + + - + @@ -4969,11 +6113,12 @@ - - - - - + + + + + + @@ -4988,7 +6133,14 @@ + + + + + + + @@ -5039,6 +6191,18 @@ + + + + + + + + + + + + @@ -5107,6 +6271,21 @@ + + + + + + + + + + + + + + + @@ -5114,6 +6293,13 @@ + + + + + + + @@ -5130,6 +6316,14 @@ + + + + + + + + @@ -5155,6 +6349,26 @@ + + + + + + + + + + + + + + + + + + + + @@ -5176,7 +6390,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -5220,12 +6462,12 @@ - + @@ -5250,6 +6492,13 @@ + + + + + + + @@ -5263,6 +6512,7 @@ + @@ -5271,17 +6521,20 @@ - + + + + - + @@ -5299,7 +6552,7 @@ - + @@ -5309,7 +6562,13 @@ - + + + + + + + @@ -5330,14 +6589,20 @@ - + - + + + + + + + @@ -5364,10 +6629,10 @@ - + - + @@ -5389,8 +6654,13 @@ + + + + + @@ -5403,6 +6673,12 @@ + + + + + + @@ -5420,6 +6696,13 @@ + + + + + + + @@ -5460,6 +6743,9 @@ + + + @@ -5591,7 +6877,7 @@ - + @@ -5614,41 +6900,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -5701,6 +6952,15 @@ + + + + + + + + + @@ -5880,6 +7140,13 @@ + + + + + + + @@ -6165,6 +7432,10 @@ + + + + @@ -6361,7 +7632,7 @@ - + @@ -6483,9 +7754,6 @@ - - - @@ -6506,6 +7774,13 @@ + + + + + + + @@ -6771,6 +8046,7 @@ + @@ -6928,6 +8204,7 @@ + @@ -7101,7 +8378,7 @@ - + @@ -7147,6 +8424,8 @@ + + @@ -7194,6 +8473,7 @@ + @@ -7284,6 +8564,12 @@ + + + + + + @@ -7297,6 +8583,9 @@ + + + @@ -7458,6 +8747,7 @@ + @@ -7470,16 +8760,19 @@ - + + + + - + - + @@ -7491,11 +8784,11 @@ - + - + @@ -7505,19 +8798,19 @@ - + - + - + @@ -7529,16 +8822,97 @@ - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -7567,50 +8941,50 @@ - + - + - + - + - + - + - + - + - + - + - - + + @@ -7618,62 +8992,62 @@ - + - + - + - + - + - + - + - + - + - + @@ -7708,13 +9082,13 @@ - + - + - + @@ -7724,10 +9098,10 @@ + - @@ -7748,6 +9122,12 @@ + + + + + + @@ -7755,7 +9135,6 @@ - @@ -7765,6 +9144,10 @@ + + + + @@ -7774,9 +9157,6 @@ - - - @@ -7794,7 +9174,7 @@ - + @@ -7806,7 +9186,7 @@ - + @@ -7830,7 +9210,7 @@ - + @@ -7880,7 +9260,7 @@ - + @@ -7891,7 +9271,7 @@ - + @@ -7915,7 +9295,7 @@ - + @@ -7953,7 +9333,7 @@ - + @@ -8208,6 +9588,20 @@ + + + + + + + + + + + + + + @@ -8248,6 +9642,14 @@ + + + + + + + + @@ -8304,7 +9706,7 @@ - + @@ -8323,7 +9725,7 @@ - + @@ -8356,13 +9758,13 @@ - + - + @@ -8375,15 +9777,19 @@ - + - - + + - + + + + + @@ -8395,6 +9801,7 @@ + @@ -8434,7 +9841,16 @@ + + + + + + + + + @@ -8482,6 +9898,11 @@ + + + + + @@ -8518,12 +9939,15 @@ - + + + + @@ -8558,14 +9982,14 @@ - + - + @@ -8626,6 +10050,7 @@ + @@ -8633,7 +10058,6 @@ - @@ -8647,6 +10071,7 @@ + @@ -8658,6 +10083,7 @@ + @@ -8677,10 +10103,19 @@ + + + + + + + + + - + @@ -8748,6 +10183,7 @@ + @@ -8757,6 +10193,15 @@ + + + + + + + + + @@ -8778,9 +10223,6 @@ - - - @@ -8791,6 +10233,9 @@ + + + @@ -8850,7 +10295,7 @@ - + @@ -8874,9 +10319,15 @@ - + + + + + + + @@ -8893,15 +10344,24 @@ + + + + + + + + + @@ -8923,6 +10383,9 @@ + + + @@ -8959,6 +10422,12 @@ + + + + + + @@ -9019,7 +10488,7 @@ - + @@ -9047,12 +10516,24 @@ - + + + + + + + + + + + + + @@ -9065,12 +10546,24 @@ + + + + + + + + + + + + @@ -9083,6 +10576,12 @@ + + + + + + @@ -9269,10 +10768,10 @@ + - @@ -9295,6 +10794,10 @@ + + + + @@ -9319,9 +10822,6 @@ - - - @@ -9329,6 +10829,12 @@ + + + + + + @@ -9494,6 +11000,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -9511,6 +11068,9 @@ + + + @@ -9542,6 +11102,9 @@ + + + @@ -9588,6 +11151,12 @@ + + + + + + @@ -9607,9 +11176,9 @@ - + - + @@ -9622,7 +11191,6 @@ - @@ -9640,7 +11208,7 @@ - + @@ -9663,7 +11231,7 @@ - + @@ -9719,15 +11287,69 @@ - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -9800,12 +11422,20 @@ + + + + + + + + @@ -9851,23 +11481,60 @@ - - - - + + + + + + + + + + + + - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -9883,43 +11550,277 @@ - - + + + + + + + + + + + + + + + + + - + - - + + + + + - - + + + + + + - - + + - + - - + + - - - - - - - - - - - + + - + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -9947,9 +11848,89 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -9970,47 +11951,47 @@ - + - + - + - + - + - + - + - + - + - + - + - - + + - + @@ -10041,36 +12022,36 @@ - + - + - + - + - + - + - + - + - + @@ -10163,414 +12144,575 @@ - - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - - - - - - - - - + + + - - + + + + + - - + + + + + - - + + + + + - - + + + + + + + + + + + + + - - - - - + + - - - - - + - - + + - - - - - + + - - + + - - + + - + + + + + + + + + + + + + + + - - + + + + + - + + + + - - + + + + - + - - + + - + - - + + + + + - + - + + + + + + + + + + + + + + + + + - + + + + - - - - - - - - - + + + + + + + - - - - - - - + - + + - + - + + - - - - - - - - - - + - - + + + + + + + + + + - - - - - - - - + + + + + + - + - - + + + + + + + + + + + + + + + - + + + + + + + + + - + + + + + + + + + + + + + + + - + + + - - + + - + + + + + + + + + + + + + - - - - - - + - + - - + - - - - - - - + + + + + - - - - + + + + + - - + + + + + + + + + + - - - - - - - + - + - + + - + + - - - + - + - - - + + + + + - + + + + + + + + + + + - + - + - - - + + + + - + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - + - + - - - - - - - - - - - - - - + + - - - + - + - - + - + + + + + + + + + + + + + + + - + + + + + - - + + + + + + + + + + + + + - - - + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + - + + + + + + + + + + + + + + + + + + + - - - - - - + + - - - - - - - - - - - - - - + + + + + + + - - + + + - - + + - - - - - + + + + + - - + - + + + + - - + + + + + - - + + - + - - + + - + + - - + + + + - - - - + + + + + + + - - - - - + + + + + + + + + + @@ -10583,199 +12725,258 @@ - + + + + + + + + + + + + + + + + - - - + + + + + - + - + + + + + - - + + + + + - - - + + - - + + - - + + - - + + + + + - - + + + + + + + + + + + - + - - + + - + + - + - - + - - - - - - - - - - - - - - + + + - + - - + + - - - - + - - + + - - - + - - + + - - - + - - + - + - - - - + - + + - + - + - + - - + - - - - - - - - - - - + + + + + - - - - - - - - - - - - - - - - - - + + + + + + + - + - + - + + + - + - - - + + - - - + + - - - + + - - - - - - - + + + + + + + + + + + + + + + + + + - - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -10789,524 +12990,2622 @@ - - - + + + + + + + + + + + + + + + + + + + + + + + - - - - + - - + + - + - + - - - + - + - - - - + - - - - - - - - + + - - + - - + + - - - - + - + - - + - - + + - - - - + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + + + + + - - + + - - + + + + + + - - + + + + + + + + + + + + + - - + + + + + - - + + + + + + - - + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - + + + + - - - - - - + + - + - - + + + + + - - + + + + + + + + - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + + - - + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + - - + + - - + + + + + + + + + + + - + - - + + + + + + + + + + - - + + - - + + + + + + + + + + + + + + - + + + + - + - + - + + + + + + + + + + - - - + - - + + - - + - + + + + + + + + + + + + + - + + - + - - - - + - - - - + - - - - + + - + - + - - - - + - + - + - + + - + - + - + - + - + - + + + - + - + + + - + - - - + - + - + - + - - + + + - + - + - + - - - - - - - - - + + + + - - - - - - - - - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - + + - - - - - - + + - - - - - - + + - + + + + + + + + + + + - + - + - - + - + - + - - - + + + - - - - - + @@ -11320,176 +15619,206 @@ - + + + + + - - + + + + + - - + + - + - - - - - + + - - + + - - + + + - + + - - + + + - + + - - + + - + + + - + - + + + + + - - + + - + - + - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - + + + + + + + + + + + + + + + + + + - + - - - - - - + + - - + - - + + - + - - + + - - - + + - - - + + + - + + - - + + - - - + + + + + + - - - + + + + + + + - - - + + + + + + + + - + + - - + + + + + + + + + + + + - + - - + + - - - - - - - - - - + + + + - + + + + + + + + + + + + + + + + + + + + + + + + @@ -11502,251 +15831,250 @@ - - - - + - - - - - + + + + + - - + + - + + - + - - + + - - + + + + + + + + + + + - - - + - + + + + - - - - - + + + + + + + - + + + + + + + + + + - + + + + - + + + + + + - + - + - + - - - + + + + + - + - + + + + - - - - - - - + - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + + - - - - - + + - - + - + - - - - - - - - - - - - - - + - + - - - - - - - - - - - - - - - - - - - - - + + - - + - - + + - - + - + - - + - - - - - - - - - - - - - - + + - - + - - + + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - + - - - + + + - - + + + + + + + @@ -11759,89 +16087,132 @@ - - + + - + + + + + + + + + + + + + - - + + + + + + - + - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + + + + + + + - - - - - - + + - - - - - + - + - + - + - + - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + @@ -11854,246 +16225,187 @@ - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + - - - - - + + - + - + - - + + - + + + + + + + + - + - + - + - - - - - - - - + - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - + + + + - - + - + + + + - - + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + - - - - - + + + - + - - + + - + - - + + - - - - - + + + - + - - - + + + - + - - + + - + + - - + + + - + - - - - - - - - - - - - - - - + + + + + @@ -12106,140 +16418,95 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - + - + - - - - - - - - - - - - - - - - - - - + + - - + + + + + + + - - + + - - + + - - - - - + + - + + + + - + + + + + - + + - - + + + - - + - - + + - + - + - + + + + + + + - - - + + + + - + + + + + + @@ -12253,186 +16520,135 @@ - - - - - - - - - - - - + + - + - - + - - + + - - - + + - - + - - + + - - + - + - - - + - + - - - - - + - + + + + + + + + + + + + + + + + + + + + - + - - - - - - + + - - - - - - + + - - - - - - - - - - - - - - - - - + + - + + + + + + + - - - - - - - - + + - - - - - - + + - - - - - - + + - - - - - - + + - - - - - - - + + - - - - - - - - + + - + + + + + + + - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + @@ -12445,157 +16661,156 @@ - + + + + - - - - - + + - + - - + + - - - - - - - - - - + - + - - - - - - - - - - - - - - - - - - - + - - - - - - + - - - - - - + + + + + + - - - + + - - - - - - - - + + + + + + - - + + - - + - - - - + - + - + + + + + + + + + + + + + + + - - - - - + + - - - - - + + - - - - - + + + + + - + + - + - + + - + + + + - + + - + - + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + @@ -12608,89 +16823,187 @@ - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - + - - + + + + + + + + + - + - + - + - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + - - - + + + + + - - + + - + - + + + + + + + - + - + + + + + + + + - + + + + - + - + + + + - - - - - - + - + + + + + + + + + + + + + + + + + + + - - - - @@ -12704,503 +17017,343 @@ - - - - - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + + + + + + + - + + - - + + - + + + - + - + - - + + - + - - - - - + + - - + + + + + - + - - + + - + - - + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + - + - - - + + + + + + - + - - - - - - - + + + - + - - + + + + + - + - - - - + + + + + + + + + - + + + - - - + + + + + - - - - - - - - - - - - + + + - - + + - - + + + + + - - + + - - + + + + - + - + + + + - + + + + + - - - - - + + + + + + - - + + + + + - - + + + + + - + - + - + + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - + + - - + + + - + + - - + + - + + - + - + - + - + + - - - - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + - - - - - - + + - - + + - - + + - + + + + - + - - - - - - + - + - - - - - - + + - - - - - - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + - + - - + - - - - + - - + - + - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - @@ -13213,50 +17366,21 @@ - - + + - - + + - + - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - + + + + @@ -13266,97 +17390,16 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - + @@ -13384,504 +17427,644 @@ - - + + - - + - - + + - - - + - - + + + + + + - + + - - + + + + + + - - + + + + + + + + + - - + - + + + + + + + + + + + + + - - + + - + + - - + + + + + + + - - + + - + - - + + + + + - - + + - - + + + + + - - + + - + - - + + + + + - - + + + + + - + - - + + - + - - + + + + + - + + + + - + + - - + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - + + - - + + - - - - + - - + + + + - + + + + - + + + + + + + + + + + + - - + + - - + + - - + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + - + - + - - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - + - - - + + + + + + + - + - - - + + + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + - - + - - - - - - + + - - - - - + + - - - - - + + - - + + + + + + + + + + - - + - - + + - + + - + - + + - + - + - + - - + - - - - + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + - - + + - + + + - - + + - + + - - + + + + + + + + + + - + + + - - - + + + - + - - + + - + + + - - - - - - - - - - - - - - - - - + + - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - + + + - + - - - + + + - + - - - + + + + + + + + + + + + + - + - - + + - - - - - + + - - + + - + - - - - - + + - - + + - + - - - - - + - - - - - - - + + + + + + + + + + + + + + + + + + - - + - - + + + - - - + + - - + + - - + - + - - + - + - + - + - + - + - + - + - - + - + - - + - - + + - - + - + - - + - - - + + + + - + + + + + + + @@ -13894,219 +18077,172 @@ - - - - - - - - - - - - - - - - + - + - + - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + - + - - - + + - + + - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + - + + - - + + + + + + + + + + + - + - - + + - + - - - - - + + - + - + - + - + + + + + + + + + + + + + - - - + - + - - - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - - + - - - - - + + + + + - - + + + + + - + + + + + + + + + + - - - - - - + + + - - + - + @@ -14463,6 +18599,13 @@ + + + + + + + @@ -14658,6 +18801,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + @@ -14937,6 +19104,11 @@ + + + + + @@ -15141,6 +19313,9 @@ + + + @@ -15288,6 +19463,12 @@ + + + + + + @@ -15396,22 +19577,22 @@ - + - + - + - + - + @@ -15420,13 +19601,13 @@ - + - + @@ -15546,6 +19727,12 @@ + + + + + + @@ -15619,7 +19806,7 @@ - + @@ -15630,7 +19817,7 @@ - + @@ -15646,17 +19833,17 @@ - - + + + - @@ -15690,12 +19877,28 @@ + + + + + + + + + + + + + + + + @@ -15705,9 +19908,6 @@ - - - @@ -15723,7 +19923,7 @@ - + @@ -15797,7 +19997,7 @@ - + @@ -15939,13 +20139,13 @@ - + - + - + @@ -15953,7 +20153,7 @@ - + @@ -15962,14 +20162,14 @@ - + - + @@ -16065,9 +20265,9 @@ - + - + @@ -16260,6 +20460,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -16280,7 +20523,10 @@ + + + @@ -16324,6 +20570,9 @@ + + + @@ -16366,6 +20615,12 @@ + + + + + + @@ -16470,6 +20725,12 @@ + + + + + + @@ -16511,8 +20772,16 @@ + + + + + + + + @@ -16526,6 +20795,18 @@ + + + + + + + + + + + + @@ -16538,24 +20819,39 @@ - + + + + + + + + + + + + + + + + @@ -16566,6 +20862,12 @@ + + + + + + @@ -16584,12 +20886,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + @@ -16602,34 +20928,147 @@ - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + + - - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + @@ -16734,6 +21173,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -16748,6 +21270,7 @@ + @@ -16761,20 +21284,26 @@ - + - + - + + + + + + + @@ -16782,7 +21311,7 @@ - + @@ -16790,14 +21319,14 @@ - + - + @@ -16806,6 +21335,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -16838,7 +21471,7 @@ - + @@ -16861,7 +21494,7 @@ - + @@ -16977,6 +21610,7 @@ + @@ -17014,6 +21648,7 @@ + @@ -17119,36 +21754,233 @@ - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - + + - + + - - + - - - - + - + @@ -17172,6 +22004,7 @@ + @@ -17184,9 +22017,6 @@ - - - @@ -17314,7 +22144,7 @@ - + @@ -17322,78 +22152,78 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + @@ -17403,73 +22233,73 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -17898,18 +22728,6 @@ - - - - - - - - - - - - @@ -17922,61 +22740,13 @@ - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - @@ -17994,13 +22764,15 @@ - + + + @@ -18034,14 +22806,14 @@ - + - + @@ -18054,7 +22826,7 @@ - + @@ -18068,7 +22840,7 @@ - + @@ -18082,15 +22854,18 @@ - + - + + + + @@ -18108,6 +22883,9 @@ + + + @@ -18119,9 +22897,18 @@ + + + + + + + + + @@ -18160,20 +22947,20 @@ - + - + - + @@ -18183,14 +22970,14 @@ - + - + @@ -18199,10 +22986,10 @@ - + - + @@ -18227,7 +23014,7 @@ - + @@ -18245,7 +23032,7 @@ - + @@ -18253,30 +23040,48 @@ - + - + + + + + + + + + + + + + + + + + + + @@ -18289,13 +23094,19 @@ - + + + + + + + @@ -18305,7 +23116,7 @@ - + @@ -18320,18 +23131,19 @@ + - + - + - + @@ -18339,23 +23151,23 @@ - + - + - + - + @@ -18363,36 +23175,36 @@ - + - + - - + + - + - + @@ -18400,14 +23212,14 @@ - + - + @@ -18418,16 +23230,31 @@ + + - - + + + + + + + + + + + + + + + @@ -18443,18 +23270,16 @@ - - - - - - + + + + @@ -18465,6 +23290,12 @@ + + + + + + @@ -18500,7 +23331,7 @@ - + @@ -18514,7 +23345,7 @@ - + @@ -18524,78 +23355,78 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -18623,10 +23454,10 @@ - + - + @@ -19057,6 +23888,14 @@ + + + + + + + + @@ -19334,10 +24173,12 @@ - + + - + + @@ -19361,11 +24202,17 @@ + + - + + + + + @@ -19387,6 +24234,12 @@ + + + + + + @@ -19460,7 +24313,7 @@ - + @@ -19505,14 +24358,14 @@ + + + - - - @@ -19523,6 +24376,8 @@ + + @@ -19530,6 +24385,11 @@ + + + + + @@ -19585,7 +24445,7 @@ - + @@ -19604,6 +24464,26 @@ + + + + + + + + + + + + + + + + + + + + @@ -19619,15 +24499,6 @@ - - - - - - - - - @@ -19690,6 +24561,9 @@ + + + @@ -19716,8 +24590,14 @@ + + + + + + - + @@ -19725,7 +24605,7 @@ - + @@ -19762,6 +24642,9 @@ + + + @@ -19780,6 +24663,9 @@ + + + @@ -19843,6 +24729,9 @@ + + + @@ -19885,6 +24774,12 @@ + + + + + + @@ -19909,6 +24804,18 @@ + + + + + + + + + + + + @@ -19921,6 +24828,12 @@ + + + + + + @@ -19957,6 +24870,12 @@ + + + + + + @@ -19998,9 +24917,11 @@ - + + + - + @@ -20153,71 +25074,89 @@ - + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + @@ -20225,130 +25164,82 @@ - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - + + + - - - - - - - - - - - - - + + + + + + + + @@ -20378,16 +25269,16 @@ - + - + - + - + @@ -20395,19 +25286,19 @@ - + - + - + @@ -20525,7 +25416,7 @@ - + @@ -20577,10 +25468,16 @@ - + + + + + + + @@ -20707,7 +25604,7 @@ - + @@ -20756,6 +25653,7 @@ + @@ -20773,6 +25671,7 @@ + @@ -20787,7 +25686,7 @@ - + @@ -20802,7 +25701,7 @@ - + @@ -20831,7 +25730,7 @@ - + @@ -21012,6 +25911,8 @@ + + @@ -21267,6 +26168,16 @@ + + + + + + + + + + @@ -21277,11 +26188,12 @@ - - - - + + + + + @@ -21545,6 +26457,7 @@ + @@ -21911,6 +26824,18 @@ + + + + + + + + + + + + @@ -22134,6 +27059,9 @@ + + + @@ -22221,6 +27149,9 @@ + + + @@ -22241,7 +27172,7 @@ - + @@ -22392,6 +27323,12 @@ + + + + + + @@ -22417,7 +27354,7 @@ - + @@ -22524,7 +27461,7 @@ - + @@ -22615,6 +27552,7 @@ + @@ -22763,6 +27701,9 @@ + + + @@ -22988,7 +27929,7 @@ - + @@ -22999,14 +27940,21 @@ - + - + + + + + + + + @@ -23014,68 +27962,68 @@ - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + @@ -23086,10 +28034,10 @@ - + - + @@ -23100,10 +28048,10 @@ - + - + @@ -23181,7 +28129,7 @@ - + @@ -23203,24 +28151,24 @@ - + - + - + - + - + @@ -23232,10 +28180,10 @@ - + - + @@ -23245,10 +28193,10 @@ - + - + @@ -23331,16 +28279,17 @@ - - - - - + + + + + + - + @@ -23351,6 +28300,7 @@ + @@ -23367,18 +28317,22 @@ + + - - - - + + + + + + @@ -23458,7 +28412,7 @@ - + @@ -23519,6 +28473,12 @@ + + + + + + @@ -23781,6 +28741,23 @@ + + + + + + + + + + + + + + + + + @@ -23855,20 +28832,34 @@ - - - - + + + + + + + + - + + + + + - + + + + - + + + + @@ -23876,9 +28867,6 @@ - - - @@ -23915,6 +28903,14 @@ + + + + + + + + @@ -23933,6 +28929,23 @@ + + + + + + + + + + + + + + + + + @@ -23940,6 +28953,12 @@ + + + + + + @@ -23970,6 +28989,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -24024,9 +29087,25 @@ + + + + + + + + + + + + + + + + @@ -24060,13 +29139,19 @@ + + + + + + - + @@ -24093,12 +29178,24 @@ - + + + + + + + + + + + + + @@ -24120,15 +29217,27 @@ - + + + + + + + - + + + + + + + @@ -24138,6 +29247,9 @@ + + + @@ -24150,7 +29262,7 @@ - + @@ -24164,6 +29276,16 @@ + + + + + + + + + + @@ -24203,15 +29325,12 @@ - - - - - - - + + + + @@ -24228,7 +29347,7 @@ - + @@ -24243,6 +29362,13 @@ + + + + + + + @@ -24261,6 +29387,9 @@ + + + @@ -24297,6 +29426,9 @@ + + + @@ -24306,12 +29438,22 @@ + + + + + + + + + + @@ -24325,7 +29467,7 @@ - + @@ -24340,6 +29482,9 @@ + + + @@ -24349,6 +29494,9 @@ + + + @@ -24361,13 +29509,6 @@ - - - - - - - @@ -24375,13 +29516,6 @@ - - - - - - - @@ -24401,13 +29535,6 @@ - - - - - - - @@ -24415,34 +29542,34 @@ - + - + - + - + - + @@ -24457,10 +29584,13 @@ - + - + + + + @@ -24493,12 +29623,18 @@ - + + + + + + + @@ -24513,6 +29649,12 @@ + + + + + + @@ -24521,14 +29663,14 @@ - + - + @@ -24540,7 +29682,7 @@ - + @@ -24589,7 +29731,13 @@ - + + + + + + + @@ -24621,7 +29769,7 @@ - + @@ -24633,6 +29781,24 @@ + + + + + + + + + + + + + + + + + + @@ -24663,25 +29829,37 @@ - + + + + + + + + + + + + + - + - + - + - + @@ -24705,6 +29883,12 @@ + + + + + + @@ -24748,7 +29932,7 @@ - + @@ -24848,6 +30032,13 @@ + + + + + + + @@ -24903,6 +30094,12 @@ + + + + + + @@ -24943,10 +30140,10 @@ + - @@ -24959,8 +30156,10 @@ + + @@ -24977,8 +30176,11 @@ - + + + + @@ -24997,6 +30199,12 @@ + + + + + + @@ -25006,9 +30214,6 @@ - - - @@ -25056,18 +30261,31 @@ + + + + + + + + + + + + + @@ -25099,13 +30317,19 @@ + + + - + + + + @@ -25126,7 +30350,7 @@ - + @@ -25139,7 +30363,7 @@ - + @@ -25167,6 +30391,9 @@ + + + @@ -25194,6 +30421,9 @@ + + + @@ -25219,7 +30449,7 @@ - + @@ -25253,7 +30483,7 @@ - + @@ -25263,10 +30493,10 @@ - + - + @@ -25285,6 +30515,12 @@ + + + + + + @@ -25303,7 +30539,7 @@ - + @@ -25366,6 +30602,12 @@ + + + + + + @@ -25380,7 +30622,7 @@ - + @@ -25392,6 +30634,12 @@ + + + + + + @@ -25417,6 +30665,12 @@ + + + + + + @@ -25447,7 +30701,7 @@ - + @@ -25501,6 +30755,12 @@ + + + + + + @@ -25519,7 +30779,7 @@ - + @@ -25589,18 +30849,18 @@ - - + - + + + - @@ -25620,10 +30880,7 @@ - - - @@ -25726,6 +30983,18 @@ + + + + + + + + + + + + @@ -25742,14 +31011,133 @@ + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - @@ -25772,17 +31160,17 @@ - + - + - + @@ -25790,7 +31178,7 @@ - + @@ -25800,17 +31188,26 @@ - + - + - + + + + + + + + + + @@ -25820,6 +31217,8 @@ + + @@ -25829,115 +31228,82 @@ - - - - - - - - - - - - - - - - - - - - - - - - - + + + - + - + - - - - - - - + - - + + - - - - - - + + + - - + + - - - + + + + - - + + - - - - + + + - - - - - - - + - + + - + + + + - + - + - + - + - - + + - + @@ -25951,104 +31317,113 @@ - + - + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - + @@ -26065,21 +31440,78 @@ - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -26092,6 +31524,14 @@ + + + + + + + + @@ -26169,6 +31609,9 @@ + + + @@ -26183,6 +31626,18 @@ + + + + + + + + + + + + @@ -26206,6 +31661,9 @@ + + + @@ -26215,6 +31673,9 @@ + + + @@ -26248,6 +31709,7 @@ + @@ -26451,6 +31913,8 @@ + + @@ -26559,8 +32023,9 @@ - - + + + @@ -26568,62 +32033,76 @@ - + - + - + + + + + + + - - + - + - + - + - + - + - + - + + + + + + + - + - + + + + @@ -26745,6 +32224,11 @@ + + + + + @@ -26754,7 +32238,7 @@ - + @@ -26777,7 +32261,10 @@ - + + + + @@ -26801,7 +32288,8 @@ - + + @@ -26817,6 +32305,12 @@ + + + + + + @@ -26913,7 +32407,7 @@ - + @@ -27226,6 +32720,12 @@ + + + + + + @@ -27259,9 +32759,10 @@ + - + @@ -27346,6 +32847,12 @@ + + + + + + @@ -27428,20 +32935,26 @@ - - - - - - - + + + + + + + + + + + + + @@ -27473,7 +32986,7 @@ - + @@ -27481,26 +32994,50 @@ - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + @@ -27533,7 +33070,7 @@ - + @@ -27541,7 +33078,7 @@ - + @@ -27555,7 +33092,7 @@ - + @@ -27568,7 +33105,7 @@ - + @@ -27582,6 +33119,13 @@ + + + + + + + @@ -27589,6 +33133,13 @@ + + + + + + + @@ -27599,10 +33150,23 @@ + + + + + + + + + + + + + @@ -27610,10 +33174,10 @@ + - @@ -27623,22 +33187,18 @@ - - - - - - - + + + @@ -27666,6 +33226,15 @@ + + + + + + + + + @@ -27673,6 +33242,15 @@ + + + + + + + + + @@ -27681,6 +33259,15 @@ + + + + + + + + + @@ -27696,7 +33283,7 @@ - + @@ -27721,7 +33308,7 @@ - + @@ -27769,256 +33356,39 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - + + + + + + + + + + + + + + + + + - - - - - - - - - - + - - + + - - - - - - - - - - + - + @@ -28036,38 +33406,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -28080,19 +33419,9 @@ - - - - - - - - - - - - - + + + @@ -28143,6 +33472,15 @@ + + + + + + + + + @@ -28196,7 +33534,17 @@ - + + + + + + + + + + + @@ -28204,6 +33552,14 @@ + + + + + + + + @@ -28264,7 +33620,7 @@ - + @@ -28329,6 +33685,15 @@ + + + + + + + + + @@ -28347,7 +33712,7 @@ - + @@ -28406,6 +33771,13 @@ + + + + + + + @@ -28420,7 +33792,7 @@ - + @@ -28464,52 +33836,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -28551,14 +33877,14 @@ - + - + @@ -28588,7 +33914,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -28763,6 +34168,17 @@ + + + + + + + + + + + @@ -28844,7 +34260,17 @@ - + + + + + + + + + + + @@ -28852,6 +34278,28 @@ + + + + + + + + + + + + + + + + + + + + + + @@ -28957,31 +34405,31 @@ - + - + - + - + - + diff --git a/gtk/gtk-sharp-3.0.pc.in b/gtk/gtk-sharp-3.0.pc.in index cd217e1ec..a5ed3ca2c 100644 --- a/gtk/gtk-sharp-3.0.pc.in +++ b/gtk/gtk-sharp-3.0.pc.in @@ -7,6 +7,6 @@ gapidir=${prefix}/share/gapi-3.0 Name: Gtk# Description: Gtk# - GNOME .NET Binding Version: @VERSION@ -Cflags: -I:${gapidir}/pango-api.xml -I:${gapidir}/atk-api.xml -I:${gapidir}/gtk-api.xml +Cflags: -I:${gapidir}/cairo-api.xml -I:${gapidir}/pango-api.xml -I:${gapidir}/atk-api.xml -I:${gapidir}/gtk-api.xml Libs: -r:${libdir}/mono/@PACKAGE_VERSION@/cairo-sharp.dll -r:${libdir}/mono/@PACKAGE_VERSION@/pango-sharp.dll -r:${libdir}/mono/@PACKAGE_VERSION@/atk-sharp.dll -r:${libdir}/mono/@PACKAGE_VERSION@/gtk-sharp.dll Requires: glib-sharp-3.0 gio-sharp-3.0 gdk-sharp-3.0 diff --git a/gtk/gtk-symbols.xml b/gtk/gtk-symbols.xml index 74469611c..3a7a1f9e7 100644 --- a/gtk/gtk-symbols.xml +++ b/gtk/gtk-symbols.xml @@ -1,5 +1,7 @@ + + diff --git a/gtk/gtk.csproj b/gtk/gtk.csproj index 11bbc08eb..83b45c8bb 100644 --- a/gtk/gtk.csproj +++ b/gtk/gtk.csproj @@ -1,5 +1,5 @@ - + Debug x86 @@ -9,7 +9,8 @@ Library gtk gtk-sharp - v3.5 + v4.0 + true @@ -140,6 +141,7 @@ + @@ -147,7 +149,6 @@ - @@ -157,24 +158,29 @@ + + + + + + + - - + - - + @@ -182,23 +188,30 @@ + + - - - + + + + + + + + @@ -210,13 +223,14 @@ - + + @@ -243,10 +257,12 @@ - + + + @@ -260,17 +276,28 @@ + + + + + + + + + + + + - @@ -278,11 +305,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -291,11 +367,12 @@ - + + @@ -308,6 +385,8 @@ + + @@ -321,15 +400,19 @@ + + + - + + @@ -341,6 +424,9 @@ + + + @@ -361,19 +447,39 @@ - + + + + + - + + + + + + + + - + + + + + + + + + + @@ -387,10 +493,12 @@ + + @@ -408,15 +516,25 @@ + + + + + + + + + + - + @@ -425,6 +543,7 @@ + @@ -440,24 +559,51 @@ - - - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -472,55 +618,51 @@ - - - - - - - + + - + + - - - - - - - - - - - + + + + + + + + + + - - + + + @@ -531,19 +673,29 @@ + + + + + + + + + + @@ -556,11 +708,11 @@ - + @@ -569,10 +721,14 @@ + + + + @@ -586,16 +742,24 @@ + + + + + + + + @@ -606,7 +770,9 @@ + + @@ -614,9 +780,6 @@ - - - @@ -632,14 +795,18 @@ + + + + - + @@ -670,20 +837,19 @@ + - - - + @@ -692,6 +858,10 @@ + + + + @@ -699,21 +869,26 @@ + + - - - - + + + + + + + @@ -724,68 +899,72 @@ - - - - + - + - - - - - + + + + + + + - + + + + + - - + + + + - - + @@ -795,6 +974,7 @@ + @@ -810,10 +990,11 @@ - + + @@ -835,27 +1016,24 @@ + + - - - - + + - - - - + @@ -865,8 +1043,14 @@ + + + + + + @@ -911,31 +1095,40 @@ - - + - - - + + + + + + + + + + + + Properties\AssemblyInfo.cs + @@ -966,10 +1159,7 @@ pango - - - - + PreserveNewest diff --git a/gtk/meson.build b/gtk/meson.build new file mode 100644 index 000000000..5c0f5032d --- /dev/null +++ b/gtk/meson.build @@ -0,0 +1,154 @@ +snk = join_paths(meson.current_source_dir(), '..', 'gtk-sharp.snk') +pkg = 'gtk' +assembly_name = pkg + '-sharp' +symbols = join_paths(meson.current_source_dir(), pkg + '-symbols.xml') + +raw_api_fname = join_paths(meson.current_source_dir(), pkg + '-api.raw') +metadata_fname = join_paths(meson.current_source_dir(), 'Gtk.metadata') +glueincludes = 'gtk/gtk.h' +gluefile = join_paths(meson.current_build_dir(), 'generate.c') + +configure_file(input: assembly_name + '.dll.config.in', + output: assembly_name + '.dll.config', + configuration : remap_dl_data) + +configure_file(input: assembly_name + '-3.0.pc.in', + output: assembly_name + '-3.0.pc', + configuration : version_data, + install_dir: pkg_install_dir, + install: true) + +subdir('generated') + +sources = [ + 'Accel.cs', + 'AccelKey.cs', + 'Action.cs', + 'ActionEntry.cs', + 'ActionGroup.cs', + 'Adjustment.cs', + 'Application.cs', + 'ArrayExtensions.cs', + 'Bin.cs', + 'BindingAttribute.cs', + 'Builder.cs', + 'Button.cs', + 'Calendar.cs', + 'CellAreaBox.cs', + 'CellLayoutAdapter.cs', + 'CellRenderer.cs', + 'CellView.cs', + 'CheckMenuItem.cs', + 'ChildPropertyAttribute.cs', + 'Clipboard.cs', + 'ColorSelection.cs', + 'ComboBox.cs', + 'ComboBoxText.cs', + 'Container.cs', + 'Dialog.cs', + 'Drag.cs', + 'Entry.cs', + 'EntryCompletion.cs', + 'FileChooserDialog.cs', + 'FileChooserNative.cs', + 'Frame.cs', + 'Global.cs', + 'HBox.cs', + 'HScale.cs', + 'ICellLayout.cs', + 'IconFactory.cs', + 'IconSet.cs', + 'IconTheme.cs', + 'IconView.cs', + 'Image.cs', + 'ImageMenuItem.cs', + 'Init.cs', + 'ITreeModel.cs', + 'ITreeNode.cs', + 'Key.cs', + 'Label.cs', + 'ListStore.cs', + 'Menu.cs', + 'MenuItem.cs', + 'MessageDialog.cs', + 'NativeDialog.cs', + 'NodeCellDataFunc.cs', + 'NodeSelection.cs', + 'NodeStore.cs', + 'NodeView.cs', + 'Notebook.cs', + 'PaperSize.cs', + 'Plug.cs', + 'Printer.cs', + 'RadioAction.cs', + 'RadioActionEntry.cs', + 'RadioButton.cs', + 'RadioMenuItem.cs', + 'RadioToolButton.cs', + 'RecentManager.cs', + 'RowsReorderedHandler.cs', + 'ScrolledWindow.cs', + 'SelectionData.cs', + 'Settings.cs', + 'SpinButton.cs', + 'StatusIcon.cs', + 'Stock.cs', + 'StockItem.cs', + 'StockManager.cs', + 'Style.cs', + 'StyleContext.cs', + 'StyleProviderPriority.cs', + 'Target.cs', + 'TargetEntry.cs', + 'TargetList.cs', + 'TextAttributes.cs', + 'TextBuffer.cs', + 'TextChildAnchor.cs', + 'TextIter.cs', + 'TextMark.cs', + 'TextTag.cs', + 'TextView.cs', + 'ThreadNotify.cs', + 'ToggleActionEntry.cs', + 'TreeEnumerator.cs', + 'TreeIter.cs', + 'TreeMenu.cs', + 'TreeModelAdapter.cs', + 'TreeModelFilter.cs', + 'TreeModelSort.cs', + 'TreeNode.cs', + 'TreeNodeAttribute.cs', + 'TreeNodeValueAttribute.cs', + 'TreePath.cs', + 'TreeSelection.cs', + 'TreeStore.cs', + 'TreeView.cs', + 'TreeViewColumn.cs', + 'UIManager.cs', + 'VBox.cs', + 'Viewport.cs', + 'VScale.cs', + 'Widget.cs', + 'Window.cs', +] + +deps = [glib_sharp, pango_sharp, cairo_sharp, gio_sharp, atk_sharp, gdk_sharp] +gtk_sharp = library(assembly_name, source_gen, sources, + cs_args: ['-unsafe', '-keyfile:' + snk, '-nowarn:0618,0612,0169'], + link_with: deps, + install: true, + install_dir: lib_install_dir +) + +gluegen = custom_target('gtkgluegen', + input: raw_api_fname, + output: 'generate.c', + command: [generate_api, '--fakeglue'], + depends: [source_gen]) + +library('gtksharpglue-3', gluegen, + dependencies: [glib_dep, gio_dep, atk_dep, gdk_dep, gtk_dep], + install: true) + +install_infos += [assembly_name, gtk_sharp.full_path()] +gtk_sharp_dep = declare_dependency(link_with: deps + [gtk_sharp]) diff --git a/gtkdotnet/gtkdotnet.csproj b/gtkdotnet/gtkdotnet.csproj new file mode 100644 index 000000000..eccbd2196 --- /dev/null +++ b/gtkdotnet/gtkdotnet.csproj @@ -0,0 +1,71 @@ + + + + Debug + x86 + {CF2BE08F-9354-4CB6-8D49-05DFE1BBCF1F} + Library + Gtk.DotNet + gtk-dotnet + v4.0 + + + + true + full + false + bin\Debug + DEBUG; + prompt + 4 + false + true + + + full + true + bin\Release + prompt + 4 + false + true + + + + + + + + + + Properties\AssemblyInfo.cs + + + + + + {3BF1D531-8840-4F15-8066-A9788D8C398B} + glib + + + {1C3BB17B-336D-432A-8952-4E979BC90867} + gio + + + {364577DB-9728-4951-AC2C-EDF7A6FCC09D} + cairo + + + {FF422D8C-562F-4EA6-8590-9D1A5CD40AD4} + pango + + + {58346CC6-DE93-45B4-8093-3508BD5DAA12} + gdk + + + {94045F11-4266-40B4-910F-298985AF69D5} + gtk + + + diff --git a/meson.build b/meson.build new file mode 100644 index 000000000..73b9e223f --- /dev/null +++ b/meson.build @@ -0,0 +1,118 @@ +project('gtk-sharp', ['cs', 'c'], version: '3.22.6') + +if host_machine.system() == 'windows' + if h.get(0) == host_machine.cpu() + add_project_arguments('-define:WIN64LONGS', language: 'cs') + endif +endif + + +apiversion = '3.0.0.0' +mono_required_version = '>=3.2.0' +gtk_required_version='>=3.0.0' +glib_required_version='>=2.32.0' + +# FIXME Handle .net +mono = meson.get_compiler('cs') +if not mono.version().version_compare(mono_required_version) + error('Mono required version @0@ not found (@1@)'.format( + mono_required_version, mono.version())) +endif + +assemblyinfo='/AssemblyInfo.cs' + +gacutil = find_program('gacutil') +al = find_program('al') + +glib_dep = dependency('glib-2.0', version: glib_required_version) +gio_dep = dependency('gio-2.0', version: glib_required_version) +mono_runtime_dep = dependency('mono', required: false) + +# FIXME Check how to enabled debug flags (if at all needed). + +# TODO monodoc + +prefix = get_option('prefix') +assembly_data = configuration_data() +assembly_data.set_quoted('API_VERSION', apiversion) +configure_file(input: 'AssemblyInfo.cs.in', output: 'AssemblyInfo.cs', configuration : assembly_data) + +policy_config = files('policy.config.in') +runtime = '' +if get_option('buildtype') == 'debug' or get_option('buildtype') == 'debugoptimized' + runtime_debug_flags=' --debug' +endif +if mono_runtime_dep.found() + runtime = 'mono' + runtime_debug_flags +endif + +if host_machine.system() == 'osx' + lib_prefix='' + lib_suffix='.dylib' +else + lib_prefix='.so' + lib_suffix='' +endif + +remap_dl_data = configuration_data() +remap_dl_data.set('LIB_PREFIX', lib_prefix) +remap_dl_data.set('LIB_SUFFIX', lib_suffix) + +pkg_version = meson.project_name() + '-3.0' +version_data = configuration_data() +version_data.set('VERSION', meson.project_version()) +version_data.set('PACKAGE_VERSION', pkg_version) + +install_infos = [] +lib_install_dir = join_paths(get_option('libdir'), 'mono', pkg_version) +pkg_install_dir = join_paths(get_option('libdir'), 'pkgconfig') +gapi_xml_installdir = join_paths(get_option('datadir'), 'gapi-3.0') + +schema = join_paths(meson.current_source_dir(), 'gapi.xsd') +subdir('parser') +subdir('generator') +subdir('glib') +subdir('gio') + +cairo_dep = dependency('cairo', required: false) +if cairo_dep.found() + subdir('cairo') +else + message('Cairo not found, not building') +endif + +pango_dep = dependency('pango', required: false) +if pango_dep.found() + subdir('pango') +else + message('Pango not found, not building') +endif + +atk_dep = dependency('atk', required: false) +if atk_dep.found() + subdir('atk') +else + message('Atk not found, not building') +endif + +gdk_dep = dependency('gdk-3.0', version: gtk_required_version, required: false) +if gdk_dep.found() and atk_dep.found() and pango_dep.found() + subdir('gdk') + has_gdk = true +else + message('Gdk not found, not building') + has_gdk = false +endif + +gtk_dep = dependency('gtk+-3.0', version: gtk_required_version, required: false) +if gtk_dep.found() and atk_dep.found() and pango_dep.found() + subdir('gtk') + subdir('sample/GtkDemo') + has_gtk = true +else + has_gtk = false + message('Gtk not found, not building') +endif + +gacutil_install = join_paths(meson.current_source_dir(), 'gacutil_install.py') +meson.add_install_script(gacutil_install, install_infos) diff --git a/msi/Makefile.am b/msi/Makefile.am index bceda3229..11e80b622 100644 --- a/msi/Makefile.am +++ b/msi/Makefile.am @@ -26,5 +26,5 @@ gtk-sharp-3.0.msi: gtk-sharp-3.0.wxs mv binaries/libpangosharpglue-3.dll binaries/pangosharpglue-3.dll cp $(top_builddir)/sample/GtkDemo/GtkDemo.exe binaries - candle -ext WixUIExtension gtk-sharp-3.0.wxs - light -cultures:en-us -ext WixUIExtension -ext WixNetFxExtension -out gtk-sharp-$(VERSION).msi gtk-sharp-3.0.wixobj + $(WIX_CANDLE) -ext WixUIExtension gtk-sharp-3.0.wxs + $(WIX_LIGHT) -cultures:en-us -ext WixUIExtension -ext WixNetFxExtension -out gtk-sharp-$(VERSION).msi gtk-sharp-3.0.wixobj diff --git a/msi/unmanaged/Makefile.am b/msi/unmanaged/Makefile.am index 6afe677d9..433a97e5e 100644 --- a/msi/unmanaged/Makefile.am +++ b/msi/unmanaged/Makefile.am @@ -15,10 +15,10 @@ download-stamp: $(DOWNLOADS) touch download-stamp unmanaged.wixobj: unmanaged.wxs redirector.exe download-stamp - candle unmanaged.wxs + $(WIX_CANDLE) unmanaged.wxs unmanaged.msm: unmanaged.wixobj - light unmanaged.wixobj + $(WIX_LIGHT) unmanaged.wixobj bundle-scanner.exe: bundle-scanner.cs $(CSC) bundle-scanner.cs diff --git a/pango/Pango.metadata b/pango/Pango.metadata index 9948b62ee..60c4f2e03 100644 --- a/pango/Pango.metadata +++ b/pango/Pango.metadata @@ -40,7 +40,6 @@ 1 1 ref - 1 1 1 1 @@ -49,8 +48,10 @@ 1 ref 1 - 1 - 1 + 1 + 1 + 1 + 1 1 true 1 diff --git a/pango/generated/meson.build b/pango/generated/meson.build new file mode 100644 index 000000000..eb9801e55 --- /dev/null +++ b/pango/generated/meson.build @@ -0,0 +1,143 @@ +generated_sources = [ + 'Pango_Alignment.cs', + 'Pango_Variant.cs', + 'Pango_GlyphItem.cs', + 'Pango_Analysis.cs', + 'Pango_AttrDataCopyFunc.cs', + 'Pango_CoreTextFamily.cs', + 'Pango_Win32Family.cs', + 'Pango_Fontset.cs', + 'Pango_Gravity.cs', + 'Pango_CairoWin32FontClass.cs', + 'Pango_GlyphGeometry.cs', + 'Pango_FontMetrics.cs', + 'Pango_Markup.cs', + 'Pango_CoreTextFamilyClass.cs', + 'Pango_AttrIterator.cs', + 'Pango_Rectangle.cs', + 'Pango_Global.cs', + 'Pango_WrapMode.cs', + 'Pango_CoreTextFontset.cs', + 'Pango_BlockInfo.cs', + 'Pango_CairoRendererClass.cs', + 'Pango_CoreTextFaceClass.cs', + 'Pango_Color.cs', + 'Pango_GlyphInfo.cs', + 'Pango_FontsetForeachFunc.cs', + 'Pango_CoreTextFontMapClass.cs', + 'Pango_Win32FontMap.cs', + 'Pango_AttrList.cs', + 'Pango_CoreTextFontMap.cs', + 'Pango_FT2Font.cs', + 'Pango_CoverageLevel.cs', + 'Pango_WidthIter.cs', + 'Pango_EllipsizeState.cs', + 'Pango_CairoFcFontMapClass.cs', + 'Pango_LineState.cs', + 'Pango_RenderPart.cs', + 'Pango_Weight.cs', + 'Pango_FontHashKey.cs', + 'Pango_Style.cs', + 'Pango_Script.cs', + 'Pango_Units.cs', + 'Pango_Language.cs', + 'Pango_CoreTextFontsetClass.cs', + 'Pango_PangoSharp.AttrDataCopyFuncNative.cs', + 'Pango_GlyphVisAttr.cs', + 'Pango_GravityHint.cs', + 'Pango_FT2GlyphInfo.cs', + 'Pango_LogAttr.cs', + 'Pango_CairoFcFont.cs', + 'Pango_Win32FontMapClass.cs', + 'Pango_OTRulesetClass.cs', + 'Pango_Win32MetricsInfo.cs', + 'Pango_Win32Font.cs', + 'Pango_GlyphItemIter.cs', + 'Pango_FontFamily.cs', + 'Pango_PangoSharp.FontsetForeachFuncNative.cs', + 'Pango_FT2Renderer.cs', + 'Pango_Win32FontClass.cs', + 'Pango_GlyphString.cs', + 'Pango_CacheEntry.cs', + 'Pango_CairoWin32Font.cs', + 'Pango_Extents.cs', + 'Pango_CoreTextFontsetKey.cs', + 'Pango_LineIter.cs', + 'Pango_TabAlign.cs', + 'Pango_Underline.cs', + 'Pango_OpenTag.cs', + 'Pango_EngineShape.cs', + 'Pango_CairoHelper.cs', + 'Pango_FontDescription.cs', + 'Pango_FT2RendererClass.cs', + 'Pango_CairoFcFontClass.cs', + 'Pango_RunInfo.cs', + 'Pango_EllipsizeMode.cs', + 'Pango_Stretch.cs', + 'Pango_FontMask.cs', + 'Pango_Matrix.cs', + 'Pango_LayoutLine.cs', + 'Pango_ItemProperties.cs', + 'Pango_FT2Family.cs', + 'Pango_FT2FontClass.cs', + 'Pango_AttrType.cs', + 'Pango_Context.cs', + 'Pango_Win32GlyphInfo.cs', + 'Pango_CoreTextFace.cs', + 'Pango_TabArray.cs', + 'Pango_AttrFontFeatures.cs', + 'Pango_LayoutRun.cs', + 'Pango_ParaBreakState.cs', + 'Pango_Renderer.cs', + 'Pango_MarkupData.cs', + 'Pango_Item.cs', + 'Pango_CoreTextFontKey.cs', + 'Pango_CoreTextFont.cs', + 'Pango_EngineLang.cs', + 'Pango_CairoContextInfo.cs', + 'Pango_CairoWin32FontMapClass.cs', + 'Pango_OTInfoClass.cs', + 'Pango_Point.cs', + 'Pango_ParenStackEntry.cs', + 'Pango_LayoutIter.cs', + 'Pango_Direction.cs', + 'Pango_Font.cs', + 'Pango_FontMap.cs', + 'Pango_BidiType.cs', + 'Pango_ItemizeState.cs', + 'Pango_Win32Face.cs', + 'Pango_Tab.cs', + 'Pango_Coverage.cs', + 'Pango_Layout.cs', + 'Pango_FontFace.cs', +] + +source_gen = custom_target('pango_generated', + command: [ + generate_api, + '--api-raw', raw_api_fname, + '--gapi-fixup', gapi_fixup.full_path(), + '--metadata', metadata_fname, + '--gapi-codegen', gapi_codegen.full_path(), + '--extra-includes', glib_api_includes, + '--extra-includes', cairo_api_includes, + '--glue-file', gluefile, + '--glue-includes', glueincludes, + '--out', meson.current_build_dir(), + '--files', ';'.join(generated_sources), + '--assembly-name', assembly_name, + '--schema', schema, + ], + depends: [gapi_codegen, gapi_fixup], + input: raw_api_fname, + output: generated_sources, +) + +api_xml = custom_target(pkg + '_api_xml', + input: raw_api_fname, + output: pkg + '-api.xml', + command: [generate_api, '--fakeglue'], + depends: [source_gen], + install: true, + install_dir: gapi_xml_installdir) +pango_api_includes = join_paths(meson.current_build_dir(), pkg + '-api.xml') diff --git a/pango/meson.build b/pango/meson.build new file mode 100644 index 000000000..f36eacfac --- /dev/null +++ b/pango/meson.build @@ -0,0 +1,81 @@ +snk = join_paths(meson.current_source_dir(), '..', 'gtk-sharp.snk') +pkg = 'pango' +assembly_name = pkg + '-sharp' +glueincludes = 'pango/pango.h' +raw_api_fname = join_paths(meson.current_source_dir(), pkg + '-api.raw') +metadata_fname = join_paths(meson.current_source_dir(), 'Pango.metadata') +gluefile = join_paths(meson.current_build_dir(), 'generate.c') + +configure_file(input: assembly_name + '.dll.config.in', + output: assembly_name + '.dll.config', + configuration : remap_dl_data) + +subdir('generated') + +sources = [ + 'Analysis.cs', + 'AttrBackground.cs', + 'AttrColor.cs', + 'AttrFallback.cs', + 'AttrFamily.cs', + 'AttrFloat.cs', + 'AttrFontDesc.cs', + 'AttrForeground.cs', + 'AttrGravity.cs', + 'AttrGravityHint.cs', + 'Attribute.cs', + 'AttrInt.cs', + 'AttrIterator.cs', + 'AttrLanguage.cs', + 'AttrLetterSpacing.cs', + 'AttrList.cs', + 'AttrRise.cs', + 'AttrScale.cs', + 'AttrShape.cs', + 'AttrSize.cs', + 'AttrStretch.cs', + 'AttrStrikethrough.cs', + 'AttrStrikethroughColor.cs', + 'AttrStyle.cs', + 'AttrUnderline.cs', + 'AttrUnderlineColor.cs', + 'AttrVariant.cs', + 'AttrWeight.cs', + 'Context.cs', + 'Coverage.cs', + 'FontFamily.cs', + 'FontMap.cs', + 'Global.cs', + 'GlyphItem.cs', + 'GlyphString.cs', + 'Item.cs', + 'Layout.cs', + 'LayoutLine.cs', + 'LayoutRun.cs', + 'Matrix.cs', + 'Scale.cs', + 'ScriptIter.cs', + 'TabArray.cs', + 'Units.cs', +] + +deps = [glib_sharp, cairo_sharp] +pango_sharp = library(assembly_name, source_gen, sources, + cs_args: ['-unsafe', '-keyfile:' + snk], + link_with: deps, + install: true, + install_dir: lib_install_dir +) + +gluegen = custom_target('pangogluegen', + input: raw_api_fname, + output: 'generate.c', + command: [generate_api, '--fakeglue'], + depends: [source_gen]) + +library('pangosharpglue-3', gluegen, + dependencies: [glib_dep, gio_dep, pango_dep], + install: true) + +install_infos += [assembly_name, pango_sharp.full_path()] +pango_sharp_dep = declare_dependency(link_with: deps + [pango_sharp]) diff --git a/pango/pango-api.raw b/pango/pango-api.raw index 6475877ce..872ad00ee 100644 --- a/pango/pango-api.raw +++ b/pango/pango-api.raw @@ -36,6 +36,9 @@ + + + @@ -186,6 +189,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -221,6 +263,7 @@ + @@ -238,14 +281,14 @@ - + - + @@ -269,21 +312,18 @@ - + - + - - - - - + + @@ -311,11 +351,32 @@ + + + + + + + + + + + + + + + + + + + + + @@ -347,6 +408,9 @@ + + + @@ -414,6 +478,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + @@ -523,9 +611,15 @@ + + + + + + @@ -556,12 +650,6 @@ - - - - - - @@ -607,6 +695,9 @@ + + + @@ -671,6 +762,12 @@ + + + + + + @@ -685,6 +782,9 @@ + + + @@ -1063,6 +1163,12 @@ + + + + + + @@ -1087,6 +1193,13 @@ + + + + + + + @@ -1105,7 +1218,6 @@ - @@ -1161,6 +1273,15 @@ + + + + + + + + + @@ -1326,7 +1447,6 @@ - @@ -1358,6 +1478,16 @@ + + + + + + + + + + @@ -1404,32 +1534,9 @@ - - - - - - - - - - - - - - - - - - - - - - - - + @@ -2007,7 +2114,6 @@ - @@ -2030,6 +2136,13 @@ + + + + + + + @@ -2080,10 +2193,7 @@ - - - @@ -2098,8 +2208,8 @@ - - + + @@ -2113,7 +2223,6 @@ - @@ -2249,6 +2358,12 @@ + + + + + + @@ -2269,6 +2384,12 @@ + + + + + + @@ -2413,13 +2534,6 @@ - - - - - - - @@ -2467,7 +2581,7 @@ - + @@ -2528,7 +2642,7 @@ - + @@ -2541,21 +2655,21 @@ - + - + - + @@ -2574,19 +2688,30 @@ - + + + + + + + + + + + + - + - + @@ -2741,6 +2866,24 @@ + + + + + + + + + + + + + + + + + + diff --git a/pango/pango.csproj b/pango/pango.csproj index 2e6e52d31..61f9856ce 100644 --- a/pango/pango.csproj +++ b/pango/pango.csproj @@ -1,5 +1,5 @@ - + Debug x86 @@ -9,7 +9,8 @@ Library pango pango-sharp - v3.5 + v4.0 + true @@ -89,7 +90,6 @@ - @@ -102,6 +102,17 @@ + + + + + + + + + + + @@ -111,6 +122,12 @@ + + + + + + @@ -121,12 +138,6 @@ - - - - - - @@ -137,8 +148,8 @@ - + @@ -148,14 +159,14 @@ + - - + @@ -164,8 +175,8 @@ - + @@ -188,6 +199,9 @@ + + Properties\AssemblyInfo.cs + @@ -199,13 +213,10 @@ cairo - - - - + PreserveNewest - \ No newline at end of file + diff --git a/parser/gapi2xml.pl b/parser/gapi2xml.pl index e41a00621..36a47fb50 100755 --- a/parser/gapi2xml.pl +++ b/parser/gapi2xml.pl @@ -987,7 +987,6 @@ sub addPropElem } else { $name =~ s/\s*\"//g; } - $mode = $params[$#params]; if ($type =~ /boolean|float|double|^u?int|pointer|unichar/) { @@ -1183,11 +1182,11 @@ sub parseInitFunc } } if ($pspec_use) { - addPropElem2 ($prop.$pspec, $obj_el, 0); + # addPropElem2 ($prop.$pspec, $obj_el, 0); } else { addPropElem ($prop, $obj_el, 0); + $propcnt++; } - $propcnt++; } elsif ($line =~ /gtk_container_class_install_child_property/) { my $prop = $line; do { @@ -1208,9 +1207,12 @@ sub parseInitFunc do { $pspec .= $init_lines[++$linenum]; } until ($init_lines[$linenum] =~ /\)\s*;/); + addPropElem2 ($pspec, $obj_el, 0); + $propcnt++; } $linenum++; } + return @signal_vms; } diff --git a/parser/gapi_pp.pl b/parser/gapi_pp.pl index faafc9832..3ddfefcd6 100755 --- a/parser/gapi_pp.pl +++ b/parser/gapi_pp.pl @@ -26,7 +26,7 @@ $private_regex = '^#if.*(ENABLE_BACKEND|ENABLE_ENGINE)'; $eatit_regex = '^#if(.*(__cplusplus|DEBUG|DISABLE_COMPAT|ENABLE_BROKEN)|\s+0\s*$)'; -$ignoreit_regex = '^\s+\*|#ident|#error|#\s*include|#\s*else|#\s*undef|G_(BEGIN|END)_DECLS|GDKVAR|GTKVAR|GTKMAIN_C_VAR|GTKTYPEUTILS_VAR|VARIABLE|GTKTYPEBUILTIN|G_GNUC_INTERNAL'; +$ignoreit_regex = '^\s+\*|#ident|#error|#\s*include|#\s*import|#\s*else|#\s*undef|G_(BEGIN|END)_DECLS|ATK_VAR|GDK_PIXBUF_VAR|GDKVAR|GTKVAR|GTKMAIN_C_VAR|GTKTYPEUTILS_VAR|VARIABLE|GTKTYPEBUILTIN|G_GNUC_INTERNAL'; foreach $arg (@ARGV) { if (-d $arg && -e $arg) { @@ -74,6 +74,8 @@ print $def; } elsif ($line =~ /#\s*define\s+\w+\s*\(\s*\w+_get_type\s*\(\)\)/) { print $line; + } elsif ($line =~ /#\s*define\s+(\w+\s*)\(\(.*\)(".*")\)/) { + print "#define $1 $2\n"; } elsif ($line =~ /#\s*define\s+\w+\s*\D+/) { $def = $line; while ($line =~ /\\\n/) {$def .= ($line = );} @@ -178,7 +180,21 @@ } else { if ($braces or $line =~ /;|\/\*/) { if ($deprecated == -1) { - print $line; + if ($line =~ /^\w*_AVAILABLE_IN_\w*/) { + $line =~ s/^\w*_AVAILABLE_IN_\w*//g; + $line =~ s/^\s+//; + print $line; + } elsif ($line =~ /^\w*_DEPRECATED_IN_[\w()]*/) { + $line =~ s/^\w*_DEPRECATED_IN_[\w()]*//g; + $line =~ s/^\s+//; + print "deprecated$line"; + } elsif ($line =~ /^\w*_DEPRECATED/) { + $line =~ s/^\w*_DEPRECATED//g; + $line =~ s/^\s+//; + print "deprecated$line"; + } else { + print $line; + } } else { print "deprecated$line"; } diff --git a/parser/meson.build b/parser/meson.build new file mode 100644 index 000000000..547cf6283 --- /dev/null +++ b/parser/meson.build @@ -0,0 +1,26 @@ +gapi_installdir = join_paths(get_option('libdir'), 'gapi-3.0') +pkg_install_dir = '@0@/pkgconfig'.format(get_option('libdir')) + +gapi_parser = executable('gapi-parser', 'gapi-parser.cs', + install_dir : gapi_installdir, + install: true) + +gapi_parser_data = configuration_data() +gapi_parser_data.set('prefix', prefix) +gapi_parser_data.set('RUNTIME', runtime) + +configure_file(input: 'gapi3-parser.in', + output: 'gapi3-parser', + configuration : gapi_parser_data, + install_dir: get_option('bindir'), + install: true) + +pkg_gapi_parser_data = configuration_data() +pkg_gapi_parser_data .set('VERSION', meson.project_version()) +configure_file(input: 'gapi-3.0.pc.in', + output: 'gapi-3.0.pc', + configuration : pkg_gapi_parser_data, + install_dir: pkg_install_dir, + install: true) + +install_data('gapi_pp.pl', 'gapi2xml.pl', install_dir: gapi_installdir) diff --git a/sample/CustomScrollableWidget.cs b/sample/CustomScrollableWidget.cs index a06e03c18..efd887de7 100644 --- a/sample/CustomScrollableWidget.cs +++ b/sample/CustomScrollableWidget.cs @@ -54,7 +54,7 @@ public DerivedScrollableWidget (string label) : base (label) { } } -class CustomScrollableWidget : CustomBase, IScrollableImplementor { +class CustomScrollableWidget : CustomBase, IScrollable { private int num_rows = 20; private string label; private Pango.Layout layout; @@ -203,15 +203,20 @@ private void UpdateAdjustments () } } - private void OnHadjustmentChanged (object o, EventArgs args) + private void OnHadjustmentChanged (object o, System.EventArgs args) { UpdateAdjustments (); QueueDraw (); } - private void OnVadjustmentChanged (object o, EventArgs args) + private void OnVadjustmentChanged (object o, System.EventArgs args) { UpdateAdjustments (); QueueDraw (); } + + public bool GetBorder(Gtk.Border border) + { + return false; + } } diff --git a/sample/GtkDemo/DemoHyperText.cs b/sample/GtkDemo/DemoHyperText.cs index 8e91e033d..c323ec1f0 100644 --- a/sample/GtkDemo/DemoHyperText.cs +++ b/sample/GtkDemo/DemoHyperText.cs @@ -111,7 +111,8 @@ void FollowIfLink (TextView view, TextIter iter) void SetCursorIfAppropriate (TextView view, int x, int y) { bool hovering = false; - TextIter iter = view.GetIterAtLocation (x, y); + TextIter iter; + view.GetIterAtLocation (out iter, x, y); foreach (TextTag tag in iter.Tags) { hovering = true; @@ -166,7 +167,7 @@ void EventAfter (object sender, WidgetEventAfterArgs args) return; view.WindowToBufferCoords (TextWindowType.Widget, (int) evt.X, (int) evt.Y, out x, out y); - iter = view.GetIterAtLocation (x, y); + view.GetIterAtLocation (out iter, x, y); FollowIfLink (view, iter); } diff --git a/sample/GtkDemo/DemoTreeStore.cs b/sample/GtkDemo/DemoTreeStore.cs index 3b9a0fd08..d06cb4c11 100644 --- a/sample/GtkDemo/DemoTreeStore.cs +++ b/sample/GtkDemo/DemoTreeStore.cs @@ -46,13 +46,13 @@ public DemoTreeStore () : base ("Card planning sheet") sw.Add (treeView); // expand all rows after the treeview widget has been realized - treeView.Realized += new EventHandler (ExpandRows); + treeView.Realized += new System.EventHandler (ExpandRows); SetDefaultSize (650, 400); ShowAll (); } - private void ExpandRows (object obj, EventArgs args) + private void ExpandRows (object obj, System.EventArgs args) { TreeView treeView = obj as TreeView; diff --git a/sample/GtkDemo/Makefile.am b/sample/GtkDemo/Makefile.am index 0b162eae7..f17e120c0 100644 --- a/sample/GtkDemo/Makefile.am +++ b/sample/GtkDemo/Makefile.am @@ -21,7 +21,6 @@ sources = \ DemoButtonBox.cs \ DemoClipboard.cs \ DemoColorSelection.cs \ - DemoCssBasics.cs \ DemoDialog.cs \ DemoDrawingArea.cs \ DemoEditableCells.cs \ diff --git a/sample/GtkDemo/meson.build b/sample/GtkDemo/meson.build new file mode 100644 index 000000000..21b6ff222 --- /dev/null +++ b/sample/GtkDemo/meson.build @@ -0,0 +1,54 @@ +resource_flags = [] + +foreach rid: [ + ['css/css_basics.css', 'css_basics.css'], + ['css/reset.css', 'reset.css'], + ['images/gnome-foot.png', 'gnome-foot.png'], + ['images/MonoIcon.png', 'MonoIcon.png'], + ['images/gnome-calendar.png', 'gnome-calendar.png'], + ['images/gnome-gmush.png', 'gnome-gmush.png'], + ['images/gnu-keys.png', 'gnu-keys.png'], + ['images/gnome-applets.png', 'gnome-applets.png'], + ['images/gnome-gsame.png', 'gnome-gsame.png'], + ['images/alphatest.png', 'alphatest.png'], + ['images/gnome-gimp.png', 'gnome-gimp.png'], + ['images/apple-red.png', 'apple-red.png'], + ['images/background.jpg', 'background.jpg'], + ['images/gtk-logo-rgb.gif', 'gtk-logo-rgb.gif'], + ['images/floppybuddy.gif', 'floppybuddy.gif'], + ['theming.ui', 'theming.ui'],] + resource_flags += ['-resource:' + join_paths(meson.current_source_dir(), rid.get(0)) + ',' + rid.get(1)] +endforeach + +executable('GtkDemo', + 'DemoApplicationWindow.cs', + 'DemoAttribute.cs', + 'DemoButtonBox.cs', + 'DemoClipboard.cs', + 'DemoColorSelection.cs', + 'DemoDialog.cs', + 'DemoDrawingArea.cs', + 'DemoEditableCells.cs', + 'DemoEntryCompletion.cs', + 'DemoExpander.cs', + 'DemoHyperText.cs', + 'DemoIconView.cs', + 'DemoImages.cs', + 'DemoListStore.cs', + 'DemoMain.cs', + 'DemoMenus.cs', + 'DemoPanes.cs', + 'DemoPixbuf.cs', + 'DemoRotatedText.cs', + 'DemoSizeGroup.cs', + 'DemoSpinner.cs', + 'DemoStockBrowser.cs', + 'DemoTextView.cs', + 'DemoThemingStyleClasses.cs', + 'DemoTreeStore.cs', + 'DemoUIManager.cs', + 'DemoPrinting.cs', + link_with: [glib_sharp, gio_sharp, cairo_sharp, pango_sharp, + atk_sharp, gdk_sharp, gtk_sharp], + cs_args: resource_flags +) diff --git a/sample/gtk-gio/MountOperation.cs b/sample/gtk-gio/MountOperation.cs index f21416ee9..1d337cb97 100644 --- a/sample/gtk-gio/MountOperation.cs +++ b/sample/gtk-gio/MountOperation.cs @@ -46,14 +46,14 @@ static void Main () Window w = new Window ("test"); operation = new Gtk.MountOperation (w); Button b = new Button ("Mount"); - b.Clicked += new EventHandler (HandleButtonClicked); + b.Clicked += new System.EventHandler (HandleButtonClicked); b.Show (); w.Add (b); w.Show (); Gtk.Application.Run (); } - static void HandleButtonClicked (object sender, EventArgs args) + static void HandleButtonClicked (object sender, System.EventArgs args) { System.Console.WriteLine ("clicked"); file.MountEnclosingVolume (0, operation, null, new GLib.AsyncReadyCallback (HandleMountFinished)); diff --git a/sample/sample.csproj b/sample/sample.csproj index a2c17919f..a6c91b410 100644 --- a/sample/sample.csproj +++ b/sample/sample.csproj @@ -1,5 +1,5 @@ - + Debug x86 @@ -9,7 +9,8 @@ Exe sample sample - v3.5 + v4.0 + true @@ -50,7 +51,6 @@ - @@ -83,15 +83,6 @@ - - - - - - - - - @@ -108,11 +99,20 @@ - + + + + + + + + + + @@ -123,6 +123,7 @@ + @@ -154,4 +155,7 @@ gtk + + + \ No newline at end of file diff --git a/sources/Generating-Sources.md b/sources/Generating-Sources.md new file mode 100644 index 000000000..708a1972d --- /dev/null +++ b/sources/Generating-Sources.md @@ -0,0 +1,112 @@ +# Generating Sources + +## Overview + +This is a quick overview of some of the commands to run when updating the sources for a new gtk version + +### Linux + +You may need to install the following package for generating the source under Linux +``` +sudo apt-get install libxml-libxml-perl +``` + +### Windows + +So far I've only managed to get this working in ubuntu, not Windows due to the way the .net app launches the perl script via libc +i.e. [DllImport ("libc")] + +It looks like we need to use the 32bit version of MinGW if we do try it this way. +The following path statements are needed in the console at the very least +``` +PATH=$PATH:/c/Program\ Files\ \(x86\)/Microsoft\ SDKs/Windows/v10.0A/bin/NETFX\ 4.6\ Tools/ +PATH=$PATH:/c/Windows/Microsoft.NET/Framework/v4.0.30319/ +``` + +Also the parser can be rebuilt via +``` +./autogen.sh --prefix=/tmp/install +cd parser +make clean +make +``` + +Also it's important to make sure MSYS2 is uptodate with +``` +pacman -Syuu +``` + +To search for a package that's been install (to see what version it is for example) +``` +pacman -Ss gtk3 +``` + + +## Editing Files for Downloaded Source + +### Configure.ac version number + +First change the version number in configure.ac to match that of the gtk version we're moving to +``` +AC_INIT(gtk-sharp, 3.22.1) +``` + +### Sources/Makefile.am + +Next change the version number in sources/Makefile.am to match +``` +TARGET_GTK_VERSION=3.22.1 +TARGET_GTK_API=3.22 +``` + +Next update the orher url's in Makefile.am, the version numbers should match those in use on the system (such as MSYS2) +``` +GTK_DOWNLOADS = \ + http://ftp.gnome.org/pub/GNOME/sources/glib/2.50/glib-2.50.0.tar.xz \ + http://ftp.gnome.org/pub/GNOME/sources/pango/1.40/pango-1.40.3.tar.xz \ + http://ftp.gnome.org/pub/GNOME/sources/atk/2.22/atk-2.22.0.tar.xz \ + http://ftp.gnome.org/pub/GNOME/sources/gdk-pixbuf/2.36/gdk-pixbuf-2.36.0.tar.xz \ + http://ftp.gnome.org/pub/GNOME/sources/gtk+/$(TARGET_GTK_API)/gtk+-$(TARGET_GTK_VERSION).tar.xz +``` + +### Patches + +As part of the source code download, some of the files will be patched +so you need to look at and check that all the patches apply correctly to the downloaded source when running make get-source-code + + +## Download the sources + +Next we're going to download the source +``` +./autogen.sh --prefix=/tmp/install +cd sources +make get-source-code +``` + +At this stage the sources should now be extracted within the sources sub directory + +### Update sources.xml + +One last file to update is the sources/sources.xml file +all directories in this file need to match the extracted directories + +## Generate the API Code + +### Generate the XML Files + +Next to generate the xml files needed for the generation of code +``` +make api +``` + +This should result in the following files + + * gdk/gdk-api.raw + * gio/gio-api.raw + * gtk/gtk-api.raw + * pango/pango-api.raw + +### Generate the API Code from the XML Files + +TODO we need to use generator/gapi_codegen.exe on each of the xml files to generate the .cs code within the generated sub directories diff --git a/sources/Makefile.am b/sources/Makefile.am index d2051468e..67e998577 100644 --- a/sources/Makefile.am +++ b/sources/Makefile.am @@ -3,24 +3,26 @@ EXTRA_DIST = \ sources.xml \ gtk_tree_model_signal_fix.patch -TARGET_GTK_VERSION=3.0.0 +TARGET_GTK_VERSION=3.22.6 +TARGET_GTK_API=3.22 GTK_DOWNLOADS = \ - http://ftp.gnome.org/pub/GNOME/sources/glib/2.28/glib-2.28.0.tar.bz2 \ - http://ftp.gnome.org/pub/GNOME/sources/pango/1.28/pango-1.28.3.tar.bz2 \ - http://ftp.gnome.org/pub/GNOME/sources/atk/1.32/atk-1.32.0.tar.bz2 \ - http://ftp.gnome.org/pub/GNOME/sources/gdk-pixbuf/2.22/gdk-pixbuf-2.22.1.tar.bz2 \ - http://ftp.gnome.org/pub/GNOME/sources/gtk+/3.0/gtk+-$(TARGET_GTK_VERSION).tar.bz2 + http://ftp.gnome.org/pub/GNOME/sources/glib/2.50/glib-2.50.2.tar.xz \ + http://ftp.gnome.org/pub/GNOME/sources/pango/1.40/pango-1.40.3.tar.xz \ + http://ftp.gnome.org/pub/GNOME/sources/atk/2.22/atk-2.22.0.tar.xz \ + http://ftp.gnome.org/pub/GNOME/sources/gdk-pixbuf/2.36/gdk-pixbuf-2.36.2.tar.xz \ + http://ftp.gnome.org/pub/GNOME/sources/gtk+/$(TARGET_GTK_API)/gtk+-$(TARGET_GTK_VERSION).tar.xz api: PATH=../parser:$$PATH $(RUNTIME) ../parser/gapi-parser.exe sources.xml get-source-code: for i in $(GTK_DOWNLOADS); do \ - wget $$i --output-document=- | tar -xj ; \ + wget $$i --output-document=- | tar -xJ ; \ done; ln -f -s gtkfilechooserprivate.h gtk+-$(TARGET_GTK_VERSION)/gtk/gtkfilechooserpriv.h - patch -p0 gtk+-$(TARGET_GTK_VERSION)/gtk/gtktreemodel.c < gtk_tree_model_signal_fix.patch + patch -p1 -d gtk+-$(TARGET_GTK_VERSION) < patches/gtk_tree_model_signal_fix.patch echo "typedef struct _GtkClipboard GtkClipboard;" >> gtk+-$(TARGET_GTK_VERSION)/gtk/gtkclipboard.h echo "typedef struct _GtkClipboardClass GtkClipboardClass;" >> gtk+-$(TARGET_GTK_VERSION)/gtk/gtkclipboard.h - + patch -p0 gtk+-$(TARGET_GTK_VERSION)/gtk/gtktextattributes.h < patches/gtktextattributes-gi-scanner.patch + patch -p0 glib-2.50.2/gio/gwin32registrykey.h < patches/gwin32registrykey-little-endian.patch diff --git a/sources/gtk_tree_model_signal_fix.patch b/sources/patches/gtk_tree_model_signal_fix.patch similarity index 80% rename from sources/gtk_tree_model_signal_fix.patch rename to sources/patches/gtk_tree_model_signal_fix.patch index be9c74eee..31ec6a014 100644 --- a/sources/gtk_tree_model_signal_fix.patch +++ b/sources/patches/gtk_tree_model_signal_fix.patch @@ -1,6 +1,7 @@ ---- gtk+-2.14.3/gtk/gtktreemodel.c 2009-01-04 11:52:01.000000000 -0600 -+++ gtktreemodel.c 2009-01-04 12:03:58.000000000 -0600 -@@ -193,14 +193,15 @@ +diff -Naur gtk+-3.22.1.orig/gtk/gtktreemodel.c gtk+-3.22.1/gtk/gtktreemodel.c +--- gtk+-3.22.1.orig/gtk/gtktreemodel.c 2016-08-29 18:20:43.000000000 +0100 ++++ gtk+-3.22.1/gtk/gtktreemodel.c 2016-10-17 13:57:41.204889300 +0100 +@@ -395,14 +395,15 @@ closure = g_closure_new_simple (sizeof (GClosure), NULL); g_closure_set_marshal (closure, row_inserted_marshal); tree_model_signals[ROW_INSERTED] = @@ -19,7 +20,7 @@ /** * GtkTreeModel::row-has-child-toggled: -@@ -242,14 +243,14 @@ +@@ -441,14 +442,14 @@ closure = g_closure_new_simple (sizeof (GClosure), NULL); g_closure_set_marshal (closure, row_deleted_marshal); tree_model_signals[ROW_DELETED] = @@ -30,14 +31,14 @@ - closure, + G_STRUCT_OFFSET (GtkTreeModelIface, row_deleted), NULL, NULL, - _gtk_marshal_VOID__BOXED, + NULL, G_TYPE_NONE, 1, - row_deleted_params); + GTK_TYPE_TREE_PATH); /** - * GtkTreeModel::rows-reordered: -@@ -268,14 +269,15 @@ + * GtkTreeModel::rows-reordered: (skip) +@@ -471,14 +472,15 @@ closure = g_closure_new_simple (sizeof (GClosure), NULL); g_closure_set_marshal (closure, rows_reordered_marshal); tree_model_signals[ROWS_REORDERED] = @@ -51,8 +52,8 @@ _gtk_marshal_VOID__BOXED_BOXED_POINTER, G_TYPE_NONE, 3, - rows_reordered_params); -+ GTK_TYPE_TREE_PATH | G_SIGNAL_TYPE_STATIC_SCOPE, -+ GTK_TYPE_TREE_ITER, G_TYPE_POINTER); ++ GTK_TYPE_TREE_PATH | G_SIGNAL_TYPE_STATIC_SCOPE, ++ GTK_TYPE_TREE_ITER, G_TYPE_POINTER); initialized = TRUE; } } diff --git a/sources/patches/gtktextattributes-gi-scanner.patch b/sources/patches/gtktextattributes-gi-scanner.patch new file mode 100644 index 000000000..f44707fce --- /dev/null +++ b/sources/patches/gtktextattributes-gi-scanner.patch @@ -0,0 +1,53 @@ +--- gtk+-3.18.2.orig/gtk/gtktextattributes.h 2015-11-09 13:28:27.852084380 +0100 ++++ gtk+-3.18.2/gtk/gtktextattributes.h 2015-11-09 13:29:14.424084380 +0100 +@@ -112,26 +112,7 @@ + guint inside_selection : 1; + guint is_text : 1; + +- /* For the sad story of this bit of code, see +- * https://bugzilla.gnome.org/show_bug.cgi?id=711158 +- */ +-#ifdef __GI_SCANNER__ +- /* The scanner should only see the transparent union, so that its +- * content does not vary across architectures. +- */ +- union { +- GdkRGBA *rgba[2]; +- /*< private >*/ +- guint padding[4]; +- }; +-#else + GdkRGBA *rgba[2]; +-#if (defined(__SIZEOF_INT__) && defined(__SIZEOF_POINTER__)) && (__SIZEOF_INT__ == __SIZEOF_POINTER__) +- /* unusable, just for ABI compat */ +- /*< private >*/ +- guint padding[2]; +-#endif +-#endif + }; + + /** +@@ -207,23 +188,7 @@ + /*< public >*/ + gint letter_spacing; + +-#ifdef __GI_SCANNER__ +- /* The scanner should only see the transparent union, so that its +- * content does not vary across architectures. +- */ +- union { +- gchar *font_features; +- /*< private >*/ +- guint padding[2]; +- }; +-#else + gchar *font_features; +-#if (defined(__SIZEOF_INT__) && defined(__SIZEOF_POINTER__)) && (__SIZEOF_INT__ == __SIZEOF_POINTER__) +- /* unusable, just for ABI compat */ +- /*< private >*/ +- guint padding[1]; +-#endif +-#endif + }; + + GDK_AVAILABLE_IN_ALL diff --git a/sources/patches/gwin32registrykey-little-endian.patch b/sources/patches/gwin32registrykey-little-endian.patch new file mode 100644 index 000000000..5d5f1a1ff --- /dev/null +++ b/sources/patches/gwin32registrykey-little-endian.patch @@ -0,0 +1,24 @@ +diff -Nur glib-2.50.2.orig/gio/gwin32registrykey.h glib-2.50.2/gio/gwin32registrykey.h +--- glib-2.50.2.orig/gio/gwin32registrykey.h 2016-10-22 07:18:19.000000000 +0200 ++++ glib-2.50.2/gio/gwin32registrykey.h 2017-01-20 10:00:20.512880131 +0100 +@@ -37,18 +37,12 @@ + G_WIN32_REGISTRY_VALUE_BINARY = 1, + G_WIN32_REGISTRY_VALUE_UINT32LE = 2, + G_WIN32_REGISTRY_VALUE_UINT32BE = 3, +-#if G_BYTE_ORDER == G_BIG_ENDIAN +- G_WIN32_REGISTRY_VALUE_UINT32 = G_WIN32_REGISTRY_VALUE_UINT32BE, +-#else +- G_WIN32_REGISTRY_VALUE_UINT32 = G_WIN32_REGISTRY_VALUE_UINT32LE, +-#endif ++ G_WIN32_REGISTRY_VALUE_UINT32 = 2, + G_WIN32_REGISTRY_VALUE_EXPAND_STR = 4, + G_WIN32_REGISTRY_VALUE_LINK = 5, + G_WIN32_REGISTRY_VALUE_MULTI_STR = 6, + G_WIN32_REGISTRY_VALUE_UINT64LE = 7, +-#if G_BYTE_ORDER == G_LITTLE_ENDIAN +- G_WIN32_REGISTRY_VALUE_UINT64 = G_WIN32_REGISTRY_VALUE_UINT64LE, +-#endif ++ G_WIN32_REGISTRY_VALUE_UINT64 = 7, + G_WIN32_REGISTRY_VALUE_STR = 8 + } GWin32RegistryValueType; + diff --git a/sources/sources.xml b/sources/sources.xml index 67d3151c6..20c27dd15 100644 --- a/sources/sources.xml +++ b/sources/sources.xml @@ -2,7 +2,7 @@ - + gasynchelper.h gcontenttypeprivate.h gdelayedsettingsbackend.h @@ -35,6 +35,57 @@ gwin32outputstream.h gwin32resolver.h gwin32volumemonitor.h + gdesktopappinfo.h + gdesktopappinfo.c + gdbusactiongroup.h + gdbusdaemon.h + gdbusobject.h + gdbusaddress.h + gdbuserror.h + gdbusobjectmanagerclient.h + gdbusauth.h + gdbusinterface.h + gdbusobjectmanager.h + gdbusauthmechanismanon.h + gdbusinterfaceskeleton.h + gdbusobjectmanagerserver.h + gdbusauthmechanismexternal.h + gdbusintrospection.h + gdbusobjectproxy.h + gdbusauthmechanism.h + gdbusmenumodel.h + gdbusobjectskeleton.h + gdbusauthmechanismsha1.h + gdbusmessage.h + gdbusprivate.h + gdbusauthobserver.h + gdbusmethodinvocation.h + gdbusproxy.h + gdbusconnection.h + gdbusnameowning.h + gdbusserver.h + gdbus-daemon-generated.h + gdbusnamewatching.h + gdbusutils.h + gpollableoutputstream.h + gsocket.h + gpollableinputstream.h + gnetworkmonitor.h + gnetworkmonitorbase.h + gremoteactiongroup.h + gapplicationimpl.h + gresourcefile.h + gsettingsschema.h + gsettingsschema-internal.h + gtlsfiledatabase.h + gdtlsclientconnection.c + gdtlsclientconnection.h + gdtlsconnection.c + gdtlsconnection.h + gdtlsserverconnection.c + gdtlsserverconnection.h + xdp-dbus.c + xdp-dbus.h @@ -42,14 +93,14 @@ - atk-1.32.0/atk + atk-2.22.0/atk - + pangoatsui.c pangoatsui.h pangoatsui-fontmap.h @@ -91,16 +142,17 @@ - + gdkalias.h gdkwindowimpl.h keyname-table.h + - + io-gdip-native.h io-gdip-propertytags.h io-gdip-utils.h @@ -115,7 +167,7 @@ - + gtkalias.h gtkappchooseronline.h @@ -183,7 +235,6 @@ gtkwindow-decorate.h gtkxembed.h xembed.h - gtkclist.c gtkclist.h gtkctree.c @@ -208,7 +259,13 @@ gtktree.h gtktreeitem.c gtktreeitem.h + gtkcellarea.c + gtklockbutton.h + gtksearchenginemodel.h + gtkcomposetable.c + gtkcomposetable.h +