summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMirco Bauer <meebey@meebey.net>2012-11-05 06:56:55 +0100
committerMirco Bauer <meebey@meebey.net>2012-11-05 06:56:55 +0100
commitddd3cd07e76a5b7e1632e2d17f81849a5d1c15d4 (patch)
treefe2ff46cf5ebc5054f0e54879631bf4a4398dc9d
parent7ccade3b3d18045b82d955e6844ee30e71dd5ef2 (diff)
Imported Upstream version 2.99.1~git20121105.135e4cd
-rw-r--r--AUTHORS103
-rw-r--r--ChangeLog13928
-rwxr-xr-xHACKING15
-rw-r--r--Makefile.am1
-rw-r--r--Makefile.in20
-rw-r--r--NEWS51
-rw-r--r--README57
-rw-r--r--TODO7
-rw-r--r--aclocal.m419
-rw-r--r--atk/Makefile.in10
-rw-r--r--atk/glue/Makefile.in10
-rw-r--r--cairo/Makefile.in10
-rwxr-xr-xconfigure450
-rw-r--r--configure.ac21
-rw-r--r--doc/Makefile.in10
-rw-r--r--gdk/Display.cs13
-rw-r--r--gdk/Global.cs5
-rw-r--r--gdk/Makefile.in10
-rw-r--r--gdk/Window.cs40
-rw-r--r--generator/AliasGen.cs60
-rw-r--r--generator/ArrayParameter.cs166
-rw-r--r--generator/BoxedGen.cs166
-rw-r--r--generator/ByRefGen.cs126
-rw-r--r--generator/ChildProperty.cs90
-rw-r--r--generator/ClassBase.cs64
-rw-r--r--generator/ClassGen.cs186
-rw-r--r--generator/CodeGenerator.cs242
-rw-r--r--generator/ConstFilenameGen.cs104
-rw-r--r--generator/ConstStringGen.cs108
-rw-r--r--generator/Ctor.cs329
-rw-r--r--generator/EnumGen.cs266
-rw-r--r--generator/FieldBase.cs4
-rw-r--r--generator/GenBase.cs220
-rw-r--r--generator/GenerationInfo.cs334
-rw-r--r--generator/IGeneratable.cs114
-rw-r--r--generator/IManualMarshaler.cs64
-rw-r--r--generator/InterfaceGen.cs726
-rw-r--r--generator/LPGen.cs116
-rw-r--r--generator/LPUGen.cs116
-rw-r--r--generator/Makefile.am5
-rw-r--r--generator/Makefile.in15
-rw-r--r--generator/ManagedCallString.cs41
-rw-r--r--generator/ManualGen.cs116
-rw-r--r--generator/Method.cs672
-rw-r--r--generator/MethodBase.cs366
-rw-r--r--generator/MethodBody.cs360
-rw-r--r--generator/ObjectBase.cs26
-rw-r--r--generator/ObjectField.cs2
-rw-r--r--generator/ObjectGen.cs843
-rw-r--r--generator/OpaqueGen.cs471
-rw-r--r--generator/OwnableGen.cs102
-rw-r--r--generator/Parameter.cs380
-rw-r--r--generator/Parameters.cs1032
-rw-r--r--generator/Parser.cs383
-rw-r--r--generator/Property.cs387
-rw-r--r--generator/PropertyBase.cs4
-rw-r--r--generator/ReturnValue.cs383
-rw-r--r--generator/Signal.cs660
-rw-r--r--generator/Signature.cs246
-rw-r--r--generator/SimpleBase.cs198
-rw-r--r--generator/SimpleGen.cs62
-rw-r--r--generator/Statistics.cs394
-rw-r--r--generator/StructBase.cs9
-rw-r--r--generator/StructField.cs1
-rw-r--r--generator/StructGen.cs104
-rw-r--r--generator/SymbolTable.cs777
-rw-r--r--generator/VMSignature.cs182
-rw-r--r--generator/XmlElementExtensions.cs20
-rw-r--r--gio/FileEnumerator.cs33
-rw-r--r--gio/Gio.metadata1
-rw-r--r--gio/Makefile.in10
-rw-r--r--gio/glue/Makefile.in10
-rwxr-xr-xglib/GType.cs18
-rw-r--r--glib/Makefile.in10
-rw-r--r--glib/Marshaller.cs5
-rw-r--r--glib/Object.cs48
-rw-r--r--glib/ValueArray.cs3
-rw-r--r--gtk/Container.cs28
-rw-r--r--gtk/Gtk.metadata3
-rw-r--r--gtk/IconTheme.cs6
-rw-r--r--gtk/Image.cs14
-rw-r--r--gtk/ListStore.cs2
-rw-r--r--gtk/Makefile.am2
-rw-r--r--gtk/Makefile.in12
-rw-r--r--gtk/NodeStore.cs7
-rw-r--r--gtk/Widget.cs32
-rw-r--r--gtk/glue/Makefile.in10
-rw-r--r--gtk/glue/container.c15
-rw-r--r--gtk/gui-thread-check/COPYING674
-rw-r--r--gtk/gui-thread-check/Makefile.am3
-rw-r--r--gtk/gui-thread-check/Makefile.in614
-rw-r--r--gtk/gui-thread-check/profiler/Makefile.am8
-rw-r--r--gtk/gui-thread-check/profiler/Makefile.in588
-rw-r--r--gtk/gui-thread-check/profiler/gui-thread-check.c93
-rw-r--r--gtkdotnet/Makefile.in10
-rw-r--r--pango/Makefile.in10
-rw-r--r--pango/glue/Makefile.in10
-rw-r--r--parser/Makefile.in10
-rw-r--r--sample/Actions.cs6
-rw-r--r--sample/GtkDemo/DemoEditableCells.cs10
-rw-r--r--sample/GtkDemo/DemoHyperText.cs15
-rw-r--r--sample/GtkDemo/DemoMain.cs8
-rw-r--r--sample/GtkDemo/DemoPanes.cs8
-rw-r--r--sample/GtkDemo/Makefile.in10
-rw-r--r--sample/Makefile.in10
-rw-r--r--sample/PolarFixed.cs6
-rw-r--r--sample/gio/Makefile.in10
-rw-r--r--sample/gtk-gio/Makefile.in10
-rw-r--r--sample/opaquetest/Makefile.in10
-rw-r--r--sample/pixmaps/Makefile.in10
-rw-r--r--sample/test/Makefile.in10
-rw-r--r--sample/valtest/Makefile.in10
-rw-r--r--sources/Makefile.in10
-rw-r--r--sources/README105
-rw-r--r--sources/sources.xml69
115 files changed, 8753 insertions, 20475 deletions
diff --git a/AUTHORS b/AUTHORS
index 3fd653b..65fc4b3 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -1,24 +1,95 @@
-Mike Kestner <mkestner@ximian.com>
+Maintainers:
+ Mike Kestner
-Documentation:
-
- psonek2@seznam.cz
+Contributors:
+ Aaron Bockover
+ Age Bosma
+ Alejandro Sánchez Acosta
+ Alex Launi
+ Alexandre Gomes
+ Alp Toker
+ Andrés G. Aragoneses
+ Atsushi Eno
+ Ben Maurer
+ Ben Motmans
+ Bertrand Lorentz
+ Bob Smith
+ Brad Taylor
+ Cameron White
+ Carlos Martín Nieto
+ Charles Iliya Krempeaux
+ Chris Turchin
+ Christian Hergert
+ Christian Hoff
+ Dan Winship
+ Daniel Kornhauser Eisenberg
+ Daniel Morgan
Duncan Mak
+ Eric Butler
+ Erik Dasque
+ Ettore Perazzoli
+ Fawad Halim
+ Gabriel Burt
+ Gonzalo Paniagua Javier
+ Hector E. Gomez Morales
+ Iain McCoy
+ Jaime Anguiano Olarra
+ Jamin Philip Gray
+ Jasper van Putten
+ Jeffrey Stedfast
+ Jeroen Zwartepoorte
+ Joe Shaw
+ Johannes Roith
+ John Luke
+ Jordi Mas i Hernandez
+ Joshua Tauberer
+ Juli Mallett
+ Kevin Breit
+ Kristian Rietveld
+ Larry Ewing
+ Lee Mallabone
+ Lluis Sanchez
+ Marek Habersack
+ Mark Crichton
+ Mark Probst
+ Marques Johansson
+ Martin Baulig
+ Martin Willemoes Hansen
+ Michael Hutchinson
Miguel de Icaza
- John Luke <john.luke@gmail.com>
- Marques Johansson <marques@displague.com>
- Iain McCoy <iain@mccoy.id.au>
- eric@extremeboredom.net (Eric Butler)
- Jamin Philip Gray <jamin@pubcrawler.org>
- chris@turchin.net (Chris Turchin)
- jaspervp@gmx.net (Jasper van Putten)
- wizito@gentelibre.org ( Néstor Salceda)
+ Mike Gorse
+ Mike Kestner
+ Mirco Bauer
+ Néstor Salceda
+ Olivier Dufour
+ Owen Fraser-Green
+ Paolo Molaro
+ Pedro Martínez Juliá
+ Pete Johanson
+ Peter Williams
+ Rachel Hestilow
+ Radek Doulik
+ Raja R Harinath
+ Ricardo Fernández Pascual
+ Robert McQueen
+ Rodrigo Moya
+ Shane Landrum
+ Stephan Sundermann
+ Stephane Delcroix
+ Tambet Ingo
+ Todd Berman
+ Urs C. Muff
+ Vladimir Vukicevic
+ Wade Berrier
+ Zac Bowling
+ Zoltan Varga
+ bis0n@mail.ru
cmorgan@alum.wpi.edu
- hris@protactin.co.uk
ddollar@blueshiftdesign.com
- bis0n@mail.ru
fsjrb@uaf.edu
+ hris@protactin.co.uk
joe@fatnsoft.com
+ petr
pixelpapst@users.sourceforge.net
- alexmipego@hotmail.com
- wizito@gentelibre.org
+ psonek2@seznam.cz
+ \ No newline at end of file
diff --git a/ChangeLog b/ChangeLog
deleted file mode 100644
index 8fb193b..0000000
--- a/ChangeLog
+++ /dev/null
@@ -1,13928 +0,0 @@
-2010-05-10 Mike Kestner <mkestner@novell.com>
-
- * gtk/Gtk.metadata: mark Widget.CreatePangoLayout retval as owned.
- [Fixes #604050]
-
-2010-03-25 Mike Kestner <mkestner@novell.com>
-
- * gdk/Rectangle.custom: off-by-one in Right/Bottom. [Fixes #591148]
-
-2009-12-28 Mike Kestner <mkestner@novell.com>
-
- * glib/glue/Makefile.am: fix a copy/paste issue.
- * pango/glue/Makefile.am: move glue lib to -3 like the others.
- [Fixes #561148]
-
-2009-11-30 Mike Kestner <mkestner@novell.com>
-
- * */Makefile.am: standardize on - options over / options for
- consistency. Also assists with build on msys. [Fixes #550667]
-
-2009-11-30 Mike Kestner <mkestner@novell.com>
-
- * gtk/Widget.custom: add Path method overload. [Fixes #521360]
-
-2009-11-30 Mike Kestner <mkestner@novell.com>
-
- * generator/Method.cs: support win32_utf8_variant attribute on methods.
- * glib/*.cs: support win32 utf8 variant methods.
- * gtk/*.custom: support win32 utf8 variant methods.
- * gtk/Gtk.metadata: mark some win32_utf8_variant methods.
- [Fixes #550961] Adapted from a patch by Tor Lillqvist.
-
-2009-11-28 Mike Kestner <mkestner@novell.com>
-
- * glib/GException.cs: add Code and Domain props to expose the GError
- fields to interested users. [Fixes #555675]
-
-2009-11-23 Christian Hoff <christian_hoff@gmx.net>
-
- * generator/Signal.cs: Return a GInterfaceAdapter in the signalargs's
- accessor properties instead of trying to return the implementor as stored in
- the arguments array.
-
-2009-11-01 Mike Kestner <mkestner@novell.com>
-
- * glib/Value.cs: avoid cast exceptions passing ints as objects on
- gulong values. [Fixes #539812]
-
-2009-10-30 Mike Kestner <mkestner@novell.com>
-
- * glib/GType.cs: avoid another exception on bogus assm.Locations.
- [Fixes #546045]
-
-2009-09-24 Christian Hoff <christian_hoff@gmx.net>
-
- * gtk/Widget.custom: Use Glib.Value's GType.Long support.
-
-2009-09-23 Mike Kestner <mkestner@novell.com>
-
- * glib/Value.cs: support long and ulong gtypes. still can't construct
- generically, but can cast to long/ulong and access via Val prop.
- [Fixes #539812]
-
-2009-09-23 Mike Kestner <mkestner@novell.com>
-
- * generator/ReturnValue.cs: support metadata override of default return
- values. Based on a patch from Sebastian Dröge. [Fixes #541299]
-
-2009-09-22 Brad Taylor <brad@getcoded.net>
-
- * glib/Idle.cs:
- * glib/Timeout.cs: Don't try to remove the handler from the managed
- hashtable twice, add a comment explaining the need for the else branch.
-
-2009-09-22 Brad Taylor <brad@getcoded.net>
-
- * glib/Idle.cs:
- * glib/Timeout.cs: Make sure to remove the unmanaged reference to the
- delegate when we're disposed or finalized. In particular, this fixes a
- problem where GLib.Object's PerformQueuedUnrefs was being called after
- both the object and the handler had been GC'ed, resulting in a
- segfault.
-
-2009-09-16 Mike Kestner <mkestner@novell.com>
-
- * gtk/Gtk.metadata: hide StatusIcon.GetGeometry for custom impl.
- * gtk/StatusIcon.custom: custom GetGeometry implementation to avoid
- marshaling exceptions on win32. [Fixes #518169]
-
-2009-09-11 Mike Kestner <mkestner@novell.com>
-
- * glib/Object.cs: add support for native instantiation of
- managed types.
- * glib/ParamSpec.cs: add Flags ctor overload.
- * sample/NativeInstantiationTest.cs: new sample to test the
- unmanaged instantiation capability.
- Based on a patch from Sebastian Dröge [Fixes #499900]
-
-2009-09-11 Christian Hoff <christian_hoff@gmx.net>
-
- * gtk/Application.cs: Port the theming-relevant part of the
- SWF.Application.DoEvents code to avoid loading the assembly
- at runtime on the Windows platform.
-
-2009-09-03 Christian Hoff <christian_hoff@gmx.net>
-
- * glib/Global.cs: Kill the calling convention field again.
- It breaks GLib 2.x compatibility in the generator and there is
- probably no need to make the calling convention configurable.
- * .cs, *.custom: Hardcode Cdecl calling convention instead of
- using GLib's field.
-
-2009-09-02 Christian Hoff <christian_hoff@gmx.net>
-
- * glib/Global.cs: Add a public constant field specifying the
- calling convention used by GLib and depending libraries.
- By now it's hardcoded to Cdecl as every non-Win32 runtime
- should ignore this attribute.
- * *.cs, *.custom: Use GLib.Global.CallingConvention for both
- pinvokes and callbacks. Plugs a stack leak on Win32. All
- pinvokes defaulted to StdCall and thus the stack was never
- cleaned up.
-
-2009-08-30 Christian Hoff <christian_hoff@gmx.net>
-
- Complete the major version jump. Gtk# 3 and 2 are now both
- installable within the same prefix.
-
- * */glue/Makefile.am: Produce *sharpglue-3 gluelibs.
- * *.custom, *.cs: pinvoke the new glue library.
- * *-2.0.pc.in: Rename to *-3.0.pc.in.
-
-2009-08-30 Christian Hoff <christian_hoff@gmx.net>
-
- * gtk/Object.custom: Deglue the floating reference API.
- We should consider moving all that stuff to GInitiallyUnowned
- as Gtk+ did several releases ago.
-
-2009-08-30 Christian Hoff <christian_hoff@gmx.net>
-
- * gtk/StatusIcon.custom: Use managed code to pass the address of
- gtk_status_icon_position_menu to gtk_menu_popup.
-
-2009-08-19 Christian Hoff <christian_hoff@gmx.net>
-
- * generator/*.cs: Add the "partial" keyword to each generated class,
- struct and interface.
-
-2009-08-19 Christian Hoff <christian_hoff@gmx.net>
-
- * glib/MainContext.cs: Add API to create new MainContexts. Add a few
- missing methods.
- * glib/MainLoop.cs: Allow creating MainLoops in non-default MainContexts.
- [Fixes #526232]
-
-2009-08-18 Christian Hoff <christian_hoff@gmx.net>
-
- * sample/GtkDemo/Makefile.am: Resurrect local Mono.Cairo build.
-
-2009-08-13 Christian Hoff <christian_hoff@gmx.net>
-
- * gtk/Widget.custom: Set the activate/set_scroll_adjustments signal IDs
- from managed code. Use the gtk_widget_get_window accessor.
- * gtk/glue/widget.c: Remove the corresponding glue functions.
-
-2009-08-13 Christian Hoff <christian_hoff@gmx.net>
-
- * generator/IGeneratable.cs: Remove MarshalReturnType, ToNativeReturnType,
- FromNativeReturn and ToNativeReturn as they never returned something else
- than MarshalType, FromNative/AllocNative and CallByName, respectively.
- * generator/Signal.cs: Use AllocNative for IManualMarshalers.
-
-2009-08-12 Christian Hoff <christian_hoff@gmx.net>
-
- * configure.in.in: Detect GDK backend.
- * */*.dll.config.in: Link against the libs of the correct GDK backend
- instead of using x11 on Linux/win32 on Windows.
- Patch by Christian Hergert. [Fixes 527840]
-
-2009-08-07 Mike Kestner <mkestner@novell.com>
-
- * configure.in.in: add new dir and autofu for it.
- * Makefile.am: add new dir
- * gapi/*: a small extension method library to add generation-related
- api to GType in 2.0. Access it with -pkg:gapi-2.0-compat to pick up
- the needed refs.
- * generator/GObjectVM.cs: generate new GType getter methods.
- * generator/ObjectGen.cs: generate new GType getter methods.
- * glib/GType.cs: change a few props to methods to make them extension
- method friendly for 2.0 compat.
- * glib/Object.cs: use new GType getter methods.
- * glib/Value.cs: use new GType getter methods.
- * gtk/Widget.custom: use new GetClassPtr method.
-
-2009-08-07 Mike Kestner <mkestner@novell.com>
-
- * generator/ObjectGen.cs: kill GType ctor generation.
- * glib/InitiallyUnowned.cs: kill obsolete GType ctor.
- * glib/Object.cs: kill obsolete GType ctor.
- * gtk/Gtk.metadata: kill disable_gtype_ctor rules.
- * gtk/Widget.cs: kill obsolete GType ctor.
-
-2009-08-07 Mike Kestner <mkestner@novell.com>
-
- * glib/Log.cs: rework the LogFunc marshaling and add SetDefaultHandler
- binding to override all domains easily. [Fixes #517857]
-
-2009-08-07 Christian Hoff <christian_hoff@gmx.net>
-
- * gtk/glue/clipboard.c: Kill as it is not used any more.
-
-2009-08-07 Christian Hoff <christian_hoff@gmx.net>
-
- * gtk/SelectionData.custom: Use gtk_selection_data_get_data instead
- of a glue func to access the data field.
-
-2009-08-05 Christian Hoff <christian_hoff@gmx.net>
-
- * sample/CustomcellRenderer.cs: Use GObject property registration
- instead of a CellDataFunc.
-
-2009-08-05 Christian Hoff <christian_hoff@gmx.net>
-
- * generator/InterfaceGen: Override CallByName to handle interface
- adaptors properly. [Fixes #527478]
-
-2009-08-01 Mike Kestner <mkestner@novell.com>
-
- * glib/GType.cs: lock the types hash to support threaded access and
- type registration. Apparently gtype access/registration is threadsafe
- in glib. [Fixes #526229]
-
-2009-07-30 Mike Kestner <mkestner@novell.com>
-
- * generator/InterfaceGen.cs: remove var keyword usage to fix build on
- .Net 2.0. fix a couple mixed line endings as well.
-
-2009-07-27 Mike Gorse <mgorse@novell.com>
-
- * atk/Atk.metadata: Remove owned for Relation.GetTarget.
-
-2009-07-26 Mike Kestner <mkestner@novell.com>
-
- * bootstrap-for-the-insane: update the assembly versions and package
- version and kill the policies. Give a little more helpful message of
- doom.
-
-2009-07-24 Christian Hoff <christian_hoff@gmx.net>
-
- * parser/Makefile.am: Another build fix. Sigh...
-
-2009-07-24 Christian Hoff <christian_hoff@gmx.net>
-
- * generator/gapi3-codegen.in, parser/gapi3-fixup.in, parser/gapi3-parser.in:
- "svn add" a few missing files to resurrect the build.
-
-2009-07-23 Christian Hoff <christian_hoff@gmx.net>
-
- * configure.in.in, Makefile.include: Bump up GAPI version to 3.0.
- * bootstrap-2.14: Renamed to bootstrap-for-the-insane, added message
- of doom. [Fixes #521449]
-
-2009-07-21 Christian Hoff <christian_hoff@gmx.net>
-
- * glib/GInterfaceAdapter.cs: Fix a leak related to GCHandles not being freed.
- Patch from Mike Kestner with a minor tweak by me. [Fixes #523306]
-
-2009-07-13 Gabriel Burt <gabriel.burt@gmail.com>
-
- * generator/GenBase.cs: Add AppendCustom override that you can pass the
- type name in, used to include .custom for Name + Adapter and Name +
- Implementor .custom files for interface gen.
-
- * generator/InterfaceGen.cs: Use the new AppendCustom override for the
- Name + Adapter.custom file, and add support for including custom file for
- the Name + Implementor interface; necessary to manually implement an
- interface method.
-
-2009-07-12 Mike Kestner <mkestner@novell.com>
-
- * glib/GType.cs: add ResolveType event and TypeResolutionHandler delegate
- declarations. This mechanism supports the lazy registration of type mappings
- by bindings. Patch from Sebastian with minor naming tweek. [Fixes #497667]
-
-2009-07-12 Mike Kestner <mkestner@novell.com>
-
- * generator/Parameters.cs: another owned parameter patch from Sebastian.
- [Fixes #498498]
-
-2009-07-12 Mike Kestner <mkestner@novell.com>
-
- * glib/GType.cs: fail gracefully for non-studly-case typename lookups.
- [Fixes #515453]
-
-2009-07-12 Mike Kestner <mkestner@novell.com>
-
- * sample/Makefile.am: fix for cairo conflicts related to the switch to gmcs.
- * sample/GtkDemo/Makefile.am: fix for cairo conflicts related to the switch to gmcs.
-
-2009-07-12 Mike Kestner <mkestner@novell.com>
-
- * generator/ObjectBase.cs: add CallByName overload with ownership.
- * generator/Parameters.cs: support owned by callee parameters.
- Adapted from a patch by Maarten Bosmans. [Fixes #513680]
-
-2009-07-10 Christian Hoff <christian_hoff@gmx.net>
-
- * pango/Pango.metadata: Mark "ink_rect" and "logical_rect" parameters of Get*Extends
- methods as "out". [Fixes #510105]
-
-2009-07-02 Christian Hoff <christian_hoff@gmx.net>
-
- * configure.in.in: Target .net 2.0 profile
- * gapi-cdecl-insert: Kill. We are now using the UnmanagedFunctionPointerAttribute
- for callbacks.
- * glib/CdeclCallback.cs: Mark obsolete.
- * generator/*.cs:
- * *.custom: Use [UnmanagedFunctionPointer (CallingConvention.Cdecl)] instead of
- [GLib.CDeclCallback].
-
-2009-06-15 Christian Hoff <christian_hoff@gmx.net>
-
- * gtk/Widget.custom: Don't use [MarshalAs] for struct fields since
- that is not supported in the .net framework
-
-2009-06-08 Christian Hoff <christian_hoff@gmx.net>
-
- * generator/Signal.cs: Fix indexing of the signal arguments array for
- "out" and "ref" parameters. [Fixes #508572]
-
-2009-05-28 Aaron Bockover <abockover@novell.com>
-
- * generator/EnumGen.cs: Fix enum generator to properly parse integer
- values with type modifier suffixes (UL, L, U), and not accidentally
- munge named values that happen to end in one of these suffixes
-
-2009-05-18 Stephane Delcroix <sdelcroix@novell.com>
-
- * configure.in.in:
- * bootstrap-generic:
- * bootstrap-2.14: check for mono >= 2.2. not that it requires it to
- build, but the generated bindings need it to run.
-
-2009-05-13 Sebastian Dröge <sebastian.droege@collabora.co.uk>
-
- * glib/Value.cs: return int object value for GType.Enum values if
- the explicit gtype is not found. [Fixes #503060]
-
-2009-05-13 Sebastian Dröge <sebastian.droege@collabora.co.uk>
-
- * glib/ValueArray.cs: use type specific PtrToStructure marshaling to
- avoid ArgumentExceptions. [Fixes #503467]
-
-2009-05-13 Sebastian Dröge <sebastian.droege@collabora.co.uk>
-
- * glib/Value.cs: Add support for ValueArrays inside GLib.Values.
- * glib/ValueArray.cs: Add GType property to get the ValueArray GType.
- [Fixes #503048]
-
-2009-05-12 Mike Kestner <mkestner@novell.com>
-
- * glib/Value.cs: explicit exception for unknown props.
- [Fixes #502043] Patch by Sebastian Dröge.
-
-2009-05-12 Mike Kestner <mkestner@novell.com>
-
- * glib/ValueArray.cs: make ctor(IntPtr) public for binding usage.
- [Fixes #503189] Patch by Sebastian Dröge.
-
-2009-05-12 Mike Kestner <mkestner@novell.com>
-
- * gtk/Application.cs: add the theme initialization workaround for
- windows. Hopefully we can find a better solution that doesn't
- involve loading SWF. [Fixes #471682]
-
-2009-05-06 Mike Kestner <mkestner@novell.com>
-
- * gtk/RadioMenuItem.custom: implement subclassing for group/label
- ctor. [Fixes #320971]
-
-2009-05-06 Mike Kestner <mkestner@novell.com>
-
- * gtk/PaperSize.custom: add static props for Letter and the other
- named papers. [Fixes #324687]
-
-2009-05-06 Mike Kestner <mkestner@novell.com>
-
- * glib/Idle.cs: add a Remove overload for consistency.
- * glib/Timeout.cs: add a Remove overload for consistency.
- [Fixes #356138]
-
-2009-05-06 Mike Kestner <mkestner@novell.com>
-
- * generator/EnumGen.cs: support 1L long values or explicit types.
-
-2009-05-06 Mike Kestner <mkestner@novell.com>
-
- * generator/ReturnValue.cs: null-term array marshaling for vms.
- * generator/VirtualMethod.cs: use ToNative return type in native
- callbacks.
- [Fixes #501294] Patch by Sebastian Dröge.
-
-2009-05-06 Mike Kestner <mkestner@novell.com>
-
- * generator/FieldBase.cs: mangle compound typenames for glue.
- [Fixes #501329] Patch by Sebastian Dröge.
-
-2009-05-06 Mike Kestner <mkestner@novell.com>
-
- * generator/VirtualMethod.cs: refactoring to reuse retval prop.
- [Fixes #501307] Patch by Sebastian Dröge.
-
-2009-05-05 Mike Kestner <mkestner@novell.com>
-
- * glib/GType.cs: ensure threading is initialized in cctor.
- * gtk/Application.cs: ditto.
-
-2009-05-04 Christian Hoff <christian_hoff@gmx.net>
-
- * generator/ClassField.cs: Derive from StructField.
- * generator/ObjectBase.cs: Implement validation mechanism for
- class structures. If the structure contains bitfields or fields
- of unknown types, we cannot generate it in managed code.
- * generator/GObjectVM.cs: Fall back to glue if the class structure
- cannot be generated. [Fixes #498051]
-
-2009-05-03 Mike Kestner <mkestner@novell.com>
-
- * glib/Object.cs: revert to old LookupType behavior when Handle is
- not set. [Fixes #500417]
-
-2009-05-03 Stephane Delcroix <sdelcroix@novell.com>
-
- * glib/Idle.cs:
- * glib/Timeout.cs: add Add() overloads taking a priority
- * glib/Makefile.am:
- * glib/Priority.cs: Priority enum, used as argument for the new Add
- overloads
-
-2009-05-02 Mike Kestner <mkestner@novell.com>
-
- * gtk/Gtk.metadata: updates for new RecentItems prop.
- * gtk/Makefile.am: add new custom.
- * gtk/RecentManager.custom: obsolete Items prop impl.
- [Fixes #387754]
-
-2009-05-02 Mike Kestner <mkestner@novell.com>
-
- * configure.in.in: forward port of a win32 fix from 2-12-branch.
-
-2009-05-01 Mike Kestner <mkestner@novell.com>
-
- * glib/Object.cs: get gtype from instance data.
- * glib/Value.cs: use instance NativeType when initing for props.
- [Fixes #500157] Patch by Sebastian Dröge.
-
-2009-04-28 Mike Kestner <mkestner@novell.com>
-
- * generator/Parameters.cs: ref parameter marshaling fix.
- [Fixes #498472] Patch by Sebastian Dröge.
-
-2009-04-27 Christian Hoff <christian_hoff@gmx.net>
-
- * gtk/Widget.custom: Implement signal registration for the
- Activate, SettScrollAdjustments and key binding signals
- in managed code.
-
-2009-04-25 Mike Kestner <mkestner@novell.com>
-
- * generator/OpaqueGen.cs: support abstract opaque classes,
- though I have no idea why anyone would want one.
- [Fixes #494212] Revised patch from Sebastian Dröge.
-
-2009-04-25 Mike Kestner <mkestner@novell.com>
-
- * parser/gapi-fixup.cs: add remove-attr and change-node-type
- fixup rules. [Fixes #494194]
-
-2009-04-25 Mike Kestner <mkestner@novell.com>
-
- * generator/OpaqueGen.cs: support declaring managed ifaces.
- [Fixes #494193] Revised patch from Sebastian Dröge.
-
-2009-04-24 Stephane Delcroix <sdelcroix@novell.com>
-
- * generator/Ctor.cs: Read the name attribute for constructors
- converted to static factory methods.
-
-2009-04-21 Christian Hoff <christian_hoff@gmx.net>
-
- * glib/Value.cs: Fixes for fundamental GType support. Patch
- provided by Sebastian Dröge.
-
-2009-04-21 Christian Hoff <christian_hoff@gmx.net>
-
- * gtk/Widget.custom: Deglued implementation of StyleGetProperty.
-
-2009-04-16 Christian Hoff <christian_hoff@gmx.net>
-
- * glib/Value.cs: Support for additional fundamental GTypes. Invoke
- constructor of corresponding managed type to convert a GValue into
- its managed representation and a SetGValue method to do that vice
- versa. Patch contributed by Sebastian Dröge.
-
-2009-04-15 Andrés G. Aragoneses <aaragoneses@novell.com>
-
- * atk/Makefile.am
- * glib/Makefile.am: take advantage of the same InternalsVisibleTo
- because the moon assemblies will be monomerged.
-
-2009-04-15 Andrés G. Aragoneses <aaragoneses@novell.com>
-
- * atk/Makefile.am
- * glib/Makefile.am
- * Makefile.include: Added new 'moonlight' target, to build with
- smcs.
-
-2009-04-14 Christian Hoff <christian_hoff@gmx.net>
-
- * gtk/Adjustment.custom: Deglued implementation of SetBounds.
- * gtk/glue/Adjustment.c: Kill.
-
-2009-04-13 Christian Hoff <christian_hoff@gmx.net>
-
- Add support for virtual methods(vm) to the generator.
-
- * parser/gapi2xml.pl: Generate a class_struct element with
- all members of the class structure. Dump the first (instance)
- parameter for signal and vm elements. Bump up parser version.
- * generator/GObjectVM.cs: Added. Support for GObject virtual methods.
- * generator/DefaultSignalHandler.cs: Signal specific part of vm
- generation.
- * generator/InterfaceVM.cs: New class for interface vms.
- * generator/ObjectBase.cs: Parse the class struct.
-
-2009-04-09 Mike Kestner <mkestner@novell.com>
-
- * glib/ListBase.cs: fix g_object_unref dllimport lib.
- [Fixes #493128]
-
-2009-04-05 Christian Hoff <christian_hoff@gmx.net>
-
- * gtk/Target.custom: custom implementation of TableNewFromList.
- * gtk/TargetList.custom: use Target.TableNewFromList method
- to convert the TargetList to a TargetEntry array.
- * gtk/glue/targetlist.c: deleted.
-
-2009-03-28 Christian Hoff <christian_hoff@gmx.net>
-
- * gtk/TextBuffer.custom: Use the right overload of Marshal.Copy
- [Fixes #480010]
-
-2009-03-19 Christian Hoff <christian_hoff@gmx.net>
-
- * parser/gapi2xml.pl: Introduce a "parser_version" attribute.
- * generator/GenBase.cs: Implement a property to access the
- attribute's value.
-
-2009-03-17 Mike Kestner <mkestner@novell.com>
-
- * bootstrap-generic: expose LIBTOOLIZE env variable to support
- building on mac osx with glibtoolize. [Fixes #480559]
-
-2009-03-17 Christian Hoff <christian_hoff@gmx.net>
-
- * gdk/Property.custom: add new overloads to the Get method
- for the most common property types
- * gdk/Global.custom: Use the new overloads of Property.Get instead of glue
-
-2009-03-16 Mike Kestner <mkestner@novell.com>
-
- * gtk/NodeSelection.cs: use new Adapter prop on NodeStore.
- * gtk/NodeStore.cs: some encapsulation rework.
- * gtk/NodeView.cs: use new Adapter prop on NodeStore. new methods
- to support manipulation of the view by TreeNode, like scrolling
- and cell bounds lookups.
- * gtk/TreeView.cs: use new Adapter prop on NodeStore.
- * doc/en/Gtk/NodeView.xml: new doc updates.
- Patch provided by Vladimir Giszpenc. [Fixes #480067]
-
-2009-03-07 Mike Kestner <mkestner@novell.com>
-
- * configure.in.in: add --disable-glade-sharp configure option
- to explicitly disable the conditional build. [Fixes #423131]
-
-2009-03-04 Christian Hoff <christian_hoff@gmx.net>
-
- * gtk/NodeStore.cs: reimplement NodeStore as a managed TreeModel using GInterface implementation
- * gtk/glue/nodestore.c: kill
-
-2009-02-27 Stephane Delcroix <sdelcroix@novell.com>
-
- * gdk/Gdk.metadata:
- * gdk/PixbufFormat.custom:
- * gdk/Makefile.am: deprecate IsDisabled in favor of the Disabled
- property
-
-2009-02-27 Stephane Delcroix <sdelcroix@novell.com>
-
- * gdk/Gdk.metadata: fix GdkPixbufFormat mime_types and extensions
-
-2009-02-24 Christian Hoff <christian_hoff@gmx.net>
-
- * glib/Value.cs: Change the pad fields handling again as the
- previous approach didn't work on Win32. [Fixes #478578]
-
-2009-02-17 Christian Hoff <christian_hoff@gmx.net>
-
- * sample/gtk-gio/MountOperation.cs:
- * gtk/Builder.custom:
- * glib/Value.cs: Resurrect build for MS .NET Framework
-
-2009-02-06 Christian Hoff <christian_hoff@gmx.net>
-
- * gtk/Gtk.metadata: Fix TreeModel.EmitRowsReordered signature
-
-2009-01-29 Mike Kestner <mkestner@novell.com>
-
- * generator/OpaqueGen.cs: generate a finalizer for classes which
- have free or unref methods and ensure it runs on the gui thread.
- * glib/Opaque.cs: remove finalize handling.
- Fixes a 'resurrection' issue with the previous 419777 fix.
-
-2009-01-29 Andrés G. Aragoneses <aaragoneses@novell.com>
-
- * atk/Object.custom: add binding for "focus-event" signal:
- http://library.gnome.org/devel/atk/unstable/AtkObject.html#AtkObject-focus-event
-
-2009-01-27 Mike Kestner <mkestner@novell.com>
-
- * glib/Opaque.cs: ensure we are running on the gui thread when we
- dispose from the finalizer. [Fixes #419777]
-
-2009-01-26 Mike Kestner <mkestner@novell.com>
-
- * glib/Value.cs: make the pad fields a blink explicitly sized struct
- instead to avoid alignment issues on x86. [Fixes #469135]
-
-2009-01-23 Mike Kestner <mkestner@novell.com>
-
- * Makefile.include:
- * doc/Makefile.am:
- * glib/Makefile.am:
- * gtkdotnet/Makefile.am: parallel make patches from Diego Pettenò
- and Bertrand Lorentz. [Fixes #421063]
-
-2009-01-13 Brad Taylor <brad@getcoded.net>
-
- * atk/Atk.metadata: Bind GetRunAttributes and GetDefaultAttributes as
- Atk.Attribute[] instances instead of GLib.SList. [Fixes #393565]
-
-2009-01-13 Mike Kestner <mkestner@novell.com>
-
- * gdk/glue/event.c: kill
- * gdk/glue/selection.c: kill
- * gdk/Selection.cs: hardcode the primary, secondary, and clipboard
- atom definitions instead of using glue to access their macros.
- * gdk/Event*.cs: rewrite to use layout structures instead of glue
- for field accessors. Also enable writing for all fields.
- [Fixes #323373]
-
-2009-01-12 Mike Kestner <mkestner@novell.com>
-
- * glib/Opaque.cs (GetOpaque): return null for IntPtr.Zero.
-
-2009-01-12 Mike Kestner <mkestner@novell.com>
-
- * configure.in.in: don't hardcode CC when cross-compiling.
- * gapi-cdecl-insert: monodis support on mono.
- * Makefile.am: add a cross-compile bundling target. The goal is to
- build a .zip which can be extracted on win32 to run candle and light,
- avoiding cygwin to produce installers. Hopefully some day wix will
- run on linux.
-
-2009-01-08 Mike Kestner <mkestner@novell.com>
-
- * cairo/Makefile.am: use mono.snk to sign the Mono.Cairo assembly
- so that it's compatible with mono built versions. Initial patch
- from Christian Hoff with a few tweaks.
-
-2009-01-08 Mike Kestner <mkestner@novell.com>
-
- * generator/InterfaceGen.cs: generate Adapters for consume_only ifaces
- too. This seems unusual, but is primarily to produce at least one
- 'generic' implementation of every interface and a GetObject method
- so that the marshaling code can always return an object which
- implements the interface, even if no public object wrapper exists for
- the underlying c GObject type.
-
-2009-01-08 Mike Kestner <mkestner@novell.com>
-
- * generator/ReturnValue.cs: map gfilename* list elements to type
- ListBase.FilenameString so they are marshaled correctly.
- * glib/Marshaller.cs: handle FilenameStrings in ListPtrToArray.
- * gtk/Gtk.metadata: FileChooser.GetFilenames and ListShortcutFolders
- return type mangling to avoid custom implementations.
- * gtk/FileChooser*.custom: kill manual Filenames and ShortcutFolders.
-
-2009-01-08 Stephane Delcroix <sdelcroix@novell.com>
-
- * gio/Gio.metadata: change AppInfo's CanRemoveSupportsType to a
- property.
-
-2009-01-08 Stephane Delcroix <sdelcroix@novell.com>
-
- * gio/Gio.metadata: change AppInfo's ShouldShow, SupportsFiles and
- SupportsUris to properties.
-
-2009-01-07 Mike Kestner <mkestner@novell.com>
-
- * generator/MethodBody.cs: avoid null ref when passing null to
- destroy notified callback parameters. [Fixes #464120]
-
-2009-01-06 Mike Kestner <mkestner@novell.com>
-
- * configure.in.in: update to use mdoc.
- * doc/Makefile.am: update to use mdoc.
- * doc/gtk-sharp-docs.source: add node element to conform to new
- monodoc layout model.
-
-2009-01-05 Andrés G. Aragoneses <aaragoneses@novell.com>
-
- * GType.cs:
- * Value.cs: Revert r122505.
- [Reasoning on #448009]
-
-2009-01-06 Stephane Delcroix <sdelcroix@novell.com>
-
- * gtk/Gtk.metadata: fix gtk_icon_theme_lookup_by_gicon return-type
- and name.
-
-2009-01-06 Stephane Delcroix <sdelcroix@novell.com>
-
- * gtk/Gtk.metadata: fix gicon property name for CellRendererPixbuf
-
-2009-01-06 Stephane Delcroix <sdelcroix@novell.com>
-
- * gtk/Gtk.metadata: fix gicon property, getter and setter for StatusIcon
-
-2009-01-06 Stephane Delcroix <sdelcroix@novell.com>
-
- * gtk/Gtk.metadata: rename SetFromGicon to SetFromIcon and GetGicon to
- GetIcon.
-
-2009-01-06 Stephane Delcroix <sdelcroix@novell.com>
-
- * gtk/Gtk.metadata: fix the gtk_image_get_gicon signature (pass as out)
-
-2009-01-06 Stephane Delcroix <sdelcroix@novell.com>
-
- * gtk/Gtk.metadata: rename the Gicon property of GtkImage to Icon.
-
-2009-01-05 Andrés G. Aragoneses <aaragoneses@novell.com>
-
- * GType.cs: convert GType.Is to a non-static function.
- * Value.cs: track API.
- [Last cosmetic bit from #448009]
-
-2009-01-05 Stephane Delcroix <sdelcroix@novell.com>
-
- * bootstrap-2.14:
- * bootstrap-generic:
- * configure.in.in: depend on glib/gio 2.18
-
-2009-01-04 Mike Kestner <mkestner@novell.com>
-
- * *: update to 2.14. parser support for GSEALed fields. svn build
- now uses bootstrap-2.14. integrate gio-sharp module.
-
-2009-01-04 Mike Kestner <mkestner@novell.com>
-
- * glib/GType.cs: fix incorrect null check noticed by Christian Hoff.
- [Fixes #463445]
-
-2009-01-02 Mike Kestner <mkestner@novell.com>
-
- * configure.in.in: clarify the Mono.Cairo summary comment.
-
-2008-12-22 Andrés G. Aragoneses <aaragoneses@novell.com>
-
- * generator/InterfaceGen.cs: track API.
- * glib/GType.cs: simplify, avoiding a static method.
- * glib/Value.cs: reuse g_type_is_a.
- [Improves fix for #448009 in r121990]
-
-2008-12-22 Andrés G. Aragoneses <aaragoneses@novell.com>
-
- * generator/InterfaceGen.cs: use the new GLib API to detect
- instances that don't implement GInterfaces.
- * glib/GType.cs: add new API for checking if an IntPtr instance
- implements a certain GType.
- [Fixes #448009]
-
-2008-12-20 Stephane Delcroix <sdelcroix@novell.con>
-
- * glib/Timeout.cs: map AddSeconds ().
-
-2008-12-19 Mike Kestner <mkestner@novell.com>
-
- * generator/BoxedGen.cs: don't generate glue dependencies.
- * glib/*.cs: remove glibsharpglue usage except thread.c.
- * glib/glue/*.c: kill all but thread.c. need glib 2.20 to kill
- it eventually.
- * pango/Attr*.cs: kill glue usage.
- * pango/glue/*.c: kill all but generated.c. it's next.
- * gtk/TreeIter.custom: kill a dumb glibsharpglue usage.
-
-2008-12-12 Mike Kestner <mkestner@novell.com>
-
- * bootstrap-2.12: tagged for 2.12.7. Bump svn version.
- * audit/base: update base apiinfo's for 2.12 stable api.
-
-2008-12-08 Andrés G. Aragoneses <aaragoneses@novell.com>
-
- * glib/Signal.cs: Improve protection against invalid signals.
-
-2008-12-02 Stephane Delcroix <sdelcroix@novell.com>
-
- * generator/Ctor.cs:
- * generator/Method.cs:
- * generator/MethodBase.cs: refactor the Protection from Method to
- MethodBase, generate ctors with the correct protection too.
-
-2008-12-01 Mike Kestner <mkestner@novell.com>
-
- * gtk/Gtk.metadata: automarshal TreeSelection.GetSelectedRows.
- * gtk/TreeSelection.custom: kill GetSelectedRows customization.
- [Fixes #450689]
-
-2008-12-01 Mike Kestner <mkestner@novell.com>
-
- * gtk/Gtk.metadata: automarshal TreeView.Columns.
- * gtk/TreeView.custom: kill Columns customization.
- [Fixes #450685]
-
-2008-11-28 Mike Kestner <mkestner@novell.com>
-
- * generator/Signal.cs: remove ref int workaround now that we fallback
- to signal-specific marshalers for G_TYPE_POINTER using signals.
- Fixes #450119.
-
-2008-11-26 Stephane Delcroix <sdelcroix@novell.com>
-
- * gtk/Image.custom:
- * gtk/Gtk.metadata: obsolete Image.FromPixbuf, FromAnimation,
- FromFile setters in favor of already existing Pixbuf, Animation and
- File.
-
-2008-11-26 Mike Kestner <mkestner@novell.com>
-
- * bootstrap-2.12: bump svn version.
- * cairo/Makefile.am: policy config is hard-coded, not generated.
-
-2008-11-26 Mike Kestner <mkestner@novell.com>
-
- * configure.in.in: prepend CFLAGS environment setting to AC_SUBST.
- Patch from Diego Petteno. [Fixes #443175]
-
-2008-11-25 Mike Kestner <mkestner@novell.com>
-
- * glib/Value.cs: fix for 'IntPtr as object' value construction.
-
-2008-11-24 Andrés G. Aragoneses <aaragoneses@novell.com>
-
- * atk/Makefile.am:
- * atk/SelectionAdapter.custom: new method for firing selection-changed
- ( http://library.gnome.org/devel/atk/stable/AtkSelection.html#AtkSelection-selection-changed )
-
-2008-11-21 Mike Kestner <mkestner@novell.com>
-
- * glib/ManagedValue.cs: rework to ref count a ManagedValue instance
- and pass a GCHandle to it around, instead of taking out multiple
- gchandles on the managed target itself.
-
-2008-11-21 Stephane Delcroix <sdelcroix@novell.com>
-
- * glib/Global.cs: implement Global.ApplicationName for localized
- application name.
-
-2008-11-21 Stephane Delcroix <sdelcroix@novell.com>
-
- * Makefile.am:
- * glib/Format.cs: new class to map the g_format methods
-
-2008-11-15 Mike Kestner <mkestner@novell.com>
-
- * gdk/Event.cs: add EventOwnerChange to GetEvent.
- * gdk/EventOwnerChange.cs: manual subclass of Gdk.Event.
- * gdk/Gdk.metadata: hide EventOwnerChange.
- * gdk/Makefile.am: add EventOwnerChange.cs.
- * gdk/gdk-symbols.xml: add EventOwnerChange.
-
-2008-11-15 Mike Kestner <mkestner@novell.com>
-
- * gtk/Gtk.metadata: mark the SpinButton::Output signal as manually
- marshaled to avoid a compat break. The old manual marshaler expected
- and int RetVal and the new signal closure more accurately expects a
- bool. Since returning 1 previously worked, we need to revert to the
- int expectation, even though bool is technically more correct.
-
-2008-11-14 Brad Taylor <brad@getcoded.net>
-
- * glib/Object.cs: Bind g_object_notify.
- * doc/en/GLib/Object.xml: Document new API.
-
-2008-11-05 Mike Kestner <mkestner@novell.com>
-
- * atk/atk-api-2.12.raw: regen
- * gtk/gtk-api-2.12.raw: regen
- * generator/Signal.cs: reinstate old custom marshaler generation and
- generate custom marshaling when 'manual' attr is set.
- * parser/gapi2xml.pl: set manual attr on sigs that have G_TYPE_POINTER
- parameters since the generic closure can't cope with them.
-
-2008-11-05 Mike Kestner <mkestner@novell.com>
-
- * gtk/Builder.custom: #if the new API for 2.14 for now so it
- doesn't get confused as stable API yet.
-
-2008-11-04 Mike Gorse <mgorse@novell.com>
-
- * glib/PtrArray.cs, glib/glue/ptrarray.c, glib/Makefile.am,
- glib/glue/Makefile.am, glib/gtype.cs, generator/SymbolTable.cs,
- generator/ReturnValue.cs: Add PtrArray.
- * glib/Marshaller.cs: Add PtrArrayToArray.
-
- * atk/Atk.metadata: Specify GetTarget return type.
-
- * atk/Object.custom, atk/glue/object.c: Support overriding
- RefRelationSet.
-
-2008-11-03 Stephane Delcroix <sdelcroix@novell.com>
-
- * gtk/Gtk.metadata:
- * gtk/StatusIcon.custom: Obsolete the duplicated properties.
-
-2008-10-29 Mike Kestner <mkestner@novell.com>
-
- * glib/Signal.cs : custom marshaling hooks
- * glib/SignalClosure.cs : support for custom marshalers.
-
-2008-10-28 Stephane Delcroix <sdelcroix@novell.com>
-
- * gtk/Gtk.Metadata: hide ConnectSignals.
-
- * gtk/Builder.Custom: connect the signals, and the objects.
- GetObjectRaw method: allows very neat object inheritance.
-
-2008-10-27 Stephane Delcroix <sdelcroix@novell.com>
-
- * glib/ListBase.cs: DataMarshal: create the right object for *Adapter
- list items.
-
-2008-10-08 Mike Gorse <mgorse@novell.com>
-
- * atk/Object.custom: Pass Handle in EmitChildrenChanged (fix critical)
-
-2008-10-24 Mike Kestner <mkestner@novell.com>
-
- * glib/GType.cs: register IntPtr.
-
-2008-10-22 Peter Johanson <peter@peterjohanson.com>
-
- * gtk/TreeModelAdapter.custom:
- * gtk/TreeModelFilter.custom:
- * gtk/TreeModelSort.custom:
- * gtk/TreeStore.custom: Don't trigger any gtk+ critical
- warnings when the 'rows-reodered' signal is fired.
-
-2008-10-21 Mike Kestner <mkestner@novell.com>
-
- * tagged 2.12.5.
-
-2008-10-21 Mike Kestner <mkestner@novell.com>
-
- * cairo/*: add a policy assembly for 1.0 defering to 2.0.
-
-2008-10-13 Brad Taylor <brad@getcoded.net>
-
- * Makefile.am:
- * configure.in.in:
- * gtk-sharp-2.0-lib.wxs.in:
- * gtk-sharp-2.0-dev.wxs.in: Replace version numbers in wxs files,
- import gtk-sharp-2.0-dev.wxs.
-
-2008-10-13 Mike Kestner <mkestner@novell.com>
-
- * Makefile.am: installer target
- * gtk-sharp-2.0-lib.wxs: new installer config file
-
-2008-10-12 Andrés G. Aragoneses <aaragoneses@novell.com>
-
- Fixes BNC#426876.
- * generator/InterfaceGen.cs: throw ArgumentNullException in
- the Adapter's constructor that receives an implementor.
-
-2008-10-09 Mike Kestner <mkestner@novell.com>
-
- * cairo/*.cs: flatten source hierarchy to simplify win32 build.
- * sample/Makefile.am: fix a ref issue with local cairo.
-
-2008-10-09 Mike Kestner <mkestner@novell.com>
-
- * configure.in.in: magic for local Mono.Cairo build.
- * cairo/*: a local build of Mono.Cairo for .Net-only builds on win32.
- * */Makefile.am: use local Mono.Cairo where necessary.
-
-2008-10-09 Mike Kestner <mkestner@novell.com>
-
- * configure.in.in: kill dead config.in.
- * sample/CairoSample.cs: some dispose handling and cleanup.
- * sample/cairo-sample.exe.config.in: kill, no pinvoke needed now.
- * sample/GException.cs: GException test sample.
- * sample/GtkCairo.cs: kill, replaced by Gdk.CairoHelper.Create.
- * sample/Makefile.am: cleanup.
-
-2008-10-08 Mike Gorse <mgorse@novell.com>
-
- * Atk/Makefile.am, Atk/ObjectFactory.custom, Atk/glue/Makefile.am,
- Atk/glue/object_factory.c: Add ObjectFactory.custom and
- glue/object_factory.c.
-
-2008-10-02 Mike Gorse <mgorse@novell.com>
-
- * Atk/Makefile.am, Atk/Hyperlink.custom, Atk/glue/Makefile.am,
- Atk/glue/hyperlink.c: Add Hyperlink.custom and glue/hyperlink.c.
-
-2008-09-30 Mike Kestner <mkestner@novell.com>
-
- * generator/EnumGen.cs:
- * generator/InterfaceGen.cs:
- * generator/StructBase.cs: fix build breakage in prev commit.
-
-2008-09-30 Stephane Delcroix <sdelcroix@novell.com>
-
- * generator/CallbackGen.cs:
- * generator/ClassGen.cs:
- * generator/EnumGen.cs:
- * generator/GenBase.cs:
- * generator/InterfaceGen.cs:
- * generator/Method.cs:
- * generator/OpaqueGen.cs:
- * generator/StructBase.cs:
- * generator/ObjectGen: check for the internal attribute
- * generator/Method.cs: check for the accessibility attribute;
-
-2008-09-24 Mike Gorse <mgorse@novell.com>
-
- * atk/Atk.metadata: Mark rect in GetRangeExtents as out.
-
-2008-09-24 Mike Kestner <mkestner@novell.com>
-
- * glib/GType.cs: kill the FindTypeInReferences recursive loading
- algorithm and instead do a name-based search through the references
- of loaded assemblies only. Fixes the original bug #400595 and it
- hopefully will have fewer sideeffects that the recursive loading
- approach.
-
-2008-09-24 Mike Kestner <mkestner@novell.com>
-
- * glib/GType.cs: just fail on location null or empty instead of
- checking the assembly type. Avoids failures on the ms runtime.
-
-2008-09-23 Mike Kestner <mkestner@novell.com>
-
- * bootstrap-2.12: bump svn version after tag.
-
-2008-09-23 Mike Gorse <mgorse@novell.com>
-
- * atk/Makefile.am: add atk/atk.h to glue_includes.
- * atk/glue/Makefile.am: Compile atk/glue/generated.c.
-
-2008-09-23 Andrés G. Aragoneses <aaragoneses@novell.com>
-
- Fixes BNC#384475.
- * atk/Object.custom: Provide a new overload that receives an
- enum instead of an ulong, for a friendlier managed API.
-
-2008-09-18 Mike Kestner <mkestner@novell.com>
-
- * bootstrap-2.12: bump svn version.
- * generator/Signal.cs: add a workaround for G_TYPE_POINTER usage
- in the GtkEditable::text_inserted signal. The signal parameter
- received by the closure will be an IntPtr, which we then have to
- use to read/write the value directly from unmanaged memory.
- [Fixes #427588]
-
-2008-09-18 Mike Kestner <mkestner@novell.com>
-
- * generator/LPGen.cs: remove WIN64LONGS hackery.
- * generator/LPUGen.cs: remove WIN64LONGS hackery.
- * generator/SymbolTable.cs: for WIN64LONGS, map them directly to
- (u)int SimpleGens instead of using the LP generatables.
-
-2008-09-16 Jeffrey Stedfast <fejj@novell.com>
-
- * generator/Property.cs (IsDeprecated): Allow "1" or "true".
-
- * generator/Method.cs (.ctor): Allow "1" or "true".
-
- * generator/ClassBase.cs: Allow a value of "true" to work the same
- as "1" for the deprecated and abstract attributes.
-
- * generator/ObjectGen.cs (Generate): Remove the extra generated
- space if the class isn't abstract.
-
-2008-09-12 Zoltan Varga <vargaz@gmail.com>
-
- * glib/GType.cs (FindTypeInReferences): Put a try-catch around the assembly
- loading as failure to load a referenced assembly is not really an error.
-
-2008-09-12 Mike Gorse <mgorse@novell.com>
-
- * atk/Object.custom, atk/glue/object.c: Support GetIndexInParent.
-
-2008-09-09 Mike Kestner <mkestner@novell.com>
-
- * generator/ReturnValue.cs: warning cleanup.
- * gtk/Gtk.metadata: warning cleanup.
-
-2008-09-09 Zoltan Varga <vargaz@gmail.com>
-
- * glib/GType.cs (FindTypeInReferences): Skip dynamic assemblies.
-
-2008-09-08 Mike Kestner <mkestner@novell.com>
-
- * glib/GType.cs: beef up the referenced assembly loading code to
- handle assemblies located in the same directory as the referring
- assembly. Fixes #423450.
-
-2008-09-05 Andrés G. Aragoneses <aaragoneses@novell.com>
-
- Fixes BNC#387220.
- * glib/glue/signal.c: New glue file to call g_signal_query().
- * glib/glue/Makefile.am: Add signal.c.
- * glib/Signal.cs: check return type prior to emitting.
-
-2008-08-28 Andrés G. Aragoneses <aaragoneses@novell.com>
-
- * atk/Util.custom: unregister get_root function when the setter
- receives null. Partial fix for BNC#411444.
-
-2008-08-27 Mike Kestner <mkestner@novell.com>
-
- * generator/ManagedCallString.cs: use existing Parameters.IsHidden
- method to check for hidden user data.
-
-2008-08-27 Mike Kestner <mkestner@novell.com>
-
- * generator/ManagedCallString.cs: revert last change. There are a
- lot of "broken" callback sigs out there which expose user data because
- it's not in the last parameter in the list. I don't think we can
- reasonably make a change to hide all those at this point. This change
- at least hides all the user_data which comes right before a GError
- param at the end of the list. I need to follow up with a change which
- handles data parameters in any parameter position, but allows the user
- to mark "exposed" data params for compatibility reasons.
- * generator/Parameters.cs: hide data params which are at the end of a
- list behind an error param.
- * gtk/Gtk.metadata: mark an array parameter on
- TextBufferDeserializeFunc.
-
-2008-08-27 Mike Kestner <mkestner@novell.com>
-
- * glib/Signal.cs: multiple dispose guarding for closures.
-
-2008-08-27 Mike Kestner <mkestner@novell.com>
-
- * generator/ManagedCallString.cs: fixes for data parameter hiding
- in native to managed callback generation.
-
-2008-08-20 Mike Kestner <mkestner@novell.com>
-
- * glib/Object.cs:
- * glib/Signal.cs: fix a couple 2.0-isms. Patch from Christian Hoff.
-
-2008-08-20 Mike Kestner <mkestner@novell.com>
-
- * bootstrap-2.12: bump svn version after tag.
-
-2008-08-20 Mike Kestner <mkestner@novell.com>
-
- * generator/ReturnValue.cs: use new ListPtrToArray marshaler for
- lists with known element types.
- * glib/Marshaller.cs: new ListPtrToArray marshaller with more
- aggressive list disposal.
- * gtk/Container.custom: remove manual Children impl. Use Children
- in GetEnumerator instead of pinvoking directly.
- * gtk/Gtk.metadata: remove hidden attr and add element type and owned
- for Container.GetChildren to generate it properly.
-
-2008-08-20 Mike Kestner <mkestner@novell.com>
-
- Patch from Christian Hoff fixing bug #396195.
- * generator/Property.cs: handle interface adapter values.
- * generator/InterfaceGen.cs: register the gtype so mapping occurs
- automatically for interface adapters. New GetObject overload to
- handle already wrapped objects more efficiently.
- * glib/Value.cs: handle set_Val for interface adapter objects.
-
-2008-08-19 Brad Taylor <brad@getcoded.net>
-
- * atk/Object.custom: Add method to allow emission of
- visible-data-changed signal.
-
- * atk/TextChangedDetail.cs:
- * atk/TextAdapter.custom: Add method to allow emission of text-changed
- signal.
-
-2008-08-13 Mike Kestner <mkestner@novell.com>
-
- * atk/Atk.metadata: switch Value methods to ref params since atk
- actually checks for initialized values instead of just treating it
- like uninitialized memory. Makes for uglier API, but avoids crashes
- in unfortunate memory content scenarios.
-
-2008-08-04 Mike Kestner <mkestner@novell.com>
-
- * gtk/IconTheme.custom: elements and the list returned by
- ListIcons are owned.
-
-2008-08-04 Mike Kestner <mkestner@novell.com>
-
- * gtk/Gtk.metadata: mark IconTheme.LoadIcon return as owned.
-
-2008-07-23 Mike Kestner <mkestner@novell.com>
-
- * atk/Atk.metadata: map some out params on Atk.Value. They
- were unusable in their existing form.
-
-2008-07-08 Mike Kestner <mkestner@novell.com>
-
- Patch from Christian Hoff with a few minor tweaks.
- * generator/CallbackGen.cs: refactor to use ManagedCallString
- and drop a ton of redundant, half-baked code.
- * generator/ManagedCallString.cs: add Unconditional setup
- method for stuff that has to happen before the try block.
- Add "drop_first" concept so it can be reused by CallbackGen
- which doesn't drop first params.
- * generator/Signal.cs: use Unconditional method for prep.
- * generator/VirtualMethod.cs: use Unconditional method for prep.
- * gtk/Gtk.metadata: mark a ref param. [Fixes #394352]
-
-2008-06-28 Mike Kestner <mkestner@novell.com>
-
- * gtk/Gtk.metadata: mark ListStore.Reorder array param.
- * gtk/ListStore.cs: compat obsolete method, though the old one
- was useless.
-
-2008-06-28 Mike Kestner <mkestner@novell.com>
-
- * glib/Marshaller.cs: some 64 bit fixes for time_t marshaling
- issue found by Federico.
-
-2008-06-28 Mike Kestner <mkestner@novell.com>
-
- * gtk/TreeSelection.custom: use list marshaler to avoid O(n^2)
- copy from old custom code. [Fixes #404669]
-
-2008-06-28 Mike Kestner <mkestner@novell.com>
-
- * gtk/Gtk.metadata: mark a const string. [Fixes #404630]
-
-2008-06-27 Mike Kestner <mkestner@novell.com>
-
- * gtk/Gtk.metadata: fix a couple out params.
-
-2008-06-20 Mike Kestner <mkestner@novell.com>
-
- * glib/Value.cs: Patch from Christian Hoff. Support for byte and
- sbyte values.
-
-2008-06-17 Mike Kestner <mkestner@novell.com>
-
- * glib/SignalClosure.cs: post back the gvalues after the closure is
- invoked using a new Update method on GLib.Value. This only impacts
- boxed types, since they are the only "value types" passed by ref in
- the signal marshaling environment. We can't call set_boxed on the
- value to update it, since that allocs new memory, we need to marshal
- the updated struct out to the existing native memory address using
- g_value_get_boxed.
- * glib/Value.cs (Update): new update method for writing values to
- an existing boxed type instance instead of allocating a new native
- struct. Fixes #398929.
-
-2008-06-17 Mike Kestner <mkestner@novell.com>
-
- * glib/GType.cs (LookupType): traversed referenced assemblies to
- find types in currently unloaded assemblies. Fixes #400595.
-
-2008-06-16 Andrés G. Aragoneses <aaragoneses@novell.com>
-
- * atk/Object.custom:
- * atk/glue/object.c:
- Simplified code for previous issue (recommendation from mkestner).
-
-2008-06-16 Mike Kestner <mkestner@novell.com>
-
- * glib/glue/object.c: fixes for object, boxed, and gtype
- property paramspec creation. Patch provided by Christian Hoff.
-
-2008-06-09 Andrés G. Aragoneses <aaragoneses@novell.com>
-
- * atk/Object.custom:
- * atk/glue/object.c:
- Temporary workaround for infinite recursion issue.
-
-2008-06-06 Andrés G. Aragoneses <aaragoneses@novell.com>
-
- * glib/glue/thread.c: Fix a warning.
-
-2008-06-06 Mike Kestner <mkestner@novell.com>
-
- Initial Patch submitted by Christian Hoff with some small
- style alterations and a round trip sample by me. Supports the
- registration of managed properties with the GType system, so
- that things like custom cell renderers can be accessed via the
- native property system from treeview.
-
- * glib/glue/object.c : property registration related glue.
- * glib/Object.cs: implement managed property registration.
- * glib/PropertyAttribute.cs: add new props and ctor for managed
- property registration.
- * sample/PropertyRegistration.cs: little test app to test round-
- tripping of registered properties.
- * sample/Makefile.am: add new sample.
-
-2008-06-06 Mike Kestner <mkestner@novell.com>
-
- * atk/Object.custom: use 'as StateSet' instead of cast to avoid
- cast exceptions in the null case. Apparently it's not an exception
- any more, according to folks on #monodev. I still prefer as for
- GetObject 'casting'.
-
-2008-06-06 Andres G. Aragoneses <aaragoneses@novell.com>
-
- * atk/Object.custom:
- * atk/glue/object.c: Implement virtual method OnRefStateSet().
-
-2008-05-30 Mike Kestner <mkestner@novell.com>
-
- * gdk/Pixbuf.custom: don't use the autogenerated PixbufDestroyNative
- delegate type since is has a byte[] parameter that blows up.
-
-2008-05-30 Mike Kestner <mkestner@novell.com>
-
- * gtk/Object.custom:
- * gtk/glue/object.c: remove the destroy override. it doesn't work.
-
-2008-05-28 Mike Kestner <mkestner@novell.com>
-
- * gtk/Object.custom: move Dispose call to a vm override so that
- it runs after all signals and native overrides have run.
- * gtk/glue/object.c: destroy override implementation.
-
-2008-05-28 Lluis Sanchez Gual <lluis@novell.com>
-
- * gtk/Object.custom: If all destroy handlers have been
- unregistered, remove the hashtable entry since it is
- not needed anymore.
-
-2008-05-27 Mike Kestner <mkestner@novell.com>
-
- * generator/Method.cs (GenerateBody): when generating value type
- methods, we should demarshal the 'this' memory before any ref or
- out parameters in the event that someone passes 'this' as a param.
- That will ensure that an updated value coming back from the native
- side ends up in the memory location.
-
-2008-05-22 Mike Kestner <mkestner@novell.com>
-
- * gtk/Widget.custom: guard against MissingIntPtrCtorException in
- the Activate and SetScrollAdjustments funky signal VM impl. Can't
- use SignalClosure easily. Could be reworked more cleanly at some
- point. Or not.
-
-2008-05-21 Mike Kestner <mkestner@novell.com>
-
- * gtk/Object.custom (OnDestroyed): ensure Dispose runs even if
- no Destroyed handlers are connected.
-
-2008-05-21 Mike Kestner <mkestner@novell.com>
-
- * gtk/Application.cs (CurrentEvent): use Event.GetEvent to retrieve
- an explicit event subclass.
-
-2008-05-15 Mike Kestner <mkestner@novell.com>
-
- * kill the makefile.win32 build system. it has been unmaintained
- for quite some time, replaced by the auto* build in cygwin.
-
-2008-05-14 Andres G. Aragoneses <aaragoneses@novell.com>
-
- * atk/Object.custom: Track API changes in GLib.Signal.
- * glib/Signal.cs: AddEmissionHook binding (for closing #386950), and
- change API of Emit to mimic the detailed_signal pattern.
- * glib/GType.cs: GType.FromName: new wrapper for native call.
- * glib/ObjectManager.cs: Use the new FromName managed method.
-
-2008-05-08 Mike Kestner <mkestner@novell.com>
-
- * atk/atk-api-2.12.raw: reparsed.
- * gdk/gdk-api-2.12.raw: reparsed.
- * gtk/gtk-api-2.12.raw: reparsed.
- * parser/gapi2xml.pl: fixes for signal and vm order needed for
- proper interface struct layout. [Fixes #386802]
-
-2008-05-07 Stephane Delcroix <sdelcroix@novell.com>
-
- * gtk/Object.custom: swap the event removing and destroy calls.
-
-2008-05-07 Andres G. Aragoneses <aaragoneses@novell.com>
-
- * atk/Object.custom, atk/glue/object.c: Remove unneeded
- return types (I don't know why gcc ever let this compile...).
-
-2008-05-06 Mike Kestner <mkestner@novell.com>
-
- * glib/Object.cs: revert the connection optimization from r102349.
- It breaks under the current CellRenderer implementation which probably
- can't be reworked compatibly to take advantage of this code.
- * glib/SignalClosure.cs: use IntPtr.ToInt64 instead of (long) since
- the cast apparently has issues on bleeding edge mono.
-
-2008-05-06 Mike Kestner <mkestner@novell.com>
-
- * gtk/Gtk.metadata: mark Rc.DefaultFiles accessors as null_term_array.
-
-2008-05-02 Mike Kestner <mkestner@novell.com>
-
- * generator/GenerationInfo.cs: refactor glue writer implementation
- so that GlueEnabled means there is a valid glue writer available.
- Avoids crashes in scenarios where an unwriteable glue path is provided
- to the generator. Generate a glue function which scans the type
- hierarchy of an object for the most-derived unmanaged ancestor so
- that we can invoke class methods on it, avoiding infinite recursions.
- * generator/Signal.cs: revamp the default handler vm overriding
- mechanism. When class fields exist which can be directly hooked into,
- we now generate glue to override and chain up to unmanaged base funcs.
- This avoids some strangeness in the g_signal_override_class_closure
- and g_signal_chain_from_overridden reported in #332300 and also lays
- the groundwork for automated generation of non-signal VMs.
- * gtk/Gtk.metadata: block signal glue generation for a few types which
- don't seem to install headers.
-
-2008-05-02 Mike Kestner <mkestner@novell.com>
-
- * glib/Object.cs: Don't bother hooking VM into the class field
- if another managed ancestor has already done so. Add a LogFunc
- printing a stack trace for the GObject log domain if GTK_SHARP_DEBUG
- is set in the environment. It's a bit noisy to do unconditionally.
-
-2008-05-02 Mike Kestner <mkestner@novell.com>
-
- * gtk/Object.custom: some NULL guarding in Dispose and
- Destroy handling.
-
-2008-05-02 Mike Kestner <mkestner@novell.com>
-
- * atk/Atk.metadata: hide Global.AddGlobalEventListener.
- * atk/Global.custom: AddGlobalEventListener impl.
- * atk/Util.custom: AddGlobalEventListenerHandler prop.
- [Fixes the rest of #365437]
-
-2008-05-01 Mike Kestner <mkestner@novell.com>
-
- * gtk/gtk-api-2.12.raw: regen, removes some private printing API.
- * source/gtk-sharp-2.12-sources.xml: hide some private printing API.
-
-2008-05-01 Mike Kestner <mkestner@novell.com>
-
- * generator/InterfaceGen.cs: use CName and mangle it. ClassFieldName
- is not guaranteed to be set now.
- * generator/Signal.cs: read ClassFieldName from the api xml. Move
- glue writer lookup inside the block to avoid exceptions for now.
-
-2008-04-30 Mike Kestner <mkestner@novell.com>
-
- * generator/InterfaceGen.cs:
- * generator/Signal.cs: use generic signal marshaling instead of
- generating signature specific marshaling callbacks.
- * glib/glue/closure.c: glue for new closure impl.
- * glib/Object.cs: open up a couple hashes internally.
- * glib/Signal.cs: hook in closure based connection and expose
- EmissionHook functionality for atk usage.
- * glib/SignalClosure.cs: new generic signal marshaling mechanism.
- * glib/ToggleRef.cs: null guarding in Target and let Signal remove
- itself from hash when it disposes itself.
-
-2008-04-30 Mike Kestner <mkestner@novell.com>
-
- * parser/gapi2xml.pl: put class struct field in the signal elems.
- * atk/atk-api-2.12.raw:
- * gdk/gdk-api-2.12.raw:
- * gtk/gtk-api-2.12.raw:
-
-2008-04-28 Mike Kestner <mkestner@novell.com>
-
- * glib/Value.cs : Add GParam support and beef up the Boxed
- type marshaling to support types with New methods via reflection.
-
-2008-04-28 Mike Kestner <mkestner@novell.com>
-
- * glib/GType.cs : Add a few missing static fields.
-
-2008-04-24 Mike Kestner <mkestner@novell.com>
-
- * gdk/Window.custom (Destroy): take a normal ref for the native
- method to release, and Dispose our toggle ref. Fixes #382186.
-
-2008-04-24 Andres G. Aragoneses <aaragoneses@novell.com>
-
- * glib/Signal.cs: Remove unneeded cast.
-
-2008-04-24 Andres G. Aragoneses <aaragoneses@novell.com>
-
- * atk/Object.custom: custom protected method for firing
- the ChildrenChanged signal.
- * glib/Signal.cs: first implementation of a managed
- method for emitting signals.
-
-2008-04-19 Mike Kestner <mkestner@novell.com>
-
- * gtk/glue/statusicon.c: fix time parameter usage. Not even sure
- how that compiled. I <3 C.
-
-2008-04-17 Mike Kestner <mkestner@novell.com>
-
- * atk/glue/misc.c: glue for vms and singleton setup.
- * atk/Misc.custom: add OnThreadsEnter, OnThreadsLeave, and
- SetSingletonInstance members for Bridge implementors.
- [More of #365437]
-
-2008-04-17 Mike Kestner <mkestner@novell.com>
-
- * glib/Object.cs: add Harden method to reduce the reflection
- overhead in Gnome.Program.
-
-2008-04-17 Mike Kestner <mkestner@novell.com>
-
- * glib/ToggleRef.cs: Add a Harden method to switch to a standard
- ref and just leak it.
- * gtk/Application.cs: revert the QuitPrepare stuff since it didn't
- always work.
-
-2008-04-17 Mike Kestner <mkestner@novell.com>
-
- * gtk/TreeModelAdapter.custom:
- * gtk/TreeModelFilter.custom:
- * gtk/TreeModelSort.custom: reworked patch from Christian Hoff to
- throw NotImplementedException for SetValue methods. Those should
- never have been added to the interface, and it's better to throw
- an exception than have infinite recursion kill the program.
- [Fixes #379542]
-
-2008-04-16 Mike Kestner <mkestner@novell.com>
-
- * gtk/Gtk.metadata: hide PrintContext.get_CairoContext.
- * gtk/PrintContext.custom: manual get_cairo_context implementation.
- Mono.Cairo assumes it is wrapping owned references, so we need to
- take a ref out on the returned cairo_t pointer.
- * sample/GtkDemo/DemoPrinting.cs: dispose the CairoContext in
- to be a good citizen and avoid warnings.
-
-2008-04-15 Mike Kestner <mkestner@novell.com>
-
- * generator/ReturnValue.cs: use new GLib.Opaque.OwnedCopy for owned
- opaque return values.
- * glib/Opaque.cs: introduce OwnedCopy property to support returning
- owned opaque instances from native to managed callbacks.
- [Fixes #374641]
-
-2008-04-15 Mike Kestner <mkestner@novell.com>
-
- * gtk/Gtk.metadata: hide GtkKey_ for manual impl.
- * gtk/Key.cs: manual implementation to manage delegate wrapper
- persistence. [Fixes #378989]
-
-2008-04-15 Mike Kestner <mkestner@novell.com>
-
- * gtk/FileSystemModel.custom: remove dead file.
-
-2008-04-15 Mike Kestner <mkestner@novell.com>
-
- * glib/Marshaller.cs: marshal null string arrays as a null IntPtr[].
- [Fixes #378514]
-
-2008-04-14 Mike Kestner <mkestner@novell.com>
-
- * gtk/Application.cs: add QuitPrepare event for Gnome.Program usage.
-
-2008-04-08 Marek Habersack <mhabersack@novell.com>
-
- * generator/InterfaceGen.cs: added a check for null obj in the
- generated GetObject method.
-
-2008-04-04 Mike Kestner <mkestner@novell.com>
-
- * atk/Atk.metadata: add a few more owned refs.
-
-2008-04-04 Mike Kestner <mkestner@novell.com>
-
- * glib/Global.cs: renamed from Program.cs. Program.Name is now
- Global.ProgramName to try to avoid clashes with existing Gnome.Program
- usage.
- * gtk/Application.cs: s/GLib.Program.Name/GLib.Global.ProgramName.
-
-2008-04-04 Mike Kestner <mkestner@novell.com>
-
- * atk/Atk.metadata: markup all the Ref* methods to indicate owned refs.
- * generator/ReturnValue.cs: Add owned object ToNative handling.
- * generator/VirtualMethod.cs: Split ToNative call from managed method
- invocation to avoid duplicate calls in null checking scenarios.
- * glib/Object.cs: add OwnedHandle property for use by language binding
- code which needs to pass owned refs to native methods.
-
-2008-04-04 Mike Kestner <mkestner@novell.com>
-
- * atk/Object.custom: take out a ref on the return value of
- OnRefChild. Also add some null guarding and default to IntPtr.Zero
- on exceptions.
-
-2008-04-01 Mike Kestner <mkestner@novell.com>
-
- * generator/InterfaceGen.cs: support "generic" interface
- implementations like those exposed by gio. This is specifically for
- libraries which return GTypes which are not exposed by the library
- but which implement GInterfaces which are exposed by the library.
-
-2008-03-28 Andres G. Aragoneses <aaragoneses@novell.com>
-
- * atk/Object.custom: custom properties for overriding class methods.
- * atk/Makefile.am: include Object.custom.
- * atk/glue/object.c: glue to override class methods.
- * atk/glue/Makefile.am: include object.c.
-
-2008-03-27 Andres G. Aragoneses <aaragoneses@novell.com>
-
- * glib/Program.cs: Add new static class for utility property, moving
- the code to call g_set_prgname() from gtk/Application.cs to here,
- and changing return value of g_set_program_name from bool to void.
- * gtk/Application.cs: Use Program.Name as a replacement of
- calling the native function g_set_prgname().
- * glib/Makefile.am: add Program.cs.
-
-2008-03-21 Mike Kestner <mkestner@novell.com>
-
- * bootstrap-2.12: bump svn version
- * generator/CallbackGen.cs: add dnotify support to invoker.
- Store and respond with incoming UserData params. Start using
- __prefixed private vars to avoid collisions with parameters,
- like the 'result' params in gio.
- * generator/ManagedCallString.cs: use new data/dnotify invoker
- ctors.
- * generator/MethodBody.cs:
- * generator/Parameters.cs: don't link "out" length params to
- preceding strings.
- * generator/VMSignature.cs: don't require UserData to be last
- param, since it can have things like error after it.
-
-2008-03-21 Mike Kestner <mkestner@novell.com>
-
- * gtk/Gtk.metadata: s/GtkDestroyNotify/GDestroyNotify in vms too.
-
-2008-03-14 Mike Kestner <mkestner@novell.com>
-
- * pango/AttrList.custom: pass copies of the attrs to insert*
- since the list assumes ownership.
- * pango/Makefile.am: add new custom file.
- * pango/Pango.metadata: hide AttrList.Insert* for custom impl.
-
-2008-03-12 Mike Kestner <mkestner@novell.com>
-
- * glib/GType.cs: add an Init method for explicit initialization.
-
-2008-03-04 Mike Kestner <mkestner@novell.com>
-
- * bootstrap-2.12: update version to 2.12 and tag
-
-2008-02-29 Mike Kestner <mkestner@novell.com>
-
- * gdk/Event.cs: add New method for consistency with generated
- boxed types. Will be used by GLib.Value in the future.
-
-2008-02-29 Mike Kestner <mkestner@novell.com>
-
- * generator/ReturnValue.cs: null-term array handling.
- * glib/Marshaller.cs: marshaling methods for null-term arrays.
-
-2008-02-29 Mike Kestner <mkestner@novell.com>
-
- * sample/Action.cs: qualify Action usage.
- * sample/GtkDemo/DemoApplicationWindow.cs: qualify Action usage.
- * sample/GtkDemo/DemoUIManager.cs: qualify Action usage.
-
-2008-02-29 Mike Kestner <mkestner@novell.com>
-
- * configure.in.in: atk checks and SUBSTs.
- * atk/Util.custom: custom properties for overriding class methods.
- * atk/glue/util.c: glue to override class methods.
-
-2008-02-26 Mike Kestner <mkestner@novell.com>
-
- * generator/ByRefGen.cs: fix mismatched alloc/free.
-
-2008-02-22 Mike Kestner <mkestner@novell.com>
-
- * gdk/Pixbuf.custom: add destroy notification and pin byte[] to
- avoid GC complications. Add a couple new convenience ctors as
- well. [Fixes #362951]
-
-2008-02-21 Mike Kestner <mkestner@novell.com>
-
- * glib/Source.cs: rework proxy removal to avoid boxing profile.
- * glib/Idle.cs: save src_id in proxy to facilitate removal.
- * glib/Timeout.cs: save src_id in proxy to facilitate removal.
- [Fixes #359561]
-
-2008-02-07 Mike Kestner <mkestner@novell.com>
-
- * generator/ReturnValue.cs: null term array marshaling.
- * glib/Marshaller.cs: new marshalers for null-terminated string
- arrays. [Fixes #342113]
-
-2008-02-07 Mike Kestner <mkestner@novell.com>
-
- * generator/Parameters.cs: fix off-by-1 in null term array marshaling.
-
-2008-02-06 Mike Kestner <mkestner@novell.com>
-
- * gdk/Gdk.metadata: mark ApplyEmbeddedOrientation return as owned.
-
-2008-01-30 Mike Kestner <mkestner@novell.com>
-
- * generator/ClassBase.cs: null check ifaces in recursive method
- and signal lookup.
-
-2008-01-29 Mike Kestner <mkestner@novell.com>
-
- * generator/ManagedCallString (Setup): use error param name instead
- of hardcoding error.
-
-2008-01-29 Mike Kestner <mkestner@novell.com>
-
- * generator/VirtualMethod (CName): mangle the name.
- * generator/SymbolTable.cs (MangleName): add 'remove' and 'foreach'
- mappings. Should probably just get a C# keyword list and map all of
- them instead of onesy twoseys.
- Fixes for tnymail binding generation.
-
-2008-01-24 Lluis Sanchez Gual <lluis@novell.com>
-
- * glade/XML.custom: due to a recent Mono fix (bug #322762),
- Type.GetFields does not return private fields from base classes
- anymore, so the BindFields now has to go through the class
- hierarchy to get all fields.
-
-2008-01-23 Mike Kestner <mkestner@novell.com>
-
- * bootstrap-2.12: update version and tag 2.11.91.
-
-2008-01-22 Mike Kestner <mkestner@novell.com>
-
- * glib/Object.cs: expose an internal ToggleRef prop.
- * glib/Signal.cs: use ToggleRef for lookups instead of Object. Add
- a Free method and release connections and gchandles.
- * glib/ToggleRef.cs: add signal hash and release signals on free.
-
-2008-01-17 Mike Kestner <mkestner@novell.com>
-
- * glib/Object.cs: remove ref from Objects hash prior to releasing it.
-
-2008-01-17 Mike Kestner <mkestner@novell.com>
-
- * glib/ToggleRef.cs: check for null reference in IsAlive.
-
-2008-01-17 Mike Kestner <mkestner@novell.com>
-
- * generator/Property.cs: missing Parent null check needed for direct
- GLib.Object subclasses. Suggested by mario@gnome.cl. [Fixes #321536]
-
-2008-01-17 Mike Kestner <mkestner@novell.com>
-
- * sample/Assistant.cs: new Gtk.Assistant sample.
- * sample/Makefile.am: hook in new sample.
-
-2008-01-11 Mike Kestner <mkestner@novell.com>
-
- * bootstrap-2.12: update version to 2.11.90.
- * configure.in.in: incorporate build service patch.
- * glib/glib-sharp-2.0.pc.in: add cflags for new api.xml.
- * glib/Makefile.am: install api.xml to correct dir.
-
-2008-01-07 Mike Kestner <mkestner@novell.com>
-
- * generator/SymbolTable.cs: map "unsigned long" to LPUGen.
-
-2008-01-02 Mike Kestner <mkestner@novell.com>
-
- * gtk/MoveFocusHandler.cs: obsolete event types.
- * gtk/TextView.custom: obsolete move-focus signal.
- * gtk/Window.custom: obsolete move-focus signal.
- Compat fixes for removal of signals from gtk+ API. [Fixes #350770]
-
-2007-12-17 Mike Kestner <mkestner@novell.com>
-
- * parser/gapi_pp.pl: parse 'typedef struct\n{' properly.
-
-2007-12-12 Mike Kestner <mkestner@novell.com>
-
- * generator/Parameters.cs: fix marshaling for ArrayCount params where
- casting is required, like gsize/size_t count parameters.
-
-2007-12-11 Mike Kestner <mkestner@novell.com>
-
- * parser/gapi2xml.pl: fix tightloop in single-line prop declarations.
-
-2007-12-06 Mike Kestner <mkestner@novell.com>
-
- * * : update to 2.12 API.
-
-2007-12-04 Mike Kestner <mkestner@novell.com>
-
- * generator/SymbolTable.cs: add goffset mapping.
-
-2007-12-04 Mike Kestner <mkestner@novell.com>
-
- * configure.in.in: check for default off_t size
- * generator/SymbolTable.cs: map off_t based on configure check.
- * generator/Makefile.am: add OFF_T_FLAGS to compile.
-
-2007-12-03 Mark Probst <mark.probst@gmail.com>
-
- * generator/SymbolTable.cs: Added "where" to the list of mangled
- names.
-
-2007-11-29 Mike Kestner <mkestner@novell.com>
-
- * parser/gapi_pp.pl: collapse embedded multiline function fields
- to a single line. [Fixes #344853]
-
-2007-11-29 Mike Kestner <mkestner@novell.com>
-
- * generator/MethodBase.cs: move Name stuff from subclasses.
- Check for (G|S)et<UpperCaseLetter> in new Has props.
- * generator/Method.cs:
- * generator/VirtualMethod.cs: refactor out Name stuff. Use
- new Has(G|S)etterName props.
- * pango/Pango.metadata: workaround Has/Hash collision with
- the old broken getter check. [Fixes #344954]
-
-2007-11-29 Mike Kestner <mkestner@novell.com>
-
- * glib/Signal.cs: ignore GCHandles with null targets since
- their object has been collected. [Fixes #344250 again]
-
-2007-11-28 Mike Kestner <mkestner@novell.com>
-
- * glib/Object.cs: take ref using method param to avoid
- NREs. [Fixes #344250]
-
-2007-11-16 Mike Kestner <mkestner@novell.com>
-
- * glib/Object.cs: use toggle refs for all objects.
- de-obsolete Data hash. Add internal Signals hash.
- * glib/Signal.cs: switch to weak gchandles.
- * glib/WeakObject.cs: kill.
-
-2007-11-16 Eskil Bylund <eskil@letterboxes.org>
-
- * gtk/ListStore.custom:
- * gtk/TreeStore.custom: Implement InsertWithValues.
- * gtk/Gtk.metadata: Deprecate the old generated method.
- [Fixes #325040]
-
-2007-11-12 Mike Kestner <mkestner@novell.com>
-
- * sample/TreeModelDemo.cs: lt/gt typo bugfix [Fixes #333653]
-
-2007-11-12 Mike Kestner <mkestner@novell.com>
-
- * generator/SymbolTable.cs: remove GCallback mapping.
- * glib/GCallback.cs: kill, bad idea.
-
-2007-11-12 Mike Kestner <mkestner@novell.com>
-
- * glib/IOChannel.cs: IOChannel wrapper implementation.
- * glib/Makefile.am: build new files.
- * glib/Marshaller.cs: new string array marshaling methods.
- * glib/Spawn.cs: g_spawn* wrapper implementation.
- * sample/SpawnTests.cs: tests for the new GLib.Process class
- and a cursory exercise of IOChannel for SpawnAsyncWithPipes.
-
-2007-11-09 Mike Kestner <mkestner@novell.com>
-
- * generator/Parameters.cs: support for null_term_array attribute.
-
-2007-11-08 Mike Kestner <mkestner@novell.com>
-
- * glib/Marshaller.cs: new null-terminated string[] marshaler from
- Mono.Unix with adaptations by Michael Hutchinson.
-
-2007-11-02 Mike Kestner <mkestner@novell.com>
-
- * glib/SList.cs:
- * glib/List.cs: add Array dup of object[] ctor since we
- are passing typed arrays from generated code.
-
-2007-11-02 Mike Kestner <mkestner@novell.com>
-
- * generator/Method.cs: need to use on the Base method name to
- lookup complements and determine if the method is a getter or setter
- when an explicit interface method name is used.
-
-2007-10-24 Mike Kestner <mkestner@novell.com>
-
- * generator/SymbolTable.cs: mappings for GCallback and GSourceFunc.
- * glib/GCallback.cs: GCallback declaration.
- * glib/Source.cs: GSourceFunc declaration.
-
-2007-10-24 Mike Kestner <mkestner@novell.com>
-
- * generator/VirtualMethod.cs: clean up compiler warning and duplicate
- call.
-
-2007-10-24 Mike Kestner <mkestner@novell.com>
-
- * generator/InterfaceGen.cs: generate an Implementor prop on the
- adapters to obtain the underlying object.
-
-2007-10-22 Mike Kestner <mkestner@novell.com>
-
- * configure.in.in: add a win64 check and a compiler define for
- handling win64 32bit longs.
- * generator/LPGen.cs: use int to marshal on win64.
- * generator/LPUGen.cs: use uint to marshal on win64.
- * generator/SymbolTable.cs: remove fixme.
-
-2007-10-16 Mike Kestner <mkestner@novell.com>
-
- * gtk/CellRenderer.custom : marshal GTypes as IntPtr like the
- generator does.
- * gtk/Container.custom : ditto. [Fixes comment #8 on 327058]
-
-2007-10-15 Mike Kestner <mkestner@novell.com>
-
- * generator/InterfaceGen.cs : gen Handle props as overrides.
- * glib/GInterfaceAdapter.cs : add abstract Handle prop.
- * glib/Value.cs: add ctor (GInterfaceAdapter).
-
-2007-10-04 Peter Johanson <peter@peterjohanson.com>
-
- * gtk/Gtk.metadata: Make the public fields on Gtk.Rcstyle writeable.
-
-2007-10-04 Mike Kestner <mkestner@novell.com>
-
- * glib/DestroyNotify.cs: add CDeclCallback to the delegate.
- * glib/Signal.cs: use DestroyHelper.
- * gdk/Input.custom: use DestroyHelper.
- * gtk/Quit.custom: remove new on DestroyHelper handler.
- * gtk/TreeModelFilter.custom: remove new on DestroyHelper handler.
- * gtk/TreeViewColumn.custom: remove new on DestroyHelper handler.
-
-2007-10-02 Mike Kestner <mkestner@novell.com>
-
- * generator/*.cs: implement the interfaces on the adapters too.
- Generate an Implementor interface for users which exposes the
- methods to implement. Register based on the Implementor sub-iface.
- * gtk/*Adapter.custom: custom implementations for the custom
- interface members.
- * gtk/TreeIter.custom: make UserData public.
- * sample/TreeModelDemo.cs: sample for implementing a TreeModel
- interface.
-
-2007-10-01 Mike Kestner <mkestner@novell.com>
-
- * generator/OpaqueGen.cs: disable Copy generation fix until I can
- figure out why it breaks DnD.
-
-2007-10-01 Mike Kestner <mkestner@novell.com>
-
- * gtk/TreePath.custom: use Marshal.Copy to copy indices array.
-
-2007-10-01 Mike Kestner <mkestner@novell.com>
-
- * glib/Object.cs: add ctor (), which invokes CreateNativeObject
- to allow direct subclasses that do all the registration automatically.
-
-2007-09-21 Mike Kestner <mkestner@novell.com>
-
- * generator/*.cs: add DefaultValue prop for obtaining a
- sane value when we need to return a value but something bad has
- happened such that we can't get a real value. Needed for iface
- signal marshaling, among other places we're partially working
- around it now.
-
-2007-09-19 Mike Kestner <mkestner@novell.com>
-
- * generator/InterfaceGen.cs: remove some dead code from a previous
- implementation attempt.
-
-2007-09-19 Mike Kestner <mkestner@novell.com>
-
- * generator/VirtualMethod.cs: refactor delegate generation into
- GenerateCallback and add [CDeclCallback] which was missing.
- * generator/InterfaceGen.cs: kill GenerateDelegates. They are now
- generated by VirtualMethod.GenerateCallback.
-
-2007-09-14 Mike Kestner <mkestner@novell.com>
-
- * generator/CallbackGen.cs (GenInvoker): null check the sig field
- and set it up. This can happen when generating the marshaling types
- from dependent libraries instead of via the Generate method.
-
-2007-09-11 Mike Kestner <mkestner@novell.com>
-
- * gtk/Gtk.metadata: virtual_method rules for GInterface generation.
- * generator/ReturnValue.cs (ToNative): new method for the virtual
- method generation.
- * generator/Parameters.cs (FromNative): null guarding.
- * generator/ManagedCallString.cs: rework for interface method
- generation including callback and error param support.
- * generator/CallbackGen.cs: Invoker support. new class that deals
- with persistence of native and wrapper delegates in native to managed
- callback method signatures.
- * generator/VirtualMethod.cs: support for generation of interface
- methods, and all the funky parameters that come with that.
- * generator/InterfaceGen.cs: Fill out the adapter implementation.
- * generator/MethodBody.cs: Initialize overload. Extend ThrowsException
- to support GError outside the last parameter slot.
- * glib/GInterfaceAttribute.cs: New attribute to mark interfaces and
- obtain adapter type.
- * glib/Object.cs (AddInterfaces): interface registration method.
- * glib/GInterfaceAdapter.cs: New abstract class for interface
- adapter generation.
- * glib/Makefile.am: add new files.
-
-2007-09-11 Mike Kestner <mkestner@novell.com>
-
- * gtk/Object.custom (Destroy): add a null check to avoid
- Gtk criticals. The destroy case seems to be problematic with
- a bunch of existing code, so this turns it into a noop.
-
-2007-09-06 Mike Kestner <mkestner@novell.com>
-
- * AssemblyInfo.cs.in : add IgnoreClassInitializers attr to all.
- * generator/ObjectGen.cs : add custom-attr generation for objects.
- * glib/ClassInitializerAttribute.cs : obsolete
- * glib/IgnoreClassInitializersAttribute.cs : new assembly attr
- to avoid a blind GetMethods reflection.
- * glib/Makefile.am : add files
- * glib/TypeInitializerAttribute.cs : new attr to specify init
- method to be run at type registration.
- * gtk/Widget.custom : remove the ClassInitializerAttr.
- * gtk/Gtk.metadata : add a custom-attr node to GtkWidget.
- * sample/Subclass.cs : use the IgnoreClassInitializers attr.
-
-2007-08-14 Mike Kestner <mkestner@novell.com>
-
- * gtk/Gtk.metadata : kill a few "new" warnings in FileChooser
- implementors.
-
-2007-08-14 Mike Kestner <mkestner@novell.com>
-
- * glib/ListBase.cs : add AllocNativeElement method and an
- Append (object) method that uses it.
- * glib/List.cs : add object[] ctor using new append method.
- * glib/SList.cs : add object[] ctor using new append method.
- These are needed to return G(S)List* values as virtual method
- return values.
-
-2007-08-13 Mike Kestner <mkestner@novell.com>
-
- * generator/MethodBody.cs : finally kill the s/out ref/ref/ hack.
- * generator/Parameter.cs : ditto.
-
-2007-08-13 Mike Kestner <mkestner@novell.com>
-
- * generator/ByRefGen.cs : implement IManualMarshaler.
- * generator/Parameter.cs : use StructParameter for ByRefGen.
-
-2007-08-13 Mike Kestner <mkestner@novell.com>
-
- * generator/*.cs : switch to IntPtr marshaling for struct types
- in the managed to native direction.
- * gtk/*.custom : adjust to new gapi struct pinvoke sigs.
-
-2007-08-01 Mike Kestner <mkestner@novell.com>
-
- * generator/CallbackGen.cs : use Parameters.NativeCallbackSignature.
- * generator/Ctor.cs : use Parameters.ImportSignature prop.
- * generator/ImportSignature.cs : kill
- * generator/MethodBase.cs : kill ImportSignature prop.
- * generator/Method.cs : use Parameters.ImportSignature prop.
- * generator/NativeCallbackSignature.cs : kill
- * generator/Parameters.cs : add ImportSig and NativeCallbackSig.
- * generator/Signal.cs : use Parameters.NativeCallbackSignature prop.
- * generator/VirtualMethod.cs : use Parameters.ImportSignature prop.
-
-2007-07-31 Mike Kestner <mkestner@novell.com>
-
- * generator/Ctor.cs : Validate before generating and adjust protection
- on a couple private methods.
- * generator/Parameters.cs : remove unused var to kill warning.
-
-2007-07-30 Mike Kestner <mkestner@novell.com>
-
- * generator/MethodBody.cs : refactor finish logic into parameter.
- * generator/Parameters.cs : refactor finish logic into parameter and
- fix some failures to marshal ref params post call.
-
-2007-07-27 Mike Kestner <mkestner@novell.com>
-
- * generator/OpaqueGen.cs : only generate Copy override for methods
- with no parameters. Fixes a gnome-sharp build problem.
-
-2007-07-26 Mike Kestner <mkestner@novell.com>
-
- * parser/gapi2xml.pl : beef up error message for signal vm parse.
- [Fixes #82149]
-
-2007-07-24 Mike Kestner <mkestner@novell.com>
-
- * bootstrap-2.10 : bump version and tag 2.10.2.
-
-2007-07-20 Mike Kestner <mkestner@novell.com>
-
- * gtk/Calendar.custom : workaround invalid states in widget when
- raising month_changed signals. [Fixes #78524]
-
-2007-07-20 Mike Kestner <mkestner@novell.com>
-
- * gtk/gtk-api-2.10.raw : refresh.
- * parser/gapi_pp.pl : combine lines that end in '\' before sending
- them through the pattern matching. [Fixes #79214]
-
-2007-07-19 Mike Kestner <mkestner@novell.com>
-
- * generator/OpaqueGen.cs : override the new Copy vm if a Copy method
- exists for the type.
- * glib/Opaque.cs : add a virtual method to allow subclasses with
- Copy methods to override. Use the method in GetOpaque for unowned
- instantiations to try to obtain an owned instance. [Fixes #82037]
-
-2007-07-18 Mike Kestner <mkestner@novell.com>
-
- * gdk/EventExpose.cs : return a pointer from the get_area glue
- pinvoke to avoid VS crashes on win32.
- * gdk/glue/event.c : return a GdkRectangle* to avoid stack imbalance
- on VS debugger. [Fixes #82098]
-
-2007-07-17 Mike Kestner <mkestner@novell.com>
-
- * gtk/Gtk.metadata : map TreeModelFilter ctor param to prop to
- avoid subclass ctor exception. [Fixes #82115]
-
-2007-07-17 Mike Kestner <mkestner@novell.com>
-
- * generator/CallbackGen.cs : make GError** signatures fatal to
- avoid compilation problem in gmime-sharp.
-
-2007-07-12 Mike Kestner <mkestner@novell.com>
-
- * generator/StructBase.cs : use typeof to pass type to PtrToStruct
- to avoid an instantiation and method call. Duh.
-
-2007-07-10 Mike Kestner <mkestner@novell.com>
-
- * generator/ImportSignature.cs : use Parameter.NativeSignature
- prop and refactor out some GError handling.
- * generator/MethodBody.cs : Refactor logic into Parameters.
- * generator/Parameters.cs : add ArrayParameter, ArrayCountPair, and
- ErrorParameter subclasses to refactor spaghetti code in MethodBody.
-
-2007-07-03 Mike Kestner <mkestner@novell.com>
-
- * bootstrap-generic : use automake --foreign to make automake-1.10
- happy with gnu make function usage.
-
-2007-06-25 Mike Kestner <mkestner@novell.com>
-
- * gtk/StatusIcon.custom : present_icon is in the glue lib.
-
-2007-06-25 Ankit Jain <jankit@novell.com>
-
- * gdk/Gdk.metadata : hide Property.Get for manual impl.
- * gdk/Property.custom : manually marshal the data param in Get.
-
-2007-06-19 Mike Kestner <mkestner@novell.com>
-
- * gdk/Property.custom : obsolete compat overload for Change().
- * gdk/Gdk.metadata : array attr for Property.Change ().
- * gdk/Makefile.am : add custom file.
-
-2007-06-18 Mike Kestner <mkestner@novell.com>
-
- * bootstrap-2.10 : bump version and tag.
-
-2007-06-05 Mike Kestner <mkestner@novell.com>
-
- * glib/ManagedValue.cs (ReleaseWrapper): new method.
- * glib/Value.cs : release the ManagedValue wrapper to avoid leaks.
- [Fixes #81799]
-
-2007-05-03 Wade Berrier <wberrier@novell.com>
-
- * generator/gapi2-codegen.in:
- * parser/gapi2-fixup.in:
- * parser/gapi2-parser.in:
- Don't use 'which' anymore, as it doesn't work in all caes (ie: when symlinks are
- in the way)
-
-2007-04-28 Mike Kestner <mkestner@novell.com>
-
- * generator/NativeCallbackSignature.cs :
- * generator/Signal.cs : don't use ref IntPtr in native callback sigs
- for struct parameters. Use IntPtr and StructureToPtr. Fixes the
- layout issues in MD introduced by the structure marshaling rework.
-
-2007-04-24 Aaron Bockover <abockover@novell.com>
-
- * gtk/Widget.custom (StyleGetProperty): return null if
- gtksharp_widget_style_get_property returns FALSE (property
- doesn't exist) [Fixes #81445]
-
- * gtk/glue/widget.c (gtksharp_widget_style_get_property): check
- return of gtk_widget_class_find_style_property for NULL; function now
- returns TRUE if spec is not NULL, FALSE otherwise
-
-2007-04-23 Brad Taylor <brad@getcoded.net>
-
- * gtk/TreePath.custom: Override Equals and compare based upon the
- underlying indicies, instead of the object reference.
- [Fixes #81398]
-
-2007-04-23 Mike Kestner <mkestner@novell.com>
-
- * glib/Value.cs : add support for accessing generic struct boxed types
- as objects. [Fixes #79224]
-
-2007-04-20 Mike Kestner <mkestner@novell.com>
-
- * generator/CallbackGen.cs : switch to NativeCallbackSignature.
- * generator/GenBase.cs : add NativeCallbackType member.
- * generator/IGeneratable.cs : add NativeCallbackType member.
- * generator/ManagedCallString.cs : add guarded post call struct
- marshaling back to the native struct.
- * generator/NativeCallbackSignature.cs : new parallel to ImportSignature
- but using NativeCallbackType instead of MarshalType.
- * generator/Signal.cs : switch vm and sig marshaler callbacks to
- NativeCallbackSignature. Perform guarding post call struct marshaling
- back to the native struct.
- * generator/Parameters.cs : add NativeCallbackType member.
- * generator/SimpleBase.cs : add NativeCallbackType member.
- * generator/StructBase.cs : add NativeCallbackType member using IntPtr
- to support NULL handling.
- * gtk/NodeCellDataFunc.cs : update native marshaler sig.
-
-2007-04-17 Mike Kestner <mkestner@novell.com>
-
- * gtk/Gtk.metadata : hide TreeModel.RowsReordered signal so we can do
- a correct implementation while maintaining compat with the existing
- broken "NewOrder" parameter.
- * gtk/ListStore.custom : manual RowsReordered signal implementation.
- * gtk/RowsReorderedHandler.cs : manual implementation for preserve compat
- in the Args class. Adds NewChildOrder to replace the broken ChildOrder.
- * gtk/TreeModel.custom : manual RowsReordered signal declaration.
- * gtk/TreeModelFilter.custom : manual RowsReordered signal implementation.
- * gtk/TreeModelSort.custom : manual RowsReordered signal implementation.
- * gtk/TreeStore.custom : manual RowsReordered signal implementation.
- [Fixes #78512]
-
-2007-04-17 Ben Motmans <ben.motmans@gmail.com>
-
- * doc/en/Gtk/Widget.xml:
- removed documentation for internal method
-
-2007-04-17 Ben Motmans <ben.motmans@gmail.com>
-
- * gtk/Widget.custom:
- StyleGetPropertyValue that returns a GLib.Value when StyleGetProperty cannot automatically cast the GLib.Value (eg: Gdk.Color)
- [Fixes #81253]
- * doc/en/Gtk/Widget.xml:
- Documentation for the new StyleGetPropertyValue method and improved documentation for StyleGetProperty
- * gtk/TreeView.custom:
- OddRowColor and EvenRowColor properties
- * doc/en/Gtk/TreeView.xml:
- documentation for OddRowColor and EvenRowColor properties
-
-2007-04-12 Brad Taylor <brad@getcoded.net>
-
- * doc/en/Gtk/Widget.xml: Documentation for OnActivate, but only because
- Mike asked so nicely.
-
-2007-04-12 Mike Kestner <mkestner@novell.com>
-
- * glib/Object.cs : do the Timeout switch in the finalizer
- instead of in Dispose, where it can cause problems if people
- override Dispose.
- * generator/ObjectGen.cs : don't generate finalizers for every
- subclass, just rely on the ~GLib.Object implementation.
-
-2007-04-12 Mike Kestner <mkestner@novell.com>
-
- * glib/Idle.cs :
- * glib/Timeout.cs : don't add the CDeclCallback attr to the
- public delegate type, since it causes a MissingMethod exception
- on win32.
-
-2007-04-09 Brad Taylor <brad@getcoded.net>
-
- * gtk/glue/widget.c:
- * gtk/Widget.custom: Bind activate_signal in GtkWidgetClass.
- [Fixes #81343]
-
-2007-04-05 Mike Kestner <mkestner@novell.com>
-
- * glib/ToggleRef.cs : flush a few leftover changes from a
- ToggleRef refinement.
-
-2007-03-15 Mike Kestner <mkestner@novell.com>
-
- * generator/CallbackGen.cs : generate try/catch blocks for
- native to managed marshallers. [Fixes the rest of #80516]
-
-2007-03-08 Mike Kestner <mkestner@novell.com>
-
- * glib/Signal.cs : guard against NULL gchandles.
- * gdk/Input.custom : add try/catch blocks to native callbacks.
- * gtk/*.custom : ditto
- * gtk/NodeStore.cs : ditto
-
-2007-03-08 Mike Kestner <mkestner@novell.com>
-
- * glib/*.cs : add try/catch blocks to native callback
- methods for DestroyNotify, Copy/Free, and ToggleNotify handlers.
- Raise UnhandledException events on catches.
-
-2007-03-06 Mike Kestner <mkestner@novell.com>
-
- * generator/Signal.cs : add try/catch blocks to native callback
- virtual method delegate too.
-
-2007-03-06 Mike Kestner <mkestner@novell.com>
-
- * generator/Signal.cs : add try/catch blocks to native callback
- delegates so that exceptions are not propagated across the native
- boundary. Now raises GLib.ExceptionManager.UnhandledException.
- * glib/ExceptionManager.cs : new class with UnhandledException
- event and a static method to raise it.
- * glib/Signal.cs : wrap the generic EventHandler callback delegate
- with try/catch blocks and raise the UnhandledException event.
-
-2007-03-05 Mike Kestner <mkestner@novell.com>
-
- * gtk/Application.custom : set prgname in Init methods so
- that WM_CLASS is more appropriate. Programs using Gnome.Program
- already get a nice prgname, but Gtk.Application.Init apps were
- getting a path instead of a filename without extension.
-
-2007-03-01 Brad Taylor <brad@getcoded.net>
-
- * gtk/Dialog.custom: obsolete old, improperly bound
- SetAlternateButtonOrderFromArray.
- * gtk/Gtk.metadata: fix binding of the
- gtk_dialog_set_alternate_button_order_from_array. [Fixes #80706]
-
-2007-03-01 Mike Kestner <mkestner@novell.com>
-
- * generator/MethodBody.cs : handle set method conversion to
- property for array parameters with preceding count params.
-
-2007-02-21 Peter Johanson <peter@peterjohanson.com>
-
- * gtk/glue/cellrenderer.c: revert to previous implementation of
- _base_ functions to maintain backward-stability. [Fixes #77949]
-
-2007-02-16 Peter Johanson <peter@peterjohanson.com>
-
- * gtk/CellRenderer*.custom: new custom overrides for VMs.
- * gtk/glue/cellrenderer.c: add GType parameters to the invoke methods
- so we can identify the correct vtable to invoke from.
-
-2007-02-16 Mike Kestner <mkestner@novell.com>
-
- * glib/Object.cs : switch to ToggleRefs for all items created with
- CreateNativeObject. This gets all managed subclasses, with a little
- overhang into simple wrappers.
- * glib/ToggleRef.cs : new class to manage the weak to strong ref
- transitions as a native object flips between shared and unshared
- ownership.
- * gtk/Object.custom : revamp of the Destroyed signal handling.
- * gtk/Gtk.metadata : hide destroy signal so we can deal with it
- manually. [Fixes the reopen note of #72018.]
-
-2007-02-03 Mike Kestner <mkestner@novell.com>
-
- * gtk/StatusIcon.custom : obsolete overload for backcompat on
- GetGeometry, and custom PresentMenu method to invoke new glue.
- * gtk/glue/statusicon.c : glue method to connect to gtk_menu_popup
- without having to go across the native/managed boundary multiple
- times using gtk_status_icon_position_menu wrapper.
- [Fixes #79500]
-
-2007-02-02 Brad Taylor <brad@getcoded.net>
-
- * gdk/Gdk.metadata: fix incorrect ref_count with Pixbuf's
- RotateSimple method.
-
-2007-01-09 Mike Kestner <mkestner@novell.com>
-
- * generator/CallbackGen.cs : add PersistUntilCalled method generation
- to the wrapper class. Holds a GCHandle for the wrapper which is Freed
- when the delegate is invoked.
- * generator/MethodBody.cs : add "async" case for delegate scope. Use
- this scope to identify a callback parameter that needs to persist
- until the native side calls back. Only valid for single-invoke
- callbacks.
- * gtk/Gtk.metadata : mark Print.RunPageSetupDialogAsync done_cb param
- with the new async scope.
-
-2007-01-09 Mike Kestner <mkestner@novell.com>
-
- * sample/GtkDemo/DemoPixbuf.cs : use Marshal.Copy properly
- to avoid expose crashes. Revised from patch provided by
- Fabian Sturm. [#78262]
-
-2007-01-09 Mike Kestner <mkestner@novell.com>
-
- * sample/GtkDemo/DemoIconView.cs : use Gtk.Stock icons to avoid
- crashes when the previous gnome icons aren't installed. [#78212]
-
-2007-01-09 Bart Deleye <bart.deleye@gmail.com>
-
- * parser/gapi_pp.pl : regex fix for tinymail parse.
-
-2007-01-09 Brad Taylor <brad@getcoded.net>
-
- * gdk/Pixbuf.custom: Properly dispose of PixbufLoaders when we're done
- with them.
-
-2006-12-28 Brad Taylor <brad@getcoded.net>
-
- * sample/GtkDemo/Makefile.am:
- * sample/GtkDemo/DemoPrinting.cs: Fix build on Win32.
-
-2006-08-21 Mike Kestner <mkestner@novell.com>
-
- * bootstrap-2.10 : tag and bump version to 2.10.0.
-
-2006-08-10 Mikkel Kruse Johnsen <mikkel@linet.dk>
-
- * sample/GtkDemo/DemoPrinting.cs : new Gtk.Print sample.
- * sample/GtkDemo/Makefile.am : build new source.
-
-2006-08-10 Mike Kestner <mkestner@novell.com>
-
- * pango/Pango.metadata : add library attr to pango_cairo methods.
- * pango/pango-sharp.dll.config.in : add libpangocairo mapping.
-
-2006-08-10 Mike Kestner <mkestner@novell.com>
-
- * pango/Pango.metadata : some pango_cairo fixup.
- * pango/pango-api-2.10.raw : regen with pangocairo.h API.
- * sources/gtk-sharp-2.10-sources.xml : don't exclude pangocairo.h.
-
-2006-08-10 Mike Kestner <mkestner@novell.com>
-
- * parser/gapi2xml.pl : class parsing regex needs to handle protected
- comments too.
-
-2006-08-07 Mike Kestner <mkestner@novell.com>
-
- * gtk/Gtk.metadata : remainder of new API massaging for existing
- types.
- * gtk/Printer.custom : new static method.
- * gtk/TextBuffer.custom : serialization API implementations.
-
-2006-08-07 Mike Kestner <mkestner@novell.com>
-
- * gtk/Gtk.metadata : mark an out param in Style.LookupColor.
- Some tweaks to duplicated label api.
-
-2006-08-07 Mike Kestner <mkestner@novell.com>
-
- * gtk/Gtk.metadata : markup for new Clipboard Rich text funcs.
- * gtk/Clipboard.custom : manually implement RequestRichText and
- WaitForRichText methods to deal with array marshaling and delegate
- persistence.
-
-2006-08-04 Mike Kestner <mkestner@novell.com>
-
- * gtk/Gtk.metadata : a few tweaks to the 2.10 API found in doc/
- audit pass.
-
-2006-08-04 Mike Kestner <mkestner@novell.com>
-
- * gdk/Screen.custom : manually implement FontOptions property so
- we can use reflection to access the internal Mono.Cairo ctor.
- * gdk/Gdk.metadata : list marshaling, method-to-property renames,
- and some hides form manual implementation. Hide
- gdk_atom_intern_static_string wrapper since it is pointless outside
- the context of C code.
-
-2006-08-03 Mike Kestner <mkestner@novell.com>
-
- * pango/pango-api-2.10.raw : regen for 1.12.x
- * sources/Makefile.am : use pango-1.12.3 for parse
- * sources/gtk-sharp-2.10-sources.xml : ditto
-
-2006-08-01 Mike Kestner <mkestner@novell.com>
-
- * gtk/Gtk.metadata : fix a couple of compat breaks against 2.8.
- * gtk/TreeModelFilter.cs : hand implement ConvertChildIterToIter
- to match the 2.8 version of the method.
-
-2006-08-01 Mike Kestner <mkestner@novell.com>
-
- * gtk/gtk-api-2.10.raw : reparsed
- * parser/gapi_pp.pl : put a newline after G_DEFINE_TYPE macros
- on the output and do a next if we shouldn't fall out of the
- branch.
-
-2006-07-29 Alp Toker <alp@atoker.com>
-
- * sample/GstPlayer.cs: Remove the 2002 GStreamer sample. gst-sharp has
- long since found a new home.
-
-2006-07-28 Mike Kestner <mkestner@novell.com>
-
- * *: huge amounts of surgery to split off gnome-sharp module.
- Clean out all the gnome related stuff from the auto* files.
- make distcheck works on the leaner-meaner gtk-sharp module.
-
-2006-07-27 Mike Kestner <mkestner@novell.com>
-
- * bootstrap*: kill the 2.4/2.6/2.8 straps, they are on a
- branch now. update 2.10 strap for new apis.
- * sources/Makefile.am : parse 2.16 sources for gnome libs.
- * sources/gtk-sharp-2.10-sources.xml : ditto.
- * parser/gapi-parser.cs : explicitly use an indented XML writer.
- * gnomevfs/gnome-vfs-api-2.16.raw: regen
- * gnomevfs/Gnomevfs.metadata: some build fixes
- * gnome/gnome-api-2.16.raw: regen
- * gnome/Gnome.metadata: some build fixes
- * sample/PrintSample.cs: remove new Gtk/Gnome ambiguities.
-
-2006-07-27 Mike Kestner <mkestner@novell.com>
-
- * gnome/PanelApplet.custom : hold UIVerbs in SetupMenu so the
- callback delegates don't get GC'd.
-
-2006-07-15 Mike Kestner <mkestner@novell.com>
-
- * parser/gapi2xml.pl : regex fix needed for vfs 2.15.3 parse.
-
-2006-07-15 Mike Kestner <mkestner@novell.com>
-
- * sources/gtk-sharp-2.10-sources.xml : update to gnome 2.15.4
- sources for the 2.10 api build.
- * sources/Makefile.am : ditto.
-
-2006-07-14 Mike Kestner <mkestner@novell.com>
-
- * sources/gtk-sharp-2.10-sources.xml : update to gtk+-2.10.0
- and pango-1.13.3
- * sources/Makefile.am : ditto.
- * gtk/Gtk.metadata : some hides and renames to fix build.
- * gdk/gdk-api-2.10.raw : refresh.
- * gtk/gtk-api-2.10.raw : refresh.
- * pango/pango-api-2.10.raw : refresh.
-
-2006-07-14 Mike Kestner <mkestner@novell.com>
-
- * sample/gnomevfs/Makefile.am : build fix for !ENABLE_GNOMEVFS.
-
-2006-06-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
-
- * glade/HandlerNotFoundExeception.cs:
- * glade/XML.custom: provide a better error when the signature of a
- handler does not match the one of the event.
-
-2006-05-10 Mike Kestner <mkestner@novell.com>
-
- * bootstrap-2.10 : strap for the new 2.9.0 API.
- * generator/SymbolTable.cs : add GLib.InitiallyUnowned mapping.
- * glib/InitiallyUnowned.cs : new floating class "stub".
- * glib/Makefile.am : build new class.
- * gdk/gdk-api-2.10.raw: parse from 2.9.0
- * gtk/Gtk.metadata: cleanup conflicts in 2.10 API.
- * gtk/gtk-api-2.10.raw: parse from 2.9.0
- * pango/pango-api-2.10.raw: parse from 1.11.99
- * sources/Makefile.am : 2.10 parse setup and api-2.10
- * sources/gtk_tree_model_signal_fix-2.10.patch : 2.10 patch.
- * sources/gtk-sharp-2.10-sources.xml : parse rules for 2.10
-
-2006-05-08 Joe Shaw <joeshaw@novell.com>
-
- * glib/ValueArray.cs: Don't immediately free ValueArrays; queue
- them up to be freed in the main thread by using a Timeout. This
- fixes SMP deadlocks when the GValues contained therein aren't
- threadsafe (like GDK resources). Fixes Novell bug #168650.
-
-2006-05-04 Peter Johanson <peter@peterjohanson.com>
-
- * gtk/glue/cellrenderer.c: Revert r59683, as it causes issues for
- overrides calling base.GetSize (), etc.
-
-2006-05-03 Mike Kestner <mkestner@novell.com>
-
- * gdk/Drawable.custom : remove manual DrawPoints impl.
- * gdk/Gdk.metadata : properly mark array and count params for
- Drawable.DrawPoints.
-
-2006-05-02 Zac Bowling <zac@zacbowling.com>
-
- * docs/en/Gdk/Drawable.xml
- * gdk/Drawable.custom
- * gdk/Gdk.metadata : Fix Drawable.DrawPoints points param signature.
-
-2006-04-20 Peter Johanson <peter@peterjohanson.com>
-
- * gtk/glue/cellrenderer.c: Make GetSize, Render, etc behave correctly
- for all cases. Fixes #77949.
-
-2006-04-15 Zac Bowling <zac@zacbowling.com>
-
- * README.generator : Updated with link to GAPI guide on Wiki
-
-2006-03-27 Mike Kestner <mkestner@novell.com>
-
- * gnomevfs/MimeType.cs : remove string from all pinvoke sigs. now
- adheres to the const/non-const conventions specified in the vfs
- headers. Fixes #77534.
-
-2006-03-27 Mike Kestner <mkestner@novell.com>
-
- * glib/ListBase.cs : deal with ownership of Opaque elements.
- * glib/Marshaller.cs : add a hack to deal with Opaque ownership in
- ListToArray marshaling.
-
-2006-02-28 Mike Kestner <mkestner@novell.com>
-
- * bootstrap-2.* : update for 2.x.2 releases.
-
-2006-02-28 Mike Kestner <mkestner@novell.com>
-
- * pango/Context.custom : use ReadIntPtr (ptr, offset) for 64 bit.
- * pango/FontFamily.custom : use ReadIntPtr (ptr, offset) for 64 bit.
- * pango/FontMap.custom : use ReadIntPtr (ptr, offset) for 64 bit.
- * pango/Layout.custom : use ReadIntPtr (ptr, offset) for 64 bit.
-
-2006-02-28 Mike Kestner <mkestner@novell.com>
-
- * gdk/Region.custom : 64 bit fix for ptr arithmetic. [Fixes #77658]
-
-Tue Feb 28 09:44:23 CET 2006 Paolo Molaro <lupus@ximian.com>
-
- * gdk/Pixbuf.custom: use correct type for buffer_size in
- gdk_pixbuf_save_to_bufferv() (fixes bug# 77662).
-
-2006-02-16 Mike Kestner <mkestner@novell.com>
-
- * sample/gnomevfs/Makefile.am : make TestXfer conditional to a mono
- build since it uses Mono.GetOptions. [Fixes #77497]
-
-2006-02-03 Mike Kestner <mkestner@novell.com>
-
- * sample/gnomevfs/TestVolume.cs : remove C# 2.0 usage.
-
-2006-02-03 Mike Kestner <mkestner@novell.com>
-
- * bootstrap-2.* : update for 2.x.1 releases.
-
-2006-02-03 Mike Kestner <mkestner@novell.com>
-
- * generator/Signal.cs : virtual method enum retvals must be case to
- Enum before casting to their ultimate type. Also dispose retval
- gvalues to avoid reference leaks.
-
-2006-01-31 Mike Kestner <mkestner@novell.com>
-
- * gnome/About.custom : fix some nullterm issues in subclass
- construction as reported on irc by latexer.
-
-2006-01-31 Mike Kestner <mkestner@novell.com>
-
- * gtk/Dialog.custom : null check a parent arg. [Fixes #77400]
-
-2006-01-22 Mike Kestner <mkestner@novell.com>
-
- * configure.in.in : work around broken vte that doesn't
- advertise its gtk+ dependency to pkg-config. [Fixes #77323]
-
-2006-01-21 Mike Kestner <mkestner@novell.com>
-
- * generator/SymbolTable.cs : alias off_t to ssize_t as it is
- signed according to harold. [Fixes #77016]
-
-2006-01-21 Mike Kestner <mkestner@novell.com>
-
- * gtk/RadioToolButton.custom : manually implement the GLib.List group
- ctors. [Fixes #76992]
-
-2006-01-17 Mike Kestner <mkestner@novell.com>
-
- * gnome/Canvas.custom : add a ctor (bool is_aa) using the
- construct-only prop.
- [Fixes #77017]
-
-2006-01-17 Wade Berrier <wberrier@novell.com>
-
- * Have vte-sharp only depend on gtk-sharp instead of gnome-sharp
- * sample/VteTest.cs: use gtk# calls instead of gnome#
- * vte/vte-sharp-2.0.pc.in: depend on gtk-sharp instead of gnome-sharp
- * configure.in.in: Allow vte to be build if gnome isn't going to be built
- [Fixes #77182]
-
-2006-01-13 Mike Kestner <mkestner@novell.com>
-
- * glib/Marshaller.cs : subtract utc_offset when marshaling to time_t.
- [Fixes #77244]
-
-2006-01-12 Mike Kestner <mkestner@novell.com>
-
- * sources/MethodBody.cs : use Utf8.GetByteCount for hidden len params.
- [Fixes #77097]
-
-2006-01-11 Mike Kestner <mkestner@novell.com>
-
- * bootstrap-2.8 : bump version to 2.8.0
-
-2005-12-30 Alp Toker <alp@atoker.com>
-
- * Thread.cs: Add GLib.Thread.Supported, should be checked to avoid doing
- Thread.Init() twice (Mono runtime initialises GLib threads itself, MS
- runtime doesn't)
- * glue/thread.c: g_thread_supported() is a macro, so needs glue
- * glue/Makefile.am:
- * glue/makefile.win32: Update makefiles with new glue file.
-
-2005-12-21 Lluis Sanchez Gual <lluis@novell.com>
-
- * generator/FieldBase.cs: Properly convert marshalled value
- to native value.
- * generator/CallbackGen.cs: Added parens to the result of ToNativeReturn,
- since it may have problems with the cast.
-
-2005-12-16 John Luke <john.luke@gmail.com>
-
- * samples/CairoSample.cs:
- * samples/GtkCairo.cs:
- * samples/Makefile.am: update the cairo sample, fixes bug #76324
-
-2005-12-16 Mike Kestner <mkestner@novell.com>
-
- * gdk/PixbufLoader.custom (InitFromAssemblyResource): move stream
- access code outside the try block so only the Load is cleaned up with
- the finally block. Add some other arg checking. [Fixes #76997]
-
-2005-12-13 Mike Kestner <mkestner@novell.com>
-
- * sources/Makefile.am : move to stable gtk 2.8 versions.
- * sources/gtk-sharp-2.8-sources.xml : move to stable gtk 2.8 versions.
- * */*.raw : regenerate.
- * gdk/Gdk.metadata : hide a few gtk+ internal methods.
- * gtk/Gtk.metadata : hide a win32 internal enum.
-
-2005-12-13 Mike Kestner <mkestner@novell.com>
-
- * bootstrap-2.8 : bump version to 2.7.90.
-
-2005-12-13 Mike Kestner <mkestner@novell.com>
-
- * gconf/GConf/Makefile.am : add GAPI_CDECL_INSERT step.
- * gconf/GConf.PropertyEditors/Makefile.am : add GAPI_CDECL_INSERT step.
-
-2005-12-13 Mike Kestner <mkestner@novell.com>
-
- * configure.in.in : check for mono-cairo.pc.
- * Makefile.include : use AC_SUBST for cairo ref.
- * gdk/Gdk.metadata : s/Cairo.Graphics/Cairo.Context.
-
-2005-12-12 Mike Kestner <mkestner@novell.com>
-
- * gnomevfs/Gnomevfs.metadata : mark some const strings.
- [Fixes #76270]
-
-2005-12-12 Mike Kestner <mkestner@novell.com>
-
- * gdk/EventClient.cs : fix native long marshaling issue. Thanks to
- ed@catmur.co.uk for the bug report and investigation.
- [Fixes #76740]
-
-2005-12-12 Itamar Rogel <chastamar@yahoo.com>
-
- * NodeView.cs : add default ctor and NodeStore setter.
- [Fixes #76827]
-
-2005-12-12 Mike Kestner <mkestner@novell.com>
-
- * generator/Signal.cs : pass byte cnt for autogenerated string length
- parameters. Thanks to Itamar Rogel for the report and a candidate
- patch. [Fixes #76952]
-
-2005-12-10 Mike Kestner <mkestner@novell.com>
-
- * gtk/gtk-api-2.8.raw : regenerated.
- * gtk/IconView.custom : manually implement a new interface method.
- * parser/gapi_pp.pl : more general G_DEFINE_TYPE_WITH_CODE parsing
- implementation.
- [Fixes #76266]
-
-2005-12-10 Mike Kestner <mkestner@novell.com>
-
- * gdk/gdk-symbols.xml : add GrabBroken mapping.
- * gdk/Event.cs : add GrabBroken to GetEvent.
- * gdk/EventGrabBroken.cs : manual Event subclass.
- * gdk/Gdk.metadata : hide new GrabBroken event.
- * gdk/Makefile.am : add new source file.
-
-2005-12-09 Mike Kestner <mkestner@novell.com>
-
- * pango/Pango.metadata : 2.8 API tweaks
- * gdk/Gdk.metadata : 2.8 API tweaks
- * gtk/Gtk.metadata : 2.8 API tweaks
- * gtk/IconView.custom : overloads for the weird ScrollToPath.
- * gtk/Makefile.am : add custom
-
-2005-11-19 Mike Kestner <mkestner@novell.com>
-
- * generator/ManualGen.cs (CallByName): add null handling.
- [Fixes #76540]
-
-2005-11-15 Ben Maurer <bmaurer@ximian.com>
-
- * gdk/Rectangle.custom: Fix up Intersect using p/invoke, per
- miguel's request.
-
-2005-11-10 Mike Kestner <mkestner@novell.com>
-
- * bootstrap-2.6 - renamed from bootstrap
- * bootstrap-2.8 : renamed from bootstrap-for-the-insane, removed
- message of doom, require Gtk 2.8. Change version to 2.7.1.
-
-2005-10-31 Wade Berrier <wberrier@novell.com>
-
- * .pc and wrapper scripts: Use relative paths so gtk-sharp is
- relocatable
-
-2005-10-19 Mike Kestner <mkestner@novell.com>
-
- * gtk/TextBuffer.custom : add some obsolete overloads for backward
- compat with some not-completely-unusable 1.0.x methods.
-
-2005-10-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
-
- * glib/Object.cs: remove the fast path. It was causing troubles with
- MD.
-
-2005-10-19 Mike Kestner <mkestner@novell.com>
-
- * gnome/PrintContext.custom (SetFont): pass the font by handle, not
- ref.
-
-2005-10-19 Mike Kestner <mkestner@novell.com>
-
- * bootstrap : bump version for 2.6.0.
- * bootstrap-2.4 : bump version for 2.4.0.
-
-2005-10-08 Miguel de Icaza <miguel@novell.com>
-
- * gtk/Application.cs (Invoke): Use Timeout instead of Idle add to
- trigger the event on the Gtk thread.
-
-2005-10-09 Mike Kestner <mkestner@novell.com>
-
- * Makefile.include : reference Mono.Cairo.dll.
- * gdk/Gdk.metadata : add cairo_t symbol element.
-
-2005-10-09 Mike Kestner <mkestner@novell.com>
-
- * configure.in.in : string quote the POLICY_VERSIONS.
- * Makefile.include : multiple policy fixes.
- * */Makefile.am : multiple policy fixes.
-
-2005-10-08 Mike Kestner <mkestner@novell.com>
-
- * generator/Signal.cs : handle enum return values GTypes.
- * gtk/TextBuffer.custom : mark Text prop !GTK_SHARP_2_8.
- [Fixes #75885]
-
-2005-10-08 Ben Maurer <bmaurer@ximian.com>
-
- * glade/XML.custom: Do not look at inherited custom
- attrs. Increases performance.
-
- * glib/SignalAttribute.cs: Add AttributeUsage attr to increase
- perf and compiler checking
-
-2005-10-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
-
- * glib/MainContext.cs: added a Depth property to p/invoke g_main_depth.
- * glib/Object.cs:
- (Dispose): immediately call g_object_unref without queueing when
- possible (MainContext.Depth > 0) and use Timeout.Add instead of Idle.Add
- to get our unref callback scheduled more reliably.
-
-2005-10-05 Mike Kestner <mkestner@novell.com>
-
- * bootstrap : bump version for beta3.
- * bootstrap-2.4 : bump version for beta3.
-
-2005-09-27 Mike Kestner <mkestner@novell.com>
-
- * glib/Opaque.cs : remove the Opaques hash. As f-spot demonstrated,
- we cannot rely on a pointer continuing to point at the same type in
- memory, since there is no destroy notification for most opaques.
- * glib/Value.cs : use more explicit GetOpaque overload.
- * gtk/Style.custom : use more explicit GetOpaque overload.
-
-2005-09-24 Christian Hergert <christian.hergert@gmail.com>
-
- * vte/Vte.metadata: Fix Vte.Terminal.SetColors to reflect proper mapping
- to vte_terminal_set_colors. palette is now Gdk.Color[].
- * sample/VteTest.cs: Update to work with fixed parameter.
- * doc/en/Vte/Terminal.xml: Update vte docs to reflect parameter fix.
-
-2005-09-23 Mike Kestner <mkestner@novell.com>
-
- * configure.in.in : expand glib-sharp-2.0.pc.
- * glib/glib-sharp-2.0.pc.in : new pc file template.
- * glib/Makefile.am : dist and install pc file.
- * gtk/gtk-sharp-2.0.pc.in : Require glib-sharp-2.0.
-
-2005-09-21 Mike Kestner <mkestner@novell.com>
-
- * bootstrap* : expose POLICY_VERSIONS variable.
- * configure.in.in : AC_SUBST new POLICY_VERSIONS.
- * Makefile.include : build/install policy assemblies.
- * policy.config.in : policy config skeleton.
- * */Makefile.am : ditto.
-
-2005-09-19 Tambet Ingo <tambet@ximian.com>
-
- * glib/Opaque.cs: Set owned property in any case. Generated code
- will set owned to false after unref.
-
-2005-09-15 Mike Kestner <mkestner@novell.com>
-
- * configure.in.in : make gtkhtml-3.8 check >= 3.8.0.
- [Fixes #76119]
-
-2005-09-15 Mike Kestner <mkestner@novell.com>
-
- * glade/Glade.metadata : mark Interface.toplevels private to allow
- manual implementation.
- * glade/Interface.custom : add manual impl for Toplevels and obsolete
- old toplevels impl.
- * glade/Makefile.am : add new custom.
-
-2005-09-15 Mike Kestner <mkestner@novell.com>
-
- * parser/gapi-fixup.cs : warn on unmatched rules. reworked from a Dan
- Winship patch. [Fixes #76088]
-
-2005-09-08 Dan Winship <danw@novell.com>
-
- * gtk/Gtk.metadata: Hide Gtk.Drag.SetIconDefault. Mark
- Gtk.TreeView.GetVisibleRect's arg as "out".
-
- * gtk/Drag.custom: gtk_drag_set_icon_default(ctx) should translate
- to Gtk.Drag.SetIconDefault(ctx), not Gtk.Drag.IconDefault = ctx.
-
- * gtk/TreeView.custom: add obsolete GetVisibleRect()
-
-2005-09-07 Mike Kestner <mkestner@novell.com>
-
- * bootstrap : bump version for beta2.
- * bootstrap-2.4 : bump version for beta2.
-
-2005-09-07 Eric Butler <eric@extremeboredom.net>
-
- * gtk/NodeStore.cs : Add Clear() method
- * doc/en/Gtk/NodeStore.xml : Add documentation for above method
-
-2005-09-07 Mike Kestner <mkestner@novell.com>
-
- * configure.in.in : check for monodoc sources dir and warn if we are
- configuring for a different prefix.
- * doc/Makefile.am : add install targets.
-
-2005-09-06 Mike Kestner <mkestner@novell.com>
-
- * gtk/NodeStore.cs : fix recursive emit of row_inserted.
-
-2005-09-02 Tambet Ingo <tambet@ximian.com>
-
- * glib/Object.cs: Clean disposed flag from resurrected objects.
-
-2005-09-02 Miguel de Icaza <miguel@novell.com>
-
- * gtk/Application.cs (Invoke): Add new overloads to easily invoke
- methods on the executing thread.
-
-2005-09-01 Miguel de Icaza <miguel@novell.com>
-
- * gtk/Application.cs (Invoke): Add sugar to invoke a method on the
- main thread.
-
-2005-09-02 Ben Maurer <bmaurer@ximian.com>
-
- * sample/NodeViewDemo.cs: take advantage of the stuff below
-
- * gtk/TreeNodeValueAttribute.cs: Allow on props
-
- * gtk/TreeNodeAttribute.cs: Obsolete column count
-
- * gtk/NodeStore.cs: Change this to not need the TreeNodeAttribute
- column count. Handle fields as well as properties.
-
-2005-08-30 Mike Kestner <mkestner@novell.com>
-
- * gdk/Event.cs : add some null guarding to GetEvent.
- [Fixes #75642]
-
-2005-08-30 Mike Kestner <mkestner@novell.com>
-
- * parser/gapi_pp.pl : ignore ifndef *_H_ lines like in 1.0.x.
- [Fixes #75938]
-
-2005-08-30 Mike Kestner <mkestner@novell.com>
-
- * gtk/NodeStore.custom : recursively emit row_inserted for AddNode.
- [Fixes #75853]
-
-2005-08-29 Mike Kestner <mkestner@novell.com>
-
- * gtk/Widget.custom : add overloads for Modify* without a Gdk.Color
- param to reset color to default. [Fixes #75913]
-
-2005-08-28 Ben Maurer <bmaurer@ximian.com>
-
- * configure.in.in: Enable doc building without mono-tools being
- built.
-
- * gtk/NodeSelection.cs: helper api
-
-2005-08-27 Peter Williams <peter@newton.cx>
-
- * gnome/Program.custom: Use a GLib.Argv in PersistentData to store
- a handle to argv, so that the unmanaged strings aren't freed out
- from under popt. This allows the popt context to actually be used.
-
-2005-08-26 John Luke <john.luke@gmail.com>
-
- * glib/Signal.cs: deal with obj.Handle == IntPtr.Zero
- to avoid assertions
-
-2005-08-25 Mike Kestner <mkestner@novell.com>
-
- * configure.in.in : move GACUTIL check forward ahead of a use.
- * Makefile.include : distcheck fixes
- * glib/Makefile.am : distcheck fixes
- * gtkdotnet/Makefile.am : distcheck fixes
-
-2005-08-25 Mike Kestner <mkestner@novell.com>
-
- * configure.in.in : add PLATFORM_WIN32 conditional. Borrow mono's
- libtool s/cyg// hack. Improve/relocate System.Drawing check.
- * Makefile.include : add gapi-cdecl-insert handling for win32.
- * glib/Makefile.am : add gapi-cdecl-insert handling for win32.
- * gtkdotnet/Makefile.am : s/-r:System.Drawing/-r:System.Drawing.dll/.
- * sample/DrawingSample.cs : remove C# 2.0-isms.
- * sample/Makefile.am : s/-r:System.Drawing/-r:System.Drawing.dll/.
-
-2005-08-25 Mike Kestner <mkestner@novell.com>
-
- * bootstrap : bump version to 2.5.90.99
- * bootstrap-2.4 : bump version to 2.3.90.99
-
-2005-08-25 Mike Kestner <mkestner@novell.com>
-
- * sample/GtkDemo/DemoIconView.cs : remove C# 2.0-isms.
- * sample/opaquetest/OpaqueTest.cs : remove C# 2.0-isms.
- * sample/valuetest/ValueTest.cs : remove C# 2.0-isms.
- * sample/PolarFixed.cs : remove C# 2.0-isms.
-
-2005-08-23 Ben Maurer <bmaurer@novell.com>
-
- * glib/Object.cs: Escape names and ensure stuff is unique.
-
-2005-08-23 Joe Shaw <joeshaw@novell.com>
-
- * generator/SymbolTable.cs: Add "unsigned" as a type
- which maps to "uint".
-
- * parser/gapi2xml.pl: Handle "type const *" return types
- as well. I think this is all of them!
-
-2005-08-23 Joe Shaw <joeshaw@novell.com>
-
- * parser/gapi2xml.pl: Fix a cut-and-paste error in handling
- "type const *" fields.
-
-2005-08-23 Mike Kestner <mkestner@novell.com>
-
- * parser/gapi2xml.pl : handle foo const * fields.
- * gnome/gnome-api-2.10.raw : regen.
-
-2005-08-23 Mike Kestner <mkestner@novell.com>
-
- * bootstrap-for-the-insane : restore the message of doom that was
- removed during the "bootstrap-generic" reorganization.
-
-2005-08-22 Joe Shaw <joeshaw@novell.com>
-
- * parser/gapi2xml.pl: Fix a minor bug handling "type const *"
- parameters.
-
-2005-08-22 Ben Maurer <bmaurer@novell.com>
-
- * gtk/TreeNode.cs: Add Interlocked.Increment rather than ++. This
- makes it safe to create tree nodes in a worker thread as long as
- you reparent them into the tree with another thread. Thanks to mk
- for allowing a bit of threadedness in :-).
-
- * gtk/NodeView.cs: Fix leak here. r=mkestner
-
-2005-08-22 Mike Kestner <mkestner@novell.com>
-
- * parser/gapi2xml.pl : handle "type const *" parameters.
- * gdk/gdk-api-2.8.raw : regened probably from one of danw's parser
- fixes. [Fixes #75844]
-
-2005-08-22 Dan Winship <danw@novell.com>
-
- * generator/Property.cs (Generate): Mark properties [Obsolete] if
- they or their accessors are marked deprecated. (Affects
- Gtk.Entry.Editable, Gtk.FontSelection.Font,
- Gtk.Notebook.*TabBorder, Gtk.Object.UserData, and a bunch of old
- Gtk.ProgressBar properties).
-
- * gtk/Gtk.metadata: Hide Entry.Editable. Mark Notebook.Homogeneous
- deprecated.
-
- * gtk/Entry.custom: Implement Editable property with an Obsolete
- pointing to IsEditable.
-
-2005-08-22 Dan Winship <danw@novell.com>
-
- * generator/CallbackGen.cs (Validate, MarshalType): if validation
- fails, set MarshalType to "" to propagate that failure into
- methods that have args of this type. [Fixes #75851]
-
-2005-08-15 Peter Williams <peter@newton.cx>
-
- * bootstrap-generic: New script, handles bootstrapping stuff generically
- and saves bootstrap settings so we can regenerate configure.in from
- configure.in.in.
-
- * bootstrap
- * bootstrap-2.4
- * bootstrap-for-the-insane: Modify to use bootstrap-generic
-
- * Makefile.am (configure.in): Add a rule to run bootstrap.status to
- regenerate configure.in if configure.in.in changes.
-
-2005-08-15 Mike Kestner <mkestner@novell.com>
-
- * bootstrap : update for 2.5.90 release.
- * bootstrap-2.4 : update for 2.3.90 release.
-
-2005-08-15 Mike Kestner <mkestner@novell.com>
-
- * gtk/glue/makefile.win32 : s/.c/.o typo.
-
-2005-08-15 Mike Kestner <mkestner@novell.com>
-
- * pango/makefile.win32 : process symbols file at fixup target.
-
-2005-08-15 Mike Kestner <mkestner@novell.com>
-
- * sample/opaquetest/Makefile.am : make clean fixes
- * sample/valtest/Makefile.am : make clean fixes
-
-2005-08-15 Dan Winship <danw@novell.com>
-
- * sample/opaquetest/Makefile.am (EXTRA_DIST): add missing files
- (generated/*.cs): fix for srcdir!=builddir
- * sample/valtest/Makefile.am (EXTRA_DIST): add missing files
- (Valobj.cs): fix for srcdir!=builddir
-
-2005-08-15 Mike Kestner <mkestner@novell.com>
-
- * glib/Object.cs : hold strong refs for managed subclasses and
- weakrefs for wrappers.
- * gtk/Object.custom : don't hold managed refs here, they are now held
- in GLib.Object.
-
-2005-08-11 Dan Winship <danw@novell.com>
-
- * parser/gapi2xml.pl (addFuncElems): if a struct or boxed type has
- a constructor or a ref, unref, or destroy method, then it must be
- a reference type, so mark it "opaque" but then also mark all of
- its fields public and writable.
-
- * */*-api*.raw: Regen
-
- * generator/Parser.cs (ParseNamespace): make the opaque attribute
- check actually look at the value of the attribute rather than just
- checking if it's there, so that you can change a struct's opaque
- attribute from "true" to "false" via metadata and have that work.
-
- * generator/BoxedGen.cs (Generate): do not generate the boxed's
- "Free" method (since it's guaranteed to crash when we pass it a
- stack pointer). If "Copy" is marked deprecated, create a
- deprecated no-op for it, otherwise just skip it (since otherwise
- it will just leak memory when we copy its result onto the stack).
-
- * pango/Pango.metadata: deprecate Pango.Color.Copy and
- Pango.Matrix.Copy. Hide some array fields in Pango.GlyphString
- that we've never generated correctly. Tweak Pango.LayoutLine
- fields to be the same as they used to be.
-
- * pango/GlyphItem.custom (glyphs, item):
- * pango/GlyphString.custom (Zero, New):
- * pango/Item.custom (Zero, New):
- * pango/LayoutRun.custom (glyphs, item): add deprecated API compat
-
- * gdk/Gdk.metadata: undo the parser's new opaquification of
- Gdk.Font; it's been deprecated since pre-gtk# times, and no one
- should be using it, so there's no point in fixing it now. Fix up a
- few other things to match how they used to be. Fix RgbCmap's
- constructor args.
-
- * gdk/RgbCmap.custom (Zero, New): deprecated API compat
-
- * gdk/PangoAttrEmbossed.custom:
- * gdk/PangoAttrStipple.custom (Zero, New, Attr): deprecated API
- compat
- (explicit operator ...): allow casting back and forth between
- Pango.Attribute. (We can't usefully make them real subclasses of
- Pango.Attribute, because there's no way for
- Pango.Attribute.GetAttribute() to be able to dtrt with them.)
-
- * gtk/Gtk.metadata: deprecate Gtk.Requisition.Copy,
- Gtk.TextIter.Copy, and Gtk.TreeIter.Copy. Mark the return value of
- TextView.DefaultAttributes as "owned". Mark TargetList's fields
- private so it stays how it used to be.
-
- * gtk/TextAttributes.custom (Zero, New): deprecated API compat
-
- * gnomevfs/Gnomevfs.metadata: remove a bunch of opaque
- declarations that the parser figures out on its own now.
-
- * art/Art.metadata:
- * glade/Glade.metadata:
- * rsvg/Rsvg.metadata: un-mark everything the parser marked opaque
- in these libraries, because all of the structs in question would
- still be unusably broken, so the API churn would be pointless.
-
-2005-08-11 Dan Winship <danw@novell.com>
-
- * generator/OpaqueGen.cs (Generate):
- * generator/StructBase.cs (Generate): Add the [Obsolete] attribute
- to deprecated structs/boxeds/opaques too. (Affects Gdk.Font,
- Gtk.Arg, Gtk.ItemFactoryEntry, Gnome.IconData, and [in 2.6]
- Gnome.Vfs.MimeAction)
-
-2005-08-09 Dan Winship <danw@novell.com>
-
- * configure.in.in: kill off all gda/gnomedb references.
- (Henceforth gda# and gnomedb# will be part of gda and gnomedb. Or
- maybe separate modules in Mono SVN. Not part of gtk-sharp though.)
-
- * Makefile.am (SUBDIRS): remove gda and gnomedb
-
- * gda/, gnomedb/: buh-bye
-
- * sources/Makefile.am: remove gda/gnomedb
-
- * sources/gda.patch, sources/gnomedb.patch: gone
-
-2005-08-09 Dan Winship <danw@novell.com>
-
- * generator/ClassBase.cs (Validate): Don't fully validate the
- parent class and interfaces (because we don't want to see the
- warnings about certain GtkWidget methods in every single library
- that defines a widget, etc). Instead, use the new
- ValidateForSubclass() method.
- (ValidateForSubclass): only validate the signals
-
- * generator/InterfaceGen.cs (ValidateForSubclass): for interfaces
- we need to validate the methods too.
-
- * generator/ObjectGen.cs (Generate): Check for interface method
- collisions against the class's own methods too, not just its other
- interfaces. Also, it's only a collision if the methods' signatures
- have the same types.
-
- * generator/Method.cs (GenerateDeclCommon): Strip "Get"/"Set" even
- in the context of "Gtk.TreeModel.GetNColumns"
-
- * generator/Signal.cs (GenDefaultHandlerDelegate): Use
- "{0}_managed" rather than "obj" for the internal variable name, to
- avoid compile problems with signals that have a parameter named
- "obj".
-
- * generator/SymbolTable.cs (MangleName): mangle "internal" to
- "_internal".
-
- * generator/CallbackGen.cs (GenWrapper): treat InterfaceGen return
- values the same as ObjectGen
-
-2005-08-09 Dan Winship <danw@novell.com>
-
- * generator/OpaqueGen.cs (Generate): Tweak the generated Ref/Unref
- a bit; only Ref the pointer if Owned is false (and then set it to
- true), and vice versa for Unref.
-
- * glib/Opaque.cs (Opaque): set owned before setting Raw, so
- that Raw will be reffed properly.
- (GetOpaque): Fix this up to dtrt in all cases with refcounted
- opaques.
-
- * gtk/TreeView.custom (GetPathAtPos): Use "GetOpaque(...)" rather
- than "new TreePath()"
-
- * sample/opaquetest/*: regression test for opaque free/ref/unref
- handling
-
- * sample/Makefile.am (SUBDIRS): add opaquetest
-
- * configure.in.in (AC_OUTPUT): add opaquetest files
-
-2005-08-04 Dan Winship <danw@novell.com>
-
- Change the way generatable validation works. Some generatable
- properties can't be set until Validate-time (eg, Method.IsGetter),
- but it's annoying for every potential user of those properties to
- have to make sure it has Validated the generatable first. So now
- we add an explicit Validate() step after everything is loaded but
- before anything is Generated, so that at Generation time,
- everything can be assumed to have been Validated.
-
- * generator/IGeneratable.cs: add "bool Validate()"
-
- * generator/CodeGenerator.cs (Main): after loading all of the
- generatables, DeAlias the SymbolTable, Validate() all the
- generatables, and discard any invalid ones.
-
- * generator/*.cs: Implement Validate() trivially in generatables
- that didn't implement it before. Move Validate() calls from
- Generate() to Validate(). Remove non-hierarchical Validate()
- calls.
-
- * generator/SymbolTable.cs: GPtrArray is IntPtr, not IntPtr[]
-
-2005-08-04 Dan Winship <danw@novell.com>
-
- * gtk/TargetList.custom: add an operator for casting to
- TargetEntry[], so you can use methods like
- TargetList.AddTextTargets() in situations where you need a
- TargetEntry[] rather than a TargetList.
-
- * gtk/glue/targetlist.c: glue for that
-
-2005-08-04 Mike Kestner <mkestner@novell.com>
-
- * generator/Ctor.cs : call Finish and HandleException for static ctor
- method bodies. [Fixes #75493]
-
-2005-08-03 Mike Kestner <mkestner@novell.com>
-
- * bootstrap : use gnome and vfs 2.10 api.
- * bootstrap-2.4 : use gnome and vfs 2.6 api.
- * bootstrap-for-the-insane : use gnome and vfs 2.10 api for now.
- * configure.in.in : substitute GNOME_REQUIRED_VERSION.
- * gnome/gnome-api.raw : rename to gnome-api-2.6.raw.
- * gnome/gnome-api-2.10.raw : new 2.10 parse.
- * gnomevfs/gnome-vfs-api.raw : rename to gnome-api-2.6.raw.
- * gnomevfs/gnome-vfs-api-2.10.raw : new 2.10 parse.
- * gnomevfs/Gnomevfs.metadata : mark MimeApplication opaque.
- * sources/Makefile.am : split gnome parse for 2.6/2.10.
- * sources/gtk-sharp-2.4-sources.xml : parse GNOME 2.6.
- * sources/gtk-sharp-2.6-sources.xml : parse GNOME 2.10.
- * sources/gtk-sharp-2.8-sources.xml : parse GNOME 2.10 for now.
-
-2005-08-02 Dan Winship <danw@novell.com>
-
- * generator/Property.cs (Generate): cast GLib.Values to
- System.Enum before casting them to an enum type, to fix the build
- with csc 1.1.
-
-2005-07-29 Dan Winship <danw@novell.com>
-
- Automatic memory management for opaque types [#49565]
-
- * glib/Opaque.cs (Owned): new property saying whether or not gtk#
- owns the memory.
- (Opaque): Set Owned to true in the void ctor and false in the
- IntPtr one.
- (GetOpaque): add a new overload that can also create opaques, a la
- GLib.Object.GetObject.
- (Ref, Unref, Free): empty virtual methods to be overridden by
- subclasses.
- (set_Raw): Unref() and possibly Free() the old value, Ref() the
- new one.
- (~Opaque, Dispose): set Raw to IntPtr.Zero (triggering Free/Unref
- if needed)
-
- * parser/gapi2xml.pl (addReturnElem): if the method is named Copy
- and returns a pointer, set the "owned" attribute on the
- return-type.
-
- * */*-api.raw: Regen
-
- * generator/HandleBase.cs (FromNative): Add new
- FromNative/FromNativeReturn overloads that takes a "bool owned"
- param. Implement the 1-arg FromNative and FromNativeReturn in
- terms of that.
-
- * generator/ObjectBase.cs (FromNative): Implement HandleBase's new
- overload. Use the two-arg version of GLib.Object.GetObject when
- "owned" is true.
-
- * generator/OpaqueGen.cs (Generate): Pull out Ref, Unref, and
- Free/Destroy/Dispose methods and handle them specially by
- overriding Opaque.Ref, .Unref, and .Free appropriately. (If any
- of the methods are marked deprecated, output a deprecated
- do-nothing method as well, to save us from having to write all
- those deprecated methods by hand.)
- (FromNative): use GetOpaque, passing "owned".
-
- * generator/ReturnValue.cs (FromNative): if the value is a
- HandleBase, pass Owned to its FromNative().
-
- * generator/Parameters.cs (Owned): new property (for use on out
- params)
- (FromNative): Call FromNative() on the generatable, handling Owned
- in the case of HandleBase.
-
- * generator/ManagedCallString.cs:
- * generator/MethodBody.cs:
- * generator/Signal.cs: use param.FromNative() rather than
- param.Generatable.FromNative(), to get ownership right.
-
- * */*.metadata: Mark opaque ref/unref/free methods deprecated
- (except where we were hiding them before). Add "owned" attributes
- to return values and out params as needed.
-
- * pango/AttrIterator.custom (GetFont): work around a
- memory-management oddity of the underlying method.
-
- * pango/AttrFontDesc.cs (AttrFontDesc): copy the passed-in
- FontDescriptor, since the attribute will assume ownership of it.
-
- * gtk/TreeView.custom (GetPathAtPos): set the "owned" flag on the
- returned TreePaths.
-
- * gtk/TargetList.custom: Remove refcounting stuff, which is
- now handled automatically
-
- * gtk/NodeStore.cs (GetPath): clear the Owned flag on the created
- TreePath so that the underlying structure doesn't get freed when
- the function returns
-
- * gtkhtml/HTMLStream.custom (Destroy): hide this and then
- reimplement it by hand to keep OpaqueGen from using it in
- Dispose(), since calling it after an HTMLStream.Close() will
- result in a crash.
-
-2005-08-01 Todd Berman <tberman@off.net>
-
- * gtk/Gtk.metadata: Change the Gtk.Style.Paint* methods to use a
- Gdk.Drawable instead of a Gdk.Window
- * doc/en/Gtk/Style.xml: Update the documentation for the above
- change.
-
-2005-07-28 Mike Kestner <mkestner@novell.com>
-
- * bootstrap-for-the-insane : beginnings of 2.8 binding.
- * */*-api-2.8.raw : 2.8 api files.
- * gdk/Gdk.metadata : work around #define used in Pixbuf props in 2.7.
- * parser/gapi2xml.pl : collision guarding for privatestruct defs.
- * sources/gtk-sharp-2.8-sources.xml : parse for 2.8.
- * sources/Makefile.am : api-2.8, get-2.8-sources, etc...
-
-2005-07-28 Dan Winship <danw@novell.com>
-
- * sources/gtk-sharp-2.4-sources.xml:
- * sources/gtk-sharp-2.6-sources.xml: exclude a bunch of
- gnome-print stuff that is not part of gnome-print's public API.
-
- * gnome/gnome-api.raw: regen
-
- * gnome/Gnome.metadata: remove some no-longer-needed metadata
-
- * gnome/GPFontEntry.custom:
- * gnome/GPPath.custom: no longer needed
-
- * gnome/FontFamily.cs: moved from FontFamily.custom, since there's
- no longer any non-custom portion of this.
-
-2005-07-27 Dan Winship <danw@novell.com>
-
- * gtk/ComboBoxEntry.custom: add an "Entry" property to cleanly
- fetch the ComboBoxEntry's Gtk.Entry
-
-2005-07-27 Dan Winship <danw@novell.com>
-
- * parser/gapi2xml.pl (addParamsElem): deal with G_CONST_RETURN in
- params... some functions use that to mark const "out" params. In
- fact, let's use it as a hint to mark them pass_as="out" too...
-
- * pango/pango-api-2.4.raw:
- * pango/pango-api-2.6.raw:
- * gtk/gtk-api-2.6.raw: Regen, fixing pango_script_iter_get_range
- and gtk_image_get_icon_name.
-
- * pango/Pango.metadata:
- * pango/ScriptIter.cs: Alas, exposing GetRange makes it clear that
- PangoScriptIter is really weird and we weren't wrapping it
- correctly before anyway, so mark the whole thing hidden and wrap
- it by hand.
-
-2005-07-25 Mike Kestner <mkestner@novell.com>
-
- * gnome/Gnome.metadata : mark IconList.GetIconFilename retval const.
- [Fixes #75530]
-
-2005-07-21 Dan Winship <danw@novell.com>
-
- * glib/Value.cs: Obsolete the EnumWrapper and UnwrappedObject
- constructors and casts. Add a new Enum cast.
- (Val): Handle Pointer values. Change the handling of Enum/Flags
- values to return the value directly rather than returning an
- EnumWrapper. Remove the Char (ie, "byte") handling since there
- aren't any char properties in all of gtk-sharp and the generator
- mistakenly converts them to strings anyway.
-
- * glib/EnumWrapper.cs:
- * glib/UnwrappedObject.cs: Mark these Obsolete.
-
- * glib/glue/type.c (gtksharp_get_parent_type,
- gtksharp_get_type_name_for_id):
- * glib/glue/value.c (gtksharp_value_get_value_type): Remove some
- unneeded glue methods.
-
- * generator/Ctor.cs (Generate):
- * generator/Property.cs (Generate): Simplify the enum and object
- property glue to not use EnumWrapper or UnwrappedObject.
-
- * sample/valtest/*: a regression test for GLib.Value
-
- * configure.in.in: add sample/valtest
-
-2005-07-21 Dan Winship <danw@novell.com>
-
- * parser/gapi2xml.pl (parseInitFunc): handle interface properties
- as well as class properties
-
- * gtk/gtk-api-2.4.raw:
- * gtk/gtk-api-2.6.raw: Regen (adding properties to GtkFileChooser).
-
- * generator/Property.cs (GenerateDecl): new method to generate
- just a property declaration (for an interface).
- (Generate): Add an "implementor" arg as with Method.Generate.
-
- * generator/InterfaceGen.cs (Generate): Generate properties. Also,
- validate methods *before* checking if they should be ignored,
- since certain Method properties aren't set until Validate-time.
-
- * generator/*.cs: misc minor changes/reorg for the above.
-
-2005-07-19 Todd Berman <tberman@off.net>
-
- * gtk/TreeSelection.custom: Add an overload for GetSelected to remove
- the need to always pass in that damn TreeModel.
- * doc/en/Gtk/TreeSelection.xml: Add documentation for the new
- overload.
-
-2005-07-19 Dan Winship <danw@novell.com>
-
- * parser/gapi2xml.pl (addParamsElem): change the handling of
- anonymous function pointer types in method signatures. Before, we
- added a <callback> child to the <parameters> node, but the
- generator just ignored it. Now we add the callback (with a made-up
- name) to the toplevel node, and add an ordinary <param> node
- referencing it to the <parameters> node. Also, if the last param
- of the callback is a gpointer, rename it from "arg#" to "data" so
- it will be treated correctly (as the user data passed from the
- calling method). [Fixes #66241]
-
- * art/art-api.raw:
- * gdk/gdk-api-2.4.raw:
- * gdk/gdk-api-2.6.raw: Regen
-
- * generator/Parameters.cs (IsHidden): loosen the definition of
- hideable user_data; it doesn't have to occur at the end of the
- parameter list, as long as there's a callback arg before it.
-
- * generator/MethodBody.cs (GetCallString): Use Parameters.IsHidden
- to decide whether or not to squash user_data params, rather than
- trying to duplicate its logic. As a side effect, this also causes
- a handful of methods that take non-hidden IntPtr arguments to
- start actually passing those arguments to C rather than always
- passing IntPtr.Zero.
-
- * generator/Method.cs (Equals, GetHashCode): Remove unnecessary
- and possibly erroneous hashing overrides.
-
- * gtk/Gtk.metadata: Hide Gtk.Container.ForeachFull, since it's
- useless and wasn't in gtk# 1.0
-
- * gtk/Menu.custom (Popup):
- * gtk/TextIter.custom (ForwardFindChar, BackwardFindChar):
- * gnome/App.custom (CreateMenusInterp, InsertMenusInterp,
- CreateToolbarInterp):
- * gnome/Client.custom (RequestInteractionInterp):
- * gnome/Popup.custom (MenuDoPopupModal, MenuDoPopup): Add
- [Obsolete] compat overloads for methods that have now lost a
- useless IntPtr.
-
-2005-07-19 Dan Winship <danw@novell.com>
-
- * generator/Parameters.cs: Remove the AllowComplexRefs flag.
- (They're always allowed now.)
-
- * generator/Signal.cs (GenVirtualMethod): Fix up the use of CSType
- vs MarshalType in the ref/out-handling code so that this can
- marshal any type.
-
-2005-07-18 Dan Winship <danw@novell.com>
-
- * parser/gapi2xml.pl: Change a few instances of
- "last if ($line =~ /^}/);" to
- "last if ($line =~ /^(deprecated)?}/);" to prevent runaway
- parsing (in particular in libgnomeui).
-
- * sources/gtk-sharp-2.4-sources.xml:
- * sources/gtk-sharp-2.6-sources.xml: exclude a handful of
- libgnomeui files that were omitted in gtk# 1.0 due to the parser
- bug, but which are entirely deprecated anyway. (Some of them
- showed up in earlier 1.9/2.4/2.6 releases but are going away again
- now.)
-
- * gnome/gnome-api.raw: Regen
-
- * gnome/Gnome.metadata: Hide a few more things that should be
- hidden, remove a few rules that aren't needed any more. Keeping
- hiding GnomeIconTheme though and using the old by-hand IconTheme
- for the moment, since the by-hand one isn't compatible with the
- autogenerated one.
-
- * gnome/IconData.cs: kill this, use the autogenerated version
-
-2005-07-13 Dan Winship <danw@novell.com>
-
- * sources/gtk-sharp-2.4-sources.xml:
- * sources/gtk-sharp-2.6-sources.xml: remove some gnome-vfs files:
- gnome-vfs-method and gnome-vfs-transform, because they're
- internal/part of the module API, and gnome-vfs-file-size.h,
- because it's generated and shouldn't be in the source tarball (and
- we don't parse it right anyway).
-
- * gnomevfs/gnome-vfs-api.raw: Regen
-
- * gnomevfs/gnomevfs-symbols.xml: add GnomeVFSFileOffset
-
- * gnomevfs/Gnomevfs.metadata: remove a whole bunch of callback
- types that are only used from methods and structs that we hide.
-
-2005-07-08 Mike Kestner <mkestner@novell.com>
-
- * */*.raw : regen.
- * parser/gapi2xml.pl : access comment doesn't have to start at
- beginning of line.
-
-2005-07-08 Mike Kestner <mkestner@novell.com>
-
- * pango/*.raw : regen.
- * sources/gtk-sharp-2.4-sources.xml : exclude some xft and fc files.
- * sources/gtk-sharp-2.6-sources.xml : exclude some xft and fc files.
-
-2005-07-07 Dan Winship <danw@novell.com>
-
- * gnome/Gnome.metadata: opaquify ModuleInfo and hide the types
- that are only used inside ModuleInfo, so we don't marshal the
- function pointers into (incorrect) delegates.
-
- * gnome/Modules.cs:
- * gnome/Program.custom: update for ModuleInfo being a class rather
- than a struct now
-
-2005-07-02 Mike Kestner <mkestner@novell.com>
-
- * generator/StructField.cs : fix name exception throw conditional.
-
-2005-07-02 Mike Kestner <mkestner@novell.com>
-
- * generator/CallbackGen.cs : implement new IAccessor iface so that
- callback fields on structs can now be accessed.
- * generator/ClassBase.cs : remove/abstract some methods incorrectly
- located here.
- * generator/ClassGen.cs : implement methods previously inherited from
- ClassBase incorrectly.
- * generator/HandleBase.cs : new base class for native ptr wrappers.
- Implements new IAccessor interface and code moved from ClassBase.
- * generator/IAccessor.cs : new iface to generate field/prop accessors.
- * generator/InterfaceGen.cs : derive from new ObjectBase.
- * generator/LPGen.cs : implement IAccessor.
- * generator/LPUGen.cs : implement IAccessor.
- * generator/ObjectBase.cs : new base class for Object/Iface types.
- * generator/ObjectGen.cs : derive from new ObjectBase.
- * generator/OpaqueGen.cs : derive from HandleBase.
- * generator/StructField.cs : refactor Generate method using new
- IAccessor interface.
- * */*.custom : add obsolete impls for some existing c_cased struct
- field accessors that are now StudlyNamed.
-
-2005-07-02 Mike Kestner <mkestner@novell.com>
-
- * generator/CallbackGen.cs : remove an old workaround that put
- the native wrapper class into the implementor's *Sharp namespace.
- Use new ImportSignature sig.
- * generator/ImportSignature.cs : don't mangle the callback wrapper
- namespace any more. Remove impl_ns ctor param and field.
- * generator/MethodBase.cs : use new MethodBody and ImportSignature
- ctor sigs.
- * generator/MethodBody.cs : drop the impl_ns ctor param.
- * generator/Signal.cs : use new ImportSignature ctor sig.
- * generator/VirtualMethod.cs : use new ImportSignature ctor sig.
-
-2005-07-01 Mike Kestner <mkestner@novell.com>
-
- * generator/Parameters.cs : init allow_complex_refs to true to fix
- build.
-
-2005-06-30 Dan Winship <danw@novell.com>
-
- * generator/Parameters.cs (AllowComplexRefs): new property for
- whether or not to allow "complex" ref/out args.
- (Validate): update for that
-
- * generator/Signal.cs: set AllowComplexRefs false on the params.
- (Validate): fix the messages
- (GenCallback, GenEventHandler): properly handle ref/out args, by
- manually pointerifying them (except for boxed args, which are
- already pointers).
-
- * glib/Marshaller.cs (StructureToPtrAlloc): Rename from
- PtrToStructureAlloc, since it wraps Marshal.StructureToPtr.
-
-2005-06-28 Mike Kestner <mkestner@novell.com>
-
- * gtk/ComboBox.custom : add ctor (string[]).
- * gtk/ComboBoxEntry.custom : add ctor (string[]).
- * sample/test/TestComboBox.cs : simple new ComboBox tester.
- * sample/test/WidgetViewer.cs : button for simple new ComboBox tester.
-
-2005-06-27 Mike Kestner <mkestner@novell.com>
-
- * gnome/CanvasBpath.custom : a BPath property to wrap the ugly Bpath
- IntPtr prop. [Fixes #75381]
-
-2005-06-24 Mike Kestner <mkestner@novell.com>
-
- * atk/Atk.metadata : couple of small api cleanups.
-
-2005-06-24 Mike Kestner <mkestner@novell.com>
-
- * gtk/Gtk.metadata : remove the one reference to FileChooserEmbed.
- * gtk/gtk-api-2.*.raw : regen.
- * sources/gtk-sharp-2.*-sources.xml : exclude FileChooserEmbed files.
-
-2005-06-23 Mike Kestner <mkestner@novell.com>
-
- * generator/ReturnValue.cs : support owned and elements_owned for lists.
- * glib/List.cs : add ctor overloads for memory mgmt.
- * glib/ListBase.cs : add ctor overloads for memory mgmt. Dispose
- elements if specified.
- * glib/SList.cs : add ctor overloads for memory mgmt.
- * gnome/Gnome.metadata : unhide and generate a List prop.
- * gnomevfs/Gnomevfs.metadata : unhide and generate a List prop.
- * gtk/FileChooser.custom : new. add hidden props.
- * gtk/FileChooserButton.custom : new. impl hidden props.
- * gtk/FileChooserDialog.custom : remove some List props and use the
- GLib.Marshaller for the remaining ones..
- * gtk/FileChooserWidget.custom : remove some List props and use the
- GLib.Marshaller for the remaining ones..
- * gtk/Gtk.metadata : unhide and let the generator do some List props.
-
-2005-06-23 Mike Kestner <mkestner@novell.com>
-
- * gconf/GConf/Client.cs : support add/remove of a single notify handle
- to multiple directories. [Fixes #55877]
-
-2005-06-22 Mike Kestner <mkestner@novell.com>
-
- * sample/GladeTest.cs : add a menu item signal connect to test for the
- problem described in bug#74946.
- * sample/test.glade : add menubar.
-
-2005-06-22 Mike Kestner <mkestner@novell.com>
-
- * sample/GtkDemo/DemoHyperText.cs : replace PersistentData usage that
- breaks on csc.
- * sample/GtkDemo/DemoTreeStore.cs : fix a 2.0 usage.
-
-2005-06-22 Mike Kestner <mkestner@novell.com>
-
- * generator/ManagedCallString.cs : don't assume ref for structs.
- * generator/VMSignature.cs : don't assume ref for structs.
-
-2005-06-21 Mike Kestner <mkestner@novell.com>
-
- * generator/ConstStringGen.cs : override ToNativeReturn ().
- * generator/ClassBase.cs : use fully qualified interface names for
- conflicting implementations.
-
-2005-06-20 Mike Kestner <mkestner@novell.com>
-
- * parser/gapi2xml.pl : fix const foo * const * fields/params.
- [Fixes #75266]
-
-2005-06-17 Mike Kestner <mkestner@novell.com>
-
- * Makefile.include : add included apis as deps on the generation
- target to force regen if dependency lib api changes.
- * pango/Analysis.custom : new custom to implement the ExtraAttrs
- property. [Fixes #74668]
- * pango/Makefile.am : add new custom file.
-
-2005-06-17 Mike Kestner <mkestner@novell.com>
-
- * bootstrap : use assembly version 2.6.0.0.
- * bootstrap-2.4 : use assembly version 2.4.0.0.
- * configure.in.in : substitute the assembly version.
-
-2005-06-14 Mike Kestner <mkestner@novell.com>
-
- * gtk/Gtk.metadata : add nodes for all the *Set props on TextTag.
- [Fixes #75219]
-
-2005-06-10 Dan Winship <danw@novell.com>
-
- * parser/gapi2xml.pl (addPropElem): Distinguish CONSTRUCT ("must
- be set at construct time") and CONSTRUCT_ONLY ("can only be set at
- construct time") properties, rather than marking them all
- "construct-only".
-
- * gnome/gnome-api.raw:
- * gtk/gtk-api-2.4.raw:
- * gtk/gtk-api-2.6.raw: Regen, causing a few formerly-read-only
- properties to become writable.
-
-2005-06-10 Mike Kestner <mkestner@novell.com>
-
- * glade/XML.custom : add a try block on field autoconnect to make it
- easier to catch type mismatches and such. Suggestion from Gonzalito.
-
-2005-06-09 Lluis Sanchez <lluis@novell.com>
-
- * glib/Marshaller.cs: Added null check in FilenamePtrToString.
-
-2005-06-08 Mike Kestner <mkestner@novell.com>
-
- * generator/SimpleBase.cs : off-by-one in namespace join.
- * glib/ListBase.cs : support IntPtr element_type.
- * gnomevfs/FileInfo.cs : make it ManualGen friendly.
- * gnomevfs/*.cs : rework for FileInfo api changes.
- * gnomevfs/Gnomevfs.metadata : make FileInfo a manual symbol.
- * gnomevfs/Uri.custom : rework for FileInfo api changes.
- * gnome/Makefile.am : add gnomevfs dependency to pick up some more api
- symbols.
- * gnome/gnome-sharp-2.0.pc.in : advertise the vfs dep.
- [Fixes #71060]
-
-2005-06-08 Mike Kestner <mkestner@novell.com>
-
- * generator/ReturnValue.cs : don't write a sem in FromNative.
- * glib/ListBase.cs : handle GLib.Object explicit element types.
- * glib/Marshaler.cs : only copy lists if Count > 0.
- * gtk/Gtk.metadata : unhide Window.ListToplevels with a proper element
- type for automatic list to array marshaling.
- * gtk/Window.custom : kill manual ListToplevels impl.
-
-2005-06-08 Mike Kestner <mkestner@novell.com>
-
- * generator/ReturnValue.cs : improved list to array marshaling.
- * glib/Marshaller.cs : added ListToArray ().
- * gnomevfs/Gnomevfs.metadata : mark element_type on
- Mime.GetAllApplications. [Fixes #71888]
-
-2005-06-06 Mike Kestner <mkestner@novell.com>
-
- * generator/ImportSignature.cs : fix native delegate namespacing hack.
- * gnomevfs/gnome-vfs-api.raw : regen.
- * gnomevfs/Gnomevfs.metadata : replace all the type renames with a
- namespace rename. remove-node several manually implemented callback
- types and broken generated types for now.
- * gnomevfs/Async.cs : use Opaque.Handle.
- * gnomevfs/Handle.cs : kill. replaced by generated GLib.Opaque type.
- * gnomevfs/Makefile.am : kill Handle.cs.
- * gnomevfs/Sync.cs : use Opaque.Handle.
- * sources/gtk-sharp-2.6-sources.xml : s/Gnome.Vfs/GnomeVFS.
-
-2005-06-06 Mike Kestner <mkestner@novell.com>
-
- * Makefile.include : depend on gapi-fixup.exe for the api target.
- * parser/gapi-fixup.cs : remove-node rule handling.
-
-2005-06-06 Dan Winship <danw@novell.com>
-
- * sample/GtkDemo/DemoRotatedText.cs (RotatedTextExposeEvent): Use
- Gdk.PangoRenderer.GetDefault() like the C gtk-demo rather than
- creating a new Gdk.PangoRenderer. [Fixes #74865]
-
- * gdk/Gdk.metadata: fix return type of Gdk.PangoRenderer.GetDefault
-
- * glib/GType.cs (cctor): call g_type_init(). (Avoids debug spew
- when monodocer updates doc/en/GLib/GType.xml.)
-
-2005-06-02 Mike Kestner <mkestner@novell.com>
-
- * gtk/gtk-api-2.6.raw : regen.
- * parser/gapi_pp.pl : add G_DEFINE_TYPE_WITH_CODE handling.
- * parser/gapi2xml.pl : add G_DEFINE_TYPE_WITH_CODE parsing.
- [Fixes #74833]
-
-2005-06-02 Mike Kestner <mkestner@novell.com>
-
- * glib/ListBase.cs : add a nested class to support filename encoded
- string element marshaling.
- * gtk/Gtk.metadata : mark the filenames and folders as filename
- encoded.
- * gtk/FileChooserDialog.custom : use new ListBase.FilenameString type
- for list element type of filenames and folders.
- * gtk/FileChooserWidget.custom : use new ListBase.FilenameString type
- for list element type of filenames and folders.
- [Fixes #72701]
-
-2005-06-02 Mike Kestner <mkestner@novell.com>
-
- * generator/ConstFilenameGen.cs : new generatable for filename encoded
- const string marshaling
- * generator/Makefile.am : add new file
- * generator/SymbolTable.cs : add new gfilename types.
- * glib/Marshaller.cs : add new filename-encoded string marshalers.
- * gtk/FileSelection.custom : use FilenamePtrToString to marshal.
- * gtk/Gtk.metadata : map the FileSelector filename types to my new
- imaginary gfilename type. [Fixes #74963]
-
-2005-06-02 Mike Kestner <mkestner@novell.com>
-
- * gtk/Object.custom : only connect to Destroyed for managed subclasses
- and let the wrappers get disposed by the GC.
-
-2005-06-01 Mike Kestner <mkestner@novell.com>
-
- * glib/Value.cs : handle enum/flags types in Val.
- [Fixes #75112]
-
-2005-06-01 Dan Winship <danw@novell.com>
-
- * glib/Value.cs: Add a constructor and an explicit cast for
- string[] (using a G_TYPE_STRV boxed value).
-
- * generator/SymbolTable.cs (SymbolTable): Map GStrv to string[].
- (The mapping relies on the above GLib.Value magic, so it only
- works correctly for properties, but that's ok, because GStrv isn't
- a real type anyway and only shows up in the api files for
- G_TYPE_STRV properties.) Makes the Gtk.AboutDialog Artists,
- Authors, and Documenters properties show up.
-
- * gtk/Gtk.metadata: hide
- AboutDialog.Get/SetArtists/Authors/Documenters, which can't be
- used to implement the Artists/Authors/Documenters properties,
- because the generated code doesn't know to NULL-terminate the
- arrays.
-
-2005-05-31 Mike Kestner <mkestner@novell.com>
-
- * glib/Object.cs : rework the weakref release mechanism to avoid a
- couple "resurrection" issues.
-
-2005-05-25 Mike Kestner <mkestner@novell.com>
-
- * configure.in.in : remove crosspkgdir arg that causes trouble with
- newer pkgconfigs.
-
-2005-05-24 Dan Winship <danw@novell.com>
-
- * parser/gapi2xml.pl: Make the enum value parser do the right
- thing with parenthesized values ("FOO = (1 << 2)") and within-type
- aliases ("GTK_ANCHOR_N = GTK_ANCHOR_NORTH"). Make it intentionally
- do the wrong thing with unparsable values (outputting them as-is
- into the api file) so that we are forced to fix them with metadata
- rather than silently getting incorrect values.
-
- * gdk/gdk-api-2.4.raw:
- * gdk/gdk-api-2.6.raw (PixdataType): Now recognized as flags,
- not enum
-
- * gtk/Gtk.metadata: hide the enums ArgFlags and RcTokenType (which
- are not used by any wrapped API, and which formerly contained
- entirely wrong values).
-
- * gtk/gtk-api-2.4.raw:
- * gtk/gtk-api-2.6.raw (AnchorType, SelectionMode): update with
- values for aliases
-
- * gnome/Gnome.metadata: fix value of Gnome.PrintButtons.Cancel
-
- * gnome/gnome-api.raw (PrintUnitBase, PaperSelectorFlags,
- PrintDialogFlags, PrintDialogRangeFlags): Now recognized as flags,
- with values.
-
-2005-05-24 John Luke <john.luke@gmail.com>
-
- * configure.in.in: remove doc/updater/Makefile to fix build
-
-2005-05-23 Mike Kestner <mkestner@novell.com>
-
- * configure.in.in : add monodocer-fu.
-
-2005-05-21 Mike Kestner <mkestner@novell.com>
-
- * audit : add a compatibility auditing framework.
- * audit/base/*.apiinfo : initial checkin of 1.0.10 API for diffs.
- * audit/extract-missing.cs : XPath tool to grab presence='missing'.
- * audit/get-apidiff.pl : diffs api-infos to the base.
- * audit/get-apiinfo.pl : drives a module-wide api-info extraction.
- * audit/get-missing.pl : drives the extract-missing.exe tool.
- * audit/makefile : all and check targets. no dist support.
- * audit/mono-api-info.cs: copied from mcs/tools/corcompare.
- * audit/mono-api-diff.cs: copied from mcs/tools/corcompare.
-
-2005-05-17 Jordi Mas i Hernandez <jordi@ximian.com>
-
- * gnome/About.custom: fixes exception when passing null argument
-
-2005-05-16 Mike Kestner <mkestner@novell.com>
-
- * makefile.win32 : remove 1.0 csc, default to 1.1.
- * gtk/TreeEnumerator.cs : remove C# 2.0 usage.
- * gtk/glue/makefile.win32 : remove duplicated cellrenderer.o.
- * vte/glue/Makefile.am : use VTE_DEPENDENCIES_CFLAGS.
- * */makefile.win32 : add glue args to generation target.
-
-2005-05-16 Mike Kestner <mkestner@novell.com>
-
- * configure.in.in : expand new vte glue makefile.
- * vte/glue/Makefile.am : add GTK_CFLAGS to fix build. Remove
- win32 dist files.
-
-2005-05-16 Dan Winship <danw@novell.com>
-
- * generator/StructBase.cs: update field-generation logic a bit
-
- * generator/CodeGenerator.cs: add a --glue-includes flag
-
- * generator/GenerationInfo.cs: Accept glue_includes value from
- Main and output it to the glue_filename.
-
- * generator/FieldBase.cs (Ignored): handle more ignorable cases.
- (CheckGlue): New method to figure out what kind of glue we'll need
- for a field.
- (GenerateImports): generate appropriate imports per CheckGlue.
- (GenerateGlue): Generate C glue for accessing a struct field;
- either a fully-C-based accessor, or a method to just return the
- field's offset in the struct.
- (Generate): Use the generated glue to read the field.
-
- * generator/PropertyBase.cs (CType): if the field is a single bit,
- set its type to gboolean.
-
- * generator/ObjectGen.cs (Generate):
- * generator/OpaqueGen.cs (Generate): Call GenFields.
-
- * generator/StructField.cs: Use FieldBase's glue-generation code
- to handle bitfields. [#54489]
-
- * generator/ObjectField.cs: Generates accessors for public fields
- of objects and opaque structs. [#69514]
-
- * generator/ClassBase.cs (ClassBase): Parse <fields> nodes and
- create ObjectField objects.
- (GenFields): Output field properties
- (IgnoreMethod): Ignore Get/Set methods that duplicate fields
-
- * generator/Makefile.am (sources): update
-
- * {gdk,gnome,gtk,pango}/*.metadata: Mark some additional fields as
- public. Rename/retype some fields for consistency with earlier
- hand-coded bindings.
-
- * {gdk,gnome,gtk,pango}/*.custom: Remove custom methods that can
- now be autogenerated.
-
- * {gdk,gnome,gtk,pango}/glue/*.c: Remove glue methods that can now
- be autogenerated
-
- * {gdk,glade,gnome,gtk,pango,vte}/Makefile.am
- * {gdk,glade,gnome,gtk,pango,vte}/glue/Makefile.am
- * {gdk,gnome,gtk,pango}/glue/makefile.win32: Update
-
-2005-05-15 Ben Maurer <bmaurer@ximian.com>
-
- * bootstrap (GTK_SHARP_VERSION): Bump so that Todd's md tarballs
- work. Not yet tagged...
-
-2005-05-13 Mike Kestner <mkestner@novell.com>
-
- * gtk/Object.custom : hold refs for all managed subclasses. Release on
- Destroy. Dispose plain wrappers on Destroy also.
- * gtk/Widget.custom : remove the parent set hack since it's "handled"
- on Gtk.Object now. All this will get fixed properly when we have
- access to owen's toggle_refs.
-
-2005-05-13 Mike Kestner <mkestner@novell.com>
-
- * generator/MethodBody.cs : don't create a new destroy notify
- delegate, just use GLib.DestroyHelper.NotifyHandler directly.
-
-2005-05-11 Mike Kestner <mkestner@novell.com>
-
- * glib/Object.cs : mark Dispose virtual.
- * gtk/Object.cs : release the Destroy handler in Dispose.
-
-2005-05-11 Mike Kestner <mkestner@novell.com>
-
- * configure.in.in : s/-g/-debug
-
-2005-05-11 Mike Kestner <mkestner@novell.com>
-
- * gtk/Gtk.metadata : hide IconTheme.GetIconSizes.
- * gtk/IconTheme.custom : implement GetIconSizes because of its zero
- terminated array return value. 2.6 only. [Fixes #74844]
-
-2005-05-11 Mike Kestner <mkestner@novell.com>
-
- * pango/Makefile.am : add file.
- * pango/Units.cs : new class to wrap PANGO_SCALE and PANGO_PIXELS.
- * pango/glue/units.c : accessors for the macros.
- * pango/glue/Makefile.am : build it.
- * pango/glue/makefile.win32 : build it on win.
- [Fixes #74837]
-
-2005-05-11 Eric Butler <eric@extremeboredom.net>
-
- * gtk/Gtk.metadata : add IEnumerable iface to ListStore.
- * gtk/ListStore.cs : add GetEnumerator.
- * gtk/Makefile.am : add file.
- * gtk/TreeEnumerator.cs : root node enumerator for a TreeModel.
-
-2005-05-11 Mike Kestner <mkestner@novell.com>
-
- * gtk/Widget.custom : manual ListMnemonicLabels implementation to
- return a Widget[]. [Fixes #74786]
-
-2005-05-11 Mike Kestner <mkestner@novell.com>
-
- * generator/ObjectGen.cs : default empty assembly names for the
- mapper. [Fixes #74769]
-
-2005-05-10 Mike Kestner <mkestner@novell.com>
-
- * gtk/Object.custom : Dispose on a Destroyed event.
- * gtk/Widget.custom : rework the parent_set hack to go direct to
- the native signal instead of using the event so we avoid rewrapping of
- already destroyed parents.
-
-2005-05-10 Mike Kestner <mkestner@novell.com>
-
- * gdk/Pixbuf.custom : use non-obsolete PixbufLoader.Write overload.
- * gdk/PixbufLoader.custom : add obsolete PixbufLoader.Write overload
- for the uint case for backcompat. Update other uses to the new ulong
- overload.
- * sample/GtkDemo/DemoImage.cs : use PixbufLoader.Write (byte[])
- overload.
-
-2005-05-09 Mike Kestner <mkestner@novell.com>
-
- * glib/Object.cs : add a try/catch block to g_object_unref calls to
- help identify "extra unref" bugs when exceptions occur.
-
-2005-05-06 John Luke <john.luke@gmail.com>
-
- * pango/Makefile.am: add Matrix.custom
- * pango/Matrix.custom: add Pango.Matrix.Identity field
- which is the equivalent of PANGO_MATRIX_INIT
- * sample/GtkDemo/DemoRotatedText.cs: use Pango.Matrix.Identity
- * doc/en/Pango/Matrix.xml: add docs for Pango.Matrix.Identity
-
-2005-05-06 Mike Kestner <mkestner@novell.com>
-
- * configure.in.in : always enable debug build in maintainer_mode.
-
-2005-05-06 Mike Kestner <mkestner@novell.com>
-
- * gdk/Pixbuf.custom : move the GetCallingAssembly invocations back out
- the the public methods.
- * gdk/PixbufLoader.custom : ditto.
-
-2005-05-06 Mike Kestner <mkestner@novell.com>
-
- * bootstrap :
- * bootstrap-2.4 : use ln instead of cp for api files so reparsing
- causes rebuilds.
- * sources/gtk-sharp-2.6-sources.xml : moved from gtk-sharp-sources.xml
- plus fixed the pango, atk, and gdk raw filenames.
- * sources/gtk-sharp-2.4-sources.xml : sources file for 2.4 api.
- * sources/Makefile.am : added 2.4/2.6 targets for api and get-source
- with make api/get-source-code getting/parsing both versions.
- * */*.raw : regenerate
-
-2005-05-06 Jose Faria <spigaz@gmail.com>
-
- * gdk/Pixbuf.custom : new width/height ctor overloads.
- * gdk/PixbufLoader.custom : new width/height ctor overloads.
-
-2005-05-04 Mike Kestner <mkestner@novell.com>
-
- * autogen.sh : error out with bootstrap help message.
- * bootstrap : replaces autogen.sh for the 2.5.x release line.
- * bootstrap-2.4 : replaces autogen.sh for the 1.9.x release line.
- * configure.in.in : renamed from configure.in and added substitution
- for version, dependencies, CFLAGS and CSFLAGS.
- * README : bootstrap docs
- * */*-api.raw : moved to api-2.6.raw for bootstrapping.
- * */*-api-2.4.raw : added 2.4 api files for bootstrapping.
- * */glue/Makefile.am : add GTK_SHARP_VERSION_CFLAGS.
- * pango/Attribute.cs : add a #if GTK_SHARP_2_6 block.
- * pango/glue/attribute.c : add a couple #ifdef GTK_SHARP_2_6 blocks.
- * sample/GtkDemo/* : make the 2.6 demos conditional.
-
-2005-05-04 Mike Kestner <mkestner@novell.com>
-
- * glib/Signal.cs : s/DestroyNotify/SignalDestroyNotify to fix mcs 1.0
- compilation.
- * gdk/Input.custom : ditto.
-
-2005-05-04 Todd Berman <tberman@off.net>
-
- * glade/XML.custom: Store the callback wrapper so it doesn't get GC'd.
-
-2005-05-04 Dan Winship <danw@novell.com>
-
- * parser/gapi2xml.pl: make note of _get_type methods for enums
-
- * */*-api.xml: Regen, adding gtype="..." to many enum types
-
- * generator/EnumGen.cs (Generate): if the enum has the
- "gtype" property, add a GTypeAttribute pointing to an internal
- FooGType class whose GType property can be used to get the enum's
- GType.
-
- * generator/ObjectGen.cs:
- s/ObjectManager.RegisterType/GType.Register/
-
- * glib/GTypeAttribute.cs: attribute for indicating a property that
- will return the GType of a type (particularly for enums, which
- can't have GType properties added to them).
-
- * glib/GType.cs: renamed from Type.cs to match the type name
- (public static readonly GType ...): add a few missing types.
- (Register): moved from ObjectManager.RegisterType
- (LookupGType): moved from TypeConverter.LookupType and extended to
- handle GTypeAttribute. Also, fix mappings for sbyte/byte/char, and
- return specific GTypes for Object subclasses rather than always
- returning GType.Object. [Fixes #74699]
- (LookupType): moved from ObjectWrapper.LookupType
- (ToString): return the type name
-
- * glib/Object.cs (RegisterGType):
- s/ObjectManager.Register/GType.Register/
- (LookupGType): Make this protected internal so GType can access
- it.
-
- * glib/ObjectManager.cs (RegisterType): deprecate in favor of
- GType.Register.
- (LookupType): moved to GType
-
- * glib/TypeConverter.cs (LookupType): now a deprecated wrapper
- around GType.LookupGType.
-
- * glib/Value.cs: Use GType casts rather than TypeConverter
-
- * gtk/NodeStore.cs (ScanType):
- * gtk/ListStore.custom (ListStore):
- * gtk/TreeStore.custom (TreeStore): Use (GType) cast rather than
- TypeConverter. Remove the error check and exception, since the
- cast never returns GType.Invalid. (The check probably predates
- GLib.ManagedValue.)
-
- * gnome/PanelAppletFactory.cs (Register): Use a GType cast rather
- than GLib.Object.LookupGType (which is no longer accessible after
- an mcs bugfix)
-
- * sample/GtkDemo/DemoIconView.cs (CreateStore): use the Type[]
- constructor rather than the GType[] constructor, since it
- translates typeof(Gdk.Pixbuf) correctly now.
-
-2005-05-04 Dan Winship <danw@novell.com>
-
- * generator/Parameters.cs (Parameters.Validate): If the parameters
- end with "callback, gpointer, GDestroyNotify", then mark the
- callback as having "notified" Scope.
- (Parameters.IsHidden): Hide user_data and GDestroyNotify after a
- callback.
- (Parameter.Scope): make this settable
- (Parameter.IsDestroyNotify): new test
-
- * generator/MethodBody.cs (Initialize): Handle "notified" callback
- scope (using a GCHandle and GLib.DestroyHelper.NotifyHandler)
-
- * generator/CallbackGen.cs (GenWrapper): Add a static
- "GetManagedDelegate" method to the wrapper type, to translate a
- native delegate back to its corresponding managed delegate.
- (FromNative): use GetManagedDelegate.
-
- * generator/ReturnValue.cs (Validate): We handle callback return
- values now
-
- * generator/SymbolTable.cs: marshal GDestroyNotify as
- GLib.DestroyNotify
-
- * glib/DestroyNotify.cs: Moved from gtk
-
- * gtk/Gtk.metadata: globally change GtkDestroyNotify to
- GDestroyNotify, but then change back the ones that are exposed in
- the API. Un-hide lots of methods we can correctly autogenerate
- now.
-
- * gtk/DestroyHelper.cs: moved to glib
-
- * gtk/*.custom: remove methods that are autogenerated now, add
- Obsolete wrappers where needed, replace Gtk.DestroyHelper usage
- with GLib.DestroyHelper.
-
- * gdk/Gdk.metadata:
- * gnome/Gnome.metadata: Turn Gdk.Drawable.SetData and
- Gnome.IconList.SetIconDataFull's GDestroyNotify args into
- gpointers so the generated API stays the same as it used to be.
-
- * rsvg/Handle.custom: implement deprecated SetSizeCallback
-
- * sample/GtkDemo/DemoIconView.cs (CreateSort): update for API
- changes
-
-2005-05-03 Mike Kestner <mkestner@novell.com>
-
- * parser/gapi2xml.pl : parse const * const * Foo () properly.
- [Fixes #74710]
-
-2005-05-02 Dan Winship <danw@novell.com>
-
- * generator/Parameters.cs (IsHidden): method to check if a
- parameter should be hidden in the managed sig (eg, because it's
- user_data, or it's the length of the preceding array/string, etc).
- (VisibleCount): the number of parameters that will actually be
- exposed in the managed signature.
- (IsAccessor): test VisibleCount, not Count
- (AccessorReturnType, AccessorName): deal with the fact that the
- accessor parameter might not be the first one.
-
- * generator/CallbackGen.cs:
- * generator/Signature.cs: use Parameters.IsHidden.
-
- * generator/Method.cs (Initialize): set is_set based on
- VisibleCount, not Count.
- (Validate): call base.Validate() before Initialize() so that
- VisibleCount will be correct in Initialize.
-
- * generator/MethodBody.cs (GetCallString, CallArrayLength,
- Initialize): update to deal with accessors with multiple args.
-
- * gtk/Clipboard.custom (SetText): implement as an Obsolete variant
- of the Text property
-
- * gtk/IconTheme.custom (SearchPath, SetSearchPath): obsolete
- SetSearchPath, implement a setter on SearchPath instead.
-
- * gtk/ListStore.custom (SetColumnTypes):
- * gtk/TreeStore.custom (SetColumnTypes): implement as an Obsolete
- variant of the ColumnTypes property.
-
- * glade/XML.custom (CustomHandler): implement as a property
- (SetCustomHandler): Mark this obsolete
-
- * glade/Global.custom (SetCustomHandler): deprecate in favor of
- XML.CustomHandler.
-
- * gnomedb/Editor.custom (SetText): implement as an Obsolete
- variant of the Text property
-
-2005-05-02 Dan Winship <danw@novell.com>
-
- Apply the parts of the generator reorganization from #69514 that
- don't actually affect the generated output
-
- * generator/PropertyBase.cs: new base class for fields and
- properties (mostly containing code formerly in Property.cs).
-
- * generator/Property.cs: derive from PropertyBase
-
- * generator/FieldBase.cs: base class for fields (containing some
- code formerly in Field.cs)
-
- * generator/StructField.cs: class for struct fields (the rest of
- what used to be Field.cs)
-
- * generator/StructBase.cs: s/Field/StructField/
-
- * gnome/Gnome.metadata: hide a few _get_ methods that the
- generator is just now noticing, to preserve the old output.
-
-2005-05-02 Mike Kestner <mkestner@novell.com>
-
- * generator/Property.cs : fix interface setter generation.
- [Fixes #74766]
-
-2005-04-27 Ben Maurer <bmaurer@ximian.com>
-
- * */Makefile.am: more build fixes
-
- * configure.in: amd64 build fix
-
-2005-04-26 Miguel de Icaza <miguel@novell.com>
-
- * gtkdotnet/Graphics.cs: Contribution from Sebastian Faltoni
- <sebastian.faltoni@gmail.com> that implements support for using
- System.Drawing on Windows.
-
-2005-04-26 Mike Kestner <mkestner@novell.com>
-
- * gtk/NodeStore.cs : implement IEnumerable.
-
-2005-04-24 Dan Winship <danw@novell.com>
-
- * pango/Attribute.cs: Base class for Pango attributes, a la
- Gdk.Event
-
- * pango/pango-symbols.xml: explain how to marshal PangoAttribute.
-
- * pango/AttrBackground.cs:
- * pango/AttrFallback.cs:
- * pango/AttrFamily.cs:
- * pango/AttrFontDesc.cs:
- * pango/AttrForeground.cs:
- * pango/AttrLanguage.cs:
- * pango/AttrLetterSpacing.cs:
- * pango/AttrRise.cs:
- * pango/AttrScale.cs:
- * pango/AttrShape.cs:
- * pango/AttrSize.cs:
- * pango/AttrStretch.cs:
- * pango/AttrStrikethrough.cs:
- * pango/AttrStrikethroughColor.cs:
- * pango/AttrStyle.cs:
- * pango/AttrUnderline.cs:
- * pango/AttrUnderlineColor.cs:
- * pango/AttrVariant.cs:
- * pango/AttrWeight.cs: subclasses of Attribute, with proper
- constructors. These don't actually correspond one-to-one with
- the underlying types, but they're nicer this way.
-
- * pango/Pango.metadata: Hide Attribute and its subclasses from the
- generator. Also hide "Attr" (which previously contained
- non-working badly-named static methods to create Attributes)
- and AttrClass (which is not really useful outside of pango
- itself).
-
- * pango/AttrIterator.custom: use Pango.Attribute.GetAttribute.
-
- * pango/glue/attribute.c: glue for Attribute and its subclasses
-
- [Fixes #52575 and its semi-dup #46552]
-
-2005-04-22 Dan Winship <danw@novell.com>
-
- * gnome/Gnome.metadata: mark GnomeTriggerActionFunction's char**
- param const
-
- * glib/Marshaller.cs (Utf8PtrToString): Add an IntPtr[]->string[]
- overload, since that's what we actually need in the case where
- it's used (above). Leave the IntPtr[]->string[] overload of
- PtrToStringGFree in case anyone is using it manually.
-
- * gtk/Gtk.metadata: hide GtkModuleInitFunc and
- GtkModuleDisplayInitFunc; they are the signatures of user-defined
- methods that gtk only ever resolves via g_module_symbol(), so
- they're not useful from C#. (And the marshalling was all wrong
- anyway...)
-
- * glib/Type.cs:
- * glib/TypeConverter.cs:
- * glib/Value.cs: sort lists of GTypes into TypeFundamental order
-
-2005-04-22 Mike Kestner <mkestner@novell.com>
-
- * configure.in : bump version to 2.5.0 for trunk.
-
-2005-04-21 Mike Kestner <mkestner@novell.com>
-
- * configure.in : require gtk+ 2.6.
- * generator/ReturnValue.cs : invalidate Callback returns for now.
- * gtk/Gtk.metadata : some renames for conflicting new API.
- * parser/gapi2xml.pl : whitespace tweak for class VM regexen.
- * sources/Makefile.am : add new patch, kill atk patch, revise dirs.
- * sources/atkhyperlink.patch : kill unnecessary patch.
- * sources/gtkclipboard.patch : add new clipboard patch.
- * sources/gtk-sharp-sources.xml : parse gtk+-2.6.
- * */*-api.raw : regen pango, atk, gdk, and gtk for new versions.
-
-2005-04-21 Dan Winship <danw@novell.com>
-
- * parser/gapi_pp.pl: add "#if 0" to $eatit_regex
-
- * gdk/EventClient.cs (gtksharp_gdk_event_client_get_time):
- * glib/Object.cs (gtksharp_get_type_id):
- * glib/Value.cs (gtksharp_object_get_ref_count,
- g_value_take_boxed):
- * gnome/PrintContext.custom (gnome_print_concat,
- gnome_print_glyphlist, gnome_print_setdash):
- * gtk/NodeStore.cs (gtksharp_node_store_new, stamp):
- * gtk/NodeView.cs (gtk_tree_view_new_with_model):
- * gtk/Widget.custom (gtksharp_gtk_widget_set_allocation):
- * pango/LayoutLine.custom (g_free): Remove unused
- prototypes/fields
-
-2005-04-21 Mike Kestner <mkestner@novell.com>
-
- * Makefile.include : make mcs shaddup about 169.
-
-2005-04-20 Mike Kestner <mkestner@novell.com>
-
- * generator/*.cs : cleanup the unused private member warnings.
-
-2005-04-20 Mike Kestner <mkestner@novell.com>
-
- * parser/gapi-parser.cs : add a directory element with child exclude
- elements to simplify source version updating.
- * sources/gtk-sharp-sources.xml : switch to directory elements.
-
-2005-04-19 Mike Kestner <mkestner@novell.com>
-
- * gdk/Gdk.metadata : add a None member to ModifierType and fix the
- definition for ModifierMask since the parser barfs on it.
- [Fixes #74594]
-
-2005-04-17 Jeroen Zwartepoorte <jeroen.zwartepoorte@gmail.com>
-
- * sample/PolarFixed.cs: (PolarFixed.PolarFixedChild): Fix compilation
- problem.
-
-2005-04-15 Mike Kestner <mkestner@novell.com>
-
- * configure.in : remove unnecessary libxml check.
- * parser/gapi-parser.cs : use a System.Xml to kill gapi_format_xml.
- * parser/formatXml.c : kill.
- * parser/Makefile.am : kill gapi_format_xml
- * */*-api.raw : enormous whitespace diff. sorry dawgs on mono-patches.
-
-2005-04-15 Mike Kestner <mkestner@novell.com>
-
- * parser/gapi-parser.cs : C# rewrite of the old perl driver script.
- * parser/gapi_parser.pl : kill.
- * parser/gapi2-parser.in : invoke via $(RUNTIME).
- * parser/Makefile.am : build rework for C# parser driver.
- * sources/Makefile.am : use $(RUNTIME) to invoke new parser assm.
-
-2005-04-12 Mike Kestner <mkestner@novell.com>
-
- * configure.in : bump version to 1.9.3 and tag.
-
-2005-04-11 Mike Kestner <mkestner@novell.com>
-
- * gdk/Pixbuf.custom : fix out params on RenderPixmapAndMask* methods.
-
-2005-04-11 Dan Winship <danw@novell.com>
-
- * generator/ClassBase.cs (ParseImplements): record both managed
- and unmanaged interface declarations.
- (Implements): check recursively
-
- * generator/ObjectGen.cs (Generate): output managed interfaces
-
- * gtk/Gtk.metadata: make Container implement IEnumerable
-
- * gtk/Container.custom (GetEnumerator): implement (a simplified
- form of Children).
- (AllChildren): add this (which accumulates the results of
- Forall()).
- (ForAll): mark ForAll(bool,CallbackInvoker) obsolete and add a
- ForAll(bool,Gtk.Callback) overload to replace it.
-
- * sample/PolarFixed.cs: new silly but fully-functional demo of
- how to subclass container.
-
- * sample/CustomNotebook.cs: kill this, since it was really
- complicated, and never fully functional.
-
- * sample/GtkDemo/DemoImages.cs (ToggleSensitivity): Use foreach
- directly on the container, rather than on its .Children.
-
-2005-04-11 Mike Kestner <mkestner@novell.com>
-
- * gtk/Quit.custom : obsolete AddFull and implement Add properly.
- * gtk/TreePath.custom : add ctor (int[] indices).
- * gtk/Gtk.metadata : hide Quit.Add* and some ellipsis methods that are
- implemented manually already.
-
-2005-04-08 Dan Winship <danw@novell.com>
-
- * configure.in: Add an --enable-debug flag, to build .mdb files
- for all of the assemblies
-
- * Makefile.include:
- * gconf/GConf/Makefile.am:
- * gconf/GConf.PropertyEditors/Makefile.am:
- * glib/Makefile.am:
- * gtkdotnet/Makefile.am (CLEANFILES): add $(ASSEMBLY).mdb
- $(ASSEMBLY): build with $(CSFLAGS). Always delete $(ASSEMBLY).mdb
- before building $(ASSEMBLY), so that if you first build with
- debugging enabled, then update, then rebuild without debugging
- enabled, you don't end up with an out-of-date .mdb file.
-
-2005-04-08 Alp Toker <alp@atoker.com>
-
- * atk/makefile.win32: gapi-cdecl-insert was called in the wrong place
- and broke the win32 build.
-
-2005-04-07 Dan Winship <danw@novell.com>
-
- * gtk/Object.custom (Raw): Always ref the object, even if it's not
- floating when we get it, since GLib assumes we hold a ref on it.
- [Fixes #74468]
-
- * gtk/Window.custom: remove refcount special-handling here
-
-2005-04-06 Mike Kestner <mkestner@novell.com>
-
- * gtk/FileFilter.custom : AddCustom delegate is destroy notified.
- * gtk/Gtk.metadata : hide FileFilter.AddCustom. hide gtk_object_get|set.
-
-2005-04-05 Mike Kestner <mkestner@novell.com>
-
- * gtk/*.custom : persistent delegates for most of the remaining
- "interesting" methods.
-
-2005-04-05 Dan Winship <danw@novell.com>
-
- * gdk/PixbufLoader.custom: Fix the new constructors to make sure
- they call Close() in the event of an exception, to prevent a
- g_warning.
-
-2005-04-05 Mike Kestner <mkestner@novell.com>
-
- * gtk/DestroyHelper.cs : implement an internal DestroyNotify handler
- to release GCHandles.
- * gtk/*.custom : rework existing persistent delegate implementations
- to use destroy notify or PersistentData.
-
-2005-04-05 Alp Toker <alp@atoker.com>
-
- * gtk/Menu.custom: don't re-implement the Screen getter in Gtk.Menu.
- Instead just return base.Screen, which is implemented by Widget.
-
-2005-04-04 Dan Winship <danw@novell.com>
-
- * pango/Scale.cs: rename the size constants to not have
- underscores in their names (and add obsolete aliases for the old
- names).
-
- * sample/GtkDemo/DemoTextView.cs: use the new names
-
-2005-04-04 Mike Kestner <mkestner@novell.com>
-
- * gtk/Gtk.metadata : mark all the call scope callback params to quiet
- the warnings.
-
-2005-04-04 Mike Kestner <mkestner@novell.com>
-
- * gdk/Gdk.metadata : hide some manually implemented callback methods.
- * gdk/*.custom : implement several methods containing persistent
- callback parameters.
- * generator/BoxedGen.cs : set gen_info.CurrentType in Generate.
- * generator/ClassGen.cs : set gen_info.CurrentType in Generate.
- * generator/Ctor.cs : set gen_info.CurrentMember in Generate.
- * generator/GenerationInfo.cs : add CurrentMember and CurrentType.
- * generator/Method.cs : set gen_info.CurrentMember in Generate.
- * generator/MethodBody.cs : always generate null guarding for array
- parameters, and add a nag for callback parameters without a scope attr.
- * generator/ObjectGen.cs : set gen_info.CurrentType in Generate.
- * generator/OpaqueGen.cs : set gen_info.CurrentType in Generate.
- * generator/Parameters.cs : kill NullOk. add Scope property.
- * generator/StructGen.cs : set gen_info.CurrentType in Generate.
- * gtk/Gtk.metadata : kill a few null_ok attrs.
- * pango/Pango.metadata : mark the callback params as call scope. kill
- a couple null_ok attrs.
-
-2005-04-01 Dan Winship <danw@novell.com>
-
- * samples/GtkDemo/*.cs: General fixup and cleanup; Remove some
- gratuitous differences from the C version. Make comment and indent
- style consistent. Don't use "this." where not needed. Override
- OnDeleteEvent rather than connecting one's own DeleteEvent signal.
-
- * sample/GtkDemo/DemoApplicationWindow.cs (static
- DemoApplicationWindow): register the Gtk logo icon with
- StockManager so it shows up correctly in the toolbar.
- (AddActions): Register the radio items as radio items so they work
- right.
-
- * sample/GtkDemo/DemoHyperText.cs (EventAfter): handle
- link-clicking from Widget.WidgetEventAfter (as in the C version),
- rather than ButtonRelease, now that WidgetEventAfter is wrapped.
-
- * sample/GtkDemo/DemoImages.cs (DemoImages): use
- Gtk.Image.LoadFromResource (particularly to make the animation
- work right).
- (OnDestroyed): handle clean up (remove the timeout, etc)
-
- * sample/GtkDemo/DemoMain.cs (LoadStream): Fix handling of blank
- lines and whitespace to match the C version.
-
- * sample/GtkDemo/DemoPixbuf.cs (Expose): Use
- System.Runtime.InteropServices.Marshal.Copy() to copy
- pixbuf.Pixels to pass to DrawRgbImageDithalign, to make this more
- like the C version (and probably faster?)
- (timeout): Remove the FIXME since it seems to work now
-
- * sample/GtkDemo/DemoStockBrowser.cs: Simplify a bunch. Use
- reflection to get the C# names of the stock icons rather than
- trying to correctly re-mangle the ids. Display the Label with the
- accelerator underlined.
-
- * sample/GtkDemo/DemoTextView.cs (AttachWidgets): use
- Gtk.Image.LoadFromResource, so the image is properly loaded as an
- animation, not a static image. Don't set the combobox's "Active"
- property (for consistency with the C version).
- (InsertText): Fix miscellaneous differences with the C version.
- Remove some leftover cruft from earlier workarounds for gtk# bugs.
-
- * sample/GtkDemo/DemoTreeStore.cs (AddColumns): Make this more
- like the C version so the checkboxes are sensitized and hidden
- correctly on a per-row basis.
-
- * sample/GtkDemo/DemoUIManager.cs: Make the radio menu items work.
-
- * sample/GtkDemo/README:
- * sample/GtkDemo/TODO: update
-
-2005-04-01 Mike Kestner <mkestner@novell.com>
-
- * gtk/TreeModelFilter.custom : manually implement SetVisibleFunc and
- SetModifyFunc to handle delegate persistence.
- * gtk/Gtk.metadata : hide methods.
-
-2005-04-01 Mike Kestner <mkestner@novell.com>
-
- * gtk/Clipboard.custom : manually implement SetWithData and
- SetWithOwner to handle delegate persistence.
- * gtk/Gtk.metadata : hide methods.
-
-2005-03-31 Dan Winship <danw@novell.com>
-
- * gdk/PixbufLoader.custom: Implement System.IO.Stream and
- resource-file constructors (using code formerly in Pixbuf.custom)
-
- * gdk/Pixbuf.custom: Redo the stream and resource ctors in terms
- of the PixbufLoader ones.
-
- * gdk/PixbufAnimation.custom: Add stream and resource ctors
-
- * gtk/Image.custom: Add stream and resource ctors
-
-2005-03-31 Mike Kestner <mkestner@novell.com>
-
- * glib/ManagedValue.cs : add null/NULL guarding to Copy, Free,
- WrapObject, and ObjectForWrapper. [Fixes #74197]
-
-2005-03-30 Jeroen Zwartepoorte <jeroen@xs4all.nl>
-
- * parser/gapi2xml.pl : parse gst type macros.
-
-2005-03-30 Anthony Taranto <voltron@emptyrhetoric.com>
-
- * gtk/Widget.custom : cause Allocation.Set to call SizeUpdate().
- * gtk/glue/widget.c : remove gtksharp_gtk_widget_set_allocation().
-
-2005-03-29 Mike Kestner <mkestner@novell.com>
-
- * gtk/TreeStore.custom : fix a CLS incompliance in the Append
- Prepend, Insert, InsertBefore, and InsertAfter methods by obsoleting
- them and adding new *Node methods that are CLS compliant.
- [Fixes #73876]
-
-2005-03-29 Mike Kestner <mkestner@novell.com>
-
- * generator/Parser.cs : add symbol type='marshal' support.
- * gdk/Event.cs : add GetEvent method to wrap arbitrary events.
- * gdk/gdk-symbols.xml : make Event, EventAny, and EventNoExpose
- marshal symbols using Event.GetEvent (). [Fixes #74184]
-
-2005-03-29 Mike Kestner <mkestner@novell.com>
-
- * glib/Marshaller.cs : special case ucs4 "0" conversion.
- [Fixes #74175]
-
-2005-03-28 Mike Kestner <mkestner@novell.com>
-
- * gdk/Pixbuf.custom : add FromDrawable static method and obsolete
- CreateFromNative, which should've been static. [Fixes #74155]
-
-2005-03-28 Mike Kestner <mkestner@novell.com>
-
- * generator/Signal.cs : Dispose the values passed to
- g_signal_chain_from_overriden in base VM invocations. [Fixes #73522]
-
-2005-03-25 Mike Kestner <mkestner@novell.com>
-
- * */makefile.win32 : add gapi-cdecl-insert to assembly target.
-
-2005-03-25 Mike Kestner <mkestner@novell.com>
-
- * generator/CallbackGen.cs : add CDeclCallback attrs to native dels.
- * generator/Signal.cs : add CDeclCallback attrs to native dels.
-
-2005-03-25 Mike Kestner <mkestner@novell.com>
-
- * */*.cs : tag native callback delegates with [CDeclCallback].
- * */*.custom : tag native callback delegates with [CDeclCallback].
-
-2005-03-24 Mike Kestner <mkestner@novell.com>
-
- * generator/CallbackGen.cs : don't create native delegates for nulls.
- * generator/ObjectGen.cs : revamp the ObjectManager code.
- * glib/Object.cs : use new ObjectManager.RegisterType overload.
- * glib/ObjectManager.cs : rewrite to kill the lameass LoadWithPartial
- hack and keep a GType to Type mapping for quicker lookup/activation.
-
-2005-03-23 Mike Kestner <mkestner@novell.com>
-
- * gapi-cdecl-insert : a little perl script to insert modopts
- * Makefile.am : dist the new script.
- for cdecl callback delegates on win32.
- * glade/makefile.win32 : use gapi-cdecl-insert
- * glade/XML.custom : add [GLib.CDeclCallback] to RawXMLConnectFunc.
- * glib/Makefile.am : add new file.
- * glib/makefile.win32 : use gapi-cdecl-insert
- * glib/CDeclCallbackAttribute.cs : new attr to tag delegates with
- that will be invoked from native code. We have to mangle the il
- with a modopt otherwise they are stdcall'd.
- * glib/ManagedValue.cs : add [GLib.CDeclCallback] to Copy/Free.
- switch to using GCHandles instead of the current IntPtr hack.
-
-2005-03-15 Mike Kestner <mkestner@novell.com>
-
- * gtk/Gtk.metadata : hide TreeSortable.SetSortFunc.
- * gtk/ListStore.custom : implement SetSortFunc for persistence.
- * gtk/Makefile.am : add custom file.
- * gtk/TreeModelSort.custom : implement SetSortFunc for persistence.
- * gtk/TreeSortable.custom : new file, add hidden method decls.
- * gtk/TreeStore.custom : implement SetSortFunc for persistence.
-
-2005-03-15 John Luke <john.luke@gmail.com>
-
- * glib/Object.cs: use IsDefined to check for ClassInitializer
- attribute, fixes a warning and is supposedly better for performance
-
-2005-03-15 Dan Winship <danw@novell.com>
-
- Re-fix for yesterday's fix that didn't actually work.
-
- * gtk/ITreeNode.cs: add a "child" arg to TreeNodeRemovedHandler
-
- * gtk/TreeNode.cs (RemoveChild, OnChildRemoved): update for that
-
- * gtk/NodeStore.cs (child_deleted_cb): use the passed-in child;
- GetNodeAtPath won't work because the parent node already removed
- the child from its list
-
-2005-03-14 Mike Kestner <mkestner@novell.com>
-
- * configure.in : rework the gtkhtml check for 3.6.
-
-2005-03-14 Dan Winship <danw@novell.com>
-
- * gtk/TreeNode.cs (AddNode): add an overload that takes a position
-
- * gtk/NodeStore.cs (AddNode): likewise
- (AddNode, child_added_cb): when adding a node, recursively connect
- to the node signals on its children
- (RemoveNode, child_deleted_cb): when removing a node, recursively
- remove its children from node_hash.
-
-2005-03-12 Mike Kestner <mkestner@novell.com>
-
- * glade/Glade.metadata : mark the XMLCustomWidgetHandler string params
- const-gchar*. Wonder how many of these are gonna screw us?
-
-2005-03-12 Mike Kestner <mkestner@novell.com>
-
- * gtk/TreeViewColumn.custom : use PersistentData to hold the
- CellDataFuncs.
-
-2005-03-12 Mike Kestner <mkestner@novell.com>
-
- * glib/Makefile.am : add new file.
- * glib/Object.cs : add protected PersistentData hash to hold data
- across GC cycles.
- * glib/WeakObject.cs : new object to hold managed refs weakly against
- the native object.
- * gtk/ListStore.custom : hold refs for DefaultSortFuncs.
- * gtk/TreeModelSort.custom : hold refs for DefaultSortFuncs.
- * gtk/TreeStore.custom : hold refs for DefaultSortFuncs.
-
-2005-03-12 Mike Kestner <mkestner@novell.com>
-
- * generator/CallbackGen.cs : don't derive Wrappers from DelegateWrapper
- any more. It leaks delegates like crazy. We effectively now use call
- scope as the default for delegate parameters.
- * generator/MethodBody.cs : use new simpler Wrapper ctor.
- * glib/DelegateWrapper.cs : mark the ctor obsolete so people know to
- update any manually coded wrappers out there.
- * */*.custom : use new simpler Callback Wrapper ctors.
-
-2005-03-11 Mike Kestner <mkestner@novell.com>
-
- * glib/DelegateWrapper.cs : call g_object_set_data_full since we are
- using its sig, not set_data.
-
-2005-03-10 Mike Kestner <mkestner@novell.com>
-
- * generator/SymbolTable.cs : fix gssize and gsize, they aren't 32 bit
- like the docs say they are.
-
-2005-03-10 Mike Kestner <mkestner@novell.com>
-
- * glib/Marshaller.cs : don't use g_utf8_strlen to determine the byte
- count to be copied, it returns chars, not bytes.
- * glib/glue/unichar.c : implement a quick and dirty strlen glue func.
-
-2005-03-10 Mike Kestner <mkestner@novell.com>
-
- * gtk/Style.custom : add bg_pixmap accessors. remove IntPtr[] vars
- and s/6/5 for array sizes.
- * gtk/glue/style.c : add bg_pixmap field glue.
- [Fixes #73532]
-
-2005-03-09 Mike Kestner <mkestner@novell.com>
-
- * */*.custom : scrub for string usage in DllImports.
- * gnome/Makefile.am : remove IconTheme.custom, it's not generated.
-
-2005-03-09 Mike Kestner <mkestner@novell.com>
-
- * glib/Marshaller.cs : add IntPtr.Zero guarding.
-
-2005-03-09 Alexandre Gomes <alexmipego@hotmail.com>
-
- * gtk/Gtk.metadata: Set GetVisibleRect param to be passed as out.
-
-2005-03-08 Mike Kestner <mkestner@novell.com>
-
- * */*.cs : scrub for StringToPtrAnsi and string usage in DllImports.
- * */*.custom : begin the scrub here too.
- * generator/ConstStringGen.cs : implement IManualMarshaler and move to
- 100% IntPtr marshaling.
- * generator/Ctor.cs : call Body.Finish too.
- * generator/IManualMarshaler.cs : new interface for generatables that
- marshal manually and need cleanup.
- * generator/Makefile.am : new file.
- * generator/MethodBody.cs : use IManualMarshaler if applicable.
-
-2005-03-07 Mike Kestner <mkestner@novell.com>
-
- * generator/MethodBody.cs : remove an unused var.
- * generator/ReturnValue.cs : privatize a couple props. Refactor the
- SymbolTable lookup logic to be generatable based.
-
-2005-03-04 Mike Kestner <mkestner@novell.com>
-
- * generator/ImportSignature.cs : out param handling fix.
- * generator/Makefile.am : kill StringGen.cs.
- * generator/MethodBody.cs : simplify out param handling.
- * generator/StringGen.cs : kill it, now using MarshalGen.
- * generator/SymbolTable.cs : make non-const strings use an appropriate
- MarshalGen. Non-const strings are now correctly marshaled as Utf8.
- * glib/Marshaller.cs : add some utf8-fu for strdup/free marshaling.
- Add a method to alloc/copy structs to native memory, unused yet.
- * gtk/Gtk.metadata : partially fix a broken delegate.
-
-2005-03-04 Mike Kestner <mkestner@novell.com>
-
- * generator/Method.cs : refactor out some retval logic.
- * generator/ReturnValue.cs : add FromNative and IsVoid members.
-
-2005-03-03 Mike Kestner <mkestner@novell.com>
-
- * gdk/Gdk.metadata : remove unnecessary null_ok rules.
- * generator/Ctor.cs : don't add null params to CreateNativeObject call
- for InterfaceGen or OpaqueGen in addition to ObjectGen.
- * generator/Field.cs : simplify Object/Opaque gen.
- * generator/Method.cs : remove OpaqueGen special casing.
- * generator/OpaqueGen.cs : make FromNative null_ok robust.
- * generator/Signal.cs : remove arg marshaling ClassBase special case.
- * gtk/Gtk.metadata : remove unnecessary null_ok rules.
-
-2005-03-03 Mike Kestner <mkestner@novell.com>
-
- * generator/ClassBase.cs : use "as" instead of a cast in FromNative.
- * generator/Method.cs : remove the if/else checks for Object retvals.
- * glib/Object.cs : return null immediately for NULL in GetObject.
-
-2005-03-03 Mike Kestner <mkestner@novell.com>
-
- * generator/ClassBase.cs : add null checking to CallByName. No sense
- manually adding this for the ones that need it. Better to have g_criticals
- then NullRefExceptions anyway.
- * generator/MethodBody.cs : simplify out handle generation.
- [A babystep toward #68820]
-
-2005-02-28 Dan Winship <danw@novell.com>
-
- * gtk/Container.custom (ChildType): fix this to just call
- gtk_container_child_type().
-
- * gtk/glue/container.c (gtksharp_container_base_child_type): kill
-
-2005-02-28 Mike Kestner <mkestner@novell.com>
-
- * glib/Idle.cs : add locking on the source_handlers.
- * glib/Source.cs : add locking on the source_handlers.
- * glib/Timeout.cs : add locking on the source_handlers.
-
-2005-02-25 Mike Kestner <mkestner@novell.com>
-
- * glib/Source.cs : remove from the hash by key.
- * glib/Idle.cs : remove from the hash by key.
-
-2005-02-23 Dan Winship <danw@novell.com>
-
- * sources/gnomedb.patch: Patch over a bug in gnome-db-editor.h
-
- * gnomedb/gnomedb-api.raw: Regen
-
-2005-02-23 Dan Winship <danw@novell.com>
-
- * parser/gapi2xml.pl (parseTypeToken): don't parse punctuation
- into the type name. [Fixes #72925]
-
- * gtk/gtk-api.raw: Regen, exposing the previously-broken
- AccelGroup.AccelActivate, AccelMap.Changed,
- ActionGroup.ConnectProxy, ActionGroup.DisconnectProxy,
- ActionGroup.PreActivate, ActionGroup.PostActivate, and
- Widget.EventAfter.
-
- * gtk/Gtk.metadata: Give proper names to the parameters of those
- signals
-
-2005-02-23 Dan Winship <danw@novell.com>
-
- * generator/Field.cs (Validate): new, to check that a field has a
- valid type (or is hidden).
-
- * generator/StructBase.cs (Validate): new, to check that all of
- the struct fields have valid types
-
- * generator/BoxedGen.cs (Generate):
- * generator/StructGen.cs: (Generate): Call Validate() and bail out
- if it fails; it's no good to generate a struct with the wrong
- layout.
-
- * gdk/gdk-symbols.xml: add a line for GdkKey -> Gdk.Key. (There's
- no actual C type GdkKey, but we can use metadata to change uints
- to GdkKeys, which will then become Gdk.Keys.)
-
- * gtk/AccelKey.custom: remove the "Key" field (which was being
- added in the wrong place in the struct), since it's properly
- generated now.
-
- * gtk/Gtk.metadata: Fix the line that renames AccelKey.AccelKey
- to AccelKey.Key
-
- * gnomevfs/Gnomevfs.metadata: hide the (mis-parsed) "action" field
- in MimeAction, leaving the struct in the same broken state it was
- in with the old generator code
-
- * parser/gapi2xml.pl: add a hack to allow "foo_bar_get_type()"
- rather than "FOO_TYPE_BAR" in G_TYPE_CHECK_INSTANCE_CAST macros,
- allowing large parts of libgda that were previously misparsed to
- be parsed correctly
-
- * gda/gda-api.raw: Regen
-
- * gda/Gda.metadata: Make Gda.Value opaque, since it's mostly a
- union and we're horribly butchering its layout.
-
-2005-02-22 Raja R Harinath <rharinath@novell.com>
-
- * Makefile.include: Use $(top_builddir)/ instead of ../ so that it
- is usable from directories two-or-more deep.
-
-2005-02-18 Mike Kestner <mkestner@novell.com>
-
- * gtk/Gtk.metadata : remove an incorrect and harmful rule on
- ClipboardGetFunc. [Fixes #69013]
-
-2005-02-17 Mike Kestner <mkestner@novell.com>
-
- * */Makefile.am : define SYMBOLS if it isn't already to fix breakage
- with older automakes.
-
-2005-02-15 Dan Winship <danw@novell.com>
-
- * generator/ObjectGen.cs (GenChildProperties): If the class has an
- ancestor that also defines child properties, make its child
- properties class be a subclass of that ancestor's child properties
- class. (Eg, make Gtk.ButtonBox.ButtonBoxChild be a subclass of
- Gtk.Box.BoxChild.)
-
-2005-02-14 Mike Kestner <mkestner@novell.com>
-
- * gdk/Gdk.metadata : mark the color in Rgb.FindColor ref.
-
-2005-02-11 Mike Kestner <mkestner@novell.com>
-
- * gtk/Gtk.metadata : hide Menu.SetScreen.
- * gtk/Menu.custom : manually implement Screen prop.
-
-2005-02-11 Dan Winship <danw@novell.com>
-
- * gtk/Gtk.metadata: Hide StyleGetProperty and StyleGetValist since
- they're generated wrong, and StyleGet to avoid an ellipsis
- warning. (Also hide the deprecated ellipsis method "Set".)
-
- * gtk/Widget.custom (StyleGetProperty): implement manually, a la
- Gtk.Container.ChildGetProperty.
-
- * gtk/glue/widget.c (gtksharp_widget_style_get_property): glue for that
-
- * generator/MethodBase.cs (Validate): use CName rather than always
- saying "in ctor"
-
-2005-02-10 Jeroen Zwartepoorte <jeroen@xs4all.nl>
-
- * sample/Actions.cs: Remove obsolete & unsafe GLib.Object.Data usage.
-
-2005-02-10 Mike Kestner <mkestner@novell.com>
-
- * configure.in : update version for 1.9.2 release.
-
-2005-02-09 Mike Kestner <mkestner@novell.com>
-
- * gtk/Widget.custom : use a static method for the ParentSet hack
- so we don't leak objects because the delegate holds an object ref.
-
-2005-02-07 Ben Maurer <bmaurer@ximian.com>
-
- * gdk/Point.custom, gdk/Rectangle.custom: misc. new apis to make
- this more like the S.D structs.
-
-2005-02-03 Mike Kestner <mkestner@novell.com>
-
- * gtk/NodeStore.cs : use CreateNativeObject to allow subclassing.
- [Fixes #71749]
-
-2005-02-03 Mike Kestner <mkestner@novell.com>
-
- * glib/ObjectManager.cs (GetValidParentType): return null if
- G_TYPE_INVALID is returned from glue. [Fixes #72150]
-
-2005-02-02 Mike Kestner <mkestner@novell.com>
-
- * generator/Signal.cs : kill unnecessary BaseName prop.
-
-2005-02-02 Mike Kestner <mkestner@novell.com>
-
- * generator/Makefile.am : remove source file.
- * generator/Signal.cs : generate marshaling callbacks and use new
- GLib.Signal marshaling class for events.
- * generator/SignalHandler.cs : kill. byebye SignalCallback subclasses.
- * glib/Makefile.am : update source files.
- * glib/GLibSharp.voidObjectIntPtrSignal.cs : kill.
- * glib/Object.cs : mark the old Before/After props Obsolete. Use
- GLib.Signal for the notify prop methods.
- * glib/Signal.cs : new signal marshaling class. It manages all the
- ConnectBefore/After stuff internally and connects itself to the native
- object using GCHandles and DestroyNotify lifecycle management.
- * glib/SignalCallback.cs : mark Obsolete.
- [Fixes #72018 and #69847]
-
-2005-02-01 Fredrik Nilsson <jymdman@home.se>
-
- * glib/Marshaller.cs : DateTime marshaling fix.
-
-2005-01-31 Mike Kestner <mkestner@novell.com>
-
- * gtk/FileChooserDialog.custom : move backend to first param to
- avoid conflicts with button names in overloaded ctor.
-
-2005-01-31 Mike Kestner <mkestner@novell.com>
-
- * generator/SymbolTable.cs : handle unsigned-*.
- * parser/gapi2xml.pl : handle const unsigned * parameters. Also fix
- a G_GNUC_PRINTF parsing bug exposed by a GMime.
- * */*-api.raw : regen.
- [Fixes #71825]
-
-2005-01-28 Mike Kestner <mkestner@novell.com>
-
- * generator/ReturnValue.cs : use ToNativeReturnType for ToNativeType
- instead of MarshalType.
- * generator/Signal.cs : deal with boxed return values. beef up return
- handling in the default handler generation code.
- * generator/SignalHandler.cs : use ToNative return types for native
- callbacks. Remove redundant casting/conversion in callback impl.
- [Fixes #71899]
-
-2005-01-28 Dan Winship <danw@novell.com>
-
- * glib/Object.cs (AddNotification, RemoveNotification): methods to
- subscribe to the "notify" signal (with property details). [#71684]
- * glib/GLibSharp.voidObjectIntPtrSignal.cs: autogenerated, for
- notifications
- * glib/NotifyHandler.cs: sort of autogenerated
-
-2005-01-28 Mike Kestner <mkestner@novell.com>
-
- * gtk/Dialog.custom : add a params array for button info to the ctor.
- * gtk/FileChooserDialog.custom : add a params array for button info to
- both ctors. Chain them to IntPtr.Zero.
- * gtk/Gtk.metadata : hide the ellipsis ctors for the dialog types.
- [Fixes #71818]
- * sample/GtkDemo/DemoDialog.cs : make the InteractiveDialog use the
- new Dialog ctor as it does in the c version.
-
-2005-01-27 Mike Kestner <mkestner@novell.com>
-
- * gtk/NodeSelection.cs : use new GetSelectedRows() overload.
- * gtk/TreeSelection.custom : add a GetSelectedRows overload without the
- out model param. [Fixes #71814]
-
-2005-01-27 Mike Kestner <mkestner@novell.com>
-
- * gtk/NodeView.cs : fix the value creation in the ctor.
-
-2005-01-26 Mike Kestner <mkestner@novell.com>
-
- * glib/Value.cs : add a private debugging DllImport for ref_counts
- since the glue is there already. g_value_get_object returns an
- unowned ref, so don't pretend like we own it. Make get_Val work for
- GObject subclasses. [Fixes #71125]
-
-2005-01-26 Mike Kestner <mkestner@novell.com>
-
- * gtk/NodeView.cs : always use CreateNativeObject.
-
-2005-01-26 Mike Kestner <mkestner@novell.com>
-
- * gtk/Gtk.metadata : hide 3 IM related internal types. [Fixes #71021]
-
-2005-01-26 Mike Kestner <mkestner@novell.com>
-
- * generator/*.cs : refactoring of Parameters class. Added IEnumerable
- to Parameters and gracefully handle elem == null instead of special
- casing parms == null all over the place. Parameter logic is now Count
- driven. [Fixes #71750]
-
-2005-01-26 Dan Winship <danw@novell.com>
-
- * generator/Property.cs (Generate): Remove a redundant WriteLine (that
- resulted in there being 2 blank lines before every property).
-
- * generator/Signal.cs (Generate): s/Write/WriteLine/ to fix a
- weirdly-formatted if statement in the generated code.
-
-2005-01-25 John Luke <john.luke@gmail.com>
-
- * sample/CustomNotebook.cs:
- * sample/CustomWidget.cs: use Widget.WidgetFlags prop to avoid
- obsolete warning
-
-2005-01-25 Mike Kestner <mkestner@novell.com>
-
- * gnome/About.custom : implement a subclassable ctor.
- * gnome/Gnome.metadata : hide About ctor, fix About.Construct parms.
- * gnome/Makefile.am : add the new custom.
- [Fixes #71271]
-
-2005-01-25 Mike Kestner <mkestner@novell.com>
-
- * gdk/Gdk.metadata : hide all the Pixbuf.SaveTo methods.
- * gdk/Pixbuf.custom : implement the SaveTo methods.
- [Fixes #71430]
-
-2005-01-25 Mike Kestner <mkestner@novell.com>
-
- * gtk/Gtk.metadata : hide all the SignalFunc using Toolbar methods.
- * gtk/Makefile.am : add the new custom.
- * gtk/Toolbar.custom : implement the SignalFunc methods. Deal with
- null for Widget params in *Element.
- [Fixes #71428]
-
-2005-01-24 Jeroen Zwartepoorte <jeroen@xs4all.nl>
-
- * generator/MethodBody.cs : fix out LPUGen params.
-
-2005-01-24 Mike Kestner <mkestner@novell.com>
-
- * gda/Makefile.am : add new custom.
- * gda/XmlConnection.custom : add backcompat static ctor.
- * generator/ClassBase.cs : refactor lookup logic to here from Ctor
- and improve the collision resolution.
- * generator/Ctor.cs : refactor to use MethodBase.
- * generator/Makefile.am : add new file.
- * generator/MethodBase.cs : new base class for ctors and methods.
- * generator/Method.cs : refactor to use MethodBase.
- * generator/StructBase.cs : move some logic from here to Ctor.
- * gnome/CanvasPathDef.custom : add backcompat static ctor.
- * gnome/GPPath.custom : add backcompat static ctor.
- * gnome/Makefile.am : add new custom.
- * gtk/Gtk.metadata : mark a colliding Button ctor shared.
-
-2005-01-23 Jeroen Zwartepoorte <jeroen@xs4all.nl>
-
- * gtk/ActionGroup.custom: Add a string index for the GetAction method.
-
-2005-01-20 Dan Winship <danw@novell.com>
-
- * glib/Marshaller.cs (StringFormat): Calls String.Format and makes
- sure the output has no unescaped "%"s. (For wrapping printf-style
- unmanaged methods with String.Format-style managed ones.)
-
- * gtk/MessageDialog.custom (MessageDialog): use it. #71405. Also,
- use gtk_message_dialog_new_with_markup by default, and add an
- overloaded ctor that lets you use the non-markup version.
-
- * gtk/Gtk.metadata: hide the GtkMessageDialog ctors so we don't
- get ellipsis warnings about them.
-
- * sample/GtkDemo/DemoApplicationWindow.cs:
- * sample/GtkDemo/DemoDialog.cs: simplify the MessageDialog usage;
- don't need to call String.Format separately now.
-
-2005-01-18 Mike Kestner <mkestner@novell.com>
-
- * generator/Method.cs : deal with owned retvals.
- * generator/ReturnValue.cs : add Owned prop.
- * gnome/Gnome.metadata : mark Thumbnail.ScaleDownPixbuf return owned.
- [Fixes #71335]
-
-2005-01-18 Mike Kestner <mkestner@novell.com>
-
- * gtk/gtk-api.raw : regen.
- * parser/gapi2xml.pl : deal with G_GNUC_PRINTF.
-
-2005-01-17 Mike Kestner <mkestner@novell.com>
-
- * gtk/Style.custom : add Light, LightColors, Mid, MidColors, Dark,
- and DarkColors.
- * gtk/glue/style.c : add get_light and get_dark
-
-2005-01-17 Mike Kestner <mkestner@novell.com>
-
- * gtk/Gtk.metadata : hide Stock.
- * gtk/Makefile.am : add new file.
- * gtk/StockManager.cs : stock item management methods.
-
-2005-01-14 Dan Winship <danw@novell.com>
-
- * glib/Object.cs (ConnectDefaultHandlers): Don't call a signal's
- ConnectionMethod if it's already been called for a superclass of
- the current class. #71278
-
-2005-01-13 Zac Bowling <zac@zacbowling.com>
-
- * makefile.win32 : new "gac" target for automatic for gacutil calls,
- added copying of gtk-sharp.snk to each folder being built to fix fresh
- builds and after cleaning, added support for switching C#
- compilers, and added handling of spaces in filenames for mcs builds
- * gtkdotnet/makefile.win32 : add one more reference to fix mcs builds.
-
-2005-01-13 Mike Kestner <mkestner@novell.com>
-
- * configure.in : make vte check conditional on gnome.
- * gtkdotnet/Makefile.am : add some references.
-
-2005-01-13 Dan Winship <danw@novell.com>
-
- * generator/ObjectGen.cs: Make ContainerChild constructors
- "protected internal" rather than just "internal", so the classes
- can be subclassed nicely.
-
-2005-01-13 Zac Bowling <zac@zacbowling.com>
-
- * gtkdotnet/makefile.win32 : fixed references to build on Win32
-
-2005-01-12 Mike Kestner <mkestner@novell.com>
-
- * sample/gnomevfs/Makefile,am : conditionally build.
-
-2005-01-12 Mike Kestner <mkestner@novell.com>
-
- * sample/gnomevfs/*.cs : s/Test.Gnome.VFS/TestGnomeVfs to avoid
- namespace collision problems with current mcs.
-
-2005-01-11 Ben Maurer <bmaurer@ximian.com>
-
- * configure.in: There might be multiple S.D assemblies (eg, if you
- build the 2.0 crap, you get a 1.1 and a 2.0). So use head -n1 when
- looking at gacutil
-
-2005-01-11 Mike Kestner <mkestner@novell.com>
-
- * configure.in : add test for System.Drawing. expand gtkdotnet.
- * Makefile.am : add gtkdotnet.
- * makefile.win32 : add gtkdotnet.
- * gtkdotnet/* : new .Net extensions assembly. Moved the sample
- sysdraw.cs Graphics class in here under the Gtk.DotNet namespace.
- * sample/sysdraw.cs : moved to gtkdotnet/Graphics.cs.
- * sample/drawing-sample.exe.config.in : killed.
- * sample/DrawingSample.cs : use Gtk.DotNet.Graphics.
- * sample/Makefile.am : make drawing-sample.exe build conditional
- on gtk-dotnet presence.
-
-2005-01-11 Mike Kestner <mkestner@novell.com>
-
- * gdk/Window.custom : add AddFilterForAll and RemoveFilterForAll
- methods to handle the window==null native case.
- [Fixes #71065]
-
-2005-01-11 Mike Kestner <mkestner@novell.com>
-
- * glib/Argv.cs : add automatic progname handling.
- * gdk/Global.custom : kill obsolete warnings by using GLib.Argv.
-
-2005-01-11 Mike Kestner <mkestner@novell.com>
-
- * gdk/Gdk.metadata : kill Colors since its methods are deprecated
- and it doesn't exist in 1.0.
-
-2005-01-08 Ben Maurer <bmaurer@ximian.com>
-
- * Makefile.include (install-data-local, uninstall-local): make
- this actually work for things that are disabled.
-
-2005-01-08 Mike Kestner <mkestner@novell.com>
-
- * configure.in : kill a ton of redundant stuff.
- * AssemblyInfo.cs.in : moved here, only need one.
- * Makefile.include : rules for building generated assemblies.
- * Makefile.am : removed gtk-sharp-2.0.pc handling.
- * */AssemblyInfo.cs.in : killed
- * */Makefile.am : refactored out a ton of rules to an include.
- * */*-pc.in : added Cflags entries pointing to the gapi files.
- * generator/CodeGenerator.cs : add -I: synonym --include.
- * gnomevfs/gnome-vfs-api.raw : remamed from gnomevfs-api.raw.
- * gtk/gtk-sharp-2.0.pc.in : moved here from top.
- * parser/gapi-fixup.cs : add --symbol arg to merge sym files.
- * sources/gtk-sharp-sources.xml : remamed gnome-vfs-api.raw.
-
-2005-01-07 Mike Kestner <mkestner@novell.com>
-
- * sample/Makefile.am : mdb cleanup.
- * sample/GtkDemo/Makefile.am : mdb cleanup.
-
-2005-01-07 Mike Kestner <mkestner@novell.com>
-
- * configure.in : check for panelapplet in enable_gnome and remove
- all the stuff for a separate panelapplet-sharp assembly.
- * Makefile.am : remove panelapplet dir from build.
- * gnome/BonoboUIVerb.cs : moved from panelapplet.
- * gnome/Gnome.metadata : add rules from panelapplet.
- * gnome/Makefile.am : add new files.
- * gnome/PanelApplet.custom : moved from panelapplet.
- * gnome/PanelAppletFactory.cs : moved from panelapplet.
- * gnome/glue/panelapplet.c : moved from panelapplet.
- * gnome/glue/Makefile.am : add new file.
- * gnomedb/GnomeDb.metadata : hide a newly parsed "obsolete" type.
- * gtk/Gtk.metadata : hide a newly parsed "obsolete" callback type.
- * panelapplet : kill dir.
- * parser/gapi2xml.pl : update callback name sanity check.
- * sources/gtk-sharp-sources.xml : move panelapplet parse into gnome.
- * */*-api.raw : regen.
-
-2005-01-07 Dan Winship <danw@novell.com>
-
- * gtk/Gtk.metadata: Hide the Gtk.Image ctors generated from
- gtk_image_new_from_icon_set and gtk_image_new_from_stock.
-
- * gtk/Image.custom: Implement them here, taking into account the
- fact that the "icon_size" property is mysteriously an int rather
- than a Gtk.IconSize.
-
- * gtk/Makefile.am (customs): add Image.custom
-
- * gtk/Gtk.metadata: gtk_window_set_focus accepts NULL
-
-2005-01-06 Larry Ewing <lewing@novell.com>
-
- * gtk/StockItem.custom: add a ctor for StockItem.
-
- * gtk/Makefile.am: add StockItem.custom to the build.
-
-2005-01-06 Dan Winship <danw@novell.com>
-
- * gtk/Gtk.metadata: Rename gtk_stock_add() back to
- Gtk.StockManager.Add like it was in 1.0; Gtk.Stock.Add already
- means something else. [#71044]
-
-2005-01-06 Mike Kestner <mkestner@novell.com>
-
- * gtk/Gtk.metadata : hide GtkSignal and SignalRunType.
-
-2005-01-06 Mike Kestner <mkestner@novell.com>
-
- * gnomevfs/gnomevfs-symbols.xml : FileSize is a long long.
- * generator/SymbolTable.cs : map longlong to C# long.
-
-2005-01-05 Mike Kestner <mkestner@novell.com>
-
- * gtk/gtk-api.raw : regen.
- * sources/gtk-sharp-sources.xml : hide xembed.h and gtkxembed.h.
-
-2005-01-05 Mike Kestner <mkestner@novell.com>
-
- * gtk/TreeView.custom : add back the TreeCellDataFunc overloads for
- backward compat.
- * gtk/TreeViewColumn.custom : add back the TreeCellDataFunc overloads for
- backward compat.
-
-2005-01-05 Mike Kestner <mkestner@novell.com>
-
- * generator/Field.cs : deal with LPGen/LPUGen fields.
-
-2005-01-05 Mike Kestner <mkestner@novell.com>
-
- * gtk/gtk-api.raw : regen.
- * sources/gtk-sharp-sources.xml : exclude gtkiconthemeparser.h.
- [Fixes #70898]
-
-2005-01-05 Mike Kestner <mkestner@novell.com>
-
- * gtk/Gtk.metadata : hide some internal Image*Data structs.
-
-2005-01-05 Alp Toker <alp@atoker.com>
-
- * gtk/TextBuffer.custom : Mark SetText obsolete in favour of the Text
- property, and use Text in SetText in the meantime.
-
-2005-01-04 Mike Kestner <mkestner@novell.com>
-
- * gtk/gtk-api.raw : regen'd.
- * sources/gtk-sharp-sources.xml : exclude file system backend source.
- [Fixes #70904, #70897, and #70900]
-
-2005-01-04 Mike Kestner <mkestner@novell.com>
-
- * gtk/Gtk.metadata : mark out params for IMContext.GetSurrounding
- and GetPreeditString.
- [Fixes #70995]
-
-2005-01-04 Mike Kestner <mkestner@novell.com>
-
- * gtk/CellLayout.custom : declare SetAttributes and SetCellDataFunc.
- * gtk/CellView.custom : impl SetAttributes and SetCellDataFunc.
- * gtk/ComboBox.custom : impl SetAttributes and SetCellDataFunc.
- * gtk/EntryCompletion.custom : impl SetAttributes and SetCellDataFunc.
- * gtk/Gtk.metadata : hide some methods to be manually implemented.
- * gtk/Makefile.am : add new customs.
- * gtk/NodeCellDataFunc : use CellLayoutDataFuncNative.
- * gtk/TreeView.custom : use CellLayoutDataFunc not TreeCellDataFunc.
- * gtk/TreeViewColumn.custom : impl SetAttributes and SetCellDataFunc.
- [Fixes #70941]
-
-2005-01-04 Mike Kestner <mkestner@novell.com>
-
- * gtk/Gtk.metadata : set preferred on CellViewMenuItem.NewWithText.
- [Fixes #70938]
-
-2005-01-03 Mike Kestner <mkestner@novell.com>
-
- * gtk/NodeStore.cs : expose TreeModelFlags.ListOnly if the TreeNode
- has ListOnly set.
- * gtk/TreeNodeAttribute.cs : add ListOnly named value.
-
-2004-12-30 Mike Kestner <mkestner@novell.com>
-
- * glib/Object.cs : mark the Data hashtable obsolete.
-
-2004-12-30 Mike Kestner <mkestner@novell.com>
-
- * gtk/Gtk.metadata : hide TreeView.InsertColumnWith*.
- * gtk/TreeView.cs : manual implementations of InsertColumn overloads
- for WithAttributes and WithDataFunc.
-
-2004-12-30 Alp Toker <alp@atoker.com>
-
- * README.generator: Close tag fix for example XML.
-
-2004-12-28 Jeroen Zwartepoorte <jeroen@xs4all.nl>
-
- * sample/gnomevfs/TestVolumes.cs: Update sample.
-
-2004-12-28 Jeroen Zwartepoorte <jeroen@xs4all.nl>
-
- * gnomevfs/Gnomevfs.metadata: Hide some more API.
- * gnomevfs/VfsStreamAsyncResult.cs: Make Done property internal.
- * gnomevfs/VolumeMonitor.custom: Hide GList API.
-
-2004-12-28 Jeroen Zwartepoorte <jeroen@xs4all.nl>
-
- * gnomevfs/Directory.cs: PInvoke the _uri methods directory instead of
- using the ToString() methods.
- * gnomevfs/FileInfo.cs: Make the FileInfoNative field internal.
- * gnomevfs/Gnomevfs.metadata: Hide a bunch of unwanted API.
- * gnomevfs/Uri.custom: New API.
- * gnomevfs/Vfs.cs: Idem.
-
-2004-12-27 Mike Kestner <mkestner@novell.com>
-
- * generator/CallbackGen.cs : use ReturnValue and more of Parameter.
- * generator/GenBase.cs : remove unused NSElem prop.
-
-2004-12-27 Jeroen Zwartepoorte <jeroen@xs4all.nl>
-
- * gnomevfs/Directory.cs: s/uint/FilePermissions/.
- * gnomevfs/Gnomevfs.metadata: Make a bunch of API more user-friendly &
- C# like.
- * gnomevfs/Monitor.cs: Add internal MonitorEventType enum.
- * gnomevfs/Uri.custom: Move a bunch of API from Vfs.cs to Uri.
- * gnomevfs/Vfs.cs: Only put initialize & shutdown methods in here (plus
- some debug API).
- * gnomevfs/VfsStream.cs: Use new Uri API.
- * sample/gnomevfs/TestUnlink.cs: Fix sample.
-
-2004-12-27 Mike Kestner <mkestner@novell.com>
-
- * generator/EnumGen.cs : rework for a single pass thru ChildNodes.
- * generator/Parameters.cs : simplify PassAs logic.
- * generator/SimpleBase.cs : mark abstract.
-
-2004-12-27 Mike Kestner <mkestner@novell.com>
-
- * generator/AliasGen.cs : derive from SimpleBase.
- * generator/ConstStringGen.cs : derive from SimpleBase.
- * generator/GObjectGen.cs : kill. now uses ManualGen.
- * generator/GStringGen.cs : kill. now uses MarshalGen.
- * generator/GUnicharGen.cs : kill. now uses MarshalGen.
- * generator/LPGen.cs : derive from SimpleGen.
- * generator/Makefile.am : update source files.
- * generator/ManualGen : make this general for handle types.
- * generator/MarshalGen : new CallByName/FromNative formatter class.
- * generator/SymbolTable.cs : needed some reorganizing and some
- restructuring of types to use MarshalGen.
- * generator/TimeTGen.cs : kill. now uses MarshalGen.
-
-2004-12-26 Mike Kestner <mkestner@novell.com>
-
- * generator/Makefile.am : add new file.
- * generator/SimpleBase.cs : new class for non-generated type mappers.
- * generator/*Gen.cs : first refactoring of "Simple" generatable types.
- Derive them all from SimpleBase. More to come.
-
-2004-12-26 Mike Kestner <mkestner@novell.com>
-
- * generator/CustomMarshalerGen.cs : kill bad idea unused class.
- * generator/Makefile.am : remove CustomMarshalerGen.cs.
- * generator/Method.cs : remove CustomMarshalerGen reference.
-
-2004-12-26 Mike Kestner <mkestner@novell.com>
-
- * generator/*Gen.cs : implement IGeneratable fully on GenBase
- with abstract methods where necessary to refactor a ton of redundant
- code.
-
-2004-12-23 Mike Kestner <mkestner@novell.com>
-
- * glib/ClassInitializerAttribute.cs : new attr for identifying type.
- inialization methods to be run by RegisterGType.
- * glib/Makefile.am : add file.
- * glib/Object.cs : add private method to invoke ClassInitializers.
- * gtk/glue/widget.c : some new glue for binding registration.
- * gtk/BindingAttribute.cs : new attr for registering key bindings.
- * gtk/Makefile.am : add file.
- * gtk/Widget.custom : add ClassInitializer method to scan types
- for [Binding] and register key bindings.
-
-2004-12-22 Dan Winship <danw@novell.com>
-
- * generator/Signal.cs: fix some WriteLine()s that should have been
- Write()s
-
-2004-12-22 Dan Winship <danw@novell.com>
-
- * sources/gtk-sharp-sources.xml: exclude a bunch of uninstalled
- gtk headers.
-
- * gtk/gtk-api.raw: regen
-
- * gtk/Gtk.metadata: Remove some explicit hiding of things that
- shouldn't have been there anyway. Hide a few types that just show
- up as unusable stubs.
-
-2004-12-22 Mike Kestner <mkestner@novell.com>
-
- * gdk/gdk-api.raw : update enum values.
- * gnome/gnome-api.raw : update enum values.
- * gtk/gtk-api.raw : update enum values.
- * pango/pango-api.raw : update enum values.
- * parser/gapi2xml.pl : pull whitespace out of enum prefixing logic.
- [Fixes #70593]
-
-2004-12-21 Mike Kestner <mkestner@novell.com>
-
- * glib/Argv.cs : argv marshaling class.
- * glib/Makefile.am : add file.
- * glib/Marshaller.cs : mark the argv methods obsolete.
- * gtk/Application.cs : use GLib.Argv. [Fixes #68812]
-
-2004-12-21 Dan Winship <danw@novell.com>
-
- * generator/CallbackGen.cs:
- * generator/CodeGenerator.cs:
- * generator/ManagedCallString.cs:
- * generator/Property.cs: Remove unused vars
-
- * generator/Method.cs (GetHashCode): have to implement this since
- we're overriding Equals.
-
- * generator/CallbackGen.cs: print a message when generating a
- broken struct-returning callback. (Currently affects
- GtkSharp.TextSegSplitFuncNative and
- GtkSharp.TextSegCleanupFuncNative)
-
- * gdk/glue/device.c:
- * gdk/glue/dragcontext.c: Add missing prototypes
-
- * gtk/Gtk.metadata: Mark SeparatorToolItem.Draw "new". Re-rename
- CheckMenuItem.Toggled to EmitToggled rather than Toggle, since
- that's a better description of what it does.
-
- * gtk/CheckMenuItem.custom: implement a "Toggle" method that does
- what the documentation claims it does.
-
- * gtk/NodeStore.cs: remove unused var
-
- * gnome/Gnome.metadata: mark DateEdit.Flags, Dialog.Default, and
- PropertyBox.State "new". Hide GnomePixmapEntry.GnomeEntry and
- GnomePixmapEntry.GtkEntry since they do exactly the same thing as
- the methods of the same names inherited from GnomeFileEntry.
-
- * gnome/glue/canvas-proxy.c:
- * gnome/glue/canvas-proxy.h:
- * gnome/glue/canvas-proxy-marshal.c:
- * gnome/glue/canvas-proxy-marshal.h:
- * gnome/glue/canvas-proxy-marshal.list: Remove unused code
-
- * gnome/glue/Makefile.am (libgnomesharpglue_2_la_SOURCES): update
-
- * panelapplet/PanelApplet.metadata: mark PanelApplet.Flags "new"
-
- * sample/CanvasExample.cs:
- * sample/CustomCellRenderer.cs:
- * sample/CustomNotebook.cs:
- * sample/DrawingSample.cs:
- * sample/Fifteen.cs:
- * sample/GladeTest.cs:
- * sample/GtkDemo/DemoHyperText.cs:
- * sample/GtkDemo/DemoPixbuf.cs:
- * sample/ScribbleXInput.cs: remove unused vars, use
- GLib.Timeout.Add rather than the deprecated Gtk.Timeout.Add
-
-2004-12-21 Jeroen Zwartepoorte <jeroen@xs4all.nl>
-
- * gnomevfs/Async.cs:
- * gnomevfs/Directory.cs:
- * gnomevfs/Sync.cs:
- * gnomevfs/Vfs.cs: Make the constructors private so they don't show up
- in monodoc (these classes aren't meant to be instantiated).
-
-2004-12-21 Jeroen Zwartepoorte <jeroen@xs4all.nl>
-
- * gnomevfs/Gnomevfs.metadata: Hide the auto-generated ModuleCallback
- stuff in favor of the more developer friendly custom bindings.
- * gnomevfs/Makefile.am:
- * gnomevfs/ModuleCallbackAuthentication.cs:
- * gnomevfs/ModuleCallbackFillAuthentication.cs:
- * gnomevfs/ModuleCallbackFullAuthentication.cs:
- * gnomevfs/ModuleCallbackSaveAuthentication.cs:
- * gnomevfs/ModuleCallbackStatusMessage.cs: Complete the module callback
- implementations.
-
-2004-12-20 Mike Kestner <mkestner@novell.com>
-
- * gdk/Gdk.metadata : mark a couple array params.
- * generator/Field.cs : remove the MarshalAs hack. We have to
- do something much more evil since MarshalAs can't hang.
- * generator/ImportSignature.cs : deal with out LP(U)Gen params.
- * generator/LPGen.cs : moved from SSizeTGen and generalized.
- * generator/LPUGen.cs : moved from SizeTGen and generalized.
- * generator/Makefile.am : update sources.
- * generator/MethodBody.cs : deal with out LP(U)Gen params.
- * generator/Parameters.cs : deal with out LP(U)Gen params.
- * generator/SymbolTable.cs : make all longs and size_t types LP(U)Gens.
-
-2004-12-20 Dan Winship <danw@novell.com>
-
- * generator/GUnicharGen.cs: generatable for gunichar, using
- GLib.Marshaller.CharToGUnichar and .GUnicharToChar [#70704]
-
- * generator/SymbolTable.cs (SymbolTable): add a GUnicharGen.
-
- * generator/Makefile.am (sources): add GUnicharGen.cs
-
- * parser/gapi2xml.pl (addPropElem): g_param_spec_unichar() has
- type "gunichar" not "unichar".
-
- * gtk/gtk-api.raw: Regen
-
- * glib/Marshaller.cs: Import CharToGUnichar's glue method by the
- right name
-
-2004-12-20 Dan Winship <danw@novell.com>
-
- * gtk/Gtk.metadata: Don't rename GtkStock to StockManager, hide
- Lookup (so we can customize it) and AddStatic (since it can't work
- right from managed code), and tweak the params of Add.
-
- * gtk/Stock.custom: Implement Lookup() using a special
- ConstStockItem struct so the p/invoke layer won't try to free
- static strings. [#70589]
-
- * sample/GtkDemo/DemoStockBrowser.cs: update this to work with
- that. (It used to crash.)
-
-2004-12-20 Mike Kestner <mkestner@novell.com>
-
- * generator/Property.cs : generate Interface properties.
- * gtk/ComboBox.custom : remove dup model prop.
- * gtk/TreeView.custom : remove dup model prop.
-
-2004-12-20 Jeroen Zwartepoorte <jeroen@xs4all.nl>
-
- * gnomevfs/Makefile.am:
- * gnomevfs/ModuleCallback.cs:
- * gnomevfs/ModuleCallbackAuthentication.cs:
- * gnomevfs/ModuleCallbackFullAuthentication.cs:
- * gnomevfs/Vfs.cs: Use a custom VfsException for Result errors.
- * gnomevfs/VfsException.cs: new custom Exception class.
- * sample/gnomevfs/Makefile.am:
- * sample/gnomevfs/TestCallback.cs:
-
- Implement custom bindings for the ModuleCallback mechanism. Atm, only
- the GNOME_VFS_MODULE_CALLBACK_AUTHENTICATION and
- GNOME_VFS_MODULE_CALLBACK_FULL_AUTHENTICATION callbacks are implemented.
- Also added a test-case using the full authentication callback (tested
- using the sftp: method). [Partially fixes #70602]
-
-2004-12-18 Mike Kestner <mkestner@novell.com>
-
- * configure.in : bump version in preparation for 1.9.1 release.
-
-2004-12-18 Mike Kestner <mkestner@novell.com>
-
- * gtk/ColorSelectionDialog.custom : fix some incorrect object wrapping
- and mark the ColorSelectionButton nested class Obsolete with a heinous
- warning message. [Fixes #68450]
-
-2004-12-18 Mike Kestner <mkestner@novell.com>
-
- * generator/Field.cs : add MarshalAs attrs for (u)longs.
-
-2004-12-18 Mike Kestner <mkestner@novell.com>
-
- * gconf/GConf/ChangeSet.cs : add internal Handle prop.
- * gconf/GConf/Engine.cs : new class to expose the default gconf engine
- perform changeset commits and reverses.
-
-2004-12-17 Mike Kestner <mkestner@novell.com>
-
- * gtk/ListStore.custom : dispose a bunch of GLib.Values.
- * gtk/TreeStore.custom : ditto. Reworked and expanded from a patch
- by Ben "valgrind-boy" Maurer. [Fixes #69925]
-
-2004-12-17 Mike Kestner <mkestner@novell.com>
-
- * glade/XML.custom (BindFields) : support multiple autoconnects
- in different roots by not writing null widgets to the tagged
- fields. [Fixes #68455]
-
-2004-12-17 Mike Kestner <mkestner@novell.com>
-
- * gtk/Gtk.metadata : hide Object and Widget.Destroy.
- * gtk/Object.custom : manual virtual Destroy impl.
- * gtk/Widget.custom : manual virtual Destroy impl.
- * gtk/Window.custom : hold a managed ref for all toplevels. Release
- it in a Destroy override. Window is frequently subclassed and is
- never parented, so this keeps a managed ref around to avoid GC.
- [Fixes #70120]
-
-2004-12-17 Mike Kestner <mkestner@novell.com>
-
- * gdk/Gdk.metadata : mark out param on Window.GetFrameExtents.
- * gdk/WindowAttr.custom : new typed Mask prop.
- * gtk/Widget.custom : new typed WidgetFlags prop. mark Flags obsolete.
-
-2004-12-17 Mike Kestner <mkestner@novell.com>
-
- * gtk/Makefile.am : add new file.
- * gtk/glue/makefile.win32 : add missing file.
- * gtk/NodeCellDataFunc.cs : new callback delegate type and marshaler
- for NodeStore tree views using GtkTreeCellDataFuncs.
- * gtk/NodeStore.cs : add internal GetNode overload by TreeIter.
- * gtk/NodeView.cs : add AppendColumn overload that uses data funcs.
- * gtk/TreeViewColumn.custom : manual implementation for SetCellDataFunc
- to support both TreeIter and ITreeNode models. We need to hold a ref
- to a delegate for each cell renderer on a column. [Fixes #63062]
- * sample/NodeViewDemo.cs : use a NodeCellDataFunc for one of the
- cell renderers in the tree.
-
-2004-12-17 Dan Winship <danw@novell.com>
-
- * generator/Field.cs (StudlyName): Fall back to using "cname" if
- "name" isn't defined (ie, when using the latest generator against
- api files output by an older parser).
-
-2004-12-17 Dan Winship <danw@novell.com>
-
- * generator/ClassBase.cs (IgnoreMethod): Don't ignore GetFoo and
- SetFoo methods if they aren't in the right form to be turned into
- property accessors. (Causes 13 previously ignored methods to now
- be wrapped. See doc/ChangeLog.)
-
- * gtk/Gtk.metadata: Fix up a few of those newly-exposed methods
-
-2004-12-16 Dan Winship <danw@novell.com>
-
- * generator/ManagedCallString.cs (Setup, Finish, ToString): Add
- new methods to allow arbitrary setup and teardown code around the
- managed call. When passing a type with "complicated" marshalling
- requirements as a ref or out param, first assign the value to a
- temporary variable (in Setup), then pass the temp as the ref or
- out param (in ToString), and then assign the new value back to the
- original argument (in Finish).
-
- * generator/Signal.cs:
- * generator/SignalHandler.cs: Update to generate correct glue for
- signals with "ref" or "out" params. (#70566)
-
- * generator/VirtualMethod.cs: Update for ManagedCallString change
-
- * generator/IGeneratable.cs: add comments explaining what each
- member does
-
- * gtk/Gtk.metadata: mark Editable.InsertText's "position" arg pass-by-ref
-
- * sample/Size.cs: connect to the SizeRequested event and override
- it, to test/demo the changes
-
-2004-12-16 Dan Winship <danw@novell.com>
-
- * parser/gapi_pp.pl: Don't strip out /*< public >*/ and
- /*< private >*/ comments.
-
- * parser/gapi2xml.pl: Use those comments to determine the
- accessibility of struct/object fields, and set the "access"
- attribute on fields with non-default accessibiliy (private for
- structs, public for objects). Also, output a StudlyName for each
- field as well as a c_name.
-
- * */*-api.raw: Regen
-
- * generator/Field.cs (StudlyName): Use the parser-generated studly
- name rather than studlifying Name, which might have been mangled
- to avoid conflicts with an all-lowercase keyword.
- (Generate): Respect the access property on all field types rather
- than always making certain types public. Don't bother outputting
- wrapper properties for private fields, since the only code that
- could use them is the generated code, which won't.
-
- Part of #69514. See doc/ChangeLog for the (very minimal) fallout
- from these changes.
-
-2004-12-16 Mike Kestner <mkestner@novell.com>
-
- * sample/NodeViewDemo.cs : rework of TreeViewDemo to use NodeStore.
- * sample/TreeViewDemo.cs : added some timing and node counting fu.
-
-2004-12-16 Duncan Mak <duncan@ximian.com>
-
- * gtk/Makefile.am (sources): Added NodeSelection and NodeView.
- * gtk/NodeSelection.cs: New file, an implementation of
- TreeSelection that exposes ITreeNodes instead of TreeIters.
- * gtk/NodeStore.cs : added internal GetIter and GetPath methods for
- NodeSelection. Reworked [TreeNodeValue] lookup logic.
- out what the Type of data the store holds.
- * gtk/NodeView.cs: New subclass of TreeView utilizing NodeStore and
- NodeSelection.
- * gtk/TreeIter.custom : new internal UserData prop.
- * gtk/TreeNodeValueAttribute.cs: Set AllowMultiple to true.
- * gtk/TreeView.custom: Obsoleted constructor that uses a NodeStore as
- parameter. NodeView should be used instead.
-
-2004-12-16 Tambet Ingo <tambet@ximian.com>
-
- * glib/Opaque.cs : hold a weakref in the hash, not a strong ref.
-
-2004-12-15 Mike Kestner <mkestner@novell.com>
-
- * gnome/Gnome.metadata : resolve a collision that was causing
- Print class methods to be lost.
-
-2004-12-13 Mike Kestner <mkestner@novell.com>
-
- * configure.in : make gtkhtml conditional on enable_gnome.
- [Fixes #70502]
-
-2004-12-09 Mike Kestner <mkestner@novell.com>
-
- * gtkhtml/HTML.custom : remove obsolete attr for Write overload.
- * gtkhtml/HTMLStream.custom : ditto.
-
-2004-12-09 Mike Kestner <mkestner@novell.com>
-
- * gtkhtml/HTML.custom : add an back-compat obsolete overload for Write.
- * gtkhtml/HTMLStream.custom : add an obsolete overload for Write.
-
-2004-12-09 Mike Kestner <mkestner@novell.com>
-
- * generator/Makefile.am : new files.
- * generator/MethodBody.cs : fix for length param code.
- * generator/SizeTGen.cs : smarter size_t marshaling.
- * generator/SSizeTGen.cs : smarter ssize_t marshaling.
- * generator/SymbolTable.cs : use the new generatables.
-
-2004-12-08 John Luke <john.luke@gmail.com>
-
- * sources/README: update versions of the libs
-
-2004-12-08 Mike Kestner <mkestner@novell.com>
-
- * art/Art.metadata : mark some ints as bools. [Fixes #61047]
-
-2004-12-08 Jeroen Zwartepoorte <jeroen@xs4all.nl>
-
- * sample/Makefile.am: Readded TestVfs.cs back and make it conditional.
- * sample/TestVfs.cs: New sample contributed by Tamara Roberson.
- [Fixes #70262]
-
-2004-12-07 Mike Kestner <mkestner@novell.com>
-
- * gtk/glue/style.c : add missing method and prototype. [Fixes #70216]
-
-2004-12-07 Mike Kestner <mkestner@novell.com>
-
- * */*.cs : s/glue-2.0/glue-2 so that dllimport works on win32.
- * */*.custom : s/glue-2.0/glue-2
- * */glue/makefile.win32 : s/glue-2.0/glue-2
- * */glue/Makefile.am : s/glue-2.0/glue-2
-
-2004-12-06 John Luke <john.luke@gmail.com>
-
- * gtk/Gtk.metadata: set with_mnemonic as the preferred ctor
- * doc/en/Gtk/Expander.xml: update
-
-2004-12-06 John Luke <john.luke@gmail.com>
-
- * gtk/Action.custom
- * gtk/ActionGroup.custom
- * gtk/UIManager.custom
- * gtk/Gtk.metadata
- * doc/en/Gtk/ActionGroup.xml
- * file doc/en/Gtk/Action.xml
- * doc/en/Gtk/UIManager.xml: replace List and SList with arrays
- and update the docs
-
-2004-12-06 Mike Kestner <mkestner@novell.com>
-
- * generator/SymbolTable.cs : add off_t as an IntPtr.
-
-2004-12-06 Mike Kestner <mkestner@novell.com>
-
- * generator/SignalHandler.cs : s/[]/Array in BaseName. [Fixes #69383]
-
-2004-12-06 Mike Kestner <mkestner@novell.com>
-
- * doc/en/*/*.xml : docs for new GValue members and size_t changes.
- * generator/SymbolTable.cs : add ssize_t and make size_t a UIntPtr
- instead of the current broken int mapping on 64 bit platforms.
- * gtkhtml/HTMLStream.custom : fix size_t related overload.
- [fixes #69574]
-
-2004-12-03 Dan Winship <danw@novell.com>
-
- * gdk/gdk-symbols.xml: alias GdkBitmap to GdkPixmap [Fixes #68824]
-
- * gdk/Gdk.metadata: Remove the earlier GdkBitmap hack now that
- it's aliased. Also move Gdk.Bitmap.CreateFromData to
- Gdk.Pixmap.CreateBitmapFromData
-
- * gdk/Pixbuf.custom (RenderPixmapAndMask,
- RenderPixmapAndMaskForColormap, RenderThresholdAlpha):
- s/Bitmap/Pixmap/
-
- * sample/GtkDemo/DemoTextView.cs: uncomment the fg/bg stipple
- code, since that works now
-
- * parser/gapi-fixup.cs: Add an "add-node" rule. This turned out to
- not actually be needed for this fix, but we know we'll need it
- later, so here it is.
-
-2004-12-03 Jorge Garcia <jgarcia@ac.upc.es>
-
- * glib/Type.cs: add Int64 and UInt64 support.
- * glib/TypeConverter.cs: add Int64 and UInt64 support.
- * glib/Value.cs: add Int64 and UInt64 support.
-
-2004-12-03 Mike Kestner <mkestner@novell.com>
-
- * gtk/Dialog.custom : correct return value for AddButton overload.
- [Fixes #70121]
-
-2004-12-03 Mike Kestner <mkestner@novell.com>
-
- * gtk/Gtk.metadata : mark accel_group null_ok on ImageMenuItem ctor.
- [Fixes #69041]
-
-2004-12-03 Dan Winship <danw@novell.com>
-
- * gtk/Gtk.metadata: Pass TextIters by ref almost everywhere.
- [Fixes #70187]. Kill two varargs warnings.
-
- * gtk/TextBuffer.custom: Update for that, and also implement
- InsertWithTagsByName
-
- * sample/GtkDemo/DemoHyperText.cs:
- * sample/GtkDemo/DemoTextView.cs: Remove kludges for broken
- TextIter handling. Also fix the i18n demo bits by translating the
- octal-encoded UTF-8 to hex-encoded UTF-16.
-
-2004-12-03 Mike Kestner <mkestner@novell.com>
-
- * gtk/Gtk.metadata : hide junk methods in Global. [Fixes #60895]
-
-2004-12-03 Mike Kestner <mkestner@novell.com>
-
- * gtk/Gtk.metadata : hide Visibility enum. [Fixes #60704]
-
-2004-12-01 Todd Berman <tberman@off.net>
-
- * generator/StructGen.cs: Check to see if a GType is going to be
- generated. If not, generate a GType.Pointer. This fixes bug
- #70017.
- * glib/TypeConverter.cs: Remove the .IsValueType check, as those
- now have GType properties.
- * gda/Gda.metadata: Change GdaValue.GType to GdaValue.GdaType.
- * doc/en/Gda/Value.xml: Regenerated to reflect new API.
-
-2004-11-30 Dan Winship <danw@novell.com>
-
- * sample/GtkDemo/DemoImages.cs: Fix some crashers discovered while
- trying to use this as a test case to figure out whether or not I'd
- broken Gtk#. Sigh. :)
-
-2004-11-30 Mike Kestner <mkestner@novell.com>
-
- * glib/glue/value.c : add back some code lost in the merge of
- 2-4-branch. [Fixes #70045]
-
-2004-11-26 Jeroen Zwartepoorte <jeroen@xs4all.nl>
-
- * gtk/ActionEntry.cs:
- * gtk/ActionGroup.custom:
- * gtk/Gtk.metadata:
- * gtk/Makefile.am:
- * gtk/RadioActionEntry.cs:
- * gtk/ToggleActionEntry.cs:
- * gtk/UIManager.custom:
- * sample/Actions.cs: Updated to use the new *ActionEntry code. Reflects
- testactions.c from gtk+ now.
-
- Added C# syntactic sugar for easily defining Action's for the UIManager.
- Derived from the same ActionEntry structs in gtk+.
-
-2004-11-22 Dan Winship <danw@novell.com>
-
- * generator/ClassBase.cs:
- * generator/ObjectGen.cs: Move child property handling from
- ClassBase to ObjectGen (as suggested by Mike) since it's only
- used there
-
-2004-11-18 Mike Kestner <mkestner@novell.com>
-
- * generator/InterfaceGen.cs : beginnings of a real
- implementation for GInterfaces. Not quite ready yet,
- so it's not active in generation.
-
-2004-11-18 Mike Kestner <mkestner@novell.com>
-
- * generator/Makefile.am : add new file.
- * generator/Method.cs : add Declaration property.
- * generator/VirtualMethod.cs : new class to generate virtual
- methods for Interfaces and objects. Unfinished.
-
-2004-11-18 Mike Kestner <mkestner@novell.com>
-
- * generator/ClassBase.cs : remove a "new" string in the
- ChildProp class holder decl to fix build warnings.
-
-2004-11-18 Mike Kestner <mkestner@novell.com>
-
- * atk/Atk.metadata : mark an out param on Value.
-
-2004-11-18 Mike Kestner <mkestner@novell.com>
-
- * generator/*Gen.cs : add ToNativeReturnType to deal with
- the g_free string nonsense in the virtual method case.
-
-2004-11-18 Mike Kestner <mkestner@novell.com>
-
- * generator/AliasGen.cs : make this a SimpleGen.
-
-2004-11-18 Mike Kestner <mkestner@novell.com>
-
- * parser/gapi2xml.pl : fix a missing semi in a vm regex.
- * */*-api.raw : regen with missing vms.
-
-2004-11-18 Dan Winship <danw@novell.com>
-
- Redo child property handling; now we generate classes to hold the
- child properties for a given widget in a container, and generate
- the child properties as properties on those classes.
-
- * parser/gapi2xml.pl (addPropElem): don't prepend "child_" to
- child prop names any more
-
- * generator/ClassBase.cs (ClassBase): keep childprops separate
- from properties
- (GenChildProperties): create a subclass of Gtk.ContainerChild
- containing the container type's child properties, and override the
- Container indexer to return that type.
-
- * generator/ObjectGen.cs (Generate): call GenChildProperties
-
- * generator/Property.cs:
- * generator/ChildProperty.cs: Simplify these a bunch, since child
- properties are now represented as C# properties as well. Also add
- [GLib.Property(cname)] and [Gtk.ChildProperty(cname)] attributes.
-
- * glib/Makefile.am (sources): add PropertyAttribute.cs
-
- * glib/PropertyAttribute.cs: attribute used to label
- GObject properties
-
- * gtk/Makefile.am (sources): add ChildPropertyAttribute.cs
-
- * gtk/gtk-api.raw: regenerate for parser changes (remove
- "Child"/"child_" from child property names).
-
- * gtk/ChildPropertyAttribute.cs: attribute used to label
- GtkContainer child properties
-
- * gtk/Container.custom: define the ContainerChild class, and an
- indexer to return instances of it.
-
-2004-11-17 Jorn Baayen <jorn@nl.linux.org>
-
- * gtk/FileChooserDialog.custom : set TransientFor, not Parent.
- [Fixes #69626]
-
-2004-11-17 Mike Kestner <mkestner@novell.com>
-
- * gnome/Makefile.am : kill unused file.
- * gnome/voidObjectAffineSVPintSignal.cs : kill old file.
-
-2004-11-17 Mike Kestner <mkestner@novell.com>
-
- * generator/Makefile.am : add new file.
- * generator/Method.cs : refactoring to use ReturnValue.
- * generator/MethodBody.cs : remove unnecessary code.
- * generator/ReturnValue.cs : class for redundant retval handling.
- * generator/Signal.cs : refactoring for ReturnValue.
- * generator/SignalHandler.cs : refactoring for ReturnValue.
-
-2004-11-16 Dan Winship <danw@novell.com>
-
- * glib/Value.cs: add new constructors for enum and boxed values
- that take the name of the type rather than an object/property
- name pair; this way they work for both GObject properties and
- GtkContainer child properties.
-
- * glib/glue/value.c (gtksharp_value_create_from_type_name): glue
- for that
-
- * glib/Opaque.cs (GetOpaque): Fix this.
-
- * generator/Property.cs (Generate): Use the new GLib.Value
- constructors. (Fixes setting of enum-valued child properties.)
-
-2004-11-15 Dan Winship <danw@novell.com>
-
- * gtk/glue/container.c (gtksharp_container_get_focus_child): New
- glue method to get container->focus_child
-
- * gtk/Gtk.metadata: hide SetFocusChild
-
- * gtk/Container.custom (FocusChild): implement with both getter
- and setter
-
-2004-11-15 Mike Kestner <mkestner@novell.com>
-
- * gtk/Gtk.metadata : hide the Get/Set Color methods that are marked
- deprecated but didn't exist in 1.0.
-
-2004-11-13 Duncan Mak <duncan@ximian.com>
-
- * generator/SymbolTable.cs: Add support for GDestroyNotify, so
- that `gtk_cell_layout_set_cell_data_func' will be generated in
- Gtk.ComboBox.
-
-2004-11-13 Mike Kestner <mkestner@novell.com>
-
- * */*-api.raw : rerun the parser for new vm-age and cleanups.
- * parser/gapi_pp.pl : suppress union types, since we can't generate
- them. smarter get_type regex. ignore #errors.
- * parser/gapi2xml.pl : generate vm elements for GInterfaces. Deal
- with G_CONST_RETURN in vms. deal with "struct _foo" types in method
- prototypes.
- * gtk/ComboBox.custom : remove now correctly generated dllimport.
-
-2004-11-13 Mike Kestner <mkestner@novell.com>
-
- * sources/gda.patch : fix broken signal defs.
- * sources/gnomedb.patch : fix broken signal defs.
- * sources/Makefile.am : apply new patches, and dist some others.
-
-2004-11-12 Mike Kestner <mkestner@novell.com>
-
- * parser/gapi_pp.pl : fix multi-line extern parsing.
-
-2004-11-12 Mike Kestner <mkestner@novell.com>
-
- * parser/gapi_pp.pl : fix a struct parsing bug.
-
-2004-11-12 Mike Kestner <mkestner@novell.com>
-
- * sources/gtk-sharp-sources.xml : exclude a couple more pango headers.
-
-2004-11-09 Mike Kestner <mkestner@novell.com>
-
- * */Makefile.am : make the Obsolete warnings shaddup.
-
-2004-11-09 Mike Kestner <mkestner@novell.com>
-
- * configure.in : conditional stuff for gnomevfs
- * doc/Makefile.am : conditionally update panelapplet and gnomevfs.
- * doc/en/*/* : update to add PanelApplet and Gnome.Vfs stubs.
- * gnomevfs/Makefile.am : make conditional
-
-2004-11-08 Dan Winship <danw@novell.com>
-
- * glib/Object.cs (CreateNativeObject): virtualize
- (Object(GType)): Mark this ctor Obsolete
-
- * gtk/Gtk.metadata: disable the generated GType ctor on Gtk.Widget
-
- * gtk/Widget.custom (Widget, CreateNativeObject,
- Widget_ParentSet): Connect to our own ParentSet event from
- CreateNativeObject and the GType ctor, and keep a static Hashtable
- of parented widgets, so that adding a managed widget to a
- container keeps both the GObject and the managed object alive.
-
- * generator/ObjectGen.cs (GenCtors): handle the disable_gtype_ctor
- flag. Also, mark GType ctors [Obsolete]
-
- * generator/ChildProperty.cs:
- * generator/Property.cs: Fix child property names.
-
-2004-11-07 Jeroen Zwartepoorte <jeroen@xs4all.nl>
-
- * gtk/Gtk.metadata: Fix some TreeModelFilter stuff (similar to
- TreeModelSort).
-
-2004-11-05 Jeroen Zwartepoorte <jeroen@xs4all.nl>
-
- * gnomevfs/*.cs: Add copyright/LGPL header.
- * gnomevfs/*.custom: Idem.
- * gnomevfs/Mime.cs: Obsolete, replaced by MimeType.cs.
- * gnomevfs/MimeActionType.cs: Obsolete, generated now.
- * gnomevfs/OpenMode.cs: Idem.
- * gnomevfs/Result.cs: Idem.
- * gnomevfs/SeekPosition.cs: Idem.
-
-2004-11-05 Dan Winship <danw@novell.com>
-
- * parser/gapi2xml.pl (parseInitFunc, addPropElem): handle
- GtkContainer child properties
-
- * generator/Property.cs:
- * generator/ChildProperty.cs: make Property subclassable and add a
- "ChildProperty" subclass.
-
- * generator/Makefile.am (sources): add ChildProperty.cs
-
- * generator/ClassBase.cs: handle "childprop" nodes by creating
- ChildProperty objects.
-
- * glib/Value.cs (explicit operator EnumWrapper): use
- g_value_get_flags() rather than g_value_get_enum() when
- appropriate.
-
- * glib/glue/value.c (glibsharp_value_holds_flags): glue for that
-
- * gtk/gtk-api.raw: regen to pick up child properties
-
- * gtk/Gtk.metadata:
- * gtk/Container.custom: hide the auto-generated
- Gtk.Container.ChildGetProperty and implement a nicer one by hand.
-
- * gtk/glue/container.c (gtksharp_container_child_get_property):
- utility function to set up an appropriate GValue for us
-
-2004-11-05 Tambet Ingo <tambet@ximian.com>
-
- * generator/OpaqueGen.cs: Add optional "parent" attribute to Opaque
- types.
-
-2004-11-04 Jeroen Zwartepoorte <jeroen@xs4all.nl>
-
- * gnomevfs/Directory.cs: Add async GetEntries Uri alias.
- * gtk/FileChooserDialog.custom: Add nice custom properties for Uris.
- ListFilters, ListShortcutFolders and ListShortcutFolderUris.
- * gtk/FileChooserWidget.custom: Idem.
- * gtk/Gtk.metadata: Idem.
-
-2004-11-04 Todd Berman <tberman@off.net>
-
- * glib/ListBase.cs: In Empty, call FreeList, not Dispose.
-
-2004-11-04 Todd Berman <tberman@off.net>
-
- * glib/ListBase.cs: Make sure to properly check if it is a
- GLib.Object subclass.
-
-2004-11-04 Todd Berman <tberman@off.net>
-
- * doc/en/GLib/ListBase.xml: Add documentation for ListBase.Empty
- * glib/ListBase.cs: Add ListBase.Empty, frees the children and the
- list.
- * glib/Markup.cs: Fix Alex's tomboy crash, sending -1 instead of
- Length.
- * gtk/FileChooserDialog.custom:
- * gtk/FileChooserWidget.custom: properly free the list.
-
-2004-11-03 Todd Berman <tberman@off.net>
-
- * gtk/FileChooserDialog.custom:
- * gtk/FileChooserWidget.custom: Properly implement .Filenames. The old
- code was a really bad c&p job.
-
-2004-11-02 Jeroen Zwartepoorte <jeroen@xs4all.nl>
-
- * gnomevfs/AsyncDirectoryLoadCallback.cs:
- * gnomevfs/AsyncDirectoryLoadCallbackNative.cs:
- * gnomevfs/Directory.cs: Implement asynchronous directory loading.
- * gnomevfs/FileInfo.cs: Clear the FileInfoNative struct in the
- destructor.
- * gnomevfs/Makefile.am: Add new callback files.
- * sample/gnomevfs/TestDirectory.cs: Add async test.
-
-2004-11-01 Jeroen Zwartepoorte <jeroen@xs4all.nl>
-
- * gnomevfs/Directory.cs: New Create and Delete methods. Free the
- FileInfo List returned by gnome_vfs_directory_list_load.
- * gnomevfs/FileInfo.cs: Copy the FileInfoNative struct so the original
- can be properly freed.
- * gnomevfs/Vfs.cs: Move MakeDirectory and RemoveDirectory to Directory.
-
-2004-11-01 Jeroen Zwartepoorte <jeroen@xs4all.nl>
-
- * gnomevfs/Directory.cs: Bind gnome_vfs_directory_list_load as a static
- FileInfo[] GetEntries (uri) method.
- * gnomevfs/FileInfo.cs: Add internal FileInfoNative constructor to
- create a FileInfo class based on an existing FileInfoNative struct.
- * gnomevfs/Makefile.am:
- * sample/gnomevfs/Makefile.am:
- * sample/gnomevfs/TestDirectory.cs:
-
-2004-10-30 Todd Berman <tberman@off.net>
-
- * gtk/ComboBox.custom:
- * gtk/FileChooserDialog.custom:
- * gtk/FileChooserWidget.custom: Fix c&p error with filename.
-
-2004-10-29 Todd Berman <tberman@off.net>
-
- * gtk/ComboBox.custom: Add a header.
- * gtk/FileChooserDialog.custom: Add subclassing support, and a header.
- * gtk/FileChooserWidget.custom: Add a header.
-
-2004-10-29 Todd Berman <tberman@off.net>
-
- * gtk/FileChooserDialog.custom: Add Filenames property to return
- the data as a string[] instead of a GSList.
- * gtk/FileChooserWidget.custom: Same as above.
- * gtk/Makefile.am: Add FileChooserWidget.custom
-
-2004-10-30 Jeroen Zwartepoorte <jeroen@xs4all.nl>
-
- * sources/gtk-sharp-sources.xml: Invalid XML due to unremoved -->
- closing comment tag.
-
-2004-10-29 Todd Berman <tberman@off.net>
-
- * gtk/FileChooserDialog.custom: Allow a null parent.
-
-2004-10-29 Todd Berman <tberman@off.net>
-
- * gconf/GConf/gconf-sharp-2.0.pc.in: s/PACKAGE/PACKAGE_VERSION/ to fix
- -pkg:gtk-sharp
-
-2004-10-29 Todd Berman <tberman@off.net>
-
- * gtk-sharp-2.0.pc.in: s/PACKAGE/PACKAGE_VERSION/ to fix -pkg:gtk-sharp
-
-2004-10-26 Dan Winship <danw@novell.com>
-
- * gdk/Gdk.metadata: Remap all "out Gdk.Bitmap" params to be
- Gdk.Pixmaps instead, because the former will crash. Also fix the
- "data" param to Pixmap.CreateFromXpmD and
- Pixmap.ColormapCreateFromXpmD
-
- * gtk/Style.custom (TextAAGC, SetTextAAGC, LightGC, SetLightGC,
- DarkGC, SetDarkGC, MidGC, SetMidGC): add these to go along with
- BaseGC, SetBaseGC, etc.
-
- * gtk/glue/style.c: add the glue methods needed for the above
-
-2004-10-21 Mike Kestner <mkestner@ximian.com>
-
- * generator/SymbolTable.cs : map unsigned int to uint. [Fixes #67732]
-
-2004-10-21 Mike Kestner <mkestner@ximian.com>
-
- * configure.in : guard against broken installs where enable_gnome
- fails but enable_gnomedb succeeds. [Fixes #67986]
-
-2004-10-20 Dan Winship <danw@novell.com>
-
- * gdk/Window.custom: add a new constructor that takes a
- Gdk.WindowAttributesType rather than an int for attributes_mask.
-
-2004-10-18 Dan Winship <danw@novell.com>
-
- * generator/OpaqueGen.cs: Don't build the (IntPtr raw) constructor
- if "disable_raw_ctor" is set on the opaque type.
-
- * gtk/Gtk.metadata: Make GtkTargetList opaque (fixes a crash in
- Gtk.Drag.Begin), hide the generated constructor and ref/unref
- methods, and fix up the interpretation of AddTable.
-
- * gtk/TargetList.custom (TargetList, ~TargetList): Implement the
- suppressed constructors and add a finalizer, which handle
- refcounting the underlying struct.
- (Add, Find, Remove): convenience overloads that take string
- instead of Gdk.Atom.
-
- * gtk/Makefile.am (customs): add TargetList.custom
-
-2004-10-07 Mike Kestner <mkestner@ximian.com>
-
- * gdk/Makefile.am : add missing custom file.
- * gdk/Pixmap.custom : add overloads for *CreateFromXPM* methods which
- default transparency mask and color.
-
-2004-10-07 Todd Berman <tberman@off.net>
-
- * gtk/Gtk.metadata: Mark ComboBox.GetActiveIter as an out param.
-
-2004-10-06 John Luke <john.luke@gmail.com>
-
- * gtk/Action.custom: add overload for string, string, null, null
- * gtk/UIManager.custom: add overload to get the UI from a resource
- * gtk/Makefile.am: add the 2 new custom files
- * sample/Action.cs: remove using GtkSharp, make ui_info const, quit on Quit
-
-2004-10-05 Todd Berman <tberman@off.net>
-
- * gtk/ComboBox.custom: Add SetCellDataFunc to allow you to set a
- CellLayoutDataFunc on a ComboBox.
-
-2004-10-05 Todd Berman <tberman@off.net>
-
- * gtk/ComboBox.custom: new file, to allow get/set access to 'model'.
- * gtk/Makefile.am: add ComboBox.custom.
-
-2004-10-05 Mike Kestner <mkestner@ximian.com>
-
- * gtk/Gtk.metadata : hide Selection.GetTargets.
- * gtk/SelectionData.custom : impl Targets prop and add Selection,
- Target, and Type field accessors.
- * gtk/glue/selectiondata.c : field accessor glue.
-
-2004-10-04 Todd Berman <tberman@off.net>
-
- * Merge forward patch from Miguel to fix delegate marshalling in
- 1.1.1. Original Changelog follows
-
-2004-10-04 Todd Berman <tberman@off.net>
-
- * */*.pc.in: Fix the Requires to use -2.0
-
-2004-09-29 Mike Kestner <mkestner@ximian.com>
-
- * gtk/Gtk.metadata : hide some ellipsis methods, add pass_as attrs.
- * gtk/Object.custom : new IsFloating property.
- * gtk/glue/object.c : new gtksharp_object_set_floating glue.
-
-2004-09-29 Mike Kestner <mkestner@ximian.com>
-
- * generator/GStringGen.cs : new generatable impl for GStrings.
- * generator/InterfaceGen.cs : better error reporting.
- * generator/Makefile.am : add new source file.
- * generator/Method.cs : better error reporting.
- * generator/SymbolTable.cs : add new GString igen.
-
-2004-09-29 Mike Kestner <mkestner@ximian.com>
-
- * glib/GString.cs : new marshaling class for GStrings. Used by
- generator to map GString params and returns onto managed strings.
- * glib/Makefile.am : add new file.
-
-2004-09-27 Mike Kestner <mkestner@ximian.com>
-
- * gtk/Button.custom : add a ctor (Widget). reworked from patch by
- John Luke.
- [Fixes #66228]
-
-2004-09-26 Mike Kestner <mkestner@ximian.com>
-
- * glib/Idle.cs : proxy hash keys are uints, not ints.
-
-2004-09-24 Mike Kestner <mkestner@ximian.com>
-
- * gtk/Bin.custom : make Child get/set.
- * gtk/Gtk.metadata : hide the Bin.get_child method.
- [Fixes #66232]
-
-2004-09-23 Mike Kestner <mkestner@ximian.com>
-
- * gtk/Widget.custom : new OnSetScrollAdjustments VM.
- * gtk/glue/widget.c : glue for new VM.
-
-2004-09-18 Miguel de Icaza <miguel@ximian.com>
-
- * glib/Source.cs: Add new base class to hold the method to be
- called, and the proxy handler we use to keep references to them
- and avoid a collection.
- Exposes a new variables that references all the active Timeouts
- and Idle handlers to avoid collection/
- * glib/Timeout.cs: Implement TimeoutProxy that acts as a filter to
- remove the proxy when the timeout is removed.
- Register a TimeoutProxy when we create a timeout.
- * glib/Idle.cs: Implement IdleProxy that acts as a filter to
- remove the proxy when the idle handler is removed.
- Register an IdleProxy when we create a timeout.
-
-2004-09-17 Mike Kestner <mkestner@ximian.com>
-
- * configure.in : bump version and tag for 1.0.2.
-
-2004-09-17 Mike Kestner <mkestner@ximian.com>
-
- * configure.in : bump version and tag for 1.0.2.
-
-2004-09-17 Mike Kestner <mkestner@ximian.com>
-
- * configure.in : use either gtkhtml 3.0 or 3.2
-
-2004-09-14 Mike Kestner <mkestner@ximian.com>
-
- * gdk/* : remaining API audit fixes.
-
-2004-09-09 Mike Kestner <mkestner@ximian.com>
-
- * gdk/Device.custom : manual GetHistory impl.
- * gdk/Display.custom : manual GetPointer overloads.
- * gdk/Gdk.metadata : hides and array params.
- * gdk/Makefile.am : add new file.
- * gdk/TextProperty.cs : new manual impl of methods.
-
-2004-09-03 Mike Kestner <mkestner@ximian.com>
-
- * configure.in : expand new doc/updater makefile
- * gtk/Gtk.metadata : hide Init.Check and AbiCheck*.
- * gtk/Init.custom : manual Init.Check impl.
- * gtk/Makefile.am : add Init.custom.
-
-2004-08-31 Mike Kestner <mkestner@ximian.com>
-
- * gdk/Gdk.metadata : mark out params on *CreateWithXpm*.
- [Fixes #61116]
-
-2004-08-31 Mike Kestner <mkestner@ximian.com>
-
- * gtk/NodeStore.cs : add GType prop to expose native gtype.
- [Fixes #61226]
-
-2004-08-31 Mike Kestner <mkestner@ximian.com>
-
- * glib/Marshaller.cs : fix utc offseting for time_tToDateTime.
- [Fixes #60960]
-
-2004-08-30 Tambet Ingo <tambet@ximian.com>
-
- * glib/ListBase.cs : indexing bugfix for CopyTo.
-
-2004-08-28 John Luke <john.luke@gmail.com>
-
- * gdk/Gdk.metadata: change Gdk.KeyVal name return-type from
- gchar* to const-gchar*, so we do not try to modify it (call gfree).
- [Fixes #64421]
-
-2004-08-27 Jeroen Zwartepoorte <jeroen@xs4all.nl>
-
- * gnomevfs/Async.cs: Add Priority enum. Add methods which take an Uri
- object (similar to Sync methods).
- * gnomevfs/Vfs.cs: Add Truncate bindings.
- * gnomevfs/VfsStream.cs: Major fixes. Don't use the AsyncWaitHandle for
- blocking until an operation has finished. Fix (a)sync reading & writing.
- You either use sync/async throughout the code. Can't mix sync and async
- gnome-vfs method calls (different Handle objects).
- * gnomevfs/VfsStreamAsyncResult.cs: Throw NotSupportedException when
- AsyncWaitHandle property is accessed.
- * sample/gnomevfs/Makefile.am: New test programs.
- * sample/gnomevfs/TestAsync.cs:
- * sample/gnomevfs/TestAsyncStream.cs:
- * sample/gnomevfs/TestSyncStream.cs:
-
-2004-08-26 Manuel V. Santos <mvsl@telefonica.net>
-
- * gdk/Device.custom : glue to expose object fields.
- * gdk/DeviceAxis.custom : expand the ToString to incl use:
- * gdk/EventButton.custom : fix for Axes prop.
- * gdk/EventMotion.custom : fix for Axes prop.
- * gdk/Gdk.metadata : hide some accessors on Device.
- * gdk/Makefile.am : add new custom.
- * gdk/glue/Makefile.am : add new .c
- * gdk/glue/makefile.win32 : add new .o
- * gdk/glue/device.c : ditto.
- * gtk/InputDialog.custom : glue to expose button fields.
- * gtk/Makefile.am : add new custom.
- * gtk/glue/Makefile.am : add new .c
- * gtk/glue/makefile.win32 : add new .o
- * gtk/glue/inputdialog.c : ditto.
- * sample/ScribbleXInput.cs : new sample using extension events.
-
-2004-08-25 Mike Kestner <mkestner@ximian.com>
-
- * generator/Signal.cs : use typeof instead of Type.GetType to
- specify the event args type.
- * glib/ObjectManager.cs : beef up the type lookup code using
- Assembly.LoadWithPartialName to fix a very popular win32 bug.
- [Fixes #61139 and friends] Thanks to John Luke for expert
- patch testing on win32.
-
-2004-08-25 John Luke <john.luke@gmail.com>
-
- * glib/MainLoop.cs: MainLoop implementation by Jeroen
- [Fixes #61493]
-
-2004-08-24 Mike Kestner <mkestner@ximian.com>
-
- * gtk/Gtk.metadata : kill TreeDataList and TreeDataSortHeader
- internal types.
-
-2004-08-24 Larry Ewing <lewing@ximian.com>
-
- * gtk/Gtk.metadata : Style.PaintPolygon has an array of points.
-
-2004-08-24 John Luke <john.luke@gmail.com>
-
- * gtk/Makefile.am: add Menu.custom
- * gtk/Menu.custom: new custom for Popup () overload
- [Fixes #60668]
- * rsvg/Pixbuf.custom: new custom file
- * rsvg/Makefile.am: add Pixbuf.custom to build
- * rsvg/Tool.cs: remove double ; that cause warnings
- * rsvg/rsvg-sharp.pc.in: add Requires: gtk-sharp art-sharp
- [Fixes #60894]
- * gdk/PixbufLoader.custom: add Write () overload
- [Fixes #62681]
-
-2004-08-24 Larry Ewing <lewing@ximian.com>
-
- * gdk/Pixbuf.custom : add RenderThresholdAlpha overload which defaults
- to the entire pixbuf width/height.
- [Fixes #60703]
-
-2004-08-24 Mike Kestner <mkestner@ximian.com>
-
- * gdk/Drawable.custom : add a DrawPolygon overload with bool filled
- and mark the old int filled overload Obsolete.
- [Fixes #60702]
-
-2004-08-23 Todd Berman <tberman@off.net>
-
- * panelapplet/BonoboUIVerb.cs:
- * panelapplet/ContextMenuItem.cs:
- * panelapplet/Makefile.am:
- * panelapplet/PanelApplet.custom: Remove the ContextMenuItem and the
- need for the glue. Add BonoboUIVerb to directly call the setup_menu
- function. Leave the glue library for now, as I think getting the
- proper orientation stuff setup will require some glue work.
- * sample/panelapplet/testapplet.cs: Update sample to reflect new
- api. Need to make this installable.
-
-2004-08-22 Jeroen Zwartepoorte <jeroen@xs4all.nl>
-
- * gnomevfs/Makefile.am: Remove ADDITIONAL_API variable.
-
-2004-08-20 Mike Kestner <mkestner@ximian.com>
-
- * atk/Atk.metadata : mark an array param on Relation ctor.
-
-2004-08-19 Borja Sanchez Zamorano <borsanza@yahoo.es>
-
- * gtk/Gtk.metadata : hide some methods on TextBuffer.
- * gtk/TextBuffer.custom : pass -1 for the text length to some
- more methods.
-
-2004-08-19 Jeroen Zwartepoorte <jeroen@xs4all.nl>
-
- * gnomevfs/Makefile.am: Add Monitor.cs.
- * gnomevfs/Monitor.cs: New custom class wrapping the gnome_vfs_monitor_*
- methods.
- * sample/gnomevfs/Makefile.am: Added TestMonitor.cs.
- * sample/gnomevfs/TestMonitor.cs: Test case for using the new Monitor
- class.
-
-2004-08-18 John Luke <john.luke@gmail.com>
-
- * AUTHORS: fix my name
- * glade/XML.custom: remove doc comments (in monodoc)
- add overload ctor for the most common case so far
- [Fixes #62238]
-
-2004-08-18 John Luke <john.luke@gmail.com>
-
- * pango/Pango.metadata : hide a couple methods on Layout.
- * pango/Layout.custom : impl SetText and SetMarkup w/ length=-1.
- [Fixes #63057]
-
-2004-08-18 Mike Kestner <mkestner@ximian.com>
-
- * gtk/Gtk.metadata : unhide ExpanderStyle.
- * doc/en/Gtk/Style.xml : doc PaintExpander.
- * doc/en/Gtk/ExpanderStyle.xml : new enum docs.
- [Fixes #60480] metadata patch from Jeroen Zwartepoorte.
-
-2004-08-17 Mike Kestner <mkestner@ximian.com>
-
- * pango/Pango.metadata : metadata for the pango audit.
- * pango/*.custom : customizations to fix audited API.
- * doc/en/* : docs for some api changes and additions.
- * glib/Marshaller.cs : some gunichar marshal-fu.
- * glib/glue/unichar.c : a new glue method.
-
-2004-08-14 Todd Berman <tberman@off.net>
-
- * gnomevfs/VfsStream.cs: if ErrorEof is returned in Read, return 0
- instead of throwing an exception.
-
-2004-08-13 John Luke <john.luke@gmail.com>
-
- * gtk/Gtk.metadata: mark Gtk.StockManager.Lookup param as ref
- patch by jaspervp@gmx.net (Jasper van Putten)
- [Fixes #61893]
-
-2004-08-13 Mike Kestner <mkestner@ximian.com>
-
- * gtk/Gtk.metadata : hide Insert and SetText for manual impl.
- * gtk/TextBuffer.custom : pass -1 for length to Insert and SetText.
- Adapted from a patch by borsanza@yahoo.es (Borja Sanchez Zamorano).
- [Fixes #62985]
-
-2004-08-10 Todd Berman <tberman@off.net>
-
- * gnomevfs/AssemblyInfo.cs.in: use the .snk, not the .pub.
-
-2004-08-10 Jeroen Zwartepoorte <jeroen@xs4all.nl>
-
- * glib/MainLoop.cs:
- * gnomevfs/.cvsignore:
- * gnomevfs/Async.cs:
- * gnomevfs/FileInfo.cs:
- * gnomevfs/Gnomevfs.metadata:
- * gnomevfs/Makefile.am:
- * gnomevfs/MimeType.cs:
- * gnomevfs/Sync.cs:
- * gnomevfs/Uri.custom:
- * gnomevfs/VfsStream.cs:
- * gnomevfs/VfsStreamAsyncResult.cs:
- * gnomevfs/VolumeMonitor.custom:
- * gnomevfs/Xfer.cs:
- * gnomevfs/XferProgressCallback.cs:
- * gnomevfs/XferProgressCallbackNative.cs:
- * gnomevfs/filesize.diff:
- * gnomevfs/gnomevfs-api.raw:
- * sample/gnomevfs/.cvsignore:
- * sample/gnomevfs/Makefile.am:
- * sample/gnomevfs/TestInfo.cs:
- * sample/gnomevfs/TestMime.cs:
- * sample/gnomevfs/TestSync.cs:
- * sample/gnomevfs/TestSyncCreate.cs:
- * sample/gnomevfs/TestSyncWrite.cs:
- * sample/gnomevfs/TestUnlink.cs:
- * sample/gnomevfs/TestVolumes.cs:
- * sample/gnomevfs/TestXfer.cs:
-
- Commit new gnomevfs files and samples. Also the GLib.MainLoop addition
- for programs which don't want to use Gtk.Application.Run (), but still
- use the GLib main loop.
-
-2004-08-04 Raja R Harinath <rharinath@novell.com>
-
- * configure.in (GTKHTML): Use SOVERSION=11 for GtkHTML 3.1.18.
- * gda/Makefile.am ($(API)): Remove duplicated $(srcdir).
-
-2004-07-30 Mike Kestner <mkestner@ximian.com>
-
- * parser/gapi2xml.pl : char const * fixes for clahey's gsf binding.
-
-2004-07-28 Jeroen Zwartepoorte <jeroen@xs4all.nl>
-
- * */*: merge from HEAD again.
-
-2004-07-24 Mike Kestner <mkestner@ximian.com>
-
- * gdk/Gdk.metadata : hide Window.Destroy.
- * gdk/Window.custom : manually impl Destroy since it releases our ref.
- * glib/Object.cs : support unset of Raw values.
-
-2004-07-22 Mike Kestner <mkestner@ximian.com>
-
- * glib/Value.cs : allow null for ctor(GLib.Object).
-
-2004-07-18 Todd Berman <tberman@off.net>
-
- * panelapplet/Makefile.am: We dont actually use gnome-sharp.dll, remove
- it.
-
-2004-07-16 John Luke <jluke@cfl.rr.com>
-
- * gtk/Gtk.metadata:
- * glade/Glade.metadata: mark return type as const-gchar* for
- Gtk.Global.CheckVersion and Glade.Global.ModuleCheckVersion
- so Gtk# does not try to free them. Thanks to
- jaspervp@gmx.net (Jasper van Putten) for identifying the Glade
- part. Fixes bugs #61329 and #60954
-
-2004-07-12 Martin Willemoes Hansen <mwh@sysrq.dk>
-
- * gnome/Gnome.metadata: Fixed typo i to 1
- Remove unnessesary disabledefaultconstructor
- * gnome/PrintJob.custom: Change ctor to an overload ctor
-
-2004-07-11 Todd Berman <tberman@off.net>
-
- * panelapplet/ContextMenuItem.cs: New struct to hold context menu
- item information.
- * panelapplet/Makefile.am: added new file.
- * panelapplet/PanelApplet.custom: add glue accessor to set the context
- menu.
- * panelapplet/glue/panelapplet.c: new glue functionality to setup a
- context menu.
- * sample/panelapplet/testapplet.cs: expand sample to show context menu
- code.
-
-2004-07-10 Todd Berman <tberman@off.net>
-
- * panelapplet/panelapplet-sharp-2.0.pc.in: fix path.
-
-2004-07-09 Mike Kestner <mkestner@ximian.com>
-
- * gdk/Gdk.metadata : mark gc param of Drawable.DrawPixbuf null_ok.
-
-2004-07-09 Todd Berman <tberman@off.net>
-
- * Makefile.am:
- * configure.in:
- Add panelapplet stuff to configure.in and the subdirs.
- * generator/ClassBase.cs:
- * generator/ObjectGen.cs:
- Add a new attribute 'abstract' to allow a class to be defined to be
- abstract. PanelApplet.PanelApplet uses this.
- * panelapplet/.cvsignore:
- * panelapplet/AppletFactory.cs:
- * panelapplet/AssemblyInfo.cs.in:
- * panelapplet/Makefile.am:
- * panelapplet/PanelApplet.cs:
- * panelapplet/PanelApplet.custom:
- * panelapplet/PanelApplet.metadata:
- * panelapplet/panelapplet-api.raw:
- * panelapplet/panelapplet-sharp-2.0.pc.in:
- * panelapplet/panelapplet-sharp.dll.config.in:
- * panelapplet/glue/.cvsignore:
- * panelapplet/glue/Makefile.am:
- * panelapplet/glue/panelapplet.c:
- Initial import of the panelapplet code. This code is largely
- untested, and will need a good amount of glue. For sure glue code is
- needed for the context menu items.
- * sample/panelapplet/CSharpTestApplet_Factory.server:
- * sample/panelapplet/monodoc.png:
- * sample/panelapplet/testapplet.cs:
- A small testcase for the panelapplet. There is no makefile yet, and
- the server needs some help as it uses an absolute path that will only
- work on my box. When I get back to Toronto (so some point this weekend)
- I will fix this code to build/install properly and add a README file
- to help with any potential issues.
- * sources/Makefile.am:
- * sources/gtk-sharp-sources.xml:
- Add the panelapplet-sharp stuff to the build here.
-
-2004-07-06 Todd Berman <tberman@off.net>
-
- * sources/gtk_tree_model_signal_fix.patch: duh, this is the real patch.
-
-2004-07-06 Todd Berman <tberman@off.net>
-
- * sources/Makefile.am:
- * sources/gtk_tree_model_signal_fix.patch: a new hacky patch to fix
- the signal generation on the tree model structs.
- * */*-api.raw: regen.
- * glib/Object.cs: merge forward a small patch.
-
-2004-07-06 Todd Berman <tberman@off.net>
-
- * Makefile.am:
- * configure.in:
- * gtk-sharp-2.0.pc.in:
- * gtk-sharp.pc.in:
- * art/.cvsignore:
- * art/Makefile.am:
- * art/art-sharp-2.0.pc.in:
- * art/art-sharp.pc.in:
- * gconf/GConf/.cvsignore:
- * gconf/GConf/Makefile.am:
- * gconf/GConf/gconf-sharp-2.0.pc.in:
- * gconf/GConf/gconf-sharp.pc.in:
- * gda/.cvsignore:
- * gda/Makefile.am:
- * gda/gda-sharp-2.0.pc.in:
- * gda/gda-sharp.pc.in:
- * glade/.cvsignore:
- * glade/Makefile.am:
- * glade/glade-sharp-2.0.pc.in:
- * glade/glade-sharp.pc.in:
- * gnome/.cvsignore:
- * gnome/Makefile.am:
- * gnome/gnome-sharp-2.0.pc.in:
- * gnome/gnome-sharp.pc.in:
- * gnomedb/.cvsignore:
- * gnomedb/Makefile.am:
- * gnomedb/gnomedb-sharp-2.0.pc.in:
- * gnomedb/gnomedb-sharp.pc.in:
- * gnomevfs/.cvsignore:
- * gnomevfs/gnome-vfs-sharp-2.0.pc.in:
- * gnomevfs/gnome-vfs-sharp.pc.in:
- * gtkhtml/.cvsignore:
- * gtkhtml/Makefile.am:
- * gtkhtml/gtkhtml-sharp-2.0.pc.in:
- * gtkhtml/gtkhtml-sharp.pc.in:
- * rsvg/.cvsignore:
- * rsvg/Makefile.am:
- * rsvg/rsvg-sharp-2.0.pc.in:
- * rsvg/rsvg-sharp.pc.in:
- * sample/rsvg/Makefile.am:
- * vte/.cvsignore:
- * vte/Makefile.am:
- * vte/vte-sharp-2.0.pc.in:
- * vte/vte-sharp.pc.in:
- Make gtk-sharp-2.0 parallel installable with gtk-sharp. Now you can
- install both and do -pkg:gtk-sharp-2.0 or similar to compile against
- the gtk-sharp-2.0 assemblies.
-
- Basically this change comprised some small configure.in changes to
- change the $(PACKAGE) to gtk-sharp-2.0, and check for the appropriate
- versions of the gnome 2.6 based libraries.
-
- Also, every .pc file was renamed -2.0.pc to allow for the parallel
- install, and the .cvsignore and Makefile.am rules were updated to
- reflect this change.
-
-2004-07-05 John Luke <jluke@cfl.rr.com>
-
- * sample/VteTest.cs: improve the scrolling in the sample
- and pass on the Environment variables
-
-2004-07-02 Mike Kestner <mkestner@ximian.com>
-
- * configure.in : dist the HACKING file from now on.
-
-2004-07-01 Mike Kestner <mkestner@ximian.com>
-
- * sample/rsvg/Makefile.am : add an art-sharp /r.
-
-2004-06-30 John Luke <jluke@cfl.rr.com>
-
- * vte/Vte.metadata: remove unneeded metadata and add comments
-
-2004-06-29 Mike Kestner <mkestner@ximian.com>
-
- * configure.in : bump version to 1.0 and tag. Woot!
-
-2004-06-25 Mike Kestner <mkestner@ximian.com>
-
- * */*.cs : add lgpl license blurb and clean up (c)'s.
- * */*.custom : add lgpl license blurb and clean up (c)'s.
- * */glue/*.c : add lgpl license blurb and clean up (c)'s.
- file adds without license from now on are punishable by wedgie.
-
-2004-06-25 Mike Kestner <mkestner@ximian.com>
-
- * generator/*.cs : add gpl license blurb and clean up (c)'s.
- * parser/* : ditto
- * doc/*.cs : ditto
- * doc/gen-handlerargs-docs.cs : add little scripty.
-
-2004-06-25 Mike Kestner <mkestner@ximian.com>
-
- * configure.in : tag and bump version to 0.99.
-
-2004-06-23 Todd Berman <tberman@off.net>
-
- * doc/*/*.xml: s/GtkSharp.SignalArgs/GLib.SignalArgs/;
-
-2004-06-22 Mike Kestner <mkestner@ximian.com>
-
- * configure.in : GLIB check for gobject, not glib.
-
-2004-06-20 Jeroen Zwartepoorte <jeroen@xs4all.nl>
-
- * gdk/Gdk.metadata: Fix merging errors.
- * gnome/CanvasItem.custom: Idem.
- * gtk/Widget.custom: Idem.
-
-2004-06-20 Jeroen Zwartepoorte <jeroen@xs4all.nl>
-
- * *: Merge with HEAD.
-
-2004-06-17 Larry Ewing <lewing@ximian.com>
-
- * gdk/Makefile.am (sources): add Pixdata.custom
- * gdk/Pixdata.custom: add new file to fix Serialize.
- * gnome/CanvasItem.custom: remove the incorrect custom bindings.
- * gnome/Gnome.metadata: stop hiding the AffineRelative and
- AffineAbsolute the generator gets them right they are not out
- params.
- * gdk/Gdk.metadata: mark the Pixdata byte stream as and array hide
- the broken serialize method.
-
-2004-06-18 John Luke <jluke@cfl.rr.com>
-
- * sample/rsvg/Makefile.am: do not reference gnome-sharp and art-sharp
- * sample/rsvg/svghelloworld.cs: rework with just gtk (no gnome deps)
-
-2004-06-15 Mike Kestner <mkestner@ximian.com>
-
- * gtk/Gtk.metadata : hide the button_new_from_stock ctor.
- * gtk/Button.custom : add a manual ctor implementation.
-
-2004-06-14 Mike Kestner <mkestner@ximian.com>
-
- * configure.in : another "really frozen this time" release.
- * gdk/Gdk.metadata : mark a couple array params on Pixbuf.Savev.
- * gdk/Pixbuf.custom : add a Save implementation.
-
-2004-06-14 Mike Kestner <mkestner@ximian.com>
-
- * configure.in : bump the version to 0.97, tag.
-
-2004-06-12 Todd Berman <tberman@sevenl.net>
-
- * glib/ObjectManager.cs: change CreateInstance overload being used
- to properly pick up protected ctors.
-
-2004-06-11 Todd Berman <tberman@sevenl.net>
-
- * gtk/Container.custom:
- * gtk/CellRenderer.custom:
- * gnome/CanvasItem.custom: mark Override* private.
- * doc/en/*/*.xml: update to remove Override* methods.
-
-2004-06-11 Mike Kestner <mkestner@ximian.com>
-
- * doc/en/*/*.xml : update to remove Override* methods.
- * generator/Signal.cs : make the Override* methods private. They
- should not ever be called manually and it saves about 800 "do not
- call this method" doc entries.
-
-2004-06-11 Mike Kestner <mkestner@ximian.com>
-
- * configure.in : require mono-0.96, bump the version, tag.
-
-2004-06-11 Mike Kestner <mkestner@ximian.com>
-
- * configure.in : remove the mint usage for darwin.
-
-2004-06-11 Mike Kestner <mkestner@ximian.com>
-
- * configure.in : deal with a csc-ism in source paths.
- * */Makefile.am : use the GENERATED_SOURCES var.
- * */glue/Makefile.am : add -no-undefined for win32 dll builds.
-
-2004-06-10 Mike Kestner <mkestner@ximian.com>
-
- * configure.in : break the monodoc dep, even though it was optional
- it was a pain in the backside.
- * doc/Makefile.am : add assemble target to build docs using monodoc.
- we now have two manual targets which use monodoc, but aren't required
- for the default build (update and assemble).
-
-2004-06-10 Mike Kestner <mkestner@ximian.com>
-
- * configure.in : AC_SUBST GACUTIL_FLAGS. require mono-0.95 (though
- it's really cvs bleeding edge.)
- * * AssemblyInfo.cs.in : s/pub/snk. delaysign=no.
- * * Makefile.am : s/pub/snk. portability fixes to csc from John
- Luke. Switch to GACUTIL_FLAGS.
- * doc/Makefile.am : don't build docs, install raw xml to the prefix.
-
-2004-06-10 Todd Berman <tberman@sevenl.net>
-
- * gtk/Container.custom: add C# glue for virtualizing ChildType ()
- * gtk/glue/container.c: add C glue for virtualizing ChildType ()
- * gtk/Gtk.metadata: hide Container.ChildType ()
- * gtk/Widget.custom: Add ClearFlag, and SetFlag convenience methods.
- Also add various IsFlag bool properties for checking for flags.
- * gtk/glue/widget.c: Fix setting flags.
- * doc/*: updated Widget docs.
-
-2004-06-09 Todd Berman <tberman@sevenl.net>
-
- * gdk/Gdk.metadata: mark Window.SetBackPixmap as null_ok.
- * glib/Object.cs: in set_Raw, if value == IntPtr.Zero, dont put that
- in the weakref hashtable, as it creates later issues with gtk+
- returning null and gtk# mistaking if for an object.
-
-2004-06-08 Mike Kestner <mkestner@ximian.com>
-
- * gnomedb/Application.cs : add a missing DllImport.
-
-2004-06-08 Mike Kestner <mkestner@ximian.com>
-
- * gdk/Gdk.metadata : mark array param on Drawable.*Image.
-
-2004-06-08 Mike Kestner <mkestner@ximian.com>
-
- * gdk/Gdk.metadata : mark array param on Drawable.DrawGrayImage.
-
-2004-06-07 Mike Kestner <mkestner@ximian.com>
-
- * */Makefile.am : s|--unsafe|/unsafe to remove a mcs-ism that jluke
- exposed in his cygwin build patch.
-
-2004-06-07 Jeroen Zwartepoorte <jeroen@xs4all.nl>
-
- * configure.in: Add pango pkg-config check.
- * pango/Layout.custom: Updated custom code to new opaque LayoutLine.
- * pango/LayoutLine.custom: Properties for LayoutLine struct fields.
- * pango/Makefile.am:
- * pango/Pango.metadata: Make LayoutLine opaque [Fixes #59666].
- * pango/glue/.cvsignore:
- * pango/glue/Makefile.am:
- * pango/glue/layoutline.c: glue for the LayoutLine struct fields.
- * pango/glue/makefile.win32:
- * pango/glue/win32dll.c:
-
-2004-06-07 Todd Berman <tberman@sevenl.net>
-
- * gtk/Widget.custom: expose some easy bool properties for checking
- certain WidgetFlags. Make Allocation a settable property.
- * gtk/glue/widget.c: bit of glue to make Allocation settable.
- * gdk/Window.custom: expose UserData as a usable IntPtr property.
- * gdk/Gdk.metadata: hide old GetUserData/SetUserData methods.
- * doc/*: ran the updater.
-
-2004-06-07 Jeroen Zwartepoorte <jeroen@xs4all.nl>
-
- * gtk/Widget.custom: Add FocusLineWidth property.
- * gtk/glue/widget.c: (gtksharp_gtk_widget_set_flags),
- (gtksharp_gtk_widget_style_get_int): glue for getting an integer style
- property.
-
-2004-06-07 John Luke <jluke@cfl.rr.com>
-
- * doc/Makefile.am: install the docs if monodoc is there
-
-2004-06-07 Peter Williams <peter@newton.cx>
-
- * configure.in (MONODOC_REQUIRED_VERSION): Fix missing 'test' in
- shell if statement.
-
-2004-06-07 Jeroen Zwartepoorte <jeroen@xs4all.nl>
-
- * gtk/Widget.custom: Add the AddAccelerator method back which got
- removed by accident during the last merge.
- * sample/CustomNotebook.cs: New sample showing of a custom Notebook.
-
-2004-06-07 Jeroen Zwartepoorte <jeroen@xs4all.nl>
-
- * *: Merge with HEAD.
-
-2004-06-04 Todd Berman <tberman@sevenl.net>
-
- * glib/Object.cs: ConnectDefaultHandlers needs to look at public api
- as well for virtual methods.
- * gtk/CellRenderer.custom:
- * gtk/Container.custom:
- * gnome/CanvasItem.custom: Add DefaultSignalHandler to remove the need
- for the static ctor.
-
-2004-06-04 Todd Berman <tberman@sevenl.net>
-
- * gnome/CanvasItem.custom: Changed from OnXXX vmethods to XXX vmethods
- * gnome/CanvasProxy.cs: removed, unused code
- * gnome/GtkSharp.BoundsHandler.cs: removed
- * gnome/GtkSharp.DrawHandler.cs: removed
- * gnome/GtkSharp.PointHandler.cs: removed
- * gnome/GtkSharp.RenderHandler.cs: removed
- * gnome/GtkSharp.UpdateHandler.cs: removed
- * gnome/Makefile.am: updated to reflect removing of old files.
- * gtk/CellRenderer.custom: Changed from OnXXX vmethods to XXX vmethods,
- and added StartEditing vmethod
- * gtk/Container.custom: Changed from OnForall to ForAll
- * gtk/Gtk.metadata: hide CellRenderer.GetSize and StartEditing
- * gtk/glue/cellrenderer.c: new glue for CellRenderer.StartEditing
- override.
- * sample/CustomCellRenderer.cs: updated signatures to reflect new
- code.
-
-2004-06-02 Vladimir Vukicevic <vladimir@pobox.com>
-
- * gdk/Pixbuf.custom : Pixels prop isn't unsafe
-
-2004-06-02 Mike Kestner <mkestner@ximian.com>
-
- * generator/Field.cs : add field hiding, for manual impl.
- * generator/StructBase.cs : support disable_new, for manual impl.
-
-2004-06-01 Jeroen Zwartepoorte <jerone@xs4all.nl>
-
- * sample/CustomWidget.cs: remove custom GType stuff.
-
-2004-06-01 Mike Kestner <mkestner@ximian.com>
-
- * generator/ObjectGen.cs : generate protected ctor () for all
- GLib.Objects that don't have any ctors.
- * gtk/CellRenderer.custom : remove ctor ().
- * gtkhtml/Gtk.metadata : add a disable_void_ctor rule for HTML.
-
-2004-06-01 Jeroen Zwartepoorte <jeroen@xs4all.nl>
-
- * configure.in: Merge with HEAD again.
- * gdk/Gdk.metadata:
- * gnome/CanvasItem.custom:
- * gtk/Gtk.metadata:
- * sample/.cvsignore:
- * sample/CustomWidget.cs: Inherit from Gtk.Bin and make it a better
- suited sample.
-
-2004-06-01 Mike Kestner <mkestner@ximian.com>
-
- * gtk/Gtk.metadata : mark SizeRequest requisition as out, not ref.
- [Fixes #59388]
-
-2004-06-01 Jeroen Zwartepoorte <jeroen@xs4all.nl>
-
- * sample/CustomWidget.cs: Fixed Widget.SizeRequest usage. Works properly
- now.
-
-2004-05-31 Mike Kestner <mkestner@ximian.com>
-
- * configure.in : Bump version to 0.93 and tag.
-
-2004-05-31 Jeroen Zwartepoorte <jeroen@xs4all.nl>
-
- * gtk/Gtk.metadata: unhide WidgetFlags.
- * gtk/Widget.custom: add setter for GdkWindow prop. Add Flags prop.
- * gtk/glue/widget.custom: setter for window, accessors for flags.
- [Fixes #59337]
-
-2004-05-31 Jeroen Zwartepoorte <jeroen@xs4all.nl>
-
- * gdk/Gdk.metadata: fix member names in WindowClass.
- [Fixes #59336]
-
-2004-05-31 Jeroen Zwartepoorte <jeroen@xs4all.nl>
-
- * gdk/Gdk.metadata: mark dest rects as out for Intersect and Union.
- [Fixes #59341]
-
-2004-05-31 Jeroen Zwartepoorte <jeroen@xs4all.nl>
-
- * gtk/Gtk.metadata: Unhide the GtkWidgetFlags enum.
- * gtk/Makefile.am: Remove WidgetFlags.cs.
- * gtk/WidgetFlags.cs: Obsolete.
-
-2004-05-31 Jeroen Zwartepoorte <jeroen@xs4all.nl>
-
- * sample/CustomWidget.cs: The Gtk.Requisition is passed by reference in
- the OnSizeRequested handler.
-
-2004-05-31 Jeroen Zwartepoorte <jeroen@xs4all.nl>
-
- * *: Merge changes from HEAD again.
-
-2004-05-31 Jeroen Zwartepoorte <jeroen@xs4all.nl>
-
- * gtk/Container.custom: Merged fix for Container.Forall handler.
- * gtk/Makefile.am: Added WidgetFlags.cs.
- * gtk/Widget.custom: Added Flags property and setter to GdkWindow.
- * gtk/WidgetFlags.cs: Enumeration of widget flags (from widget.h).
- * gtk/glue/container.c: (gtksharp_container_invoke_gtk_callback): Fixes
- for Container.Forall handler.
- * gtk/glue/widget.c: (gtksharp_gtk_widget_set_window),
- (gtksharp_gtk_widget_get_state), (gtksharp_gtk_widget_get_flags),
- (gtksharp_gtk_widget_set_flags): Added new API which is needed to write
- custom gtk widgets.
- * parser/gapi_pp.pl: Match #if !defined (*_DISABLE_DEPRECATED) properly.
- * sample/CustomWidget.cs: new sample for creating a custom Gtk widget.
- * sample/Makefile.am: Added CustomWidget.cs sample.
-
-2004-05-29 Mike Kestner <mkestner@ximian.com>
-
- * gnome/CanvasItem.custom : for OnUpdate, Art.SVP can be NULL
- so treat it as an IntPtr with Zero checks and manual marshaling.
-
-2004-05-28 Vladimir Vukicevic <vladimir@pobox.com>
-
- * gtk/CellRenderer.custom: fix GetSize_cb, cell_area can be NULL
- coming from Gtk (so can't use ref Gdk.Rectangle, have to use
- IntPtr)
-
-2004-05-28 Miguel de Icaza <miguel@ximian.com>
-
- * Added System.Drawing samples.
-
-2004-05-28 Mike Kestner <mkestner@ximian.com>
-
- * configure.in : bump for next version, tagged 0.92.
-
-2004-05-28 Vladimir Vukicevic <vladimir@pobox.com
-
- * gtk/Gtk.metadata : s/out/ref on TreeModel.NextIter.
-
-2004-05-28 Mike Kestner <mkestner@ximian.com>
-
- * generator/ObjectGen.cs : adjust to ObjectManager ns change.
- * glib/ManagedValue.cs : move to GLib and internalize.
- * glib/Object.cs : adjust to ObjectManager ns change.
- * glib/ObjectManager.cs : move to GLib.
- * glib/TypeConverter.cs : move to GLib. return ManagedValue.GType
- when we can't match a type instead of GType.None.
- * gtk/*.custom: adjust for new TypeConverter ns and behavior.
-
-2004-05-28 Mike Kestner <mkestner@ximian.com>
-
- * gtk/Makefile.am : add new custom.
- * gtk/Settings.custom: add props for unparsed API.
-
-2004-05-27 Mike Kestner <mkestner@ximian.com>
-
- * glib/Object.cs: mark GType property public.
-
-2004-05-27 Jeroen Zwartepoorte <jeroen@xs4all.nl>
-
- * gtk/Gtk.metadata: Hide the GtkCtree class (old gtk+ 1.x junk).
-
-2004-05-26 Mike Kestner <mkestner@ximian.com>
-
- * gtkhtml/Gtk.metadata : hide Gtk.HTML the ctors.
- * gtkhtml/HTML.custom : new manual impl for ctors.
- * gtkhtml/Makefile.am : add new custom [Fixes #59148]
-
-2004-05-25 Jeroen Zwartepoorte <jeroen@xs4all.nl>
-
- * gnome/Gnome.metadata: Don't hide the GtkEntry and GnomeEntry
- properties.
- * gtk/Accel.custom: Add custom methods for backwards compatibility of
- the gtk_accel_map_* methods. [Fixes #58954]
-
-2004-05-25 Dan Winship <danw@ximian.com>
-
- * gtk/Gtk.metadata : mark a ref param in SizeRequested
-
-2004-05-25 Mike Kestner <mkestner@ximian.com>
-
- * */Makefile.am : rm generated/* in generated-stamp target.
-
-2004-05-25 Mike Kestner <mkestner@ximian.com>
-
- * configure.in : don't expand the GAPI Makefile.
- * parser/Makefile.am : remove SUBDIRS.
- * parser/gapi2xml.pl : remove GAPI::Metadata usage.
- * parser/GAPI/* : kill. long live gapi-fixup.
-
-2004-05-25 Mike Kestner <mkestner@ximian.com>
-
- * gtk/Container.custom : use glue to invoke the GtkCallback in
- Forall.
- * gtk/glue/container.c : add gtksharp_container_invoke_gtk_callback.
-
-2004-05-23 Mike Kestner <mkestner@ximian.com>
-
- * generator/SignalHandler.cs : put back the ObjectGen hack
- for param wrapping. [Fixes #58876]
-
-2004-05-23 Jeroen Zwartepoorte <jeroen@xs4all.nl>
-
- * atk/atk-api.xml: Removed.
- * gdk/gdk-api.xml: Idem.
- * glade/glade-api.xml: Idem.
- * gnome/IconTheme.cs: s/GLibSharp/GLib/
- * gnome/gnome-api.xml: Removed.
- * gtk/Adjustment.custom: Obsolete custom property code.
- * gtk/glue/adjustment.c: (gtksharp_gtk_adjustment_set_bounds): Idem.
- * gtk/gtk-api.xml: Removed.
- * pango/pango-api.xml: Idem.
-
-2004-05-23 Jeroen Zwartepoorte <jeroen@xs4all.nl>
-
- Merge changes from HEAD since yesterday.
-
-2004-05-22 Mike Kestner <mkestner@ximian.com>
-
- * configure.in : require mono-0.91.99. Sorry, but we need to
- require mono cvs until beta2 because of some recent breakage in
- Gnome.Program custom code while reflecting against the runtime.
-
-2004-05-22 Todd Berman <tberman@sevenl.net>
-
- * gnome/Program.custom: Change the Mono.Runtime stuff to reflect
- its new internal nature. This fixes MD, gnunit, and all gnome#
- programs that were blowing up for no reason.
-
-2004-05-23 Jeroen Zwartepoorte <jeroen@xs4all.nl>
-
- * *: Merge changes from HEAD again.
-
-2004-05-22 Radek Doulik <rodo@ximian.com>
-
- * gtk/TreeView.custom(GetPathAtPos): change Gtk.TreeViewColumn
- column parameter to out[put] as gtk_tree_view_get_path_at_pos
- returns column address to column parameter
- (GetPathAtPos): use GLib.Object.GetObject so that we don't create
- new TreeViewColumn object duplicates
-
-2004-05-19 Mike Kestner <mkestner@ximian.com>
-
- * gtk/Container.custom : add CallbackInvoke and use it in OnForall.
-
-2004-05-19 Mike Kestner <mkestner@ximian.com>
-
- * generator/Makefile.am : add TimeTGen.cs
- * generator/SymbolTable.cs : use new TimeTGen.
- * generator/StringGen.cs : s/GLibSharp/GLib
- * generator/TimeTGen.cs : generatable to marshal time_t.
- * glib/time_t_CustomMarshaler.cs : kill
- * glib/Makefile.am : remove time_t_CustomMarshaler.cs
- * glib/Markup.cs : s/GLibSharp/GLib
- * glib/Marshaller.cs : move to GLib namespace. Add methods to
- marshal time_t to and from DateTime.
- * glib/glue/time_t.c : kill
- * glib/glue/Makefile.am : remove time_t.c
- * glib/glue/makefile.win32 : remove time_t.o
- * gnome/*.custom : use GLib.Marshaller instead of the time_t custom
- marshaler.
- * gtk/*.custom : s/GLibSharp/GLib
-
-2004-05-18 Zoltan Varga <vargaz@freemail.hu>
-
- * glib/time_t_CustomMarshaler.cs: Fix custom marshalling after runtime
- changes.
-
-2004-05-18 Vladimir Vukicevic <vladimir@pobox.com
-
- * gnome/Print.custom: Cast .Pixels usage to a (byte *)
-
-2004-05-17 Vladimir Vukicevic <vladimir@pobox.com>
-
- * gdk/Pixbuf.custom: Changed Pixbuf.Pixels to return an IntPtr instead
- of a byte * -- anyone who needs a byte * can do the cast in an unsafe
- context already.
-
-2004-05-18 Todd Berman <tberman@sevenl.net>
-
- * samples/Scribble.cs: Im bored, you can erase, etc
-
-2004-05-18 Mike Kestner <mkestner@ximian.com>
-
- * glib/MissingIntPtrCtorException.cs : new exception to throw if
- unable to access an IntPtr ctor on a GLib.Object subclass. We need
- an IntPtr ctor to be able to wrap arbitrary object handles.
- * glib/Object.cs : have NativeType call LookupGType.
- * glib/ObjectManager.cs : throw the new exception in a try/catch.
-
-2004-05-17 Mike Kestner <mkestner@ximian.com>
-
- * generator/ObjectGen.cs : Generate a .cctor that calls the assembly's
- ObjectManager.Initialize method if the class will need to be registered
- with GLib.ObjectManager. Enhance the Initialize method to allow
- multiple invocations.
-
-2004-05-17 Mike Kestner <mkestner@ximian.com>
-
- * generator/SignalHandler.cs : fix some broken/redundant generation in
- the Object/Struct wrapping for sig params.
- * glib/Object.cs : internalize/protect lots of API that shouldn't need
- to be used by non-subclass/non-glib code. Return GType.Object as GType.
- * glib/Value.cs : use internal GLib.Object.NativeType prop.
- * sample/TestDnd.cs : use ToString instead of TypeName.
-
-2004-05-14 Todd Berman <tberman@sevenl.net>
-
- * glib/Object.cs: make static GLib.Object.LookupGType protected for now.
- * gtk/CellRenderer.custom: code to allow for subclassing and
- implementing a custom cell renderer.
- * gtk/Makefile.am: add custom to build.
- * gtk/glue/Makefile.am: add glue to build.
- * gtk/glue/cellrenderer.c: glue code to override get_size and render
- from cellrenderer.
- * sample/CustomCellRenderer.cs: new sample to show how to implement a
- custom cell renderer.
- * sample/Makefile.am: add CustomCellRenderer sample.
-
-2004-05-13 Todd Berman <tberman@sevenl.net>
-
- * *.pc.in: add .dll to the end of the Libs: references, and convert
- them to be absolute paths.
-
-2004-05-11 Mike Kestner <mkestner@ximian.com>
-
- * *.pc.in : add Requires so that dependent libs are pulled in too.
-
-2004-05-11 Mike Kestner <mkestner@ximian.com>
-
- * gconf/GConf/NotifyWrapper.cs : add some defensive null checking.
- [fixes #57902]
-
-2004-05-11 Mike Kestner <mkestner@ximian.com>
-
- * gtk/SelectionData.custom : add a Set overload without length param.
-
-2004-05-10 Mike Kestner <mkestner@ximian.com>
-
- * gtk/Gtk.metadata : mark some Dialog API params as ResponseType
- instead of int.
- [fixes #58240]
-
-2004-05-10 Mike Kestner <mkestner@ximian.com>
-
- * glib/Value.cs : fix GBoxed GLib.Value setting.
- [fixes #58229]
-
-2004-05-10 Mike Kestner <mkestner@ximian.com>
-
- * gtk/Gtk.metadata : change return-type on Global.EventsPending
- to a bool to avoid compat problems in 2.4. Also rename to
- GetEventsPending so that it's generated as a property.
- [fixes #58292]
-
-2004-05-10 Mike Kestner <mkestner@ximian.com>
-
- * gtk/Gtk.metadata : hide some ctors and map some prop names.
- * gtk/Makefile.am : add new customs.
- * gtk/ItemFactory.custom : implement ctor for subclassing.
- * gtk/Plug.custom : implement ctors for subclassing.
-
-2004-05-09 Jeroen Zwartepoorte <jeroen@xs4all.nl>
-
- * gdk/Gdk.metadata: Misc fixes for getting Muine to build & run.
- * gtk/FileSelection.custom: Add this back.
- * gtk/Gtk.metadata: Misc fixes for getting Muine to build & run.
-
-2004-05-08 Jeroen Zwartepoorte <jeroen@xs4all.nl>
-
- * gconf/GConf.PropertyEditors/Makefile.am: Reinclude the OptionMenu
- property editor.
- * gdk/Gdk.metadata:
- * gdk/Pixbuf.custom: Add backwards compatible implementations of
- GetFromDrawable, RenderPixmapAndMask and a couple of others which are
- now static in gtk+ 2.4. These methods have the same API as the ones
- generate for gtk+ 2.2.
- * gdk/gdk-api.raw:
- * generator/ClassBase.cs: Generate an [Obsolete] tag for deprecated
- code.
- * generator/ClassGen.cs: Idem.
- * generator/Method.cs: Idem.
- * generator/ObjectGen.cs: Idem.
- * gnome/Gnome.metadata:
- * gnome/IconData.cs:
- * gnome/IconTheme.cs: GnomeIconTheme inherits directly from GtkIconTheme
- in libgnomeui-2.6. This breaks the parser, so it won't generate the
- proper code. This is a manual class implementation for backward
- compatibility with gtk+ 2.2 version of gtk#.
- * gnome/IconTheme.custom: Removed
- * gnome/Makefile.am:
- * gnome/gnome-api.raw:
- * gtk/Gtk.metadata:
- * gtk/IconTheme.custom: Added custom methods previously found in
- ../gnome/IconTheme.custom.
- * gtk/gtk-api.raw:
- * pango/pango-api.raw:
- * parser/gapi2xml.pl: Check for "deprecated" prefixes and add a
- deprecated attribute to the appropriate elements when found.
- * parser/gapi_pp.pl: Prefix everything that's in a #ifndef
- *_DISABLE_DEPRECATED block with "deprecated".
- * sample/GtkDemo/DemoMain.cs: s/File/System.IO.File/ since there's now
- also a Gtk.File class.
- * sample/GtkDemo/DemoSizeGroup.cs: Use the original OptioMenu code.
- * sample/GtkDemo/DemoTextView.cs: s/File/System.IO.File/.
- * sample/Makefile.am:
- * sources/gtk-sharp-sources.xml: Add a bunch of <exclude>s to the Gtk
- namespace so it won't generate API for _really_ old deprecated widgets
- like GtkCList, GtkCTree etc.
-
- This commit adds support for deprecated widgets to gtk#. This is
- necessary since some widgets have been deprecated from gtk+ 2.2->2.4,
- but are still in use (any program that uses Gtk.OptionMenu, Gtk.Combo
- and methods in Gtk.Toolbar to name a few). This is done in C# by using
- the [Obsolete] metadata tag.
-
-2004-05-07 Todd Berman <tberman@sevenl.net>
-
- * gnome/Makefile.am: add DruidPageEdge.custom
- * gnome/Gnome.metadata: hide DruidPageEdge ctors
- * gnome/DruidPageEdge.custom: subclassable ctors.
-
-2004-05-07 Todd Berman <tberman@sevenl.net>
-
- * gnome/IconList.custom: subclassable ctor.
- * gnome/Gnome.metadata: hide IconList ctor.
-
-2004-05-07 Mike Kestner <mkestner@ximian.com>
-
- * gnome/Canvas.custom : PixelsPerUnit prop.
- * gnome/Gnome.metadata : hide Canvas.SetPixelsPerUnit.
- * gnome/glue/Makefile.am : get_pixels_per_unit.
- * gnome/glue/canvas.c : get_pixels_per_unit.
- * gtk/Container.custom : OnForall virtual method impl.
- * gtk/glue/Makefile.am : add container.c
- * gtk/glue/container.c : virtual method glue for forall.
- * gtk/glue/makefile.win32 : add container.o
-
-2004-05-07 Todd Berman <tberman@sevenl.net>
-
- * gnome/Gnome.metadata: map properties for with_flags DateEdit ctor,
- and hide the DateTime, bool, bool ctor
- * gnome/Makefile.am: Add DateEdit.custom.
- * gnome/DateEdit.custom: Add subclassable ctor for DateEdit and
- add enough overloads that accept variable parameter lists to make
- Mike Kestner sick.
-
-2004-05-07 Todd Berman <tberman@sevenl.net>
-
- * gnome/Gnome.metadata: Hide App ctor.
- * gnome/Makefile.am: add App.custom.
- * gnome/App.custom: New custom for subclassing.
-
-2004-05-07 Todd Berman <tberman@sevenl.net>
-
- * gnome/Gnome.metadata: Hide Scores ctor.
- * gnome/Makefile.am: add Scores.custom.
- * gnome/Scores.custom: New custom for overridable ctor.
-
-2004-05-07 Mike Kestner <mkestner@ximian.com>
-
- * gtk/Gtk.metadata : map some RadioButton ctor props.
-
-2004-05-07 Mike Kestner <mkestner@ximian.com>
-
- * gnome/Druid.custom : fix Todd's broken code.
-
-2004-05-07 Mike Kestner <mkestner@ximian.com>
-
- * gtk/Gtk.metadata : hide TextView with_buffer ctor. map some parms
- to props.
- * gtk/Makefile.am : add new custom.
- * gtk/TextView.custom : implement with_buffer ctor for subclassing.
-
-2004-05-07 Todd Berman <tberman@sevenl.net>
-
- * gnome/Gnome.metadata: Hide Druid with_window ctor, map About property.
- add some null_ok from bug #57948.
- * gnome/Druid.custom: implement with_window ctor for subclassing, and
- a 3 paramatered version for when you dont care about the returned
- window. another 3 parametered version for when you have want null
- parent, and a 2 parametered version for the null parent and the
- discarding of the window (THANKS MIKE!)
- * gnome/Makefile.am: add new custom.
-
-2004-05-07 Mike Kestner <mkestner@ximian.com>
-
- * gtk/TreeView.custom : make the NodeStore ctor subclassable.
-
-2004-05-07 Mike Kestner <mkestner@ximian.com>
-
- * gtk/Gtk.metadata : hide SpinButton with_range ctor.
- * gtk/Makefile.am : add new custom.
- * gtk/SpinButton.custom : implement with_range ctor for subclassing.
-
-2004-05-07 Mike Kestner <mkestner@ximian.com>
-
- * gtk/Gtk.metadata : hide ListStore and TreeStore newv ctors.
- * gtk/ListStore.custom : rework the ctors for subclassing.
- * gtk/TreeStore.custom : rework the ctors for subclassing.
-
-2004-05-07 Mike Kestner <mkestner@ximian.com>
-
- * gtk/Gtk.metadata : hide HScale and VScale with_range ctors.
- * gtk/Makefile.am : add new customs.
- * gtk/HScale.custom : implement with_range ctor for subclassing.
- * gtk/VScale.custom : implement with_range ctor for subclassing.
-
-2004-05-07 Mike Kestner <mkestner@ximian.com>
-
- * gtk/Gtk.metadata : map AccelLabel ctor parm to prop and hide
- Adjustment ctor.
- * gtk/Adjustment.custom : add set accessors for Upper/Lower and
- implement ctor with subclassing.
- * gtk/CheckMenuItem.custom : return from subclass branch.
- * gtk/ImageMenuItem.custom : return from subclass branch.
- * gtk/MenuItem.custom : return from subclass branch.
- * gtk/RadioMenuItem.custom : return from subclass branch.
- * gtk/glue/adjustment.c : add setters for lower/upper.
-
-2004-05-07 Mike Kestner <mkestner@ximian.com>
-
- * gtk/Gtk.metadata : hide some *MenuItem ctors.
- * gtk/CheckMenuItem.custom : implement string ctor.
- * gtk/ImageMenuItem.custom : implement string ctor.
- * gtk/MenuItem.custom : use AccelLabel.
- * gtk/RadioMenuItem.custom : fix string ctor for subclassing.
- * gtk/Makefile.am : add new customs.
-
-2004-05-07 Mike Kestner <mkestner@ximian.com>
-
- * gtk/Gtk.metadata : hide some MenuItem ctors.
- * gtk/Makefile.am : add the new custom.
- * gtk/MenuItem.custom : implement the string ctor.
-
-2004-05-07 Mike Kestner <mkestner@ximian.com>
-
- * sample/GnomeHelloWorld.cs : guard against null args.Event in the
- icon_selected_cb, which occurs on button-presses for some reason.
- Thanks to wmealing on irc for the bug report.
-
-2004-05-07 Mike Kestner <mkestner@ximian.com>
-
- * sample/*/Makefile.am : rebuild if the assemblies change
-
-2004-05-07 Mike Kestner <mkestner@ximian.com>
-
- [Derived from a patch by Ben Maurer]
- * generator/Ctor.cs : generate code to detect subclassing and handle
- GType registration and native object creation properly.
- * generator/Parameters.cs : add PropertyName accessor for param attr.
- * generator/Property.cs : use a new GLib.Value ctor.
- * glib/ObjectManager.cs : redo hash access.
- * glib/Object.cs : CreateNativeObject method to invoke g_object_newv
- and some refactoring of RegisterGType and LookupGType.
- * glib/Value.cs : make gtype field an IntPtr.
- * glib/glue/object.c : glue for g_object_newv use.
- * glib/glue/value.c : new glue for value creation.
- * gtk/Dialog.custom : fix a ctor declaration for auto-reg.
- * gtk/Gtk.metadata : mark a couple property_name attrs as examples.
- * sample/Subclass.cs : use auto-GType-registration now.
-
-2004-05-06 Mike Kestner <mkestner@ximian.com>
-
- * gdk/Gdk.metadata : some out and array magic for Property.Get.
- [Fixes #56513]
-
-2004-05-06 Jeroen Zwartepoorte <jeroen@xs4all.nl>
-
- * generator/Method.cs: Don't use the "unsafe" modifier for methods which
- are part of an interface [fixes #58059].
-
-2004-05-06 Mike Kestner <mkestner@ximian.com>
-
- * configure.in : bump version for cvs.
-
-2004-05-06 Jeroen Zwartepoorte <jeroen@xs4all.nl>
-
- * Makefile.in:
- * configure.in:
- * gconf/GConf.PropertyEditors/Makefile.in:
- * glade/Makefile.in:
- * gnomevfs/.cvsignore:
- * gnomevfs/AssemblyInfo.cs.in:
- * gnomevfs/Makefile.am:
- * gnomevfs/Makefile.in:
- * gnomevfs/gnome-vfs-sharp.dll.config.in:
- * gnomevfs/gnome-vfs-sharp.pc.in:
- * sample/Actions.cs: Remove System.Drawing.Size usage.
- * sample/Makefile.am: Added actions.exe.
- * sample/Makefile.in:
-
- Remove obsolete Makefile.in files from the repository. Auto*ify the
- gnomevfs assembly.
-
-2004-05-06 Jeroen Zwartepoorte <jeroen@xs4all.nl>
-
- Merge changes from HEAD to the jeroen-gtk-2-4 branch. The correct
- gnome 2.6.0 & gtk+-2.4.1 sources are now also downloaded when you run
- "make get-source-code". Some samples are disabled for now since they
- use deprecated API and fail to build.
-
-2004-05-05 Mike Kestner <mkestner@ximian.com>
-
- * generator/BoxedGen.cs : remove g_value_init DllImport and change
- (g|s)et_boxed to use a glue method to simplify dllmapping.
- * glib/Value.cs : add Init method.
- * glib/glue/value.cs : add get/set_boxed glue methods.
- * */*.config.in : remove libgobject mappings for dlls that no longer
- need them.
-
-2004-05-05 Larry Ewing <lewing@ximian.com>
-
- * gtk/Adjustment.custom: add an a set method for StepIncrement.
- * gtk/glue/adjustment.c: add gtk_adjustment_set_step_increment.
-
-2004-05-05 Mike Kestner <mkestner@ximian.com>
-
- * generator/Signal.cs : rmv Handle param to SignalCallback ctor calls.
- s/GtkSharp.Signal*/GLib.Signal*.
- * generator/SignalHandler.cs : rmv Handle param to ctors as it's
- redundant. s/GtkSharp.Signal*/GLib.Signal*. Use new Connect/Disconnect
- instead of generating DllImports into libgobject directly.
- * glib/SignalArgs.cs : move the the GLib namespace.
- * glib/SignalCallback.cs : expose Connect and Disconnect methods to
- hide some pinvokes that were previously generated. Also move to the
- GLib namespace.
- gnome/*Handler.cs : update to new SignalHandler API.
- gnome/CanvasProxy.cs : ditto
- gnome/void*Signal.cs : ditto
-
-2004-05-05 Mike Kestner <mkestner@ximian.com>
-
- * sample/gconf/Makefile.am : fix some whitespace. I love you, auto*.
-
-2004-05-05 Mike Kestner <mkestner@ximian.com>
-
- * configure.in : fix gtkhtml versioning *again*.
- * sample/gconf/Makefile.am : conditional build on ENABLE_GNOME.
-
-2004-05-04 Mike Kestner <mkestner@ximian.com>
-
- * configure.in : require gtkhtml-3.0.10 so we can use a single
- so version (.4).
- * sources/* : update to gtkhtml-3.0.10. This produces zero change
- in the generated API.
-
-2004-05-03 Todd Berman <tberman@sevenl.net>
-
- * */*.pc.in: change to use @PACKAGE@ where its needed, fixes pc bug
-
-2004-05-03 Todd Berman <tberman@sevenl.net>
-
- * configure.in: bump mono dep to 0.90
-
-2004-05-03 Todd Berman <tberman@sevenl.net>
-
- * configure.in: bump to 0.91, dont kill me mike.
-
-2004-05-03 Todd Berman <tberman@sevenl.net>
-
- * gtk-sharp.pc.in: add PACKAGE stuff here
-
-2004-05-03 Mike Kestner <mkestner@ximian.com>
-
- * */Makefile.am : fix gacutil for new package switch
- * */*.pc.in : fix -libs var for new dll path
-
-2004-05-03 Mike Kestner <mkestner@ximian.com>
-
- * configure.in : add some checks for gtkhtml-3.1 and use it if avail.
- * gtkhtml/gtkhtml-sharp.dll.config.in : deal with 3.1 versioning.
-
-2004-05-03 Miguel de Icaza <miguel@ximian.com>
-
- * gtkhtml/Gtk.metadata: Patch from Mike Kestner: make
- GtkHTMLStream opaque, to fix a bug that was found by running
- Monodoc on MacOS X. We were passing a pointer to a managed
- object, instead of a pointer to a HTMLStream-allocated object.
-
- * HTMLStream.custom: Update custom file to reflect change to
- Opaque: use Handle instead of this.
-
-2004-04-30 Mike Kestner <mkestner@ximian.com>
-
- * gdk/glue/makefile.win32 : remove windowmanager.o for now. It
- was breaking the build on win32.
-
-2004-04-30 Mike Kestner <mkestner@ximian.com>
-
- * configure.in : lookup gacutil and error out if not found.
- * */Makefile.am : add install-data-local and uninstall-local targets
- for GAC installation. Add gtk-sharp.pub target to cp the key in for
- distcheck.
- * */AssemblyInfo.cs.in : remove ../ from key path for VPATH build.
-
-2004-04-30 Mike Kestner <mkestner@ximian.com>
-
- * configure.in : remove BASE_DEPENDENCIES LIBS and CFLAGS and
- expose more specific versions for glue building.
- * */glue/Makefile.am : use more specific versions of LIBS and CFLAGS
- to reduce the ldd footprint.
-
-2004-04-30 Mike Kestner <mkestner@ximian.com>
-
- * configure.in : AC_SUBST an API_VERSION=1.0.0.0 for the
- AssemblyVersionAttributes.
- * */AssemblyInfo.cs.in : s/@VERSION@/@API_VERSION@/
-
-2004-04-30 Mike Kestner <mkestner@ximian.com>
-
- * */AssemblyInfo.cs.in : s/@VERSION@.0.0/@VERSION@/
-
-2004-04-30 Mike Kestner <mkestner@ximian.com>
-
- * sample/gconf/* : break System.Drawing dependency.
-
-2004-04-30 Owen Fraser-Green <owen@discobabe.net>
-
- * gconf/tools/gconfsharp-schemagen.in : fixed variables
- * sources/Makefile.am : remove reference to old gst target
-
-2004-04-30 Erik Dasque <edasque@ximian.com>
-
- * gtk/Calendar.custom : new Date property with setter
-
-2004-04-29 Mike Kestner <mkestner@ximian.com>
-
- * mapdllnames.pl : remove unneccessary script
-
-2004-04-29 Mike Kestner <mkestner@ximian.com>
-
- * gst/* : kill. it's been spun out the the gst-sharp module.
- * sources/Makefile.am : remove gst source download target.
- * sources/gtk-sharp-sources.xml : remove gst nodes.
-
-2004-04-29 Mike Kestner <mkestner@ximian.com>
-
- * configure.in : expand the AssemblyInfo.cs files.
- * */AssemblyInfo.cs.in : new assembly info files.
- * */Makefile.am : dist, make, and clean assmbly info files.
-
-2004-04-29 Owen Fraser-Green <owen@discobabe.net>
-
- * generator/ClassBase.cs: added base case to Parent to avoid
- infinite recursion.
- * glib/Marshaller.cs: changed SizeOf(typeof's to int and long
- instead of string.
-
-2004-04-29 Duncan Mak <duncan@ximian.com>
-
- * vte/vte-sharp.dll.config.in: Removed extra </configuration>
- element.
-
-2004-04-29 Owen Fraser-Green <owen@discobabe.net>
-
- * gnome/CanvasGroup.custom : added public constructor.
-
-2004-04-29 Mike Kestner <mkestner@ximian.com>
-
- * configure.in : expand the new config files.
- * */*config.in : the per-assembly config files.
- * */Makefile.am : dist, clean, and install the configs.
- * gnome/*.c* : fix some errant DllImports.
-
-2004-04-28 Mike Kestner <mkestner@ximian.com>
-
- [Expanded from patch by John Luke attached to bug.]
- * gdk/Gdk.metadata : rename Atom.Name to GetName so it props.
- * gdk/Atom.custom : new string cast operator.
- * sample/TestDnd.cs : fix Atom.Name reference
- * sample/GtkDemo/DemoEditableCell.cs : fix a ListStore.Remove
- ref broken by last commit.
- [Fixes #57721]
-
-2004-04-28 Mike Kestner <mkestner@ximian.com>
-
- * gtk/Gtk.metadata : mark ListStore.Remove iter pass_as=ref.
- [Fixes #56945]
-
-2004-04-28 Mike Kestner <mkestner@ximian.com>
-
- * Makefile.am : dist the public signing key baulig just added.
-
-2004-04-27 Mike Kestner <mkestner@ximian.com>
-
- * gnome/glue/canvaspoints.c : remove some g_prints spotted by
- Jorge Garcia.
-
-2004-04-16 Rachel Hestilow <rachel@nullenvoid.com>
-
- * generator/GObjectGen.cs: Added new generatable to handle
- plain GObjects the same way we do subclasses.
- * generator/ManualGen.cs: Make FromNative/FromNativeReturn virtual
- to allow overriding.
- * generator/SymbolTable.cs: Use GObjectGen instead of
- ManualGen for GObject.
- * generator/Makefile.am: Add GObjectGen.cs.
-
-2004-04-16 Boyd Timothy <btimothy@novell.com>
-
- * gdk/Global.custom : properties to expose window manager spec
- properties.
- * gdk/glue/windowmanager.c : glue to retrieve window manager props
- using gdk_property_get.
- * gdk/glue/Makefile.am : add new file.
- * gdk/glue/makefile.win32 : add new file.
-
-2004-04-13 Mike Kestner <mkestner@ximian.com>
-
- * glib/Value.cs : fix a csc-breaker.
-
-2004-04-12 Mike Kestner <mkestner@ximian.com>
-
- * gnome/Program.custom : add ArgumentException for app_id containing
- spaces. [fixes #56594]
-
-2004-04-12 Mike Kestner <mkestner@ximian.com>
-
- [Rework of a patch from Ben Maurer to turn GLib.Value
- into a valuetype.]
- * generator/BoxedGen.cs : fix operators for new valuetype GValues.
- * generator/ByRefGen.cs : new generatable for byref value types.
- * generator/Makefile.am : add ByRefGen.cs.
- * generator/MethodBody.cs : remove GValue special casing.
- * generator/Property.cs : rework value handling.
- * generator/Signal.cs : fix base virtual method value passing.
- * generator/SymbolTable.cs : map GValue to ByRefGen.
- * glib/Object.cs : rework GetProperty and SetProperty.
- * glib/Value.cs : make it a value type.
- * glib/ValueArray.cs : fix GValue passing.
- * glib/glue/value.c : rework for valuetype GValues.
- * gnome/Program.custom : fix GValue passing
- * gtk/Gtk.metadata : make TreeModel.GetValue value param pass_as=ref.
- * gtk/ListStore.custom : fix GValue passing
- * gtk/NodeStore.cs : fix GValue passing
- * gtk/TextTag.custom : fix GValue passing
- * gtk/TreeModelSort.custom : fix GValue passing
- * gtk/TreeStore.custom : fix GValue passing
-
-2004-04-05 Larry Ewing <lewing@ximian.com>
-
- * gnome/Gnome.metadata: Make data an array type so that the image
- functions can be used.
- * gnome/Print.custom: add a custom handler to print Pixbufs.
- * gnome/Makefile.am: add Print.custom.
-
-2004-04-07 Mike Kestner <mkestner@ximian.com>
-
- * generator/ClassBase.cs : remove default ctor generation and
- hasDefaultConstructor field.
- * generator/Ctor.cs : chain to base (IntPtr.Zero).
- * generator/StructBase.cs : remove hasDefaultConstructor usage.
- * glib/Object.cs : remove Object () ctor. Add Ben's GetGType
- method, although nothing uses it yet. Still working on integrating
- the remainder of Ben's patch.
- * gtk/Gtk.metadata : remove all the disabledefaultctor rules.
- * */*.custom : add base (IntPtr.Zero) or this (...) chaining for
- all ctors.
-
-2004-04-07 John Luke <jluke@cfl.rr.com>
-
- * gtk/Gtk.metadata: mark Gtk.Widget.ModifyFont font_desc null_ok
-
-2004-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
-
- * glib/Value.cs: added StructLayout attribute as requested by the
- runtime. Now --aot works again.
-
-2004-04-04 Mike Kestner <mkestner@ximian.com>
-
- * generator/SymbolTable.cs : don't use StringGen for gunichar.
- * glib/glue/unichar.c : glue to fetch a gunichar as a utf8 string.
- * glib/glue/Makefile.am : add unichar.c
- * glib/glue/makefile.win32 : add unichar.c
- * gtk/Gtk.metadata : hide TextIter.GetChar
- * gtk/TextIter.custom : manually impl Char prop. [fixes #53425]
-
-2004-04-04 Mike Kestner <mkestner@ximian.com>
-
- * pango/Layout.custom : increment an indexer. thanks to Moritz Balz
- for the bug report and candidate patch.
-
-2004-04-04 Mike Kestner <mkestner@ximian.com>
-
- * generator/BoxedGen.cs : DllImport glibsharpglue for value_create.
-
-2004-04-04 Mike Kestner <mkestner@ximian.com>
-
- * gnome/glue/canvasitem.c : add glue to override VMs.
- * gnome/CanvasItem.cs : expose virtual methods for update, point,
- realize, draw, and render.
-
-2004-04-04 John Luke <jluke@cfl.rr.com>
-
- * vte/Vte.metadata: mark argv and envv parameters to
- Vte.Terminal.ForkCommand as arrays, it finally works
- * sample/Vte-test.cs: adjust for above
-
-2004-04-02 Todd Berman <tberman@sevenl.net>
-
- * gtk/Gtk.metadata: fix Gtk.SelectionData.Set.
-
-2004-04-02 Todd Berman <tberman@sevenl.net>
-
- * configure.in: added new .pc files
- * gtk-sharp.pc.in: modified to include Libs: line
- * art/.cvsignore: added art-sharp.pc
- * art/Makefile.am: added rules for installing .pc
- * art/art-sharp.pc.in: new .pc file
- * gconf/GConf/.cvsignore: added gconf-sharp.pc
- * gconf/GConf/Makefile.am: added rules for installing .pc
- * gconf/GConf/gconf-sharp.pc.in: new .pc file
- * gda/.cvsignore: added gda-sharp.pc
- * gda/Makefile.am: added rules for installing .pc
- * gda/gda-sharp.pc.in: new .pc file
- * glade/.cvsignore: added glade-sharp.pc
- * glade/Makefile.am: added rules for installing .pc
- * glade/glade-sharp.pc.in: new .pc file
- * gnome/.cvsignore: added gnome-sharp.pc
- * gnome/Makefile.am: added rules for installing .pc
- * gnome/gnome-sharp.pc.in: new .pc file
- * gnomedb/.cvsignore: added gnomedb-sharp.pc
- * gnomedb/Makefile.am: added rules for installing .pc
- * gnomedb/gnomedb-sharp.pc.in: new .pc file
- * gtkhtml/.cvsignore: added gtkhtml-sharp.pc
- * gtkhtml/Makefile.am: added rules for installing .pc
- * gtkhtml/gtkhtml-sharp.pc.in: new .pc file
- * rsvg/.cvsignore: added rsvg-sharp.pc
- * rsvg/Makefile.am: added rules for installing .pc
- * rsvg/rsvg-sharp.pc.in: new .pc file
- * vte/.cvsignore: added vte-sharp.pc
- * vte/Makefile.am: added rules for installing .pc
- * vte/vte-sharp.pc.in: new .pc file
-
-2004-04-01 Mike Kestner <mkestner@ximian.com>
-
- * art/Art.metadata : mark dst pass_as=out on Affine.Point
-
-2004-04-01 Jorn Baayen <jorn@nl.linux.org>
-
- * gtk/Style.custom : wrappers for Text[] and Base[]
- * gtk/glue/style.c : glue to access text[] and base[]
- [fixes #54805]
-
-2004-04-01 Jeroen Zwartepoorte <jeroen@xs4all.nl>
-
- * gnome/IconTheme.custom : GetSearchPath impl [fixes #51599].
-
-2004-04-01 Joshua Tauberer <tauberer@for.net>
-
- * gdk/Gdk.metadata : hide Region.GetRectangles
- * gdk/Region.custom : implement Rectangles prop [fixes #55811]
-
-2004-04-01 Mike Kestner <mkestner@ximian.com>
-
- * glib/Value.cs : NULL check for g_value_get_string Thanks to Jeroen
- Zwartepoorte for the bug report with patch [fixes #54979].
-
-2004-03-31 Miguel de Icaza <miguel@ximian.com>
-
- * configure.in: If monodoc is not found, then turn off
- enable_monodoc, so the value is properly propagated.
-
-2004-03-31 Mike Kestner <mkestner@ximian.com>
-
- * configure.in : tagged for 0.18 and bumped release to 0.18.99
- for cvs.
-
-2004-03-31 Mike Kestner <mkestner@ximian.com>
-
- * configure.in : remove atk/glue/Makefile
- * atk/Makefile.am : comment out subdirs for now
- * atk/makefile.win32 : don't build glue
- * */glue/Makefile.am : remove generated.c from sources
- * */glue/makefile.win32 : remove generated.c from sources
- * generator/ObjectGen.cs : disable vm glue generation for now.
-
-2004-03-30 John Luke <jluke@cfl.rr.com>
-
- [Reworked a bit by MK]
- * Makefile.am : add doc dir
- * configure.in : test for monodoc, expand doc/Makefile
- * doc/Makefile.am : build and dist docs
- * doc/makefile : kill
-
-2004-03-30 Mike Kestner <mkestner@ximian.com>
-
- * gtk/Makefile.am : add the customs that miggie didn't add.
-
-2004-03-30 Mike Kestner <mkestner@ximian.com>
-
- * rsvg/Makefile.am : apply metadata to api
- * rsvg/Rsvg.metadata : mark an array param
-
-2004-03-29 Todd Berman <tberman@sevenl.net>
-
- * sample/Makefile.am: small resource build fix for glade-test.exe
-
-2004-03-27 Jeroen Zwartepoorte <jeroen@xs4all.nl>
-
- * gnomevfs/Mime.cs:
- * gnomevfs/MimeActionType.cs:
- * gnomevfs/Vfs.cs:
-
- Implemented more gnome-vfs methods.
-
-2004-03-25 Mike Kestner <mkestner@ximian.com>
-
- * gtk/Gtk.metadata : Widget.Events is a Gdk.EventMask, not int
- * sample/GtkDemo/DemoDrawingArea.cs : remove int casts
- * sample/Scribble.cs : remove int casts
-
-2003-03-24 John Luke <jluke@cfl.rr.com>
-
- * samples/gconf/Makefile.am:
- changes SOURCES to FILES to make automake 1.8 happy
-
-2003-03-24 Jorn Baayen <jorn@nl.linux.org>
-
- * gtk/Gtk.metadata : mark null_ok param on Window.SetTransientFor.
-
-2003-03-24 Jorn Baayen <jorn@nl.linux.org>
-
- * gdk/Gdk.metadata : mark out param on Screen.GetMonitorGeometry.
-
-2004-03-22 Mike Kestner <mkestner@ximian.com>
-
- * gtk/Window.custom : bring back the DefaultSize prop as a
- Gdk.Size.
-
-2004-03-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
-
- * configure.in: if no C# compiler found, error out.
-
-2004-03-18 Mike Kestner <mkestner@ximian.com>
-
- * gdk/Makefile.am : generate glue
- * gdk/glue/Makefile.am : build generated glue
- * gdk/glue/makefile.win32 : build generated glue
- * gdk/glue/vmglueheaders.h : includes for vm glue
- * gtk/Makefile.am : generate glue
- * gtk/glue/Makefile.am : build generated glue
- * gtk/glue/makefile.win32 : build generated glue
- * gtk/glue/vmglueheaders.h : includes for vm glue
-
-2004-03-18 Mike Kestner <mkestner@ximian.com>
-
- * configure.in : expand atk/glue/Makefile
- * atk/Makefile.am : generate glue and build glue dir
- * atk/makefile.win32 : ditto
- * atk/glue/Makefile.am : build new glue
- * atk/glue/makefile.win32 : build new glue
- * atk/glue/vmglueheaders.h : new includes for vm glue
- * atk/glue/win32dll.c : win dll building code
- * generator/CodeGenerator.cs : add --gluelib-name and
- --glue-filename argument parsing.
- * generator/GenerationInfo.cs : add GluelibName, GlueFilename,
- GlueEnabled, GlueWriter, and CloseGlueWriter.
- * generator/ObjectGen.cs : Add VirtualMethod glue generation
- * generator/Statistics.cs : Add warning message for virtual
- method throttling.
-
-2004-03-18 Mike Kestner <mkestner@ximian.com>
-
- * parser/gapi2xml.pl : fix passbyvalue bug in vm parsing.
- * */*.raw : regen
-
-2004-03-17 Mike Kestner <mkestner@ximian.com>
-
- * sample/rsvg/Makefile.am : make conditional on ENABLE_RSVG
-
-2004-03-16 Mike Kestner <mkestner@ximian.com>
-
- * generator/Signal.cs : streamline the remove code a tad.
-
-2004-03-16 Mike Kestner <mkestner@ximian.com>
-
- * gdk/Makefile.am : add new file.
- * gdk/Size.cs : implementation of a Size value type.
-
-2004-03-16 Mike Kestner <mkestner@ximian.com>
-
- * generator/Signal.cs : remove a C.WL.
-
-2004-03-16 Mike Kestner <mkestner@ximian.com>
-
- * generator/ObjectGen.cs : don't gen a Signals hash per class.
- * generator/Signal.cs : gen checks for [ConnectBefore].
- * generator/SignalHandler.cs : add connect_flags param to ctor.
- * glib/ConnectBeforeAttribute.cs : new attr
- * glib/Makefile.am : add new file
- * glib/Object.cs : add before/after hashes and EventLists
- * gnome/CanvasProxy.cs : use AfterSignals and AfterHandlers.
-
-2004-03-14 John Luke <jluke@cfl.rr.com>
-
- * parser/gapi-fixup.in:
- * generator/gapi-codegen.in: s/@MONO@/@RUNTIME@
-
-2004-03-14 Jeroen Zwartepoorte <jeroen@xs4all.nl>
-
- * Makefile.in:
- * configure.in:
- * gnomevfs/AsyncCallback.cs:
- * gnomevfs/AsyncCallbackNative.cs:
- * gnomevfs/AsyncReadCallback.cs:
- * gnomevfs/AsyncReadCallbackNative.cs:
- * gnomevfs/AsyncWriteCallback.cs:
- * gnomevfs/AsyncWriteCallbackNative.cs:
- * gnomevfs/Handle.cs:
- * gnomevfs/Makefile.in:
- * gnomevfs/OpenMode.cs:
- * gnomevfs/Result.cs:
- * gnomevfs/SeekPosition.cs:
- * gnomevfs/Vfs.cs:
- * sample/Makefile.in:
- * sample/TestVfs.cs:
-
- Added partial gnome-vfs bindings. Necessary now that can Gtk.FileChooser
- return gnome-vfs uris.
-
-2004-03-12 Mike Kestner <mkestner@ximian.com>
-
- * */Makefile.am : automakify the build
- * */Makefile.in : kill
- * *.custom : remove System.Drawing dependencies
- * *.cs : remove System.Drawing dependencies
- * *-api.xml : mv to *-api.raw
- * glue/* : mv to lib specific gluelibs for glib, gdk, gtk, and glade.
- * gtk/gtk-symbols : alias GtkType to GType
- * sources/gtk-sharp-sources.xml : create .raw files. They are now
- transformed to .xml files by the metadata compilation step.
-
-2004-03-08 Mike Kestner <mkestner@ximian.com>
-
- * generator/ObjectGen.cs : ignore virtual_method elems for now.
- * parser/gapi2xml.pl : parse the non-signal class methods and add as
- virtual_method elements in the API xml
- * */*-api.xml : regen
-
-2004-03-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
-
- * glue/Makefile.am:
- * glue/makefile.win32:
- * glue/thread-notify.c: dropped.
- * gtk/ThreadNotify.cs: use just Idle.Add, which is what the deprecated
- gda_input_add does. No more P/Invoke here.
-
-2004-03-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
-
- * glue/Makefile.am:
- * glue/makefile.win32: added thread-notify.o
- * glue/thread-notify.c: handles pipe creation/read/write/close for
- ThreadNotify.
- * gtk/ThreadNotify.cs: P/Invoke the thread-notify code instead of libc
- functions.
-
-2004-02-29 Jeroen Zwartepoorte <jeroen@xs4all.nl>
-
- * gtk/FileChooserDialog.custom: Implement the
- gtk_file_chooser_dialog_new constructor by hand.
-
-2004-02-28 Jeroen Zwartepoorte <jeroen@xs4all.nl>
-
- * gtk/Gtk.metadata: Rename some AddAction* methods to just Add*.
-
-2004-02-28 Jeroen Zwartepoorte <jeroen@xs4all.nl>
-
- * glib/Value.cs: Work around a GLib.Value having a null string (#54979).
- * sample/Actions.cs: Updated.
- * sample/Makefile.in: Added the action sample.
-
-2004-02-28 Jeroen Zwartepoorte <jeroen@xs4all.nl>
-
- * gdk/gdk-api.xml: Updated to latest CVS.
- * gnome/gnome-api.xml: Idem.
- * gtk/gtk-api.xml: Idem.
- * pango/pango-api.xml: Idem.
- * sample/Makefile.in: Don't build the gconf sample for now.
-
-2004-02-28 Jeroen Zwartepoorte <jeroen@xs4all.nl>
-
- * gnome/PrintContext.custom: Added gnome_print_context_* methods.
- * gtk/gtk-api.xml: Hide GtkActionEntry C-specific struct and methods.
- * sample/Actions.cs: Updated.
- * sample/Makefile.in: Reinclude print sample.
- * sample/PrintSample.cs: Updated.
- * sample/TestDnd.cs: Updated.
-
-2004-02-26 Mike Kestner <mkestner@ximian.com>
-
- * configure.in : tagged 0.17 and bumped cvs version.
-
-2004-02-26 Mike Kestner <mkestner@ximian.com>
-
- * atk/Atk.metadata : hide some funky api
- * atk/atk-api.xml : regen
-
-2004-02-26 Mike Kestner <mkestner@ximian.com>
-
- * gnome/GtkSharp.* : move to Gnome namespace
- * gnome/CanvasProxy.cs : update event handler namespaces
- * gnome/voidObject*.cs : internalize
-
-2004-02-24 Mike Kestner <mkestner@ximian.com>
-
- * pango/AttrIterator.custom : manually implement SList method.
- * pango/GlyphItem.custom : manually implement SList method.
- * pango/Layout.custom : manually implement SList method.
- * pango/Pango.metadata : hide some SList methods.
- * pango/pango-api.xml : regen.
-
-2004-02-23 Mike Kestner <mkestner@ximian.com>
-
- * pango/Pango.metadata : mark some out params on Layout.
- * pango/pango-api.xml : regen
- [fixes #54720]
-
-2004-02-23 Thiago Milczarek SayĂŁo <sayao@brturbo.com>
-
- * gtk/TextBuffer.custom : add TextIter parm to InsertWithTags method.
-
-2004-02-21 Mike Kestner <mkestner@ximian.com>
-
- * pango/Pango.metadata : mark some out params on Layout.
- * pango/pango-api.xml : regen
- [fixes #54696]
-
-2004-02-21 Mike Kestner <mkestner@ximian.com>
-
- * pango/Pango.metadata : mark some out params on ParseMarkup.
- * pango/pango-api.xml : regen
- [fixes #54695]
-
-2004-02-20 Mike Kestner <mkestner@ximian.com>
-
- * gdk/Gdk.metadata : hide NoExpose, Client, Setting, WindowState,
- and Proximity events.
- * gdk/EventClient.cs : glue-based manual implementation.
- * gdk/EventClient.custom : kill
- * gdk/EventNoExpose.custom : kill
- * gdk/EventProximity.cs : glue-based manual implementation.
- * gdk/EventProximity.custom : kill
- * gdk/EventSetting.cs : glue-based manual implementation.
- * gdk/EventSetting.custom : kill
- * gdk/EventWindowState.cs : glue-based manual implementation.
- * gdk/EventWindowState.custom : kill
- * gdk/gdk-api.xml : regen
- * gdk/gdk-symbols.xml : manual mappings.
- * glue/event.cs : expose event struct fields.
- * gtk/Application.cs : simplify CurrentEvent prop.
-
-2004-02-20 Mike Kestner <mkestner@ximian.com>
-
- * gdk/Gdk.metadata : hide Property, Selection, and DND events
- * gdk/EventDND.cs : glue-based manual implementation.
- * gdk/EventDND.custom : kill
- * gdk/EventProperty.cs : glue-based manual implementation.
- * gdk/EventProperty.custom : kill
- * gdk/EventSelection.cs : glue-based manual implementation.
- * gdk/EventSelection.custom : kill
- * gdk/gdk-api.xml : regen
- * gdk/gdk-symbols.xml : manual mappings.
- * glue/event.cs : expose DND, Property and Selection struct fields.
-
-2004-02-19 Thiago Milczarek SayĂŁo <sayao@brturbo.com>
-
- * gtk/TextBuffer.custom : new InsertWithTags method.
-
-2004-02-18 Mike Kestner <mkestner@ximian.com>
-
- * gdk/Gdk.metadata : hide EventFocus and EventConfigure.
- * gdk/EventConfigure.cs : glue-based manual implementation.
- * gdk/EventConfigure.custom : kill
- * gdk/EventFocus.cs : glue-based manual implementation.
- * gdk/EventFocus.custom : kill
- * gdk/gdk-api.xml : regen
- * gdk/gdk-symbols.xml : manual mappings.
- * glue/event.cs : expose Focus and Configure struct fields.
- * sample/Scribble.cs : fix EventConfigure api breakage
-
-2004-02-18 Mike Kestner <mkestner@ximian.com>
-
- * gdk/Gdk.metadata : hide EventCrossing.
- * gdk/EventCrossing.cs : glue-based manual implementation.
- * gdk/EventCrossing.custom : kill
- * gdk/gdk-api.xml : regen
- * gdk/gdk-symbols.xml : manual mapping for EventCrossing.
- * glue/event.cs : expose Crossing struct fields.
-
-2004-02-18 Mike Kestner <mkestner@ximian.com>
-
- * gdk/Gdk.metadata : hide EventVisibility.
- * gdk/EventVisibility.cs : glue-based manual implementation.
- * gdk/EventVisibility.custom : kill
- * gdk/gdk-api.xml : regen
- * gdk/gdk-symbols.xml : manual mapping for EventVisibility.
- * glue/event.cs : expose Visibility struct fields.
-
-2004-02-18 Mike Kestner <mkestner@ximian.com>
-
- * gdk/Gdk.metadata : hide EventExpose. make Region opaque.
- * gdk/EventExpose.cs : glue-based manual implementation.
- * gdk/EventExpose.custom : kill
- * gdk/gdk-api.xml : regen
- * gdk/gdk-symbols.xml : manual mapping for EventExpose.
- * glue/event.cs : expose Expose struct fields.
- * sample/Scribble.cs : fix some EventExpose api breakage
-
-2004-02-18 Mike Kestner <mkestner@ximian.com>
-
- * gdk/Gdk.metadata : hide EventMotion
- * gdk/EventMotion.cs : glue-based manual implementation.
- * gdk/EventMotion.custom : kill
- * gdk/gdk-api.xml : regen
- * gdk/gdk-symbols.xml : manual mapping for EventMotion.
- * glue/event.cs : expose Motion struct fields.
- * sample/Scribble.cs : fix some EventMotion api breakage
-
-2004-02-18 Mike Kestner <mkestner@ximian.com>
-
- * gdk/Gdk.metadata : hide EventScroll
- * gdk/EventScroll.cs : glue-based manual implementation.
- * gdk/EventScroll.custom : kill
- * gdk/gdk-api.xml : regen
- * gdk/gdk-symbols.xml : manual mapping for EventScroll.
- * glue/event.cs : expose Scroll struct fields.
-
-2004-02-18 Mike Kestner <mkestner@ximian.com>
-
- * gdk/Gdk.metadata : hide EventButton
- * gdk/EventButton.cs : glue-based manual implementation.
- * gdk/EventButton.custom : kill
- * gdk/gdk-api.xml : regen
- * gdk/gdk-symbols.xml : manual mapping for EventButton.
- * glue/event.cs : expose Button struct fields.
- * sample/CanvasExample.cs : fix EventButton ctor
- * sample/GnomeHelloWorld.cs : fix EventButton ctor
-
-2004-02-17 Radek Doulik <rodo@ximian.com>
-
- * glib/Value.cs: use g_value_set_pointer for
- GType.Pointer/IWrapper objects
-
- * glib/TypeConverter.cs: return GType.Pointer for Opaque objects
- which do not have GType property
-
-2004-02-17 John Luke <jluke@cfl.rr.com>
-
- * gdk/Gdk.metadata: set Gdk.Window.Cursor null_ok
- * gdk/gdk-api.xml: regen
-
-2004-02-17 Jorn Baayen <jorn@nl.linux.org>
-
- * gtk/SelectionData.custom : fix get_data_pointer glue method name.
-
-2004-02-16 Mike Kestner <mkestner@ximian.com>
-
- * glib/TypeConverter.cs : check for GType prop on all types,
- not just value types, before we fall back to managed values.
- * glib/Value.cs : use handle to set_boxed for IWrappers.
-
-2004-02-16 Mike Kestner <mkestner@ximian.com>
-
- * gdk/EventKey.cs : add a Key prop to return casted KeyVals.
-
-2004-02-16 Mike Kestner <mkestner@ximian.com>
-
- * gdk/Gdk.metadata : hide EventKey
- * gdk/EventKey.cs : glue-based manual implementation.
- * gdk/gdk-api.xml : regen
- * gdk/gdk-symbols.xml : manual mapping for EventKey.
- * glue/event.cs : expose key struct fields.
-
-2004-02-16 Mike Kestner <mkestner@ximian.com>
-
- * gdk/Gdk.metadata : hide EventAny
- * gdk/Event.cs : make this a full EventAny implementation.
- * gdk/gdk-api.xml : regen
- * gdk/gdk-symbols.xml : map EventAny to Gdk.Event.
- * glue/event.cs : expose window and send_event fields.
-
-2004-02-14 Todd Berman <tberman@sevenl.net>
-
- * gtk/Gtk.metadata : hide Widget.SetState
- * gtk/Widget.custom : add State get; set; property
- * glue/widget.c : add glue for get_State ();
- * gtk/gtk-api.xml : regen
-
-2004-02-12 Mike Kestner <mkestner@ximian.com>
-
- * sample/GladeViewer.cs : fix a broken api usage.
-
-2004-02-12 Mike Kestner <mkestner@ximian.com>
-
- * gnome/Gnome.metadata : hide the GList API
- * gnome/*.custom : manually wrap GList api using typed arrays
- * gnome/gnome-api.xml : regen.
-
-2004-02-12 Mike Kestner <mkestner@ximian.com>
-
- * glade/Glade.metadata : hide a GList method.
- * glade/Makefile.in : run gapi-fixup
- * glade/XML.custom : return Widget[] from GetWidgetPrefix.
- * glade/glade-api.xml : regen
- * pango/Pango.metadata : hide a dubious GList method.
- * pango/pango-api.xml : regen
-
-2004-02-12 Ben Maurer <bmaurer@users.sourceforge.net>
-
- * gtk/TreeIter.custom: Make the hash here not collide.
-
-2004-02-12 Mike Kestner <mkestner@ximian.com>
-
- * gdk/Gdk.metadata : hide the GList API
- * gdk/*.custom : manually wrap GList api using typed arrays
- * gdk/gdk-api.xml : regen.
-
-2004-02-12 Mike Kestner <mkestner@ximian.com>
-
- * gtk/Accel.custom : s/List/SList
- * gtk/Stock.custom : ditto
- * gtk/TextIter.custom : ditto
-
-2004-02-12 Zoltan Varga <vargaz@freemail.hu>
-
- * glib/time_t_CustomMarshaler.cs: Update after custom marshaling
- changes.
-
-2004-02-12 Jeroen Zwartepoorte <jeroen@xs4all.nl>
-
- * gtk/Gtk.metadata: Hide the various *ActionEntry classes since
- they're only meant to be used in C code.
-
-2004-02-11 Jeroen Zwartepoorte <jeroen@xs4all.nl>
-
- * atk/atk-api.xml:
- * gconf/GConf.PropertyEditors/Makefile.in:
- * gdk/Gdk.metadata:
- * gdk/gdk-api.xml:
- * generator/CallbackGen.cs: Set a GError pointer to IntPtr.Zero.
- * gnome/Gnome.metadata:
- * gnome/gnome-api.xml:
- * gtk/Adjustment.custom:
- * gtk/FileSelection.custom: Deprecated, removed.
- * gtk/FileSystemModel.custom:
- * gtk/Gtk.metadata:
- * gtk/IconTheme.custom: Custom SearchPath property (fixes #51599).
- * gtk/Paned.custom: Deprecated, removed.
- * gtk/TreeModelFilter.custom: New class in 2.4.
- * gtk/gtk-api.xml:
- * pango/pango-api.xml:
- * sample/Actions.cs: Added new Action API sample.
- * sample/Makefile.in: Don't build some samples for now.
-
- Updated everything to use gtk 2.3/2.4. Some samples commented out
- because they use deprecated/changed API. More work to follow.
-
-2004-02-11 Mike Kestner <mkestner@ximian.com>
-
- * gtk/Gtk.metadata : hide the GSList API
- * gtk/*.custom : manually wrap GSList api using typed arrays
- * gtk/gtk-api.xml : regen.
-
-2004-02-11 Mike Kestner <mkestner@ximian.com>
-
- * gtk/*.custom : don't use element_type ctor for GObject lists.
-
-2004-02-11 Mike Kestner <mkestner@ximian.com>
-
- * gtk/*.custom : return 0 length arrays, not null.
-
-2004-02-10 Mike Kestner <mkestner@ximian.com>
-
- * gconf/GConf.PropertyEditors/PropertyEditorColorPicker.cs :
- nuke a GnomeSharp.
- * generator/Signal.cs : move eventhandlers and args into the
- base namespace instead of a *Sharp namespace.
- * sample/*.cs : nuke using *Sharp.
-
-2004-02-10 Mike Kestner <mkestner@ximian.com>
-
- * art/Art.metadata : mark a field private
- * art/art-api.xml : regen
- * gda/Gda.metadata : mark a few structs opaque
- * gda/gda-api.xml : regen
- * gdk/*.custom : fix changed field names
- * gdk/gdk-api.xml : regen
- * generator/Field.cs : StudlyCase simple typed field names.
- * gnome/Gnome.metadata : mark FontEntry.weight private to
- avoid collision with Weight field. s|//|/api/namespace|g
- * gnome/gnome-api.xml : regen
- * gtk/Gtk.metadata : rename AccelKey.accel_key to key to
- avoid collision with type name.
- * gtk/*.custom : fix changed field names
- * gtk/gtk-api.xml : regen
- * pango/pango-api.xml : regen
- * parser/gapi_pp.pl : add a private_regex to hide BACKEND
- and ENGINE apis, which are by convention private.
- * sample/* : make compile
- * sample/GtkDemo/* : make compile
- * sample/test/* : make compile
- * sources/gtk-sharp-sources.xml : exclude a bunch of pango
- source files.
-
-2004-02-07 Mike Kestner <mkestner@ximian.com>
-
- * configure.in : tagged 0.16 and bumped cvs version.
-
-2004-02-07 Mike Kestner <mkestner@ximian.com>
-
- * generator/ObjectGen.cs : oops, remove a couple C.WLs.
-
-2004-02-07 Gustavo Giraldez <gustavo.giraldez@gmx.net>
-
- * atk/Makefile.in : fix copy/paste error in --assembly-name.
- * generator/ObjectGen.cs : rework ObjectManager generation code.
- * glade/Makefile.in : fix copy/paste error in --assembly-name.
-
-2004-02-06 Mike Kestner <mkestner@ximian.com>
-
- * generator/Method.cs : for Opaque/Object retvals, if raw_ret is
- NULL, return null instead of an object with a NULL handle.
-
-2004-02-06 Mike Kestner <mkestner@ximian.com>
-
- * glib/time_t_CustomMarshaler.cs : use TimeSpan.TotalSeconds, not
- TimeSpan.Seconds.
-
-2004-02-06 John Luke <jluke@cfl.rr.com>
-
- * gtk/Gtk.metadata: hide unneeded RadioMenuItem ctors
- * gtk/RadioMenuItem.custom: add ctor to create a new group
- * gtk/gtk-api.xml: regen
-
-2004-02-04 Mike Kestner <mkestner@ximian.com>
-
- * generator/CustomMarshalerGen.cs : impl MarshalReturnType.
- * generator/Method.cs : add CustomMarshalerGen return type handling.
- * generator/Property.cs : rework property type selection.
- * generator/SymbolTable.cs : add time_t mapping
- * glib/time_t_CustomMarshaler.cs : impl native to managed methods.
- * glue/time_t.c : remove debugging code.
-
-2004-02-03 Mike Kestner <mkestner@ximian.com>
-
- * glib/List.cs : add a ctor overload to create empty lists with
- a specific element_type.
- * glib/SList.cs : ditto
-
-2004-02-03 Mike Kestner <mkestner@ximian.com>
-
- * glib/Value.cs : remove double free of ManagedValues. Fixes the
- unfiled (cough, tberman, cough) bug in managed types as tree
- store values.
-
-2004-02-03 Mike Kestner <mkestner@ximian.com>
-
- * glib/ManagedValue.cs : null check on Free.
- * glib/Value.cs : some ManagedValue rework because we unset now.
-
-2004-02-02 Mike Kestner <mkestner@ximian.com>
-
- * generator/CustomMarshalerGen.cs : beginnings of a new generatable.
- * generator/SymbolTable.cs : mangle interface keyword to iface.
-
-2004-02-02 Martin Willemoes Hansen <mwh@sysrq.dk>
-
- * generator/ClassBase.cs: Converted String uses to the string alias.
- * generator/ConstStringGen.cs: Ditto
- * generator/Ctor.cs: Ditto
- * generator/EnumGen.cs: Ditto
- * generator/ManualGen.cs: Ditto
- * generator/SignalHandler.cs: Ditto
- * generator/StringGen.cs: Ditto
- * sample/Subclass.cs: Added a DeleteEventHandler to the window widget,
- this way a user can properly quit the sample.
-
-2004-02-02 Mike Kestner <mkestner@ximian.com>
-
- * glib/Value.cs : add dispose queue and idle handler so we can
- unset GValues that are created by the binding ctors.
- [Fixes #53490]
-
-2004-02-02 Todd berman <tberman@sevenl.net>
-
- * gdk/Event*.custom: added fix for bug #53729.
-
-2004-01-30 Todd Berman <tberman@sevenl.net>
-
- * gtk/Gtk.metadata: out fix for TreeView.GetBackgroundArea and
- TextView.GetIterLocation.
- * gtk/gtk-api.xml: regen
-
-2004-01-29 Mike Kestner <mkestner@ximian.com>
-
- * glib/time_t_CustomMarshaler.cs : new custom marshaler form time_t.
- * glue/time_t.c : glue for time_t.
- * glue/Makefile.am : add time_t.c
- * glue/makefile.win32 : ditto
-
-2004-01-28 John Luke <jluke@cfl.rr.com>
-
- * glade/XML.custom : some null checking for crash prevention.
- [Fixes #47017]
-
- * sample/VteTest.cs: update
- * vte/Vte.metadata: remove incorrect rules
- * vte/vte-api.xml: regen
-
-2004-01-28 Mike Kestner <mkestner@ximian.com>
-
- * gtk/gtk-api.xml : regen
- * parser/gapi2xml.pl : fix signals parsing where a STRUCT_OFFSET
- is not present in the signal_new call.
- * parser/gapi_pp.pl : ignore #ident lines.
- * vte/vte-api.xml : regen
- [Fixes #53189]
-
-2004-01-27 Mike Kestner <mkestner@ximian.com>
-
- * gtk/SelectionData.custom : guard against null in get_Text.
- [Fixes #52713]
-
-2004-01-27 Mike Kestner <mkestner@ximian.com>
-
- * glue/selectiondata.c : expose data field.
- * gtk/SelectionData.custom : add Data property.
- [Fixes #53397]
-
-2004-01-27 John Luke <jluke@cfl.rr.com>
-
- * gtk/AccelKey.custom: add convenience ctor
- * gtk/Gtk.metadata: revert previous Widget.AddAccelerator change,
- fix AccelKey fields
- * gtk/Widget.custom: add overload for AddAccelerator
- * gtk/gtk-api.xml: regen
-
-2004-01-27 Mike Kestner <mkestner@ximian.com>
-
- * glib/Value.cs : only g_free values we allocate.
- [Fixes #51180]
-
-2004-01-27 Mike Kestner <mkestner@ximian.com>
-
- * glib/TypeConverter.cs : lookup GTypes for boxed value types.
- * glib/Value.cs : fix boxed type handling in object ctor.
- [Fixes #51043]
-
-2004-01-27 Mike Kestner <mkestner@ximian.com>
-
- * generator/BoxedGen.cs : gen a Value to Boxed explicit cast op.
- * generator/Property.cs : use new cast in Boxed getters.
- [Fixes #53414]
-
-2004-01-27 Mike Kestner <mkestner@ximian.com>
-
- * gtk/Gtk.Metadata : revert opaquing of TextIter.
- * gtk/TextBuffer.custom : ditto
- * gtk/gtk-api.xml : regen
-
-2004-01-27 Mike Kestner <mkestner@ximian.com>
-
- * generator/MethodBody.cs : remove unnecessary generation for
- Handle using out parameters.
- * gtk/Gtk.Metadata : make TextIter opaque
- * gtk/TextBuffer.custom : remove redundant dllimport
- * gtk/gtk-api.xml : regen
-
-2004-01-27 Mike Kestner <mkestner@ximian.com>
-
- * gnome/Gnome.metadata : Icon.LookupSync mark factory param
- null_ok. Reworked from patch by Todd Berman.
- * gnome/gnome-api.xml : regen
-
-2004-01-25 Mike Kestner <mkestner@ximian.com>
-
- * art/art-api.xml : regen
- * gdk/gdk-api.xml : regen
- * generator/SymbolTable.cs : add unsigned char mapping
- * gnome/gnome-api.xml : regen
- * parser/gapi2xml.pl : handle unsigned keyword in fields,
- typedefs, and parameter types.
- [Fixes #53055]
-
-2004-01-25 Mike Kestner <mkestner@ximian.com>
-
- * gdk/gdk-api.xml : regen
- * gnome/gnome-api.xml : regen
- * gtk/gtk-api.xml : regen
- * parser/gapi2xml.pl : handle typedef struct {...} Foo;
- [Fixes #53312]
-
-2004-01-22 Martin Willemoes Hansen <mwh@sysrq.dk>
-
- * generator/Ctor.cs: Warnings was output like "ctor" fixed to
- output like "in ctor", like the rest of the warnings.
-
-2004-01-21 John Luke <jluke@cfl.rr.com>
-
- * vte/Makefile.in: fix so you can build from scratch
-
-2004-01-21 Mike Kestner <mkestner@ximian.com>
-
- * generator/Field.cs : kill Protection, restructure Generate
- and add FIXMEs for broken parts. Add StudlyName and move array
- fields to use Studly names.
-
-2004-01-20 John Luke <jluke@cfl.rr.com>
-
- * samples/GtkDemo:
- * samples/DbCLient: compile fixes, patch from
- Paul Duran <pauld@hutch.com.au>
-
-2004-01-20 John D. Hardin <jhardin@impsec.org>
-
- * glue/type.c : ansi-c-ify some late var decls.
-
-2004-01-19 John Luke <jluke@cfl.rr.com>
-
- * vte/Makefile.in: fix it so you can build without having
- gtk# already installed
-
-2004-01-19 Mike Kestner <mkestner@ximian.com>
-
- * art/Art.metadata : correct a couple symbolic array_lens
- * art/art-api.xml : regen
- * gdk/Gdk.metadata : correct a symbolic array_len
- * gdk/gdk-api.xml : regen
- * generator/Field.cs : generate array fields with MarshalAs
- attrs for correct marshaling.
-
-2004-01-18 Mike Kestner <mkestner@ximian.com>
-
- * generator/Field.cs : refactored code from StructBase
- * generator/StructBase.cs : spin off Field class
-
-2004-01-18 Mike Kestner <mkestner@ximian.com>
-
- * generator/SymbolTable.cs : mangle parms named readonly
-
-2004-01-18 Peter Williams <peter@newton.cx>
-
- * glib/Marshaller.cs (ArrayPtrToArgv, ArgvToArrayPtr): new
- functions for marshalling and unmarshalling string arrays
- to/from char **. Not pretty, but lets us call gtk_init()
- in Gtk.
-
- * gtk/Application.cs (do_init): New helper function to handle
- passing args to Gtk. Uses above functions.
- (Init): Use do_init, take a new progname parameter.
- (InitCheck): Same.
-
-2004-01-18 Mike Kestner <mkestner@ximian.com>
-
- * gtk/Gtk.metadata : mark TreeSelection.GetSelectedRows return
- list element_type as Gtk.TreePath.
- * gtk/gtk-api.xml : regen
-
-2004-01-18 Mike Kestner <mkestner@ximian.com>
-
- * gtk/Gtk.metadata : mark TreeSelection.GetSelectedRows model
- param as out.
- * gtk/gtk-api.xml : regen
-
-2004-01-18 John Luke <jluke@cfl.rr.com>
-
- * vte/Vte.metadata: fix to generate signals
- * vte/vte-api.xml: regen
- * samples/VteTest.cs: remove my home dir path
-
-2004-01-17 John Luke <jluke@cfl.rr.com>
-
- * configure.in: detect and compile vte-sharp (require vte-0.11.10)
- * Makefile.in: add vte to subdirs
- * vte/*:
- * sources/makefile:
- * sources/gtk-sharp-sources.xml: add vte
- * samples/VteTest.cs: add incomplete test/sample
- * samples/Makefile.in: add vte-test.exe target
-
-2004-01-15 Martin Willemoes Hansen <mwh@sysrq.dk>
-
- * generator/Method.cs: Methods which returns void and has a single out parameter
- like void Foobar (..., out int baz, ...) are turned into the more .NET like
- signature int Foobar (...), this fixes bug 46392
- * generator/Signature.cs: Ditto
- * generator/MethodBody.cs: Ditto
- * gtk/ListStore.custom: Ditto
- * gtk/TextBuffer.custom: Ditto
- * gtk/TreeStore.custom: Ditto
-
-2004-01-13 Tambet Ingo <tambet@ximian.com>
-
- * gtk-sharp.pc.in : add libdir var
- * generator/SymbolTable.cs : add GByteArray mapping.
-
-2004-01-13 Mike Kestner <mkestner@ximian.com>
-
- * generator/Signal.cs : use ValueArray to assemble parms arg for
- g_signal_chain_from_overriden call. Initialize retval GValue for
- above.
- * glib/Object.cs : g_signal_chain_from_overridden parms are IntPtrs.
- * glib/TypeConverter.cs : handle unboxed ValueTypes.
- * glib/Value.cs : handle unboxed struct types. add ctor for init'd
- unset Values.
- * glib/ValueArray.cs : new binding for GValueArray used by VMs.
- * glue/valuearray.c : field accessors
- * glue/Makefile.am : add new glue file
- * glue/makefile.win32 : add new glue file
- [Fixes #52680]
-
-2004-01-13 John Luke <jluke@cfl.rr.com>
-
- * en/Gtk/Dialog.custom: add more Gtk.ResponseType overloads
-
-2004-01-10 John Luke <jluke@cfl.rr.com>
-
- * samples/GtkDemo/*.cs: make it compile
- patch from Yves Kurz <ml_yves@magnific.ch>
-
-2004-01-09 Mike Kestner <mkestner@ximian.com>
-
- * gtk/Gtk.metadata : hide NotebookPage.Num method
- * gtk/Notebook.custom : implement PageNum.
- * gtk/gtk-api.xml : regen
-
-2004-01-09 John Luke <jluke@cfl.rr.com>
-
- * gtk/Gtk.metadata: Hide most RadioButton constructors, for
- api reasons
- * gtk/RadioButton.custom: add ctor to create a new RadioButton
- with its own group to avoid having to pass null
- * gtk/gtk-api.xml: regen
-
-2004-01-07 Mike Kestner <mkestner@ximian.com>
-
- * gtk/Gtk.metadata : rename TreeView.RowExpand to GetRowExpanded.
- * gtk/gtk-api.xml : regen
-
-2004-01-07 John Luke <jluke@cfl.rr.com>
-
- * gtk/Dialog.custom: add AddActionWidget overload
-
-2004-01-07 Mike Kestner <mkestner@ximian.com>
-
- * gtk/Gtk.metadata : TreeStore.Remove iter should be ref
- * gtk/gtk-api.xml : regen
-
-2004-01-06 John Luke <jluke@cfl.rr.com>
-
- * gtk/Gtk.metadata: change uint to GtkAccelKey for Widget.AddAccelerator
- * gtk/gtk-api.xml: regenerated
-
-2004-01-05 Mike Kestner <mkestner@ximian.com>
-
- * configure.in : tagged 0.15 and updated version.
-
-2003-12-30 Mike Kestner <mkestner@ximian.com>
-
- * glib/Object.cs (ConnectDefaultHandlers): reflection code to
- hook up overridden default signal handlers.
- * glue/type.c (gtksharp_override_virtual_method): peek the gtype
- and ref the class if it isn't created yet.
- * sample/Subclass.cs : update to override Button.OnClicked.
-
-2003-12-26 Mike Kestner <mkestner@ximian.com>
-
- * glue/selectiondata.c : new glue to make SelectionData opaque
- * glue/Makefile.am : add file
- * glue/makefile.win32 : add file
- * gtk/Gtk.metadata : mark SelectionData opaque, unhide Set method
- * gtk/SelectionData.custom : invoke glue methods for opaque fields.
- * gtk/gtk-api.xml : regen
- * sample/TestDnd.cs : update to new SelectionData API.
-
-2003-12-24 John Luke <jluke@cfl.rr.com>
-
- * gtk/Label.custom: add public default constructor
- * gtk/gtk-api.xml:
- * gtk/Gtk.metadata: make gtk_label_new_with_mnemonic the
- preferred constructor, disable protected default ctor
-
-2003-12-21 John Luke <jluke@cfl.rr.com>
-
- * glib/Idle.cs: add Remove method found in Alp Toker's platano
-
-2003-12-16 Joe Shaw <joe@ximian.com>
-
- * generator/SymbolTable.cs (MangleName): Add "lock" and "callback"
- to the list of names that need to be mangled. The former is a C#
- reserved keyword and the latter is already used as an argument to
- methods which marshal callbacks.
-
-2003-12-15 Mike Kestner <mkestner@ximian.com>
-
- * generator/BoxedGen.cs : s/uint/GLib.GType
- * generator/ManualGen.cs : add a ctor to pass ToNative handle name
- * generator/ObjectGen.cs : s/uint/GLib.GType
- * generator/Signal.cs : use GLib.GType and call OverrideVirtualMethod
- * generator/SymbolTable.cs : make GType a ManualGen and update a few
- ManualGens to the new signatures.
- * glib/DefaultSignalHandler.cs : s/Type/System.Type
- * glib/ManagedValue.cs : s/uint/GLib.GType
- * glib/Object.cs : s/uint/GLib.GType, add OverrideVirtualMethod.
- * glib/Type.cs : s/uint/IntPtr, add static fields for fundamentals.
- make it a value type and add ==, !=, Equals, and GetHashCode.
- * glib/TypeConverter.cs : use new GType statics, not fundamentals.
- * glib/Value.cs : use new GType statics, not fundamentals.
- * gnome/*.custom : s/uint/GLib.GType
- * gtk/*Store.custom : use GType statics, not fundamentals.
- * sample/Subclass.cs : s/uint/GLib.GType.
-
-2003-12-12 Mike Kestner <mkestner@ximian.com>
-
- * generator/CallbackGen.cs : kill some redundant generation
- * generator/MethodBody.cs : pass array parameters as arrays of
- the corresponding native type.
-
-2003-12-12 Mike Kestner <mkestner@ximian.com>
-
- * gnome/gnome-api.xml : regen'd
- * parser/gapi2xml.pl : handle typedef enum _foo foo;
- * parser/gapi-parser : support <exclude> elements in addition to <dir>
- and <file> to specify the sources to be parsed.
-
-2003-12-12 Radek Doulik <rodo@ximian.com>
-
- * gtk/Gtk.metadata: hide TextTag.Weight property and implement it
- in TextTag.custom. TextTag Weight property in gtk is of type int,
- but we want it to be Pango.Weight enum
-
-2003-12-10 Radek Doulik <rodo@ximian.com>
-
- * glue/program.c (get_default): moved check after strspec is set
- so we don't check uninitialized value
-
-2003-12-10 Mike Kestner <mkestner@ximian.com>
-
- * generator/CallbackGen.cs : kill ref_owned generation
- * generator/ClassBase.cs : use simple GetObject w/o ref_owned
- * generator/ManagedCallString.cs : new class to generate native
- to managed method calls.
- * generator/Method.cs : kill ref_owned generation
- * generator/MethodBody.cs : kill ref_owned generation
- * generator/Property.cs : kill ref_owned generation
- * generator/Signal.cs : generate delegates and vtable connect
- methods for all signals. Mark VMs with new attr.
- * generator/StructBase.cs : kill ref_owned generation
- * glib/DefaultSignalHandlerAttribute.cs : new attr to mark
- virtual methods.
- * glib/Object.cs : add overload for GetObject that defaults
- to ref_owned=false. Add extern for VM override glue.
-
-2003-12-08 Luciano Martorella <mad_lux_it@users.sourceforge.net>
-
- * gdk/Gdk.metadata : ref/array tags
- * gdk/Colormap.custom : removed
- * gdk/gdk-api.xml : regen
-
-2003-12-08 Mike Kestner <mkestner@ximian.com>
-
- * generator/Signal.cs : add virtual method generation for the
- default signal handlers.
- * glib/Object.cs : add g_signal_chain_from_overridden extern
-
-2003-12-08 Mike Kestner <mkestner@ximian.com>
-
- * generator/VMSignature.cs : new class to generate virtual method
- signatures for default signal handlers.
-
-2003-12-08 Mike Kestner <mkestner@ximian.com>
-
- * generator/ObjectGen.cs : stupid little whitespace change
-
-2003-12-08 Mike Kestner <mkestner@ximian.com>
-
- * glue/type.c : new glue for g_signal_override_class_closure
-
-2003-12-07 Mike Kestner <mkestner@ximian.com>
-
- * gnome/Gnome.metadata : About ctor's logo_pixbuf is null_ok
- * gnome/gnome-api.xml : regen
-
-2003-12-04 Mike Kestner <mkestner@ximian.com>
-
- * glib/Object.cs : kill unused WrapperClassAttribute. [#51458]
-
-2003-12-04 Mike Kestner <mkestner@ximian.com>
-
- * parser/gapi2xml.pl : fix for const param handling [#50295]
-
-2003-12-03 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/CallbackGen.cs : use new sig and isig classes.
- * generator/Ctor.cs : use new sig, isig, and body classes.
- * generator/ImportSignature.cs : isig code spun out from Parameters.
- * generator/Method.cs : use new sig, isig, and body classes.
- * generator/MethodBody.cs : spun Initialize, GetCallString,
- Finish, and Exception throwing methods from Parameters.
- * generator/Parameters.cs : Slayed the evilness that was CreateSignature.
- It is now essentially a container for Parameter classes instead of a
- tangled mess of code trying to do everything remotely related to
- parameter lists. Also completely killed the VAType/IsVarArgs stuff,
- as it can be done with the array and params attrs instead.
- * generator/Property.cs : use new sig class.
- * generator/Signature.cs : new method sig generator extracted from
- Parameters class. add "params" keyword support for tagged parameters.
- * gnome/Gnome.metadata : hide IconList.GetSearchPath (to be manual)
- * gnome/gnome-api.xml : regen
- * gtk/ListStore.custom : kill unneeded overload
- * gtk/TreeStore.custom : kill unneeded overload
- * gtk/Gtk.metadata : mark params/args on *store_newv
- * gtk/gtk-api.xml : regenerated
-
-2003-12-03 Ettore Perazzoli <ettore@ximian.com>
-
- * sample/TestDnd.cs: New.
- * gtk/TargetEntry.custom: New.
- * glue/dragcontext.c: New.
- * glib/Object.cs: New public property TypeName in class Object.
- * gdk/DragContext.custom: New.
-
-2003-11-30 Mike Kestner <mkestner@speakeasy.net>
-
- * art/art-symbols.xml : add some simple types to clean up generation.
- * art/Makefile.in : add art-symbols.xml
-
-2003-11-29 Mike Kestner <mkestner@speakeasy.net>
-
- * gtk/Gtk.metadata : fix targets for Drag.SourceSet.
- * gtk/gtk-api.xml : regen
-
-2003-11-29 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/Parameters.cs : handle null_ok for arrays.
- * gtk/Gtk.metadata : mark a null_ok in Drag.DestSet
- * gtk/gtk-api.xml : regen
-
-2003-11-29 Mike Kestner <mkestner@speakeasy.net>
-
- * gdk/Pixbuf.custom : revert Miguel's commit.
-
-2003-11-29 Mike Kestner <mkestner@speakeasy.net>
-
- * */Makefile.in : remove the nowarns
- * gdk/Rectangle.custom : add System.Drawing.Rect implicit cast op.
- * sample/Size.cs : use System.Drawing.Rectangles
- * sample/GnomeHelloWorld.cs : remove an unneeded null check
-
-2003-11-29 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/StructBase.cs : remove ==/!= operator generation.
-
-2003-11-28 Miguel de Icaza <miguel@ximian.com>
-
- * gdk/Pixmap.custom: Added Pixmap.custom to add a convenience constructor.
-
-2003-11-27 Miguel de Icaza <miguel@ximian.com>
-
- * glib/Log.cs: Make LogLevelFlags CLS compliant.
-
- * glib/SignalCallback.cs: Set the constructor protection level to
- protected, since it can not be instantiate.d
-
- * glib/Marshaller.cs: Do not allow instances of this class as it
- only exposes static methods.
-
- * glib/Source.cs, glib/FileUtils.cs, glib/Timeout.cs,
- glib/Thread.cs, glib/Markup.cs, glib/TypeConverter.cs: Ditto.
-
-2003-11-29 Mike Kestner <mkestner@speakeasy.net>
-
- * gdk/Gdk.metadata : add some array attrs to Pixbuf ctors.
- * gdk/Pixbuf.custom : remove unneeded overloads.
- * gdk/gdk-api.xml : regenerated
-
-2003-11-23 Mike Kestner <mkestner@ximian.com>
-
- * generator/SignalHandler.cs : use CONNECT_AFTER.
-
-2003-11-22 John Luke <jluke@cfl.rr.com>
-
- * sample/PrintSample.cs: add small Gnome.Print example
- * sample/Makefile.in: add print example to gnome build
-
-2003-11-19 Peter Williams <peter@newton.cx>
-
- * gtk/Gtk.metadata: Add some array attributes for some "type *elem,
- int n_elem" array params.
-
-2003-11-19 Mike Kestner <mkestner@ximian.com>
-
- * parser/gapi_pp.pl : handle files and dirs in ARGV.
- * parser/gapi2xml.pl : deal with struct keyword in param decls
- * parser/gapi-parser : handle <file> elements.
-
-2003-11-18 Mike Kestner <mkestner@ximian.com>
-
- * configure.in : tagged for 0.14 and bumping VERSION.
-
-2003-11-18 Mike Kestner <mkestner@ximian.com>
-
- * gtkhtml/Makefile.in : make the install target conditional too.
-
-2003-11-18 Moritz Balz <verteiler@mbalz.de>
-
- * gdk/Window.custom : remove Visible and Viewable since the Is*
- methods are now gen'd as properties.
-
-2003-11-18 Mike Kestner <mkestner@ximian.com>
-
- * pango/Pango.metadata : mark ref params on LayoutLine.GetExtents
- and GetPixelExtents. [Fixes #50338]
- * pango/pango-api.xml : regenerated.
-
-2003-11-18 Peter Williams <peter@newton.cx>
-
- * gtk/NodeStore.cs (GetNode): New public function. Patch refactored
- a bit to eliminate code duplication with get_node_cb.
-
-2003-11-18 John Luke <jluke@cfl.rr.com>
-
- * configure.in: test for gtkhtml3
- * gtkhtml/Makefile.in: build conditionally
-
-2003-11-18 Mike Kestner <mkestner@ximian.com>
-
- * gdk/Pixbuf.custom : resurrect the stream/resource ctors. rename
- LoadResource to LoadFromResource for the string overload.
- * gdk/PixbufLoader.custom: add an internal prop to get an unwrapped
- pixbuf handle.
-
-2003-11-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
-
- * gdk/Pixbuf.custom:
- (LoadResource (assembly, resource)): a null assembly uses the calling
- assembly.
-
-2003-11-17 Ettore Perazzoli <ettore@ximian.com>
-
- * gdk/Pixbuf.custom: Removed the Assembly constructors.
- (Pixbuf.LoadResource (string)): New.
- (Pixbuf.LoadResource (Assembly, string)): New.
-
-2003-11-16 Mike Kestner <mkestner@ximian.com>
-
- * generator/Parameters: handle array+len param pairs.
- * gtk/Gtk.metadata : unhide DestDefaults and mark targets param of
- drag_dest_set as array.
- * gtk/gtk-api.xml : regenerate
-
-2003-11-14 Mike Kestner <mkestner@ximian.com>
-
- * gtk/Gtk.metadata : fully qualify attr paths
- * parser/gapi-fixup.cs : compile a path expression per Ben Maurer
- suggestion.
-
-2003-11-14 Mike Kestner <mkestner@ximian.com>
-
- * configure.in : update VERSION to 0.14. Tagged 0.13.
-
-2003-11-13 Mike Kestner <mkestner@ximian.com>
-
- * generator/SignalHandler.cs : guard against destroyed signalhandlers.
-
-2003-11-07 Mike Kestner <mkestner@ximian.com>
-
- * configure.in : add mono check. expand wrapper scripts
- * generator/Makefile.in : use install. install a gapi-codegen wrapper.
- * generator/SymbolTable.cs : add SimpleGen for short
- * generator/gapi-codegen.in : new wrapper script in file.
- * parser/Makefile.in : use install. install a gapi-fixup wrapper.
- * generator/gapi-fixup.in : new wrapper script in file.
- * parser/gapi2xml.pl : deal with non-namespaced enums. ignore
- forward struct declarations.
-
-2003-11-05 Mike Kestner <mkestner@ximian.com>
-
- * gtk/ITreeNode.cs : make Parent readonly
- * gtk/TreeNode.cs : use an internal method to set parent on the
- child, and set child.Parent to null in RemoveChild.
-
-2003-11-05 Moritz Balz <verteiler@mbalz.de>
-
- * gdk/Window.custom : System.Drawing.Rectangle/Point customizations
-
-2003-11-05 Mike Kestner <mkestner@ximian.com>
-
- * gtk/TreeNodeAttribute.cs : sealed per Ben Maurer's suggestion.
- * gtk/TreeNodeValueAttribute.cs : ditto
-
-2003-11-04 Mike Kestner <mkestner@ximian.com>
-
- * glib/Value.cs : add set to Val prop
- * glue/Makefile.am : build nodestore.c
- * glue/makefile.win32 : link nodestore.o
- * glue/nodestore.c : new, glue for TreeModel implementation
- * gtk/NodeStore.cs : new tree store implementation
- * gtk/ITreeNode.cs : new interface for nodestore node types
- * gtk/TreeNode.cs : abstract class for deriving nodestore nodes
- * gtk/TreeNodeAttribute.cs : tree node marking attr
- * gtk/TreeNodeValueAttribute.cs : node column marking attr
- * gtk/TreeView.custom : add ctor(NodeStore)
-
-2003-11-04 John Luke <jluke@cfl.rr.com>
-
- * sources/makefile: add gstreamer 0.6.4 sources
- * sources/gstreamer-parse.patch: fixes to parse gst
- * gst/Gst.metadata: new metadata
- * gst/Makefile.in: add gapi-fixup to Makefile
- * gst/gst-api.xml: new api file for 0.6.4
-
- * gtk/Gtk.metadata: set correct preferred constructor for button
- * gtk/gtk-api.xml: regenerated
-
-2003-11-02 Mike Kestner <mkestner@ximian.com>
-
- * generator/CallbackGen.cs : use a temporary ret value if there
- is any cleanup to be done after the call. Thanks to John Luke
- for a patch which identified the problem.
-
-2003-11-01 Radek Doulik <rodo@ximian.com>
-
- * gtk/TreeModelSort.custom: implementation of GetValue/SetValue
- (copied from TreeStore.custom)
-
- * gtk/TreeModel.custom: added GetValue/SetValue
-
-2003-10-30 Ken Foster <kenfoster@tampabay.rr.com>
-
- * glue/button.c: initial creating of glue file for GdkButton
- * glue/Makefile.am: added button.c to glue make
- * glue/makefile.win32: added button.c to win32 glue make
- * gtk/Button.custom: expose in_button GdkButton member
-
-2003-10-29 Martin Willemoes Hansen <mwh@sysrq.dk>
-
- * generator/Method.cs: marked Is and Has methods,
- to be generated as properties, fixes bug [47910]
-
-2003-10-28 Mike Kestner <mkestner@ximian.com>
-
- * configure.in : releasing 0.12
-
-2003-10-28 Mike Kestner <mkestner@ximian.com>
-
- * */Makefile.in : create the apidir before installing to it.
-
-2003-10-28 Mike Kestner <mkestner@ximian.com>
-
- * generator/BoxedGen.cs : generate GLib.Value ctors. [fixes #47168]
- * generator/Property.cs : use new Boxed value ctors.
- * generator/StructBase.cs : use existing Writer if available.
-
-2003-10-27 Moritz Balz <verteiler@mbalz.de>
-
- * gdk/Drawable.custom : add a S.D.Rectangle overload for DrawRect.
-
-2003-10-26 Martin Willemoes Hansen <mwh@sysrq.dk>
-
- * gtk/Gtk.metadata: Added the rest of sources/Gtk.metadata
- and sorted the metadata.
- * gtk/gtk-api.xml: Regenerated, to reflect the above changes.
- Tags are swapped around. PaintBox, PaintBoxGap, PaintShadow and
- PaintShadowGap are moved arround as well.
- * sources/Gtk.metadata: Removed
-
-2003-10-23 Martin Willemoes Hansen <mwh@sysrq.dk>
-
- * gtk/Gtk.metadata: Added metadata from sources/Gtk.metadata
- * gtk/gtk-api.xml: Reflects changes of the metadata move,
- tags are swapped around.
- * sources/Gtk.metadata: Removed metadata, which are moved to
- gtk/Gtk.metadata
-
-2003-10-22 Martin Willemoes Hansen <mwh@sysrq.dk>
-
- * gtk/Gtk.metadata: Added metadata from sources/Gtk.metadata
- * gtk/gtk-api.xml: Reflects changes of the metadata move,
- tags are swapped around.
- * gtkhtml/Gtk.metadata: Added metadata from sources/Gtk.metadata
- * gtkhtml/gtkhtml-api.xml: Reflects changes of the metadata move,
- tags are swapped around.
- * sources/Gtk.metadata: Removed metadata, which are moved to
- gtk/Gtk.metadata and gtkhtml/Gtk.metadata
-
-2003-10-22 Mike Kestner <mkestner@ximian.com>
-
- * gtkhtml/gtkhtml-api.xml : regenerated
- * sources/makefile : add gtkhtml-embedded.* to the parse. Patch
- proposed by orph on bug #49875.
-
-2003-10-20 Mike Kestner <mkestner@ximian.com>
-
- * gtk/Gtk.metadata : mark TargetEntry.flags as type TargetFlags.
- * gtk/gtk-api.xml : regenerated [fixes #49859]
-
-2003-10-20 Mike Kestner <mkestner@ximian.com>
-
- * generator/Parameters.cs : treat interface out params like objects.
- * gtk/gtk-api.xml : regenerated
- * gtk/Gtk.metadata : mark TreeSelection.GetSelected params out.
- * gtk/TreeSelection.custom : emptied since it's now generated.
- * sources/Gtk.metadata : kill hide of TreeSelection.GetSelected.
- [fixes #49858]
-
-2003-10-20 Mike Kestner <mkestner@ximian.com>
-
- * atk/atk-api.xml : regenerated
- * gdk/gdk-api.xml : regenerated
- * gtk/gtk-api.xml : regenerated
- * gtkhtml/gtkhtml-api.xml : regenerated [Fixes #49875]
- * parser/gapi2xml.pl : handle unnamed parameter declarations.
-
-2003-10-20 Mike Kestner <mkestner@ximian.com>
-
- * generator/Parameters.cs : add a cast to the call_string for Length
- params other than int.
-
-2003-10-18 Mike Kestner <mkestner@ximian.com>
-
- * gtk/Gtk.metadata : add move-node rules for Paint methods.
- * gtk/gtk-api.xml : regenerated
- * parser/gapi2xml.pl : put paint_ methods in global, not Paint.
- * parser/gapi-fixup.cs : add move-node rule handling. [Fixes #47980]
-
-2003-10-17 Mike Kestner <mkestner@ximian.com>
-
- * generator/Parameters.cs : mark enum pointer params as out.
- need to audit if any are really arrays. [Fixes #49779]
-
-2003-10-17 Mike Kestner <mkestner@ximian.com>
-
- * gtk/Window.cs : override Raw prop and take a ref, since gtk+
- owns the ref to new Windows, and we need a ref. [Fixes #47721]
-
-2003-10-17 Mike Kestner <mkestner@ximian.com>
-
- * gnome/CanvasPoints.custom : make New overload a ctor overload.
- * gnome/Gnome.metadata : mark CanvasPoints as opaque
- * gnome/gnome-api.xml : regenerated. [Fixes #37256]
-
-2003-10-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
-
- * gtk/ThreadNotify.cs: close the pipe and detach the GSource when
- explicitly requested or finalized.
-
-2003-10-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
-
- * gconf/tools/schemagen.cs: support for lists.
-
-2003-10-15 Mike Kestner <mkestner@ximian.com>
-
- * generator/Property.cs : use new Opaque value ctor and
- rework get/set blocks for Opaque types. [Fixes #47959]
- * glib/Opaque.cs : kill explicit IntPtr operator.
- * glib/Value.cs : rework Opaque value ctor.
-
-
-2003-10-14 Mike Kestner <mkestner@ximian.com>
-
- * gtk/Gtk.metadata : rule for ClipboardGetFunc
- * gtk/Clipboard.custom : comment out for now don't think any
- of this is needed.
- * gtk/ClipboardClearFunc.cs : gen'd now
- * gtk/ClipboardGetFunc.cs : gen'd now
- * gtk/GtkSharp.GtkClipboardClearFuncNative.cs : gen'd now
- * gtk/GtkSharp.GtkClipboardGetFuncNative.cs : gen'd now
- * gtk/gtk-api.xml : regenerated
- * sources/Gtk.metadata : remove a couple clipboard hides
-
-2003-10-14 Mike Kestner <mkestner@ximian.com>
-
- * gtk/gtk-api.xml : regenerated
- * gtk/Gtk.metadata : begin the port of the Gtk rules
- * gtk/Makefile.in : apply metadata in gen target
- * gtkhtml/gtkhtml-api.xml : regenerated
- * gtkhtml/Gtk.metadata : a couple rules ported
- * gtkhtml/Makefile.in : apply metadata in gen target
- * sources/Gtk.metadata : port first 350 lines of rules.
-
-2003-10-14 Mike Kestner <mkestner@ximian.com>
-
- * gtk/gtk-api.xml : regenerated
- * sources/Gtk.metadata : removed all the obsolete "out" rules
-
-2003-10-13 Mike Kestner <mkestner@ximian.com>
-
- * gdk/Gdk.metadata : mark an array param on PixbufDestroyNotify
- * gdk/gdk-api.xml : regenerated
- * generator/CallbackGen.cs : Handle out params in callback sigs
- and ditch the object[] args handling for typed args.
- * generator/Parameters.cs : more proactive PassAs logic. We now
- default all simple pointer types (uint*, int*, double*, etc...)
- to out params unless they are marked otherwise in the XML with a
- pass_as tag or an array tag. [Fixes #32104]
-
-2003-10-13 Mike Kestner <mkestner@ximian.com>
-
- * gnome/Gnome.metadata : new xpath metadata rules
- * gnome/Makefile.in : apply metadata before generation
- * gnome/gnome-api.xml : regenerated
- * parser/gapi-fixup.cs : use XmlDocument.Save (filename)
- instead of opening a stream manually.
- * sources/Gnome.metadata : killed
-
-2003-10-12 Mike Kestner <mkestner@ximian.com>
-
- * art/Art.metadata : new xpath metadata rules
- * art/Makefile.in : apply metadata before generation
- * atk/Atk.metadata : new xpath metadata rules
- * atk/Makefile.in : apply metadata before generation
- * gda/Gda.metadata : new xpath metadata rules
- * gda/Makefile.in : apply metadata before generation
- * gdk/Gdk.metadata : new xpath metadata rules
- * gdk/Makefile.in : apply metadata before generation
- * gnomedb/GnomeDb.metadata : new xpath metadata rules
- * gnomedb/Makefile.in : apply metadata before generation
- * pango/Pango.metadata : new xpath metadata rules
- * pango/Makefile.in : apply metadata before generation
- * parser/Makefile.in : build and install new gapi-fixup
- * parser/gapi-fixup.cs : new xpath based metadata engine
- * sources/*.metadata : remove most of the old metadata,
- still have to convert Gtk and Gnome to xpaths.
-
-2003-10-11 Mike Kestner <mkestner@ximian.com>
-
- * gtk/gtk-api.xml : regenerated
- * sources/Gtk.metadata : applied patch from jluke for hides
- requested in bug #38660. Also cleaned up the sprawling "hidden"
- rules to reduce the overall footprint.
-
-2003-10-11 Mike Kestner <mkestner@ximian.com>
-
- * generator/OpaqueGen.cs (FromNativeReturn): just do a
- new on the type. GLib.Opaque.GetOpaque was apparently an
- homage to GetObject that just seems wrong.
-
-2003-10-11 Mike Kestner <mkestner@ximian.com>
-
- * gtk/gtk-api.xml : regenerated
- * sources/Gtk.metadata : markes some out tags on
- TreeView.GetCursor. [Fixes #49556]
-
-2003-10-11 Mike Kestner <mkestner@ximian.com>
-
- * generator/Parameters.cs : Properly handle out params for
- Object and Opaque types.
- * gtk/ListStore.custom: remove out on GetValue overload
- * gtk/TreeStore.custom: remove out on GetValue overload
- * gtk/gtk-api.xml : regenerated
- * sources/Gtk.metadata : remove some incorrect out tags
- [Fixes #49517] for real this time.
-
-2003-10-10 Mike Kestner <mkestner@ximian.com>
-
- * gtk/gtk-api.xml : regenerated
- * sources/Gtk.metadata : mark pos and path pass_as="out" for
- TreeView.GetDragDestRow and GetDestRowAtPos [Fixes #49517]
-
-2003-10-10 Mike Kestner <mkestner@ximian.com>
-
- * gtk/gtk-api.xml : regenerated
- * gtk/TreePath.custom : implement Indices property by
- hand. Patch from tds00mahi@thn.htu.se (malte) [Fixes #49518]
- * sources/Gtk.metadata : hide TreePath.Indices.
-
-2003-10-10 Mike Kestner <mkestner@ximian.com>
-
- * gtk/gtk-api.xml : regenerated
- * gtk/FileSelection.custom : implement the Selections property by
- hand. [Fixes #49254]
- * sources/Gtk.metadata : hide FileSelection.GetSelections.
-
-2003-10-10 Mike Kestner <mkestner@ximian.com>
-
- * */makefile.win32 : remove api dir from build and fix clean target
-
-2003-10-10 Mike Kestner <mkestner@ximian.com>
-
- * gdk/gdk-api.xml : regenerated
- * sources/Gdk.metadata : mark Cursor opaque. mark confine_to and
- cursor null_ok in Gdk.Pointer.Grab. [Fixes #48273]
-
-2003-10-09 Mike Kestner <mkestner@ximian.com>
-
- * generator/Statistics.cs (Report): pretty it up.
- * generator/SymbolTable.cs : handle const-xmlChar as ConstString
-
-2003-10-09 Mike Kestner <mkestner@ximian.com>
-
- * pango/Makefile.in : fix path to glib-sharp.dll
-
-2003-10-10 Martin Willemoes Hansen <mwh@sysrq.dk>
-
- * Makefile.in: Updated to reflect moval of api xml files from api/
- to each assembly dir.
- * configure.in: Ditto
- * art/.cvsignore Ditto
- * art/Makefile.in: Ditto
- * atk/.cvsignore Ditto
- * atk/Makefile.in: Ditto
- * gda/.cvsignore Ditto
- * gda/Makefile.in: Ditto
- * gdk/.cvsignore Ditto
- * gdk/Makefile.in: Ditto
- * gdk/gdk-symbols.xml Ditto
- * glade/.cvsignore Ditto
- * glade/Makefile.in: Ditto
- * gnome/.cvsignore Ditto
- * gnome/Makefile.in: Ditto
- * gnomedb/.cvsignore Ditto
- * gnomedb/Makefile.in: Ditto
- * gst/.cvsignore Ditto
- * gst/Makefile.in: Ditto
- * gtk/.cvsignore Ditto
- * gtk/Makefile.in: Ditto
- * gtk/gtk-symbols.xml Ditto
- * gtkhtml/.cvsignore Ditto
- * gtkhtml/Makefile.in: Ditto
- * pango/.cvsignore Ditto
- * pango/Makefile.in: Ditto
- * rsvg/.cvsignore Ditto
- * rsvg/Makefile.in: Ditto
- * sources/gtk-sharp-sources.xml: Ditto
- * api/: Removed
-
-2003-10-09 Mike Kestner <mkestner@ximian.com>
-
- * api/*-api.xml : regenerated
- * parser/gapi_pp.pl : ignore simple comments. [Fixes #47450]
- * parser/gapi2xml.pl : turn off debug.
-
-2003-10-09 Mike Kestner <mkestner@ximian.com>
-
- * generator/Property.cs : don't do new for Objects if FromNativeReturn
- returns null. [Fixes #48055]
-
-2003-10-08 Mike Kestner <mkestner@ximian.com>
-
- * */Makefile.in : rework the prefix handling for duncan's packaging.
-
-2003-10-08 Martin Willemoes Hansen <mwh@sysrq.dk>
-
- * gnome/PrintJob.custom: Added default ctor.
- * gnome/PrintDialog.custom: Added overloaded ctor with fewer parameters.
- * sources/Gnome.metadata: Disabled default ctor for PrintJob,
- changed type from int to PrintDialogFlags for PrintDialog ctor and
- changed return type from byte to string for PrintConfig.Get.
-
-2003-10-07 Mike Kestner <mkestner@ximian.com>
-
- * api/gtk-api.xml : regenerated
- * generator/Method.cs : gen new_flag automatically if set
- * sources/Gtk.metadata : mark new_flag on Gtk.Bin.GetChild
-
-2003-10-07 Mike Kestner <mkestner@ximian.com>
-
- * generator/ObjectGen.cs (Generate): check sigs.Count in addition
- to the null check to determine if the signals hash should be
- generated.
-
-2003-10-07 Mike Kestner <mkestner@ximian.com>
-
- * parser/gapi2xml.pl : look for ");" at the end of property
- declarations to avoid problems with ';' in property docstrings.
- * api/gtk-api.xml : regenerated. [Fixes #47987]
-
-2003-10-07 Mike Kestner <mkestner@ximian.com>
-
- * glib/ListBase.cs : assume ref_owned=false for GObject lists.
- [Fixes #49145]
-
-2003-10-07 Mike Kestner <mkestner@ximian.com>
-
- * gtkhtml/Makefile.in : add art-sharp ref
- * sources/Gtk.metadata : make gtk_widget_size_request pass_as ref
- instead of out. [Fixes #46354]
-
-2003-10-07 Mike Kestner <mkestner@ximian.com>
-
- * gtkhtml/Makefile.in : add gnome api to includes and ref in build
- * gtkhtml/gkthtml-api.xml : regenerated
- * sources/Gtk.metadata : remove the gtkhtml gnomeprint hides
-
-2003-10-06 Mike Kestner <mkestner@ximian.com>
-
- * Makefile.in : add gtkhtml dir.
- * configure.in : expand gtkhtml/Makefile
- * api/Makefile.in : remove gtkhtml-api.xml
- * generator/CodeGenerator.cs : parse new --outdir, --customdir,
- and --assembly-name args.
- * generator/GenerationInfo.cs (Ctor): new (dir, dir,assembly) ctor
- * gtkhtml/HTMLStream.custom : moved here from gtk dir
- * gtkhtml/gtkhtml-api.xml : moved here from api dir
- * gtkhtml/Makefile.in : gen source and build dll
- * sources/gtk-sharp-sources.xml : write gtkhtml api to new dir
-
-2003-10-06 Artem Popov <artemis@yandex.ru>
-
- * gtk/Dialog.custom : Action area is an HButtonBox, not a VBox.
-
-2003-10-06 Mike Kestner <mkestner@ximian.com>
-
- * generator/InterfaceGen.cs (Generate): gen the EventHandlers for sigs
- * generator/Signal.cs (GetHandlerName): kill this and split it into
- EventHandlerName and EventHandlerArgsName props instead of the ugly
- out param hack.
- (GenEventHandler): make public void and add gen_info param. open
- stream with gen_info. use new *Name props.
- (Generate): only gen the EventHandler if we're genning the container,
- not for implementors.
-
-2003-10-06 Mike Kestner <mkestner@ximian.com>
-
- * generator/CodeGenerator.cs (Main): use new ObjectGen.GenerateMappers.
- * generator/GenerationInfo.cs (Ctor): new (dir, assembly) ctor
- * generator/ObjectGen.cs : move hash management to Generate from Ctor,
- index it on dir, and make it hold new DirectoryInfo refs. Refactor
- GenerateMapper. The object mappers are now assembly based instead of
- namespace based.
-
-2003-10-06 Mike Kestner <mkestner@ximian.com>
-
- * generator/Signal.cs (Generate): pass gen_info to sighdnlr.Generate.
- use gen_info.AssemblyName in Args instantiation.
- * generator/SignalHandler.cs (Generate): use gen_info to open stream.
- refactor out some local vars.
-
-2003-10-04 Mike Kestner <mkestner@ximian.com>
-
- * generator/CallbackGen.cs : remove CloseWriter call.
- * generator/GenBase.cs : kill CreateWriter and CloseWriter.
-
-2003-10-04 Mike Kestner <mkestner@ximian.com>
-
- * generator/AliasGen.cs : stub new Generate overload.
- * generator/BoxedGen.cs : implement new Generate overload.
- * generator/CallbackGen.cs (Generate):implement new overload.
- * generator/ClassBase.cs : implement new Generate overload and
- pass around the gen_info.
- * generator/ClassGen.cs : implement new Generate overload.
- * generator/Ctor.cs (Generate): s/sw/gen_info.
- * generator/EnumGen.cs : implement new Generate overload.
- * generator/GenBase.cs : expose NSElem, add gen_info param to
- AppendCustom. kill CreateWriter.
- (GenWrapper): add gen_info param and use it to open stream.
- * generator/GenerationInfo.cs : new class to pass around generation
- related information and perform tasks like opening streams.
- * generator/IGeneratable.cs : add Generate(gen_info) overload.
- * generator/InterfaceGen.cs : implement new Generate overload.
- * generator/ManualGen.cs : stub new Generate overload.
- * generator/Method.cs (Generate): accept gen_info. kill GenerateComments.
- * generator/ObjectGen.cs : implement new Generate overload.
- * generator/OpaqueGen.cs : implement new Generate overload.
- * generator/Parameters.cs (Initialize): s/sw/gen_info.
- * generator/Property.cs (Generate): accept gen_info.
- * generator/Signal.cs (Generate): accept gen_info.
- * generator/SimpleGen.cs : stub new Generate overload.
- * generator/StructBase.cs : s/sw/gen_info
- * generator/StructGen.cs : implement new Generate overload.
-
-2003-10-03 Mike Kestner <mkestner@ximian.com>
-
- * generator/GenBase.cs : remove unused do_generate private member.
-
-2003-10-03 Mike Kestner <mkestner@ximian.com>
-
- * generator/*.cs : Kill DoGenerate.
-
-2003-10-03 Mike Kestner <mkestner@ximian.com>
-
- * api/gtk-symbols.xml : make GtkType a uint like GType.
- * generator/CodeGenerator.cs : adopt new parser semantics
- * generator/Parser.cs : move to single parser/multiple Parse. Remove
- DoGenerate hack and let the CodeGenerator control this. Return
- generatables instead of loading symboltable.
- * generator/SymbolTable : add AddTypes method. Revamp dealiasing code.
-
-2003-10-02 Mike Kestner <mkestner@ximian.com>
-
- * api/gnome-api.xml : regenerated
- * parser/gapi2xml.pl : handle enum <name> {...}; Thanks to
- Martin for identifying the bug and providing a candidate patch.
-
-2003-10-01 Mike Kestner <mkestner@ximian.com>
-
- * README.generator : updates for new parser script
- * api/Makefile.in : add gtkhtml-api.xml
- * api/*-api.xml : regenerated
- * parser/makefile : install new parsing script
- * parser/gapi-parser : new xml-driven parsing script
- * sources/makefile : call new parsing script
- * sources/gtk-sharp-sources.xml : new parser input file
- * sources/gtk-sharp.sources : killed
-
-2003-09-29 Martin Willemoes Hansen <mwh@sysrq.dk>
-
- * sources/Gnome.metadata: Use const-gchar* instead of const-guchar*,
- when the value is realy a string
- * api/gnome-api.xml: Ditto
-
-2003-09-28 Martin Willemoes Hansen <mwh@sysrq.dk>
-
- * sources/gtk-sharp.sources: Fixed, wrong library used for libgnomeprintui
- * api/gnome-api.xml: Ditto
-
-2003-09-23 John Luke <jluke@cfl.rr.com>
-
- * README:
- * sources/README: reflect the current targets
-
-2003-09-19 Rachel Hestilow <rachel@nullenvoid.com>
-
- * sources/Gtk.metadata, api/gtk-api.xml: Rename
- 'Event' signals on Widget and TextTag to WidgetEvent
- and TextTag event, respectively, to avoid
- ambiguity with System.EventHandler/EventArgs.
-
-2003-09-18 Mike Kestner <mkestner@ximian.com>
-
- * configure.in : releasing 0.11
-
-2003-09-17 Rachel Hestilow <rachel@nullenvoid.com>
-
- * glib/DelegateWrapper.cs: Remove 'RemoveIfNotAlive'
- and revamp the memory management to use destroy
- notification.
-
- * generator/CallbackGen.cs: Do not generate the call to
- RemoveIfNotAlive.
-
- * gtk/GtkSharp.GtkClipboardGetFuncNative,
- GtkSharp.GtkClipboardClearFuncNative: Do not call
- RemoveIfNotAlive.
-
-2003-09-17 Rachel Hestilow <rachel@nullenvoid.com>
-
- * generator/StructBase.cs: Make pointer, wrapped,
- bitfield, and dummy fields private fields.
-
-2003-09-16 Martin Willemoes Hansen <mwh@sysrq.dk>
-
- * api/gda-api.xml: Updated to reflect new versions of the targeted
- libraries + addition of GnomePrint
- * api/gdk-api.xml: Ditto
- * api/gnome-api.xml: Ditto
- * api/gnomedb-api.xml: Ditto
- * api/gtk-api.xml: Ditto
- * api/rsvg-api.xml: Ditto
- * sources/.cvsignore: Ditto
- * sources/makefile: Ditto
- * sources/gtk-sharp.sources: Ditto
- * sources/Gda.metadata: Added a couple of new_flags
- * sources/Gdk.metadata: Fixed name filter level type, it was missed by
- the parser.
- * sources/Gtk.metadata: Added hides for the GtkHtml releations to GnomePrint,
- these hides can be removed when GtkHtml is put in its own assembly.
-
-2003-09-14 Mike Kestner <mkestner@ximian.com>
-
- * Makefile.in : add a gen-clean target to clean all but glue/parser.
- * generator/Signal.cs : use restructured SignalHandler.
- * generator/SignalHandler.cs (GetName): break up this monument to
- structured programming.
-
-2003-09-12 Mike Kestner <mkestner@ximian.com>
-
- * generator/Parameters.cs (CreateSignature): begin refactoring this
- unholy mess. Eliminated one pass thru the param list. Eliminated
- prev/curr param refs. Switched to a for loop since lookbacks are
- required.
-
-2003-09-11 Mike Kestner <mkestner@ximian.com>
-
- * generator/Parameters.cs : keep an ArrayList of Parameter objects
- and refactor the hell out of the joint using the new Count and this[].
- Still need to refactor a couple methods.
-
-2003-09-11 Mike Kestner <mkestner@ximian.com>
-
- * generator/Parameters.cs (IsLength): use a switch to make the
- growing list of valid len types more readable.
-
-2003-09-11 Mike Kestner <mkestner@ximian.com>
-
- * generator/Ctor.cs : kill inline doc comments once and for all
- * generator/EnumGen.cs : ditto
- * generator/Method.cs : ditto
- * generator/OpaqueGen.cs : ditto
- * generator/Property.cs : ditto
-
-2003-09-11 Alp Toker <alp@atoker.com>
-
- * generator/Parameters.cs: Handle string length parameters specified
- not just as int but also signed/unsigned int, long or short
-
-2003-09-07 Alp Toker <alp@atoker.com>
-
- * makefile.win32: New clean and release targets, and don't bother
- building the samples (sample/makefile.win32 is out of date anyway)
- * api/makefile.win32:
- * glue/makefile.win32:
- * makefile.win32: Glade# works perfectly on win32 now; include it in
- the default build
- * sample/GladeTest.cs:
- * sample/GladeViewer.cs: Remove Gnome dependency and clean up
- * glue/makefile.win32: Add -mms-bitfields for MSVC function name
- mangling compatibility
-
-2003-09-06 Alp Toker <alp@atoker.com>
-
- * api/gdk-api.xml:
- * sources/Gdk.metadata: out params for Gdk.Window.GetInternalPaintInfo
- * glade/makefile.win32: new win32 makefile
- * glue/win32dll.c:
- * glue/makefile.win32: Patch to remove cygwin1.dll dependency on win32
- from Todd Berman <tberman@gentoo.org>
- * glue/makefile.win32: Update list of sources
- * glue/Makefile.am: Remind people to keep makefile.win32 up to date
-
-2003-09-03 Aleksey Sanin <aleksey@aleksey.com>
-
- * parser/GAPI/Metadata.pm: enable enums processing using
- <class/> element syntax
-
-
-2003-09-02 Martin Willemoes Hansen <mwh@sysrq.dk>
-
- * gda/Makefile.in: Fixed bad nowarn options
-
-2003-08-31 Alp Toker <alp@atoker.com>
-
- * api/gdk-api.xml:
- * sources/Gdk.metadata: out params for Gdk.Window.GetOrigin
-
-2003-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
-
- * gdk/Pixbuf.custom: use windows dll name. Removed DllImport that is
- already in the generated file.
-
- * glib/Thread.cs: use windows dll name.
-
- * gtk/ThreadNotify.cs: close <remark> comment.
-
-2003-08-28 Martin Willemoes Hansen <mwh@sysrq.dk>
-
- * gdk/Pixbuf.custom: Added missing DllImport statement and
- proper copyright header.
- * api/gtk-api.xml:
- * sources/Gtk.metadata: Fixed new_flag rules, they did not
- get applied to the gtk-api.xml.
- * generator/Parameters.cs:
- * generator/StructBase.cs:
- * generator/SymbolTable.cs: Fixed the keyword base was not
- mangled, also did a little refactoring.
-
-2003-08-28 Alp Toker <alp@atoker.com>
-
- * glue/style.c: glue and corresponding .custom entries for
- TextGC
-
-2003-08-26 John Luke <jluke@cfl.rr.com>
-
- * gtk/ThreadNotify.cs: mark dllimported methods private
-
-2003-08-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
-
- * gconf/GConf/Value.cs: implemented support for lists.
-
- * glib/ListBase.cs: implemented the IDisposable stuff and created a
- new method, FreeList, to free the list when needed.
-
- * glade/HandlerNotFoundException.cs: make it derive from
- SystemException. Don't override Message, the message is created in the
- .ctor.
-
-2003-08-26 Alp Toker <alp@atoker.com>
-
- * glue/style.c: glue and corresponding .custom entries for
- BaseGC, plus the ability to set GCs
-
-2003-08-21 Martin Willemoes Hansen <mwh@sysrq.dk>
-
- * gnomeprint:
- * api/gnomeprint-api.xml: Removed, gnomeprint is now included
- in gnome.
-
-2003-08-19 John Luke <jluke@cfl.rr.com>
-
- * glib/ListBase.cs: Add convenience .Append (string) method
-
-2003-08-19 Martin Willemoes Hansen <mwh@sysrq.dk>
-
- * generator/Method.cs: Fixed bug where all ToString methods
- was marked as override, this is only correct if the ToString
- method does not have any parameters.
-
-2003-08-18 Aleksey Sanin <aleksey@aleksey.com>
-
- * generator/SignalHandler.cs : take refs on GObject sig parms.
-
-2003-08-15 Duncan Mak <duncan@ximian.com>
-
- * sources/Gtk.metadata (Gtk.TreeView.CellArea): Apply patch from
- Aleksey Sanin <aleksey@aleksey.com> to declare the "Gdk.Rectangle
- rect" parameter as an out parameter. This is required because
- Gdk.Rectangle is a struct.
-
-2003-08-14 Martin Willemoes Hansen <mwh@sysrq.dk>
-
- * sources/Gnome.metadata: Renamed use of keyword base to Base
- in GnomePrintUnit method GetIdentity.
- Added GObject as the parent for GnomePrintTransport and
- GnomePrintPdf
- * sources/gtk-sharp.sources: Added libgnomeprintui/gpaui
-
-2003-08-13 Martin Willemoes Hansen <mwh@sysrq.dk>
-
- * sources/makefile:
- * sources/gtk-sharp.sources: Added libgnomeprint-2.2.2 and
- libgnomeprintui-2.2.2
-
-2003-08-08 Mike Kestner <mkestner@ximian.com>
-
- * sources/gtk-sharp.sources : point to gtkhtml-3.0.8 dir
- * sources/gtkhtml-font-style-enum.patch : ditto
- * sources/makefile : fix some urls, make a get-gtkhtml-code
- target, and use gtkhtml-3.0.8 instead of cvs.
-
-2003-08-06 Duncan Mak <duncan@ximian.com>
-
- * sources/Atk.metadata: Make Mr. Art.VpathDash an Opaque struct
- instead of a plain ol' struct.
-
- * sources/Gtk.metadata (Gtk.Widget.SizeRequest): Mark the
- requisition parameter as out.
-
-2003-08-06 Xavier Amado <xavier@blackbloodstudios.com>
-
- * gtk/Notebook.custom (CurrentPageWidget): Added a property for
- getting the current page widget directly.
-
-2003-07-30 Duncan Mak <duncan@ximian.com>
-
- * sources/Gnome.metadata:
- (CanvasItem.SetValist):
- (CanvasItem.Construct): Hidden, because we don't support va_list
- params.
-
- (CanvasItem): Hid the constructor, as each subclass has their own
- contsructor and we don't support va_list params.
-
- (CanvasItem.W2i):
- (CanvasItem.I2w): Marked parameters as ref, so they can be used as
- in/out parameters.
-
- (Canvas.GetMiterPoints):
- (Canvas.GetColor): Fixed return type to be 'bool' instead of 'int'.
-
- (CanvasClipgroup.Wind): Fixed property type. It should be an
- Art.WindRule enum, not a UInt.
-
- (Canvas.W2cAffine):
- (CanvasItem.AffineAbsolute):
- (CanvasItem.AffineRelative):
- (CanvasItem.I2wAffine):
- (CanvasItem.I2cAffine): Hidden, use the impl. in the custom file
- instead.
-
- * gnome/Canvas.custom: Added for W2cAffine.
- * gnome/CanvasItem.custom: Reformatted. Added AffineRelative,
- AffineAbsolute, I2wAffine, I2cAffine. These are needed because of
- the 'const double affine[6]' parameter.
-
-2003-07-29 Duncan Mak <duncan@ximian.com>
-
- * sources/Gtk.metadata:
- * api/gtk-api.xml: Marked the arguments to GetSelectionBounds and
- GetLayoutOffsets as out params.
-
-2003-07-28 Duncan Mak <duncan@ximian.com>
-
- * glade/XML.custom: Added new convenience factory methods,
- FromStream and FromAssembly.
-
-2003-07-27 Duncan Mak <duncan@ximian.com>
-
- * art/Makefile.in:
- * atk/Makefile.in:
- * gda/Makefile.in:
- * gdk/Makefile.in:
- * glade/Makefile.in:
- * gnome/Makefile.in:
- * gnomedb/Makefile.in
- * gtk/Makefile.in:
- * pango/Makefile.in:
- * rsvg/Makefile.in: Suppress warnings CS0660 and CS0661.
-
-2003-07-23 Mike Kestner <mkestner@ximian.com>
-
- * gtk/FileSelection.custom : more s/new Object/GetObject
-
-2003-07-23 Mike Kestner <mkestner@ximian.com>
-
- [Equal credit to Ettore Perazzoli <ettore@ximian.com> for fixing
- all the bugs in the initial patch]
- * */*.custom : fix incorrect usage of new Object (IntPtr) where
- Glib.Object.GetObject should've been used. add ref_owned param
- to GetObject calls.
- * generator/CallbackGen.cs : setup ref_owned in bodies
- * generator/ClassBase.cs : add ref_owned to GetObject FromNative call
- * generator/Method.cs : setup ref_owned in bodies
- * generator/Property.cs : setup ref_owned in bodies
- * generator/SignalHandler.cs : pass ref_owned to GetObject
- * generator/StructBase.cs : setup ref_owned in bodies
- * glib/Object.cs : kill Ref/Unref methods. Don't want it to be
- easy for users to screw with ref counts, or make it look like they
- should need to.
- (GetObject): add ref_owned param and ref/unref to remain at 1
- * glib/Value.cs : pass ref_owned to GetObject
-
-2003-07-23 Martin Willemoes Hansen <mwh@sysrq.dk>
-
- * generator/ClassBase.cs: Fixed printouts of ctor validation.
- Warnings refering to the same ctor were printed multiple times.
-
-2003-07-22 John Luke <jluke@cfl.rr.com>
-
- * sample/TreeViewDemo.cs:
- remove GLib and System.Drawing references
- remove workaround for mscorlib
- use Type.GetMembers instead of .GetMethods
- remove Glib.IdleHandler for simplicity
-
-2003-07-22 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/Method.cs (GenerateBody): kill the "cast_type"
- overload of this, since cast_type wasn't even used.
- * generator/Property.cs : call simpler GenerateBody sig
-
-2003-07-22 Duncan Mak <duncan@ximian.com>
-
- * gtk/FileSelection.custom (FSButton): Mark the constructor as
- 'internal', instead of 'public'.
-
-2003-07-15 Duncan Mak <duncan@ximian.com>
-
- * sources/makefile (get-source-code): make it go a bit faster by
- checking out all files in one go.
-
- * gtk/IconSet.custom (Sizes): added proper binding to
- gtk_icon_set_get_sizes (), this fixes bug #45835.
-
- * sources/Gtk.metadata
- (GtkIconSet): hide the GetSizes method.
- (GtkTextBuffer): new overrides
- MoveMarkByName -> MoveMark
- DeleteMarkByName -> DeleteMark
- ApplyTagByName -> ApplyTag
- RemoveTagByName -> RemoveTag
- (GtkItemFactory): new overrides
- GetItemByAction -> GetItem
- GetWidgetByAction -> GetWidget
-
- These two changes fixes bug #46388.
-
- (GtkHTML): overrides for Begin, mark BeginContent and BeginFull as
- overrides of Begin. This fixes bug #46427.
-
- * sources/gtkhtml-font-style-enum.patch: A patch to use real values
- in gtkhtml-enums.h so that the parser won't choke on the complex enum
- declarations.
-
- * sources/makefile: Apply the above patch after checking out the
- source code for GtkHTML.
-
-2003-07-14 Mike Kestner <mkestner@speakeasy.net>
-
- * api/*-api.xml : regenerated
- * gdk/Drawable.custom : DrawRectangle filled param is now bool
- * generator/Parameters.cs : studlify names ending w/ uscore
- * gtk/GtkSharp.GtkClipboardClearFuncNative : s/Opaque/Object
- * gtk/GtkSharp.GtkClipboardGetFuncNative : s/Opaque/Object
- * parser/gapi2xml.pl : put <ns>_string_* methods in Global
- * sample/Scribble.cs : update to new DrawRectangle api
- * sources/Gdk.metadata : hide some conflicting methods
- * sources/Gtk.metadata : finally fix the Progress crap and
- renames, hides and such to fix conflicts
- * sources/README : mention new gtk-2.2 reqs
- * sources/gtk-sharp.sources : update to new gtk-2.2 reqs
- * sources/makefile : update for 2.2 api
-
-2003-07-12 Mike Kestner <mkestner@speakeasy.net>
-
- * api/gda-api.xml : hide the new Type class
- * source/Gda.metadata : hide the new Type class
-
-2003-07-11 Mike Kestner <mkestner@speakeasy.net>
-
- * gdk/Selection.custom : add static fields for the primary,
- secondary, and clipboard and clipboard selection Gdk.Atoms.
- * glue/Makefile.am : add selection.c
- * glue/selection.c : add glue to get the atoms.
- * gtk/TextBuffer.custom : add a PasteClipboard overload for
- pasting to the cursor location.
-
-2003-07-10 Mike Kestner <mkestner@speakeasy.net>
-
- * api/*-api.xml : regenerated
- * gdk/Threads.cs : killed since the methods are now gen'd
- * generator/ClassGen.cs : new, static class generatable
- * generator/Parameters.cs : mangle new and byte as param names
- * generator/Parser.cs : parse new <class> elements
- * generator/SymbolTable.cs : add GC SimpleGen
- * parser/gapi2xml.pl : static class element fixes
- * parser/GAPI/Metadata.pm : add class element
- * sources/Art.metadata: new, rename Affine.ToString method
- * sources/Atk.metadata: rename State class
- * sources/Gdk.metadata: hide Pixbuf static class for now. rename
- Event and Pango static classes to avoid collisions.
- * sources/Gnome.metadata: rename Gtk and Gdk static classes to
- avoid collisions.
- * sources/GnomeDb.metadata: rename Stock static class to
- avoid collisions.
- * sources/Gtk.metadata: rename Stock static class to
- avoid collisions. Hide Idle class.
-
-2003-07-08 Ettore Perazzoli <ettore@ximian.com>
-
- * gtk/Layout.custom: New file, adding the Layout::BinWindow
- property.
-
- * glue/layout.c: New file, adding glue for getting the bin_window
- of a GtkLayout.
-
-2003-07-06 Mike Kestner <mkestner@speakeasy.net>
-
- * api/gtk-api.xml : regenerated
- * parser/GAPI/Metadata.pm : add support for property
- attribute alteration.
- * sources/Gtk.metadata : rule to mark TextTag.Weight as
- PangoWeight instead of gint. fixes 45214.
-
-2003-07-05 Mike Kestner <mkestner@speakeasy.net>
-
- * api/*-api.xml : regenerated
- * parser/gapi2xml.pl : first pass at trying to expose
- static classes for typeless method aggregation.
-
-2003-07-05 Mike Kestner <mkestner@speakeasy.net>
-
- * sources/makefile : fix the download uri's for the gnomedb
- lib source.
-
-2003-07-04 Mike Kestner <mkestner@speakeasy.net>
-
- * api/*-api.xml : regenerated
- * parser/gapi2xml.pl (addFuncElems): only ignore get_type
- methods for enum types, so that we don't suppress some methods.
- (addPropElem): remove doc-str since we don't autogen docs and
- access types for enum/boxed/flags/obj as an offset from the end
- of the param_spec to avoid problems with split(/,/).
-
-2003-07-04 Rodrigo Moya <rodrigo@ximian.com>
-
- * sources/makefile: updated download targets for libgda and
- libgnomedb.
-
-2003-07-04 Rodrigo Moya <rodrigo@ximian.com>
-
- * sources/gtk-sharp.sources:
- * api/gda-api.xml:
- * api/gnomedb-api.xml: updated for libgda/libgnomedb 0.90.
-
-2003-07-05 Martin Willemoes Hansen <mwh@sysrq.dk>
-
- * glib/Object.cs: Changed getData, setData to a single Data property
- Different keys are allowed now.
-
-2003-07-02 Shane Hyde <shane@enactive.org>
-
- * generator/GenBase.cs : put #line directive after the
- #region so line numbers match up.
-
-2003-07-02 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/StructBase.cs : remove doc comments
-
-2003-06-25 Martin Willemoes Hansen <mwh@sysrq.dk>
-
- * parser/gapi_pp.pl: Added striping of C comments
-
-2003-06-23 Martin Willemoes Hansen <mwh@sysrq.dk>
-
- * glib/Type.cs: Added ToString
-
-2003-06-14 Mike Kestner <mkestner@speakeasy.net>
-
- * configure.in : tagging for 0.10
-
-2003-06-14 Mike Kestner <mkestner@speakeasy.net>
-
- * gtk/TreeViewColumn.custom : cast Array param to
- object[] before indexing into it.
-
-2003-06-14 Mike Kestner <mkestner@speakeasy.net>
-
- * glib/Value.cs : cast uint to TypeFundamentals
-
-2003-06-14 Mike Kestner <mkestner@speakeasy.net>
-
- * CallbackGen.cs : rework for internal callback helpers,
- pass NS to parms ctor
- * Ctor.cs : pass NS to parms ctor
- * Method.cs : pass NS to parms ctor
- * Parameters.cs : refactoring, plus rework for internal
- callback helpers.
- * Signal.cs : pass NS to parms ctor
-
-2003-06-14 Mike Kestner <mkestner@speakeasy.net>
-
- * parser/gapi2xml.pl : some whitespace parsing cleanup
- * api/*-api.xml : rerun of the parser.
-
-2003-06-12 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/SimpleGen.cs : mark a few members virtual
- since they are overridden elsewhere.
-
-2003-05-29 Rachel Hestilow <rachel@nullenvoid.com>
-
- * gconf/Value.cs: Update to use new string marshalling.
-
- * generator/StringGen.cs, ConstStringGen.cs: Added.
- * generator/IGeneratable.cs: Add new method ToNativeReturn.
- * generator/CallbackGen.cs: Implement ToNativeReturn. Call
- ToNativeReturn for the return statement. Fix a couple of
- places where s_ret was being used incorrectly for m_ret.
- * generator/ClassGen.cs, EnumGen.cs, ManualGen.cs,
- SimpleGen.cs, StructBase.cs: Implement ToNativeReturn.
- * generator/SignalHandler.cs: Call ToNativeReturn for the
- return statement, instead of CallByName.
- * generator/SymbolTable.cs: Use StringGen for gchar, char,
- and gunichar, and ConstStringGen for their const variants.
- Add a new method wrapper for ToNativeReturn.
- (Trim): Add a special-case for const strings so that the
- const is not stripped. Otherwise there is no way of
- resolving the const case.
-
- * glade/XML.custom: Update to use new string marshalling.
-
- * glib/Marshaller.cs: Added.
- * glib/GException.cs, Markup.cs, ObjectManager.cs,
- Value.cs: Update to use new string marshalling.
- * glib/Object.cs: Remove old g_type_name DllImport
- as it is no longer used.
-
- * glue/fileselection.c (gtksharp_file_selection_get_fileop_entry):
- Mark this as const return.
-
- * gtk/ColorSelection.custom, FileSelection.custom,
- SelectionData.custom: Update to use new string marshalling.
-
-2003-06-07 Martin Willemoes Hansen <mwh@sysrq.dk>
- * generator/SymbolTable.cs: Added ulong
-
-2003-05-27 Rachel Hestilow <rachel@nullenvoid.com>
-
- * sample/ManagedTreeViewDemo.cs: Remove debugging cruft.
-
- * gconf/.cvsignore, gconf/GConf/.cvsignore,
- gconf/GConf.PropertyEditors/.cvsignore,
- gconf/tools/.cvsignore, sample/gconf/.cvsignore,
- sample/rsvg/.cvsignore: Added.
- * .cvsignore, parser/.cvsignore: Update.
-
-2003-05-27 Rachel Hestilow <rachel@nullenvoid.com>
-
- * gconf/GConf/ChangeSet.cs, Client.cs: Change SetValue
- from protected to internal, as it references an internal type.
- * gconf/GConf/ClientBase.cs: The same; additionally
- remove some commented-out code. Change Initialize from
- protected to internal.
-
-2003-05-22 Rachel Hestilow <rachel@nullenvoid.com>
-
- * glib/ManagedValue.cs, glib/Value.cs: A few old-style
- DllImports snuck in during my last commit; update them
- to use Win32 dll names.
-
-2003-04-28 Lee Mallabone <gnome@fonicmonkey.net>
-
- * sources/Gtk.metadata, api/gtk-api.xml: Unhide GtkSizeGroup
- as it's a useful class.
-
-2003-05-19 Rachel Hestilow <rachel@nullenvoid.com>
-
- * glib/ManagedValue.cs, TypeConverter.cs: Added.
- * glib/Value.cs: Make Value inherit from IDisposable, and
- move dtor to Dispose. Add generic object constructor
- with support for ManagedValue. Add a new Val property
- which will call the appropriate explicit cast.
-
- * glue/value.c: Add new glue function
- gtksharp_value_get_value_type.
-
- * gtk/TreeViewColumn.custom: Added.
- * gtk/ListStore.custom, TreeStore.custom: Add a number
- of SetValue overloads. Add convenience functtion
- AppendValues. Add new ctor that takes System.Type instead
- of GLib.TypeFundamentals. Add a GetValue convenience wrapper.
- * gtk/TreeView.custom: Add AppendColumn convenience
- functions.
-
- * sample/ManagedTreeViewDemo.cs: Added.
- * sample/Makefile.in: Update.
- * sample/TreeViewDemo.cs: Update to use new convenience
- APIs.
-
-2003-05-18 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/CallbackGen.cs : use non-static symtab, kill doc comments
- * generator/ClassBase.cs : use non-static symtab
- * generator/CodeGenerator.cs : use non-static symtab
- * generator/EnumGen.cs : kill doc comments, don't gen using System here
- * generator/GenBase.cs : gen using System here for all types
- * generator/InterfaceGen.cs : don't gen using System here.
- * generator/Method.cs : use non-static symtab
- * generator/ObjectGen.cs : kill doc comments, use non-static symtab
- * generator/OpaqueGen.cs : don't gen using System here.
- * generator/Parameters.cs : use non static symtab.
- * generator/Parser.cs : use non static symtab. add SimpleGen's and
- ManualGen's
- * generator/Property.cs : use non static symtab
- * generator/SignalHandler.cs : use non static symtab
- * generator/StructBase.cs : use non static symtab
- * generator/SymbolTable.cs : major refactoring. now uses SimpleGen and
- ManualGen IGeneratables to simplify the method and prop code. Is now
- instance based with a static prop to get the singleton instance, so that
- a this indexer can be provided to access the IGeneratables nicely. Gearing
- up to remove even more code from here by accessing IGeneratables directly.
-
-2003-05-18 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/ClassBase.cs : Use QualifiedName in spew
- * generator/ObjectGen.cs (Validate): kill, not used
-
-2003-05-13 Mike Kestner <mkestner@speakeasy.net>
-
- * COPYING : Add the license. This is copied verbatim from
- http://www.gnu.org/licenses/lgpl.txt.
-
-2003-05-13 Mike Kestner <mkestner@speakeasy.net>
-
- * configure.in : bump the version to 0.10
- * generator/CallbackGen.cs (GenWrapper): Update sig preparing for
- external assembly wrapper generation. Kill doc comment generation.
- Make marshaling delegate internal.
-
-2003-05-07 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/ClassBase.cs (GenSignals): remove doc comment param
- * generator/GenBase.cs (CreateWriter): alter generated file comment
- * generator/InterfaceGen.cs (CreateWriter): remove doc comments
- * generator/ObjectGen.cs (Generate): use new GenSignals sig
- * generator/Signal.cs : make signal marshalers internal and remove
- doc comments.
- * generator/SignalHandler.cs : make signal marshalers internal and remove
- doc comments.
- * gnome/CanvasProxy.cs : use Gnome.voidObjectSignal since the gtk one is
- inaccessible now.
-
-2003-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
-
- * rsvg/Makefile.in:
- * sample/rsvg/Makefile.in: hopefully fixes building from scratch.
-
- * rsvg/Tool.cs: the class should be public.
-
-2003-05-02 Alp Toker <alp@atoker.com>
-
- * sources/gtk-sharp.sources:
- * api/glade-api.xml:
- * glade/XML.custom: Use libglade-2.0-0.dll not glade-2.0 (for win32)
-
-2003-04-30 Mike Kestner <mkestner@speakeasy.net>
-
- * tagging for release 0.9
-
-2003-04-28 Lee Mallabone <gnome@fonicmonkey.net>
-
- * api/gtk-api.xml, sources/Gtk.metadata: Add a rule to
- hide classes/structs that are private in Gtk+.
-
-2003-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
-
- * sample/Scribble.cs: patch from Philip Van Hoof
- <spamfrommailing@freax.org> taht fixes compilation.
-
-2003-04-25 Charles Iliya Krempeaux <charles@reptile.ca>
- * README : Updated to reflect the name change or the
- "MonkeyGuide" to the "Mono Hand Book". Updated to
- give the (new) correct chapter number for the
- GNOME.NET section. Added mention of the
- Gtk# Wiki.
-
-2003-04-25 Charles Iliya Krempeaux <charles@reptile.ca>
- * gtk-sharp.pc.in, parser/gapi.pc.in : Both of these
- files were checked in as empty files, before. Checked
- them in, this time, with something in them.
-
-2003-04-16 Charles Iliya Krempeaux <charles@reptile.ca>
-
- * gdk/EventKey.custom : Created it so that there
- is a "Key" property that returns a Gdk.Key.
-
-2003-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
-
- * gtk/TreeView.custom:
- (GetPathAtPos): added 3 overloads of this method so that the caller
- does not need to create extra variables that may not use.
-
- * api/gtk-api.xml:
- * sources/Gtk.metadata: added pass_out attribute for tx and ty
- arguments of TreeView::WidgetToTreeCoords. Hide TreeView::GetPathAtPos.
-
-2003-04-14 Charles Iliya Krempeaux <charles@reptile.ca>
-
- * gtk-sharp.pc.in : Created to be used for the detection of
- Gtk#.
- * parser/gapi.pc.in : Created to be used for the detection
- of gapi.pl.
- * makefile : Deleted it. (Actually, renamed it to Makefile.in.)
- * Makefile.in : Created it from the old makefile, and modified it
- to account for gtk-sharp.pc.
- * configure.in : Made it so it will generate gtk-sharp.pc
- from gtk-sharp.pc.in, parser/gapi.pc from
- parser/gapi.pc.in, and Makefile from Makefile.in.
- * parser/Makefile.in : Modified it to account for parser/gapi.pc.
-
-2003-04-14 Lee Mallabone <gnome@fonicmonkey.net>
-
- * api/gtk-api.xml, sources/Gtk.metadata, gtk/ColorSelection.custom:
- Fix up API in ColorSelection - Palette{From,To}String now work, and
- PreviousColor is now a C# property.
-
- * api/gdk-api.xml, sources/Gdk.metadata, gdk/Color.custom: Hide the
- Copy, Free and Hash methods in Gdk.Color and override GetHashCode().
-
-2003-04-12 Alp Toker <alp@atoker.com>
-
- * parser/gen_keysyms: Generates a C# Key enum from the Gdk headers
- (gdkkeysyms.h)
- * gdk/Key.cs: The generated Key enum
-
-2003-04-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
-
- * glib/Object.cs:
- (GetObject): check that the target of the WeakReference is still there. Otherwise,
- create a new wrapper for the IntPtr.
-
- This fixes the random nullrefs when running nunit-gtk.
-
-2003-04-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
-
- * generator/CallbackGen.cs: the new generated wrappers have:
- -(optional) Field of the same type returned by the callback.
- -A call to RemoveIfNotAlive at the beginning. It returns true,
- return the dummy field.
- -Added an object to the ctor signature and pass it to the base
- class.
-
- * generator/Ctor.cs: added a Params property.
-
- * generator/Method.cs: set Static property in Parameters if the method
- is static.
-
- * generator/Parameters.cs: added Static property. The call creation of
- the delegate wrapper (if applicable) uses the new signature. Pass a null
- as object is the method is static.
-
- * generator/StructBase.cs: set Static for the parameters of the ctors.
-
- * glib/DelegateWrapper.cs: the ctor takes an object (the one creating
- the wrapper or null) and creates a weak reference to it. Store it in
- a static Hashtable (this way the wrapper itself is not garbage
- collected).
- (RemoveIfNotAlive): called from the native delegate callbacks. If the
- target of the weak reference has been garbage collected, removes itself
- from the hashtable to let the GC dispose this instance and returns true.
-
- * gdk/Pixbuf.custom:
- * gtk/Clipboard.custom:
- * gtk/GtkSharp.GtkClipboardClearFuncNative.cs:
- * gtk/GtkSharp.GtkClipboardGetFuncNative.cs:
- * glade/XML.custom: changed delegate wrappers to match the new
- signature.
-
-2003-04-04 Lee Mallabone <gnome@fonicmonkey.net>
-
- * gdk/Drawable.custom:
- * sources/Gdk.metadata:
- * api/gdk-api.xml: Apply a modified version of a patch from
- Artemis <artemis@yandex.ru>, to fix and clean DrawPolygon and
- DrawLines in Gdk.Drawable.
-
-2003-04-02 Charles Iliya Krempeaux <charles@reptile.ca>
- * generator/SignalHandler.cs : Added Patch submitted by
- Mark Crichton <crichton@gimp.org>, to get GtkMozEmbed
- bindings working.
-
-2003-04-02 Lee Mallabone <gnome@fonicmonkey.net>
-
- * gtk/Entry.custom: Add a constructor that sets the initial contents.
-
- * sources/Gtk.metadata:
- * api/gtk-api.xml: Fix API 'out' parameters in 'Frame' and some in 'Widget'.
-
-2003-03-27 Lee Mallabone <gnome@fonicmonkey.net>
-
- * api/gtk-api.xml, sources/Gtk.metadata, gtk/Viewport.custom:
- Add default constructor to Viewport.
-
-2003-03-25 Lee Mallabone <gnome@fonicmonkey.net>
-
- * api/gtk-api.xml: Allow parameters in TreeView.ScrollToCell to be null.
- * source/Gtk.Metadata: Mark TreeView.ScrollToCell() with some null_ok params.
-
-2003-03-25 Martin Baulig <martin@ximian.com>
-
- * gtk/Application.cs (CurrentEvent): Made this property static.
-
-2003-03-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
-
- * sample/rsvg/Makefile.in: don't build the sample app. everytime.
-
-2003-03-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
-
- * api/gtk-api.xml: changed DisplayOptions by SetDisplayOptions.
- * sources/Gtk.metadata: added rename hint for DisplayOptions. Moved
- GtkHTMLStream hints to 'misc' area (they were in 'rename' area).
-
- * gtk/Calendar.custom: added a .net style GetDate override.
- * sample/CalendarApp.cs: updated to new methods in the Calendar API.
-
-2003-03-23 Martin Baulig <martin@ximian.com>
-
- * glib/Object.cs (Dispose): Call `Objects.Remove (_obj)' here
- instead of in PerformQueuedUnrefs().
-
-2003-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
-
- * sample/Fifteen.cs: work-around for bug 106145 in gnome bugzilla.
- * sample/DbClient/client.cs: updated to make it compile again.
-
-2003-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
-
- * glue/adjustment.c:
- * glue/canvaspoints.c:
- * glue/clipboard.c:
- * glue/colorseldialog.c:
- * glue/combo.c:
- * glue/dialog.c:
- * glue/error.c:
- * glue/event.c:
- * glue/fileselection.c:
- * glue/list.c:
- * glue/object.c:
- * glue/paned.c:
- * glue/program.c:
- * glue/slist.c:
- * glue/style.c:
- * glue/type.c:
- * glue/value.c:
- * glue/widget.c: removed almost all the warnings.
-
-2003-03-22 Lee Mallabone <gnome@fonicmonkey.net>
-
- * sample/makefile.in:
- * sample/CalendarApp.cs: Add a sample showing a Gtk.Calendar.
-
-2003-03-15 Duncan Mak <duncan@ximian.com>
-
- * gtk/ColorSelectionDialog.custom: Rename the inner Button class
- to be ColorSelectionButton to avoid a name clash in the doc generator.
-
- * gtk/TextBuffer.custom: Fix the Text property. Patch from Mathias
- Hasselmann <mathias.hasselmann@gmx.de>.
-
-2003-03-15 Miguel de Icaza <miguel@ximian.com>
-
- * sample: Update samples to new Glade.Widget.
-
- * glade/WidgetAttribute.cs: Moved the old GladeWidgetattribute
- here. Now its called `Glade.WidgetAttribute'.
-
- * glade/GladeWidgetAttribute.cs: Removed
-
- * glib/Idle.cs: Do not allow Idle class to be instantiated.
-
-2003-03-11 Miguel de Icaza <miguel@ximian.com>
-
- * gtk/Application.cs (CurrentEvent): Property implementing the
- suggestion from Paolo.
-
- * glib/Object.cs (Dispose): Destructor might be invoked in a
- thread, queue the object for destruction using the Gtk idle
- handler. We perform the real destruction of the object in the
- same thread as the Gtk+ main thread.
-
-2003-03-14 Charles Iliya Krempeaux <charles@reptile.ca>
-
- * sources/makefile : Added a "distclean" rule, so
- that typing it will remove any source code directories,
- and their contents. (This works by just deleting all
- the subdirectories. Except for "CVS" of course.)
-
-2003-03-14 Charles Iliya Krempeaux <charles@reptile.ca>
-
- * sample/Makefile.in : Modified it to make it so "make clean"
- will clean the "sample/rsvg" directory too. And made it so
- a "make distclean" will do a distclean to the "sample/rsvg"
- too.
- * sample/rsvg/Makefile.in : Added the "distclean" rule to
- it.
-
-2003-03-14 Rodrigo Moya <rodrigo@ximian.com>
-
- * configure.in:
- * sources/makefile:
- * sources/gtk-sharp.sources: updated for libgda/libgnomedb 0.11.
-
- * sources/Gda.metadata: hide GdaBatch class.
-
-2003-03-13 Charles Iliya Krempeaux <charles@reptile.ca>
-
- * README : Did some spelling and grammar corrections.
- Fixed indentation problem. And added some more info.
- * HACKING: Added info for people getting started with
- hacking Gtk#.
-
-2003-03-13 Duncan Mak <duncan@ximian.com>
-
- * gdk/Pixbuf.custom: Add a nice version of Gdk.Pixbuf.Pixels that
- return a 'byte *'.
-
- * sources/Gdk.metadata:
- * api/gdk-api.xml: Hide Gdk.Pixbuf.Pixels.
-
-2003-03-10 Miguel de Icaza <miguel@ximian.com>
-
- * gtk/Application.cs: Do not allow instances of Application to be
- created.
-
- (InitCheck): new method, wraps gtk_init_check.
-
- Removed inline docs from here. Put them on the documen
-
-2003-03-08 Miguel de Icaza <miguel@ximian.com>
-
- * glib/Idle.cs: Add private constructor.
-
-2003-03-05 Miguel de Icaza <miguel@ximian.com>
-
- * gtk/Bin.cs: Add new property `Child' to GtkBin.
-
-2003-03-06 Mike Kestner <mkestner@speakeasy.net>
-
- * rsvg/Makefile.in : some -L -r magic
-
-2003-03-03 Miguel de Icaza <miguel@ximian.com>
-
- * gdk/Rectangle.custom: Add a Rectangle constructor that takes for
- arguments.
-
-2003-03-02 Miguel de Icaza <miguel@ximian.com>
-
- * glib/Markup.cs: Add new file.
-
-2003-03-01 Peter Williams <peterw@ximian.com>
-
- * glue/Makefile.am (libgtksharpglue_la_LIBADD): Change this to
- BASE_DEPENDENCIES_LIBS
-
-2003-03-01 Mike Kestner <mkestner@speakeasy.net>
-
- * api/gdk-api.xml : make Color.Parse retval a gboolean. Also change
- some libname override rules to use win32 dllnames.
- * sources/Gdk.metadata : rules for above.
-
-2003-03-01 Charles Iliya Krempeaux <charles@reptile.ca>
-
- * sources/README : Updated it to include mention of GStreamer
- and librsvg. Also mentioned being able to use
- "make get-source-code" to get the source code too.
- Then added alot of content. And basically rewrote it.
-
-2003-02-28 Miguel de Icaza <miguel@ximian.com>
-
- * glue/widget.c (gtksharp_gtk_widget_get_window): Fix. Return the
- window, not the address of the window pointer.
-
-2003-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
-
- * generator/SignalHandler.cs: the generated Dispose method now calls
- base.Dispose and always disconnects the handler. Thanks to
- Petr Danecek <danecek@ucl.cas.cz>.
-
-2003-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
-
- * api/gdk-api.xml:
- * sources/Gdk.metadata: hide GdkColormap.AllocColor.
-
- * gdk/Colormap.custom: AllocColor is here.
-
- * gconf/tools/schemagen.cs: XmlDocument.Load (string) takes an Uri.
-
-2003-02-28 Miguel de Icaza <miguel@ximian.com>
-
- * gdk/Color.custom: Added constructors from System.Drawing.Color
- and from rgb byte tuples.
-
- * gdk/Colormap.custom: Add new .custom file for the AllocColor
- call.
-
- * sources/Gdk.metadata: Make Colormap.AllocColor GdkColor
- parameter be a `ref' parameter.
-
-2003-02-27 Charles Iliya Krempeaux <charles@reptile.ca>
-
- * sample/rsvg : Created place to put sample program
- that uses Rsvg#.
- * sample/Makefile.in : Edited it to make it "make"
- the stuff in "sample/rsvg".
- * sample/rsvg/Makefile.in : Added it to "make" the
- Rsvg# sample program.
- * sample/rsvg/svghelloworld.cs : Added it. It's
- the sample Rsvg# program.
- * sample/rsvg/sample.cvs : Added it. It's a
- sample SVG file that the program displays.
- * configure.in : Modified it so it will create
- sample/rsvg/Makefile from sample/rsvg/Makefile.in.
-
-2003-02-27 Charles Iliya Krempeaux <charles@reptile.ca>
-
- * sources/makefile : Updated the "make get-source-code"
- functionality to create the Symbolic Links and get
- gtkhtml from CVS, as specified by "sources/READDME".
-
-2003-02-27 Miguel de Icaza <miguel@ximian.com>
-
- * gdk/Drawable.custom: Added nice overload for DrawRectangle.
-
-2003-02-19 Miguel de Icaza <miguel@ximian.com>
-
- * gdk/Pixbuf.custom: Add overload arguments that take a
- System.Drawing.Color.
-
- Added a Clone() method, to implement the ICloneable interface.
-
- Added constructors for inlined in-data RGB/RGBA buffers and file
- images.
-
-2003-02-26 Charles Iliya Krempeaux <charles@reptile.ca>
-
- * gtk/TextBuffer.custom : Added method, named
- "GetIterAtOffset" to wrap C API procedure
- "gtk_text_buffer_get_iter_at_offset" in a
- more expected way.
-
-2003-02-26 Charles Iliya Krempeaux <charles@reptile.ca>
-
- * configure.in : Added support for Rsvg.NET -- librsvg
- .NET bindings. (Made a check for the library. And
- made it so "rsvg/Makefile" would be generated. Also
- made it so it will display if rsvg-sharp.dll will
- be generated or not.)
- * makefile : Added support for Rsvg.NET -- librsvg
- .NET bindings. (Added an entry for Rsvg.NET.)
- * sources/gtk-sharp.sources : Added an entry for
- Rsvg.NET -- librsvg .NET bindings.
- * rsvg/ : Created "rsvg/" directory. (To hold stuff
- for Rsvg.NET.)
- * rsvg/Tool.cs : Created Rsvg.Tool class to hold
- various procedures (which were not automatically
- wrapped).
- * rsvg/Makefile.in : Created "rsvg/Makefile.in".
- * api/Makefile.in : Added and entry for Rsvg.NET.
-
-2003-02-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
-
- * generator/Parser.cs: use XmlDocument.Load (Stream). The one using
- (String) expects an uri.
-
- * generator/Signal.cs: always remove the delegate from the signal
- callback (prior to this, the last handler was not being removed).
- Dispose the callback (ie, disconnect from the signal) when there are
- no registered delegates to handle it.
-
- * generator/SignalHandler.cs: added 2 new fields to hold the instance
- and the handler ID. The finalization is now done in Dispose and
- disconnects the signal handler when no delegate will handle the signal.
- Changed gobject-2.0 to libgobject-2.0-0.dll.
-
- * glib/SignalCallback.cs: implemented IDisposable interface.
-
-2003-02-24 Mike Kestner <mkestner@speakeasy.net>
-
- * released 0.8
-
-2003-02-24 Mike Kestner <mkestner@speakeasy.net>
-
- * sample/TreeViewDemo.cs : fix Type ambiguities
-
-2003-02-24 Mike Kestner <mkestner@speakeasy.net>
-
- * sample/Subclass.cs : rework the GType code.
-
-2003-02-24 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/Parameters.cs : fix some ref/out bugs
-
-2003-02-24 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/ObjectGen.cs : gen GLib.Value ctor, not uint
- * glib/Object.cs : use GLib.Type in RegisterGType and
- make the g_object_new ctor use GLib.Type.
- * glib/Type.cs : new thin wrapper for GValue type
- * glib/*.cs : s/Type/System.Type
-
-2003-02-23 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/GenBase.cs : quote the custom filenames in
- #file directives.
-
-2003-02-23 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/CallbackGen.cs : suppress len params from
- string/len pairs.
- * generator/Parameters.cs : begin the refactoring to use
- Parameter class. Suppress len params from string/len pairs.
- */*.custom : remove all overrides of string/len pairs
- */*.cs : ditto. Thanks to Alp Toker for the foundation
- patch that this change was built upon.
-
-2003-02-22 Mike Kestner <mkestner@speakeasy.net>
-
- * sources/makefile : patch from Charles Krempeaux to add
- get-source-code target which wgets tarballs.
-
-2003-02-21 Mike Kestner <mkestner@speakeasy.net>
-
- * mapdllnames.pl : a little whitespace action
- * api/*-api.xml : move to win32 dllnames
- * */makefile.win32 : remove the mapdllnames step
- * */*.cs : move to win32 dllnames
- * */*.custom : move to win32 dllnames
- * sources/gtk-sharp.sources : move to win32 dllnames
-
-2003-02-21 Mike Kestner <mkestner@speakeasy.net>
-
- * api/*-api.xml : remove stray enum get_type methods.
- * parser/gapi2xml.pl : ignore get_type methods on enums.
-
-2003-02-20 Mike Kestner <mkestner@speakeasy.net>
-
- * api/gtk-api.xml : hide the Arrow::Set method.
- * sources/Gtk.metadata : metadata for above.
-
-2003-02-19 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/Parameters.cs (Initialize): construct a GLib.Value
- for out params.
-
-2003-02-19 Mike Kestner <mkestner@speakeasy.net>
-
- * api/gtk-api.xml : mark TreeModel::GetValue value param out
- suggested by Lee Mallabone <gnome@phonicmonkey.net>
- * sources/Gtk.metadata : metadata for above
- * sources/README : update the gnomedb/gda version reqs
-
-2003-02-19 Duncan Mak <duncan@ximian.com>
-
- * sources/Gtk.metadata: Add GetLayoutOffsets to the rule for out params.
-
- * gtk/FileSelection.custom (Button): Rename to FSButton, so that
- we won't wipe out our original Gtk.Button docs.
-
-2003-02-19 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/GenBase.cs : mark #line 1 for .customs
- * generator/SignalHandler.cs : fix for GObj retvals
-
-2003-02-18 Mark Crichton <crichton@gimp.org>
-
- * generator/EnumGen.cs: Handle different enum types.
-
-2003-02-14 Duncan Mak <duncan@ximian.com>
-
- * api/gtk-api.xml:
- * sources/Gtk.metadata: Mark 'out' param in GetSelectionBounds,
- thanks to Lee Mallabone for spotting that.
-
-2003-02-13 Mike Kestner <mkestner@speakeasy.net>
-
- * glib/Boxed.cs : fix a ctor bug reported to the list by
- u900842@oz.nthu.edu.tw.
-
-2003-02-13 Mike Kestner <mkestner@speakeasy.net>
-
- * sample/Makefile.in: add a distclean target
-
-2003-02-13 Charles Iliya Krempeaux <charles@reptile.ca>
-
- * README : Clarifications and additions
-
-2003-02-13 Stefan Sarin <gprojects@saring.de>
-
- * gdk/Color.custom: fixed ToString ().
-
-2003-02-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
-
- * gconf/GConf/Client.cs:
- * gconf/GConf/NoSuchKeyException.cs: added key string to the exception
- when Get does not find it.
-
-2003-02-11 Duncan Mak <duncan@ximian.com>
-
- * gnome/voidObjectAffineSVPintSignal.cs:
- * gnome/CanvasProxy.cs: Make the voidObjectAffineSVPintSignal
- class be in the 'GtkSharp' namespace, instead of 'GtkSharp.Gnome'.
-
-2003-02-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
-
- * glade/XML.custom: added a couple of checks for null.
-
-2003-02-09 Duncan Mak <duncan@ximian.com>
-
- * sources/Gtk.metadata:
- * api/gtk-api.xml: Gtk.Editable.InsertText should have the
- position be marked 'ref', not 'out', because it is an in-out parameter.
-
- * gtk/Entry.custom: Overload for InsertText.
- * gtk/Clipboard.custom: New overload for SetText.
-
- * sources/Gtk.metadata: Mark out params for methods in GtkCalendar,
- GtkCellRenderer, GtkWindow, GtkRuler, GtkLayout, GtkScrolledWindow
- and GtkSpinButton. Monotalk is very useful for this kind of work.
-
-2003-02-08 Radek Doulik <rodo@ximian.com>
-
- * glib/MainContext.cs: beginning of MainContext class, just
- Iteration and Pending methods to be able to refresh Gtk in the
- middle of time consuming function where it's not worth while to
- use threads
-
- * glue/style.c (gtksharp_gtk_style_get_font_description): new
- function to access style's font_description field
-
- * gtk/Style.custom: added font description property
-
- * gconf/GConf/Client.cs: added SyggestSync method
-
-2003-02-07 Peter Williams <peterw@ximian.com>
-
- * glue/Makefile.am (libgtksharpglue_la_LIBADD): Set this so
- that people linking to libgtksharpglue.so get their
- dependencies.
-
- (I've had this patch sitting around forever, I think it got
- approved, and it certainly appears correct.)
-
-2003-02-07 Martin Willemoes Hansen <mwh@sysrq.dk>
- * Added a constructor to gdk/Point.custom
-
-2003-02-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
-
- * sample/gconf/Makefile: defined top_builddir. RUNTIME is just 'mono'.
-
-2003-02-06 Duncan Mak <duncan@ximian.com>
-
- * sources/Gtk.metadata: Correct the metadata for the HTMLStream
- Write method to make it always regenerate the correct
- stuff. Thanks to Rachel for helping me out at the middle of the
- night.
-
-2003-02-06 Duncan Mak <duncan@ximian.com>
-
- * api/gtk-api.xml:
- * sources/Gtk.metadata:
- * gtk/Window.custom: Mark out params in gtk_window_get_size and gtk_window_get_default_size.
-
-2003-02-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
-
- * glib/SignalCallback.cs: new methods AddDelegate and RemoveDelegate.
-
- * generator/Signal.cs: add/remove signal handlers from the delegate used
- to invoke them.
-
- * generator/SignalHandler.cs: use Delegate instead of MulticastDelegate.
-
-2003-02-05 Rodrigo Moya <rodrigo@ximian.com>
-
- * gda/Application.cs:
- * gnomedb/Application.cs: synced version number with its corresponding
- C library version.
-
-2003-01-29 Duncan Mak <duncan@ximian.com>
-
- * gtk/Widget.custom: Add a nice overload, rename it to
- 'RequestSize' instead of 'SizeRequest' to avoid a name clash.
-
- * api/gtk-api.xml:
- * sources/Gtk.metadata: out param for gtk_widget_get_size_request.
-
- * gtk/Window.custom: Add some overloads.
-
- * api/gtk-api.xml:
- * sources/Gtk.metadata:
- * sources/Pango.metadata: Add some more metadata rules.
-
-2003-01-28 Rodrigo Moya <rodrigo@ximian.com>
-
- * configure.in:
- * api/gda-api.xml:
- * api/gnomedb-api.xml:
- * sources/gtk-sharp.sources:
- * sources/Gda.metadata: added support for latest libgda/libgnomedb.
-
-2003-01-22 Radek Doulik <rodo@ximian.com>
-
- * sources/Gtk.metadata: disable default contructor for Frame in
- metadata
-
- * parser/gapi2xml.pl: add comment to .xml files with warning that
- they were auto generated
-
-2003-01-20 Mike Kestner <mkestner@speakeasy.net>
-
- * released 0.7.
-
-2003-01-12 Martin Baulig <martin@ximian.com>
-
- * parser/gapi2xml.pl (addNameElem): Make this work if the $cname
- doesn't start with $prefix.
-
-2003-01-10 Duncan Mak <duncan@ximian.com>
-
- * gtk/TextView.custom (WindowToBufferCoords): Remove the hack, as
- the generator produces correct code now.
-
- * sources/Gtk.metadata (GtkTextView): Add a patch from Fredrik
- Nilsson <jymdman@home.se> to add needed 'out' parameters.
-
-2003-01-09 Rodrigo Moya <rodrigo@ximian.com>
-
- * makefile:
- * configure.in:
- * api/Makefile.in:
- * api/gphoto-api.xml:
- * sources/gtk-sharp.sources:
- * gphoto/Makefile.in:
- * gphoto/.cvsignore: removed gphoto2 bindings, to be moved to mphoto.
-
-2003-01-06 Pedro Abelleira Seco <pedroabelleira@yahoo.es>
-
- * pango/Layout.custom: Add Size get property and add some nicer overloads
- to avoid explicit passing in the string length
-
-2003-01-05 Pedro Abelleira Seco <pedroabelleira@yahoo.es>
-
- * gdk/Drawable.custom: Add Size get property
-
-2003-01-05 Duncan Mak <duncan@ximian.com>
-
- * pango/GlyphString.custom: Add some nicer overloads to avoid
- explicit passing in the string length.
-
-2003-01-05 Duncan Mak <duncan@ximian.com>
-
- * generator/GenBase.cs (AppendCustom): Add #region to code from
- .custom files.
-
- * generator/*Gen.cs: Add #region markers.
-
-2003-01-05 Duncan Mak <duncan@ximian.com>
-
- * sources/Gtk.metadata (TextIter.ForwardSearch): Add out param
- (TextIter.BackwardSearch): Add out param here too.
-
- * sources/Gdk.metadata (Drawable.GetSize): Add out param.
-
- * gtk/TextBuffer.custom (Clear): Add a new Clear method.
-
-2003-01-02 Alp Toker <alp@atoker.com>
-
- * api/gst-api.xml: Give int values to the ElementState enum, remove
- incorrectly generated SetInternalConnectionFunction and a duplicated
- type field
-
-2003-01-01 Alp Toker <alp@atoker.com>
-
- * glade/XML.custom: Determine name of GladeWidget if none specified
- * glade/GladeWidgetAttribute.cs: ditto
-
-2003-01-01 Rachel Hestilow <hestilow@ximian.com>
-
- * glade/XML.custom: New method BindFields.
- (Autoconnect): Call BindFields.
- * glade/GladeWidgetAttribute.cs: Added.
-
- * sample/GladeTest.cs: Test GladeWidgetAttribute.
-
-2002-12-25 Rodrigo Moya <rodrigo@ximian.com>
-
- * sources/gtk-sharp.sources: added libgphoto2.
-
- * api/gphoto-api.xml: added API file for libgphoto2.
-
- * gphoto/Makefile.in: added Makefile for building libgphoto2
- bindings.
-
- * makefile:
- * configure.in:
- * api/Makefile.in: added libgphoto2 to build.
-
-2002-12-25 Alp Toker <alp@atoker.com>
-
- * doc/makefile: Accept the RUNTIME parameter for platforms without
- /usr/bin/mono
- * sample/gconf/Makefile: ditto
-
-2002-12-24 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/ObjectGen.cs : generate protected GType ctors
- * generator/SymbolTable.cs : map GType to uint
- * glib/Object.cs : add GType ctor. add RegisterGType.
- * glue/type.c (gtksharp_register_type): new GType registrar
- * */*.custom : make GType params uints
- * sample/Subclass.cs : a simple type registration example
-
-2002-12-24 Alejandro Sánchez Acosta <raciel@gnome.org>
-
- * samples/tutorial/notebook: Added notebook sample.
-
-2002-12-23 Alp Toker <alp@atoker.com>
-
- * glib/Thread.cs: Add a class for thread awareness
- * gdk/Threads.cs: ditto
-
-2002-12-22 Kristian Rietveld <kris@gtk.org>
-
- * sources/Gnome.metadata: add out param rules for a bunch of Canvas
- methods (pointed out by Paul Duran).
-
- * api/gnome-xml.api: updated
-
-2002-12-22 Robert McQueen <robot101@debian.org>
-
- * makefile: when doing distclean, attempt distclean on all the
- C# subdirs too
- * gconf/Makefile.in: added distclean target to rm the Makefiles
- in the subdirs of gconf/
- * glue/Makefile.am: build libgtksharpglue as an unversioned
- module to avoid so -> so.0 -> so.0.0 symlink mess
- * */Makefile.in: call mkinstalldirs before installing any files
- so that subdirs can be installed seperately or in any sequence
- (eg binding dirs before native dirs)
-
-2002-12-20 Alp Toker <alp@atoker.com>
-
- * api/gst-api.xml: Make Gst# link to libgstreamer.so as per pkg-config
- --libs gstreamer
- * sources/gtk-sharp.sources: ditto
- * gst/Application.cs: ditto
- * gst/Makefile.in: Reference the newly-built glib-sharp
-
-2002-12-15 Alejandro Sánchez Acosta <raciel@gnome.org>
-
- * sample/tutorial/spinbutton/SpinButton.cs: Added new SpinButton sample for the GTK# tutorial.
- * sample/tutorial/Makefile: Added new SpinButton sample.
-
-
-2002-12-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
-
- * api/gdk-api.xml:
- * sources/Gdk.metadata: PixbufLoader.Pixbuf have to ref the new Pixbuf.
-
-2002-12-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
-
- * glib/Log.cs: removed the IntPtr argument and keep a reference to
- the delegate passed to unmanaged world as suggested by rachel.
-
-2002-12-11 Juli Mallett <jmallett@FreeBSD.org>
-
- * gconf/Makefile.in, sample/Makefile.in: Use $(MAKE) not "make."
- * parser/Makefile.in: Use CFLAGS and CPPFLAGS hints from configure,
- and the base dependency CFLAGS. Fixes case where iconv.h is outside
- of the compiler's default path.
-
-2002-12-10 Mike Kestner <mkestner@speakeasy.net>
-
- * released 0.6.
-
-2002-12-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
-
- * glib/Log.cs: New file. Wraps a few logging functions. Useful for
- debugging.
-
-2002-12-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
-
- * generator/Signal.cs: generate correct type name for EventArgs.
-
-2002-11-29 Duncan Mak <duncan@ximian.com>
-
- * gtk/TextBuffer.custom (Text): Add a new Text property.
-
-2002-11-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
-
- * sample/DbClient/GnomeDbClient.cs:
- * sample/DbClient/client.cs: make them build.
-
-2002-11-25 Alejandro Sánchez Acosta <raciel@es.gnu.org>
-
- * Added eventbox, rangewidget, scribble and packing sample widget.
- * Changed togglebutton sample.
-
-2002-11-21 Mike Kestner <mkestner@speakeasy.net>
-
- * api/*.xml : a few new attrs
- * generator/Parameters.cs : remove redundant ref keywords
- * gtk/ListStore.custom: overload SetColumnTypes
- * gtk/TreeStore.custom: overload SetColumnTypes
- * parser/GAPI/Metadata.pm : allow callback nodes at class level
- * sources/Gtk.metadata : hide ClipboardClearFunc and GetFunc,
- tag types param of SetColumnTypes as array, uncomment needs_ref
- tags on Widget methods to match the current api.xml file
-
-2002-11-19 Mike Kestner <mkestner@speakeasy.net>
-
- * gtk/Dialog.custom : bind another ctor
-
-2002-11-17 Radek Doulik <rodo@ximian.com>
-
- * glib/Value.cs: cast Typefundamentals.* to uint (GType is
- unsigned int), fix Value (GLib.Object) - use new GetGType method
-
- * glib/Object.cs: new GetGType method, returns _obj GType
-
-2002-11-17 Daniel Morgan <danmorg@sc.rr.com>
-
- * pango/Scale.cs: added file containing constants
- for text widgets needing Pango Scale Attribute
-
-2002-11-13 Vladimir Vukicevic <vladimir@pobox.com>
-
- * gtk/CanvasItem.custom: use base() to set Raw in constructor, so
- that the ref counting semantics get correctly set up
-
-2002-11-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
-
- * glade/XML.custom: converted from Latin1 to UTF8 to make the generator
- go on.
-
-2002-11-10 Vladimir Vukicevic <vladimir@pobox.com>
-
- * glib/Object.cs: add needs_ref boolean that controls whether
- we need to ref this object once we have a pointer to it or not.
- By default this is set to true -- constructors and other functions
- where we do own the object need to set this to false before setting
- the "Raw" property. Also added Unref and RefCount methods.
-
- * glue/object.c, glue/type.c: some utility functions for
- refcounting support
-
- * gdk/Pixbuf.custom: manually wrap a few functions so that
- the refcount ends up being correct at the end (need an extra Unref)
-
- * api/gdk-api.xml, sources/Gdk.metadata: metadata updates for
- hiding manually-wrapped Pixbuf stuff
-
-2002-11-10 Vladimir Vukicevic <vladimir@pobox.com>
-
- * generator/StructBase.cs: create a Zero static member for
- use when the IntPtr is NULL.
-
- * generator/SignalHandler.cs, generator/CallbackGen.cs: removed
- call to Initialize for structs
-
- * gtk/Clipboard.custom, gtk/ClipboardClearFunc.cs,
- gtk/ClipboardGetFunc.cs,
- gtk/GtkSharp.GtkClipboardClearFuncNative.cs,
- gtk/GtkSharp.ClipboardGetFuncNative.cs, SelectionData.custom:
- Hand-wrapped selection handling stuff, along with relevant
- signals and the like.
-
- * gnome/voidObjectAffineSVPintSignal.cs: removed Initialize
- for hand-wrapped signal
-
- * sample/GnomeHelloWorld.cs, sample/Size.cs: compare against
- .Zero instead of using IsNull
-
- * api/gtk-api.xml, sources/Gtk.metadata: metadata updates for
- hiding some manually-wrapped stuff
-
-2002-11-10 Alejandro Sánchez Acosta <raciel@es.gnu.org>
-
- * sample/tutorial: added some examples for the gtk# tutorial
-
-2002-11-06 Duncan Mak <duncan@ximian.com>
-
- * sample/Scribble.cs: Make it compile.
-
-2002-11-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
-
- * autogen.sh:
- * configure.in: added configuration summary.
-
-2002-11-03 Alp Toker <alp@atoker.com>
-
- * sources/gtk-sharp.sources: Update to support GStreamer 0.4.2
- * api/gst-api.xml : ditto
- * gst/Application.cs : ditto
-
-2002-11-01 Alp Toker <alp@atoker.com>
-
- * configure.in : Add GStreamer support
- * api/Makefile.in : ditto
- * api/gst-api.xml : ditto
- * sources/gtk-sharp.sources: ditto
- * gst/Makefile.in : ditto
- * gst/Application.cs : Gst initialization
- * sample/GstPlayer.cs : An example which uses the Gst binding
- * generator/Parameters.cs : Add 'fixed' keyword to name mangler
- * generator/StructBase.cs : ditto
- * generator/Parameters.cs : Fix Initialize() for set accessors
- * generator/Ctor.cs : ditto
- * generator/Method.cs : ditto
- * generator/SymbolTable.cs : Add gint64, guint64 to simple types
-
-2002-10-29 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/Signal.cs : Fix namespacing of Args.
-
-2002-10-27 Mike Kestner <mkestner@speakeasy.net>
-
- * configure.in : bump version to 0.6.
-
-2002-10-26 Mike Kestner <mkestner@speakeasy.net>
-
- * gconf/GConf.PropertyEditors/PropertyEditorColorPicker.cs : ns stuff
- * glade/XML.custom : more GnomeSharp namespace stuff
- * gnome/CanvasProxy.cs : ditto
- * sample/CanvasExample.cs : ditto
- * sample/Fifteen.cs : ditto
- * sample/GnomeHelloWorld.cs : ditto
-
-2002-10-26 Mike Kestner <mkestner@speakeasy.net>
-
- Much of this patch from Vlad, with substantial rework by mk.
- * */makefile.win32 : introduce mapdllnames.pl, api, and glue
- * generator/CallbackGen.cs : rework namespacing for csc compilation
- * generator/Parameters.cs : ditto
- * generator/Signal.cs : ditto
- * generator/SignalHandler.cs : ditto
- * glue/win32dll.c : new dll construction source
- * glib/Value.cs : new ushort ctor/cast operator
- * gtk/Table.custom : comment this out until we add a default ctor tag
- * gtk/ThreadNotify.cs : make ReadyEvent public
- * sources/Gdk.metadata : mark a Parse() param as ref
-
-2002-10-26 Ettore Perazzoli <ettore@ximian.com>
-
- * glib/Object.cs: Changed so that Objects is a hash of
- WeakReferences instead of hashing the real objects. Without this
- change, GObjects were never collected.
- (Raw, set): Put a WeakReference to the object in Objects.
- (Object.GetObject): Get the WeakReference from Objects, and from
- there the actual object.
- (Object.DisposeNative): Remove the Raw pointer from Objects.
-
-2002-10-26 Mike Kestner <mkestner@speakeasy.net>
-
- * api/*.xml : get libgda and libgnomedb metadata setup
- * gconf/*/Makefile.in : patch from MauricioC for -L's and /r's
- * gnomedb/Makefile.in : patch from MauricioC for -L's and /r's
- * generator/ClassBase.cs (ctor): mangle hash names for sigs and props
- * generator/Parameters.cs (MangleName): handle params, null, and ref
- * generator/Parser.cs (ParseNamespace): ignore "hidden" types
- * generator/StructBase.cs (MangleName): handle params, null, and ref
- * glib/Object.cs (Equals): kill, also kill == and !=
- * sources/Gda.metadata : new, make Gda behave without hand edits
- * sources/GnomeDb.metadata : ditto
-
-2002-10-21 Vladimir Vukicevic <vladimir@pobox.com>
-
- * glade/XML.custom: add SetCustomHandler() wrapper
-
-2002-10-20 Miguel de Icaza <miguel@ximian.com>
-
- * glib/Object.cs: Avoid recursive calls with the previous operator
- != and operator ==
-
-2002-10-19 Duncan Mak <duncan@ximian.com>
-
- * glib/Source.cs: Added.
-
-2002-10-19 Miguel de Icaza <miguel@ximian.com>
-
- * glib/Object.cs: Added operator != and operator == overloads.
-
-2002-10-19 Rachel Hestilow <hestilow@ximian.com>
-
- * gconf, sample/gconf: Added.
-
- * glue/combo.c: This was never added, add it now.
-
- * configure.in, makefile, sample/Makefile.in: Build new
- gconf bindings if gnome is enabled.
-
-2002-10-14 Mike Kestner <mkestner@speakeasy.net>
-
- * glib/Object.cs (GetObject): remove (int) cast
-
-2002-10-11 Martin Baulig <martin@gnome.org>
-
- * gtk/Combo.custom: New file.
- (Combo.SetPopdownStrings): New method to set the popdown strings
- from a string array.
-
-2002-10-11 Martin Baulig <martin@gnome.org>
-
- * glib/ListBase.cs (ListBase.Append): New public method.
- (ListBase.Prepend): New public method.
-
-2002-10-11 Martin Baulig <martin@gnome.org>
-
- * glib/FileUtils.cs: New file. Wrapped g_file_get_contents() here.
-
-2002-10-10 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/CallbackGen.cs : some fixes
- * generator/Parameters.cs (CreateSignature): handle void params
-
-2002-10-10 Miguel de Icaza <miguel@ximian.com>
-
- * gtk/ThreadNotify.cs: Avoid multiple notifications.
-
-2002-10-09 Miguel de Icaza <miguel@ximian.com>
-
- * glue/adjustment.c (gtksharp_gtk_adjustment_get_page_size): Added
- the glue.
-
- * gtk/Adjustment.custom: Added some more methods
-
-2002-10-08 Kristian Rietveld <kris@gtk.org>
-
- (So Miguel told me just to go ahead and commit -kris)
-
- * gtk/TreeSelection.custom: new file, defines a working
- GetSelected method (GetSelected is a bit tricky function).
-
- * generator/InterfaceGen.cs (Generate): also call AppendCustom
-
- * sources/Gtk.metadata: hide the autogenerated
- Gtk.TreeSelection.GetSelected method.
-
-2002-10-08 Miguel de Icaza <miguel@ximian.com>
-
- * gdk/Point.custom: Use (x,y) instead.
-
- * gdk/Color.custom: Use the X rgb color format specification.
-
- * gdk/Rectangle.custom: Use the X geometry format for Rectangles.
-
-2002-10-07 Vladimir Vukicevic <vladimir@pobox.com>
-
- * glue/style.c, gtk/Style.custom: handle
- getting GC's and colors correctly -- it's not possible
- to marshal arrays from C-land to mono correctly,
- so indexed accessors have to be used.
-
-2002-10-08 Duncan Mak <duncan@ximian.com>
-
- * gdk/Color.custom:
- * gdk/DeviceAxis.custom:
- * gdk/Point.custom:
- * gdk/Rectangle.custom: Committed ToString patches contributed by
- Jasper van Putten <Jaspervp@gmx.net>
-
-2002-10-05 Vladimir Vukicevic <vladimir@pobox.com>
-
- * glib/GException.cs: g_clear_error takes
- a GError **, not a GError *. Added refs to get the **.
-
-2002-10-04 Vladimir Vukicevic <vladimir@pobox.com>
-
- * glib/ObjectManager.cs, glue/type.c: If there isn't
- an exact match for a C GObject class (i.e. BluecurveStyle),
- walk up the gobject type hierarchy until we find a type
- that we do have a wrapper for, and return that. This means
- that you'll always, worst-case, end up with a GObject.
-
- * glib/Value.cs, glue/value.c: Added default constructor
- to GLib.Value() that creates a new value with a type of
- INVALID, and changed the glue function to not call
- gtk_type_init if INVALID is passed.
-
-2002-10-02 Vladimir Vukicevic <vladimir@pobox.com>
-
- * gtk/TreeView.custom: added TreeView Handle as argument
- to set_model in Model property
-
-2002-09-29 Rachel Hestilow <hestilow@ximian.com>
-
- * glue/canvas-proxy.c (update), glue/canvas-proxy-marshal.list:
- Marshal the array as a pointer for now.
-
- * gnome/voidObjectAffineSVPintSignal.cs: Added.
- * gnome/CanvasProxy.cs (Update): Use a custom signal handler.
-
-2002-09-23 Miguel de Icaza <miguel@ximian.com>
-
- * gtk/Style.custom: bind it.
-
- * gtk/Widget.custom: bind it.
-
- * glue/widget.c: Wrapper to fetch a GdkWindow from a widget.
-
- * glue/style.c: wrapper routines for getting/setting the thickness
- on a GtkStyle.
-
-2002-09-21 Miguel de Icaza <miguel@ximian.com>
-
- * gtk/TreeView.custom: Add Model.set to the TreeView
-
-2002-09-21 Rachel Hestilow <hestilow@ximian.com>
-
- * parser/gapi2xml.pl: Adjust enum regex to allow negative values.
-
-2002-09-16 Martin Baulig <martin@gnome.org>
-
- * gnome/Modules.cs (Module): Make this class public.
-
- * sample/CanvasExample.cs: Insert a missing `break' in a switch
- section to make this compile.
-
- * sample/Scribble.cs: Added missing casts from EventMask to int.
-
-2002-09-15 Ricardo Fernandez Pascual <ric@users.sourceforge.net>
-
- * glade/XML.custom: Added a constructor to read the glade file
- from a stream and to read it from a resource in an assembly.
- * sample/Makefile.in
- * sample/GladeTest.cs: Embed the glade file as a resource and use
- the new constructor.
-
-2002-09-13 Ricardo Fernandez Pascual <ric@users.sourceforge.net>
-
- * glade/HandlerNotFoundExeception.cs: Added.
- * glade/Makefile.in
- * glade/XML.custom: Support for autoconnecting signals using
- reflection.
- * glib/SignalAttribute.cs: Added.
- * generator/Signal.cs: Mark events generated from glib signals
- with the "Signal" attribute.
- * sample/GladeTest.cs
- * sample/Makefile.in
- * sample/test.glade: Test of signal autoconnection.
-
-2002-09-12 Rachel Hestilow <hestilow@ximian.com>
-
- * sources/Gtk.metadata: Set null_ok on the callback argument
- to Menu.Popup.
-
- * generator/Parameters.cs: Handle null_ok properly for callback
- arguments.
-
-2002-09-11 Miguel de Icaza <miguel@ximian.com>
-
- * glib/Object.cs (DisposeNative): Call GC.SuppressFinalize, and
- set the obj to null.
-
-2002-09-11 Rachel Hestilow <hestilow@ximian.com>
-
- * glib/Object.cs (Ref): Added.
-
- * gtk/Object.custom (Ref): Overload. Note that we were reffed.
- (DisposeNative): Unref if we were explicitly reffed.
-
- * generator/Method.cs: Call Ref if needs_ret is set.
- * generator/StructBase.cs: Call Ref on all object accessors.
-
- * glue/style.c: Ref returned GCs.
-
- * sources/Gtk.metadata: Set needs_ret on various gdk-related
- accessors in GtkWidget. Hide Ref/Unref methods on Widget and
- RcStyle as these ought to be deprecated anyway.
-
-2002-09-11 Rodrigo Moya <rodrigo@gnome-db.org>
-
- * gnomedb/Makefile.in:
- * gnomedb/Application.cs: added class for libgnomedb initialization.
-
- * sample/DbClient/GnomeDbClient.cs: new test file for libgnomedb.
-
-2002-09-08 Rodrigo Moya <rodrigo@gnome-db.org>
-
- * makefile:
- * configure.in:
- * sources/gtk-sharp.sources: added needed stuff for libgnomedb.
-
- * gnomedb/Makefile.in:
- * api/Makefile.in:
- * api/gnomedb-api.xml: new files for libgnomedb API.
-
-2002-09-07 Rachel Hestilow <hestilow@ximian.com>
-
- * parser/gapi2xml.pl: Add support for "fake struct" opaque types.
- * generator/StructBase.cs: Generate wrapper fields for opaque
- fields as well as pointer fields.
- * api/gdk-symbols.xml: Remove GdkAtom as it is now wrapped.
-
-2002-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
-
- * sample/DbClient/client.cs: updated to make it compile.
-
-2002-09-04 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/ObjectGen.cs : generate dtors.
- * glib/Object.cs : Implement IDisposable. Add a new DisposeNative
- method. Implement default dtor.
- * glue/object.c : new gtksharp_object_unref_if_floating method.
- * gtk/Object.custom : override DisposeNative to check float bit.
-
-2002-09-03 Juli Mallett <jmallett@FreeBSD.org>
-
- * parser/Makefile.in: Use $(CC) instead of 'cc'.
-
-2002-09-01 Rodrigo Moya <rodrigo@ximian.com>
-
- * gda/Application.cs: new class for libgda initialization and event
- loop management.
-
- * gda/Makefile.in: added new file as a dependency.
-
-2002-09-01 Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
-
- * glib/ListBase.cs: fixed compilation (the base class must be at least
- as accesible as the derived ones).
-
-2002-08-31 Rodrigo Moya <rodrigo@ximian.com>
-
- * api/gda-api.xml: new file for the libgda API.
-
- * gda/*: added libgda bindings.
-
- * sources/README: updated requirements.
-
-2002-08-31 Rachel Hestilow <hestilow@ximian.com>
-
- Proper GList, GSList support. Read-only for now.
-
- * glue/list.c: Added.
- * glue/Makefile.am: Add list.c
- * glue/type.c: Add function gtksharp_is_object.
-
- * glib/ListBase.cs, List.cs: Added.
- * glib/SList.cs: Inherit from ListBase.
- * glib/Object.cs: Add static method "IsObject".
-
- * generator/Method.cs: Pass on element_type to constructor
- if specified.
- * generator/SymbolTable.cs: Move GList to manual types.
-
- * sample/GladeViewer.cs: Remove list hacks.
-
- * sources/Gnome.metadata: Specify element types for
- CanvasPathDef.Split and IconList.GetSelection. Rename
- CanvasPathDef *to methods to properly capitalized *To.
- * sources/Gtk.metadata: Hide Widget.ListAccelClosures until
- GClosure is handled properly.
- * sources/Pango.metadata: Added.
-
- * sample/test/TestToolbar.cs: Compile with recent delegate changes.
-
-2002-08-31 Rachel Hestilow <hestilow@ximian.com>
-
- * glib/Idle.cs: Added.
- * gtk/Application.cs: Add EventsPending, RunIteration.
-
- * sample/TreeViewDemo.cs: Add a status dialog while
- populating tree.
-
-2002-08-31 Rachel Hestilow <hestilow@ximian.com>
-
- * generator/Method.cs: Re-enable "if null then new" behavior
- for Opaques.
-
-2002-08-29 Rachel Hestilow <hestilow@ximian.com>
-
- * glib/DelegateWrapper.cs: Forgot to add this.
-
-2002-08-28 Rachel Hestilow <hestilow@ximian.com>
-
- * generator/CallbackGen.cs: Generate wrappers to map
- from managed delegates to native ones.
- * generator/Ctor.cs: Call parms.Initialize for the static case.
- * generator/Parameters.cs: Add "CType" property. Append []
- to CSType if necessary. Add "HideData" property if a container
- wishes to hide the user_data (used in callbacks).
- (Initialize): Add case for callback.
- * generator/SymbolTable.cs: Add size_t.
-
- * glue/program.c: string[] marshalling is no longer broken,
- remove hack.
-
- * sources/Gtk.metadata: Disable
- GtkColorSelection.SetChangePaletteHook and
- GtkTreeView.GetSearchEqualFunc for now, they return delegates and
- we don't support native->managed delegate mapping yet.
-
-2002-08-28 Joe Shaw <joe@assbarn.com>
-
- * makefile: Add the art directory back in; fixes the build.
-
-2002-08-26 Rachel Hestilow <hestilow@ximian.com>
-
- * sources/Gtk.metadata: Add null-ok for Menu.Popup.
-
-2002-08-25 Juli Mallett <jmallett@FreeBSD.org>
-
- * makefile: Fix recursive invocation of make(1) to use
- the variable MAKE, to use the same utility that was
- responsible for the invocation of the initial build.
-
-2002-08-25 Miguel de Icaza <miguel@ximian.com>
-
- * gtk/TextBuffer.custom: Added SetText with a single argumnet.
-
- * gtk/Table.custom: Added empty constructor. GtkTables
- automatically grow.
-
-2002-08-23 Rachel Hestilow <hestilow@ximian.com>
-
- * glue/Makefile.am: Fix # terminators.
-
-2002-08-23 Rachel Hestilow <hestilow@ximian.com>
-
- * Applied patch from Robot101 for maintainer-clean, etc.
- Needed for packaging.
-
-2002-08-20 Rachel Hestilow <hestilow@ximian.com>
-
- * generator/SymbolTable.cs (Trim): Work around "void*".
- Libart has a lovely API...
-
-2002-08-22 Mike Kestner <mkestner@speakeasy.net>
-
- * glib/IWrapper.cs : remove set_Handle
- * glib/Object.cs : ditto
- * glib/Opaque.cs : ditto
-
-2002-08-22 Mike Kestner <mkestner@speakeasy.net>
-
- * glib/Makefile.in : rm -rf generated on make clean target
- * gnome/CanvasProxy.cs : add missing Signals hash.
-
-2002-08-20 Rachel Hestilow <hestilow@ximian.com>
-
- Ditto for generator and api.
-
-2002-08-20 Rachel Hestilow <hestilow@ximian.com>
-
- * parser/makefile: Rename to Makefile.in, change prefix to @prefix@.
- * configure.in: generate parser/Makefile.
-
-2002-08-20 Rachel Hestilow <hestilow@ximian.com>
-
- * makefile: Add parser to build (for install only)
- * parser/makefile: Add distclean target.
-
- * parser/gapi.pl: Forgot to add this.
- * api/: Replace APIs with correctly generated ones.
-
-2002-08-20 Rachel Hestilow <hestilow@ximian.com>
-
- * README.generator: Added docs on using the generator.
-
-2002-08-19 Rachel Hestilow <hestilow@ximian.com>
-
- * art/Makefile.in (clean): Change to avoid bugging out on generated/CVS.
-
- * glib/ObjectManager.cs: Added. Used to be auto-generated, but
- now it can infer names, and relies on per-namespace ObjectManager
- classes to inform it of oddly-named classes.
-
- * generator/IGeneratable.cs, GenBase.cs: New "DoGenerate" property.
- * generator/*Gen.cs: Honor DoGenerate.
- * generator/CodeGenerator.cs: Support including dependency files
- which will not be generated.
- * generator/ObjectGen.cs: Generate mapping file per-namespace, as one
- that calls back to the one in glib. Only generate if the name does
- not follow the normal conventions, otherwise, GtkSharp.ObjectManager
- can infer the name.
- * generator/Parser.cs: Accept 'generate' flag to pass on to the
- IGeneratables. Parse a new toplevel element, "symbol", which adds
- a type to the SymbolTable (instead of hard-coding it).
- * generator/SignalHandler.cs: Do not optimize signal handler creation,
- instead creating them in their own namespaces. Do not generate
- if the calling Signal told us not to.
- * generator/Signal.cs: Do not generate handlers if container's DoGenerate
- is false. Adjust to the marshaller name being in a sub-namespace.
- * generator/SymbolTable.cs (AddSimpleType, AddManualType): Used
- to add simple and manually wrapped types at runtime instead of
- compile-time.
- (FromNative): Remove hard-coded cases for manually wrapped types, use
- a generic case instead.
-
- * api: Added. Move api files and generation targets here.
- * source: Added. Move source parsing here.
-
- * generator/makefile: Move actual generation to api/.
- * glib/Makefile.in: Remove generated/* target.
- * glue/Makefile.am: Fix to include canvas-marshal. Move canvas stuff
- to GNOME target.
-
- * gnome/CanvasProxy.cs: Update to work with SignalHandlers being
- namespace-specific.
-
- * parser/Metadata.pm: Moved to GAPI/Metadata.pm, renamed, etc.
- * parser/gapi2xml.pl: Use GAPI::Metadata.
- * parser/makefile: Install scripts, remove source parse build target.
- Rename formatXML to gapi_format_xml.
-
-2002-08-17 Miguel de Icaza <miguel@ximian.com>
-
- * gtk/ThreadNotify.cs: New file, used to notify invoke code in the
- main Gtk thread.
-
-2002-08-17 Duncan Mak <duncan@ximian.com>
-
- * gnome/CanvasProxy.cs:
- * gnome/GtkSharp.BoundsHandler.cs:
- * gnome/GtkSharp.DrawHandler.cs:
- * gnome/GtkSharp.PointHandler.cs:
- * gnome/GtkSharp.RenderHandler.cs:
- * gnome/GtkSharp.UpdateHandler.cs: C# glue for subclassing CanvasItems.
-
- * glue/canvas-proxy-marshal.c:
- * glue/canvas-proxy-marshal.h:
- * glue/canvas-proxy-marshal.list:
- * glue/canvas-proxy.c: Added the coverage signal.
-
-2002-08-17 Duncan Mak <duncan@ximian.com>
-
- * glue/canvas-proxy.c:
- * glue/canvas-proxy.h: New files. Glue for subclassing CanvasItem
- from C#.
-
- * glue/canvas-proxy-marshal.c:
- * glue/canvas-proxy-marshal.h:
- * glue/canvas-proxy-marshal.list: Added to handle marshaling
- signals used by CanvasProxy.
-
-2002-08-15 Mike Kestner <mkestner@speakeasy.net>
-
- * sample/Makefile.in : add some art-sharp refs
-
-2002-08-11 Miguel de Icaza <miguel@ximian.com>
-
- * glub/adjustment.c: C-side of the Adjustment glue.
-
- * gtk/Adjustment.custom: Add new SetBounds function that allows us
- to change the adjustment after it has been created.
-
-2002-08-15 Duncan Mak <duncan@ximian.com>
-
- * generator/gtkapi.xml: New Libart stuff.
-
- * parser/build.pl:
- * gnome/Makefile.in: Added reference to atk-sharp.dll
-
- * generator/Parameters.cs (MangleName): Added cases for 'in' and 'out'.
-
-2002-08-13 Joe Shaw <joe@assbarn.com>
-
- * configure.in: Check for libgnomecanvas.
-
- * gtk/ColorSelectionDialog.custom: Create a button subclass which
- contains a reference to the parent ColorSelectionDialog. Modify
- properties to return this subclass instead of a regular
- Gtk.Button.
-
- * gtk/FileSelection.custom: Ditto.
-
- * sample/test/TestFileSelection.cs (file_selection_ok):
- Demonstrate the button subclass by destroying the parent dialog
- when the ok button is clicked.
-
-2002-08-12 Rachel Hestilow <hestilow@ximian.com>
-
- [ Patch from Ricardo Fernandez Pascual <rfp1@ono.com> for
- libglade support (slightly modified) ]
-
- * configure.in: Conditionally compile glade support.
- * makefile: Add glade directory.
- * glade/: Added.
- * sample/makefile.in: Add (conditional) glade example.
- * sample/GladeViewer.cs: Added.
- * glue/gladexml.c: Added.
- * glue/Makefile.am: Updated.
-
- * parser/build.pl: Parse libglade-2.0.0.
- * parser/README: Update requirements.
-
-2002-08-12 Rachel Hestilow <hestilow@ximian.com>
-
- * parser/gapi_pp.pl: Handle "typedef struct {...}" construct.
-
- * glue/canvaspoints.c: Added.
- * glue/Makefile.am: Updated.
-
- * gnome/CanvasPoints.custom: Added. (Doesn't seem to work right yet,
- looking into this.)
-
-2002-08-10 Rachel Hestilow <hestilow@ximian.com>
-
- * sample/TreeViewDemo.cs (Main, DeleteCB): Update to use correct
- event handler.
-
-2002-08-09 Kristian Rietveld <kris@gtk.org>
-
- * parser/Gtk.metadata: add a bunch of out arg rules, add
- a vararg rule for the ListStore constructor, change method names of
- TreeModel's signal emission methods, remove opaque rule of
- GtkTreeIter, remove null_ok rules of TreeModel.IterNChildren
- and TreeModel.IterNthChild.
-
- * parser/Metadata.pm: add some code to be able to filter on
- parameter names.
-
- * generator/Method.cs: a method with accessor args and a non-void
- return value cannot be written as property.
-
- * sample/Makefile.in, sample/TreeViewDemo.cs: add a simple TreeView
- demo app.
-
- * gtk/ListStore.custom, gtk/TreeModel.custom, gtk/TreeModelSort.custom,
- gtk/TreeStore.custom, gtk/TreeView.custom: customizations.
-
-2002-08-09 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/ObjectGen.cs (GenerateMapper): guard against IntPtr.Zero
-
-2002-08-09 Duncan Mak <duncan@ximian.com>
-
- * sample/Fifteen.cs (Position): Made it a property instead of a
- public field.
-
- * sample/pixmaps/gnome-color-browser.png: Icon for Fifteen#.
-
-2002-08-09 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/SymbolTable.cs : make GLib.Value a manually_wrapped_type
-
-2002-08-08 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/Property.cs : getter usage fix
-
-2002-08-08 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/Method.cs : s/GetType/GetGType. Don't generated static
- methods for interfaces.
- * glib/Object.cs : add GType prop
- * gnome/*.custom : s/Type/GType
- * parser/Gtk.metadata : rule to make TreeIter opaque
- * parser/gapi2xml.pl : handle interface methods properly
- * sample/Fifteen.cs : s/Type/GType
-
-2002-08-08 Mike Kestner <mkestner@speakeasy.net>
-
- * gdk/Event.cs : derived from Boxed, not Object.
- * generator/SymbolTable.cs : fixes for Gdk.Events
-
-2002-08-07 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/CodeGenerator.cs : call ObjectGen.GenerateMapper
- * generator/Method.cs : Remove the if null workaround
- * generator/ObjectGen.cs : build a hash of object types.
- (GenerateMapper): generate the GtkSharp.ObjectManager class.
- * glib/Object.cs : use ObjectManager.CreateObject.
- * glue/type.c : helper for typename lookup.
-
-2002-08-07 Duncan Mak <duncan@ximian.com>
-
- * sample/Fifteen.cs: Fixed scramble. The whole thing works now.
-
-2002-08-06 Rachel Hestilow <hestilow@ximian.com>
-
- * generator/SignalHandler.cs: Handle null arguments and return values.
-
- * sample/Makefile.in: Add fifteen game.
-
-2002-08-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
-
- * sample/GnomeHelloWorld.cs: use DeleteEventHandler.
-
-2002-08-07 Duncan Mak <duncan@ximian.com>
-
- * sample/Fifteen.cs: Fixed movement logic. It works now. Added
- 'debug' flag. Run 'mono ./Fifteen.exe debug' to see movement info.
-
-2002-08-07 Duncan Mak <duncan@ximian.com>
-
- * sample/Fifteen.cs: Added new canvas example.
-
-2002-08-06 Duncan Mak <duncan@ximian.com>
-
- * glue/canvasitem.c:
- * gnome/CanvasItem.custom: Added accessor to get the 'canvas' field.
-
- * sample/CanvasExample.cs: Removed extra methods.
-
-2002-08-05 Rachel Hestilow <hestilow@ximian.com>
-
- * makefile, */Makefile.in: Packaging fix from
- Robert McQueen (a.k.a. Robot101).
-
-2002-08-05 Rachel Hestilow <hestilow@ximian.com>
-
- * gnome/Canvas*.custom, IconTextItem.custom: Added.
-
- * sample/CanvasExample.cs: Added.
- * sample/Makefile.in: Build canvas example in gnome build.
-
-2002-08-05 Rachel Hestilow <hestilow@ximian.com>
-
- * parser/Gnome.metadata: Patch from duncan for
- bug #28553 (canvas item event handler rename).
-
-2002-08-04 Joe Shaw <joe@assbarn.com>
-
- * configure.in: We actually need libgnomeui, not libgnome.
-
-2002-08-04 Mike Kestner <mkestner@speakeasy.net>
-
- Tagged for 0.3 and updated configure.in to 0.4.
- Back open for commits.
-
-2002-08-03 Mike Kestner <mkestner@speakeasy.net>
-
- Freezing cvs for 0.3 release. Please no commits until the release.
-
-2002-08-03 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/Method.cs : Added IsGetter, IsSetter, ReturnType. Made
- GenerateImport, GenerateBody public.
- * generator/Parameters.cs : Added Parameter::MarshalType
- * generator/Property.cs : Added logic to use methods instead of text
- properties wherever possible.
-
-2002-08-03 Rachel Hestilow <hestilow@ximian.com>
-
- * generator/Method.cs: Support libname overrides. Call parms.Finish.
- * generator/Parameters.cs: New method parms.Finish. Generate a temporary
- holder variable for enum out parameters.
- * generator/Property.cs: Pass a boolean to EnumWrapper indicating.
- if these are flags.
- * generator/StructBase.cs: Disable array marshalling (it is
- broken in mono.)
- * generator/SymbolTable.cs: Add methods IsEnumFlags.
-
- * glib/EnumWrapper.cs: New bool "flags".
- * glib/Value.cs: Call flags variant on GValue for enum props, if needed.
-
- * glue/Makefile.am, glue/style.c, glue/widget.c: Add widget
- and style field accessor methods.
-
- * gtk/Style.custom, Widget.custom: Added.
-
- * parser/README: Update requirements (needed for pixbuf drawable hack)
- * parser/Gdk.metadata: Fix library for pixbuf methods in gdk.
- Add Window.GetPointer "out" parameters.
- * parser/gapi2xml.pl: Remap gdk_draw_* methods to Drawable.
-
- * sample/Makefile.in: Add size and scribble samples.
- * sample/Scribble.cs: Added.
-
-2002-08-02 Rachel Hestilow <hestilow@ximian.com>
-
- [ Mike, this is everything I wanted in for the release. ]
-
- * generator/StructBase.cs: Generate field accessors for wrapped
- types (opaque, object, and structs/boxed). Bitfields, unions, and
- arrays are still unsupported for accessors, and are probably marshalling
- incorrectly. But this is enough to get events working (see example
- in sample/GnomeHelloWorld.cs).
-
- * parser/Metadata.pm: Support a "delete" directive, and set metadata
- on structs and boxed (previously was only checking objects and interfaces).
-
- * parser/Gdk.metadata: Delete bogus entries GdkWindowObject and
- GdkPixmapObject (more evil drawable stuff.)
-
- * sample/GnomeHelloWorld.cs: Show an example of how to use marshalled
- events, in our selection callback.
-
-2002-07-31 Rachel Hestilow <hestilow@ximian.com>
-
- * generator/StructBase.cs (GetFieldInfo): Generate strings correctly.
- Also, delegates are not marshalling correctly right now, change those
- to IntPtr.
-
- * generator/SymbolTable.cs: New method IsCallback.
-
- * sample/GnomeHelloWorld.cs: Use Gnome.App and stock menu items.
- Use the new event handlers.
-
-2002-07-30 Rachel Hestilow <hestilow@ximian.com>
-
- * generator/ClassBase.cs: Change hasDefaultConstructor to protected,
- adjust now that it is an attr and not a subnode. Also add virtual
- property AssignToName (for ctors).
-
- * generator/Ctor.cs: Add property ForceStatic.
- (Generate): Optimize return code a bit for the static case.
-
- * generator/Method.cs: Assign to a "raw_ret" pointer before calling
- FromNativeReturn.
-
- * generator/Parameters.cs: Change "out ref" to "out", not "ref".
-
- * generator/Property.cs: Fix to work correctly with all object and
- struct types (mostly just some if-cases added).
-
- * generator/SignalHandler.cs: Remove args_type and argfields (unused).
- (Generate): Initialize struct if necessary.
-
- * generator/StructBase.cs: Massive reworking to support methods, ctors,
- etc.
-
- * generator/SymbolTable.cs: Add GdkAtom and gconstpointer simple types.
-
- * glib/Boxed.cs: Accept both IntPtr and object ctors. Add access for both.
-
- * glib/Opaque.cs: Fix copy/pasted copyright notice, remove data and event
- fields. Fix docs.
-
- * glib/Value.cs: Work correctly with boxed properties.
-
- * gnome/Modules.cs: Use new struct ctors.
-
- * gnome/Program.custom: Remove Get, this is being generated now.
-
- * parser/Gdk.metadata: Fix the drawable classes to inherit correctly.
-
- * parser/Metadata.pm: Change per-class attributes to actually be
- attributes.
-
- * parser/Gtk.metadata: Add a dummy attribute value for disabledefaultctor.
-
- * parser/gapi2xml.pl: Add hacks for the (broken) Drawable and Bitmap
- typedefs.
-
- * sample/test/TestColorSelection.cs: Display color string in hex format,
- update to use IsNull instead of == null, and size dialog to look pretty.
-
- * sample/Size.cs: Added.
-
-2002-07-25 Rachel Hestilow <hestilow@ximian.com>
-
- [about 60% of the marshalling patch that I lost.
- The rest to come tomorrow.]
-
- * generator/BoxedGen.cs, StructGen.cs: Move most of this to StructBase,
- delete large chunks duplicated from ClassBase.
-
- * generator/IGeneratable.cs: Add MarshalReturnType, FromNativeReturn.
-
- * generator/ClassBase.cs: Move ctor stuff here. Add a CallByName
- overload with no parameters for the "self" reference.
-
- * generator/EnumGen.cs, CallbackGen.cs: Implement new MarshalReturnType,
- FromNativeReturn.
-
- * generator/Method.cs: Use container_type.MarshalType, CallByName, and
- SymbolTable.FromNativeReturn when generating call and import sigs.
-
- * generator/OpaqueGen.cs: Added.
-
- * generator/Property.cs: Handle boxed and opaques differently.
-
- * generator/SymbolTable.cs: Update for the opaque stuff and the new Return
- methods. Also change GetClassGen to simply call the as operator.
-
- * glib/Boxed.cs: Update for struct usage -- this is now a wrapper for
- the purposes of using with Value.
-
- * glib/Opaque.cs: Added. New base class for opaque structs.
-
- * glue/textiter.c, gtk/TextIter.custom: Remove.
-
- * gnome/Program.cs: Update for new struct marshalling.
-
- * parser/Metadata.pm: Use our own getChildrenByTagName.
-
- * parser/README: Update for new requirements (was out of sync with
- build.pl)
-
- * parser/gapi2xml.pl: Hide struct like const in field elements.
-
- * parser/gapi_pp.pl: Handle embedded union fields (poorly).
-
- * sample/test/TestColorSelection.cs: Comment out null color tests
- for now.
-
-2002-07-24 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/SignalHandler.cs : use ref parameters in signal cb's.
-
-2002-07-24 Alp Toker <alp@atoker.com>
-
- * gtk/Makefile.in etc. : reference the newly compiled assemblies
- instead of those already installed on the system
-
-2002-07-23 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/Method.cs : implement static method generation.
- * parser/Gnome.metadata : map AppBar::ClearPrompt signal collision.
- * parser/Gtk.metadata : map IMContext::DeleteSurrounding collision.
- * parser/gapi2xml.pl : mark shared methods in the XML.
-
-2002-07-20 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/SignalHandler.cs : pring unexpected key in exception.
-
-2002-07-20 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/Method.cs : beef up !Validate warnings
- * generator/ObjectGen.cs : beef up !Validate warnings
- * generator/Parameters.cs (Validate): fail on ellipsis parm
- * parser/gapi2xml.pl : Handle more opaque types properly
-
-2002-07-19 Duncan Mak <duncan@ximian.com>
-
- * gtk/Paned.custom:
- * glue/paned.c: Glue code for getting child1 and child2 out from a Gtk.Paned.
-
- * glue/Makefile.am: Add paned.c
-
-2002-07-19 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/StructGen.cs : comment out GenField. It's broke.
- * sample/ButtonApp.cs : revert the EventAny WriteLine.
-
-2002-07-19 Mike Kestner <mkestner@speakeasy.net>
-
- * parser/gapi2xml.pl : mark privately defined structs opaque.
-
-2002-07-18 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/StructBase.cs : use GetMarshalType for field gen.
- * sample/ButtonApp.cs : WriteLine the Gdk.EventAny in DeleteEvent.
-
-2002-07-18 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/StructGen.cs : make them public structs, not classes.
- * parser/build.pl : step up to the g2final tarballs.
- * parser/gapi2xml.pl : suppress *Private struct types. Mark
- ellipsis terminated param lists.
-
-2002-07-18 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/StructBase.cs : Mangle field names.
- * generator/StructGen.cs : uncomment GenField.
-
-2002-07-18 Duncan Mak <duncan@ximian.com>
-
- * parser/Gtk.metadata: Mark gtk_radio_menu_item_new_with_label,
- gtk_radio_button_new_with_label, gtk_radio_button_new and
- gtk_radio_button_new_with_mnemonic with null_ok flags.
-
-2002-07-17 Radek Doulik <rodo@ximian.com>
-
- * gtk/ScrolledWindow.custom: new file with ScrolledWindow custom
- default constructor
- use this (null, null)
-
- * parser/Metadata.pm: addClassData subroutine to add
- <disabledefaultconstructor/>
-
- * parser/Gtk.metadata: disable default constructor for
- ScrolledWindow
-
- * generator/ObjectGen.cs: added hasDefaultConstructor flag, dont
- generate default protected empty constructor if
- hasDefaultConstructor is false, it will be provided by .custom
- file
-
- * generator/makefile (RUNTIME): use RUNTIME variable
-
-2002-07-17 Rachel Hestilow <hestilow@ximian.com>
-
- * parser/Gtk.metadata: Tag MenuItem.SetSubmenu as null-ok.
-
-2002-07-17 Rachel Hestilow <hestilow@ximian.com>
-
- * generator/Method.cs: Honor array in return type.
-
- * parser/Gtk.metadata: Tag FileSelection.GetSelections as array.
- * parser/Metadata.pm: Add "return" target.
-
- * parser/gtkhtml, parser/README: Add gtkhtml-stream.[ch].
- Needed for url-requested signal. The actual wrapper for this
- compiles but is badly borked, it will probably need a lot of love.
-
-2002-07-16 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/ClassBase.cs : make MarshalType virtual.
- * generator/Parameters.cs : add Parameter class and Indexer.
- * generator/Signal.cs : Now use Parameters.
- (GetHandlerName): New abstraction of name handling.
- (GenerateDecls): use GetHandlerName.
- (GenComments): make private.
- (GenHandler): New. Generate custom event handlers and args.
- (Generate): use GenHandler. Pass args type to SignalHandler.
- * generate/SignalHandler.cs : store args type. Generate handler
- dependent args and use MulticastDelegate.DynamicInvoke.
- * generate/StructGen.cs : override MarshalType.
- * glib/SignalCallback.cs : store a MulticastDelegate and args type
- * sample/*.cs : use new DeleteEventHandler
-
-2002-07-13 Rachel Hestilow <hestilow@ximian.com>
-
- * generator/Parameters.cs: Allow nulls if null_ok set.
- * generator/SymbolTable.cs: Add method IsStruct.
- * parser/Gtk.metadata, Gdk.metadata, Gnome.metadata: Merge in
- null_ok from *.defs. This is probably incomplete though, I've
- already found one method that wasn't listed.
-
- * sample/GnomeHelloWorld.cs: Remove IntPtr.Zero hack.
-
-2002-07-13 Rachel Hestilow <hestilow@ximian.com>
-
- * parser/Gnome.metadata, Gtk.metadata: More conflict
- fixes.
- * parser/build.pl: Fully qualify all lib names. (Gtk+ packages
- are now LFS-compliant in Debian...)
- * parser/gapi2xml.pl: Fix for whitespace in fields, defines,
- and docs.
-
- * generator/BoxedGen.cs: Remove extraneous CallByName definition,
- add "override" keyword to FromNative.
- (Generate): Generate methods after fields.
- * generator/ClassBase.cs: Change CallByName, FromNative to virtual.
- (.ctor): Ignore "hidden" nodes. Set container on signal.
- (GenSignals, GenMethods): Add "implementor" argument for interface
- use.
- (Get(Method|Signal|Property)Recursively): Rework to correctly
- recurse interfaces.
- (Implements): Added.
- * generator/Ctor.cs (Initialize): Move clash initialization completely
- out of Generate, so we can check for collisions.
- * generator/Method.cs (GenerateDeclCommon): Check for duplicates,
- for "new" keyword.
- (Generate): Add "implementor" argument.
- * generator/ObjectGen.cs (Generate): Initialize ctor clashes on
- this and all parents, before generating.
- (Ctors, InitializeCtors): Added.
- * generator/Signal.cs: Store the container_type, check for
- collisions.
- * generator/StructGen.cs: Add "override" keyword to overriden methods.
-
- * gtk/FileSelection.custom (ActionArea): Add "new" keyword.
-
-2002-07-11 Mike Kestner <mkestner@speakeasy.net>
-
- * glib/SList.cs : fix a couple DllImports
-
-2002-07-11 Duncan Mak <duncan@ximian.com>
-
- * glue/Makefile.am: Added dialog.c and colorseldialog.c
-
- * glue/dialog.c:
- * gtk/Dialog.custom: C# glue for getting more fields from a GtkDialog.
-
- * glue/colorseldialog.c:
- * gtk/ColorSelectionDialog.custom: C# glue for getting more fields
- from a ColorSelectionDialog.
-
-2002-07-09 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/ClassBase.cs : handle overloaded method hash collision
- * generator/SignalHandler.cs : generate *Handler delegates. stub *Args
- * parser/Gtk.metadata : add *Defaults method renaming
-
-2002-07-08 Mike Kestner <mkestner@speakeasy.net>
-
- * glue/Makefile.in : s/BASE_SOURCES/BASESOURCES
- * parser/gapi_pp.pl : handle nested #if/#endif in ignored #if's
- * parser/makefile : make gtkapi.xml depend on gapi*.pl
-
-2002-07-06 Rachel Hestilow <hestilow@ximian.com>
-
- * generator/Parameters.cs (Initialize): Initialize error
- to zero.
-
-2002-07-06 Rachel Hestilow <hestilow@ximian.com>
-
- * ObjectGen.cs: Support static string elements. Do
- not generate Ctors or Signals if it is not a GObject.
-
- * parser/gapi2xml.pl: Add stock defines.
-
-2002-07-05 Rachel Hestilow <hestilow@ximian.com>
-
- * glue/Makefile.am: Make this work cleanly, with all automake.
-
-2002-07-05 Rachel Hestilow <hestilow@ximian.com>
-
- * configure.in: Conditionally compile Gnome.
-
- * parser/gapi_pp.pl: Handle line breaks in function declarations.
- * parser/gapi2xml.pl: Handle non-literals in property definitions.
-
- * glue/program.c: Added.
- * glue/Makefile.am: Add program.c (conditionally compiled).
- Update INCLUDES.
-
- * gnome/Makefile.in: Conditionally compile this.
- * gnome/Program.custom, Modules.cs: Added.
-
- * samples/Makefile.in: Conditionally compile gnome example.
- * samples/GnomeHelloWorld.cs: Use Gnome.Program.
-
-2002-07-01 Rachel Hestilow <hestilow@ximian.com>
-
- * generator/gtkapi.xml:
- * parser/build.pl: Fix to use 3.0 (accidentally reverted in
- last commit).
-
- * generator/SymbolTable.cs (simple_types): Map gssize and gsize.
- * parser/Gdk.metadata: Tag PixbufLoader.Write's data parameter
- as array.
-
-2002-07-01 Rachel Hestilow <hestilow@ximian.com>
-
- * generator/gtkapi.xml:
- * parser/build.pl: Qualify gnome lib names; this is needed
- because of debian/LSB policy.
-
-2002-06-26 Duncan Mak <duncan@ximian.com>
-
- * generator/gtkapi.xml:
- * parser/build.pl: Point to 'gtkhtml-3.0' instead of gtkhtml-2.
-
-2002-06-26 Rachel Hestilow <hestilow@ximian.com>
-
- * generator/*.cs: Deal with whitespace XmlNodes.
-
- * parser/build.pl: Dump non-indented file to local directory.
-
- * parser/makefile, parser/formatXml.c: Added.
-
- * generator/gtkapi.xml: Nicely indented now. woo!
-
-2002-06-26 Rachel Hestilow <hestilow@ximian.com>
-
- * parser/Gtk.metadata: Change gtk_label_new to be the
- preferred constructor.
-
- * gdk/Event.cs: Add "IsValid" property (sometimes NULL events
- get sent in signals).
-
- * sample/GnomeHelloWorld.cs: Check to make sure iconlist event
- is valid.
-
-2002-06-26 Rachel Hestilow <hestilow@ximian.com>
-
- * configure.in, makefile, makefile.win32: add gnome.
-
- * doc/index.html, netdoc.xsl: Add gnome.
-
- * gdk/Event.cs: New manual wrap for GdkEvent.
-
- * generator/ClassBase.cs: Add methods GetProperty,
- GetPropertyRecursively, GetMethodRecursively.
- Move Parent property here from ObjectGen.cs. Pass this pointer
- into Property.
-
- * generator/Ctor.cs: Generate docs.
-
- * generator/Method.cs, Property.cs: Tag method as "new" if a
- Method/Property with the same name is found in the class hierarchy.
-
- * generator/SignalHandler.cs: Correctly wrap complex signal argument
- types. Add gnome directory.
-
- * generator/SymbolTable.cs: Add manually wrapped types hash
- (contains GLib.GSList and Gdk.Event). Add method IsManuallyWrapped.
-
- * glib/SList.cs: Add constructor from IntPtr.
-
- * glue/slist.c, glue/event.c: Added (field accessor glue).
-
- * glue/Makefile.am: Update.
-
- * parser/Gtk.metadata: Add new signal renames for new signals
- exposed by GdkEvent changes.
-
- * parser/README, parser/build.pl: Add libgnome, libgnomecanvas,
- libgnomeui.
-
- * parser/gapi2xml.pl: Handle literal-length array parameters,
- and NULL property doc strings.
-
- * sample/: Add new test GnomeHelloWorld.cs.
-
- * gnome/: Added.
-
- * parser/Gnome.metadata: Added.
-
-2002-06-25 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/gtkapi.xml : lots of fixes, plus GtkHTML!
- * parser/Gtk.metadata : add a bunch of renames.
- * parser/build.pl : Add the gtkhtml parse.
- * parser/README : module list to parse
-
-2002-06-25 Mike Kestner <mkestner@speakeasy.net>
-
- * parser/gapi2xml.pl : some GtkHTML related parsing tweaks.
-
-2002-06-25 Rachel Hestilow <hestilow@ximian.com>
-
- * makefile: back out a premature add of gnome
-
-2002-06-25 Rachel Hestilow <hestilow@ximian.com>
-
- * doc/: Added the makeshift doc generation toolchain.
-
-2002-06-25 Mike Kestner <mkestner@speakeasy.net>
-
- * configure.in : back out a premature add of gnome/Makefile.in
-
-2002-06-24 Rachel Hestilow <hestilow@ximian.com>
-
- * glib/UnwrappedObject.cs: New class which holds an IntPtr.
- This is used in Value so that we can retrieve the IntPtr itself
- for an object property.
-
- * glib/Value.cs: Add UnwrappedObject cast operator.
-
- * glib/Property.cs: If the retrieved value is an object,
- and there is no wrapper object, create a new one.
-
-2002-06-24 Rachel Hestilow <hestilow@ximian.com>
-
- * gtk/FileSelection.custom: Remove random cruft that was
- at the beginning of this file.
-
-2002-06-24 Rachel Hestilow <hestilow@ximian.com>
-
- * glib/EnumWrapper.cs: New class which holds an enum int.
-
- * glib/Value.cs: Add support for glib enum types. We needed
- to use EnumWrapper for this because otherwise the int operator
- wouldn't know which glib function to use.
-
- * generator/BoxedGen.cs, ClassBase.cs, Ctor.cs, EnumGen.cs,
- InterfaceGen.cs, Method.cs, ObjectGen.cs, Signal.cs, StructGen.cs:
- Create more doc stubs.
-
- * generator/Property.cs: Generate enum values correctly.
-
- * generator/Ctor.cs: Refactor generation to honor metadata-specified
- collision preference.
-
- * parser/Gtk.metadata: Added constructor collision preferences to
- all known clashes.
-
- * parse/Gdk.metadata: Added (for Pixbuf clashes).
-
-2002-06-24 Duncan Mak <duncan@ximian.com>
-
- * glue/fileselection.c: New file, defines accessor functions to
- fields inside a GtkFileSelection.
-
- * gtk/FileSelection.custom: C# glue that makes use of new accessor
- functions defined in fileselection.c.
-
- * glue/Makefile.am: Added fileselection.c
-
-2002-06-23 Rachel Hestilow <hestilow@ximian.com>
-
- * glib/Object.cs, glib/SList.cs, glib/Value.cs, gtk/Application.cs:
- Move documentation to right before their actual methods, rather
- than the DllImported ones.
-
- * generator/Method.cs: Generate documentation before the actual
- method and not the DllImport.
-
-2002-06-23 Rachel Hestilow <hestilow@ximian.com>
-
- * generator/ClassBase.cs: Add accessors for methods and signals.
- Change GenSignals and GenMethods to public, as csc has a different
- idea of protected than mcs. Handle interface collisions in
- GenMethods.
-
- * generator/Method.cs: Add accessor Protection - "public" by default.
-
- * generator/ObjectGen.cs: Make sure wrapper's Signals hashtable only
- gets generated once. Generate a list of collisions for GenMethods.
- Remove dead foreach loop from Validate.
-
- * generator/Paramaters.cs (CreateSignature): Initialize last_param.
-
- * parser/Gtk.metadata: Add property & event collision renames
- for TextBuffer and OldEditable.
-
- * sample/makefile.win32: Reference atk-sharp.dll.
-
- * makefile.win32: Do not build gdk.imaging.
-
-2002-06-22 Mike Kestner <mkestner@speakeasy.net>
-
- * */makefile.win32 : add docs target
- * generator/ClassBase.cs : Make GenMethods public for interface gen
- * generator/Method.cs : Lose the CallingConvention
- * generator/Parameters.cs : fix uninitialized var
- * generator/SignalHandler.cs : Lose the CallingConvention
- * generator/StructBase.cs : Lose the CallingConvention
-
-2002-06-21 Michael Meeks <michael@ximian.com>
-
- * sample/Makefile.in: re-factor slightly.
-
-2002-06-21 Mike Kestner <mkestner@speakeasy.net>
-
- * gtk/*akefile* : lose the gdk-imaging-sharp refs
-
-2002-06-21 Mike Kestner <mkestner@speakeasy.net>
-
- * configure.in : remove gdk.imaging/Makefile creation.
-
-2002-06-21 Mike Kestner <mkestner@speakeasy.net>
-
- * makefile : remove gdk.imaging from the build
- * gdk.imaging/* : kill
- * generated/BoxedGen.cs : XmlNode namespace handling. Use GenBase.
- * generated/CallbackGen.cs : XmlNode namespace handling.
- * generated/Ctor.cs : construct with libname not ns.
- * generated/EnumGen.cs : XmlNode namespace handling.
- * generated/GenBase.cs : XmlNode namespace handling. Make AppendCustom
- an instance method so it can use the private fields instead of params.
- * generated/InterfaceGen.cs : XmlNode namespace handling.
- * generated/Method.cs : construct with libname not ns.
- * generated/ObjectGen.cs : XmlNode namespace handling.
- * generated/Parser.cs : Use new XmlNode namespace ctors.
- * generated/Signal.cs : Lose the namespace field.
- * generated/StructBase.cs : derive from ClassBase
- * generated/StructGen.cs : XmlNode namespace handling. Use GenBase.
- * generated/SymbolTable.cs : nuke GetDllName method.
- * generator/gtkapi.xml : Add library name to namespace node.
- * parser/build.pl : refactor for library name param
- * parser/gapi2xml.pl : add libname param handling
- * sample/Makefile.in : build linux on make install, but don't install.
-
-2002-06-21 Rachel Hestilow <hestilow@ximian.com>
-
- * generator/ClassBase.cs: New base class for classes and interfaces.
-
- * generator/InterfaceGen.cs: Inherit from ClassBase, generate declarations.
-
- * generator/ObjectGen.cs: Move half of this into ClassBase.
-
- * generator/Method.cs: Turn all applicable Get/Set functions into .NET
- accessors. Remove redundant == overload and move into Equals, as
- it was confusing "!= null".
-
- * generator/Parameters.cs: Alter signature creation to accept "is_set"
- option, add support for variable arguments. Add properties "Count",
- "IsVarArgs", "VAType".
-
- * generator/Ctor.cs: Fixup for changes in Parameters (indenting,
- signature creation).
-
- * generator/Signal.cs: Support generating declarations.
-
- * generator/SymbolTable: Change GetObjectGen to GetClassGen.
-
- * glib/IWrapper.cs: Move "Handle" declaration to here, so
- both classes and interfaces can benefit from it.
-
- * glib/Object.cs: Inherit from IWrapper.cs
-
- * parser/Metadata.pm: Support attribute changes on constructors,
- methods, signals, and paramater lists.
-
- * parser/gapi2xml.pl: Parse init funcs for interfaces. Ignore "_"
- functions here.
-
- * parser/gapi_pp.pl: Remove boxed_type_register check, as it will
- be caught in the init funcs.
-
- * parser/Atk.metadata: Added.
-
- * parser/Gtk.metadata: Add all needed signal/method collision
- renames. Rename GtkEditable.Editable accessors to IsEditable,
- as .NET does not like accessors with the same name as their
- declaring type. Tag TreeStore constructor as varargs.
-
- * samples/ButtonApp.cs: s/EmitAdd/Add.
-
- * samples/Menu.cs: s/EmitAdd/Add, s/Activate/Activated.
-
-2002-06-21 Mike Kestner <mkestner@speakeasy.net>
-
- * */makefile.win32 : add /doc flags
- * */.cvsignore : ignore .xml files
-
-2002-06-21 Mike Kestner <mkestner@speakeasy.net>
-
- * gdk.imaging/Makefile.in : add a missing -L
- * gtk/Makefile.in : add a missing -L
- * generator/Method.cs : Add some docs stubbage
-
-2002-06-20 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/Parameters.cs : GError handling overhaul
- * generator/SymbolTable.cs : map GError to IntPtr
- * glib/GException.cs : Refactor to use glue.
- * glue/Makefile.am : add the error.c file.
- * glue/error.c : glue for error message string access
- * gtk/makefile.win32 : ref the gdk-imaging-sharp assembly
-
-2002-06-19 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/Parameters.cs : csc build error fixes
-
-2002-06-14 Rachel Hestilow <hestilow@ximian.com>
-
- * glib/GException.cs: Added.
-
- * generator/Ctor.cs, Method.cs: Tag function as unsafe if it throws
- an exception. Call parms.HandleException.
-
- * generator/Paramaters.cs: Add property ThrowsException (based
- on a trailing GError**). If ThrowsException, mask GError in the
- signature, initialize a GError in Initialize, and add new method
- HandleException to throw an exception if error != null.
-
- * generator/SymbolTable.cs: Add gdk-pixbuf DLL, and GError type.
-
- * gdk.imaging, gdk.imaging/Makefile.in, gdk.imaging/makefile.win32:
- Added.
-
- * configure.in, Makefile, makefile.win32: Build gdk.imaging.
-
- * gtk/Makefile.in, gtk/makefile.win32: Link against gdk.imaging.
-
- * parser/gapi2xml.pl: Support namespace renaming.
-
- * parser/build.pl: Build gdk-pixbuf as gdk.imaging.
-
-2002-06-09 Rachel Hestilow <hestilow@ximian.com>
-
- * generator/GenBase.cs: new method AppendCustom, moved from ObjectGen.
- * generator/BoxedGen.cs, ObjectGen.cs, StructGen.cs:
- Call AppendCustom in Generate ();
- * generator/Method.cs, Parameters.cs: Add support for "out"
- parameters. Additionally, output an accessor instead of a
- regular method if it is an accessor-style function (ie GetStartIter).
- * generator/Property.cs: Add additional cast to Boxed, if necessary.
- * glue/textiter.c: New constructor for GtkTextIter.
- * glue/Makefile.am: Add textiter.c, build with Gtk+ cflags.
- * configure.in: Check for Gtk+ cflags.
- * parser/Metadata.pm, Gtk.metadata: Added.
- * parser/gapi2xml.pl: Call Metadata::fixup on the document.
- Also work around gtk's screwy boxed type name registration
- (GtkFoo -> GtkTypeFoo).
- * gtk/TextIter.custom: Added.
-
-2002-06-06 Mike Kestner <mkestner@speakeasy.net>
-
- * glib/Timeout.cs : new Timeout class with Add() and
- TimeoutHandler delegate.
-
-2002-06-05 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/Property.cs : Fix get{} GLib.Value passing.
- * glib/Object.cs : GetProperty passes the GLib.Value now.
- * glib/Value.cs : Add a ctor to create Values for props.
- * glue/value.c : add gtksharp_value_create_from_property.
-
-2002-05-29 Mike Kestner <mkestner@speakeasy.net>
-
- * */Makefile.in : remove generated source in clean target.
-
-2002-05-29 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/CallbackGen.cs : Fix build breaker from refactoring.
- * sample/Makefile.in : Build the menu sample on linux.
-
-2002-05-28 Mike Kestner <mkestner@speakeasy.net>
-
- * makefile : add separate targets for native and platform
- independent products per request from debian packager
- Alp Toker <alp@atoker.com>
-
-2002-05-26 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/Parser.cs : Implement Alias node parsing.
- * generator/SymbolTable.cs : resolve aliased types.
-
-2002-05-23 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/BoxedGen.cs : Update for Static SymbolTable
- * generator/CallbackGen.cs : Use GenBase and Parameters classes
- * generator/CodeGenerator.cs : Update for Static SymbolTable
- * generator/Ctor.cs : code from StructBase using Parameters class
- * generator/EnumGen.cs : Use GenBase
- * generator/GenBase.cs : Abstract Stream Writer creation, stream
- boilerplate, and common *Name properties
- * generator/IGeneratable.cs : Update for Static SymbolTable
- * generator/InterfaceGen.cs : Use GenBase
- * generator/Method.cs : code from StructBase using Parameters class
- * generator/ObjectGen.cs : Major refactoring. Use GenBase. Build
- tables of Member generatables at construct time to facilitate
- future name collision resolution logic.
- * generator/Parameters.cs : new generatable to abstract duplicated
- parameter parsing logic.
- * generator/Parser.cs : Update for Static SymbolTable
- * generator/Property.cs : code from ObjectGen
- * generator/Signal.cs : code from ObjectGen
- * generator/SignalHandler.cs : Update for Static SymbolTable
- * generator/StructBase.cs : Update for Static SymbolTable
- * generator/StructGen.cs : Update for Static SymbolTable
- * generator/SymbolTable.cs : Make all methods and private members
- static. There is no reason to ever have multiple tables.
-
-2002-05-13 Joe Shaw <joe@assbarn.com>
-
- * sample/Makefile.in: Use -L compiler flags and specify all of the
- assemblies to link against.
-
-2002-05-13 Joe Shaw <joe@assbarn.com>
-
- * gtk/Makefile.in: Add the System.Drawing assembly to the compiler
- command-line.
-
-2002-05-08 Joe Shaw <joe@assbarn.com>
-
- * generator/ObjectGen.cs (GenProperty): And uncomment it out because
- the compiler bug is fixed.
-
-2002-05-08 Joe Shaw <joe@assbarn.com>
-
- * generator/ObjectGen.cs (GenProperty): Comment the last checkin out
- because it exposes a compiler bug.
- (GenSignal): Back this change out.
-
-2002-05-08 Joe Shaw <joe@assbarn.com>
-
- * */Makefile.in: Don't allow the shell to do file globbing; makes
- --recurse work.
-
- * generator/ObjectGen.cs (GenProperty): We need to cast a GLib.Value
- to a GLib.Object and then to whatever it is, because explicit casts
- don't work to child classes.
- (GenSignal): Append "EventHandler" when generating signal handlers
- so we don't get symbol conflicts.
-
-2002-05-07 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/SymbolTable.cs : map char to string.
-
-2002-05-07 Mike Kestner <mkestner@speakeasy.net>
-
- * */Makefile.in : Add clean targets. Add -L parms.
-
-2002-05-06 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/ObjectGen.cs : When generating a ctor(void)
- for subclassing purposes, mark it protected, not public.
- Thanks to Miguel for reporting this bug.
-
-2002-05-03 Mike Kestner <mkestner@speakeasy.net>
-
- * sample/makefile.win32 : add the Menu sample
- * sample/Menu.cs : A menu and box packing sample.
-
-2002-05-02 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/ObjectGen.cs : Add support for .custom files.
- * gtk/Window.custom : clean up build
- * sample/HelloWorld.cs : Use the customizations.
- * sample/ButtonApp.cs : Use the customizations.
-
-2002-05-02 Mike Kestner <mkestner@speakeasy.net>
-
- * README : Describe the new make procedure.
- * configure.in : Add the new Makefile generation.
- * makefile : add the glue dir, make linux the default build,
- add an install target
- * */makefile.win32 : temp build files for win32
- * */Makefile.in : new configurable make system
- * */makefile : killed
- * generator/BoxedGen.cs : Now uses GLib.Boxed
- * generator/ObjectGen.cs : Use Values for Props.
- * generator/SymbolTable.cs : Add IsEnum method.
- * glib/Boxed.cs : Major overhaul.
- * glib/Object.cs : Remove type specific (Get|Set)Property. Now
- use GValue based property accessors.
- * glib/TypeFundamentals.cs : Update to current values.
- * glib/Value.cs : Refactor to use glue.
-
-2002-04-25 Mike Kestner <mkestner@speakeasy.net>
-
- * autogen.sh : simple config for the glue build
- * configure.in : simple config for the glue build
- * makefile : add glue dir to build
- * glib/SList.cs : Fix some leakage.
- * glue/value.c : a helper function for heap alloc of GValues
- * glue/Makefile.am : build for libgtksharpglue
-
-2002-04-19 Mike Kestner <mkestner@speakeasy.net>
-
- * glib/SList.cs : A more sane approach.
- * glib/Value.cs : Marshal strings directly with pinvoke
-
-2002-04-18 Joe Shaw <joe@assbarn.com>
-
- * */makefile: Allow a different MCS to be passed in on the make
- command line.
-
-2002-04-09 Mike Kestner <mkestner@speakeasy.net>
-
- * tagging for gtk-sharp-0.1
-
-2002-04-09 Mike Kestner <mkestner@speakeasy.net>
-
- * sample/ButtonApp.cs : Get it to run on linux.
-
-2002-04-04 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/CallbackGen.cs : Unstubify.
- * generator/SymbolTable.cs : qualify some simple typenames.
-
-2002-03-29 Mike Kestner <mkestner@speakeasy.net>
-
- * */makefile : add make linux target.
-
-2002-03-29 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/SymbolTable.cs (Trim): revamp TrimEnd call.
-
-2002-03-28 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/SignalHandler.cs : switch to 2.0 libs
- * generator/SymbolTable.cs : switch to 2.0 libs
- * glib/Object.cs : switch to 2.0 libs
- * glib/SList.cs : switch to 2.0 libs
- * glib/Value.cs : switch to 2.0 libs
- * gtk/Application.cs : switch to 2.0 libs
-
-2002-03-26 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/SignalHandler.cs : Use Path.DirectorySeparatorChar.
-
-2002-03-25 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/StructBase.cs : Throttle _gtk methods.
- * generator/SymbolTable.cs : tweak dll names.
- * glib/Object.cs : restructure DllImports and prop code.
- * glib/SList.cs : restructure DllImports.
- * glib/Value.cs : restructure DllImports.
- * gtk/Application.cs : overload Init() to get past the string[]
- marshaling crash on linux.
- * sample/HelloWorld.cs : Use App::Init() since no args are needed.
-
-2002-03-24 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/*Gen.cs : Use Path.DirectorySeparatorChar.
- * generator/Parser.cs : better debug for unexpected types.
- * generator/SymbolTable.cs : Use linux library names.
-
-2002-03-07 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/CodeGenerator.cs : Refactor generatable iteration.
- * generator/SymbolTable.cs : Add Generatables property to expose
- complex_types.Values.
-
-2002-03-02 Mike Kestner <mkestner@speakeasy.net>
-
- * makefile : add linux build.
- * generator/makefile : add linux build.
-
-2002-02-19 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/BoxedGen.cs : Add ctor and method generation.
- * generator/StructBase.cs : Switch to Raw syntax.
- * glib/Boxed.cs : Add Handle prop, make Raw protected, and add ctors.
- * glib/Object.cs : s/RawObject/Raw to simplify generation.
-
-2002-02-19 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/Statistics.cs : New. Gathers stats about generation.
- * generator/*.cs : Hook in the stat counters.
-
-2002-02-18 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/StructBase.cs (GenCtor): StudCapsify static method names.
- * generator/SymbolTable.cs (Trim): strip const- prefix.
- * sample/ButtonApp.cs (Window_delete): handle RetVal.
-
-2002-02-17 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/StructBase.cs (MangleName): add object and event.
- * parser/gapi2xml.pl : Handle embedded callback declarations in method
- parameter lists.
-
-2002-02-15 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/SignalHandler.cs : Create the SignalArgs.Args array and fix
- indexing into it.
- * sample/ButtonApp.cs : A little cleanup. Not quite there yet.
- * sample/HelloWorld.cs : Set up the RetVal in the delete handler.
-
-2002-02-14 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/ObjectGen.cs : suppress generation of get/set methods when
- properties exist. Mangle method names on signal name clashes. Gen
- the signals.
- * generator/SymbolTable.cs : Add GetName. Add some more calls to Trim.
- * generator/gtkapi.xml : adding binary file as an experiment. If the
- diff's show this file, I'll be removing it with apologies and going
- back to the separate package idea.
- * parser/gapi2xml.pl : some signal related fixes.
- * sample/HelloWorld.cs : uncomment the event hook.
-
-2002-02-10 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/BoxedGen.cs (FromNative): Add explicit cast.
- * generator/ObjectGen.cs (FromNative): Add explicit cast.
- (GenSignal): New. Partial. Not hooked in yet.
- * generator/StructBase.cs (GenMethod): return-type is a sub-element,
- not an attribute.
-
-2002-02-09 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/StructBase.cs (GenMethod): Add handle arg to paramless
- method call and extern.
-
-2002-02-08 Mike Kestner <mkestner@speakeasy.net>
-
- * README : Some updates.
- * generator/BoxedGen.cs : Add FromNative method.
- * generator/CallbackGen.cs : Add FromNative method.
- * generator/EnumGen.cs : Add FromNative method.
- * generator/IGeneratable.cs : Add FromNative method.
- * generator/InterfaceGen.cs : Add FromNative method.
- * generator/ObjectGen.cs : Add FromNative method. Hook in GenMethod.
- * generator/StructBase.cs : Revamp param handling. Add GenMethod.
- * generator/StructGen.cs : Add FromNative method.
- * generator/SymbolTable.cs : Add FromNative method.
- * parser/gapi2xml.pl : Detect ctors before methods. Fix method names.
- * sample/HelloWorld.cs : uncomment the Show call.
-
-2002-02-06 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/BoxedGen.cs : Marshal as IntPtr using Raw prop.
- * generator/ObjectGen.cs : Use Handle for marshaling.
- * generator/StructBase.cs (CallByName): Fill out the stub.
- (GetImportSig): Fill out the stub.
- * generator/StructGen.cs (MarshalType): Use QualifiedName.
- * generator/SymbolTable.cs (GetMarshalType): Trim type.
- (CallByName): New. Provides calling syntax.
- * sample/HelloWorld.cs : Make it compile.
-
-2002-02-02 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/ObjectGen.cs : Add IntPtr constructor generation. Pass a
- ctor signature hash around to use in clash resolution. Generate a
- void ctor if none is present which just calls the parent ctor.
- * generator/StructBase.cs : Add non-void signature ctor generation,
- including collision handling logic. Collisions are implemented as
- static methods.
- * generator/SymbolTable.cs : Map GSList to GLib.SList. Add type
- trimming to remove trailing *'s. Need to suppress leading const yet.
- * glib/Object.cs : Add default ctor for void and IntPtr ctors.
- * glib/SList.cs : Implementation of a wrapper class for GSLists. Lots
- of FIXMEs.
- * parser/gapi2xml.pl : Handle ** and array params.
-
-2002-01-17 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/BoxedGen.cs : Removed Name, CName, and QualifiedName.
- * generator/ObjectGen.cs : Removed Name, CName, and QualifiedName.
- * generator/StructBase.cs : Add Name, CName, and QualifiedName. Add
- GenCtor method. Stub GetCallString, GetImportSig, and GetSignature
- methods.
- * generator/StructGen.cs : Removed Name, CName, and QualifiedName.
- * generator/SymbolTable.cs : Add GetDllName method.
- * parser/gapi2xml.pl : Fix a couple <parameters> bugs.
-
-2002-01-16 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/BoxedGen.cs : New boxed type generatable.
- * generator/ObjectGen.cs : Add boxed type property generation and stub
- off interface properties for now.
- * generator/Parser.cs : Add boxed element parsing.
- * generator/SymbolTable.cs : Add IsBoxed and IsInterface methods.
- * glib/Boxed.cs : New base class for deriving boxed types.
- * glib/Object.cs : Add boxed GetProp/SetProp methods.
- * parser/gapi2xml.pl : Add boxed type element formatting.
- * parser/gapi_pp.pl : Add preprocessing of the generated sourcefiles.
- Handle the builtins and make them identifiable to the xml generator.
-
-2002-01-11 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/ObjectGen.cs : Add property generation.
- * generator/SymbolTable.cs : More fixage to simple_types. Add
- GetMarshalType and IsObject methods.
- * glib/Object.cs : Rename Events prop to EventList to avoid name
- collision. Add float, double, uint, and IntPtr GetProp and SetProp
- methods.
- * parser/TODO : Add a couple prop related bugs to come back for.
- * parser/gapi2xml.pl (addPropElems): Restructure. It was thoroughly
- broken. It's better now.
-
-2002-01-10 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/StructBase.cs (GenField): Return a bool success indicator.
- * generator/ObjectGen.cs : Check the return of GenField.
- * generator/SymbolTable.cs : More fixage to simple_types.
- * parser/gapi2xml.pl : Fix multiline comment bug, and callback name
- hashing logic. Squash callbacks that aren't in the namespace.
- * sample/HelloWorld.cs : Clean out some debugging to make it closer to
- compiling. Not quite there yet.
-
-2002-01-08 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/CallbackGen.cs : Use name in QualName, not cname.
- * generator/EnumGen.cs : Use name in QualName, not cname.
- * generator/InterfaceGen.cs : Use name in QualName, not cname.
- * generator/StructBase.cs (GenField): gen as public.
-
-2002-01-08 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/CallbackGen.cs : New stub for delegate generation.
- * generator/InterfaceGen.cs : New stub for interface generation.
- * generator/Parser.cs : Add the interface and callback element hooks.
- * generator/SymbolTable.cs : Additions to simple_types hash.
-
-2002-01-07 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/ObjectGen.cs : Make parent debug statement more helpful.
- * generator/Parser.cs : Add interface element case.
- * parser/gapi2xml.pl : Add interface types.
- * parser/gapi_pp.pl : Grab G_TYPE_INSTANCE_GET_INTERFACE defines. Grab
- struct declarations out of private headers.
-
-2002-01-06 Mike Kestner <mkestner@speakeasy.net>
-
- * */makefile : Add atk to the build.
- * generator/EnumGen.cs : Create the generated dir if necessary.
- * generator/ObjectGen.cs : Create the generated dir if necessary.
- * generator/StructGen.cs : Create the generated dir if necessary.
- * parser/gapi2xml.pl : Squash bug in comma separated field defs.
-
-2002-01-06 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/EnumGen.cs : Open stream Create only.
- * generator/ObjectGen.cs : New generatable for GObject subclasses.
- * generator/Parser.cs : Add the object element hook.
- * generator/StructBase.cs : Handle bits element in GenField.
- * generator/StructGen.cs : Open stream Create only.
- * generator/SymbolTable.cs : Additions to simple_types hash.
- * parser/gapi2xml.pl : Parse bitflags into the bits element.
-
-2002-01-05 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/SymbolTable.cs : First pass at simple_types hash.
-
-2002-01-05 Mike Kestner <mkestner@speakeasy.net>
-
- * generator/*.cs : Move into GtkSharp.Generation namespace.
- * generator/CodeGenerator.cs (Main): Add usage check. Add SymbolTable.
- * generator/EnumGen.cs (QualifiedName): New.
- (Generate): Add SymbolTable to signature.
- * generator/IGeneratable : Add QualifiedName prop and update Generate
- signature.
- * generator/Parser.cs : Switch from plain Hashtable to SymbolTable.
- (Parse): Replaces the Types property and returns a SymbolTable.
- * generator/StructBase.cs : New base class to derive struct and object
- types. Initial implementation of protected GenField method and ctor.
- * generator/StructGen.cs : New non-object struct type generatable.
- * generator/SymbolTable.cs : New. Manages complex types hash and a
- simple types hash. Will provide generic lookup interface.
-
-2002-01-04 Mike Kestner <mkestner@speakeasy.net>
-
- * makefile : switch to the new generator.
- * generator/CodeGenerator.cs : New main program class.
- * generator/IGeneratable.cs : Interface for generation methods/props.
- * generator/EnumGen.cs : Subclass of IGeneratable for enums.
- * generator/Parser.cs : The XML parser.
- * parser/gapi_pp.pl : A source preprocessor for api extraction.
- * parser/gapi2xml.pl : Produces Xml document for GObject based APIs.
-
-2001-12-31 Mike Kestner <mkestner@speakeasy.net>
-
- * codegen/defs-parse.pl : Fix EOL handling for DOS \r\n patterns as
- reported by David Dawkins.
-
-2001-12-17 Mike Kestner <mkestner@speakeasy.net>
-
- * makefile : Add the pango subdir.
- * codegen/defs-parse.pl : Add a buttload of type entries to %maptypes
- and %marshaltypes. Ignore props, sigs, and methods for non GObject
- types. Turn on all classes. Major beefup of struct generation. Start
- to use the new sighandlers. Rip out const- types. Handle Unicode
- string marshalling.
- * codegen/gdk-structs.defs : Regenerated.
- * codegen/get-structs-from-source.pl : Handle typedef x y; Suppress
- structs with "Private" in the typename. Handle multiple levels of
- typedeffing. Handle function pointers. Suppress comments sanely.
- * codegen/gtk-props.defs : Fill out the rest of the classes.
- * codegen/gtk-signals.defs : Fill out the rest of the classes.
- * codegen/gtk-structs.defs : First pass. Hacked obscenely.
- * codegen/hardcoded.defs : Kill. No hardcoding needed anymore.
- * codegen/makefile : Use the new defs files.
- * codegen/pango.defs : Ripped from pygtk.
- * codegen/pango-structs.defs : New struct defs gen'd with my tool.
- * codegen/pango-types.defs : Ripped from pygtk.
- * gdk/makefile : Add the pango-sharp.dll ref.
- * gdk/SimpleEvent.cs : Killed.
- * glib/SimpleSignal.cs : Killed.
- * gtk/makefile : Add the pango-sharp.dll ref.
- * gtk/Widget.cs : Killed.
- * pango/makefile : New build dir.
-
-2001-12-11 Mike Kestner <mkestner@speakeasy.net>
-
- * codegen/get-structs-from-source.pl : New define-struct extractor.
- * codegen/gdk-structs.defs : generated defs with a few hand edits.
-
-2001-12-04 Mike Kestner <mkestner@speakeasy.net>
-
- * codegen/defs-parse.pl : Index %structs by cname, not name. Derive
- structs from class to facilitate marshalling since Value types can't
- use the Marshal.PtrToStructure method. Generate StructLayout attr
- for struct class defs. Stuff the signal args into a SignalArgs inst
- to pass to the EventHandlers.
- * sample/HelloWorld.cs : some cleanup and temporary signal playcode.
-
-2001-12-01 Mike Kestner <mkestner@speakeasy.net>
-
- * makefile : Make ROOT /cygdrive/, not //.
-
-2001-11-25 Mike Kestner <mkestner@speakeasy.net>
-
- * codegen/defs-parse.pl (get_sighandler): gen the helper class. arg
- passing and return value handling need beefing up still.
- * glib/SignalArgs.cs : New arg passing/ return value handling class.
- * glib/SignalCallback.cs (dtor): kill, this will be gen'd in the
- subclasses. (ctor): prune down to two params.
-
-2001-11-24 Mike Kestner <mkestner@speakeasy.net>
-
- * codegen/defs-parse.pl : mkdir the glib/generated dir.
- (gen_signal): Call new get_sighandler sub. Doesn't use the returned
- value yet. s/event/ev3nt on arg names.
- (get_sighandler): new sub to lookup or gen a signal helper/delegate.
- Only generates the delegate so far.
- * codegen/hardcoded.defs : Added a stub for Gdk.Event.
- * gdk/Event.cs : Killed, now a generated struct.
- * gdk/SimpleEvent.cs (SimpleEventCallback): Use Marshal.PtrToStructure
- to create the Event, not a ctor(IntPtr).
- * glib/SignalCallback.cs : New abstract base class for signal helpers.
-
-2001-11-14 Mike Kestner <mkestner@speakeasy.net>
-
- * codegen/defs-parse.pl : Add System.Collections to usings.
- s/event/signal. Add gen_signal sub and call it from gen_object.
- Mangle method names that collide with signal names by prepending
- Emit to the method name.
- * codegen/makefile : add gtk-signals.defs to the build.
-
-2001-11-13 Mike Kestner <mkestner@speakeasy.net>
-
- * codegen/get-signals-from-source.pl : My own little perl signal
- parser.
- * codegen/gtk-signals.defs : Ripped the GtkWindow signals into here
- to goof with.
-
-2001-11-10 Mike Kestner <mkestner@speakeasy.net>
-
- * codegen/defs-parse.pl : Fix String prop generation code.
- * gtk/Window.custom : Fix ctor param casting error.
-
-2001-11-09 Mike Kestner <mkestner@speakeasy.net>
-
- * codegen/defs-parse.pl : Use the @ctors list to determine if a class
- is abstract. There is an abstract indicator in the new defs format
- description, but it doesn't appear in the defs files currently. This
- method should be reliable though, even in the long term. Use the same
- check to determine if ctor(IntPtr obj) should be gen'd.
-
-2001-11-09 Mike Kestner <mkestner@speakeasy.net>
-
- * codegen/defs-parse.pl : Now genning Window, AccelGroup, Bin, and
- GdkPixbuf classes to peel the csc error onion. Explicitly add GObject
- to the "exists ($objects{...})" branches, since GObject is a hard
- coded Class.
-
-2001-11-08 Mike Kestner <mkestner@speakeasy.net>
-
- * codegen/defs-parse.pl : Build a structs hash and gen the structs
- after the first pass of the defs. For structs and functions, mangle
- the 100s of params/fields named object to objekt. Insert using stmnts
- for structs too.
- * codegen/hardcoded.defs : Add GtkAccelEntry struct.
-
-2001-11-07 Mike Kestner <mkestner@speakeasy.net>
-
- * codegen/defs-parse.pl (gen_object): Insert using statements. Insert
- class members from corresponding .custom file.
- * gtk/Window.custom : Renamed file from Window.cs. Removed all the
- automatically generated members. This will be the mechanism used to
- improve upon the mechanically generated binding.
-
-2001-11-05 Mike Kestner <mkestner@speakeasy.net>
-
- * codegen/defs-parse.pl (gen_object): Generate a ctor (IntPtr obj) for
- every object. This is a wrapper constructor for use by an Object
- manager which will be called by GLib.Object.GetObject eventually to
- wrap raw GObject pointers returned by methods/props.
-
-2001-11-04 Mike Kestner <mkestner@speakeasy.net>
-
- * codegen/defs-parse.pl : struct generation. Added float and double
- type mapping entries.
- * codegen/hardcoded.defs : GdkGeometry definition. define-struct
- doesn't appear to be supported in the current defs files. This file
- will be used for manual definition of unsupported defs.
- * codegen/makefile : add hardcoded.defs.
-
-2001-11-02 Mike Kestner <mkestner@speakeasy.net>
-
- * codegen/defs-parse.pl : define-struct detection. Partial ctor
- support. Still need to deal with ctor signiature collisions.
- Refactored gen_method to share get_param_strings with ctors.
-
-2001-10-30 Mike Kestner <mkestner@speakeasy.net>
-
- * codegen/defs-parse.pl : streamline mkdir stuff. Prune the object
- list back to just Window for now. Suppress generation of the Prop
- get/set accessor methods.
- * codegen/gdk-types.defs : Updated the 2button/3button event types
- since I don't feel like automangling them now.
- * gdk/Event.cs : Killed the now redundant EventType declaration.
- * glib/Object.cs : Override the Equals and GetHashCode methods.
-
-2001-10-25 Mike Kestner <mkestner@speakeasy.net>
-
- * glib/Object.cs : Added Get|SetProperty methods for Object
- properties.
-
-2001-10-25 Mike Kestner <mkestner@speakeasy.net>
-
- * codegen/get-props-from-source.pl : Temporary (possibly) defs
- generator for props. Will probably kill this when the official
- defs support props.
- * codegen/defs-parse.pl : Added object-based aggregation of
- defs. Generate the class shells, methods, and props.
- * codegen/gdk-types.defs : ripped from pygtk.
- * codegen/gtk.defs : ripped from pygtk.
- * codegen/gtk-props.defs : some props defs.
- * codegen/makefile : add the new defs files.
-
-2001-10-11 Mike Kestner <mkestner@speakeasy.net>
-
- * makefile : Add the codegen directory
- * codegen/defs-parse.pl : Moved here from topdir and updated to parse
- the new defs format for enums and flags.
- * codegen/gtk-types.defs : Borrowed from pygtk.
- * codegen/makefile : new
- * gtk/makefile : remove generation step.
- * gtk/gtk.defs : removed, now in codegen dir.
-
-2001-10-07 Mike Kestner <mkestner@speakeasy.net>
-
- * gtk/Button.cs : Some nomenclature changes. s/EmitClicked/Click, etc.
- We need a consistent way to deal with naming clashes in gtk's method
- and signal namespaces. When clashes exist, events will be made past
- tense and methods to programatically emit events will be the present
- tense (e.g. Clicked event and Click method).
-
-2001-10-07 Mike Kestner <mkestner@speakeasy.net>
-
- * glib/Object.cs : Added public Handle property. It would be nice
- if I could make the RawObject public for get and protected for set,
- but that doesn't appear to be possible with C# properties.
- * gtk/Container.cs : New class with 2 of the 3 props and the Add/Remove
- methods only implemented.
- * gtk/Widget.cs : Added SizeRequest prop which is a combination of
- HeightRequest and SizeRequest. Embrace and extend gtk...
- * gtk/Window.cs : Derive from newly added Container subclass.
- * sample/ButtonApp.cs : Simple tire-kicking app.
-
-2001-10-06 Mike Kestner <mkestner@speakeasy.net>
-
- * gtk/Button.cs : Implemented 3 constructors, 5 methods, 4 properties,
- and 6 signals. Button API is 100% implemented. Need to implement
- some Container methods to be able to complete testing.
-
-2001-10-05 Mike Kestner <mkestner@speakeasy.net>
-
- * defs-parse.pl : A little automation for the binding. The enums and
- flags can be painlessly generated from defs files.
- * gtk/makefile : use defs-parse.pl to produce generated.cs.
- * gtk/.cvsignore : hush generated.cs
- * gtk/gtk.defs : unceremoniously ripped from gtk+ HEAD.
- * gtk/Window.cs : Killed the WindowType enum which is now generated.
-
-2001-10-04 Mike Kestner <mkestner@speakeasy.net>
-
- * glib/SimpleSignal.cs : Reworked to parallel SimpleEvent.
-
-2001-10-04 Mike Kestner <mkestner@speakeasy.net>
-
- * gtk/Widget.cs : Implemented all the bool, string, and int props.
-
-2001-10-04 Mike Kestner <mkestner@speakeasy.net>
-
- * gdk/SimpleEvent.cs : Temporarily uncomment the GCHandle code until
- a layout is ready and exceptions can be avoided.
- * gtk/Widget.cs : Killed all the signal and event attaching methods.
- They never belonged here, and now they exist in the SimpleEvent.
- Add a Signals hash to hold refs of the Signal handlers. Killed default
- ctor and the dtor. The event Add/Remove methods now create a
- SimpleEvent, stuff it in the hash, and remove it when the last handler
- disappears.
-
-2001-10-04 Mike Kestner <mkestner@speakeasy.net>
-
- * HACKING : Little bit of cleanup.
- * gdk/SimpleEvent.cs : Redesigned a bit. Docs. Replaced refcounting
- mechanism with an instance hash and added ctor/dtor. This class
- now completely encapsulates the signal attachment and forwarding
- mechanism for GdkEvent based signals. It attaches to the raw signal,
- maintains a ref to the associated event handler, and uses the static
- callback to activate the event handler on signal receipt.
- * sample/makefile : killed one last CSC explicit reference.
-
-2001-10-02 Mike Kestner <mkestner@speakeasy.net>
-
- * glib/Value.cs : Tried adding CallingConvention.Cdecl to all the
- DllImports, but still couldn't get reliable Propery setting without
- periodic NullReference exceptions. When all else fails, drop back
- and punt.
- * glib/Object.cs : Rewrote Set|GetProperty methods. Now they use
- g_object_get|set and don't rely on GValues. The int, bool, and string
- prop types are now working reliably.
- * gtk/Window.cs : Update all Properties to use new GLib.Object
- signatures.
- * sample/HelloWorld.cs : added some more property usage for testing
- purposes.
-
-2001-09-29 Mike Kestner <mkestner@speakeasy.net>
-
- * glib/Value.cs (int ctor): New constructor for int-based values.
- (int exp cast): New explicit cast operator for Val to int conversion.
- * gtk/Window.cs (DefaultHeight): New prop.
- (DefaultWidth): New prop.
-
-2001-09-28 Mike Kestner <mkestner@speakeasy.net>
-
- * glib/Object.cs (GetProperty): New, gets props from the raw obj.
- (SetProperty): New, for setting props on the raw obj.
- * glib/Value.cs (type ctor): New needed for get accessors.
- *gtk/Window.cs (AllowGrow): Uncommented and filled out.
- (AllowShrink): Uncommented and filled out.
- (DestroyWithParent): Uncommented and filled out.
- (Modal): Uncommented and filled out.
- (Resizable): Added. All the bool Props work now.
-
-2001-09-28 Mike Kestner <mkestner@speakeasy.net>
-
- * glib/Value.cs (~Value): New destructor to release g_malloc'd space.
- (default ctor): New default ctor just mallocs without init.
- (String ctor): call default
- (bool ctor): call default
- (Init): New post construct initializer.
- (String exp cast): Replaces ToString method.
- (bool exp cast): New for bool extraction.
- (MarshalAs): Renamed prop was RawValue.
-
-2001-09-27 Mike Kestner <mkestner@speakeasy.net>
-
- * glib/Object.cs : Docs for everything. Made Objects hash private.
- Some coding style cleanup. Pruned some of the TODO methods from the
- commented header listing to make a more relistic picture of the
- remaining effort. Some GSignal stuff probly belongs here too.
- ([Get|Set]Data): Killed some DllImports and set up methods to store
- arbitrary data in a managed hash table.
-
-2001-09-27 Mike Kestner <mkestner@speakeasy.net>
-
- *.cs : Added .dll extension to a load of DllImports.
- * makefile : now can make the project with one make windows and on
- both NT and Win98.
- * gdk/Event.cs : Fixed some invalid symbol names and commented out a
- load of stuff.
- * gdk/SimpleEvent.cs : Relocated file from unnecessary subdir and fixed
- several event keyword clashing bugs. Need to relocate the EventArgs
- class out of here into its own file. Fixed loads of typos.
- * glib/Object.cs : Killed the Constructor, this should be a purely
- abstract class. made Events property public until I can fix the Signal
- proxying system's broken reliance on it.
- * glib/SimpleSignal.cs : Relocated, namespaces, and named this Class.
- Loads of bugfixes. Still doesn't work worth a damn, but it builds.
- * glib/TypeFundamentals.cs : New enum for use in the Value code.
- * glib/Value.cs : Implemented a more opaque approach with heap allocated
- memory and g_value_init and friends. Still doesn't work. Will probably
- switch to a more C# like approach and avoid GValues altogether.
- * gtk/Button.cs : Commented out some brokeness until I can get around
- to fixing it later.
- * gtk/Widget.cs : Commented out a bunch of the new signal stuff until
- I get around to it.
- * gtk/Window.cs (Title): using g_object_set until I work out the
- details of the new Value/SetProperty system. It looks like g_object_set
- will end up being easier to use via PInvoke.
-
-2001-09-25 Bob Smith <bob@thestuff.net>
-
- * Added refcounts to delegates to make sure they can be unpined when
- not needed.
-
-2001-09-21 Bob Smith <bob@thestuff.net>
-
- * Signal system totally reworked. It should be stable now.
- * glib/Object.cs: Rewrote the way the wrapper is kept track of.
-
-2001-09-20 Bob Smith <bob@thestuff.net>
-
- * glib/ObjectManager.cs: Nuked.
- * glib/Object.cs: Keep track of wrapper.
- * gtk/Object: First stab at better signal system. Should reduce
- number of pins nessisary.
-
-2001-09-19 Mike Kestner <mkestner@speakeasy.net>
-
- * HACKING : New rulez.
- * NOTES: Killed. We have a mailing list now for this kind of stuff.
- * glib/makefile : New, to build the new glib-sharp.dll target.
- * glib/Object.cs : (GetObject): Commented out. Design problems here.
- IntPtr's can't be used in the manner this code attempts to use them.
- (Data prop): Commented out. Apparently keyed properties are not
- supported.
- (Object prop): Renamed RawObject, and made it protected.
- (Events): Fixed to cause list to be initialized if null and then
- return the list.
- * glib/ObjectManager.cs : commented out entirely. Not sure what this
- code is trying to accomplish and it doesn't compile.
- * glib/Value.cs : New attempt at implementing GValues. Doesn't work
- yet.
- * gtk/Button.cs : Updated to use RawObject.
- (Clicked event): s/EmitDeleteEvent/EmitClickedEvent.
- (Button(String)): s/gtk_label_new_with_lable/gtk_button_new_with_label.
- * gtk/Label.cs : Fixed some yank and paste errors where 2 value params
- were getting passed to all the set_* property methods.
- * gtk/Window.cs : Fixed hanging GTK namespace ref.
- * sample/HelloWorld.cs : Fixed hanging GTK namespace ref.
-
-
-2001-09-18 Bob Smith <bob@thestuff.net>
-
- * glib/Object.cs : Moved parts of gtk/Object.cs here, and added
- static GetObject method and a Data property.
- * glib/ObjectManager.cs : New.
- * gtk/Object.cs : removed some GObject wrapping code.
- * gtk/*.cs : Updated namespace from GTK to Gtk.
-
-2001-09-18 Bob Smith <bob@thestuff.net>
-
- * gtk/Object.cs : Added EventList and Object properties.
- * gtk/Widget.cs : Updated event emission logic.
- * gtk/Window.cs : added Window(IntPtr) constructor.
- * gtk/Button.cs : New. Partial implementation of Button class.
- * gtk/Label.cs : New. Partial implementation of Label class.
-
-2001-09-17 Mike Kestner <mkestner@speakeasy.net>
-
- Initial Import. Partial implementation of Object, Widget, Window,
- and Application classes and HelloWorld.cs sample app.
diff --git a/HACKING b/HACKING
index 9bd01c3..42ed7e7 100755
--- a/HACKING
+++ b/HACKING
@@ -1,11 +1,10 @@
-Before beginning work on something, please post your intentions to the
+Before beginning work on something, please post your intentions to the
mailing list (gtk-sharp-list@ximian.com). Duplication of effort just gets
-folks cranky in general.
+folks cranky in general.
-Prior to checking anything into CVS, please send a patch to the mailing list
-for approval. Any patches should be submitted in diff -u format. Also, it is
-assumed that the submitter has verified that the patch does not break the
-build, and hopefully that it doesn't break runtime.
+Code contributions can be made in the form of pull requests on GitHub,
+through https://github.com/mono/gtk-sharp or by attaching patches to bug
+reports. Please make sure the patch is produced using 'git format-patch'.
Getting Started:
@@ -21,5 +20,5 @@ Getting Started:
o sources/README
If you still have more questions or need assitance, you can get help on
- the Gtk# mailing list and the #mono IRC channel. (Information about
- each of these is contained in the README file.)
+ the Gtk# mailing list and the #gtk# or #mono IRC channels. (Information
+ about each of these is contained in the README file.)
diff --git a/Makefile.am b/Makefile.am
index 36c055d..80cacc1 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -4,7 +4,6 @@ EXTRA_DIST = \
gtk-sharp.snk \
policy.config.in \
AssemblyInfo.cs.in \
- ChangeLog \
HACKING \
README \
README.generator
diff --git a/Makefile.in b/Makefile.in
index 263f013..9412d8e 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -50,14 +50,13 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-target_triplet = @target@
subdir = .
DIST_COMMON = README $(am__configure_deps) \
$(srcdir)/AssemblyInfo.cs.in $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in $(srcdir)/config.h.in \
$(srcdir)/policy.config.in $(top_srcdir)/configure AUTHORS \
- COPYING ChangeLog NEWS TODO config.guess config.sub depcomp \
- install-sh ltmain.sh missing
+ COPYING NEWS TODO config.guess config.sub depcomp install-sh \
+ ltmain.sh missing
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
@@ -124,8 +123,8 @@ am__relativize = \
dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
done; \
reldir="$$dir2"
-DIST_ARCHIVES = $(distdir).tar.gz
GZIP_ENV = --best
+DIST_ARCHIVES = $(distdir).tar.bz2
distuninstallcheck_listfiles = find . -type f -print
am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
| sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
@@ -143,8 +142,6 @@ AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BUILD_EXEEXT = @BUILD_EXEEXT@
-BUILD_GTK_CFLAGS = @BUILD_GTK_CFLAGS@
-BUILD_GTK_LIBS = @BUILD_GTK_LIBS@
CAIRO_API_VERSION = @CAIRO_API_VERSION@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
@@ -168,7 +165,6 @@ EXEEXT = @EXEEXT@
FGREP = @FGREP@
GACUTIL = @GACUTIL@
GACUTIL_FLAGS = @GACUTIL_FLAGS@
-GDK_BACKEND = @GDK_BACKEND@
GENERATED_SOURCES = @GENERATED_SOURCES@
GIO_CFLAGS = @GIO_CFLAGS@
GIO_LIBS = @GIO_LIBS@
@@ -223,6 +219,8 @@ PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POLICY_VERSIONS = @POLICY_VERSIONS@
+PROFILER_CFLAGS = @PROFILER_CFLAGS@
+PROFILER_LIBS = @PROFILER_LIBS@
RANLIB = @RANLIB@
RUNTIME = @RUNTIME@
SED = @SED@
@@ -278,11 +276,7 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
-target = @target@
target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
@@ -291,7 +285,6 @@ EXTRA_DIST = \
gtk-sharp.snk \
policy.config.in \
AssemblyInfo.cs.in \
- ChangeLog \
HACKING \
README \
README.generator
@@ -566,7 +559,6 @@ distdir: $(DISTFILES)
dist-gzip: distdir
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__remove_distdir)
-
dist-bzip2: distdir
tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
$(am__remove_distdir)
@@ -597,7 +589,7 @@ dist-zip: distdir
$(am__remove_distdir)
dist dist-all: distdir
- tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+ tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
$(am__remove_distdir)
# This target untars the dist file and tries a VPATH configuration. Then
diff --git a/NEWS b/NEWS
index 867bafc..2c9c1ef 100644
--- a/NEWS
+++ b/NEWS
@@ -1 +1,50 @@
-try CNN
+===============================================================================
+Gtk# 2.99.0 - 2012-10-23
+===============================================================================
+
+Gtk# 2.99.0 is the first release of C# bindings for GTK 3.x. This is a beta
+release, primarily intended for applications developers who want to start
+porting their application to GTK 3.x.
+
+This version of Gtk# provides bindings for the API exposed by these libraries:
+ * cairo 1.10.0
+ * glib 2.28.0
+ * pango 1.28.3
+ * atk 1.32.0
+ * gdk-pixbuf 2.22.1
+ * gtk+ 3.0.0
+
+There is no API stability guarantee for now, but we will try to keep breaking
+changes to a minimum.
+
+This version of Gtk# can be installed in parallel with Gtk# 2.x, and should not
+have any impact on applications using Gtk# 2.x.
+
+Changes
+-------
+
+ * All the new APIs provided by GTK 3.0 and friends are now available.
+
+ * Gtk# now provides bindings for cairo 1.10 in cairo-sharp.dll. In the future
+ we might go back to using the Mono.Cairo.dll binding included in Mono.
+
+ * Bindings for Gio are now included, instead of requiring a separate
+ gio-sharp package.
+
+ * GLib.Object now uses the Dispose pattern. Subclasses that need to do
+ resource clean-up should implement a Dispose(bool) method.
+
+ * Custom code is now provided solely using partial classes. The Foo.custom
+ files that were used before are now proper Foo.cs files.
+
+ * Various enhancements to the parser and the generator.
+
+Bug fixes
+---------
+
+ * generator: Properly handle boolean attributes when parsing the GAPI XML
+ * glib: do not call g_thread_ functions in GLib >= 2.31
+ * gtk: Fix resurrection cycles in container subclasses (bxc#3801)
+
+Lots of other bug fixes are included, in particular all the relevant fixes from
+the stable 2.12 branch.
diff --git a/README b/README
index 1ad2e61..228c79f 100644
--- a/README
+++ b/README
@@ -1,14 +1,13 @@
-The Gtk# website can be found at: http://gtk-sharp.sourceforge.net/
+The Gtk# website can be found at: http://www.mono-project.com/GtkSharp
Gtk# is a .NET language binding for the GTK+ toolkit and assorted GNOME
-libraries. Gtk# is free software, licensed under the GNU LGPL. The target
-is the 2.6 platform.
+libraries. Gtk# is free software, licensed under the GNU LGPL.
Building & Installing Gtk#:
---------------------------
- Install the gtk-2/gtk-3 development headers first. On Debian, this can be done using:
- apt-get install libgtk2.0-dev libgtk-3-dev
+ Install the gtk-3 development headers first. On Debian, this can be done using:
+ apt-get install libgtk-3-dev
The build is the traditional:
@@ -30,10 +29,43 @@ Building & Installing Gtk#:
which was used for Mono. This might have been "/usr", "/usr/local", or
something similar.)
- If you are compiling from SVN, you will need libtool and the auto* tools
+ If you are compiling from GIT, you will need libtool and the auto* tools
and will need to replace the configure above with autogen.sh.
+The gui-thread-check profiler module.
+-------------------------------------
+
+ Since version 3 of gtk# a profiler called "gui-thread-check" is included as
+ part of the install for debugging purposes. (It's located in the subfolder
+ gtk/gui-thread-check .)
+
+ This profiler module can be used to check if a GTK# application is trying to
+ invoke gtk or gdk methods from a thread which is not the main GUI thread.
+
+ To use it, run your application with the command:
+
+ mono --profile=gui-thread-check yourapp.exe
+
+ If the profiler is properly installed, you'll see an output like this:
+
+ *** Running with gui-thread-check ***
+ *** GUI THREAD INITIALIZED: 2861676352
+
+ While the application is running, if the profiler detects a non-gui thread
+ invoking gtk methods, it will print a warning message together with a
+ stack trace. For example:
+
+ *** GTK CALL NOT IN GUI THREAD: Widget.gtk_widget_get_parent
+ Widget.get_Parent
+ SourceEditorWidget.SetLastActiveEditor
+ SourceEditorWidget.get_TextEditor
+ SourceEditorWidget.get_Document
+ SourceEditorWidget.HandleParseInformationUpdaterWorkerThreadDoWork
+ BackgroundWorker.OnDoWork
+ BackgroundWorker.ProcessWorker
+
+
Discussion & Support:
---------------------
@@ -55,12 +87,8 @@ Discussion & Support:
http://lists.ximian.com/archives/public/gtk-sharp-list/
- Further, a Wiki is available for Gtk#, and can be found at:
-
- http://www.nullenvoid.com/gtksharp/wiki/
-
Also, people can get help with and discuss Gtk# on IRC via the
- #mono channel on the irc.gnome.org IRC server.
+ #gtk# or #mono channels on the irc.gnome.org IRC server.
People looking for general help with C# should visit the
#c# channel on irc.freenode.net IRC server.
@@ -72,10 +100,7 @@ Developers:
For developers wishing to "get started" with Gtk#, they are encouraged
to read the Mono Hand Book:
- http://www.go-mono.com/tutorial
-
- In the Mono Hand Book, Chapter 21 is on Gtk#. (In the Mono Hand Book,
- the Gtk# .NET bindings are refered to as GNOME.NET.)
+ http://www.mono-project.com/Monkeyguide
Hackers:
@@ -85,4 +110,4 @@ Hackers:
read the file named: HACKING.
Also, anyone wishing to hack Gtk# is encouraged to join the Gtk#
- mailing list. And to visit the #mono IRC channel (on irc.gnome.org).
+ mailing list. And to visit the #gtk# IRC channel (on irc.gnome.org).
diff --git a/TODO b/TODO
index 8f99587..3125cc4 100644
--- a/TODO
+++ b/TODO
@@ -1,9 +1,6 @@
Tasks open for Gtk# 3.0, feel free to edit this file:
Generated API audit
-Improvements to external GIO binding
-Improvement to external Builder binding
-Documentation migration
+Write a "Migrating from GTK# 2.x to GTK# 3" guide
New API documentation
-Port samples to work with Gtk# 3
-
+Improvement to external Builder binding
diff --git a/aclocal.m4 b/aclocal.m4
index 20f7ee1..6b2bda3 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -9581,6 +9581,25 @@ AC_DEFUN([_AM_SET_OPTIONS],
AC_DEFUN([_AM_IF_OPTION],
[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
+# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 1
+
+# AM_RUN_LOG(COMMAND)
+# -------------------
+# Run COMMAND, save the exit status in ac_status, and log it.
+# (This has been adapted from Autoconf's _AC_RUN_LOG macro.)
+AC_DEFUN([AM_RUN_LOG],
+[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD
+ ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+ (exit $ac_status); }])
+
# Check to make sure that the build environment is sane. -*- Autoconf -*-
# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008
diff --git a/atk/Makefile.in b/atk/Makefile.in
index be227f7..d8d9923 100644
--- a/atk/Makefile.in
+++ b/atk/Makefile.in
@@ -51,7 +51,6 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-target_triplet = @target@
DIST_COMMON = $(srcdir)/../Makefile.include $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in $(srcdir)/atk-sharp.dll.config.in
subdir = atk
@@ -153,8 +152,6 @@ AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BUILD_EXEEXT = @BUILD_EXEEXT@
-BUILD_GTK_CFLAGS = @BUILD_GTK_CFLAGS@
-BUILD_GTK_LIBS = @BUILD_GTK_LIBS@
CAIRO_API_VERSION = @CAIRO_API_VERSION@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
@@ -178,7 +175,6 @@ EXEEXT = @EXEEXT@
FGREP = @FGREP@
GACUTIL = @GACUTIL@
GACUTIL_FLAGS = @GACUTIL_FLAGS@
-GDK_BACKEND = @GDK_BACKEND@
GENERATED_SOURCES = @GENERATED_SOURCES@
GIO_CFLAGS = @GIO_CFLAGS@
GIO_LIBS = @GIO_LIBS@
@@ -233,6 +229,8 @@ PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POLICY_VERSIONS = @POLICY_VERSIONS@
+PROFILER_CFLAGS = @PROFILER_CFLAGS@
+PROFILER_LIBS = @PROFILER_LIBS@
RANLIB = @RANLIB@
RUNTIME = @RUNTIME@
SED = @SED@
@@ -288,11 +286,7 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
-target = @target@
target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/atk/glue/Makefile.in b/atk/glue/Makefile.in
index 313e96b..c69fda8 100644
--- a/atk/glue/Makefile.in
+++ b/atk/glue/Makefile.in
@@ -51,7 +51,6 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-target_triplet = @target@
subdir = atk/glue
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -137,8 +136,6 @@ AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BUILD_EXEEXT = @BUILD_EXEEXT@
-BUILD_GTK_CFLAGS = @BUILD_GTK_CFLAGS@
-BUILD_GTK_LIBS = @BUILD_GTK_LIBS@
CAIRO_API_VERSION = @CAIRO_API_VERSION@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
@@ -162,7 +159,6 @@ EXEEXT = @EXEEXT@
FGREP = @FGREP@
GACUTIL = @GACUTIL@
GACUTIL_FLAGS = @GACUTIL_FLAGS@
-GDK_BACKEND = @GDK_BACKEND@
GENERATED_SOURCES = @GENERATED_SOURCES@
GIO_CFLAGS = @GIO_CFLAGS@
GIO_LIBS = @GIO_LIBS@
@@ -217,6 +213,8 @@ PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POLICY_VERSIONS = @POLICY_VERSIONS@
+PROFILER_CFLAGS = @PROFILER_CFLAGS@
+PROFILER_LIBS = @PROFILER_LIBS@
RANLIB = @RANLIB@
RUNTIME = @RUNTIME@
SED = @SED@
@@ -272,11 +270,7 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
-target = @target@
target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/cairo/Makefile.in b/cairo/Makefile.in
index fde0ea5..fb3dd80 100644
--- a/cairo/Makefile.in
+++ b/cairo/Makefile.in
@@ -51,7 +51,6 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-target_triplet = @target@
subdir = cairo
DIST_COMMON = $(srcdir)/AssemblyInfo.cs.in $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in
@@ -85,8 +84,6 @@ AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BUILD_EXEEXT = @BUILD_EXEEXT@
-BUILD_GTK_CFLAGS = @BUILD_GTK_CFLAGS@
-BUILD_GTK_LIBS = @BUILD_GTK_LIBS@
CAIRO_API_VERSION = @CAIRO_API_VERSION@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
@@ -110,7 +107,6 @@ EXEEXT = @EXEEXT@
FGREP = @FGREP@
GACUTIL = @GACUTIL@
GACUTIL_FLAGS = @GACUTIL_FLAGS@
-GDK_BACKEND = @GDK_BACKEND@
GENERATED_SOURCES = @GENERATED_SOURCES@
GIO_CFLAGS = @GIO_CFLAGS@
GIO_LIBS = @GIO_LIBS@
@@ -165,6 +161,8 @@ PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POLICY_VERSIONS = @POLICY_VERSIONS@
+PROFILER_CFLAGS = @PROFILER_CFLAGS@
+PROFILER_LIBS = @PROFILER_LIBS@
RANLIB = @RANLIB@
RUNTIME = @RUNTIME@
SED = @SED@
@@ -220,11 +218,7 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
-target = @target@
target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/configure b/configure
index c925faa..156bc86 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69.
+# Generated by GNU Autoconf 2.69 for gtk-sharp 2.99.1.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -585,14 +585,13 @@ MFLAGS=
MAKEFLAGS=
# Identity of this package.
-PACKAGE_NAME=
-PACKAGE_TARNAME=
-PACKAGE_VERSION=
-PACKAGE_STRING=
-PACKAGE_BUGREPORT=
-PACKAGE_URL=
-
-ac_unique_file="README"
+PACKAGE_NAME='gtk-sharp'
+PACKAGE_TARNAME='gtk-sharp'
+PACKAGE_VERSION='2.99.1'
+PACKAGE_STRING='gtk-sharp 2.99.1'
+PACKAGE_BUGREPORT=''
+PACKAGE_URL=''
+
# Factoring default headers for most tests.
ac_includes_default="\
#include <stdio.h>
@@ -638,7 +637,6 @@ ENABLE_MONODOC_TRUE
ENABLE_DOTNET_FALSE
ENABLE_DOTNET_TRUE
MDOC
-GDK_BACKEND
GTK_LIBS
GTK_CFLAGS
ATK_LIBS
@@ -660,13 +658,13 @@ CSC
RUNTIME
AL
GACUTIL
+PROFILER_LIBS
+PROFILER_CFLAGS
MONO_DEPENDENCY_LIBS
MONO_DEPENDENCY_CFLAGS
PKG_CONFIG_LIBDIR
PKG_CONFIG_PATH
OFF_T_FLAGS
-BUILD_GTK_LIBS
-BUILD_GTK_CFLAGS
PKG_CONFIG
OTOOL64
OTOOL
@@ -719,6 +717,14 @@ API_VERSION
MAINT
MAINTAINER_MODE_FALSE
MAINTAINER_MODE_TRUE
+host_os
+host_vendor
+host_cpu
+host
+build_os
+build_vendor
+build_cpu
+build
am__untar
am__tar
AMTAR
@@ -742,18 +748,6 @@ am__isrc
INSTALL_DATA
INSTALL_SCRIPT
INSTALL_PROGRAM
-target_os
-target_vendor
-target_cpu
-target
-host_os
-host_vendor
-host_cpu
-host
-build_os
-build_vendor
-build_cpu
-build
target_alias
host_alias
build_alias
@@ -820,6 +814,8 @@ PKG_CONFIG_PATH
PKG_CONFIG_LIBDIR
MONO_DEPENDENCY_CFLAGS
MONO_DEPENDENCY_LIBS
+PROFILER_CFLAGS
+PROFILER_LIBS
GLIB_CFLAGS
GLIB_LIBS
GIO_CFLAGS
@@ -872,7 +868,7 @@ sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var'
includedir='${prefix}/include'
oldincludedir='/usr/include'
-docdir='${datarootdir}/doc/${PACKAGE}'
+docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
infodir='${datarootdir}/info'
htmldir='${docdir}'
dvidir='${docdir}'
@@ -1372,7 +1368,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures this package to adapt to many kinds of systems.
+\`configure' configures gtk-sharp 2.99.1 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1420,7 +1416,7 @@ Fine tuning of the installation directories:
--infodir=DIR info documentation [DATAROOTDIR/info]
--localedir=DIR locale-dependent data [DATAROOTDIR/locale]
--mandir=DIR man documentation [DATAROOTDIR/man]
- --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE]
+ --docdir=DIR documentation root [DATAROOTDIR/doc/gtk-sharp]
--htmldir=DIR html documentation [DOCDIR]
--dvidir=DIR dvi documentation [DOCDIR]
--pdfdir=DIR pdf documentation [DOCDIR]
@@ -1437,12 +1433,13 @@ Program names:
System types:
--build=BUILD configure for building on BUILD [guessed]
--host=HOST cross-compile to build programs to run on HOST [BUILD]
- --target=TARGET configure for building compilers for TARGET [HOST]
_ACEOF
fi
if test -n "$ac_init_help"; then
-
+ case $ac_init_help in
+ short | recursive ) echo "Configuration of gtk-sharp 2.99.1:";;
+ esac
cat <<\_ACEOF
Optional Features:
@@ -1487,6 +1484,10 @@ Some influential environment variables:
C compiler flags for MONO_DEPENDENCY, overriding pkg-config
MONO_DEPENDENCY_LIBS
linker flags for MONO_DEPENDENCY, overriding pkg-config
+ PROFILER_CFLAGS
+ C compiler flags for PROFILER, overriding pkg-config
+ PROFILER_LIBS
+ linker flags for PROFILER, overriding pkg-config
GLIB_CFLAGS C compiler flags for GLIB, overriding pkg-config
GLIB_LIBS linker flags for GLIB, overriding pkg-config
GIO_CFLAGS C compiler flags for GIO, overriding pkg-config
@@ -1569,7 +1570,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-configure
+gtk-sharp configure 2.99.1
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2030,7 +2031,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by $as_me, which was
+It was created by gtk-sharp $as_me 2.99.1, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2378,6 +2379,9 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+am__api_version='1.11'
+
ac_aux_dir=
for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
if test -f "$ac_dir/install-sh"; then
@@ -2407,121 +2411,6 @@ ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var.
ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
-# Make sure we can run config.sub.
-$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
- as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
-$as_echo_n "checking build system type... " >&6; }
-if ${ac_cv_build+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_build_alias=$build_alias
-test "x$ac_build_alias" = x &&
- ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
-test "x$ac_build_alias" = x &&
- as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
-ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
- as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
-$as_echo "$ac_cv_build" >&6; }
-case $ac_cv_build in
-*-*-*) ;;
-*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
-esac
-build=$ac_cv_build
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_build
-shift
-build_cpu=$1
-build_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-build_os=$*
-IFS=$ac_save_IFS
-case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
-$as_echo_n "checking host system type... " >&6; }
-if ${ac_cv_host+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "x$host_alias" = x; then
- ac_cv_host=$ac_cv_build
-else
- ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
- as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
-$as_echo "$ac_cv_host" >&6; }
-case $ac_cv_host in
-*-*-*) ;;
-*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
-esac
-host=$ac_cv_host
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_host
-shift
-host_cpu=$1
-host_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-host_os=$*
-IFS=$ac_save_IFS
-case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5
-$as_echo_n "checking target system type... " >&6; }
-if ${ac_cv_target+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "x$target_alias" = x; then
- ac_cv_target=$ac_cv_host
-else
- ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` ||
- as_fn_error $? "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_target" >&5
-$as_echo "$ac_cv_target" >&6; }
-case $ac_cv_target in
-*-*-*) ;;
-*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5;;
-esac
-target=$ac_cv_target
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_target
-shift
-target_cpu=$1
-target_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-target_os=$*
-IFS=$ac_save_IFS
-case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac
-
-
-# The aliases save the names the user supplied, while $host etc.
-# will get canonicalized.
-test -n "$target_alias" &&
- test "$program_prefix$program_suffix$program_transform_name" = \
- NONENONEs,x,x, &&
- program_prefix=${target_alias}-
-
-ac_config_headers="$ac_config_headers config.h"
-
-am__api_version='1.11'
-
# Find a good install program. We prefer a C program (faster),
# so one script is as good as another. But avoid the broken or
# incompatible versions:
@@ -2957,8 +2846,8 @@ fi
# Define the identity of the package.
- PACKAGE=gtk-sharp
- VERSION=2.99.0
+ PACKAGE='gtk-sharp'
+ VERSION='2.99.1'
cat >>confdefs.h <<_ACEOF
@@ -2992,13 +2881,167 @@ MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
# in the wild :-( We should find a proper way to deprecate it ...
AMTAR='$${TAR-tar}'
-am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to create a ustar tar archive" >&5
+$as_echo_n "checking how to create a ustar tar archive... " >&6; }
+# Loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar plaintar pax cpio none'
+_am_tools=${am_cv_prog_tar_ustar-$_am_tools}
+# Do not fold the above two line into one, because Tru64 sh and
+# Solaris sh will not grok spaces in the rhs of `-'.
+for _am_tool in $_am_tools
+do
+ case $_am_tool in
+ gnutar)
+ for _am_tar in tar gnutar gtar;
+ do
+ { echo "$as_me:$LINENO: $_am_tar --version" >&5
+ ($_am_tar --version) >&5 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && break
+ done
+ am__tar="$_am_tar --format=ustar -chf - "'"$$tardir"'
+ am__tar_="$_am_tar --format=ustar -chf - "'"$tardir"'
+ am__untar="$_am_tar -xf -"
+ ;;
+ plaintar)
+ # Must skip GNU tar: if it does not support --format= it doesn't create
+ # ustar tarball either.
+ (tar --version) >/dev/null 2>&1 && continue
+ am__tar='tar chf - "$$tardir"'
+ am__tar_='tar chf - "$tardir"'
+ am__untar='tar xf -'
+ ;;
+ pax)
+ am__tar='pax -L -x ustar -w "$$tardir"'
+ am__tar_='pax -L -x ustar -w "$tardir"'
+ am__untar='pax -r'
+ ;;
+ cpio)
+ am__tar='find "$$tardir" -print | cpio -o -H ustar -L'
+ am__tar_='find "$tardir" -print | cpio -o -H ustar -L'
+ am__untar='cpio -i -H ustar -d'
+ ;;
+ none)
+ am__tar=false
+ am__tar_=false
+ am__untar=false
+ ;;
+ esac
+
+ # If the value was cached, stop now. We just wanted to have am__tar
+ # and am__untar set.
+ test -n "${am_cv_prog_tar_ustar}" && break
+
+ # tar/untar a dummy directory, and stop if the command works
+ rm -rf conftest.dir
+ mkdir conftest.dir
+ echo GrepMe > conftest.dir/file
+ { echo "$as_me:$LINENO: tardir=conftest.dir && eval $am__tar_ >conftest.tar" >&5
+ (tardir=conftest.dir && eval $am__tar_ >conftest.tar) >&5 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+ rm -rf conftest.dir
+ if test -s conftest.tar; then
+ { echo "$as_me:$LINENO: $am__untar <conftest.tar" >&5
+ ($am__untar <conftest.tar) >&5 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+ grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+ fi
+done
+rm -rf conftest.dir
+
+if ${am_cv_prog_tar_ustar+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ am_cv_prog_tar_ustar=$_am_tool
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_tar_ustar" >&5
+$as_echo "$am_cv_prog_tar_ustar" >&6; }
+# Make sure we can run config.sub.
+$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
+ as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
+$as_echo_n "checking build system type... " >&6; }
+if ${ac_cv_build+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_build_alias=$build_alias
+test "x$ac_build_alias" = x &&
+ ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
+test "x$ac_build_alias" = x &&
+ as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
+ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
+$as_echo "$ac_cv_build" >&6; }
+case $ac_cv_build in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
+esac
+build=$ac_cv_build
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_build
+shift
+build_cpu=$1
+build_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+build_os=$*
+IFS=$ac_save_IFS
+case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
+$as_echo_n "checking host system type... " >&6; }
+if ${ac_cv_host+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "x$host_alias" = x; then
+ ac_cv_host=$ac_cv_build
+else
+ ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
+$as_echo "$ac_cv_host" >&6; }
+case $ac_cv_host in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
+esac
+host=$ac_cv_host
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_host
+shift
+host_cpu=$1
+host_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+host_os=$*
+IFS=$ac_save_IFS
+case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
+
+
+ac_config_headers="$ac_config_headers config.h"
+
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5
$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; }
# Check whether --enable-maintainer-mode was given.
@@ -12731,11 +12774,6 @@ if test "x$PKG_CONFIG" = "xno"; then
as_fn_error $? "You need to install pkg-config" "$LINENO" 5
fi
-BUILD_GTK_CFLAGS=`$PKG_CONFIG --cflags gtk+-2.0`
-BUILD_GTK_LIBS=`$PKG_CONFIG --libs gtk+-2.0`
-
-
-
# The cast to long int works around a bug in the HP C Compiler
# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
@@ -12965,6 +13003,99 @@ $as_echo "yes" >&6; }
has_mono=true
fi
+#libmono and glib required for gui-thread-check profiler module
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PROFILER" >&5
+$as_echo_n "checking for PROFILER... " >&6; }
+
+if test -n "$PROFILER_CFLAGS"; then
+ pkg_cv_PROFILER_CFLAGS="$PROFILER_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"mono-2 glib-2.0\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "mono-2 glib-2.0") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_PROFILER_CFLAGS=`$PKG_CONFIG --cflags "mono-2 glib-2.0" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+if test -n "$PROFILER_LIBS"; then
+ pkg_cv_PROFILER_LIBS="$PROFILER_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"mono-2 glib-2.0\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "mono-2 glib-2.0") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_PROFILER_LIBS=`$PKG_CONFIG --libs "mono-2 glib-2.0" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ PROFILER_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "mono-2 glib-2.0" 2>&1`
+ else
+ PROFILER_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "mono-2 glib-2.0" 2>&1`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$PROFILER_PKG_ERRORS" >&5
+
+ as_fn_error $? "Package requirements (mono-2 glib-2.0) were not met:
+
+$PROFILER_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+Alternatively, you may set the environment variables PROFILER_CFLAGS
+and PROFILER_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details." "$LINENO" 5
+elif test $pkg_failed = untried; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+Alternatively, you may set the environment variables PROFILER_CFLAGS
+and PROFILER_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.
+See \`config.log' for more details" "$LINENO" 5; }
+else
+ PROFILER_CFLAGS=$pkg_cv_PROFILER_CFLAGS
+ PROFILER_LIBS=$pkg_cv_PROFILER_LIBS
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+fi
+
# Extract the first word of "gacutil", so it can be a program name with args.
set dummy gacutil; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
@@ -13777,9 +13908,6 @@ fi
-GDK_BACKEND=`pkg-config --variable=target gtk+-3.0`
-
-
# Extract the first word of "mdoc", so it can be a program name with args.
set dummy mdoc; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
@@ -13849,7 +13977,7 @@ fi
-ac_config_files="$ac_config_files AssemblyInfo.cs Makefile policy.config sources/Makefile parser/Makefile parser/gapi-3.0.pc parser/gapi3-fixup parser/gapi3-parser generator/Makefile generator/gapi3-codegen glib/Makefile glib/glib-sharp-3.0.pc glib/glib-sharp.dll.config gio/Makefile gio/gio-sharp-3.0.pc gio/gio-sharp.dll.config gio/glue/Makefile cairo/AssemblyInfo.cs cairo/Makefile pango/Makefile pango/pango-sharp.dll.config pango/glue/Makefile atk/Makefile atk/atk-sharp.dll.config atk/glue/Makefile gdk/Makefile gdk/gdk-sharp.dll.config gtk/Makefile gtk/gtk-sharp-3.0.pc gtk/gtk-sharp.dll.config gtk/glue/Makefile gtkdotnet/Makefile gtkdotnet/gtk-dotnet.dll.config gtkdotnet/gtk-dotnet-3.0.pc doc/Makefile sample/GtkDemo/Makefile sample/Makefile sample/pixmaps/Makefile sample/test/Makefile sample/valtest/Makefile sample/valtest/valtest.exe.config sample/opaquetest/Makefile sample/opaquetest/opaquetest.exe.config sample/gio/Makefile sample/gtk-gio/Makefile"
+ac_config_files="$ac_config_files AssemblyInfo.cs Makefile policy.config sources/Makefile parser/Makefile parser/gapi-3.0.pc parser/gapi3-fixup parser/gapi3-parser generator/Makefile generator/gapi3-codegen glib/Makefile glib/glib-sharp-3.0.pc glib/glib-sharp.dll.config gio/Makefile gio/gio-sharp-3.0.pc gio/gio-sharp.dll.config gio/glue/Makefile cairo/AssemblyInfo.cs cairo/Makefile pango/Makefile pango/pango-sharp.dll.config pango/glue/Makefile atk/Makefile atk/atk-sharp.dll.config atk/glue/Makefile gdk/Makefile gdk/gdk-sharp.dll.config gtk/Makefile gtk/gtk-sharp-3.0.pc gtk/gtk-sharp.dll.config gtk/glue/Makefile gtk/gui-thread-check/Makefile gtk/gui-thread-check/profiler/Makefile gtkdotnet/Makefile gtkdotnet/gtk-dotnet.dll.config gtkdotnet/gtk-dotnet-3.0.pc doc/Makefile sample/GtkDemo/Makefile sample/Makefile sample/pixmaps/Makefile sample/test/Makefile sample/valtest/Makefile sample/valtest/valtest.exe.config sample/opaquetest/Makefile sample/opaquetest/opaquetest.exe.config sample/gio/Makefile sample/gtk-gio/Makefile"
cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
@@ -14393,7 +14521,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by $as_me, which was
+This file was extended by gtk-sharp $as_me 2.99.1, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -14459,7 +14587,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-config.status
+gtk-sharp config.status 2.99.1
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
@@ -14901,6 +15029,8 @@ do
"gtk/gtk-sharp-3.0.pc") CONFIG_FILES="$CONFIG_FILES gtk/gtk-sharp-3.0.pc" ;;
"gtk/gtk-sharp.dll.config") CONFIG_FILES="$CONFIG_FILES gtk/gtk-sharp.dll.config" ;;
"gtk/glue/Makefile") CONFIG_FILES="$CONFIG_FILES gtk/glue/Makefile" ;;
+ "gtk/gui-thread-check/Makefile") CONFIG_FILES="$CONFIG_FILES gtk/gui-thread-check/Makefile" ;;
+ "gtk/gui-thread-check/profiler/Makefile") CONFIG_FILES="$CONFIG_FILES gtk/gui-thread-check/profiler/Makefile" ;;
"gtkdotnet/Makefile") CONFIG_FILES="$CONFIG_FILES gtkdotnet/Makefile" ;;
"gtkdotnet/gtk-dotnet.dll.config") CONFIG_FILES="$CONFIG_FILES gtkdotnet/gtk-dotnet.dll.config" ;;
"gtkdotnet/gtk-dotnet-3.0.pc") CONFIG_FILES="$CONFIG_FILES gtkdotnet/gtk-dotnet-3.0.pc" ;;
diff --git a/configure.ac b/configure.ac
index 4586a14..c65c12d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,8 +1,9 @@
-AC_INIT(README)
-AC_CANONICAL_SYSTEM
+AC_INIT(gtk-sharp, 2.99.1)
+
+AM_INIT_AUTOMAKE([1.10 no-dist-gzip dist-bzip2 tar-ustar foreign])
+AC_CANONICAL_HOST
AM_CONFIG_HEADER(config.h)
-AM_INIT_AUTOMAKE(gtk-sharp, 2.99.0)
AM_MAINTAINER_MODE
API_VERSION=3.0.0.0
@@ -89,12 +90,6 @@ if test "x$PKG_CONFIG" = "xno"; then
AC_MSG_ERROR([You need to install pkg-config])
fi
-dnl for use on the build system
-BUILD_GTK_CFLAGS=`$PKG_CONFIG --cflags gtk+-2.0`
-BUILD_GTK_LIBS=`$PKG_CONFIG --libs gtk+-2.0`
-AC_SUBST(BUILD_GTK_CFLAGS)
-AC_SUBST(BUILD_GTK_LIBS)
-
AC_CHECK_SIZEOF(off_t)
OFF_T_FLAGS="-define:OFF_T_$ac_cv_sizeof_off_t"
AC_SUBST(OFF_T_FLAGS)
@@ -102,6 +97,9 @@ AC_SUBST(OFF_T_FLAGS)
MONO_REQUIRED_VERSION=2.8
PKG_CHECK_MODULES(MONO_DEPENDENCY, mono >= $MONO_REQUIRED_VERSION, has_mono=true, has_mono=false)
+#libmono and glib required for gui-thread-check profiler module
+PKG_CHECK_MODULES(PROFILER, mono-2 glib-2.0)
+
AC_PATH_PROG(GACUTIL, gacutil, no)
if test "x$GACUTIL" = "xno" ; then
AC_MSG_ERROR([No gacutil tool found. You need to install either the mono or .Net SDK.])
@@ -196,9 +194,6 @@ PKG_CHECK_MODULES(GTK, gtk+-3.0 >= $GTK_REQUIRED_VERSION)
AC_SUBST(GTK_CFLAGS)
AC_SUBST(GTK_LIBS)
-GDK_BACKEND=`pkg-config --variable=target gtk+-3.0`
-AC_SUBST(GDK_BACKEND)
-
AC_PATH_PROG(MDOC, mdoc, no)
if test "x$MDOC" = "xno"; then
enable_monodoc=no
@@ -246,6 +241,8 @@ gtk/Makefile
gtk/gtk-sharp-3.0.pc
gtk/gtk-sharp.dll.config
gtk/glue/Makefile
+gtk/gui-thread-check/Makefile
+gtk/gui-thread-check/profiler/Makefile
gtkdotnet/Makefile
gtkdotnet/gtk-dotnet.dll.config
gtkdotnet/gtk-dotnet-3.0.pc
diff --git a/doc/Makefile.in b/doc/Makefile.in
index 98a8986..2455c8b 100644
--- a/doc/Makefile.in
+++ b/doc/Makefile.in
@@ -51,7 +51,6 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-target_triplet = @target@
subdir = doc
DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
ChangeLog
@@ -113,8 +112,6 @@ AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BUILD_EXEEXT = @BUILD_EXEEXT@
-BUILD_GTK_CFLAGS = @BUILD_GTK_CFLAGS@
-BUILD_GTK_LIBS = @BUILD_GTK_LIBS@
CAIRO_API_VERSION = @CAIRO_API_VERSION@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
@@ -138,7 +135,6 @@ EXEEXT = @EXEEXT@
FGREP = @FGREP@
GACUTIL = @GACUTIL@
GACUTIL_FLAGS = @GACUTIL_FLAGS@
-GDK_BACKEND = @GDK_BACKEND@
GENERATED_SOURCES = @GENERATED_SOURCES@
GIO_CFLAGS = @GIO_CFLAGS@
GIO_LIBS = @GIO_LIBS@
@@ -193,6 +189,8 @@ PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POLICY_VERSIONS = @POLICY_VERSIONS@
+PROFILER_CFLAGS = @PROFILER_CFLAGS@
+PROFILER_LIBS = @PROFILER_LIBS@
RANLIB = @RANLIB@
RUNTIME = @RUNTIME@
SED = @SED@
@@ -248,11 +246,7 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
-target = @target@
target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/gdk/Display.cs b/gdk/Display.cs
index afd5303..02def9f 100644
--- a/gdk/Display.cs
+++ b/gdk/Display.cs
@@ -80,19 +80,6 @@ namespace Gdk {
result [i] = list [i] as Device;
return result;
}
-
- [DllImport ("libgdk-win32-3.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
- static extern void gdk_display_add_client_message_filter (IntPtr raw, IntPtr message_type, GdkSharp.FilterFuncNative func, IntPtr data);
-
- public void AddClientMessageFilter (Gdk.Atom message_type, Gdk.FilterFunc func)
- {
- GdkSharp.FilterFuncWrapper func_wrapper = new GdkSharp.FilterFuncWrapper (func);
- if (!Data.Contains ("client_message_filter_func_list"))
- Data ["client_message_filter_func_list"] = new ArrayList ();
- ArrayList func_list = Data ["client_message_filter_func_list"] as ArrayList;
- func_list.Add (func_wrapper);
- gdk_display_add_client_message_filter (Handle, message_type == null ? IntPtr.Zero : message_type.Handle, func_wrapper.NativeDelegate, IntPtr.Zero);
- }
}
}
diff --git a/gdk/Global.cs b/gdk/Global.cs
index ce67b86..a129d90 100644
--- a/gdk/Global.cs
+++ b/gdk/Global.cs
@@ -174,11 +174,6 @@ namespace Gdk {
result [i] = (VisualType) tmp [i];
return result;
}
-
- public static void AddClientMessageFilter (Gdk.Atom message_type, Gdk.FilterFunc func)
- {
- Gdk.Display.Default.AddClientMessageFilter (message_type, func);
- }
}
}
diff --git a/gdk/Makefile.in b/gdk/Makefile.in
index 6cfb446..8a4c646 100644
--- a/gdk/Makefile.in
+++ b/gdk/Makefile.in
@@ -51,7 +51,6 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-target_triplet = @target@
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(srcdir)/gdk-sharp.dll.config.in \
$(top_srcdir)/Makefile.include
@@ -114,8 +113,6 @@ AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BUILD_EXEEXT = @BUILD_EXEEXT@
-BUILD_GTK_CFLAGS = @BUILD_GTK_CFLAGS@
-BUILD_GTK_LIBS = @BUILD_GTK_LIBS@
CAIRO_API_VERSION = @CAIRO_API_VERSION@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
@@ -139,7 +136,6 @@ EXEEXT = @EXEEXT@
FGREP = @FGREP@
GACUTIL = @GACUTIL@
GACUTIL_FLAGS = @GACUTIL_FLAGS@
-GDK_BACKEND = @GDK_BACKEND@
GENERATED_SOURCES = @GENERATED_SOURCES@
GIO_CFLAGS = @GIO_CFLAGS@
GIO_LIBS = @GIO_LIBS@
@@ -194,6 +190,8 @@ PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POLICY_VERSIONS = @POLICY_VERSIONS@
+PROFILER_CFLAGS = @PROFILER_CFLAGS@
+PROFILER_LIBS = @PROFILER_LIBS@
RANLIB = @RANLIB@
RUNTIME = @RUNTIME@
SED = @SED@
@@ -249,11 +247,7 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
-target = @target@
target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/gdk/Window.cs b/gdk/Window.cs
index a5d7781..75c2d82 100644
--- a/gdk/Window.cs
+++ b/gdk/Window.cs
@@ -25,7 +25,7 @@
namespace Gdk {
using System;
- using System.Collections;
+ using System.Collections.Generic;
using System.Runtime.InteropServices;
public partial class Window {
@@ -119,11 +119,12 @@ namespace Gdk {
[DllImport ("libgdk-win32-3.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern void gdk_window_remove_filter (IntPtr handle, GdkSharp.FilterFuncNative wrapper, IntPtr data);
- static Hashtable filter_all_hash;
- static Hashtable FilterAllHash {
+ static IDictionary<FilterFunc, GdkSharp.FilterFuncWrapper> filter_all_hash;
+ static IDictionary<FilterFunc, GdkSharp.FilterFuncWrapper> FilterAllHash {
get {
- if (filter_all_hash == null)
- filter_all_hash = new Hashtable ();
+ if (filter_all_hash == null) {
+ filter_all_hash = new Dictionary<FilterFunc, GdkSharp.FilterFuncWrapper> ();
+ }
return filter_all_hash;
}
}
@@ -137,18 +138,19 @@ namespace Gdk {
public static void RemoveFilterForAll (FilterFunc func)
{
- GdkSharp.FilterFuncWrapper wrapper = FilterAllHash [func] as GdkSharp.FilterFuncWrapper;
- if (wrapper == null)
- return;
- FilterAllHash.Remove (func);
- gdk_window_remove_filter (IntPtr.Zero, wrapper.NativeDelegate, IntPtr.Zero);
+ GdkSharp.FilterFuncWrapper wrapper = null;
+ if (FilterAllHash.TryGetValue (func, out wrapper)) {
+ FilterAllHash.Remove (func);
+ gdk_window_remove_filter (IntPtr.Zero, wrapper.NativeDelegate, IntPtr.Zero);
+ }
}
public void AddFilter (FilterFunc function)
{
- if (!Data.Contains ("filter_func_hash"))
- Data ["filter_func_hash"] = new Hashtable ();
- Hashtable hash = Data ["filter_func_hash"] as Hashtable;
+ if (!Data.ContainsKey ("filter_func_hash")) {
+ Data ["filter_func_hash"] = new Dictionary<FilterFunc, GdkSharp.FilterFuncWrapper> ();
+ }
+ var hash = Data ["filter_func_hash"] as Dictionary<FilterFunc, GdkSharp.FilterFuncWrapper>;
GdkSharp.FilterFuncWrapper wrapper = new GdkSharp.FilterFuncWrapper (function);
hash [function] = wrapper;
gdk_window_add_filter (Handle, wrapper.NativeDelegate, IntPtr.Zero);
@@ -156,12 +158,12 @@ namespace Gdk {
public void RemoveFilter (FilterFunc function)
{
- Hashtable hash = Data ["filter_func_hash"] as Hashtable;
- GdkSharp.FilterFuncWrapper wrapper = hash [function] as GdkSharp.FilterFuncWrapper;
- if (wrapper == null)
- return;
- hash.Remove (function);
- gdk_window_remove_filter (Handle, wrapper.NativeDelegate, IntPtr.Zero);
+ var hash = Data ["filter_func_hash"] as Dictionary<FilterFunc, GdkSharp.FilterFuncWrapper>;
+ GdkSharp.FilterFuncWrapper wrapper = null;
+ if (hash.TryGetValue (function, out wrapper)) {
+ hash.Remove (function);
+ gdk_window_remove_filter (Handle, wrapper.NativeDelegate, IntPtr.Zero);
+ }
}
#if MANLY_ENOUGH_TO_INCLUDE
diff --git a/generator/AliasGen.cs b/generator/AliasGen.cs
index 19911d6..3134aa7 100644
--- a/generator/AliasGen.cs
+++ b/generator/AliasGen.cs
@@ -1,30 +1,30 @@
-// GtkSharp.Generation.AliasGen.cs - The Alias type Generatable.
-//
-// Author: Mike Kestner <mkestner@speakeasy.net>
-//
-// Copyright (c) 2003 Mike Kestner
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of version 2 of the 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
-// General Public License for more details.
-//
-// You should have received a copy of the GNU 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 GtkSharp.Generation {
-
- using System;
-
- public class AliasGen : SimpleBase {
-
- public AliasGen (string ctype, string type) : base (ctype, type, String.Empty) {}
- }
-}
-
+// GtkSharp.Generation.AliasGen.cs - The Alias type Generatable.
+//
+// Author: Mike Kestner <mkestner@speakeasy.net>
+//
+// Copyright (c) 2003 Mike Kestner
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of version 2 of the 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
+// General Public License for more details.
+//
+// You should have received a copy of the GNU 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 GtkSharp.Generation {
+
+ using System;
+
+ public class AliasGen : SimpleBase {
+
+ public AliasGen (string ctype, string type) : base (ctype, type, String.Empty) {}
+ }
+}
+
diff --git a/generator/ArrayParameter.cs b/generator/ArrayParameter.cs
new file mode 100644
index 0000000..9b4f803
--- /dev/null
+++ b/generator/ArrayParameter.cs
@@ -0,0 +1,166 @@
+// GtkSharp.Generation.Parameters.cs - The Parameters Generation Class.
+//
+// Author: Mike Kestner <mkestner@speakeasy.net>
+//
+// Copyright (c) 2001-2003 Mike Kestner
+// Copyright (c) 2004 Novell, Inc.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of version 2 of the 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
+// General Public License for more details.
+//
+// You should have received a copy of the GNU 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 GtkSharp.Generation {
+
+ using System;
+ using System.Collections.Generic;
+ using System.Xml;
+
+ public class ArrayParameter : Parameter {
+
+ bool null_terminated;
+
+ public ArrayParameter (XmlElement elem) : base (elem)
+ {
+ null_terminated = elem.GetAttributeAsBoolean ("null_term_array");
+ }
+
+ public override string MarshalType {
+ get {
+ if (Generatable is StructBase)
+ return CSType;
+ else
+ return base.MarshalType;
+ }
+ }
+
+ bool NullTerminated {
+ get {
+ return null_terminated;
+ }
+ }
+
+ public override string[] Prepare {
+ get {
+ if (CSType == MarshalType)
+ return new string [0];
+
+ var result = new List<string> ();
+ result.Add (String.Format ("int cnt_{0} = {0} == null ? 0 : {0}.Length;", CallName));
+ result.Add (String.Format ("{0}[] native_{1} = new {0} [cnt_{1}" + (NullTerminated ? " + 1" : "") + "];", MarshalType.TrimEnd('[', ']'), CallName));
+ result.Add (String.Format ("for (int i = 0; i < cnt_{0}; i++)", CallName));
+ IGeneratable gen = Generatable;
+ if (gen is IManualMarshaler)
+ result.Add (String.Format ("\tnative_{0} [i] = {1};", CallName, (gen as IManualMarshaler).AllocNative (CallName + "[i]")));
+ else
+ result.Add (String.Format ("\tnative_{0} [i] = {1};", CallName, gen.CallByName (CallName + "[i]")));
+
+ if (NullTerminated)
+ result.Add (String.Format ("native_{0} [cnt_{0}] = IntPtr.Zero;", CallName));
+ return result.ToArray ();
+ }
+ }
+
+ public override string CallString {
+ get {
+ if (CSType != MarshalType)
+ return "native_" + CallName;
+ else
+ return CallName;
+ }
+ }
+
+ public override string[] Finish {
+ get {
+ if (CSType == MarshalType)
+ return new string [0];
+
+ IGeneratable gen = Generatable;
+ if (gen is IManualMarshaler) {
+ string [] result = new string [4];
+ result [0] = "for (int i = 0; i < native_" + CallName + ".Length" + (NullTerminated ? " - 1" : "") + "; i++) {";
+ result [1] = "\t" + CallName + " [i] = " + Generatable.FromNative ("native_" + CallName + "[i]") + ";";
+ result [2] = "\t" + (gen as IManualMarshaler).ReleaseNative ("native_" + CallName + "[i]") + ";";
+ result [3] = "}";
+ return result;
+ }
+
+ return new string [0];
+ }
+ }
+ }
+
+ public class ArrayCountPair : ArrayParameter {
+
+ XmlElement count_elem;
+ bool invert;
+
+ public ArrayCountPair (XmlElement array_elem, XmlElement count_elem, bool invert) : base (array_elem)
+ {
+ this.count_elem = count_elem;
+ this.invert = invert;
+ }
+
+ string CountNativeType {
+ get {
+ return SymbolTable.Table.GetMarshalType(count_elem.GetAttribute("type"));
+ }
+ }
+
+ string CountType {
+ get {
+ return SymbolTable.Table.GetCSType(count_elem.GetAttribute("type"));
+ }
+ }
+
+ string CountCast {
+ get {
+ if (CountType == "int")
+ return String.Empty;
+ else
+ return "(" + CountType + ") ";
+ }
+ }
+
+ string CountName {
+ get {
+ return SymbolTable.Table.MangleName (count_elem.GetAttribute("name"));
+ }
+ }
+
+ string CallCount (string name)
+ {
+ string result = CountCast + "(" + name + " == null ? 0 : " + name + ".Length)";
+ IGeneratable gen = SymbolTable.Table[count_elem.GetAttribute("type")];
+ return gen.CallByName (result);
+ }
+
+ public override string CallString {
+ get {
+ if (invert)
+ return CallCount (CallName) + ", " + base.CallString;
+ else
+ return base.CallString + ", " + CallCount (CallName);
+ }
+ }
+
+ public override string NativeSignature {
+ get {
+ if (invert)
+ return CountNativeType + " " + CountName + ", " + MarshalType + " " + Name;
+ else
+ return MarshalType + " " + Name + ", " + CountNativeType + " " + CountName;
+ }
+ }
+ }
+}
diff --git a/generator/BoxedGen.cs b/generator/BoxedGen.cs
index a0a3e38..ef79b1c 100644
--- a/generator/BoxedGen.cs
+++ b/generator/BoxedGen.cs
@@ -1,83 +1,83 @@
-// GtkSharp.Generation.BoxedGen.cs - The Boxed Generatable.
-//
-// Author: Mike Kestner <mkestner@speakeasy.net>
-//
-// Copyright (c) 2001-2003 Mike Kestner
-// Copyright (c) 2003-2004 Novell, Inc.
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of version 2 of the 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
-// General Public License for more details.
-//
-// You should have received a copy of the GNU 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 GtkSharp.Generation {
-
- using System;
- using System.IO;
- using System.Xml;
-
- public class BoxedGen : StructBase {
-
- public BoxedGen (XmlElement ns, XmlElement elem) : base (ns, elem) {}
-
- public override void Generate (GenerationInfo gen_info)
- {
- Method copy = methods["Copy"] as Method;
- Method free = methods["Free"] as Method;
- methods.Remove ("Copy");
- methods.Remove ("Free");
-
- gen_info.CurrentType = QualifiedName;
-
- StreamWriter sw = gen_info.Writer = gen_info.OpenStream (Name);
- base.Generate (gen_info);
- sw.WriteLine ("\t\tpublic static explicit operator GLib.Value (" + QualifiedName + " boxed)");
- sw.WriteLine ("\t\t{");
-
- sw.WriteLine ("\t\t\tGLib.Value val = GLib.Value.Empty;");
- sw.WriteLine ("\t\t\tval.Init (" + QualifiedName + ".GType);");
- sw.WriteLine ("\t\t\tval.Val = boxed;");
- sw.WriteLine ("\t\t\treturn val;");
- sw.WriteLine ("\t\t}");
- sw.WriteLine ();
- sw.WriteLine ("\t\tpublic static explicit operator " + QualifiedName + " (GLib.Value val)");
- sw.WriteLine ("\t\t{");
-
- sw.WriteLine ("\t\t\treturn (" + QualifiedName + ") val.Val;");
- sw.WriteLine ("\t\t}");
-
- if (copy != null && copy.IsDeprecated) {
- sw.WriteLine ();
- sw.WriteLine ("\t\t[Obsolete(\"This is a no-op\")]");
- sw.WriteLine ("\t\tpublic " + QualifiedName + " Copy() {");
- sw.WriteLine ("\t\t\treturn this;");
- sw.WriteLine ("\t\t}");
- }
-
- if (free != null && free.IsDeprecated) {
- sw.WriteLine ();
- sw.WriteLine ("\t\t[Obsolete(\"This is a no-op\")]");
- sw.WriteLine ("\t\tpublic " + QualifiedName + " Free () {");
- sw.WriteLine ("\t\t\treturn this;");
- sw.WriteLine ("\t\t}");
- }
-
- sw.WriteLine ("#endregion");
- sw.WriteLine ("\t}");
- sw.WriteLine ("}");
- sw.Close ();
- gen_info.Writer = null;
- Statistics.BoxedCount++;
- }
- }
-}
-
+// GtkSharp.Generation.BoxedGen.cs - The Boxed Generatable.
+//
+// Author: Mike Kestner <mkestner@speakeasy.net>
+//
+// Copyright (c) 2001-2003 Mike Kestner
+// Copyright (c) 2003-2004 Novell, Inc.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of version 2 of the 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
+// General Public License for more details.
+//
+// You should have received a copy of the GNU 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 GtkSharp.Generation {
+
+ using System;
+ using System.IO;
+ using System.Xml;
+
+ public class BoxedGen : StructBase {
+
+ public BoxedGen (XmlElement ns, XmlElement elem) : base (ns, elem) {}
+
+ public override void Generate (GenerationInfo gen_info)
+ {
+ Method copy = GetMethod ("Copy");
+ Method free = GetMethod ("Free");
+ Methods.Remove ("Copy");
+ Methods.Remove ("Free");
+
+ gen_info.CurrentType = QualifiedName;
+
+ StreamWriter sw = gen_info.Writer = gen_info.OpenStream (Name);
+ base.Generate (gen_info);
+ sw.WriteLine ("\t\tpublic static explicit operator GLib.Value (" + QualifiedName + " boxed)");
+ sw.WriteLine ("\t\t{");
+
+ sw.WriteLine ("\t\t\tGLib.Value val = GLib.Value.Empty;");
+ sw.WriteLine ("\t\t\tval.Init (" + QualifiedName + ".GType);");
+ sw.WriteLine ("\t\t\tval.Val = boxed;");
+ sw.WriteLine ("\t\t\treturn val;");
+ sw.WriteLine ("\t\t}");
+ sw.WriteLine ();
+ sw.WriteLine ("\t\tpublic static explicit operator " + QualifiedName + " (GLib.Value val)");
+ sw.WriteLine ("\t\t{");
+
+ sw.WriteLine ("\t\t\treturn (" + QualifiedName + ") val.Val;");
+ sw.WriteLine ("\t\t}");
+
+ if (copy != null && copy.IsDeprecated) {
+ sw.WriteLine ();
+ sw.WriteLine ("\t\t[Obsolete(\"This is a no-op\")]");
+ sw.WriteLine ("\t\tpublic " + QualifiedName + " Copy() {");
+ sw.WriteLine ("\t\t\treturn this;");
+ sw.WriteLine ("\t\t}");
+ }
+
+ if (free != null && free.IsDeprecated) {
+ sw.WriteLine ();
+ sw.WriteLine ("\t\t[Obsolete(\"This is a no-op\")]");
+ sw.WriteLine ("\t\tpublic " + QualifiedName + " Free () {");
+ sw.WriteLine ("\t\t\treturn this;");
+ sw.WriteLine ("\t\t}");
+ }
+
+ sw.WriteLine ("#endregion");
+ sw.WriteLine ("\t}");
+ sw.WriteLine ("}");
+ sw.Close ();
+ gen_info.Writer = null;
+ Statistics.BoxedCount++;
+ }
+ }
+}
+
diff --git a/generator/ByRefGen.cs b/generator/ByRefGen.cs
index 7a2641e..232c325 100644
--- a/generator/ByRefGen.cs
+++ b/generator/ByRefGen.cs
@@ -1,63 +1,63 @@
-// GtkSharp.Generation.ByRefGen.cs - The ByRef type Generatable.
-//
-// Author: Mike Kestner <mkestner@novell.com>
-//
-// Copyright (c) 2003 Mike Kestner
-// Copyright (c) 2004 Novell, Inc.
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of version 2 of the 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
-// General Public License for more details.
-//
-// You should have received a copy of the GNU 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 GtkSharp.Generation {
-
- using System;
-
- public class ByRefGen : SimpleBase, IManualMarshaler {
-
- public ByRefGen (string ctype, string type) : base (ctype, type, type + ".Empty") {}
-
- public override string MarshalType {
- get {
- return "IntPtr";
- }
- }
-
- public override string CallByName (string var_name)
- {
- return "native_" + var_name;
- }
-
- public string AllocNative ()
- {
- return "Marshal.AllocHGlobal (Marshal.SizeOf (typeof (" + QualifiedName + ")))";
- }
-
- public string AllocNative (string var_name)
- {
- return "GLib.Marshaller.StructureToPtrAlloc (" + var_name + ")";
- }
-
- public override string FromNative (string var_name)
- {
- return String.Format ("({0}) Marshal.PtrToStructure ({1}, typeof ({0}))", QualifiedName, var_name);
- }
-
- public string ReleaseNative (string var_name)
- {
- return "Marshal.FreeHGlobal (" + var_name + ")";
- }
- }
-}
-
+// GtkSharp.Generation.ByRefGen.cs - The ByRef type Generatable.
+//
+// Author: Mike Kestner <mkestner@novell.com>
+//
+// Copyright (c) 2003 Mike Kestner
+// Copyright (c) 2004 Novell, Inc.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of version 2 of the 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
+// General Public License for more details.
+//
+// You should have received a copy of the GNU 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 GtkSharp.Generation {
+
+ using System;
+
+ public class ByRefGen : SimpleBase, IManualMarshaler {
+
+ public ByRefGen (string ctype, string type) : base (ctype, type, type + ".Empty") {}
+
+ public override string MarshalType {
+ get {
+ return "IntPtr";
+ }
+ }
+
+ public override string CallByName (string var_name)
+ {
+ return "native_" + var_name;
+ }
+
+ public string AllocNative ()
+ {
+ return "Marshal.AllocHGlobal (Marshal.SizeOf (typeof (" + QualifiedName + ")))";
+ }
+
+ public string AllocNative (string var_name)
+ {
+ return "GLib.Marshaller.StructureToPtrAlloc (" + var_name + ")";
+ }
+
+ public override string FromNative (string var_name)
+ {
+ return String.Format ("({0}) Marshal.PtrToStructure ({1}, typeof ({0}))", QualifiedName, var_name);
+ }
+
+ public string ReleaseNative (string var_name)
+ {
+ return "Marshal.FreeHGlobal (" + var_name + ")";
+ }
+ }
+}
+
diff --git a/generator/ChildProperty.cs b/generator/ChildProperty.cs
index fe361ed..a3041d0 100644
--- a/generator/ChildProperty.cs
+++ b/generator/ChildProperty.cs
@@ -1,45 +1,45 @@
-// GtkSharp.Generation.ChildProperty.cs - GtkContainer child properties
-//
-// Copyright (c) 2004 Novell, Inc.
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of version 2 of the 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
-// General Public License for more details.
-//
-// You should have received a copy of the GNU 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 GtkSharp.Generation {
-
- using System;
- using System.Collections;
- using System.IO;
- using System.Xml;
-
- public class ChildProperty : Property {
-
- public ChildProperty (XmlElement elem, ClassBase container_type) : base (elem, container_type) {}
-
- protected override string PropertyAttribute (string qpname) {
- return "[Gtk.ChildProperty (" + qpname + ")]";
- }
-
- protected override string RawGetter (string qpname) {
- return "parent.ChildGetProperty (child, " + qpname + ")";
- }
-
- protected override string RawSetter (string qpname) {
- return "parent.ChildSetProperty(child, " + qpname + ", val)";
- }
-
- }
-}
-
+// GtkSharp.Generation.ChildProperty.cs - GtkContainer child properties
+//
+// Copyright (c) 2004 Novell, Inc.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of version 2 of the 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
+// General Public License for more details.
+//
+// You should have received a copy of the GNU 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 GtkSharp.Generation {
+
+ using System;
+ using System.Collections;
+ using System.IO;
+ using System.Xml;
+
+ public class ChildProperty : Property {
+
+ public ChildProperty (XmlElement elem, ClassBase container_type) : base (elem, container_type) {}
+
+ protected override string PropertyAttribute (string qpname) {
+ return "[Gtk.ChildProperty (" + qpname + ")]";
+ }
+
+ protected override string RawGetter (string qpname) {
+ return "parent.ChildGetProperty (child, " + qpname + ")";
+ }
+
+ protected override string RawSetter (string qpname) {
+ return "parent.ChildSetProperty(child, " + qpname + ", val)";
+ }
+
+ }
+}
+
diff --git a/generator/ClassBase.cs b/generator/ClassBase.cs
index 95d5df8..8c77764 100644
--- a/generator/ClassBase.cs
+++ b/generator/ClassBase.cs
@@ -26,27 +26,34 @@
namespace GtkSharp.Generation {
using System;
using System.Collections;
+ using System.Collections.Generic;
using System.IO;
using System.Xml;
public abstract class ClassBase : GenBase {
- protected Hashtable props = new Hashtable();
- protected Hashtable fields = new Hashtable();
- protected Hashtable methods = new Hashtable();
- protected ArrayList interfaces = new ArrayList();
- protected ArrayList managed_interfaces = new ArrayList();
- protected ArrayList ctors = new ArrayList();
+ private IDictionary<string, Property> props = new Dictionary<string, Property> ();
+ private IDictionary<string, ObjectField> fields = new Dictionary<string, ObjectField> ();
+ private IDictionary<string, Method> methods = new Dictionary<string, Method> ();
+ protected IList<string> interfaces = new List<string>();
+ protected IList<string> managed_interfaces = new List<string>();
+ protected IList<Ctor> ctors = new List<Ctor>();
private bool ctors_initted = false;
- private Hashtable clash_map;
+ private Dictionary<string, Ctor> clash_map;
private bool deprecated = false;
private bool isabstract = false;
- public Hashtable Methods {
+ public IDictionary<string, Method> Methods {
get {
return methods;
}
- }
+ }
+
+ public IDictionary<string, Property> Properties {
+ get {
+ return props;
+ }
+ }
public ClassBase Parent {
get {
@@ -61,20 +68,13 @@ namespace GtkSharp.Generation {
protected ClassBase (XmlElement ns, XmlElement elem) : base (ns, elem) {
- if (elem.HasAttribute ("deprecated")) {
- string attr = elem.GetAttribute ("deprecated");
- deprecated = attr == "1" || attr == "true";
- }
-
- if (elem.HasAttribute ("abstract")) {
- string attr = elem.GetAttribute ("abstract");
- isabstract = attr == "1" || attr == "true";
- }
+ deprecated = elem.GetAttributeAsBoolean ("deprecated");
+ isabstract = elem.GetAttributeAsBoolean ("abstract");
foreach (XmlNode node in elem.ChildNodes) {
if (!(node is XmlElement)) continue;
XmlElement member = (XmlElement) node;
- if (member.HasAttribute ("hidden"))
+ if (member.GetAttributeAsBoolean ("hidden"))
continue;
string name;
@@ -227,7 +227,7 @@ namespace GtkSharp.Generation {
if (node.Name != "interface")
continue;
XmlElement element = (XmlElement) node;
- if (element.HasAttribute ("hidden"))
+ if (element.GetAttributeAsBoolean ("hidden"))
continue;
if (element.HasAttribute ("cname"))
interfaces.Add (element.GetAttribute ("cname"));
@@ -247,8 +247,8 @@ namespace GtkSharp.Generation {
(fields != null) && fields.ContainsKey(mname.Substring(3))));
}
- public void GenMethods (GenerationInfo gen_info, Hashtable collisions, ClassBase implementor)
- {
+ public void GenMethods (GenerationInfo gen_info, IDictionary<string, bool> collisions, ClassBase implementor)
+ {
if (methods == null)
return;
@@ -257,7 +257,7 @@ namespace GtkSharp.Generation {
continue;
string oname = null, oprotection = null;
- if (collisions != null && collisions.Contains (method.Name)) {
+ if (collisions != null && collisions.ContainsKey (method.Name)) {
oname = method.Name;
oprotection = method.Protection;
method.Name = QualifiedName + "." + method.Name;
@@ -273,12 +273,16 @@ namespace GtkSharp.Generation {
public Method GetMethod (string name)
{
- return (Method) methods[name];
+ Method m = null;
+ methods.TryGetValue (name, out m);
+ return m;
}
public Property GetProperty (string name)
{
- return (Property) props[name];
+ Property prop = null;
+ props.TryGetValue (name, out prop);
+ return prop;
}
public Method GetMethodRecursively (string name)
@@ -339,7 +343,7 @@ namespace GtkSharp.Generation {
return false;
}
- public ArrayList Ctors { get { return ctors; } }
+ public IList<Ctor> Ctors { get { return ctors; } }
bool HasStaticCtor (string name)
{
@@ -361,12 +365,12 @@ namespace GtkSharp.Generation {
if (Parent != null)
Parent.InitializeCtors ();
- ArrayList valid_ctors = new ArrayList();
- clash_map = new Hashtable();
+ var valid_ctors = new List<Ctor>();
+ clash_map = new Dictionary<string, Ctor>();
foreach (Ctor ctor in ctors) {
- if (clash_map.Contains (ctor.Signature.Types)) {
- Ctor clash = clash_map [ctor.Signature.Types] as Ctor;
+ if (clash_map.ContainsKey (ctor.Signature.Types)) {
+ Ctor clash = clash_map [ctor.Signature.Types];
Ctor alter = ctor.Preferred ? clash : ctor;
alter.IsStatic = true;
if (Parent != null && Parent.HasStaticCtor (alter.StaticName))
diff --git a/generator/ClassGen.cs b/generator/ClassGen.cs
index 69841f6..f0cf6a3 100644
--- a/generator/ClassGen.cs
+++ b/generator/ClassGen.cs
@@ -1,93 +1,93 @@
-// GtkSharp.Generation.ClassGen.cs - The Class Generatable.
-//
-// Author: Mike Kestner <mkestner@speakeasy.net>
-//
-// Copyright (c) 2001-2003 Mike Kestner
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of version 2 of the 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
-// General Public License for more details.
-//
-// You should have received a copy of the GNU 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 GtkSharp.Generation {
-
- using System;
- using System.Collections;
- using System.IO;
- using System.Text;
- using System.Xml;
-
- public class ClassGen : ClassBase {
-
- public ClassGen (XmlElement ns, XmlElement elem) : base (ns, elem) {}
-
- public override string AssignToName {
- get {
- return String.Empty;
- }
- }
-
- public override string MarshalType {
- get {
- return String.Empty;
- }
- }
-
- public override string CallByName ()
- {
- return String.Empty;
- }
-
- public override string CallByName (string var)
- {
- return String.Empty;
- }
-
- public override string FromNative (string var)
- {
- return String.Empty;
- }
-
- public override void Generate (GenerationInfo gen_info)
- {
- gen_info.CurrentType = QualifiedName;
-
- StreamWriter sw = gen_info.Writer = gen_info.OpenStream(Name);
-
- sw.WriteLine ("namespace " + NS + " {");
- sw.WriteLine ();
- sw.WriteLine ("\tusing System;");
- sw.WriteLine ("\tusing System.Runtime.InteropServices;");
- sw.WriteLine ();
-
- sw.WriteLine ("#region Autogenerated code");
- if (IsDeprecated)
- sw.WriteLine ("\t[Obsolete]");
- sw.Write ("\t{0} partial class " + Name, IsInternal ? "internal" : "public");
- sw.WriteLine (" {");
- sw.WriteLine ();
-
- GenProperties (gen_info, null);
- GenMethods (gen_info, null, null);
-
- sw.WriteLine ("#endregion");
-
- sw.WriteLine ("\t}");
- sw.WriteLine ("}");
-
- sw.Close ();
- gen_info.Writer = null;
- }
- }
-}
-
+// GtkSharp.Generation.ClassGen.cs - The Class Generatable.
+//
+// Author: Mike Kestner <mkestner@speakeasy.net>
+//
+// Copyright (c) 2001-2003 Mike Kestner
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of version 2 of the 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
+// General Public License for more details.
+//
+// You should have received a copy of the GNU 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 GtkSharp.Generation {
+
+ using System;
+ using System.Collections;
+ using System.IO;
+ using System.Text;
+ using System.Xml;
+
+ public class ClassGen : ClassBase {
+
+ public ClassGen (XmlElement ns, XmlElement elem) : base (ns, elem) {}
+
+ public override string AssignToName {
+ get {
+ return String.Empty;
+ }
+ }
+
+ public override string MarshalType {
+ get {
+ return String.Empty;
+ }
+ }
+
+ public override string CallByName ()
+ {
+ return String.Empty;
+ }
+
+ public override string CallByName (string var)
+ {
+ return String.Empty;
+ }
+
+ public override string FromNative (string var)
+ {
+ return String.Empty;
+ }
+
+ public override void Generate (GenerationInfo gen_info)
+ {
+ gen_info.CurrentType = QualifiedName;
+
+ StreamWriter sw = gen_info.Writer = gen_info.OpenStream(Name);
+
+ sw.WriteLine ("namespace " + NS + " {");
+ sw.WriteLine ();
+ sw.WriteLine ("\tusing System;");
+ sw.WriteLine ("\tusing System.Runtime.InteropServices;");
+ sw.WriteLine ();
+
+ sw.WriteLine ("#region Autogenerated code");
+ if (IsDeprecated)
+ sw.WriteLine ("\t[Obsolete]");
+ sw.Write ("\t{0} partial class " + Name, IsInternal ? "internal" : "public");
+ sw.WriteLine (" {");
+ sw.WriteLine ();
+
+ GenProperties (gen_info, null);
+ GenMethods (gen_info, null, null);
+
+ sw.WriteLine ("#endregion");
+
+ sw.WriteLine ("\t}");
+ sw.WriteLine ("}");
+
+ sw.Close ();
+ gen_info.Writer = null;
+ }
+ }
+}
+
diff --git a/generator/CodeGenerator.cs b/generator/CodeGenerator.cs
index 3be4ce2..e3d05b5 100644
--- a/generator/CodeGenerator.cs
+++ b/generator/CodeGenerator.cs
@@ -1,121 +1,121 @@
-// GtkSharp.Generation.CodeGenerator.cs - The main code generation engine.
-//
-// Author: Mike Kestner <mkestner@speakeasy.net>
-//
-// Copyright (c) 2001-2003 Mike Kestner
-// Copyright (c) 2003-2004 Novell Inc.
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of version 2 of the 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
-// General Public License for more details.
-//
-// You should have received a copy of the GNU 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 GtkSharp.Generation {
-
- using System;
- using System.Collections;
- using System.Xml;
-
- public class CodeGenerator {
-
- public static int Main (string[] args)
- {
- if (args.Length < 2) {
- Console.WriteLine ("Usage: codegen --generate <filename1...>");
- return 0;
- }
-
- bool generate = false;
- string dir = "";
- string assembly_name = "";
- string glue_filename = "";
- string glue_includes = "";
- string gluelib_name = "";
-
- SymbolTable table = SymbolTable.Table;
- ArrayList gens = new ArrayList ();
- foreach (string arg in args) {
- if (arg.StartsWith ("--customdir=")) {
- Console.WriteLine ("Using .custom files is not supported anymore, use partial classes instead.");
- return 0;
- }
- string filename = arg;
- if (arg == "--generate") {
- generate = true;
- continue;
- } else if (arg == "--include") {
- generate = false;
- continue;
- } else if (arg.StartsWith ("-I:")) {
- generate = false;
- filename = filename.Substring (3);
- } else if (arg.StartsWith ("--outdir=")) {
- generate = false;
- dir = arg.Substring (9);
- continue;
- } else if (arg.StartsWith ("--assembly-name=")) {
- generate = false;
- assembly_name = arg.Substring (16);
- continue;
- } else if (arg.StartsWith ("--glue-filename=")) {
- generate = false;
- glue_filename = arg.Substring (16);
- continue;
- } else if (arg.StartsWith ("--glue-includes=")) {
- generate = false;
- glue_includes = arg.Substring (16);
- continue;
- } else if (arg.StartsWith ("--gluelib-name=")) {
- generate = false;
- gluelib_name = arg.Substring (15);
- continue;
- }
-
- Parser p = new Parser ();
- IGeneratable[] curr_gens = p.Parse (filename);
- table.AddTypes (curr_gens);
- if (generate)
- gens.AddRange (curr_gens);
- }
-
- // Now that everything is loaded, validate all the to-be-
- // generated generatables and then remove the invalid ones.
- ArrayList invalids = new ArrayList ();
- foreach (IGeneratable gen in gens) {
- if (!gen.Validate ())
- invalids.Add (gen);
- }
- foreach (IGeneratable gen in invalids)
- gens.Remove (gen);
-
- GenerationInfo gen_info = null;
- if (dir != "" || assembly_name != "" || glue_filename != "" || glue_includes != "" || gluelib_name != "")
- gen_info = new GenerationInfo (dir, assembly_name, glue_filename, glue_includes, gluelib_name);
-
- foreach (IGeneratable gen in gens) {
- if (gen_info == null)
- gen.Generate ();
- else
- gen.Generate (gen_info);
- }
-
- ObjectGen.GenerateMappers ();
-
- if (gen_info != null)
- gen_info.CloseGlueWriter ();
-
- Statistics.Report();
- return 0;
- }
- }
-}
+// GtkSharp.Generation.CodeGenerator.cs - The main code generation engine.
+//
+// Author: Mike Kestner <mkestner@speakeasy.net>
+//
+// Copyright (c) 2001-2003 Mike Kestner
+// Copyright (c) 2003-2004 Novell Inc.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of version 2 of the 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
+// General Public License for more details.
+//
+// You should have received a copy of the GNU 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 GtkSharp.Generation {
+
+ using System;
+ using System.Collections.Generic;
+ using System.Xml;
+
+ public class CodeGenerator {
+
+ public static int Main (string[] args)
+ {
+ if (args.Length < 2) {
+ Console.WriteLine ("Usage: codegen --generate <filename1...>");
+ return 0;
+ }
+
+ bool generate = false;
+ string dir = "";
+ string assembly_name = "";
+ string glue_filename = "";
+ string glue_includes = "";
+ string gluelib_name = "";
+
+ SymbolTable table = SymbolTable.Table;
+ var gens = new List<IGeneratable> ();
+ foreach (string arg in args) {
+ if (arg.StartsWith ("--customdir=")) {
+ Console.WriteLine ("Using .custom files is not supported anymore, use partial classes instead.");
+ return 0;
+ }
+ string filename = arg;
+ if (arg == "--generate") {
+ generate = true;
+ continue;
+ } else if (arg == "--include") {
+ generate = false;
+ continue;
+ } else if (arg.StartsWith ("-I:")) {
+ generate = false;
+ filename = filename.Substring (3);
+ } else if (arg.StartsWith ("--outdir=")) {
+ generate = false;
+ dir = arg.Substring (9);
+ continue;
+ } else if (arg.StartsWith ("--assembly-name=")) {
+ generate = false;
+ assembly_name = arg.Substring (16);
+ continue;
+ } else if (arg.StartsWith ("--glue-filename=")) {
+ generate = false;
+ glue_filename = arg.Substring (16);
+ continue;
+ } else if (arg.StartsWith ("--glue-includes=")) {
+ generate = false;
+ glue_includes = arg.Substring (16);
+ continue;
+ } else if (arg.StartsWith ("--gluelib-name=")) {
+ generate = false;
+ gluelib_name = arg.Substring (15);
+ continue;
+ }
+
+ Parser p = new Parser ();
+ IGeneratable[] curr_gens = p.Parse (filename);
+ table.AddTypes (curr_gens);
+ if (generate)
+ gens.AddRange (curr_gens);
+ }
+
+ // Now that everything is loaded, validate all the to-be-
+ // generated generatables and then remove the invalid ones.
+ var invalids = new List<IGeneratable> ();
+ foreach (IGeneratable gen in gens) {
+ if (!gen.Validate ())
+ invalids.Add (gen);
+ }
+ foreach (IGeneratable gen in invalids)
+ gens.Remove (gen);
+
+ GenerationInfo gen_info = null;
+ if (dir != "" || assembly_name != "" || glue_filename != "" || glue_includes != "" || gluelib_name != "")
+ gen_info = new GenerationInfo (dir, assembly_name, glue_filename, glue_includes, gluelib_name);
+
+ foreach (IGeneratable gen in gens) {
+ if (gen_info == null)
+ gen.Generate ();
+ else
+ gen.Generate (gen_info);
+ }
+
+ ObjectGen.GenerateMappers ();
+
+ if (gen_info != null)
+ gen_info.CloseGlueWriter ();
+
+ Statistics.Report();
+ return 0;
+ }
+ }
+}
diff --git a/generator/ConstFilenameGen.cs b/generator/ConstFilenameGen.cs
index 562ab9c..f094aa1 100644
--- a/generator/ConstFilenameGen.cs
+++ b/generator/ConstFilenameGen.cs
@@ -1,52 +1,52 @@
-// ConstFilenameGen.cs - The Const Filename type Generatable.
-//
-// Author: Mike Kestner <mkestner@novell.com>
-//
-// Copyright (c) 2005 Novell, Inc.
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of version 2 of the 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
-// General Public License for more details.
-//
-// You should have received a copy of the GNU 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 GtkSharp.Generation {
-
- using System;
-
- public class ConstFilenameGen : SimpleBase, IManualMarshaler {
-
- public ConstFilenameGen (string ctype) : base (ctype, "string", "null") {}
-
- public override string MarshalType {
- get {
- return "IntPtr";
- }
- }
-
- public override string FromNative (string var)
- {
- return "GLib.Marshaller.FilenamePtrToString (" + var + ")";
- }
-
- public string AllocNative (string managed_var)
- {
- return "GLib.Marshaller.StringToFilenamePtr (" + managed_var + ")";
- }
-
- public string ReleaseNative (string native_var)
- {
- return "GLib.Marshaller.Free (" + native_var + ")";
- }
- }
-}
-
+// ConstFilenameGen.cs - The Const Filename type Generatable.
+//
+// Author: Mike Kestner <mkestner@novell.com>
+//
+// Copyright (c) 2005 Novell, Inc.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of version 2 of the 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
+// General Public License for more details.
+//
+// You should have received a copy of the GNU 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 GtkSharp.Generation {
+
+ using System;
+
+ public class ConstFilenameGen : SimpleBase, IManualMarshaler {
+
+ public ConstFilenameGen (string ctype) : base (ctype, "string", "null") {}
+
+ public override string MarshalType {
+ get {
+ return "IntPtr";
+ }
+ }
+
+ public override string FromNative (string var)
+ {
+ return "GLib.Marshaller.FilenamePtrToString (" + var + ")";
+ }
+
+ public string AllocNative (string managed_var)
+ {
+ return "GLib.Marshaller.StringToFilenamePtr (" + managed_var + ")";
+ }
+
+ public string ReleaseNative (string native_var)
+ {
+ return "GLib.Marshaller.Free (" + native_var + ")";
+ }
+ }
+}
+
diff --git a/generator/ConstStringGen.cs b/generator/ConstStringGen.cs
index 72fc887..a0c0958 100644
--- a/generator/ConstStringGen.cs
+++ b/generator/ConstStringGen.cs
@@ -1,54 +1,54 @@
-// GtkSharp.Generation.ConstStringGen.cs - The Const String type Generatable.
-//
-// Author: Rachel Hestilow <rachel@nullenvoid.com>
-// Mike Kestner <mkestner@novell.com>
-//
-// Copyright (c) 2003 Rachel Hestilow
-// Copyright (c) 2005 Novell, Inc.
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of version 2 of the 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
-// General Public License for more details.
-//
-// You should have received a copy of the GNU 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 GtkSharp.Generation {
-
- using System;
-
- public class ConstStringGen : SimpleBase, IManualMarshaler {
-
- public ConstStringGen (string ctype) : base (ctype, "string", "null") {}
-
- public override string MarshalType {
- get {
- return "IntPtr";
- }
- }
-
- public override string FromNative (string var)
- {
- return "GLib.Marshaller.Utf8PtrToString (" + var + ")";
- }
-
- public string AllocNative (string managed_var)
- {
- return "GLib.Marshaller.StringToPtrGStrdup (" + managed_var + ")";
- }
-
- public string ReleaseNative (string native_var)
- {
- return "GLib.Marshaller.Free (" + native_var + ")";
- }
- }
-}
-
+// GtkSharp.Generation.ConstStringGen.cs - The Const String type Generatable.
+//
+// Author: Rachel Hestilow <rachel@nullenvoid.com>
+// Mike Kestner <mkestner@novell.com>
+//
+// Copyright (c) 2003 Rachel Hestilow
+// Copyright (c) 2005 Novell, Inc.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of version 2 of the 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
+// General Public License for more details.
+//
+// You should have received a copy of the GNU 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 GtkSharp.Generation {
+
+ using System;
+
+ public class ConstStringGen : SimpleBase, IManualMarshaler {
+
+ public ConstStringGen (string ctype) : base (ctype, "string", "null") {}
+
+ public override string MarshalType {
+ get {
+ return "IntPtr";
+ }
+ }
+
+ public override string FromNative (string var)
+ {
+ return "GLib.Marshaller.Utf8PtrToString (" + var + ")";
+ }
+
+ public string AllocNative (string managed_var)
+ {
+ return "GLib.Marshaller.StringToPtrGStrdup (" + managed_var + ")";
+ }
+
+ public string ReleaseNative (string native_var)
+ {
+ return "GLib.Marshaller.Free (" + native_var + ")";
+ }
+ }
+}
+
diff --git a/generator/Ctor.cs b/generator/Ctor.cs
index 53d5836..9747b23 100644
--- a/generator/Ctor.cs
+++ b/generator/Ctor.cs
@@ -1,165 +1,164 @@
-// GtkSharp.Generation.Ctor.cs - The Constructor Generation Class.
-//
-// Author: Mike Kestner <mkestner@novell.com>
-//
-// Copyright (c) 2001-2003 Mike Kestner
-// Copyright (c) 2004-2005 Novell, Inc.
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of version 2 of the 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
-// General Public License for more details.
-//
-// You should have received a copy of the GNU 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 GtkSharp.Generation {
-
- using System;
- using System.Collections;
- using System.IO;
- using System.Xml;
-
- public class Ctor : MethodBase {
-
- private bool preferred;
- private string name;
- private bool needs_chaining = false;
-
- public Ctor (XmlElement elem, ClassBase implementor) : base (elem, implementor)
- {
- if (elem.HasAttribute ("preferred"))
- preferred = true;
- if (implementor is ObjectGen)
- needs_chaining = true;
- name = implementor.Name;
- }
-
- public bool Preferred {
- get { return preferred; }
- set { preferred = value; }
- }
-
- public string StaticName {
- get {
- if (!IsStatic)
- return String.Empty;
-
- if (Name != null && Name != String.Empty)
- return Name;
-
- string[] toks = CName.Substring(CName.IndexOf("new")).Split ('_');
- string result = String.Empty;
-
- foreach (string tok in toks)
- result += tok.Substring(0,1).ToUpper() + tok.Substring(1);
- return result;
- }
- }
-
- void GenerateImport (StreamWriter sw)
- {
- sw.WriteLine("\t\t[DllImport(\"" + LibraryName + "\", CallingConvention = CallingConvention.Cdecl)]");
- sw.WriteLine("\t\tstatic extern " + Safety + "IntPtr " + CName + "(" + Parameters.ImportSignature + ");");
- sw.WriteLine();
- }
-
- void GenerateStatic (GenerationInfo gen_info)
- {
- StreamWriter sw = gen_info.Writer;
- sw.WriteLine("\t\t" + Protection + " static " + Safety + Modifiers + name + " " + StaticName + "(" + Signature + ")");
- sw.WriteLine("\t\t{");
-
- Body.Initialize(gen_info, false, false, "");
-
- sw.Write("\t\t\t" + name + " result = ");
- if (container_type is StructBase)
- sw.Write ("{0}.New (", name);
- else
- sw.Write ("new {0} (", name);
- sw.WriteLine (CName + "(" + Body.GetCallString (false) + "));");
- Body.Finish (sw, "");
- Body.HandleException (sw, "");
- sw.WriteLine ("\t\t\treturn result;");
- }
-
- public void Generate (GenerationInfo gen_info)
- {
- StreamWriter sw = gen_info.Writer;
- gen_info.CurrentMember = CName;
-
- GenerateImport (sw);
-
- if (IsStatic)
- GenerateStatic (gen_info);
- else {
- sw.WriteLine("\t\t{0} {1}{2} ({3}) {4}", Protection, Safety, name, Signature.ToString(), needs_chaining ? ": base (IntPtr.Zero)" : "");
- sw.WriteLine("\t\t{");
-
- if (needs_chaining) {
- sw.WriteLine ("\t\t\tif (GetType () != typeof (" + name + ")) {");
-
- if (Parameters.Count == 0) {
- sw.WriteLine ("\t\t\t\tCreateNativeObject (new string [0], new GLib.Value[0]);");
- sw.WriteLine ("\t\t\t\treturn;");
- } else {
- ArrayList names = new ArrayList ();
- ArrayList values = new ArrayList ();
- for (int i = 0; i < Parameters.Count; i++) {
- Parameter p = Parameters[i];
- if (container_type.GetPropertyRecursively (p.StudlyName) != null) {
- names.Add (p.Name);
- values.Add (p.Name);
- } else if (p.PropertyName != String.Empty) {
- names.Add (p.PropertyName);
- values.Add (p.Name);
- }
- }
-
- if (names.Count == Parameters.Count) {
- sw.WriteLine ("\t\t\t\tArrayList vals = new ArrayList();");
- sw.WriteLine ("\t\t\t\tArrayList names = new ArrayList();");
- for (int i = 0; i < names.Count; i++) {
- Parameter p = Parameters [i];
- string indent = "\t\t\t\t";
- if (p.Generatable is ClassBase && !(p.Generatable is StructBase)) {
- sw.WriteLine (indent + "if (" + p.Name + " != null) {");
- indent += "\t";
- }
- sw.WriteLine (indent + "names.Add (\"" + names [i] + "\");");
- sw.WriteLine (indent + "vals.Add (new GLib.Value (" + values[i] + "));");
-
- if (p.Generatable is ClassBase && !(p.Generatable is StructBase))
- sw.WriteLine ("\t\t\t\t}");
- }
-
- sw.WriteLine ("\t\t\t\tCreateNativeObject ((string[])names.ToArray (typeof (string)), (GLib.Value[])vals.ToArray (typeof (GLib.Value)));");
- sw.WriteLine ("\t\t\t\treturn;");
- } else
- sw.WriteLine ("\t\t\t\tthrow new InvalidOperationException (\"Can't override this constructor.\");");
- }
-
- sw.WriteLine ("\t\t\t}");
- }
-
- Body.Initialize(gen_info, false, false, "");
- sw.WriteLine("\t\t\t{0} = {1}({2});", container_type.AssignToName, CName, Body.GetCallString (false));
- Body.Finish (sw, "");
- Body.HandleException (sw, "");
- }
-
- sw.WriteLine("\t\t}");
- sw.WriteLine();
-
- Statistics.CtorCount++;
- }
- }
-}
-
+// GtkSharp.Generation.Ctor.cs - The Constructor Generation Class.
+//
+// Author: Mike Kestner <mkestner@novell.com>
+//
+// Copyright (c) 2001-2003 Mike Kestner
+// Copyright (c) 2004-2005 Novell, Inc.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of version 2 of the 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
+// General Public License for more details.
+//
+// You should have received a copy of the GNU 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 GtkSharp.Generation {
+
+ using System;
+ using System.Collections.Generic;
+ using System.IO;
+ using System.Xml;
+
+ public class Ctor : MethodBase {
+
+ private bool preferred;
+ private string name;
+ private bool needs_chaining = false;
+
+ public Ctor (XmlElement elem, ClassBase implementor) : base (elem, implementor)
+ {
+ preferred = elem.GetAttributeAsBoolean ("preferred");
+ if (implementor is ObjectGen)
+ needs_chaining = true;
+ name = implementor.Name;
+ }
+
+ public bool Preferred {
+ get { return preferred; }
+ set { preferred = value; }
+ }
+
+ public string StaticName {
+ get {
+ if (!IsStatic)
+ return String.Empty;
+
+ if (Name != null && Name != String.Empty)
+ return Name;
+
+ string[] toks = CName.Substring(CName.IndexOf("new")).Split ('_');
+ string result = String.Empty;
+
+ foreach (string tok in toks)
+ result += tok.Substring(0,1).ToUpper() + tok.Substring(1);
+ return result;
+ }
+ }
+
+ void GenerateImport (StreamWriter sw)
+ {
+ sw.WriteLine("\t\t[DllImport(\"" + LibraryName + "\", CallingConvention = CallingConvention.Cdecl)]");
+ sw.WriteLine("\t\tstatic extern " + Safety + "IntPtr " + CName + "(" + Parameters.ImportSignature + ");");
+ sw.WriteLine();
+ }
+
+ void GenerateStatic (GenerationInfo gen_info)
+ {
+ StreamWriter sw = gen_info.Writer;
+ sw.WriteLine("\t\t" + Protection + " static " + Safety + Modifiers + name + " " + StaticName + "(" + Signature + ")");
+ sw.WriteLine("\t\t{");
+
+ Body.Initialize(gen_info, false, false, "");
+
+ sw.Write("\t\t\t" + name + " result = ");
+ if (container_type is StructBase)
+ sw.Write ("{0}.New (", name);
+ else
+ sw.Write ("new {0} (", name);
+ sw.WriteLine (CName + "(" + Body.GetCallString (false) + "));");
+ Body.Finish (sw, "");
+ Body.HandleException (sw, "");
+ sw.WriteLine ("\t\t\treturn result;");
+ }
+
+ public void Generate (GenerationInfo gen_info)
+ {
+ StreamWriter sw = gen_info.Writer;
+ gen_info.CurrentMember = CName;
+
+ GenerateImport (sw);
+
+ if (IsStatic)
+ GenerateStatic (gen_info);
+ else {
+ sw.WriteLine("\t\t{0} {1}{2} ({3}) {4}", Protection, Safety, name, Signature.ToString(), needs_chaining ? ": base (IntPtr.Zero)" : "");
+ sw.WriteLine("\t\t{");
+
+ if (needs_chaining) {
+ sw.WriteLine ("\t\t\tif (GetType () != typeof (" + name + ")) {");
+
+ if (Parameters.Count == 0) {
+ sw.WriteLine ("\t\t\t\tCreateNativeObject (new string [0], new GLib.Value[0]);");
+ sw.WriteLine ("\t\t\t\treturn;");
+ } else {
+ var names = new List<string> ();
+ var values = new List<string> ();
+ for (int i = 0; i < Parameters.Count; i++) {
+ Parameter p = Parameters[i];
+ if (container_type.GetPropertyRecursively (p.StudlyName) != null) {
+ names.Add (p.Name);
+ values.Add (p.Name);
+ } else if (p.PropertyName != String.Empty) {
+ names.Add (p.PropertyName);
+ values.Add (p.Name);
+ }
+ }
+
+ if (names.Count == Parameters.Count) {
+ sw.WriteLine ("\t\t\t\tvar vals = new List<GLib.Value> ();");
+ sw.WriteLine ("\t\t\t\tvar names = new List<string> ();");
+ for (int i = 0; i < names.Count; i++) {
+ Parameter p = Parameters [i];
+ string indent = "\t\t\t\t";
+ if (p.Generatable is ClassBase && !(p.Generatable is StructBase)) {
+ sw.WriteLine (indent + "if (" + p.Name + " != null) {");
+ indent += "\t";
+ }
+ sw.WriteLine (indent + "names.Add (\"" + names [i] + "\");");
+ sw.WriteLine (indent + "vals.Add (new GLib.Value (" + values[i] + "));");
+
+ if (p.Generatable is ClassBase && !(p.Generatable is StructBase))
+ sw.WriteLine ("\t\t\t\t}");
+ }
+
+ 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.\");");
+ }
+
+ sw.WriteLine ("\t\t\t}");
+ }
+
+ Body.Initialize(gen_info, false, false, "");
+ sw.WriteLine("\t\t\t{0} = {1}({2});", container_type.AssignToName, CName, Body.GetCallString (false));
+ Body.Finish (sw, "");
+ Body.HandleException (sw, "");
+ }
+
+ sw.WriteLine("\t\t}");
+ sw.WriteLine();
+
+ Statistics.CtorCount++;
+ }
+ }
+}
+
diff --git a/generator/EnumGen.cs b/generator/EnumGen.cs
index ca78188..94e97c7 100644
--- a/generator/EnumGen.cs
+++ b/generator/EnumGen.cs
@@ -1,133 +1,133 @@
-// GtkSharp.Generation.EnumGen.cs - The Enumeration Generatable.
-//
-// Author: Mike Kestner <mkestner@speakeasy.net>
-//
-// Copyright (c) 2001 Mike Kestner
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of version 2 of the 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
-// General Public License for more details.
-//
-// You should have received a copy of the GNU 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 GtkSharp.Generation {
-
- using System;
- using System.Collections;
- using System.IO;
- using System.Xml;
- using System.Text.RegularExpressions;
-
- public class EnumGen : GenBase {
-
- string enum_type = String.Empty;
- ArrayList members = new ArrayList ();
-
- public EnumGen (XmlElement ns, XmlElement elem) : base (ns, elem)
- {
- foreach (XmlElement member in elem.ChildNodes) {
- if (member.Name != "member")
- continue;
-
- string result = "\t\t" + member.GetAttribute("name");
- if (member.HasAttribute ("value")) {
- string value = member.GetAttribute ("value").Trim ();
- foreach (Match match in Regex.Matches (value, "[0-9]+([UL]{1,2})", RegexOptions.IgnoreCase)) {
- switch (match.Groups[1].Value.ToUpper ()) {
- case "U": enum_type = " : uint"; break;
- case "L": enum_type = " : long"; break;
- case "UL": enum_type = " : ulong"; break;
- }
- }
- result += " = " + value;
- }
- members.Add (result + ",");
- }
- if (elem.HasAttribute ("enum_type"))
- enum_type = " : " + elem.GetAttribute ("enum_type");
- }
-
- public override bool Validate ()
- {
- return true;
- }
-
- public override string DefaultValue {
- get {
- return "(" + QualifiedName + ") 0";
- }
- }
-
- public override string MarshalType {
- get {
- return "int";
- }
- }
-
- public override string CallByName (string var_name)
- {
- return "(int) " + var_name;
- }
-
- public override string FromNative(string var)
- {
- return "(" + QualifiedName + ") " + var;
- }
-
- public override void Generate (GenerationInfo gen_info)
- {
- StreamWriter sw = gen_info.OpenStream (Name);
-
- sw.WriteLine ("namespace " + NS + " {");
- sw.WriteLine ();
- sw.WriteLine ("\tusing System;");
- sw.WriteLine ("\tusing System.Runtime.InteropServices;");
- sw.WriteLine ();
-
- sw.WriteLine ("#region Autogenerated code");
-
- if (Elem.GetAttribute("type") == "flags")
- sw.WriteLine ("\t[Flags]");
- if (Elem.HasAttribute("gtype"))
- sw.WriteLine ("\t[GLib.GType (typeof (" + NS + "." + Name + "GType))]");
-
- string access = IsInternal ? "internal" : "public";
- sw.WriteLine ("\t" + access + " enum " + Name + enum_type + " {");
- sw.WriteLine ();
-
- foreach (string member in members)
- sw.WriteLine (member);
-
- sw.WriteLine ("\t}");
-
- if (Elem.HasAttribute ("gtype")) {
- sw.WriteLine ();
- sw.WriteLine ("\tinternal class " + Name + "GType {");
- sw.WriteLine ("\t\t[DllImport (\"" + LibraryName + "\", CallingConvention = CallingConvention.Cdecl)]");
- sw.WriteLine ("\t\tstatic extern IntPtr " + Elem.GetAttribute ("gtype") + " ();");
- sw.WriteLine ();
- sw.WriteLine ("\t\tpublic static GLib.GType GType {");
- sw.WriteLine ("\t\t\tget {");
- sw.WriteLine ("\t\t\t\treturn new GLib.GType (" + Elem.GetAttribute ("gtype") + " ());");
- sw.WriteLine ("\t\t\t}");
- sw.WriteLine ("\t\t}");
- sw.WriteLine ("\t}");
- }
-
- sw.WriteLine ("#endregion");
- sw.WriteLine ("}");
- sw.Close ();
- Statistics.EnumCount++;
- }
- }
-}
-
+// GtkSharp.Generation.EnumGen.cs - The Enumeration Generatable.
+//
+// Author: Mike Kestner <mkestner@speakeasy.net>
+//
+// Copyright (c) 2001 Mike Kestner
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of version 2 of the 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
+// General Public License for more details.
+//
+// You should have received a copy of the GNU 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 GtkSharp.Generation {
+
+ using System;
+ using System.Collections.Generic;
+ using System.IO;
+ using System.Xml;
+ using System.Text.RegularExpressions;
+
+ public class EnumGen : GenBase {
+
+ string enum_type = String.Empty;
+ IList<string> members = new List<string> ();
+
+ public EnumGen (XmlElement ns, XmlElement elem) : base (ns, elem)
+ {
+ foreach (XmlElement member in elem.ChildNodes) {
+ if (member.Name != "member")
+ continue;
+
+ string result = "\t\t" + member.GetAttribute("name");
+ if (member.HasAttribute ("value")) {
+ string value = member.GetAttribute ("value").Trim ();
+ foreach (Match match in Regex.Matches (value, "[0-9]+([UL]{1,2})", RegexOptions.IgnoreCase)) {
+ switch (match.Groups[1].Value.ToUpper ()) {
+ case "U": enum_type = " : uint"; break;
+ case "L": enum_type = " : long"; break;
+ case "UL": enum_type = " : ulong"; break;
+ }
+ }
+ result += " = " + value;
+ }
+ members.Add (result + ",");
+ }
+ if (elem.HasAttribute ("enum_type"))
+ enum_type = " : " + elem.GetAttribute ("enum_type");
+ }
+
+ public override bool Validate ()
+ {
+ return true;
+ }
+
+ public override string DefaultValue {
+ get {
+ return "(" + QualifiedName + ") 0";
+ }
+ }
+
+ public override string MarshalType {
+ get {
+ return "int";
+ }
+ }
+
+ public override string CallByName (string var_name)
+ {
+ return "(int) " + var_name;
+ }
+
+ public override string FromNative(string var)
+ {
+ return "(" + QualifiedName + ") " + var;
+ }
+
+ public override void Generate (GenerationInfo gen_info)
+ {
+ StreamWriter sw = gen_info.OpenStream (Name);
+
+ sw.WriteLine ("namespace " + NS + " {");
+ sw.WriteLine ();
+ sw.WriteLine ("\tusing System;");
+ sw.WriteLine ("\tusing System.Runtime.InteropServices;");
+ sw.WriteLine ();
+
+ sw.WriteLine ("#region Autogenerated code");
+
+ if (Elem.GetAttribute("type") == "flags")
+ sw.WriteLine ("\t[Flags]");
+ if (Elem.HasAttribute("gtype"))
+ sw.WriteLine ("\t[GLib.GType (typeof (" + NS + "." + Name + "GType))]");
+
+ string access = IsInternal ? "internal" : "public";
+ sw.WriteLine ("\t" + access + " enum " + Name + enum_type + " {");
+ sw.WriteLine ();
+
+ foreach (string member in members)
+ sw.WriteLine (member);
+
+ sw.WriteLine ("\t}");
+
+ if (Elem.HasAttribute ("gtype")) {
+ sw.WriteLine ();
+ sw.WriteLine ("\tinternal class " + Name + "GType {");
+ sw.WriteLine ("\t\t[DllImport (\"" + LibraryName + "\", CallingConvention = CallingConvention.Cdecl)]");
+ sw.WriteLine ("\t\tstatic extern IntPtr " + Elem.GetAttribute ("gtype") + " ();");
+ sw.WriteLine ();
+ sw.WriteLine ("\t\tpublic static GLib.GType GType {");
+ sw.WriteLine ("\t\t\tget {");
+ sw.WriteLine ("\t\t\t\treturn new GLib.GType (" + Elem.GetAttribute ("gtype") + " ());");
+ sw.WriteLine ("\t\t\t}");
+ sw.WriteLine ("\t\t}");
+ sw.WriteLine ("\t}");
+ }
+
+ sw.WriteLine ("#endregion");
+ sw.WriteLine ("}");
+ sw.Close ();
+ Statistics.EnumCount++;
+ }
+ }
+}
+
diff --git a/generator/FieldBase.cs b/generator/FieldBase.cs
index 6a9b782..7e18bbb 100644
--- a/generator/FieldBase.cs
+++ b/generator/FieldBase.cs
@@ -62,7 +62,7 @@ namespace GtkSharp.Generation {
public bool IsArray {
get {
- return elem.HasAttribute("array_len") || elem.HasAttribute("array");
+ return elem.HasAttribute ("array_len") || elem.GetAttributeAsBoolean ("array");
}
}
@@ -153,7 +153,7 @@ namespace GtkSharp.Generation {
SymbolTable table = SymbolTable.Table;
StreamWriter sw = gen_info.Writer;
- string modifiers = elem.HasAttribute ("new_flag") ? "new " : "";
+ string modifiers = elem.GetAttributeAsBoolean ("new_flag") ? "new " : "";
bool is_struct = table.IsStruct (CType) || table.IsBoxed (CType);
sw.WriteLine (indent + "public " + modifiers + CSType + " " + Name + " {");
diff --git a/generator/GenBase.cs b/generator/GenBase.cs
index 378e3c8..73f3a43 100644
--- a/generator/GenBase.cs
+++ b/generator/GenBase.cs
@@ -1,112 +1,108 @@
-// GtkSharp.Generation.GenBase.cs - The Generatable base class.
-//
-// Author: Mike Kestner <mkestner@novell.com>
-//
-// Copyright (c) 2001-2002 Mike Kestner
-// Copyright (c) 2004 Novell, Inc.
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of version 2 of the 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
-// General Public License for more details.
-//
-// You should have received a copy of the GNU 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 GtkSharp.Generation {
-
- using System;
- using System.IO;
- using System.Xml;
-
- public abstract class GenBase : IGeneratable {
-
- private XmlElement ns;
- private XmlElement elem;
-
- protected GenBase (XmlElement ns, XmlElement elem)
- {
- this.ns = ns;
- this.elem = elem;
- }
-
- public string CName {
- get {
- return elem.GetAttribute ("cname");
- }
- }
-
- public XmlElement Elem {
- get {
- return elem;
- }
- }
-
- public int ParserVersion {
- get {
- XmlElement root = elem.OwnerDocument.DocumentElement;
- return root.HasAttribute ("parser_version") ? int.Parse (root.GetAttribute ("parser_version")) : 1;
- }
- }
-
- public bool IsInternal {
- get {
- if (elem.HasAttribute ("internal")) {
- string attr = elem.GetAttribute ("internal");
- return attr == "1" || attr == "true";
- }
- return false;
- }
- }
-
- public string LibraryName {
- get {
- return ns.GetAttribute ("library");
- }
- }
-
- public abstract string MarshalType { get; }
-
- public string Name {
- get {
- return elem.GetAttribute ("name");
- }
- }
-
- public string NS {
- get {
- return ns.GetAttribute ("name");
- }
- }
-
- public abstract string DefaultValue { get; }
-
- public string QualifiedName {
- get {
- return NS + "." + Name;
- }
- }
-
- public abstract string CallByName (string var);
-
- public abstract string FromNative (string var);
-
- public abstract bool Validate ();
-
- public void Generate ()
- {
- GenerationInfo geninfo = new GenerationInfo (ns);
- Generate (geninfo);
- }
-
- public abstract void Generate (GenerationInfo geninfo);
- }
-}
-
+// GtkSharp.Generation.GenBase.cs - The Generatable base class.
+//
+// Author: Mike Kestner <mkestner@novell.com>
+//
+// Copyright (c) 2001-2002 Mike Kestner
+// Copyright (c) 2004 Novell, Inc.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of version 2 of the 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
+// General Public License for more details.
+//
+// You should have received a copy of the GNU 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 GtkSharp.Generation {
+
+ using System;
+ using System.IO;
+ using System.Xml;
+
+ public abstract class GenBase : IGeneratable {
+
+ private XmlElement ns;
+ private XmlElement elem;
+
+ protected GenBase (XmlElement ns, XmlElement elem)
+ {
+ this.ns = ns;
+ this.elem = elem;
+ }
+
+ public string CName {
+ get {
+ return elem.GetAttribute ("cname");
+ }
+ }
+
+ public XmlElement Elem {
+ get {
+ return elem;
+ }
+ }
+
+ public int ParserVersion {
+ get {
+ XmlElement root = elem.OwnerDocument.DocumentElement;
+ return root.HasAttribute ("parser_version") ? int.Parse (root.GetAttribute ("parser_version")) : 1;
+ }
+ }
+
+ public bool IsInternal {
+ get {
+ return elem.GetAttributeAsBoolean ("internal");
+ }
+ }
+
+ public string LibraryName {
+ get {
+ return ns.GetAttribute ("library");
+ }
+ }
+
+ public abstract string MarshalType { get; }
+
+ public string Name {
+ get {
+ return elem.GetAttribute ("name");
+ }
+ }
+
+ public string NS {
+ get {
+ return ns.GetAttribute ("name");
+ }
+ }
+
+ public abstract string DefaultValue { get; }
+
+ public string QualifiedName {
+ get {
+ return NS + "." + Name;
+ }
+ }
+
+ public abstract string CallByName (string var);
+
+ public abstract string FromNative (string var);
+
+ public abstract bool Validate ();
+
+ public void Generate ()
+ {
+ GenerationInfo geninfo = new GenerationInfo (ns);
+ Generate (geninfo);
+ }
+
+ public abstract void Generate (GenerationInfo geninfo);
+ }
+}
+
diff --git a/generator/GenerationInfo.cs b/generator/GenerationInfo.cs
index 3535a62..d01f508 100644
--- a/generator/GenerationInfo.cs
+++ b/generator/GenerationInfo.cs
@@ -1,167 +1,167 @@
-// GtkSharp.Generation.GenerationInfo.cs - Generation information class.
-//
-// Author: Mike Kestner <mkestner@ximian.com>
-//
-// Copyright (c) 2003-2008 Novell Inc.
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of version 2 of the 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
-// General Public License for more details.
-//
-// You should have received a copy of the GNU 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 GtkSharp.Generation {
-
- using System;
- using System.Collections;
- using System.IO;
- using System.Xml;
-
- public class GenerationInfo {
-
- string dir;
- string assembly_name;
- string gluelib_name;
- bool glue_enabled;
- StreamWriter sw;
- StreamWriter glue_sw;
-
- public GenerationInfo (XmlElement ns)
- {
- string ns_name = ns.GetAttribute ("name");
- char sep = Path.DirectorySeparatorChar;
- dir = ".." + sep + ns_name.ToLower () + sep + "generated";
- assembly_name = ns_name.ToLower () + "-sharp";
- }
-
- public GenerationInfo (string dir, string assembly_name) : this (dir, assembly_name, "", "", "") {}
-
- public GenerationInfo (string dir, string assembly_name, string glue_filename, string glue_includes, string gluelib_name)
- {
- this.dir = dir;
- this.assembly_name = assembly_name;
- this.gluelib_name = gluelib_name;
- InitializeGlue (glue_filename, glue_includes, gluelib_name);
- }
-
- void InitializeGlue (string glue_filename, string glue_includes, string gluelib_name)
- {
- if (gluelib_name != String.Empty && glue_filename != String.Empty) {
- FileStream stream;
- try {
- stream = new FileStream (glue_filename, FileMode.Create, FileAccess.Write);
- } catch (Exception) {
- Console.Error.WriteLine ("Unable to create specified glue file. Glue will not be generated.");
- return;
- }
-
- glue_sw = new StreamWriter (stream);
-
- glue_sw.WriteLine ("// This file was generated by the Gtk# code generator.");
- glue_sw.WriteLine ("// Any changes made will be lost if regenerated.");
- glue_sw.WriteLine ();
-
- if (glue_includes != "") {
- foreach (string header in glue_includes.Split (new char[] {',', ' '})) {
- if (header != "")
- glue_sw.WriteLine ("#include <{0}>", header);
- }
- glue_sw.WriteLine ("");
- }
- glue_enabled = true;
- }
- }
-
- public string AssemblyName {
- get {
- return assembly_name;
- }
- }
-
- public string Dir {
- get {
- return dir;
- }
- }
-
- public string GluelibName {
- get {
- return gluelib_name;
- }
- }
-
- public bool GlueEnabled {
- get {
- return glue_enabled;
- }
- }
-
- public StreamWriter GlueWriter {
- get {
- return glue_sw;
- }
- }
-
- public StreamWriter Writer {
- get {
- return sw;
- }
- set {
- sw = value;
- }
- }
-
- public void CloseGlueWriter ()
- {
- if (glue_sw != null)
- glue_sw.Close ();
- }
-
- string member;
- public string CurrentMember {
- get {
- return typename + "." + member;
- }
- set {
- member = value;
- }
- }
-
- string typename;
- public string CurrentType {
- get {
- return typename;
- }
- set {
- typename = value;
- }
- }
-
- public StreamWriter OpenStream (string name)
- {
- char sep = Path.DirectorySeparatorChar;
- if (!Directory.Exists(dir))
- Directory.CreateDirectory(dir);
- string filename = dir + sep + name + ".cs";
-
- FileStream stream = new FileStream (filename, FileMode.Create, FileAccess.Write);
- StreamWriter sw = new StreamWriter (stream);
-
- sw.WriteLine ("// This file was generated by the Gtk# code generator.");
- sw.WriteLine ("// Any changes made will be lost if regenerated.");
- sw.WriteLine ();
-
- return sw;
- }
- }
-}
-
+// GtkSharp.Generation.GenerationInfo.cs - Generation information class.
+//
+// Author: Mike Kestner <mkestner@ximian.com>
+//
+// Copyright (c) 2003-2008 Novell Inc.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of version 2 of the 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
+// General Public License for more details.
+//
+// You should have received a copy of the GNU 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 GtkSharp.Generation {
+
+ using System;
+ using System.Collections;
+ using System.IO;
+ using System.Xml;
+
+ public class GenerationInfo {
+
+ string dir;
+ string assembly_name;
+ string gluelib_name;
+ bool glue_enabled;
+ StreamWriter sw;
+ StreamWriter glue_sw;
+
+ public GenerationInfo (XmlElement ns)
+ {
+ string ns_name = ns.GetAttribute ("name");
+ char sep = Path.DirectorySeparatorChar;
+ dir = ".." + sep + ns_name.ToLower () + sep + "generated";
+ assembly_name = ns_name.ToLower () + "-sharp";
+ }
+
+ public GenerationInfo (string dir, string assembly_name) : this (dir, assembly_name, "", "", "") {}
+
+ public GenerationInfo (string dir, string assembly_name, string glue_filename, string glue_includes, string gluelib_name)
+ {
+ this.dir = dir;
+ this.assembly_name = assembly_name;
+ this.gluelib_name = gluelib_name;
+ InitializeGlue (glue_filename, glue_includes, gluelib_name);
+ }
+
+ void InitializeGlue (string glue_filename, string glue_includes, string gluelib_name)
+ {
+ if (gluelib_name != String.Empty && glue_filename != String.Empty) {
+ FileStream stream;
+ try {
+ stream = new FileStream (glue_filename, FileMode.Create, FileAccess.Write);
+ } catch (Exception) {
+ Console.Error.WriteLine ("Unable to create specified glue file. Glue will not be generated.");
+ return;
+ }
+
+ glue_sw = new StreamWriter (stream);
+
+ glue_sw.WriteLine ("// This file was generated by the Gtk# code generator.");
+ glue_sw.WriteLine ("// Any changes made will be lost if regenerated.");
+ glue_sw.WriteLine ();
+
+ if (glue_includes != "") {
+ foreach (string header in glue_includes.Split (new char[] {',', ' '})) {
+ if (header != "")
+ glue_sw.WriteLine ("#include <{0}>", header);
+ }
+ glue_sw.WriteLine ("");
+ }
+ glue_enabled = true;
+ }
+ }
+
+ public string AssemblyName {
+ get {
+ return assembly_name;
+ }
+ }
+
+ public string Dir {
+ get {
+ return dir;
+ }
+ }
+
+ public string GluelibName {
+ get {
+ return gluelib_name;
+ }
+ }
+
+ public bool GlueEnabled {
+ get {
+ return glue_enabled;
+ }
+ }
+
+ public StreamWriter GlueWriter {
+ get {
+ return glue_sw;
+ }
+ }
+
+ public StreamWriter Writer {
+ get {
+ return sw;
+ }
+ set {
+ sw = value;
+ }
+ }
+
+ public void CloseGlueWriter ()
+ {
+ if (glue_sw != null)
+ glue_sw.Close ();
+ }
+
+ string member;
+ public string CurrentMember {
+ get {
+ return typename + "." + member;
+ }
+ set {
+ member = value;
+ }
+ }
+
+ string typename;
+ public string CurrentType {
+ get {
+ return typename;
+ }
+ set {
+ typename = value;
+ }
+ }
+
+ public StreamWriter OpenStream (string name)
+ {
+ char sep = Path.DirectorySeparatorChar;
+ if (!Directory.Exists(dir))
+ Directory.CreateDirectory(dir);
+ string filename = dir + sep + name + ".cs";
+
+ FileStream stream = new FileStream (filename, FileMode.Create, FileAccess.Write);
+ StreamWriter sw = new StreamWriter (stream);
+
+ sw.WriteLine ("// This file was generated by the Gtk# code generator.");
+ sw.WriteLine ("// Any changes made will be lost if regenerated.");
+ sw.WriteLine ();
+
+ return sw;
+ }
+ }
+}
+
diff --git a/generator/IGeneratable.cs b/generator/IGeneratable.cs
index 3fd532c..5a7d9ea 100644
--- a/generator/IGeneratable.cs
+++ b/generator/IGeneratable.cs
@@ -1,57 +1,57 @@
-// GtkSharp.Generation.IGeneratable.cs - Interface to generate code for a type.
-//
-// Author: Mike Kestner <mkestner@novell.com>
-//
-// Copyright (c) 2001 Mike Kestner
-// Copyright (c) 2007 Novell, Inc.
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of version 2 of the 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
-// General Public License for more details.
-//
-// You should have received a copy of the GNU 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 GtkSharp.Generation {
-
- public interface IGeneratable {
-
- // The C name of the generatable
- string CName {get;}
-
- // The (short) C# name of the generatable
- string Name {get;}
-
- // The fully-qualified C# name of the generatable
- string QualifiedName {get;}
-
- // The type (possibly including "ref" or "out") to use in the import
- // signature when passing this generatable to unmanaged code
- string MarshalType {get;}
-
- // The value returned by callbacks that are interrupted prematurely
- // by managed exceptions or other conditions where an appropriate
- // value can't be otherwise obtained.
- string DefaultValue {get;}
-
- // Generates an expression to convert var_name to MarshalType
- string CallByName (string var_name);
-
- // Generates an expression to convert var from MarshalType
- string FromNative (string var);
-
- bool Validate ();
-
- void Generate ();
-
- void Generate (GenerationInfo gen_info);
- }
-}
+// GtkSharp.Generation.IGeneratable.cs - Interface to generate code for a type.
+//
+// Author: Mike Kestner <mkestner@novell.com>
+//
+// Copyright (c) 2001 Mike Kestner
+// Copyright (c) 2007 Novell, Inc.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of version 2 of the 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
+// General Public License for more details.
+//
+// You should have received a copy of the GNU 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 GtkSharp.Generation {
+
+ public interface IGeneratable {
+
+ // The C name of the generatable
+ string CName {get;}
+
+ // The (short) C# name of the generatable
+ string Name {get;}
+
+ // The fully-qualified C# name of the generatable
+ string QualifiedName {get;}
+
+ // The type (possibly including "ref" or "out") to use in the import
+ // signature when passing this generatable to unmanaged code
+ string MarshalType {get;}
+
+ // The value returned by callbacks that are interrupted prematurely
+ // by managed exceptions or other conditions where an appropriate
+ // value can't be otherwise obtained.
+ string DefaultValue {get;}
+
+ // Generates an expression to convert var_name to MarshalType
+ string CallByName (string var_name);
+
+ // Generates an expression to convert var from MarshalType
+ string FromNative (string var);
+
+ bool Validate ();
+
+ void Generate ();
+
+ void Generate (GenerationInfo gen_info);
+ }
+}
diff --git a/generator/IManualMarshaler.cs b/generator/IManualMarshaler.cs
index e9e7eaf..25633c5 100644
--- a/generator/IManualMarshaler.cs
+++ b/generator/IManualMarshaler.cs
@@ -1,32 +1,32 @@
-// GtkSharp.Generation.IManualMarshaler.cs - Interface for manual marshaling.
-//
-// Author: Mike Kestner <mkestner@novell.com>
-//
-// Copyright (c) 2005 Novell, Inc.
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of version 2 of the 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
-// General Public License for more details.
-//
-// You should have received a copy of the GNU 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 GtkSharp.Generation {
-
- public interface IManualMarshaler {
-
- string AllocNative (string managed_var);
-
- string ReleaseNative (string native_var);
-
- }
-}
-
+// GtkSharp.Generation.IManualMarshaler.cs - Interface for manual marshaling.
+//
+// Author: Mike Kestner <mkestner@novell.com>
+//
+// Copyright (c) 2005 Novell, Inc.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of version 2 of the 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
+// General Public License for more details.
+//
+// You should have received a copy of the GNU 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 GtkSharp.Generation {
+
+ public interface IManualMarshaler {
+
+ string AllocNative (string managed_var);
+
+ string ReleaseNative (string native_var);
+
+ }
+}
+
diff --git a/generator/InterfaceGen.cs b/generator/InterfaceGen.cs
index 9978c7a..cb6d1ac 100644
--- a/generator/InterfaceGen.cs
+++ b/generator/InterfaceGen.cs
@@ -1,363 +1,363 @@
-// GtkSharp.Generation.InterfaceGen.cs - The Interface Generatable.
-//
-// Author: Mike Kestner <mkestner@speakeasy.net>
-//
-// Copyright (c) 2001-2003 Mike Kestner
-// Copyright (c) 2004, 2007 Novell, Inc.
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of version 2 of the 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
-// General Public License for more details.
-//
-// You should have received a copy of the GNU 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 GtkSharp.Generation {
-
- using System;
- using System.Collections;
- using System.IO;
- using System.Xml;
-
- public class InterfaceGen : ObjectBase {
-
- bool consume_only;
-
- public InterfaceGen (XmlElement ns, XmlElement elem) : base (ns, elem, true)
- {
- consume_only = elem.HasAttribute ("consume_only");
- foreach (XmlNode node in elem.ChildNodes) {
- if (!(node is XmlElement)) continue;
- XmlElement member = (XmlElement) node;
-
- switch (member.Name) {
- case "signal":
- object sig = sigs [member.GetAttribute ("name")];
- if (sig == null)
- sig = new Signal (node as XmlElement, this);
- break;
- default:
- if (!base.IsNodeNameHandled (node.Name))
- new LogWriter (QualifiedName).Warn ("Unexpected node " + node.Name);
- break;
- }
- }
- }
-
- public bool IsConsumeOnly {
- get {
- return consume_only;
- }
- }
-
- public override string CallByName (string var, bool owned)
- {
- return String.Format ("{0} == null ? IntPtr.Zero : (({0} is GLib.Object) ? ({0} as GLib.Object).{1} : ({0} as {2}Adapter).{1})", var, owned ? "OwnedHandle" : "Handle", QualifiedName);
- }
-
- public override string FromNative (string var, bool owned)
- {
- return QualifiedName + "Adapter.GetObject (" + var + ", " + (owned ? "true" : "false") + ")";
- }
-
- public override bool ValidateForSubclass ()
- {
- if (!base.ValidateForSubclass ())
- return false;
-
- LogWriter log = new LogWriter (QualifiedName);
- ArrayList invalids = new ArrayList ();
- foreach (Method method in methods.Values) {
- if (!method.Validate (log))
- invalids.Add (method);
- }
- foreach (Method method in invalids)
- methods.Remove (method.Name);
- invalids.Clear ();
-
- return true;
- }
-
- void GenerateStaticCtor (StreamWriter sw)
- {
- sw.WriteLine ("\t\tstatic {0} iface;", class_struct_name);
- sw.WriteLine ();
- sw.WriteLine ("\t\tstatic " + Name + "Adapter ()");
- sw.WriteLine ("\t\t{");
- sw.WriteLine ("\t\t\tGLib.GType.Register (_gtype, typeof({0}Adapter));", Name);
- foreach (InterfaceVM vm in interface_vms) {
- if (vm.Validate (new LogWriter (QualifiedName)))
- sw.WriteLine ("\t\t\tiface.{0} = new {0}NativeDelegate ({0}_cb);", vm.Name);
- }
- sw.WriteLine ("\t\t}");
- sw.WriteLine ();
- }
-
- void GenerateInitialize (StreamWriter sw)
- {
- sw.WriteLine ("\t\tstatic int class_offset = 2 * IntPtr.Size;"); // Class size of GTypeInterface struct
- sw.WriteLine ();
- sw.WriteLine ("\t\tstatic void Initialize (IntPtr ptr, IntPtr data)");
- sw.WriteLine ("\t\t{");
- if (interface_vms.Count > 0) {
- sw.WriteLine ("\t\t\tIntPtr ifaceptr = new IntPtr (ptr.ToInt64 () + class_offset);");
- sw.WriteLine ("\t\t\t{0} native_iface = ({0}) Marshal.PtrToStructure (ifaceptr, typeof ({0}));", class_struct_name);
- foreach (InterfaceVM vm in interface_vms) {
- sw.WriteLine ("\t\t\tnative_iface." + vm.Name + " = iface." + vm.Name + ";");
- }
- sw.WriteLine ("\t\t\tMarshal.StructureToPtr (native_iface, ifaceptr, false);");
- sw.WriteLine ("\t\t\tGCHandle gch = (GCHandle) data;");
- sw.WriteLine ("\t\t\tgch.Free ();");
- }
-
- foreach (Property prop in props.Values) {
- sw.WriteLine ("\t\t\tGLib.Object.OverrideProperty (data, \"" + prop.CName + "\");");
- }
- sw.WriteLine ("\t\t}");
- sw.WriteLine ();
- }
-
- void GenerateCallbacks (StreamWriter sw)
- {
- foreach (InterfaceVM vm in interface_vms) {
- vm.GenerateCallback (sw, null);
- }
- }
-
- void GenerateCtors (StreamWriter sw)
- {
- // Native GObjects do not implement the *Implementor interfaces
- sw.WriteLine ("\t\tGLib.Object implementor;", Name);
- sw.WriteLine ();
-
- if (!IsConsumeOnly) {
- sw.WriteLine ("\t\tpublic " + Name + "Adapter ()");
- sw.WriteLine ("\t\t{");
- sw.WriteLine ("\t\t\tInitHandler = new GLib.GInterfaceInitHandler (Initialize);");
- sw.WriteLine ("\t\t}");
- sw.WriteLine ();
- sw.WriteLine ("\t\tpublic {0}Adapter ({0}Implementor implementor)", Name);
- sw.WriteLine ("\t\t{");
- sw.WriteLine ("\t\t\tif (implementor == null)");
- sw.WriteLine ("\t\t\t\tthrow new ArgumentNullException (\"implementor\");");
- sw.WriteLine ("\t\t\telse if (!(implementor is GLib.Object))");
- sw.WriteLine ("\t\t\t\tthrow new ArgumentException (\"implementor must be a subclass of GLib.Object\");");
- sw.WriteLine ("\t\t\tthis.implementor = implementor as GLib.Object;");
- sw.WriteLine ("\t\t}");
- sw.WriteLine ();
- }
-
- sw.WriteLine ("\t\tpublic " + Name + "Adapter (IntPtr handle)");
- sw.WriteLine ("\t\t{");
- sw.WriteLine ("\t\t\tif (!_gtype.IsInstance (handle))");
- sw.WriteLine ("\t\t\t\tthrow new ArgumentException (\"The gobject doesn't implement the GInterface of this adapter\", \"handle\");");
- sw.WriteLine ("\t\t\timplementor = GLib.Object.GetObject (handle);");
- sw.WriteLine ("\t\t}");
- sw.WriteLine ();
- }
-
- void GenerateGType (StreamWriter sw)
- {
- Method m = GetMethod ("GetType");
- if (m == null)
- throw new Exception ("Interface " + QualifiedName + " missing GetType method.");
- m.GenerateImport (sw);
- sw.WriteLine ("\t\tprivate static GLib.GType _gtype = new GLib.GType ({0} ());", m.CName);
- sw.WriteLine ();
- sw.WriteLine ("\t\tpublic override GLib.GType GType {");
- sw.WriteLine ("\t\t\tget {");
- sw.WriteLine ("\t\t\t\treturn _gtype;");
- sw.WriteLine ("\t\t\t}");
- sw.WriteLine ("\t\t}");
- sw.WriteLine ();
- }
-
- void GenerateHandleProp (StreamWriter sw)
- {
- sw.WriteLine ("\t\tpublic override IntPtr Handle {");
- sw.WriteLine ("\t\t\tget {");
- sw.WriteLine ("\t\t\t\treturn implementor.Handle;");
- sw.WriteLine ("\t\t\t}");
- sw.WriteLine ("\t\t}");
- sw.WriteLine ();
- sw.WriteLine ("\t\tpublic IntPtr OwnedHandle {");
- sw.WriteLine ("\t\t\tget {");
- sw.WriteLine ("\t\t\t\treturn implementor.OwnedHandle;");
- sw.WriteLine ("\t\t\t}");
- sw.WriteLine ("\t\t}");
- sw.WriteLine ();
- }
-
- void GenerateGetObject (StreamWriter sw)
- {
- sw.WriteLine ("\t\tpublic static " + Name + " GetObject (IntPtr handle, bool owned)");
- sw.WriteLine ("\t\t{");
- sw.WriteLine ("\t\t\tGLib.Object obj = GLib.Object.GetObject (handle, owned);");
- sw.WriteLine ("\t\t\treturn GetObject (obj);");
- sw.WriteLine ("\t\t}");
- sw.WriteLine ();
- sw.WriteLine ("\t\tpublic static " + Name + " GetObject (GLib.Object obj)");
- sw.WriteLine ("\t\t{");
- sw.WriteLine ("\t\t\tif (obj == null)");
- sw.WriteLine ("\t\t\t\treturn null;");
- if (!IsConsumeOnly) {
- sw.WriteLine ("\t\t\telse if (obj is " + Name + "Implementor)");
- sw.WriteLine ("\t\t\t\treturn new {0}Adapter (obj as {0}Implementor);", Name);
- }
- sw.WriteLine ("\t\t\telse if (obj as " + Name + " == null)");
- sw.WriteLine ("\t\t\t\treturn new {0}Adapter (obj.Handle);", Name);
- sw.WriteLine ("\t\t\telse");
- sw.WriteLine ("\t\t\t\treturn obj as {0};", Name);
- sw.WriteLine ("\t\t}");
- sw.WriteLine ();
- }
-
- void GenerateImplementorProp (StreamWriter sw)
- {
- sw.WriteLine ("\t\tpublic " + Name + "Implementor Implementor {");
- sw.WriteLine ("\t\t\tget {");
- sw.WriteLine ("\t\t\t\treturn implementor as {0}Implementor;", Name);
- sw.WriteLine ("\t\t\t}");
- sw.WriteLine ("\t\t}");
- sw.WriteLine ();
- }
-
- void GenerateAdapter (GenerationInfo gen_info)
- {
- StreamWriter sw = gen_info.Writer = gen_info.OpenStream (Name + "Adapter");
-
- sw.WriteLine ("namespace " + NS + " {");
- sw.WriteLine ();
- sw.WriteLine ("\tusing System;");
- sw.WriteLine ("\tusing System.Runtime.InteropServices;");
- sw.WriteLine ();
- sw.WriteLine ("#region Autogenerated code");
- sw.WriteLine ("\tpublic partial class " + Name + "Adapter : GLib.GInterfaceAdapter, " + QualifiedName + " {");
- sw.WriteLine ();
-
- if (!IsConsumeOnly) {
- GenerateClassStruct (gen_info);
- GenerateStaticCtor (sw);
- GenerateCallbacks (sw);
- GenerateInitialize (sw);
- }
- GenerateCtors (sw);
- GenerateGType (sw);
- GenerateHandleProp (sw);
- GenerateGetObject (sw);
- if (!IsConsumeOnly)
- GenerateImplementorProp (sw);
-
- GenProperties (gen_info, null);
-
- foreach (Signal sig in sigs.Values)
- sig.GenEvent (sw, null, "GLib.Object.GetObject (Handle)");
-
- Method temp = methods ["GetType"] as Method;
- if (temp != null)
- methods.Remove ("GetType");
- GenMethods (gen_info, new Hashtable (), this);
- if (temp != null)
- methods ["GetType"] = temp;
-
- sw.WriteLine ("#endregion");
-
- sw.WriteLine ("\t}");
- sw.WriteLine ("}");
- sw.Close ();
- gen_info.Writer = null;
- }
-
- void GenerateImplementorIface (GenerationInfo gen_info)
- {
- if (IsConsumeOnly)
- return;
-
- StreamWriter sw = gen_info.Writer;
- sw.WriteLine ();
- sw.WriteLine ("\t[GLib.GInterface (typeof (" + Name + "Adapter))]");
- string access = IsInternal ? "internal" : "public";
- sw.WriteLine ("\t" + access + " partial interface " + Name + "Implementor : GLib.IWrapper {");
- sw.WriteLine ();
- Hashtable vm_table = new Hashtable ();
- foreach (InterfaceVM vm in interface_vms) {
- vm_table [vm.Name] = vm;
- }
- foreach (InterfaceVM vm in interface_vms) {
- if (vm_table [vm.Name] == null)
- continue;
- else if (!vm.Validate (new LogWriter (QualifiedName))) {
- vm_table.Remove (vm.Name);
- continue;
- } else if (vm.IsGetter || vm.IsSetter) {
- string cmp_name = (vm.IsGetter ? "Set" : "Get") + vm.Name.Substring (3);
- InterfaceVM cmp = vm_table [cmp_name] as InterfaceVM;
- if (cmp != null && (cmp.IsGetter || cmp.IsSetter)) {
- if (vm.IsSetter)
- cmp.GenerateDeclaration (sw, vm);
- else
- vm.GenerateDeclaration (sw, cmp);
- vm_table.Remove (cmp.Name);
- } else
- vm.GenerateDeclaration (sw, null);
- vm_table.Remove (vm.Name);
- } else {
- vm.GenerateDeclaration (sw, null);
- vm_table.Remove (vm.Name);
- }
- }
- foreach (Property prop in props.Values) {
- sw.WriteLine ("\t\t[GLib.Property (\"" + prop.CName + "\")]");
- prop.GenerateDecl (sw, "\t\t");
- }
-
- sw.WriteLine ("\t}");
- }
-
- public override void Generate (GenerationInfo gen_info)
- {
- GenerateAdapter (gen_info);
- StreamWriter sw = gen_info.Writer = gen_info.OpenStream (Name);
-
- sw.WriteLine ("namespace " + NS + " {");
- sw.WriteLine ();
- sw.WriteLine ("\tusing System;");
- sw.WriteLine ();
- sw.WriteLine ("#region Autogenerated code");
- string access = IsInternal ? "internal" : "public";
- sw.WriteLine ("\t" + access + " partial interface " + Name + " : GLib.IWrapper {");
- sw.WriteLine ();
-
- foreach (Signal sig in sigs.Values) {
- sig.GenerateDecl (sw);
- sig.GenEventHandler (gen_info);
- }
-
- foreach (Method method in methods.Values) {
- if (IgnoreMethod (method, this))
- continue;
- method.GenerateDecl (sw);
- }
-
- foreach (Property prop in props.Values)
- prop.GenerateDecl (sw, "\t\t");
-
- sw.WriteLine ("\t}");
- GenerateImplementorIface (gen_info);
- sw.WriteLine ("#endregion");
- sw.WriteLine ("}");
- sw.Close ();
- gen_info.Writer = null;
- Statistics.IFaceCount++;
- }
- }
-}
-
+// GtkSharp.Generation.InterfaceGen.cs - The Interface Generatable.
+//
+// Author: Mike Kestner <mkestner@speakeasy.net>
+//
+// Copyright (c) 2001-2003 Mike Kestner
+// Copyright (c) 2004, 2007 Novell, Inc.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of version 2 of the 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
+// General Public License for more details.
+//
+// You should have received a copy of the GNU 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 GtkSharp.Generation {
+
+ using System;
+ using System.Collections.Generic;
+ using System.IO;
+ using System.Xml;
+
+ public class InterfaceGen : ObjectBase {
+
+ bool consume_only;
+
+ public InterfaceGen (XmlElement ns, XmlElement elem) : base (ns, elem, true)
+ {
+ consume_only = elem.GetAttributeAsBoolean ("consume_only");
+ foreach (XmlNode node in elem.ChildNodes) {
+ if (!(node is XmlElement)) continue;
+ XmlElement member = (XmlElement) node;
+
+ switch (member.Name) {
+ case "signal":
+ object sig = sigs [member.GetAttribute ("name")];
+ if (sig == null)
+ sig = new Signal (node as XmlElement, this);
+ break;
+ default:
+ if (!base.IsNodeNameHandled (node.Name))
+ new LogWriter (QualifiedName).Warn ("Unexpected node " + node.Name);
+ break;
+ }
+ }
+ }
+
+ public bool IsConsumeOnly {
+ get {
+ return consume_only;
+ }
+ }
+
+ public override string CallByName (string var, bool owned)
+ {
+ return String.Format ("{0} == null ? IntPtr.Zero : (({0} is GLib.Object) ? ({0} as GLib.Object).{1} : ({0} as {2}Adapter).{1})", var, owned ? "OwnedHandle" : "Handle", QualifiedName);
+ }
+
+ public override string FromNative (string var, bool owned)
+ {
+ return QualifiedName + "Adapter.GetObject (" + var + ", " + (owned ? "true" : "false") + ")";
+ }
+
+ public override bool ValidateForSubclass ()
+ {
+ if (!base.ValidateForSubclass ())
+ return false;
+
+ LogWriter log = new LogWriter (QualifiedName);
+ var invalids = new List<Method> ();
+ foreach (Method method in Methods.Values) {
+ if (!method.Validate (log))
+ invalids.Add (method);
+ }
+ foreach (Method method in invalids)
+ Methods.Remove (method.Name);
+ invalids.Clear ();
+
+ return true;
+ }
+
+ void GenerateStaticCtor (StreamWriter sw)
+ {
+ sw.WriteLine ("\t\tstatic {0} iface;", class_struct_name);
+ sw.WriteLine ();
+ sw.WriteLine ("\t\tstatic " + Name + "Adapter ()");
+ sw.WriteLine ("\t\t{");
+ sw.WriteLine ("\t\t\tGLib.GType.Register (_gtype, typeof({0}Adapter));", Name);
+ foreach (InterfaceVM vm in interface_vms) {
+ if (vm.Validate (new LogWriter (QualifiedName)))
+ sw.WriteLine ("\t\t\tiface.{0} = new {0}NativeDelegate ({0}_cb);", vm.Name);
+ }
+ sw.WriteLine ("\t\t}");
+ sw.WriteLine ();
+ }
+
+ void GenerateInitialize (StreamWriter sw)
+ {
+ sw.WriteLine ("\t\tstatic int class_offset = 2 * IntPtr.Size;"); // Class size of GTypeInterface struct
+ sw.WriteLine ();
+ sw.WriteLine ("\t\tstatic void Initialize (IntPtr ptr, IntPtr data)");
+ sw.WriteLine ("\t\t{");
+ if (interface_vms.Count > 0) {
+ sw.WriteLine ("\t\t\tIntPtr ifaceptr = new IntPtr (ptr.ToInt64 () + class_offset);");
+ sw.WriteLine ("\t\t\t{0} native_iface = ({0}) Marshal.PtrToStructure (ifaceptr, typeof ({0}));", class_struct_name);
+ foreach (InterfaceVM vm in interface_vms) {
+ sw.WriteLine ("\t\t\tnative_iface." + vm.Name + " = iface." + vm.Name + ";");
+ }
+ sw.WriteLine ("\t\t\tMarshal.StructureToPtr (native_iface, ifaceptr, false);");
+ sw.WriteLine ("\t\t\tGCHandle gch = (GCHandle) data;");
+ sw.WriteLine ("\t\t\tgch.Free ();");
+ }
+
+ foreach (Property prop in Properties.Values) {
+ sw.WriteLine ("\t\t\tGLib.Object.OverrideProperty (data, \"" + prop.CName + "\");");
+ }
+ sw.WriteLine ("\t\t}");
+ sw.WriteLine ();
+ }
+
+ void GenerateCallbacks (StreamWriter sw)
+ {
+ foreach (InterfaceVM vm in interface_vms) {
+ vm.GenerateCallback (sw, null);
+ }
+ }
+
+ void GenerateCtors (StreamWriter sw)
+ {
+ // Native GObjects do not implement the *Implementor interfaces
+ sw.WriteLine ("\t\tGLib.Object implementor;", Name);
+ sw.WriteLine ();
+
+ if (!IsConsumeOnly) {
+ sw.WriteLine ("\t\tpublic " + Name + "Adapter ()");
+ sw.WriteLine ("\t\t{");
+ sw.WriteLine ("\t\t\tInitHandler = new GLib.GInterfaceInitHandler (Initialize);");
+ sw.WriteLine ("\t\t}");
+ sw.WriteLine ();
+ sw.WriteLine ("\t\tpublic {0}Adapter ({0}Implementor implementor)", Name);
+ sw.WriteLine ("\t\t{");
+ sw.WriteLine ("\t\t\tif (implementor == null)");
+ sw.WriteLine ("\t\t\t\tthrow new ArgumentNullException (\"implementor\");");
+ sw.WriteLine ("\t\t\telse if (!(implementor is GLib.Object))");
+ sw.WriteLine ("\t\t\t\tthrow new ArgumentException (\"implementor must be a subclass of GLib.Object\");");
+ sw.WriteLine ("\t\t\tthis.implementor = implementor as GLib.Object;");
+ sw.WriteLine ("\t\t}");
+ sw.WriteLine ();
+ }
+
+ sw.WriteLine ("\t\tpublic " + Name + "Adapter (IntPtr handle)");
+ sw.WriteLine ("\t\t{");
+ sw.WriteLine ("\t\t\tif (!_gtype.IsInstance (handle))");
+ sw.WriteLine ("\t\t\t\tthrow new ArgumentException (\"The gobject doesn't implement the GInterface of this adapter\", \"handle\");");
+ sw.WriteLine ("\t\t\timplementor = GLib.Object.GetObject (handle);");
+ sw.WriteLine ("\t\t}");
+ sw.WriteLine ();
+ }
+
+ void GenerateGType (StreamWriter sw)
+ {
+ Method m = GetMethod ("GetType");
+ if (m == null)
+ throw new Exception ("Interface " + QualifiedName + " missing GetType method.");
+ m.GenerateImport (sw);
+ sw.WriteLine ("\t\tprivate static GLib.GType _gtype = new GLib.GType ({0} ());", m.CName);
+ sw.WriteLine ();
+ sw.WriteLine ("\t\tpublic override GLib.GType GType {");
+ sw.WriteLine ("\t\t\tget {");
+ sw.WriteLine ("\t\t\t\treturn _gtype;");
+ sw.WriteLine ("\t\t\t}");
+ sw.WriteLine ("\t\t}");
+ sw.WriteLine ();
+ }
+
+ void GenerateHandleProp (StreamWriter sw)
+ {
+ sw.WriteLine ("\t\tpublic override IntPtr Handle {");
+ sw.WriteLine ("\t\t\tget {");
+ sw.WriteLine ("\t\t\t\treturn implementor.Handle;");
+ sw.WriteLine ("\t\t\t}");
+ sw.WriteLine ("\t\t}");
+ sw.WriteLine ();
+ sw.WriteLine ("\t\tpublic IntPtr OwnedHandle {");
+ sw.WriteLine ("\t\t\tget {");
+ sw.WriteLine ("\t\t\t\treturn implementor.OwnedHandle;");
+ sw.WriteLine ("\t\t\t}");
+ sw.WriteLine ("\t\t}");
+ sw.WriteLine ();
+ }
+
+ void GenerateGetObject (StreamWriter sw)
+ {
+ sw.WriteLine ("\t\tpublic static " + Name + " GetObject (IntPtr handle, bool owned)");
+ sw.WriteLine ("\t\t{");
+ sw.WriteLine ("\t\t\tGLib.Object obj = GLib.Object.GetObject (handle, owned);");
+ sw.WriteLine ("\t\t\treturn GetObject (obj);");
+ sw.WriteLine ("\t\t}");
+ sw.WriteLine ();
+ sw.WriteLine ("\t\tpublic static " + Name + " GetObject (GLib.Object obj)");
+ sw.WriteLine ("\t\t{");
+ sw.WriteLine ("\t\t\tif (obj == null)");
+ sw.WriteLine ("\t\t\t\treturn null;");
+ if (!IsConsumeOnly) {
+ sw.WriteLine ("\t\t\telse if (obj is " + Name + "Implementor)");
+ sw.WriteLine ("\t\t\t\treturn new {0}Adapter (obj as {0}Implementor);", Name);
+ }
+ sw.WriteLine ("\t\t\telse if (obj as " + Name + " == null)");
+ sw.WriteLine ("\t\t\t\treturn new {0}Adapter (obj.Handle);", Name);
+ sw.WriteLine ("\t\t\telse");
+ sw.WriteLine ("\t\t\t\treturn obj as {0};", Name);
+ sw.WriteLine ("\t\t}");
+ sw.WriteLine ();
+ }
+
+ void GenerateImplementorProp (StreamWriter sw)
+ {
+ sw.WriteLine ("\t\tpublic " + Name + "Implementor Implementor {");
+ sw.WriteLine ("\t\t\tget {");
+ sw.WriteLine ("\t\t\t\treturn implementor as {0}Implementor;", Name);
+ sw.WriteLine ("\t\t\t}");
+ sw.WriteLine ("\t\t}");
+ sw.WriteLine ();
+ }
+
+ void GenerateAdapter (GenerationInfo gen_info)
+ {
+ StreamWriter sw = gen_info.Writer = gen_info.OpenStream (Name + "Adapter");
+
+ sw.WriteLine ("namespace " + NS + " {");
+ sw.WriteLine ();
+ sw.WriteLine ("\tusing System;");
+ sw.WriteLine ("\tusing System.Runtime.InteropServices;");
+ sw.WriteLine ();
+ sw.WriteLine ("#region Autogenerated code");
+ sw.WriteLine ("\tpublic partial class " + Name + "Adapter : GLib.GInterfaceAdapter, " + QualifiedName + " {");
+ sw.WriteLine ();
+
+ if (!IsConsumeOnly) {
+ GenerateClassStruct (gen_info);
+ GenerateStaticCtor (sw);
+ GenerateCallbacks (sw);
+ GenerateInitialize (sw);
+ }
+ GenerateCtors (sw);
+ GenerateGType (sw);
+ GenerateHandleProp (sw);
+ GenerateGetObject (sw);
+ if (!IsConsumeOnly)
+ GenerateImplementorProp (sw);
+
+ GenProperties (gen_info, null);
+
+ foreach (Signal sig in sigs.Values)
+ sig.GenEvent (sw, null, "GLib.Object.GetObject (Handle)");
+
+ Method temp = GetMethod ("GetType");
+ if (temp != null)
+ Methods.Remove ("GetType");
+ GenMethods (gen_info, null, this);
+ if (temp != null)
+ Methods ["GetType"] = temp;
+
+ sw.WriteLine ("#endregion");
+
+ sw.WriteLine ("\t}");
+ sw.WriteLine ("}");
+ sw.Close ();
+ gen_info.Writer = null;
+ }
+
+ void GenerateImplementorIface (GenerationInfo gen_info)
+ {
+ if (IsConsumeOnly)
+ return;
+
+ StreamWriter sw = gen_info.Writer;
+ sw.WriteLine ();
+ sw.WriteLine ("\t[GLib.GInterface (typeof (" + Name + "Adapter))]");
+ string access = IsInternal ? "internal" : "public";
+ sw.WriteLine ("\t" + access + " partial interface " + Name + "Implementor : GLib.IWrapper {");
+ sw.WriteLine ();
+ var vm_table = new Dictionary<string, InterfaceVM> ();
+ foreach (InterfaceVM vm in interface_vms) {
+ vm_table [vm.Name] = vm;
+ }
+ foreach (InterfaceVM vm in interface_vms) {
+ if (!vm_table.ContainsKey (vm.Name)) {
+ continue;
+ } else if (!vm.Validate (new LogWriter (QualifiedName))) {
+ vm_table.Remove (vm.Name);
+ continue;
+ } else if (vm.IsGetter || vm.IsSetter) {
+ string cmp_name = (vm.IsGetter ? "Set" : "Get") + vm.Name.Substring (3);
+ InterfaceVM cmp = null;
+ if (vm_table.TryGetValue (cmp_name, out cmp) && (cmp.IsGetter || cmp.IsSetter)) {
+ if (vm.IsSetter)
+ cmp.GenerateDeclaration (sw, vm);
+ else
+ vm.GenerateDeclaration (sw, cmp);
+ vm_table.Remove (cmp.Name);
+ } else
+ vm.GenerateDeclaration (sw, null);
+ vm_table.Remove (vm.Name);
+ } else {
+ vm.GenerateDeclaration (sw, null);
+ vm_table.Remove (vm.Name);
+ }
+ }
+ foreach (Property prop in Properties.Values) {
+ sw.WriteLine ("\t\t[GLib.Property (\"" + prop.CName + "\")]");
+ prop.GenerateDecl (sw, "\t\t");
+ }
+
+ sw.WriteLine ("\t}");
+ }
+
+ public override void Generate (GenerationInfo gen_info)
+ {
+ GenerateAdapter (gen_info);
+ StreamWriter sw = gen_info.Writer = gen_info.OpenStream (Name);
+
+ sw.WriteLine ("namespace " + NS + " {");
+ sw.WriteLine ();
+ sw.WriteLine ("\tusing System;");
+ sw.WriteLine ();
+ sw.WriteLine ("#region Autogenerated code");
+ string access = IsInternal ? "internal" : "public";
+ sw.WriteLine ("\t" + access + " partial interface " + Name + " : GLib.IWrapper {");
+ sw.WriteLine ();
+
+ foreach (Signal sig in sigs.Values) {
+ sig.GenerateDecl (sw);
+ sig.GenEventHandler (gen_info);
+ }
+
+ foreach (Method method in Methods.Values) {
+ if (IgnoreMethod (method, this))
+ continue;
+ method.GenerateDecl (sw);
+ }
+
+ foreach (Property prop in Properties.Values)
+ prop.GenerateDecl (sw, "\t\t");
+
+ sw.WriteLine ("\t}");
+ GenerateImplementorIface (gen_info);
+ sw.WriteLine ("#endregion");
+ sw.WriteLine ("}");
+ sw.Close ();
+ gen_info.Writer = null;
+ Statistics.IFaceCount++;
+ }
+ }
+}
+
diff --git a/generator/LPGen.cs b/generator/LPGen.cs
index 3fb774e..84940b5 100644
--- a/generator/LPGen.cs
+++ b/generator/LPGen.cs
@@ -1,58 +1,58 @@
-// GtkSharp.Generation.LPGen.cs - long/pointer Generatable.
-//
-// Author: Mike Kestner <mkestner@novell.com>
-//
-// Copyright (c) 2004 Novell, Inc.
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of version 2 of the 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
-// General Public License for more details.
-//
-// You should have received a copy of the GNU 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 GtkSharp.Generation {
-
- using System;
- using System.IO;
-
- public class LPGen : SimpleGen, IAccessor {
-
- public LPGen (string ctype) : base (ctype, "long", "0L") {}
-
- public override string MarshalType {
- get {
- return "IntPtr";
- }
- }
-
- public override string CallByName (string var_name)
- {
- return "new IntPtr (" + var_name + ")";
- }
-
- public override string FromNative(string var)
- {
- return "(long) " + var;
- }
-
- public void WriteAccessors (StreamWriter sw, string indent, string var)
- {
- sw.WriteLine (indent + "get {");
- sw.WriteLine (indent + "\treturn " + FromNative (var) + ";");
- sw.WriteLine (indent + "}");
- sw.WriteLine (indent + "set {");
- sw.WriteLine (indent + "\t" + var + " = " + CallByName ("value") + ";");
- sw.WriteLine (indent + "}");
- }
- }
-}
-
+// GtkSharp.Generation.LPGen.cs - long/pointer Generatable.
+//
+// Author: Mike Kestner <mkestner@novell.com>
+//
+// Copyright (c) 2004 Novell, Inc.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of version 2 of the 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
+// General Public License for more details.
+//
+// You should have received a copy of the GNU 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 GtkSharp.Generation {
+
+ using System;
+ using System.IO;
+
+ public class LPGen : SimpleGen, IAccessor {
+
+ public LPGen (string ctype) : base (ctype, "long", "0L") {}
+
+ public override string MarshalType {
+ get {
+ return "IntPtr";
+ }
+ }
+
+ public override string CallByName (string var_name)
+ {
+ return "new IntPtr (" + var_name + ")";
+ }
+
+ public override string FromNative(string var)
+ {
+ return "(long) " + var;
+ }
+
+ public void WriteAccessors (StreamWriter sw, string indent, string var)
+ {
+ sw.WriteLine (indent + "get {");
+ sw.WriteLine (indent + "\treturn " + FromNative (var) + ";");
+ sw.WriteLine (indent + "}");
+ sw.WriteLine (indent + "set {");
+ sw.WriteLine (indent + "\t" + var + " = " + CallByName ("value") + ";");
+ sw.WriteLine (indent + "}");
+ }
+ }
+}
+
diff --git a/generator/LPUGen.cs b/generator/LPUGen.cs
index 331b25f..f84cdd8 100644
--- a/generator/LPUGen.cs
+++ b/generator/LPUGen.cs
@@ -1,58 +1,58 @@
-// GtkSharp.Generation.LPUGen.cs - unsugned long/pointer generatable.
-//
-// Author: Mike Kestner <mkestner@novell.com>
-//
-// Copyright (c) 2004 Novell, Inc.
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of version 2 of the 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
-// General Public License for more details.
-//
-// You should have received a copy of the GNU 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 GtkSharp.Generation {
-
- using System;
- using System.IO;
-
- public class LPUGen : SimpleGen, IAccessor {
-
- public LPUGen (string ctype) : base (ctype, "ulong", "0") {}
-
- public override string MarshalType {
- get {
- return "UIntPtr";
- }
- }
-
- public override string CallByName (string var_name)
- {
- return "new UIntPtr (" + var_name + ")";
- }
-
- public override string FromNative(string var)
- {
- return "(ulong) " + var;
- }
-
- public void WriteAccessors (StreamWriter sw, string indent, string var)
- {
- sw.WriteLine (indent + "get {");
- sw.WriteLine (indent + "\treturn " + FromNative (var) + ";");
- sw.WriteLine (indent + "}");
- sw.WriteLine (indent + "set {");
- sw.WriteLine (indent + "\t" + var + " = " + CallByName ("value") + ";");
- sw.WriteLine (indent + "}");
- }
- }
-}
-
+// GtkSharp.Generation.LPUGen.cs - unsugned long/pointer generatable.
+//
+// Author: Mike Kestner <mkestner@novell.com>
+//
+// Copyright (c) 2004 Novell, Inc.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of version 2 of the 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
+// General Public License for more details.
+//
+// You should have received a copy of the GNU 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 GtkSharp.Generation {
+
+ using System;
+ using System.IO;
+
+ public class LPUGen : SimpleGen, IAccessor {
+
+ public LPUGen (string ctype) : base (ctype, "ulong", "0") {}
+
+ public override string MarshalType {
+ get {
+ return "UIntPtr";
+ }
+ }
+
+ public override string CallByName (string var_name)
+ {
+ return "new UIntPtr (" + var_name + ")";
+ }
+
+ public override string FromNative(string var)
+ {
+ return "(ulong) " + var;
+ }
+
+ public void WriteAccessors (StreamWriter sw, string indent, string var)
+ {
+ sw.WriteLine (indent + "get {");
+ sw.WriteLine (indent + "\treturn " + FromNative (var) + ";");
+ sw.WriteLine (indent + "}");
+ sw.WriteLine (indent + "set {");
+ sw.WriteLine (indent + "\t" + var + " = " + CallByName ("value") + ";");
+ sw.WriteLine (indent + "}");
+ }
+ }
+}
+
diff --git a/generator/Makefile.am b/generator/Makefile.am
index ca061f0..7ef6a8e 100644
--- a/generator/Makefile.am
+++ b/generator/Makefile.am
@@ -8,6 +8,7 @@ references =
sources = \
AliasGen.cs \
+ ArrayParameter.cs \
BoxedGen.cs \
ByRefGen.cs \
CallbackGen.cs \
@@ -46,6 +47,7 @@ sources = \
ObjectGen.cs \
OpaqueGen.cs \
OwnableGen.cs \
+ Parameter.cs \
Parameters.cs \
Parser.cs \
Property.cs \
@@ -61,7 +63,8 @@ sources = \
StructGen.cs \
SymbolTable.cs \
VirtualMethod.cs \
- VMSignature.cs
+ VMSignature.cs \
+ XmlElementExtensions.cs
build_sources = $(addprefix $(srcdir)/, $(sources))
dist_sources = $(sources)
diff --git a/generator/Makefile.in b/generator/Makefile.in
index 7b573db..f6f9e4d 100644
--- a/generator/Makefile.in
+++ b/generator/Makefile.in
@@ -52,7 +52,6 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-target_triplet = @target@
subdir = generator
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(srcdir)/gapi3-codegen.in
@@ -115,8 +114,6 @@ AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BUILD_EXEEXT = @BUILD_EXEEXT@
-BUILD_GTK_CFLAGS = @BUILD_GTK_CFLAGS@
-BUILD_GTK_LIBS = @BUILD_GTK_LIBS@
CAIRO_API_VERSION = @CAIRO_API_VERSION@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
@@ -140,7 +137,6 @@ EXEEXT = @EXEEXT@
FGREP = @FGREP@
GACUTIL = @GACUTIL@
GACUTIL_FLAGS = @GACUTIL_FLAGS@
-GDK_BACKEND = @GDK_BACKEND@
GENERATED_SOURCES = @GENERATED_SOURCES@
GIO_CFLAGS = @GIO_CFLAGS@
GIO_LIBS = @GIO_LIBS@
@@ -195,6 +191,8 @@ PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POLICY_VERSIONS = @POLICY_VERSIONS@
+PROFILER_CFLAGS = @PROFILER_CFLAGS@
+PROFILER_LIBS = @PROFILER_LIBS@
RANLIB = @RANLIB@
RUNTIME = @RUNTIME@
SED = @SED@
@@ -250,11 +248,7 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
-target = @target@
target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
@@ -266,6 +260,7 @@ DISTCLEANFILES = gapi3-codegen
references =
sources = \
AliasGen.cs \
+ ArrayParameter.cs \
BoxedGen.cs \
ByRefGen.cs \
CallbackGen.cs \
@@ -304,6 +299,7 @@ sources = \
ObjectGen.cs \
OpaqueGen.cs \
OwnableGen.cs \
+ Parameter.cs \
Parameters.cs \
Parser.cs \
Property.cs \
@@ -319,7 +315,8 @@ sources = \
StructGen.cs \
SymbolTable.cs \
VirtualMethod.cs \
- VMSignature.cs
+ VMSignature.cs \
+ XmlElementExtensions.cs
build_sources = $(addprefix $(srcdir)/, $(sources))
dist_sources = $(sources)
diff --git a/generator/ManagedCallString.cs b/generator/ManagedCallString.cs
index 3102184..de0ad1b 100644
--- a/generator/ManagedCallString.cs
+++ b/generator/ManagedCallString.cs
@@ -22,13 +22,12 @@
namespace GtkSharp.Generation {
using System;
- using System.Collections;
+ using System.Collections.Generic;
using System.IO;
public class ManagedCallString {
- ArrayList parms = new ArrayList ();
- ArrayList special = new ArrayList ();
+ IDictionary<Parameter, bool> parms = new Dictionary<Parameter, bool> ();
string error_param = null;
string user_data_param = null;
string destroy_param = null;
@@ -50,20 +49,20 @@ namespace GtkSharp.Generation {
error_param = p.Name;
continue;
}
- this.parms.Add (p);
+ bool special = false;
if (p.PassAs != String.Empty && (p.Name != p.FromNative (p.Name)))
- this.special.Add (true);
+ special = true;
else if (p.Generatable is CallbackGen)
- this.special.Add (true);
- else
- this.special.Add (false);
+ special = true;
+
+ this.parms.Add (p, special);
}
}
public bool HasOutParam {
get {
- foreach (Parameter p in parms) {
+ foreach (Parameter p in parms.Keys) {
if (p.PassAs == "out")
return true;
}
@@ -82,11 +81,11 @@ namespace GtkSharp.Generation {
{
string ret = "";
- for (int i = 0; i < parms.Count; i ++) {
- if ((bool)special[i] == false)
+ foreach (Parameter p in parms.Keys) {
+ if (parms [p] == false) {
continue;
+ }
- Parameter p = parms [i] as Parameter;
IGeneratable igen = p.Generatable;
if (igen is CallbackGen) {
@@ -114,13 +113,15 @@ namespace GtkSharp.Generation {
string[] result = new string [parms.Count];
- for (int i = 0; i < parms.Count; i ++) {
- Parameter p = parms [i] as Parameter;
+ int i = 0;
+ foreach (Parameter p in parms.Keys) {
result [i] = p.PassAs == "" ? "" : p.PassAs + " ";
- if (p.Generatable is CallbackGen)
+ if (p.Generatable is CallbackGen) {
result [i] += p.Name + "_invoker.Handler";
- else
- result [i] += ((bool)special[i]) ? "my" + p.Name : p.FromNative (p.Name);
+ } else {
+ result [i] += (parms [p]) ? "my" + p.Name : p.FromNative (p.Name);
+ }
+ i++;
}
return String.Join (", ", result);
@@ -130,11 +131,11 @@ namespace GtkSharp.Generation {
{
string ret = "";
- for (int i = 0; i < parms.Count; i ++) {
- if ((bool)special[i] == false)
+ foreach (Parameter p in parms.Keys) {
+ if (parms [p] == false) {
continue;
+ }
- Parameter p = parms [i] as Parameter;
IGeneratable igen = p.Generatable;
if (igen is CallbackGen)
diff --git a/generator/ManualGen.cs b/generator/ManualGen.cs
index 1d94916..b12fc73 100644
--- a/generator/ManualGen.cs
+++ b/generator/ManualGen.cs
@@ -1,58 +1,58 @@
-// GtkSharp.Generation.ManualGen.cs - Ungenerated handle type Generatable.
-//
-// Author: Mike Kestner <mkestner@novell.com>
-//
-// Copyright (c) 2003 Mike Kestner
-// Copyright (c) 2004 Novell, Inc.
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of version 2 of the 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
-// General Public License for more details.
-//
-// You should have received a copy of the GNU 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 GtkSharp.Generation {
-
- using System;
-
- public class ManualGen : SimpleBase {
-
- string from_fmt;
-
- public ManualGen (string ctype, string type) : base (ctype, type, "null")
- {
- from_fmt = "new " + QualifiedName + "({0})";
- }
-
- public ManualGen (string ctype, string type, string from_fmt) : base (ctype, type, "null")
- {
- this.from_fmt = from_fmt;
- }
-
- public override string MarshalType {
- get {
- return "IntPtr";
- }
- }
-
- public override string CallByName (string var_name)
- {
- return var_name + " == null ? IntPtr.Zero : " + var_name + ".Handle";
- }
-
- public override string FromNative(string var)
- {
- return String.Format (from_fmt, var);
- }
- }
-}
-
+// GtkSharp.Generation.ManualGen.cs - Ungenerated handle type Generatable.
+//
+// Author: Mike Kestner <mkestner@novell.com>
+//
+// Copyright (c) 2003 Mike Kestner
+// Copyright (c) 2004 Novell, Inc.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of version 2 of the 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
+// General Public License for more details.
+//
+// You should have received a copy of the GNU 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 GtkSharp.Generation {
+
+ using System;
+
+ public class ManualGen : SimpleBase {
+
+ string from_fmt;
+
+ public ManualGen (string ctype, string type) : base (ctype, type, "null")
+ {
+ from_fmt = "new " + QualifiedName + "({0})";
+ }
+
+ public ManualGen (string ctype, string type, string from_fmt) : base (ctype, type, "null")
+ {
+ this.from_fmt = from_fmt;
+ }
+
+ public override string MarshalType {
+ get {
+ return "IntPtr";
+ }
+ }
+
+ public override string CallByName (string var_name)
+ {
+ return var_name + " == null ? IntPtr.Zero : " + var_name + ".Handle";
+ }
+
+ public override string FromNative(string var)
+ {
+ return String.Format (from_fmt, var);
+ }
+ }
+}
+
diff --git a/generator/Method.cs b/generator/Method.cs
index c2444bb..59711bf 100644
--- a/generator/Method.cs
+++ b/generator/Method.cs
@@ -1,338 +1,334 @@
-// GtkSharp.Generation.Method.cs - The Method Generatable.
-//
-// Author: Mike Kestner <mkestner@speakeasy.net>
-//
-// Copyright (c) 2001-2003 Mike Kestner
-// Copyright (c) 2003-2004 Novell, Inc.
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of version 2 of the 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
-// General Public License for more details.
-//
-// You should have received a copy of the GNU 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 GtkSharp.Generation {
-
- using System;
- using System.Collections;
- using System.IO;
- using System.Xml;
-
- public class Method : MethodBase {
-
- private ReturnValue retval;
-
- 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)
- {
- this.retval = new ReturnValue (elem["return-type"]);
-
- if (!container_type.IsDeprecated && elem.HasAttribute ("deprecated")) {
- string attr = elem.GetAttribute ("deprecated");
- deprecated = attr == "1" || attr == "true";
- }
-
- if (elem.HasAttribute ("win32_utf8_variant")) {
- string attr = elem.GetAttribute ("win32_utf8_variant");
- win32_utf8_variant = attr == "1" || attr.ToLower () == "true";
- }
-
- if (Name == "GetType")
- Name = "GetGType";
- }
-
- public bool HasWin32Utf8Variant {
- get { return win32_utf8_variant; }
- }
-
- public bool IsDeprecated {
- get {
- return deprecated;
- }
- }
-
- public bool IsGetter {
- get {
- return is_get;
- }
- }
-
- public bool IsSetter {
- get {
- return is_set;
- }
- }
-
- public string ReturnType {
- get {
- return retval.CSType;
- }
- }
-
- public override bool Validate (LogWriter log)
- {
- log.Member = Name;
- if (!retval.Validate (log) || !base.Validate (log))
- return false;
-
- Parameters parms = Parameters;
- is_get = ((((parms.IsAccessor && retval.IsVoid) || (parms.Count == 0 && !retval.IsVoid)) || (parms.Count == 0 && !retval.IsVoid)) && HasGetterName);
- is_set = ((parms.IsAccessor || (parms.VisibleCount == 1 && retval.IsVoid)) && HasSetterName);
-
- call = "(" + (IsStatic ? "" : container_type.CallByName () + (parms.Count > 0 ? ", " : "")) + Body.GetCallString (is_set) + ")";
-
- return true;
- }
-
- private Method GetComplement ()
- {
- char complement;
- if (is_get)
- complement = 'S';
- else
- complement = 'G';
-
- return container_type.GetMethod (complement + BaseName.Substring (1));
- }
-
- public string Declaration {
- get {
- return retval.CSType + " " + Name + " (" + (Signature != null ? Signature.ToString() : "") + ");";
- }
- }
-
- private void GenerateDeclCommon (StreamWriter sw, ClassBase implementor)
- {
- if (IsStatic)
- sw.Write("static ");
- sw.Write (Safety);
- Method dup = null;
- if (container_type != null)
- dup = container_type.GetMethodRecursively (Name);
- if (implementor != null)
- dup = implementor.GetMethodRecursively (Name);
-
- if (Name == "ToString" && Parameters.Count == 0 && (!(container_type is InterfaceGen)|| implementor != null))
- sw.Write("override ");
- else if (Name == "GetGType" && container_type is ObjectGen)
- sw.Write("new ");
- else if (Modifiers == "new " || (dup != null && ((dup.Signature != null && Signature != null && dup.Signature.ToString() == Signature.ToString()) || (dup.Signature == null && Signature == null))))
- sw.Write("new ");
-
- if (is_get || is_set) {
- if (retval.IsVoid)
- sw.Write (Parameters.AccessorReturnType);
- else
- sw.Write(retval.CSType);
- sw.Write(" ");
- if (Name.StartsWith ("Get") || Name.StartsWith ("Set"))
- sw.Write (Name.Substring (3));
- else {
- int dot = Name.LastIndexOf ('.');
- if (dot != -1 && (Name.Substring (dot + 1, 3) == "Get" || Name.Substring (dot + 1, 3) == "Set"))
- sw.Write (Name.Substring (0, dot + 1) + Name.Substring (dot + 4));
- else
- sw.Write (Name);
- }
- sw.WriteLine(" { ");
- } else if (IsAccessor) {
- sw.Write (Signature.AccessorType + " " + Name + "(" + Signature.AsAccessor + ")");
- } else {
- sw.Write(retval.CSType + " " + Name + "(" + (Signature != null ? Signature.ToString() : "") + ")");
- }
- }
-
- public void GenerateDecl (StreamWriter sw)
- {
- if (IsStatic)
- return;
-
- if (is_get || is_set)
- {
- Method comp = GetComplement ();
- if (comp != null && is_set)
- return;
-
- sw.Write("\t\t");
- GenerateDeclCommon (sw, null);
-
- sw.Write("\t\t\t");
- sw.Write ((is_get) ? "get;" : "set;");
-
- if (comp != null && comp.is_set)
- sw.WriteLine (" set;");
- else
- sw.WriteLine ();
-
- sw.WriteLine ("\t\t}");
- }
- else
- {
- sw.Write("\t\t");
- GenerateDeclCommon (sw, null);
- sw.WriteLine (";");
- }
-
- Statistics.MethodCount++;
- }
-
- public void GenerateImport (StreamWriter sw)
- {
- string import_sig = IsStatic ? "" : container_type.MarshalType + " raw";
- import_sig += !IsStatic && Parameters.Count > 0 ? ", " : "";
- import_sig += Parameters.ImportSignature.ToString();
- sw.WriteLine("\t\t[DllImport(\"" + LibraryName + "\", CallingConvention = CallingConvention.Cdecl)]");
- if (retval.MarshalType.StartsWith ("[return:"))
- sw.WriteLine("\t\t" + retval.MarshalType + " static extern " + Safety + retval.CSType + " " + CName + "(" + import_sig + ");");
- 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 Generate (GenerationInfo gen_info, ClassBase implementor)
- {
- Method comp = null;
-
- gen_info.CurrentMember = Name;
-
- /* we are generated by the get Method, if there is one */
- if (is_set || is_get)
- {
- if (Modifiers != "new " && container_type.GetPropertyRecursively (Name.Substring (3)) != null)
- return;
- comp = GetComplement ();
- if (comp != null && is_set) {
- if (Parameters.AccessorReturnType == comp.ReturnType)
- return;
- else {
- is_set = false;
- call = "(Handle, " + Body.GetCallString (false) + ")";
- comp = null;
- }
- }
- /* some setters take more than one arg */
- if (comp != null && !comp.is_set)
- comp = null;
- }
-
- GenerateImport (gen_info.Writer);
- if (comp != null && retval.CSType == comp.Parameters.AccessorReturnType)
- comp.GenerateImport (gen_info.Writer);
-
- if (IsDeprecated)
- gen_info.Writer.WriteLine("\t\t[Obsolete]");
- gen_info.Writer.Write("\t\t");
- if (Protection != "")
- gen_info.Writer.Write("{0} ", Protection);
- GenerateDeclCommon (gen_info.Writer, implementor);
-
- if (is_get || is_set)
- {
- gen_info.Writer.Write ("\t\t\t");
- gen_info.Writer.Write ((is_get) ? "get" : "set");
- GenerateBody (gen_info, implementor, "\t");
- }
- else
- GenerateBody (gen_info, implementor, "");
-
- if (is_get || is_set)
- {
- if (comp != null && retval.CSType == comp.Parameters.AccessorReturnType)
- {
- gen_info.Writer.WriteLine ();
- gen_info.Writer.Write ("\t\t\tset");
- comp.GenerateBody (gen_info, implementor, "\t");
- }
- gen_info.Writer.WriteLine ();
- gen_info.Writer.WriteLine ("\t\t}");
- }
- else
- gen_info.Writer.WriteLine();
-
- gen_info.Writer.WriteLine();
-
- Statistics.MethodCount++;
- }
-
- public void GenerateBody (GenerationInfo gen_info, ClassBase implementor, string indent)
- {
- StreamWriter sw = gen_info.Writer;
- sw.WriteLine(" {");
- if (!IsStatic && implementor != null)
- implementor.Prepare (sw, indent + "\t\t\t");
- if (IsAccessor)
- 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") + ";");
- }
- }
-
- if (!IsStatic && implementor != null)
- implementor.Finish (sw, indent + "\t\t\t");
- Body.Finish (sw, indent);
- Body.HandleException (sw, indent);
-
- if (is_get && Parameters.Count > 0)
- sw.WriteLine (indent + "\t\t\treturn " + Parameters.AccessorName + ";");
- else if (!retval.IsVoid)
- sw.WriteLine (indent + "\t\t\treturn ret;");
- else if (IsAccessor)
- Body.FinishAccessor (sw, Signature, indent);
-
- sw.Write(indent + "\t\t}");
- }
-
- bool IsAccessor {
- get {
- return retval.IsVoid && Signature.IsAccessor;
- }
- }
- }
-}
-
+// GtkSharp.Generation.Method.cs - The Method Generatable.
+//
+// Author: Mike Kestner <mkestner@speakeasy.net>
+//
+// Copyright (c) 2001-2003 Mike Kestner
+// Copyright (c) 2003-2004 Novell, Inc.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of version 2 of the 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
+// General Public License for more details.
+//
+// You should have received a copy of the GNU 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 GtkSharp.Generation {
+
+ using System;
+ using System.Collections;
+ using System.IO;
+ using System.Xml;
+
+ public class Method : MethodBase {
+
+ private ReturnValue retval;
+
+ 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)
+ {
+ this.retval = new ReturnValue (elem["return-type"]);
+
+ if (!container_type.IsDeprecated) {
+ 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;
+ }
+ }
+
+ public bool IsGetter {
+ get {
+ return is_get;
+ }
+ }
+
+ public bool IsSetter {
+ get {
+ return is_set;
+ }
+ }
+
+ public string ReturnType {
+ get {
+ return retval.CSType;
+ }
+ }
+
+ public override bool Validate (LogWriter log)
+ {
+ log.Member = Name;
+ if (!retval.Validate (log) || !base.Validate (log))
+ return false;
+
+ Parameters parms = Parameters;
+ is_get = ((((parms.IsAccessor && retval.IsVoid) || (parms.Count == 0 && !retval.IsVoid)) || (parms.Count == 0 && !retval.IsVoid)) && HasGetterName);
+ is_set = ((parms.IsAccessor || (parms.VisibleCount == 1 && retval.IsVoid)) && HasSetterName);
+
+ call = "(" + (IsStatic ? "" : container_type.CallByName () + (parms.Count > 0 ? ", " : "")) + Body.GetCallString (is_set) + ")";
+
+ return true;
+ }
+
+ private Method GetComplement ()
+ {
+ char complement;
+ if (is_get)
+ complement = 'S';
+ else
+ complement = 'G';
+
+ return container_type.GetMethod (complement + BaseName.Substring (1));
+ }
+
+ public string Declaration {
+ get {
+ return retval.CSType + " " + Name + " (" + (Signature != null ? Signature.ToString() : "") + ");";
+ }
+ }
+
+ private void GenerateDeclCommon (StreamWriter sw, ClassBase implementor)
+ {
+ if (IsStatic)
+ sw.Write("static ");
+ sw.Write (Safety);
+ Method dup = null;
+ if (container_type != null)
+ dup = container_type.GetMethodRecursively (Name);
+ if (implementor != null)
+ dup = implementor.GetMethodRecursively (Name);
+
+ if (Name == "ToString" && Parameters.Count == 0 && (!(container_type is InterfaceGen)|| implementor != null))
+ sw.Write("override ");
+ else if (Name == "GetGType" && container_type is ObjectGen)
+ sw.Write("new ");
+ else if (Modifiers == "new " || (dup != null && ((dup.Signature != null && Signature != null && dup.Signature.ToString() == Signature.ToString()) || (dup.Signature == null && Signature == null))))
+ sw.Write("new ");
+
+ if (is_get || is_set) {
+ if (retval.IsVoid)
+ sw.Write (Parameters.AccessorReturnType);
+ else
+ sw.Write(retval.CSType);
+ sw.Write(" ");
+ if (Name.StartsWith ("Get") || Name.StartsWith ("Set"))
+ sw.Write (Name.Substring (3));
+ else {
+ int dot = Name.LastIndexOf ('.');
+ if (dot != -1 && (Name.Substring (dot + 1, 3) == "Get" || Name.Substring (dot + 1, 3) == "Set"))
+ sw.Write (Name.Substring (0, dot + 1) + Name.Substring (dot + 4));
+ else
+ sw.Write (Name);
+ }
+ sw.WriteLine(" { ");
+ } else if (IsAccessor) {
+ sw.Write (Signature.AccessorType + " " + Name + "(" + Signature.AsAccessor + ")");
+ } else {
+ sw.Write(retval.CSType + " " + Name + "(" + (Signature != null ? Signature.ToString() : "") + ")");
+ }
+ }
+
+ public void GenerateDecl (StreamWriter sw)
+ {
+ if (IsStatic)
+ return;
+
+ if (is_get || is_set)
+ {
+ Method comp = GetComplement ();
+ if (comp != null && is_set)
+ return;
+
+ sw.Write("\t\t");
+ GenerateDeclCommon (sw, null);
+
+ sw.Write("\t\t\t");
+ sw.Write ((is_get) ? "get;" : "set;");
+
+ if (comp != null && comp.is_set)
+ sw.WriteLine (" set;");
+ else
+ sw.WriteLine ();
+
+ sw.WriteLine ("\t\t}");
+ }
+ else
+ {
+ sw.Write("\t\t");
+ GenerateDeclCommon (sw, null);
+ sw.WriteLine (";");
+ }
+
+ Statistics.MethodCount++;
+ }
+
+ public void GenerateImport (StreamWriter sw)
+ {
+ string import_sig = IsStatic ? "" : container_type.MarshalType + " raw";
+ import_sig += !IsStatic && Parameters.Count > 0 ? ", " : "";
+ import_sig += Parameters.ImportSignature.ToString();
+ sw.WriteLine("\t\t[DllImport(\"" + LibraryName + "\", CallingConvention = CallingConvention.Cdecl)]");
+ if (retval.MarshalType.StartsWith ("[return:"))
+ sw.WriteLine("\t\t" + retval.MarshalType + " static extern " + Safety + retval.CSType + " " + CName + "(" + import_sig + ");");
+ 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 Generate (GenerationInfo gen_info, ClassBase implementor)
+ {
+ Method comp = null;
+
+ gen_info.CurrentMember = Name;
+
+ /* we are generated by the get Method, if there is one */
+ if (is_set || is_get)
+ {
+ if (Modifiers != "new " && container_type.GetPropertyRecursively (Name.Substring (3)) != null)
+ return;
+ comp = GetComplement ();
+ if (comp != null && is_set) {
+ if (Parameters.AccessorReturnType == comp.ReturnType)
+ return;
+ else {
+ is_set = false;
+ call = "(Handle, " + Body.GetCallString (false) + ")";
+ comp = null;
+ }
+ }
+ /* some setters take more than one arg */
+ if (comp != null && !comp.is_set)
+ comp = null;
+ }
+
+ GenerateImport (gen_info.Writer);
+ if (comp != null && retval.CSType == comp.Parameters.AccessorReturnType)
+ comp.GenerateImport (gen_info.Writer);
+
+ if (IsDeprecated)
+ gen_info.Writer.WriteLine("\t\t[Obsolete]");
+ gen_info.Writer.Write("\t\t");
+ if (Protection != "")
+ gen_info.Writer.Write("{0} ", Protection);
+ GenerateDeclCommon (gen_info.Writer, implementor);
+
+ if (is_get || is_set)
+ {
+ gen_info.Writer.Write ("\t\t\t");
+ gen_info.Writer.Write ((is_get) ? "get" : "set");
+ GenerateBody (gen_info, implementor, "\t");
+ }
+ else
+ GenerateBody (gen_info, implementor, "");
+
+ if (is_get || is_set)
+ {
+ if (comp != null && retval.CSType == comp.Parameters.AccessorReturnType)
+ {
+ gen_info.Writer.WriteLine ();
+ gen_info.Writer.Write ("\t\t\tset");
+ comp.GenerateBody (gen_info, implementor, "\t");
+ }
+ gen_info.Writer.WriteLine ();
+ gen_info.Writer.WriteLine ("\t\t}");
+ }
+ else
+ gen_info.Writer.WriteLine();
+
+ gen_info.Writer.WriteLine();
+
+ Statistics.MethodCount++;
+ }
+
+ public void GenerateBody (GenerationInfo gen_info, ClassBase implementor, string indent)
+ {
+ StreamWriter sw = gen_info.Writer;
+ sw.WriteLine(" {");
+ if (!IsStatic && implementor != null)
+ implementor.Prepare (sw, indent + "\t\t\t");
+ if (IsAccessor)
+ 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") + ";");
+ }
+ }
+
+ if (!IsStatic && implementor != null)
+ implementor.Finish (sw, indent + "\t\t\t");
+ Body.Finish (sw, indent);
+ Body.HandleException (sw, indent);
+
+ if (is_get && Parameters.Count > 0)
+ sw.WriteLine (indent + "\t\t\treturn " + Parameters.AccessorName + ";");
+ else if (!retval.IsVoid)
+ sw.WriteLine (indent + "\t\t\treturn ret;");
+ else if (IsAccessor)
+ Body.FinishAccessor (sw, Signature, indent);
+
+ sw.Write(indent + "\t\t}");
+ }
+
+ bool IsAccessor {
+ get {
+ return retval.IsVoid && Signature.IsAccessor;
+ }
+ }
+ }
+}
+
diff --git a/generator/MethodBase.cs b/generator/MethodBase.cs
index ce6aa72..d6912d0 100644
--- a/generator/MethodBase.cs
+++ b/generator/MethodBase.cs
@@ -1,183 +1,183 @@
-// GtkSharp.Generation.MethodBase.cs - function element base class.
-//
-// Author: Mike Kestner <mkestner@novell.com>
-//
-// Copyright (c) 2001-2003 Mike Kestner
-// Copyright (c) 2004-2005 Novell, Inc.
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of version 2 of the 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
-// General Public License for more details.
-//
-// You should have received a copy of the GNU 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 GtkSharp.Generation {
-
- using System;
- using System.Xml;
-
- public abstract class MethodBase {
-
- protected XmlElement elem;
- protected ClassBase container_type;
- protected Parameters parms;
- string mods = String.Empty;
- string name;
- private string protection = "public";
-
- protected MethodBase (XmlElement elem, ClassBase container_type)
- {
- this.elem = elem;
- this.container_type = container_type;
- this.name = elem.GetAttribute ("name");
- parms = new Parameters (elem ["parameters"]);
- IsStatic = elem.GetAttribute ("shared") == "true";
- if (elem.HasAttribute ("new_flag"))
- mods = "new ";
- if (elem.HasAttribute ("accessibility")) {
- string attr = elem.GetAttribute ("accessibility");
- switch (attr) {
- case "public":
- case "protected":
- case "internal":
- case "private":
- case "protected internal":
- protection = attr;
- break;
- }
- }
- }
-
- protected string BaseName {
- get {
- string name = Name;
- int idx = Name.LastIndexOf (".");
- if (idx > 0)
- name = Name.Substring (idx + 1);
- return name;
- }
- }
-
- MethodBody body;
- public MethodBody Body {
- get {
- if (body == null)
- body = new MethodBody (parms);
- return body;
- }
- }
-
- public virtual string CName {
- get {
- return SymbolTable.Table.MangleName (elem.GetAttribute ("cname"));
- }
- }
-
- protected bool HasGetterName {
- get {
- string name = BaseName;
- if (name.Length <= 3)
- return false;
- if (name.StartsWith ("Get") || name.StartsWith ("Has"))
- return Char.IsUpper (name [3]);
- else if (name.StartsWith ("Is"))
- return Char.IsUpper (name [2]);
- else
- return false;
- }
- }
-
- protected bool HasSetterName {
- get {
- string name = BaseName;
- if (name.Length <= 3)
- return false;
-
- return name.StartsWith ("Set") && Char.IsUpper (name [3]);
- }
- }
-
- public bool IsStatic {
- get {
- return parms.Static;
- }
- set {
- parms.Static = value;
- }
- }
-
- public string LibraryName {
- get {
- if (elem.HasAttribute ("library"))
- return elem.GetAttribute ("library");
- return container_type.LibraryName;
- }
- }
-
- public string Modifiers {
- get {
- return mods;
- }
- set {
- mods = value;
- }
- }
-
- public string Name {
- get {
- return name;
- }
- set {
- name = value;
- }
- }
-
- public Parameters Parameters {
- get {
- return parms;
- }
- }
-
-
- public string Protection {
- get { return protection; }
- set { protection = value; }
- }
-
- protected string Safety {
- get {
- return Body.ThrowsException && !(container_type is InterfaceGen) ? "unsafe " : "";
- }
- }
-
- Signature sig;
- public Signature Signature {
- get {
- if (sig == null)
- sig = new Signature (parms);
- return sig;
- }
- }
-
- public virtual bool Validate (LogWriter log)
- {
- log.Member = Name;
- if (!parms.Validate (log)) {
- Statistics.ThrottledCount++;
- return false;
- }
-
- return true;
- }
- }
-}
-
+// GtkSharp.Generation.MethodBase.cs - function element base class.
+//
+// Author: Mike Kestner <mkestner@novell.com>
+//
+// Copyright (c) 2001-2003 Mike Kestner
+// Copyright (c) 2004-2005 Novell, Inc.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of version 2 of the 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
+// General Public License for more details.
+//
+// You should have received a copy of the GNU 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 GtkSharp.Generation {
+
+ using System;
+ using System.Xml;
+
+ public abstract class MethodBase {
+
+ protected XmlElement elem;
+ protected ClassBase container_type;
+ protected Parameters parms;
+ string mods = String.Empty;
+ string name;
+ private string protection = "public";
+
+ protected MethodBase (XmlElement elem, ClassBase container_type)
+ {
+ this.elem = elem;
+ this.container_type = container_type;
+ this.name = elem.GetAttribute ("name");
+ parms = new Parameters (elem ["parameters"]);
+ IsStatic = elem.GetAttribute ("shared") == "true";
+ if (elem.GetAttributeAsBoolean ("new_flag"))
+ mods = "new ";
+ if (elem.HasAttribute ("accessibility")) {
+ string attr = elem.GetAttribute ("accessibility");
+ switch (attr) {
+ case "public":
+ case "protected":
+ case "internal":
+ case "private":
+ case "protected internal":
+ protection = attr;
+ break;
+ }
+ }
+ }
+
+ protected string BaseName {
+ get {
+ string name = Name;
+ int idx = Name.LastIndexOf (".");
+ if (idx > 0)
+ name = Name.Substring (idx + 1);
+ return name;
+ }
+ }
+
+ MethodBody body;
+ public MethodBody Body {
+ get {
+ if (body == null)
+ body = new MethodBody (parms);
+ return body;
+ }
+ }
+
+ public virtual string CName {
+ get {
+ return SymbolTable.Table.MangleName (elem.GetAttribute ("cname"));
+ }
+ }
+
+ protected bool HasGetterName {
+ get {
+ string name = BaseName;
+ if (name.Length <= 3)
+ return false;
+ if (name.StartsWith ("Get") || name.StartsWith ("Has"))
+ return Char.IsUpper (name [3]);
+ else if (name.StartsWith ("Is"))
+ return Char.IsUpper (name [2]);
+ else
+ return false;
+ }
+ }
+
+ protected bool HasSetterName {
+ get {
+ string name = BaseName;
+ if (name.Length <= 3)
+ return false;
+
+ return name.StartsWith ("Set") && Char.IsUpper (name [3]);
+ }
+ }
+
+ public bool IsStatic {
+ get {
+ return parms.Static;
+ }
+ set {
+ parms.Static = value;
+ }
+ }
+
+ public string LibraryName {
+ get {
+ if (elem.HasAttribute ("library"))
+ return elem.GetAttribute ("library");
+ return container_type.LibraryName;
+ }
+ }
+
+ public string Modifiers {
+ get {
+ return mods;
+ }
+ set {
+ mods = value;
+ }
+ }
+
+ public string Name {
+ get {
+ return name;
+ }
+ set {
+ name = value;
+ }
+ }
+
+ public Parameters Parameters {
+ get {
+ return parms;
+ }
+ }
+
+
+ public string Protection {
+ get { return protection; }
+ set { protection = value; }
+ }
+
+ protected string Safety {
+ get {
+ return Body.ThrowsException && !(container_type is InterfaceGen) ? "unsafe " : "";
+ }
+ }
+
+ Signature sig;
+ public Signature Signature {
+ get {
+ if (sig == null)
+ sig = new Signature (parms);
+ return sig;
+ }
+ }
+
+ public virtual bool Validate (LogWriter log)
+ {
+ log.Member = Name;
+ if (!parms.Validate (log)) {
+ Statistics.ThrottledCount++;
+ return false;
+ }
+
+ return true;
+ }
+ }
+}
+
diff --git a/generator/MethodBody.cs b/generator/MethodBody.cs
index 8e66657..1afb636 100644
--- a/generator/MethodBody.cs
+++ b/generator/MethodBody.cs
@@ -1,180 +1,180 @@
-// GtkSharp.Generation.MethodBody.cs - The MethodBody Generation Class.
-//
-// Author: Mike Kestner <mkestner@speakeasy.net>
-//
-// Copyright (c) 2001-2003 Mike Kestner
-// Copyright (c) 2003-2004 Novell, Inc.
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of version 2 of the 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
-// General Public License for more details.
-//
-// You should have received a copy of the GNU 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 GtkSharp.Generation {
-
- using System;
- using System.Collections;
- using System.IO;
-
- public class MethodBody {
-
- Parameters parameters;
-
- public MethodBody (Parameters parms)
- {
- parameters = parms;
- }
-
- private string CastFromInt (string type)
- {
- return type != "int" ? "(" + type + ") " : "";
- }
-
- public string GetCallString (bool is_set)
- {
- if (parameters.Count == 0)
- return String.Empty;
-
- string[] result = new string [parameters.Count];
- for (int i = 0; i < parameters.Count; i++) {
- Parameter p = parameters [i];
- IGeneratable igen = p.Generatable;
-
- bool is_prop = is_set && i == 0;
-
- if (i > 0 && parameters [i - 1].IsString && p.IsLength && p.PassAs == String.Empty) {
- string string_name = (i == 1 && is_set) ? "value" : parameters [i - 1].Name;
- result[i] = igen.CallByName (CastFromInt (p.CSType) + "System.Text.Encoding.UTF8.GetByteCount (" + string_name + ")");
- continue;
- }
-
- if (is_prop)
- p.CallName = "value";
- else
- p.CallName = p.Name;
- string call_parm = p.CallString;
-
- if (p.IsUserData && parameters.IsHidden (p) && !parameters.HideData &&
- (i == 0 || parameters [i - 1].Scope != "notified")) {
- call_parm = "IntPtr.Zero";
- }
-
- result [i] += call_parm;
- }
-
- return String.Join (", ", result);
- }
-
- public void Initialize (GenerationInfo gen_info)
- {
- Initialize (gen_info, false, false, String.Empty);
- }
-
- public void Initialize (GenerationInfo gen_info, bool is_get, bool is_set, string indent)
- {
- if (parameters.Count == 0)
- return;
-
- StreamWriter sw = gen_info.Writer;
- for (int i = 0; i < parameters.Count; i++) {
- Parameter p = parameters [i];
-
- IGeneratable gen = p.Generatable;
- string name = p.Name;
- if (is_set)
- name = "value";
-
- p.CallName = name;
- foreach (string prep in p.Prepare)
- sw.WriteLine (indent + "\t\t\t" + prep);
-
- if (gen is CallbackGen) {
- CallbackGen cbgen = gen as CallbackGen;
- string wrapper = cbgen.GenWrapper(gen_info);
- switch (p.Scope) {
- case "notified":
- sw.WriteLine (indent + "\t\t\t{0} {1}_wrapper = new {0} ({1});", wrapper, name);
- sw.WriteLine (indent + "\t\t\tIntPtr {0};", parameters [i + 1].Name);
- sw.WriteLine (indent + "\t\t\t{0} {1};", parameters [i + 2].CSType, parameters [i + 2].Name);
- sw.WriteLine (indent + "\t\t\tif ({0} == null) {{", name);
- sw.WriteLine (indent + "\t\t\t\t{0} = IntPtr.Zero;", parameters [i + 1].Name);
- sw.WriteLine (indent + "\t\t\t\t{0} = null;", parameters [i + 2].Name);
- sw.WriteLine (indent + "\t\t\t} else {");
- sw.WriteLine (indent + "\t\t\t\t{0} = (IntPtr) GCHandle.Alloc ({1}_wrapper);", parameters [i + 1].Name, name);
- sw.WriteLine (indent + "\t\t\t\t{0} = GLib.DestroyHelper.NotifyHandler;", parameters [i + 2].Name, parameters [i + 2].CSType);
- sw.WriteLine (indent + "\t\t\t}");
- break;
-
- case "async":
- sw.WriteLine (indent + "\t\t\t{0} {1}_wrapper = new {0} ({1});", wrapper, name);
- sw.WriteLine (indent + "\t\t\t{0}_wrapper.PersistUntilCalled ();", name);
- break;
- case "call":
- default:
- if (p.Scope == String.Empty)
- Console.WriteLine (gen_info.CurrentMember + " - defaulting " + gen.Name + " param to 'call' scope. Specify callback scope (call|async|notified) attribute with fixup.");
- sw.WriteLine (indent + "\t\t\t{0} {1}_wrapper = new {0} ({1});", wrapper, name);
- break;
- }
- }
- }
-
- if (ThrowsException)
- sw.WriteLine (indent + "\t\t\tIntPtr error = IntPtr.Zero;");
- }
-
- public void InitAccessor (StreamWriter sw, Signature sig, string indent)
- {
- sw.WriteLine (indent + "\t\t\t" + sig.AccessorType + " " + sig.AccessorName + ";");
- }
-
- public void Finish (StreamWriter sw, string indent)
- {
- foreach (Parameter p in parameters) {
- if (parameters.IsHidden (p))
- continue;
- foreach (string s in p.Finish)
- sw.WriteLine(indent + "\t\t\t" + s);
- }
- }
-
- public void FinishAccessor (StreamWriter sw, Signature sig, string indent)
- {
- sw.WriteLine (indent + "\t\t\treturn " + sig.AccessorName + ";");
- }
-
- public void HandleException (StreamWriter sw, string indent)
- {
- if (!ThrowsException)
- return;
- sw.WriteLine (indent + "\t\t\tif (error != IntPtr.Zero) throw new GLib.GException (error);");
- }
-
- public bool ThrowsException {
- get {
- int idx = parameters.Count - 1;
-
- while (idx >= 0) {
- if (parameters [idx].IsUserData)
- idx--;
- else if (parameters [idx].CType == "GError**")
- return true;
- else
- break;
- }
- return false;
- }
- }
- }
-}
-
+// GtkSharp.Generation.MethodBody.cs - The MethodBody Generation Class.
+//
+// Author: Mike Kestner <mkestner@speakeasy.net>
+//
+// Copyright (c) 2001-2003 Mike Kestner
+// Copyright (c) 2003-2004 Novell, Inc.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of version 2 of the 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
+// General Public License for more details.
+//
+// You should have received a copy of the GNU 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 GtkSharp.Generation {
+
+ using System;
+ using System.Collections;
+ using System.IO;
+
+ public class MethodBody {
+
+ Parameters parameters;
+
+ public MethodBody (Parameters parms)
+ {
+ parameters = parms;
+ }
+
+ private string CastFromInt (string type)
+ {
+ return type != "int" ? "(" + type + ") " : "";
+ }
+
+ public string GetCallString (bool is_set)
+ {
+ if (parameters.Count == 0)
+ return String.Empty;
+
+ string[] result = new string [parameters.Count];
+ for (int i = 0; i < parameters.Count; i++) {
+ Parameter p = parameters [i];
+ IGeneratable igen = p.Generatable;
+
+ bool is_prop = is_set && i == 0;
+
+ if (i > 0 && parameters [i - 1].IsString && p.IsLength && p.PassAs == String.Empty) {
+ string string_name = (i == 1 && is_set) ? "value" : parameters [i - 1].Name;
+ result[i] = igen.CallByName (CastFromInt (p.CSType) + "System.Text.Encoding.UTF8.GetByteCount (" + string_name + ")");
+ continue;
+ }
+
+ if (is_prop)
+ p.CallName = "value";
+ else
+ p.CallName = p.Name;
+ string call_parm = p.CallString;
+
+ if (p.IsUserData && parameters.IsHidden (p) && !parameters.HideData &&
+ (i == 0 || parameters [i - 1].Scope != "notified")) {
+ call_parm = "IntPtr.Zero";
+ }
+
+ result [i] += call_parm;
+ }
+
+ return String.Join (", ", result);
+ }
+
+ public void Initialize (GenerationInfo gen_info)
+ {
+ Initialize (gen_info, false, false, String.Empty);
+ }
+
+ public void Initialize (GenerationInfo gen_info, bool is_get, bool is_set, string indent)
+ {
+ if (parameters.Count == 0)
+ return;
+
+ StreamWriter sw = gen_info.Writer;
+ for (int i = 0; i < parameters.Count; i++) {
+ Parameter p = parameters [i];
+
+ IGeneratable gen = p.Generatable;
+ string name = p.Name;
+ if (is_set)
+ name = "value";
+
+ p.CallName = name;
+ foreach (string prep in p.Prepare)
+ sw.WriteLine (indent + "\t\t\t" + prep);
+
+ if (gen is CallbackGen) {
+ CallbackGen cbgen = gen as CallbackGen;
+ string wrapper = cbgen.GenWrapper(gen_info);
+ switch (p.Scope) {
+ case "notified":
+ sw.WriteLine (indent + "\t\t\t{0} {1}_wrapper = new {0} ({1});", wrapper, name);
+ sw.WriteLine (indent + "\t\t\tIntPtr {0};", parameters [i + 1].Name);
+ sw.WriteLine (indent + "\t\t\t{0} {1};", parameters [i + 2].CSType, parameters [i + 2].Name);
+ sw.WriteLine (indent + "\t\t\tif ({0} == null) {{", name);
+ sw.WriteLine (indent + "\t\t\t\t{0} = IntPtr.Zero;", parameters [i + 1].Name);
+ sw.WriteLine (indent + "\t\t\t\t{0} = null;", parameters [i + 2].Name);
+ sw.WriteLine (indent + "\t\t\t} else {");
+ sw.WriteLine (indent + "\t\t\t\t{0} = (IntPtr) GCHandle.Alloc ({1}_wrapper);", parameters [i + 1].Name, name);
+ sw.WriteLine (indent + "\t\t\t\t{0} = GLib.DestroyHelper.NotifyHandler;", parameters [i + 2].Name, parameters [i + 2].CSType);
+ sw.WriteLine (indent + "\t\t\t}");
+ break;
+
+ case "async":
+ sw.WriteLine (indent + "\t\t\t{0} {1}_wrapper = new {0} ({1});", wrapper, name);
+ sw.WriteLine (indent + "\t\t\t{0}_wrapper.PersistUntilCalled ();", name);
+ break;
+ case "call":
+ default:
+ if (p.Scope == String.Empty)
+ Console.WriteLine (gen_info.CurrentMember + " - defaulting " + gen.Name + " param to 'call' scope. Specify callback scope (call|async|notified) attribute with fixup.");
+ sw.WriteLine (indent + "\t\t\t{0} {1}_wrapper = new {0} ({1});", wrapper, name);
+ break;
+ }
+ }
+ }
+
+ if (ThrowsException)
+ sw.WriteLine (indent + "\t\t\tIntPtr error = IntPtr.Zero;");
+ }
+
+ public void InitAccessor (StreamWriter sw, Signature sig, string indent)
+ {
+ sw.WriteLine (indent + "\t\t\t" + sig.AccessorType + " " + sig.AccessorName + ";");
+ }
+
+ public void Finish (StreamWriter sw, string indent)
+ {
+ foreach (Parameter p in parameters) {
+ if (parameters.IsHidden (p))
+ continue;
+ foreach (string s in p.Finish)
+ sw.WriteLine(indent + "\t\t\t" + s);
+ }
+ }
+
+ public void FinishAccessor (StreamWriter sw, Signature sig, string indent)
+ {
+ sw.WriteLine (indent + "\t\t\treturn " + sig.AccessorName + ";");
+ }
+
+ public void HandleException (StreamWriter sw, string indent)
+ {
+ if (!ThrowsException)
+ return;
+ sw.WriteLine (indent + "\t\t\tif (error != IntPtr.Zero) throw new GLib.GException (error);");
+ }
+
+ public bool ThrowsException {
+ get {
+ int idx = parameters.Count - 1;
+
+ while (idx >= 0) {
+ if (parameters [idx].IsUserData)
+ idx--;
+ else if (parameters [idx].CType == "GError**")
+ return true;
+ else
+ break;
+ }
+ return false;
+ }
+ }
+ }
+}
+
diff --git a/generator/ObjectBase.cs b/generator/ObjectBase.cs
index 31a86db..1db78d5 100644
--- a/generator/ObjectBase.cs
+++ b/generator/ObjectBase.cs
@@ -24,6 +24,7 @@ namespace GtkSharp.Generation {
using System;
using System.Collections;
+ using System.Collections.Generic;
using System.IO;
using System.Xml;
@@ -32,12 +33,12 @@ namespace GtkSharp.Generation {
protected string class_struct_name = null;
bool class_fields_valid; // false if the class structure contains a bitfield or fields of unknown types
ArrayList class_members = new ArrayList ();
- protected ArrayList class_fields = new ArrayList ();
+ protected IList<ClassField> class_fields = new List<ClassField> ();
// The default handlers of these signals need to be overridden with g_signal_override_class_closure
- protected ArrayList virtual_methods = new ArrayList ();
+ protected IList<GObjectVM> virtual_methods = new List<GObjectVM> ();
// virtual methods that are generated as an IntPtr in the class struct
- protected ArrayList hidden_vms = new ArrayList ();
- protected ArrayList interface_vms = new ArrayList ();
+ protected IList<VirtualMethod> hidden_vms = new List<VirtualMethod> ();
+ protected IList<InterfaceVM> interface_vms = new List<InterfaceVM> ();
protected Hashtable sigs = new Hashtable();
protected ObjectBase (XmlElement ns, XmlElement elem, bool is_interface) : base (ns, elem)
@@ -69,7 +70,7 @@ namespace GtkSharp.Generation {
else
signal_vms.Add (member.GetAttribute ("field_name"), member);
- if (member.GetAttribute ("hidden") != "1") {
+ if (!member.GetAttributeAsBoolean ("hidden")) {
string name = member.GetAttribute("name");
while (sigs.ContainsKey(name))
name += "mangled";
@@ -126,17 +127,18 @@ namespace GtkSharp.Generation {
vm = new DefaultSignalHandler (vm_elem, this);
else if (is_interface) {
string target_name = vm_elem.HasAttribute ("target_method") ? vm_elem.GetAttribute ("target_method") : vm_elem.GetAttribute ("name");
- vm = new InterfaceVM (vm_elem, methods [target_name] as Method, this);
+ vm = new InterfaceVM (vm_elem, GetMethod (target_name), this);
} else
vm = new GObjectVM (vm_elem, this);
- if (vm_elem.GetAttribute ("padding") == "true" || vm_elem.GetAttribute ("hidden") == "1")
+ if (vm_elem.GetAttributeAsBoolean ("padding") || vm_elem.GetAttributeAsBoolean ("hidden"))
hidden_vms.Add (vm);
else {
- if (vm is GObjectVM)
- virtual_methods.Add (vm);
- else
- interface_vms.Add (vm);
+ if (vm is GObjectVM) {
+ virtual_methods.Add ((GObjectVM)vm);
+ } else {
+ interface_vms.Add ((InterfaceVM)vm);
+ }
}
if (vm.CName != "")
class_members.Add (vm);
@@ -273,7 +275,7 @@ namespace GtkSharp.Generation {
if (!vm.Validate (log))
invalids.Add (vm);
- foreach (VirtualMethod invalid_vm in invalids) {
+ foreach (GObjectVM invalid_vm in invalids) {
virtual_methods.Remove (invalid_vm);
hidden_vms.Add (invalid_vm);
}
diff --git a/generator/ObjectField.cs b/generator/ObjectField.cs
index 47e0156..f0edd1a 100644
--- a/generator/ObjectField.cs
+++ b/generator/ObjectField.cs
@@ -34,7 +34,7 @@ namespace GtkSharp.Generation {
protected override bool Writable {
get {
- return elem.GetAttribute ("writeable") == "true";
+ return elem.GetAttributeAsBoolean ("writeable");
}
}
diff --git a/generator/ObjectGen.cs b/generator/ObjectGen.cs
index e7ef13d..774a797 100644
--- a/generator/ObjectGen.cs
+++ b/generator/ObjectGen.cs
@@ -1,416 +1,427 @@
-// GtkSharp.Generation.ObjectGen.cs - The Object Generatable.
-//
-// Author: Mike Kestner <mkestner@ximian.com>
-//
-// Copyright (c) 2001-2003 Mike Kestner
-// Copyright (c) 2003-2004 Novell, Inc.
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of version 2 of the 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
-// General Public License for more details.
-//
-// You should have received a copy of the GNU 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 GtkSharp.Generation {
-
- using System;
- using System.Collections;
- using System.IO;
- using System.Text;
- using System.Xml;
-
- public class ObjectGen : ObjectBase {
-
- private ArrayList custom_attrs = new ArrayList();
- private ArrayList strings = new ArrayList();
- private Hashtable childprops = new Hashtable();
- private static Hashtable dirs = new Hashtable ();
-
- public ObjectGen (XmlElement ns, XmlElement elem) : base (ns, elem, false)
- {
- foreach (XmlNode node in elem.ChildNodes) {
- if (!(node is XmlElement)) continue;
- XmlElement member = (XmlElement) node;
- if (member.HasAttribute ("hidden") && member.GetAttribute ("hidden") == "1") continue;
-
- switch (node.Name) {
- case "callback":
- Statistics.IgnoreCount++;
- break;
-
- case "custom-attribute":
- custom_attrs.Add (member.InnerXml);
- break;
-
- case "static-string":
- strings.Add (node);
- break;
-
- case "childprop":
- string name = member.GetAttribute ("name");
- while (childprops.ContainsKey (name))
- name += "mangled";
- childprops.Add (name, new ChildProperty (member, this));
- break;
-
- default:
- if (!IsNodeNameHandled (node.Name))
- Console.WriteLine ("Unexpected node " + node.Name + " in " + CName);
- break;
- }
- }
- }
-
- public override string CallByName (string var, bool owned)
- {
- return String.Format ("{0} == null ? IntPtr.Zero : {0}.{1}", var, owned ? "OwnedHandle" : "Handle");
- }
-
- public override bool Validate ()
- {
- LogWriter log = new LogWriter (QualifiedName);
-
- ArrayList invalids = new ArrayList ();
-
- foreach (ChildProperty prop in childprops.Values) {
- if (!prop.Validate (log))
- invalids.Add (prop);
- }
- foreach (ChildProperty prop in invalids)
- childprops.Remove (prop);
-
- return base.Validate ();
- }
-
- private bool DisableVoidCtor {
- get {
- return Elem.HasAttribute ("disable_void_ctor");
- }
- }
-
- private class DirectoryInfo {
- public string assembly_name;
- public Hashtable objects;
-
- public DirectoryInfo (string assembly_name) {
- this.assembly_name = assembly_name;
- objects = new Hashtable ();
- }
- }
-
- private static DirectoryInfo GetDirectoryInfo (string dir, string assembly_name)
- {
- DirectoryInfo result;
-
- if (dirs.ContainsKey (dir)) {
- result = dirs [dir] as DirectoryInfo;
- if (result.assembly_name != assembly_name) {
- Console.WriteLine ("Can't put multiple assemblies in one directory.");
- return null;
- }
-
- return result;
- }
-
- result = new DirectoryInfo (assembly_name);
- dirs.Add (dir, result);
-
- return result;
- }
-
- public override void Generate (GenerationInfo gen_info)
- {
- gen_info.CurrentType = QualifiedName;
-
- string asm_name = gen_info.AssemblyName.Length == 0 ? NS.ToLower () + "-sharp" : gen_info.AssemblyName;
- DirectoryInfo di = GetDirectoryInfo (gen_info.Dir, asm_name);
-
- StreamWriter sw = gen_info.Writer = gen_info.OpenStream (Name);
-
- sw.WriteLine ("namespace " + NS + " {");
- sw.WriteLine ();
- sw.WriteLine ("\tusing System;");
- sw.WriteLine ("\tusing System.Collections;");
- sw.WriteLine ("\tusing System.Runtime.InteropServices;");
- sw.WriteLine ();
-
- SymbolTable table = SymbolTable.Table;
-
- sw.WriteLine ("#region Autogenerated code");
- if (IsDeprecated)
- sw.WriteLine ("\t[Obsolete]");
- foreach (string attr in custom_attrs)
- sw.WriteLine ("\t" + attr);
- sw.Write ("\t{0} partial {1}class " + Name, IsInternal ? "internal" : "public", IsAbstract ? "abstract " : "");
- string cs_parent = table.GetCSType(Elem.GetAttribute("parent"));
- if (cs_parent != "") {
- di.objects.Add (CName, QualifiedName);
- sw.Write (" : " + cs_parent);
- }
- foreach (string iface in interfaces) {
- if (Parent != null && Parent.Implements (iface))
- continue;
- sw.Write (", " + table.GetCSType (iface));
- }
- foreach (string iface in managed_interfaces) {
- if (Parent != null && Parent.Implements (iface))
- continue;
- sw.Write (", " + iface);
- }
- sw.WriteLine (" {");
- sw.WriteLine ();
-
- GenCtors (gen_info);
- GenProperties (gen_info, null);
- GenFields (gen_info);
- GenChildProperties (gen_info);
-
- bool has_sigs = (sigs != null && sigs.Count > 0);
- if (!has_sigs) {
- foreach (string iface in interfaces) {
- InterfaceGen igen = table.GetClassGen (iface) as InterfaceGen;
- if (igen != null && igen.Signals != null) {
- has_sigs = true;
- break;
- }
- }
- }
-
- if (has_sigs && Elem.HasAttribute("parent")) {
- GenSignals (gen_info, null);
- }
-
- GenClassMembers (gen_info, cs_parent);
- GenMethods (gen_info, null, null);
-
- if (interfaces.Count != 0) {
- Hashtable all_methods = new Hashtable ();
- foreach (Method m in Methods.Values)
- all_methods[m.Name] = m;
- Hashtable collisions = new Hashtable ();
- foreach (string iface in interfaces) {
- ClassBase igen = table.GetClassGen (iface);
- foreach (Method m in igen.Methods.Values) {
- if (m.Name.StartsWith ("Get") || m.Name.StartsWith ("Set")) {
- if (GetProperty (m.Name.Substring (3)) != null) {
- collisions[m.Name] = true;
- continue;
- }
- }
- Method collision = all_methods[m.Name] as Method;
- if (collision != null && collision.Signature.Types == m.Signature.Types)
- collisions[m.Name] = true;
- else
- all_methods[m.Name] = m;
- }
- }
-
- foreach (string iface in interfaces) {
- if (Parent != null && Parent.Implements (iface))
- continue;
- InterfaceGen igen = table.GetClassGen (iface) as InterfaceGen;
- igen.GenMethods (gen_info, collisions, this);
- igen.GenProperties (gen_info, this);
- igen.GenSignals (gen_info, this);
- igen.GenVirtualMethods (gen_info, this);
- }
- }
-
- foreach (XmlElement str in strings) {
- sw.Write ("\t\tpublic static string " + str.GetAttribute ("name"));
- sw.WriteLine (" {\n\t\t\t get { return \"" + str.GetAttribute ("value") + "\"; }\n\t\t}");
- }
-
- if (cs_parent != String.Empty && GetExpected (CName) != QualifiedName) {
- sw.WriteLine ();
- sw.WriteLine ("\t\tstatic " + Name + " ()");
- sw.WriteLine ("\t\t{");
- sw.WriteLine ("\t\t\tGtkSharp." + Studlify (asm_name) + ".ObjectManager.Initialize ();");
- sw.WriteLine ("\t\t}");
- }
-
- sw.WriteLine ("#endregion");
-
- sw.WriteLine ("\t}");
- sw.WriteLine ("}");
-
- sw.Close ();
- gen_info.Writer = null;
- Statistics.ObjectCount++;
- }
-
- protected override void GenCtors (GenerationInfo gen_info)
- {
- if (!Elem.HasAttribute("parent"))
- return;
-
- gen_info.Writer.WriteLine("\t\tpublic " + Name + "(IntPtr raw) : base(raw) {}");
- if (ctors.Count == 0 && !DisableVoidCtor) {
- gen_info.Writer.WriteLine();
- gen_info.Writer.WriteLine("\t\tprotected " + Name + "() : base(IntPtr.Zero)");
- gen_info.Writer.WriteLine("\t\t{");
- gen_info.Writer.WriteLine("\t\t\tCreateNativeObject (new string [0], new GLib.Value [0]);");
- gen_info.Writer.WriteLine("\t\t}");
- }
- gen_info.Writer.WriteLine();
-
- base.GenCtors (gen_info);
- }
-
- protected void GenChildProperties (GenerationInfo gen_info)
- {
- if (childprops.Count == 0)
- return;
-
- StreamWriter sw = gen_info.Writer;
-
- ObjectGen child_ancestor = Parent as ObjectGen;
- while (child_ancestor.CName != "GtkContainer" &&
- child_ancestor.childprops.Count == 0)
- child_ancestor = child_ancestor.Parent as ObjectGen;
-
- sw.WriteLine ("\t\tpublic class " + Name + "Child : " + child_ancestor.NS + "." + child_ancestor.Name + "." + child_ancestor.Name + "Child {");
- sw.WriteLine ("\t\t\tprotected internal " + Name + "Child (Gtk.Container parent, Gtk.Widget child) : base (parent, child) {}");
- sw.WriteLine ("");
-
- foreach (ChildProperty prop in childprops.Values)
- prop.Generate (gen_info, "\t\t\t", null);
-
- sw.WriteLine ("\t\t}");
- sw.WriteLine ("");
-
- sw.WriteLine ("\t\tpublic override Gtk.Container.ContainerChild this [Gtk.Widget child] {");
- sw.WriteLine ("\t\t\tget {");
- sw.WriteLine ("\t\t\t\treturn new " + Name + "Child (this, child);");
- sw.WriteLine ("\t\t\t}");
- sw.WriteLine ("\t\t}");
- sw.WriteLine ("");
-
- }
-
- void GenClassMembers (GenerationInfo gen_info, string cs_parent)
- {
- GenVirtualMethods (gen_info, null);
-
- if (class_struct_name == null || !CanGenerateClassStruct) return;
- StreamWriter sw = gen_info.Writer;
- GenerateClassStruct (gen_info);
- if (cs_parent == "")
- sw.WriteLine ("\t\tstatic uint class_offset = 0;");
- else
- sw.WriteLine ("\t\tstatic uint class_offset = ((GLib.GType) typeof ({0})).GetClassSize ();", cs_parent);
- sw.WriteLine ("\t\tstatic Hashtable class_structs;");
- sw.WriteLine ();
- sw.WriteLine ("\t\tstatic {0} GetClassStruct (GLib.GType gtype, bool use_cache)", class_struct_name);
- sw.WriteLine ("\t\t{");
- sw.WriteLine ("\t\t\tif (class_structs == null)");
- sw.WriteLine ("\t\t\t\tclass_structs = new Hashtable ();");
- sw.WriteLine ();
- sw.WriteLine ("\t\t\tif (use_cache && class_structs.Contains (gtype))");
- sw.WriteLine ("\t\t\t\treturn ({0}) class_structs [gtype];", class_struct_name);
- sw.WriteLine ("\t\t\telse {");
- sw.WriteLine ("\t\t\t\tIntPtr class_ptr = new IntPtr (gtype.GetClassPtr ().ToInt64 () + class_offset);");
- sw.WriteLine ("\t\t\t\t{0} class_struct = ({0}) Marshal.PtrToStructure (class_ptr, typeof ({0}));", class_struct_name);
- sw.WriteLine ("\t\t\t\tif (use_cache)");
- sw.WriteLine ("\t\t\t\t\tclass_structs.Add (gtype, class_struct);");
- sw.WriteLine ("\t\t\t\treturn class_struct;");
- sw.WriteLine ("\t\t\t}");
- sw.WriteLine ("\t\t}");
- sw.WriteLine ();
- sw.WriteLine ("\t\tstatic void OverrideClassStruct (GLib.GType gtype, {0} class_struct)", class_struct_name);
- sw.WriteLine ("\t\t{");
- sw.WriteLine ("\t\t\tIntPtr class_ptr = new IntPtr (gtype.GetClassPtr ().ToInt64 () + class_offset);");
- sw.WriteLine ("\t\t\tMarshal.StructureToPtr (class_struct, class_ptr, false);");
- sw.WriteLine ("\t\t}");
- sw.WriteLine ();
- }
-
- /* Keep this in sync with the one in glib/GType.cs */
- private static string GetExpected (string cname)
- {
- for (int i = 1; i < cname.Length; i++) {
- if (Char.IsUpper (cname[i])) {
- if (i == 1 && cname[0] == 'G')
- return "GLib." + cname.Substring (1);
- else
- return cname.Substring (0, i) + "." + cname.Substring (i);
- }
- }
-
- throw new ArgumentException ("cname doesn't follow the NamespaceType capitalization style: " + cname);
- }
-
- private static bool NeedsMap (Hashtable objs, string assembly_name)
- {
- foreach (string key in objs.Keys)
- if (GetExpected (key) != ((string) objs[key]))
- return true;
-
- return false;
- }
-
- private static string Studlify (string name)
- {
- string result = "";
-
- string[] subs = name.Split ('-');
- foreach (string sub in subs)
- result += Char.ToUpper (sub[0]) + sub.Substring (1);
-
- return result;
- }
-
- public static void GenerateMappers ()
- {
- foreach (string dir in dirs.Keys) {
-
- DirectoryInfo di = dirs[dir] as DirectoryInfo;
-
- if (!NeedsMap (di.objects, di.assembly_name))
- continue;
-
- GenerationInfo gen_info = new GenerationInfo (dir, di.assembly_name);
-
- GenerateMapper (di, gen_info);
- }
- }
-
- private static void GenerateMapper (DirectoryInfo dir_info, GenerationInfo gen_info)
- {
- StreamWriter sw = gen_info.OpenStream ("ObjectManager");
-
- sw.WriteLine ("namespace GtkSharp." + Studlify (dir_info.assembly_name) + " {");
- sw.WriteLine ();
- sw.WriteLine ("\tpublic class ObjectManager {");
- sw.WriteLine ();
- sw.WriteLine ("\t\tstatic bool initialized = false;");
- sw.WriteLine ("\t\t// Call this method from the appropriate module init function.");
- sw.WriteLine ("\t\tpublic static void Initialize ()");
- sw.WriteLine ("\t\t{");
- sw.WriteLine ("\t\t\tif (initialized)");
- sw.WriteLine ("\t\t\t\treturn;");
- sw.WriteLine ("");
- sw.WriteLine ("\t\t\tinitialized = true;");
-
- foreach (string key in dir_info.objects.Keys) {
- if (GetExpected(key) != ((string) dir_info.objects[key]))
- sw.WriteLine ("\t\t\tGLib.GType.Register ({0}.GType, typeof ({0}));", dir_info.objects [key]);
- }
-
- sw.WriteLine ("\t\t}");
- sw.WriteLine ("\t}");
- sw.WriteLine ("}");
- sw.Close ();
- }
- }
-}
-
+// GtkSharp.Generation.ObjectGen.cs - The Object Generatable.
+//
+// Author: Mike Kestner <mkestner@ximian.com>
+//
+// Copyright (c) 2001-2003 Mike Kestner
+// Copyright (c) 2003-2004 Novell, Inc.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of version 2 of the 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
+// General Public License for more details.
+//
+// You should have received a copy of the GNU 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 GtkSharp.Generation {
+
+ using System;
+ using System.Collections.Generic;
+ using System.IO;
+ using System.Text;
+ using System.Xml;
+
+ public class ObjectGen : ObjectBase {
+
+ private IList<string> custom_attrs = new List<string> ();
+ private IList<XmlElement> strings = new List<XmlElement> ();
+ private IDictionary<string, ChildProperty> childprops = new Dictionary<string, ChildProperty> ();
+ private static IDictionary<string, DirectoryInfo> dirs = new Dictionary<string, DirectoryInfo> ();
+
+ public ObjectGen (XmlElement ns, XmlElement elem) : base (ns, elem, false)
+ {
+ foreach (XmlNode node in elem.ChildNodes) {
+ XmlElement member = node as XmlElement;
+ if (member == null) {
+ continue;
+ }
+
+ if (member.GetAttributeAsBoolean ("hidden"))
+ continue;
+
+ switch (node.Name) {
+ case "callback":
+ Statistics.IgnoreCount++;
+ break;
+
+ case "custom-attribute":
+ custom_attrs.Add (member.InnerXml);
+ break;
+
+ case "static-string":
+ strings.Add (member);
+ break;
+
+ case "childprop":
+ string name = member.GetAttribute ("name");
+ while (childprops.ContainsKey (name))
+ name += "mangled";
+ childprops.Add (name, new ChildProperty (member, this));
+ break;
+
+ default:
+ if (!IsNodeNameHandled (node.Name))
+ Console.WriteLine ("Unexpected node " + node.Name + " in " + CName);
+ break;
+ }
+ }
+ }
+
+ public override string CallByName (string var, bool owned)
+ {
+ return String.Format ("{0} == null ? IntPtr.Zero : {0}.{1}", var, owned ? "OwnedHandle" : "Handle");
+ }
+
+ public override bool Validate ()
+ {
+ LogWriter log = new LogWriter (QualifiedName);
+
+ var invalids = new List<string> ();
+
+ foreach (string prop_name in childprops.Keys) {
+ if (!childprops [prop_name].Validate (log))
+ invalids.Add (prop_name);
+ }
+ foreach (string prop_name in invalids)
+ childprops.Remove (prop_name);
+
+ return base.Validate ();
+ }
+
+ private bool DisableVoidCtor {
+ get {
+ return Elem.GetAttributeAsBoolean ("disable_void_ctor");
+ }
+ }
+
+ private class DirectoryInfo {
+ public string assembly_name;
+ public IDictionary<string, string> objects;
+
+ public DirectoryInfo (string assembly_name)
+ {
+ this.assembly_name = assembly_name;
+ objects = new Dictionary<string, string> ();
+ }
+ }
+
+ private static DirectoryInfo GetDirectoryInfo (string dir, string assembly_name)
+ {
+ DirectoryInfo result;
+
+ if (dirs.ContainsKey (dir)) {
+ result = dirs [dir];
+ if (result.assembly_name != assembly_name) {
+ Console.WriteLine ("Can't put multiple assemblies in one directory.");
+ return null;
+ }
+
+ return result;
+ }
+
+ result = new DirectoryInfo (assembly_name);
+ dirs.Add (dir, result);
+
+ return result;
+ }
+
+ public override void Generate (GenerationInfo gen_info)
+ {
+ gen_info.CurrentType = QualifiedName;
+
+ string asm_name = gen_info.AssemblyName.Length == 0 ? NS.ToLower () + "-sharp" : gen_info.AssemblyName;
+ DirectoryInfo di = GetDirectoryInfo (gen_info.Dir, asm_name);
+
+ StreamWriter sw = gen_info.Writer = gen_info.OpenStream (Name);
+
+ sw.WriteLine ("namespace " + NS + " {");
+ sw.WriteLine ();
+ sw.WriteLine ("\tusing System;");
+ sw.WriteLine ("\tusing System.Collections;");
+ sw.WriteLine ("\tusing System.Collections.Generic;");
+ sw.WriteLine ("\tusing System.Runtime.InteropServices;");
+ sw.WriteLine ();
+
+ SymbolTable table = SymbolTable.Table;
+
+ sw.WriteLine ("#region Autogenerated code");
+ if (IsDeprecated)
+ sw.WriteLine ("\t[Obsolete]");
+ foreach (string attr in custom_attrs)
+ sw.WriteLine ("\t" + attr);
+ sw.Write ("\t{0} {1}partial class " + Name, IsInternal ? "internal" : "public", IsAbstract ? "abstract " : "");
+ string cs_parent = table.GetCSType(Elem.GetAttribute("parent"));
+ if (cs_parent != "") {
+ di.objects.Add (CName, QualifiedName);
+ sw.Write (" : " + cs_parent);
+ }
+ foreach (string iface in interfaces) {
+ if (Parent != null && Parent.Implements (iface))
+ continue;
+ sw.Write (", " + table.GetCSType (iface));
+ }
+ foreach (string iface in managed_interfaces) {
+ if (Parent != null && Parent.Implements (iface))
+ continue;
+ sw.Write (", " + iface);
+ }
+ sw.WriteLine (" {");
+ sw.WriteLine ();
+
+ GenCtors (gen_info);
+ GenProperties (gen_info, null);
+ GenFields (gen_info);
+ GenChildProperties (gen_info);
+
+ bool has_sigs = (sigs != null && sigs.Count > 0);
+ if (!has_sigs) {
+ foreach (string iface in interfaces) {
+ InterfaceGen igen = table.GetClassGen (iface) as InterfaceGen;
+ if (igen != null && igen.Signals != null) {
+ has_sigs = true;
+ break;
+ }
+ }
+ }
+
+ if (has_sigs && Elem.HasAttribute("parent")) {
+ GenSignals (gen_info, null);
+ }
+
+ GenClassMembers (gen_info, cs_parent);
+ GenMethods (gen_info, null, null);
+
+ if (interfaces.Count != 0) {
+ var all_methods = new Dictionary<string, Method> ();
+ foreach (Method m in Methods.Values) {
+ all_methods[m.Name] = m;
+ }
+ var collisions = new Dictionary<string, bool> ();
+ foreach (string iface in interfaces) {
+ ClassBase igen = table.GetClassGen (iface);
+ foreach (Method m in igen.Methods.Values) {
+ if (m.Name.StartsWith ("Get") || m.Name.StartsWith ("Set")) {
+ if (GetProperty (m.Name.Substring (3)) != null) {
+ collisions[m.Name] = true;
+ continue;
+ }
+ }
+ Method collision = null;
+ all_methods.TryGetValue (m.Name, out collision);
+ if (collision != null && collision.Signature.Types == m.Signature.Types)
+ collisions[m.Name] = true;
+ else
+ all_methods[m.Name] = m;
+ }
+ }
+
+ foreach (string iface in interfaces) {
+ if (Parent != null && Parent.Implements (iface))
+ continue;
+ InterfaceGen igen = table.GetClassGen (iface) as InterfaceGen;
+ igen.GenMethods (gen_info, collisions, this);
+ igen.GenProperties (gen_info, this);
+ igen.GenSignals (gen_info, this);
+ igen.GenVirtualMethods (gen_info, this);
+ }
+ }
+
+ foreach (XmlElement str in strings) {
+ sw.Write ("\t\tpublic static string " + str.GetAttribute ("name"));
+ sw.WriteLine (" {\n\t\t\t get { return \"" + str.GetAttribute ("value") + "\"; }\n\t\t}");
+ }
+
+ if (cs_parent != String.Empty && GetExpected (CName) != QualifiedName) {
+ sw.WriteLine ();
+ sw.WriteLine ("\t\tstatic " + Name + " ()");
+ sw.WriteLine ("\t\t{");
+ sw.WriteLine ("\t\t\tGtkSharp." + Studlify (asm_name) + ".ObjectManager.Initialize ();");
+ sw.WriteLine ("\t\t}");
+ }
+
+ sw.WriteLine ("#endregion");
+
+ sw.WriteLine ("\t}");
+ sw.WriteLine ("}");
+
+ sw.Close ();
+ gen_info.Writer = null;
+ Statistics.ObjectCount++;
+ }
+
+ protected override void GenCtors (GenerationInfo gen_info)
+ {
+ if (!Elem.HasAttribute("parent"))
+ return;
+
+ gen_info.Writer.WriteLine("\t\tpublic " + Name + "(IntPtr raw) : base(raw) {}");
+ if (ctors.Count == 0 && !DisableVoidCtor) {
+ gen_info.Writer.WriteLine();
+ gen_info.Writer.WriteLine("\t\tprotected " + Name + "() : base(IntPtr.Zero)");
+ gen_info.Writer.WriteLine("\t\t{");
+ gen_info.Writer.WriteLine("\t\t\tCreateNativeObject (new string [0], new GLib.Value [0]);");
+ gen_info.Writer.WriteLine("\t\t}");
+ }
+ gen_info.Writer.WriteLine();
+
+ base.GenCtors (gen_info);
+ }
+
+ protected void GenChildProperties (GenerationInfo gen_info)
+ {
+ if (childprops.Count == 0)
+ return;
+
+ StreamWriter sw = gen_info.Writer;
+
+ ObjectGen child_ancestor = Parent as ObjectGen;
+ while (child_ancestor.CName != "GtkContainer" &&
+ child_ancestor.childprops.Count == 0)
+ child_ancestor = child_ancestor.Parent as ObjectGen;
+
+ sw.WriteLine ("\t\tpublic class " + Name + "Child : " + child_ancestor.NS + "." + child_ancestor.Name + "." + child_ancestor.Name + "Child {");
+ sw.WriteLine ("\t\t\tprotected internal " + Name + "Child (Gtk.Container parent, Gtk.Widget child) : base (parent, child) {}");
+ sw.WriteLine ("");
+
+ foreach (ChildProperty prop in childprops.Values)
+ prop.Generate (gen_info, "\t\t\t", null);
+
+ sw.WriteLine ("\t\t}");
+ sw.WriteLine ("");
+
+ sw.WriteLine ("\t\tpublic override Gtk.Container.ContainerChild this [Gtk.Widget child] {");
+ sw.WriteLine ("\t\t\tget {");
+ sw.WriteLine ("\t\t\t\treturn new " + Name + "Child (this, child);");
+ sw.WriteLine ("\t\t\t}");
+ sw.WriteLine ("\t\t}");
+ sw.WriteLine ("");
+
+ }
+
+ void GenClassMembers (GenerationInfo gen_info, string cs_parent)
+ {
+ GenVirtualMethods (gen_info, null);
+
+ if (class_struct_name == null || !CanGenerateClassStruct) return;
+ StreamWriter sw = gen_info.Writer;
+ GenerateClassStruct (gen_info);
+ if (cs_parent == "")
+ sw.WriteLine ("\t\tstatic uint class_offset = 0;");
+ else
+ sw.WriteLine ("\t\tstatic uint class_offset = ((GLib.GType) typeof ({0})).GetClassSize ();", cs_parent);
+ sw.WriteLine ("\t\tstatic Dictionary<GLib.GType, {0}> class_structs;", class_struct_name);
+ sw.WriteLine ();
+ sw.WriteLine ("\t\tstatic {0} GetClassStruct (GLib.GType gtype, bool use_cache)", class_struct_name);
+ sw.WriteLine ("\t\t{");
+ sw.WriteLine ("\t\t\tif (class_structs == null)");
+ sw.WriteLine ("\t\t\t\tclass_structs = new Dictionary<GLib.GType, {0}> ();", class_struct_name);
+ sw.WriteLine ();
+ sw.WriteLine ("\t\t\tif (use_cache && class_structs.ContainsKey (gtype))");
+ sw.WriteLine ("\t\t\t\treturn class_structs [gtype];");
+ sw.WriteLine ("\t\t\telse {");
+ sw.WriteLine ("\t\t\t\tIntPtr class_ptr = new IntPtr (gtype.GetClassPtr ().ToInt64 () + class_offset);");
+ sw.WriteLine ("\t\t\t\t{0} class_struct = ({0}) Marshal.PtrToStructure (class_ptr, typeof ({0}));", class_struct_name);
+ sw.WriteLine ("\t\t\t\tif (use_cache)");
+ sw.WriteLine ("\t\t\t\t\tclass_structs.Add (gtype, class_struct);");
+ sw.WriteLine ("\t\t\t\treturn class_struct;");
+ sw.WriteLine ("\t\t\t}");
+ sw.WriteLine ("\t\t}");
+ sw.WriteLine ();
+ sw.WriteLine ("\t\tstatic void OverrideClassStruct (GLib.GType gtype, {0} class_struct)", class_struct_name);
+ sw.WriteLine ("\t\t{");
+ sw.WriteLine ("\t\t\tIntPtr class_ptr = new IntPtr (gtype.GetClassPtr ().ToInt64 () + class_offset);");
+ sw.WriteLine ("\t\t\tMarshal.StructureToPtr (class_struct, class_ptr, false);");
+ sw.WriteLine ("\t\t}");
+ sw.WriteLine ();
+ }
+
+ /* Keep this in sync with the one in glib/GType.cs */
+ private static string GetExpected (string cname)
+ {
+ for (int i = 1; i < cname.Length; i++) {
+ if (Char.IsUpper (cname[i])) {
+ if (i == 1 && cname[0] == 'G')
+ return "GLib." + cname.Substring (1);
+ else
+ return cname.Substring (0, i) + "." + cname.Substring (i);
+ }
+ }
+
+ throw new ArgumentException ("cname doesn't follow the NamespaceType capitalization style: " + cname);
+ }
+
+ private static bool NeedsMap (IDictionary<string, string> objs, string assembly_name)
+ {
+ foreach (string key in objs.Keys) {
+ if (GetExpected (key) != objs[key]) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ private static string Studlify (string name)
+ {
+ string result = "";
+
+ string[] subs = name.Split ('-');
+ foreach (string sub in subs)
+ result += Char.ToUpper (sub[0]) + sub.Substring (1);
+
+ return result;
+ }
+
+ public static void GenerateMappers ()
+ {
+ foreach (string dir in dirs.Keys) {
+
+ DirectoryInfo di = dirs[dir];
+
+ if (!NeedsMap (di.objects, di.assembly_name))
+ continue;
+
+ GenerationInfo gen_info = new GenerationInfo (dir, di.assembly_name);
+
+ GenerateMapper (di, gen_info);
+ }
+ }
+
+ private static void GenerateMapper (DirectoryInfo dir_info, GenerationInfo gen_info)
+ {
+ StreamWriter sw = gen_info.OpenStream ("ObjectManager");
+
+ sw.WriteLine ("namespace GtkSharp." + Studlify (dir_info.assembly_name) + " {");
+ sw.WriteLine ();
+ sw.WriteLine ("\tpublic class ObjectManager {");
+ sw.WriteLine ();
+ sw.WriteLine ("\t\tstatic bool initialized = false;");
+ sw.WriteLine ("\t\t// Call this method from the appropriate module init function.");
+ sw.WriteLine ("\t\tpublic static void Initialize ()");
+ sw.WriteLine ("\t\t{");
+ sw.WriteLine ("\t\t\tif (initialized)");
+ sw.WriteLine ("\t\t\t\treturn;");
+ sw.WriteLine ("");
+ sw.WriteLine ("\t\t\tinitialized = true;");
+
+ foreach (string key in dir_info.objects.Keys) {
+ if (GetExpected(key) != dir_info.objects[key]) {
+ sw.WriteLine ("\t\t\tGLib.GType.Register ({0}.GType, typeof ({0}));", dir_info.objects [key]);
+ }
+ }
+
+ sw.WriteLine ("\t\t}");
+ sw.WriteLine ("\t}");
+ sw.WriteLine ("}");
+ sw.Close ();
+ }
+ }
+}
+
diff --git a/generator/OpaqueGen.cs b/generator/OpaqueGen.cs
index 89b175c..5b71ea7 100644
--- a/generator/OpaqueGen.cs
+++ b/generator/OpaqueGen.cs
@@ -1,235 +1,236 @@
-// GtkSharp.Generation.OpaqueGen.cs - The Opaque Generatable.
-//
-// Author: Mike Kestner <mkestner@speakeasy.net>
-//
-// Copyright (c) 2001-2003 Mike Kestner
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of version 2 of the 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
-// General Public License for more details.
-//
-// You should have received a copy of the GNU 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 GtkSharp.Generation {
-
- using System;
- using System.Collections;
- using System.IO;
- using System.Xml;
-
- public class OpaqueGen : HandleBase {
-
- public OpaqueGen (XmlElement ns, XmlElement elem) : base (ns, elem) {}
-
- public override string FromNative(string var, bool owned)
- {
- return var + " == IntPtr.Zero ? null : (" + QualifiedName + ") GLib.Opaque.GetOpaque (" + var + ", typeof (" + QualifiedName + "), " + (owned ? "true" : "false") + ")";
- }
-
- private bool DisableRawCtor {
- get {
- return Elem.HasAttribute ("disable_raw_ctor");
- }
- }
-
- public override void Generate (GenerationInfo gen_info)
- {
- gen_info.CurrentType = QualifiedName;
-
- StreamWriter sw = gen_info.Writer = gen_info.OpenStream (Name);
-
- sw.WriteLine ("namespace " + NS + " {");
- sw.WriteLine ();
- sw.WriteLine ("\tusing System;");
- sw.WriteLine ("\tusing System.Collections;");
- sw.WriteLine ("\tusing System.Runtime.InteropServices;");
- sw.WriteLine ();
-
- sw.WriteLine ("#region Autogenerated code");
-
- SymbolTable table = SymbolTable.Table;
-
- Method ref_, unref, dispose;
- GetSpecialMethods (out ref_, out unref, out dispose);
-
- if (IsDeprecated)
- sw.WriteLine ("\t[Obsolete]");
- sw.Write ("\t{0} partial {1}class " + Name, IsInternal ? "internal" : "public", IsAbstract ? "abstract " : String.Empty);
- string cs_parent = table.GetCSType(Elem.GetAttribute("parent"));
- if (cs_parent != "")
- sw.Write (" : " + cs_parent);
- else
- sw.Write (" : GLib.Opaque");
-
- foreach (string iface in managed_interfaces) {
- if (Parent != null && Parent.Implements (iface))
- continue;
- sw.Write (", " + iface);
- }
-
- sw.WriteLine (" {");
- sw.WriteLine ();
-
- GenFields (gen_info);
- GenMethods (gen_info, null, null);
- GenCtors (gen_info);
-
- if (ref_ != null) {
- ref_.GenerateImport (sw);
- sw.WriteLine ("\t\tprotected override void Ref (IntPtr raw)");
- sw.WriteLine ("\t\t{");
- sw.WriteLine ("\t\t\tif (!Owned) {");
- sw.WriteLine ("\t\t\t\t" + ref_.CName + " (raw);");
- sw.WriteLine ("\t\t\t\tOwned = true;");
- sw.WriteLine ("\t\t\t}");
- sw.WriteLine ("\t\t}");
- sw.WriteLine ();
-
- if (ref_.IsDeprecated) {
- sw.WriteLine ("\t\t[Obsolete(\"" + QualifiedName + " is now refcounted automatically\")]");
- if (ref_.ReturnType == "void")
- sw.WriteLine ("\t\tpublic void Ref () {}");
- else
- sw.WriteLine ("\t\tpublic " + Name + " Ref () { return this; }");
- sw.WriteLine ();
- }
- }
-
- bool finalizer_needed = false;
-
- if (unref != null) {
- unref.GenerateImport (sw);
- sw.WriteLine ("\t\tprotected override void Unref (IntPtr raw)");
- sw.WriteLine ("\t\t{");
- sw.WriteLine ("\t\t\tif (Owned) {");
- sw.WriteLine ("\t\t\t\t" + unref.CName + " (raw);");
- sw.WriteLine ("\t\t\t\tOwned = false;");
- sw.WriteLine ("\t\t\t}");
- sw.WriteLine ("\t\t}");
- sw.WriteLine ();
-
- if (unref.IsDeprecated) {
- sw.WriteLine ("\t\t[Obsolete(\"" + QualifiedName + " is now refcounted automatically\")]");
- sw.WriteLine ("\t\tpublic void Unref () {}");
- sw.WriteLine ();
- }
- finalizer_needed = true;
- }
-
- if (dispose != null) {
- dispose.GenerateImport (sw);
- sw.WriteLine ("\t\tprotected override void Free (IntPtr raw)");
- sw.WriteLine ("\t\t{");
- sw.WriteLine ("\t\t\t" + dispose.CName + " (raw);");
- sw.WriteLine ("\t\t}");
- sw.WriteLine ();
-
- if (dispose.IsDeprecated) {
- sw.WriteLine ("\t\t[Obsolete(\"" + QualifiedName + " is now freed automatically\")]");
- sw.WriteLine ("\t\tpublic void " + dispose.Name + " () {}");
- sw.WriteLine ();
- }
- finalizer_needed = true;
- }
-
- if (finalizer_needed) {
- sw.WriteLine ("\t\tclass FinalizerInfo {");
- sw.WriteLine ("\t\t\tIntPtr handle;");
- sw.WriteLine ();
- sw.WriteLine ("\t\t\tpublic FinalizerInfo (IntPtr handle)");
- sw.WriteLine ("\t\t\t{");
- sw.WriteLine ("\t\t\t\tthis.handle = handle;");
- sw.WriteLine ("\t\t\t}");
- sw.WriteLine ();
- sw.WriteLine ("\t\t\tpublic bool Handler ()");
- sw.WriteLine ("\t\t\t{");
- if (dispose != null)
- sw.WriteLine ("\t\t\t\t{0} (handle);", dispose.CName);
- else if (unref != null)
- sw.WriteLine ("\t\t\t\t{0} (handle);", unref.CName);
- sw.WriteLine ("\t\t\t\treturn false;");
- sw.WriteLine ("\t\t\t}");
- sw.WriteLine ("\t\t}");
- sw.WriteLine ();
- sw.WriteLine ("\t\t~{0} ()", Name);
- sw.WriteLine ("\t\t{");
- sw.WriteLine ("\t\t\tif (!Owned)");
- sw.WriteLine ("\t\t\t\treturn;");
- sw.WriteLine ("\t\t\tFinalizerInfo info = new FinalizerInfo (Handle);");
- sw.WriteLine ("\t\t\tGLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler));");
- sw.WriteLine ("\t\t}");
- sw.WriteLine ();
- }
-
-#if false
- Method copy = Methods ["Copy"] as Method;
- if (copy != null && copy.Parameters.Count == 0) {
- sw.WriteLine ("\t\tprotected override GLib.Opaque Copy (IntPtr raw)");
- sw.WriteLine ("\t\t{");
- sw.WriteLine ("\t\t\tGLib.Opaque result = new " + QualifiedName + " (" + copy.CName + " (raw));");
- sw.WriteLine ("\t\t\tresult.Owned = true;");
- sw.WriteLine ("\t\t\treturn result;");
- sw.WriteLine ("\t\t}");
- sw.WriteLine ();
- }
-#endif
- sw.WriteLine ("#endregion");
-
- sw.WriteLine ("\t}");
- sw.WriteLine ("}");
-
- sw.Close ();
- gen_info.Writer = null;
- Statistics.OpaqueCount++;
- }
-
- void GetSpecialMethods (out Method ref_, out Method unref, out Method dispose)
- {
- ref_ = CheckSpecialMethod (GetMethod ("Ref"));
- unref = CheckSpecialMethod (GetMethod ("Unref"));
-
- dispose = GetMethod ("Free");
- if (dispose == null) {
- dispose = GetMethod ("Destroy");
- if (dispose == null)
- dispose = GetMethod ("Dispose");
- }
- dispose = CheckSpecialMethod (dispose);
- }
-
- Method CheckSpecialMethod (Method method)
- {
- if (method == null)
- return null;
- if (method.ReturnType != "void" &&
- method.ReturnType != QualifiedName)
- return null;
- if (method.Signature.ToString () != "")
- return null;
-
- methods.Remove (method.Name);
- return method;
- }
-
- protected override void GenCtors (GenerationInfo gen_info)
- {
- if (!DisableRawCtor) {
- gen_info.Writer.WriteLine("\t\tpublic " + Name + "(IntPtr raw) : base(raw) {}");
- gen_info.Writer.WriteLine();
- }
-
- base.GenCtors (gen_info);
- }
-
- }
-}
-
+// GtkSharp.Generation.OpaqueGen.cs - The Opaque Generatable.
+//
+// Author: Mike Kestner <mkestner@speakeasy.net>
+//
+// Copyright (c) 2001-2003 Mike Kestner
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of version 2 of the 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
+// General Public License for more details.
+//
+// You should have received a copy of the GNU 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 GtkSharp.Generation {
+
+ using System;
+ using System.Collections;
+ using System.IO;
+ using System.Xml;
+
+ public class OpaqueGen : HandleBase {
+
+ public OpaqueGen (XmlElement ns, XmlElement elem) : base (ns, elem) {}
+
+ public override string FromNative(string var, bool owned)
+ {
+ return var + " == IntPtr.Zero ? null : (" + QualifiedName + ") GLib.Opaque.GetOpaque (" + var + ", typeof (" + QualifiedName + "), " + (owned ? "true" : "false") + ")";
+ }
+
+ private bool DisableRawCtor {
+ get {
+ return Elem.GetAttributeAsBoolean ("disable_raw_ctor");
+ }
+ }
+
+ public override void Generate (GenerationInfo gen_info)
+ {
+ gen_info.CurrentType = QualifiedName;
+
+ StreamWriter sw = gen_info.Writer = gen_info.OpenStream (Name);
+
+ sw.WriteLine ("namespace " + NS + " {");
+ sw.WriteLine ();
+ sw.WriteLine ("\tusing System;");
+ sw.WriteLine ("\tusing System.Collections;");
+ sw.WriteLine ("\tusing System.Collections.Generic;");
+ sw.WriteLine ("\tusing System.Runtime.InteropServices;");
+ sw.WriteLine ();
+
+ sw.WriteLine ("#region Autogenerated code");
+
+ SymbolTable table = SymbolTable.Table;
+
+ Method ref_, unref, dispose;
+ GetSpecialMethods (out ref_, out unref, out dispose);
+
+ if (IsDeprecated)
+ sw.WriteLine ("\t[Obsolete]");
+ sw.Write ("\t{0} partial {1}class " + Name, IsInternal ? "internal" : "public", IsAbstract ? "abstract " : String.Empty);
+ string cs_parent = table.GetCSType(Elem.GetAttribute("parent"));
+ if (cs_parent != "")
+ sw.Write (" : " + cs_parent);
+ else
+ sw.Write (" : GLib.Opaque");
+
+ foreach (string iface in managed_interfaces) {
+ if (Parent != null && Parent.Implements (iface))
+ continue;
+ sw.Write (", " + iface);
+ }
+
+ sw.WriteLine (" {");
+ sw.WriteLine ();
+
+ GenFields (gen_info);
+ GenMethods (gen_info, null, null);
+ GenCtors (gen_info);
+
+ if (ref_ != null) {
+ ref_.GenerateImport (sw);
+ sw.WriteLine ("\t\tprotected override void Ref (IntPtr raw)");
+ sw.WriteLine ("\t\t{");
+ sw.WriteLine ("\t\t\tif (!Owned) {");
+ sw.WriteLine ("\t\t\t\t" + ref_.CName + " (raw);");
+ sw.WriteLine ("\t\t\t\tOwned = true;");
+ sw.WriteLine ("\t\t\t}");
+ sw.WriteLine ("\t\t}");
+ sw.WriteLine ();
+
+ if (ref_.IsDeprecated) {
+ sw.WriteLine ("\t\t[Obsolete(\"" + QualifiedName + " is now refcounted automatically\")]");
+ if (ref_.ReturnType == "void")
+ sw.WriteLine ("\t\tpublic void Ref () {}");
+ else
+ sw.WriteLine ("\t\tpublic " + Name + " Ref () { return this; }");
+ sw.WriteLine ();
+ }
+ }
+
+ bool finalizer_needed = false;
+
+ if (unref != null) {
+ unref.GenerateImport (sw);
+ sw.WriteLine ("\t\tprotected override void Unref (IntPtr raw)");
+ sw.WriteLine ("\t\t{");
+ sw.WriteLine ("\t\t\tif (Owned) {");
+ sw.WriteLine ("\t\t\t\t" + unref.CName + " (raw);");
+ sw.WriteLine ("\t\t\t\tOwned = false;");
+ sw.WriteLine ("\t\t\t}");
+ sw.WriteLine ("\t\t}");
+ sw.WriteLine ();
+
+ if (unref.IsDeprecated) {
+ sw.WriteLine ("\t\t[Obsolete(\"" + QualifiedName + " is now refcounted automatically\")]");
+ sw.WriteLine ("\t\tpublic void Unref () {}");
+ sw.WriteLine ();
+ }
+ finalizer_needed = true;
+ }
+
+ if (dispose != null) {
+ dispose.GenerateImport (sw);
+ sw.WriteLine ("\t\tprotected override void Free (IntPtr raw)");
+ sw.WriteLine ("\t\t{");
+ sw.WriteLine ("\t\t\t" + dispose.CName + " (raw);");
+ sw.WriteLine ("\t\t}");
+ sw.WriteLine ();
+
+ if (dispose.IsDeprecated) {
+ sw.WriteLine ("\t\t[Obsolete(\"" + QualifiedName + " is now freed automatically\")]");
+ sw.WriteLine ("\t\tpublic void " + dispose.Name + " () {}");
+ sw.WriteLine ();
+ }
+ finalizer_needed = true;
+ }
+
+ if (finalizer_needed) {
+ sw.WriteLine ("\t\tclass FinalizerInfo {");
+ sw.WriteLine ("\t\t\tIntPtr handle;");
+ sw.WriteLine ();
+ sw.WriteLine ("\t\t\tpublic FinalizerInfo (IntPtr handle)");
+ sw.WriteLine ("\t\t\t{");
+ sw.WriteLine ("\t\t\t\tthis.handle = handle;");
+ sw.WriteLine ("\t\t\t}");
+ sw.WriteLine ();
+ sw.WriteLine ("\t\t\tpublic bool Handler ()");
+ sw.WriteLine ("\t\t\t{");
+ if (dispose != null)
+ sw.WriteLine ("\t\t\t\t{0} (handle);", dispose.CName);
+ else if (unref != null)
+ sw.WriteLine ("\t\t\t\t{0} (handle);", unref.CName);
+ sw.WriteLine ("\t\t\t\treturn false;");
+ sw.WriteLine ("\t\t\t}");
+ sw.WriteLine ("\t\t}");
+ sw.WriteLine ();
+ sw.WriteLine ("\t\t~{0} ()", Name);
+ sw.WriteLine ("\t\t{");
+ sw.WriteLine ("\t\t\tif (!Owned)");
+ sw.WriteLine ("\t\t\t\treturn;");
+ sw.WriteLine ("\t\t\tFinalizerInfo info = new FinalizerInfo (Handle);");
+ sw.WriteLine ("\t\t\tGLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler));");
+ sw.WriteLine ("\t\t}");
+ sw.WriteLine ();
+ }
+
+#if false
+ Method copy = Methods ["Copy"] as Method;
+ if (copy != null && copy.Parameters.Count == 0) {
+ sw.WriteLine ("\t\tprotected override GLib.Opaque Copy (IntPtr raw)");
+ sw.WriteLine ("\t\t{");
+ sw.WriteLine ("\t\t\tGLib.Opaque result = new " + QualifiedName + " (" + copy.CName + " (raw));");
+ sw.WriteLine ("\t\t\tresult.Owned = true;");
+ sw.WriteLine ("\t\t\treturn result;");
+ sw.WriteLine ("\t\t}");
+ sw.WriteLine ();
+ }
+#endif
+ sw.WriteLine ("#endregion");
+
+ sw.WriteLine ("\t}");
+ sw.WriteLine ("}");
+
+ sw.Close ();
+ gen_info.Writer = null;
+ Statistics.OpaqueCount++;
+ }
+
+ void GetSpecialMethods (out Method ref_, out Method unref, out Method dispose)
+ {
+ ref_ = CheckSpecialMethod (GetMethod ("Ref"));
+ unref = CheckSpecialMethod (GetMethod ("Unref"));
+
+ dispose = GetMethod ("Free");
+ if (dispose == null) {
+ dispose = GetMethod ("Destroy");
+ if (dispose == null)
+ dispose = GetMethod ("Dispose");
+ }
+ dispose = CheckSpecialMethod (dispose);
+ }
+
+ Method CheckSpecialMethod (Method method)
+ {
+ if (method == null)
+ return null;
+ if (method.ReturnType != "void" &&
+ method.ReturnType != QualifiedName)
+ return null;
+ if (method.Signature.ToString () != "")
+ return null;
+
+ Methods.Remove (method.Name);
+ return method;
+ }
+
+ protected override void GenCtors (GenerationInfo gen_info)
+ {
+ if (!DisableRawCtor) {
+ gen_info.Writer.WriteLine("\t\tpublic " + Name + "(IntPtr raw) : base(raw) {}");
+ gen_info.Writer.WriteLine();
+ }
+
+ base.GenCtors (gen_info);
+ }
+
+ }
+}
+
diff --git a/generator/OwnableGen.cs b/generator/OwnableGen.cs
index 96a2a82..03d4b9b 100644
--- a/generator/OwnableGen.cs
+++ b/generator/OwnableGen.cs
@@ -1,51 +1,51 @@
-// GtkSharp.Generation.ManualGen.cs - Ungenerated handle type Generatable.
-//
-// Author: Mike Kestner <mkestner@novell.com>
-//
-// Copyright (c) 2003 Mike Kestner
-// Copyright (c) 2004 Novell, Inc.
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of version 2 of the 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
-// General Public License for more details.
-//
-// You should have received a copy of the GNU 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 GtkSharp.Generation {
-
- using System;
-
- public class OwnableGen : SimpleBase, IOwnable {
-
- public OwnableGen (string ctype, string type) : base (ctype, type, "null") {}
-
- public override string MarshalType {
- get { return "IntPtr"; }
- }
-
- public override string CallByName (string var_name)
- {
- return var_name + " == null ? IntPtr.Zero : " + var_name + ".Handle";
- }
-
- public override string FromNative (string var)
- {
- return String.Format ("new {0} ({1})", QualifiedName, var);
- }
-
- public string FromNative (string var, bool owned)
- {
- return String.Format ("new {0} ({1}, {2})", QualifiedName, var, owned ? "true" : "false");
- }
- }
-}
-
+// GtkSharp.Generation.ManualGen.cs - Ungenerated handle type Generatable.
+//
+// Author: Mike Kestner <mkestner@novell.com>
+//
+// Copyright (c) 2003 Mike Kestner
+// Copyright (c) 2004 Novell, Inc.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of version 2 of the 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
+// General Public License for more details.
+//
+// You should have received a copy of the GNU 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 GtkSharp.Generation {
+
+ using System;
+
+ public class OwnableGen : SimpleBase, IOwnable {
+
+ public OwnableGen (string ctype, string type) : base (ctype, type, "null") {}
+
+ public override string MarshalType {
+ get { return "IntPtr"; }
+ }
+
+ public override string CallByName (string var_name)
+ {
+ return var_name + " == null ? IntPtr.Zero : " + var_name + ".Handle";
+ }
+
+ public override string FromNative (string var)
+ {
+ return String.Format ("new {0} ({1})", QualifiedName, var);
+ }
+
+ public string FromNative (string var, bool owned)
+ {
+ return String.Format ("new {0} ({1}, {2})", QualifiedName, var, owned ? "true" : "false");
+ }
+ }
+}
+
diff --git a/generator/Parameter.cs b/generator/Parameter.cs
new file mode 100644
index 0000000..2196f4b
--- /dev/null
+++ b/generator/Parameter.cs
@@ -0,0 +1,380 @@
+// GtkSharp.Generation.Parameters.cs - The Parameters Generation Class.
+//
+// Author: Mike Kestner <mkestner@speakeasy.net>
+//
+// Copyright (c) 2001-2003 Mike Kestner
+// Copyright (c) 2004 Novell, Inc.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of version 2 of the 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
+// General Public License for more details.
+//
+// You should have received a copy of the GNU 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 GtkSharp.Generation {
+
+ using System;
+ using System.Collections;
+ using System.Xml;
+
+ public class Parameter {
+
+ private XmlElement elem;
+
+ public Parameter (XmlElement e)
+ {
+ elem = e;
+ }
+
+ string call_name;
+ public string CallName {
+ get {
+ if (call_name == null)
+ return Name;
+ else
+ return call_name;
+ }
+ set {
+ call_name = value;
+ }
+ }
+
+ public string CType {
+ get {
+ string type = elem.GetAttribute("type");
+ if (type == "void*")
+ type = "gpointer";
+ return type;
+ }
+ }
+
+ public string CSType {
+ get {
+ string cstype = SymbolTable.Table.GetCSType( elem.GetAttribute("type"));
+ if (cstype == "void")
+ cstype = "System.IntPtr";
+ if (IsArray) {
+ if (IsParams)
+ cstype = "params " + cstype;
+ cstype += "[]";
+ cstype = cstype.Replace ("ref ", "");
+ }
+ return cstype;
+ }
+ }
+
+ public IGeneratable Generatable {
+ get {
+ return SymbolTable.Table[CType];
+ }
+ }
+
+ public bool IsArray {
+ get {
+ return elem.GetAttributeAsBoolean ("array") || elem.GetAttributeAsBoolean ("null_term_array");
+ }
+ }
+
+ public bool IsEllipsis {
+ get {
+ return elem.GetAttributeAsBoolean ("ellipsis");
+ }
+ }
+
+ bool is_count;
+ bool is_count_set;
+ public bool IsCount {
+ get {
+ if (is_count_set)
+ return is_count;
+
+ if (Name.StartsWith("n_"))
+ switch (CSType) {
+ case "int":
+ case "uint":
+ case "long":
+ case "ulong":
+ case "short":
+ case "ushort":
+ return true;
+ default:
+ return false;
+ }
+ else
+ return false;
+ }
+ set {
+ is_count_set = true;
+ is_count = value;
+ }
+ }
+
+ public bool IsDestroyNotify {
+ get {
+ return CType == "GDestroyNotify";
+ }
+ }
+
+ public bool IsLength {
+ get {
+ if (Name.EndsWith("len") || Name.EndsWith("length"))
+ switch (CSType) {
+ case "int":
+ case "uint":
+ case "long":
+ case "ulong":
+ case "short":
+ case "ushort":
+ return true;
+ default:
+ return false;
+ }
+ else
+ return false;
+ }
+ }
+
+ public bool IsParams {
+ get {
+ return elem.HasAttribute("params");
+ }
+ }
+
+ public bool IsString {
+ get {
+ return (CSType == "string");
+ }
+ }
+
+ public bool IsUserData {
+ get {
+ return CSType == "IntPtr" && (Name.EndsWith ("data") || Name.EndsWith ("data_or_owner"));
+ }
+ }
+
+ public virtual string MarshalType {
+ get {
+ string type = SymbolTable.Table.GetMarshalType( elem.GetAttribute("type"));
+ if (type == "void" || Generatable is IManualMarshaler)
+ type = "IntPtr";
+ if (IsArray) {
+ type += "[]";
+ type = type.Replace ("ref ", "");
+ }
+ return type;
+ }
+ }
+
+ public string Name {
+ get {
+ return SymbolTable.Table.MangleName (elem.GetAttribute("name"));
+ }
+ }
+
+ public bool Owned {
+ get {
+ return elem.GetAttribute ("owned") == "true";
+ }
+ }
+
+ public virtual string NativeSignature {
+ get {
+ string sig = MarshalType + " " + Name;
+ if (PassAs != String.Empty)
+ sig = PassAs + " " + sig;
+ return sig;
+ }
+ }
+
+ public string PropertyName {
+ get {
+ return elem.GetAttribute("property_name");
+ }
+ }
+
+ string pass_as;
+
+ public string PassAs {
+ get {
+ if (pass_as != null)
+ return pass_as;
+
+ if (elem.HasAttribute ("pass_as"))
+ return elem.GetAttribute ("pass_as");
+
+ if (IsArray || CSType.EndsWith ("IntPtr"))
+ return "";
+
+ if (CType.EndsWith ("*") && (Generatable is SimpleGen || Generatable is EnumGen))
+ return "out";
+
+ return "";
+ }
+ set {
+ pass_as = value;
+ }
+ }
+
+ string scope;
+ public string Scope {
+ get {
+ if (scope == null)
+ scope = elem.GetAttribute ("scope");
+ return scope;
+ }
+ set {
+ scope = value;
+ }
+ }
+
+ public virtual string[] Prepare {
+ get {
+ IGeneratable gen = Generatable;
+ if (gen is IManualMarshaler) {
+ string result = "IntPtr native_" + CallName;
+ if (PassAs != "out")
+ result += " = " + (gen as IManualMarshaler).AllocNative (CallName);
+ return new string [] { result + ";" };
+ } else if (PassAs == "out" && CSType != MarshalType) {
+ return new string [] { gen.MarshalType + " native_" + CallName + ";" };
+ } else if (PassAs == "ref" && CSType != MarshalType) {
+ return new string [] { gen.MarshalType + " native_" + CallName + " = (" + gen.MarshalType + ") " + CallName + ";" };
+ }
+
+ return new string [0];
+ }
+ }
+
+ public virtual string CallString {
+ get {
+ string call_parm;
+
+ IGeneratable gen = Generatable;
+ if (gen is CallbackGen)
+ return SymbolTable.Table.CallByName (CType, CallName + "_wrapper");
+ else if (PassAs != String.Empty) {
+ call_parm = PassAs + " ";
+ if (CSType != MarshalType)
+ call_parm += "native_";
+ call_parm += CallName;
+ } else if (gen is IManualMarshaler)
+ call_parm = "native_" + CallName;
+ else if (gen is ObjectBase)
+ call_parm = (gen as ObjectBase).CallByName (CallName, Owned);
+ else
+ call_parm = gen.CallByName (CallName);
+
+ return call_parm;
+ }
+ }
+
+ public virtual string[] Finish {
+ get {
+ IGeneratable gen = Generatable;
+ if (gen is IManualMarshaler) {
+ string[] result = new string [PassAs == "ref" ? 2 : 1];
+ int i = 0;
+ if (PassAs != String.Empty)
+ result [i++] = CallName + " = " + Generatable.FromNative ("native_" + CallName) + ";";
+ if (PassAs != "out")
+ result [i] = (gen as IManualMarshaler).ReleaseNative ("native_" + CallName) + ";";
+ return result;
+ } else if (PassAs != String.Empty && MarshalType != CSType)
+ if (gen is IOwnable)
+ return new string [] { CallName + " = " + (gen as IOwnable).FromNative ("native_" + CallName, Owned) + ";" };
+ else
+ return new string [] { CallName + " = " + gen.FromNative ("native_" + CallName) + ";" };
+ return new string [0];
+ }
+ }
+
+ public string FromNative (string var)
+ {
+ if (Generatable == null)
+ return String.Empty;
+ else if (Generatable is IOwnable)
+ return ((IOwnable)Generatable).FromNative (var, Owned);
+ else
+ return Generatable.FromNative (var);
+ }
+
+ public string StudlyName {
+ get {
+ string name = elem.GetAttribute("name");
+ string[] segs = name.Split('_');
+ string studly = "";
+ foreach (string s in segs) {
+ if (s.Trim () == "")
+ continue;
+ studly += (s.Substring(0,1).ToUpper() + s.Substring(1));
+ }
+ return studly;
+
+ }
+ }
+ }
+
+ public class ErrorParameter : Parameter {
+
+ public ErrorParameter (XmlElement elem) : base (elem)
+ {
+ PassAs = "out";
+ }
+
+ public override string CallString {
+ get {
+ return "out error";
+ }
+ }
+ }
+
+ public class StructParameter : Parameter {
+
+ public StructParameter (XmlElement elem) : base (elem) {}
+
+ public override string MarshalType {
+ get {
+ return "IntPtr";
+ }
+ }
+
+ public override string[] Prepare {
+ get {
+ if (PassAs == "out")
+ return new string [] { "IntPtr native_" + CallName + " = Marshal.AllocHGlobal (Marshal.SizeOf (typeof (" + Generatable.QualifiedName + ")));"};
+ else
+ return new string [] { "IntPtr native_" + CallName + " = " + (Generatable as IManualMarshaler).AllocNative (CallName) + ";"};
+ }
+ }
+
+ public override string CallString {
+ get {
+ return "native_" + CallName;
+ }
+ }
+
+ public override string[] Finish {
+ get {
+ string[] result = new string [2];
+ result [0] = CallName + " = " + FromNative ("native_" + CallName) + ";";
+ result [1] = (Generatable as IManualMarshaler).ReleaseNative ("native_" + CallName) + ";";
+ return result;
+ }
+ }
+
+ public override string NativeSignature {
+ get {
+ return "IntPtr " + CallName;
+ }
+ }
+ }
+}
diff --git a/generator/Parameters.cs b/generator/Parameters.cs
index f599d52..ad31a1b 100644
--- a/generator/Parameters.cs
+++ b/generator/Parameters.cs
@@ -1,759 +1,273 @@
-// GtkSharp.Generation.Parameters.cs - The Parameters Generation Class.
-//
-// Author: Mike Kestner <mkestner@speakeasy.net>
-//
-// Copyright (c) 2001-2003 Mike Kestner
-// Copyright (c) 2004 Novell, Inc.
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of version 2 of the 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
-// General Public License for more details.
-//
-// You should have received a copy of the GNU 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 GtkSharp.Generation {
-
- using System;
- using System.Collections;
- using System.IO;
- using System.Xml;
-
- public class Parameter {
-
- private XmlElement elem;
-
- public Parameter (XmlElement e)
- {
- elem = e;
- }
-
- string call_name;
- public string CallName {
- get {
- if (call_name == null)
- return Name;
- else
- return call_name;
- }
- set {
- call_name = value;
- }
- }
-
- public string CType {
- get {
- string type = elem.GetAttribute("type");
- if (type == "void*")
- type = "gpointer";
- return type;
- }
- }
-
- public string CSType {
- get {
- string cstype = SymbolTable.Table.GetCSType( elem.GetAttribute("type"));
- if (cstype == "void")
- cstype = "System.IntPtr";
- if (IsArray) {
- if (IsParams)
- cstype = "params " + cstype;
- cstype += "[]";
- cstype = cstype.Replace ("ref ", "");
- }
- return cstype;
- }
- }
-
- public IGeneratable Generatable {
- get {
- return SymbolTable.Table[CType];
- }
- }
-
- public bool IsArray {
- get {
- return elem.HasAttribute("array") || elem.HasAttribute("null_term_array");
- }
- }
-
- public bool IsEllipsis {
- get {
- return elem.HasAttribute("ellipsis");
- }
- }
-
- bool is_count;
- bool is_count_set;
- public bool IsCount {
- get {
- if (is_count_set)
- return is_count;
-
- if (Name.StartsWith("n_"))
- switch (CSType) {
- case "int":
- case "uint":
- case "long":
- case "ulong":
- case "short":
- case "ushort":
- return true;
- default:
- return false;
- }
- else
- return false;
- }
- set {
- is_count_set = true;
- is_count = value;
- }
- }
-
- public bool IsDestroyNotify {
- get {
- return CType == "GDestroyNotify";
- }
- }
-
- public bool IsLength {
- get {
- if (Name.EndsWith("len") || Name.EndsWith("length"))
- switch (CSType) {
- case "int":
- case "uint":
- case "long":
- case "ulong":
- case "short":
- case "ushort":
- return true;
- default:
- return false;
- }
- else
- return false;
- }
- }
-
- public bool IsParams {
- get {
- return elem.HasAttribute("params");
- }
- }
-
- public bool IsString {
- get {
- return (CSType == "string");
- }
- }
-
- public bool IsUserData {
- get {
- return CSType == "IntPtr" && (Name.EndsWith ("data") || Name.EndsWith ("data_or_owner"));
- }
- }
-
- public virtual string MarshalType {
- get {
- string type = SymbolTable.Table.GetMarshalType( elem.GetAttribute("type"));
- if (type == "void" || Generatable is IManualMarshaler)
- type = "IntPtr";
- if (IsArray) {
- type += "[]";
- type = type.Replace ("ref ", "");
- }
- return type;
- }
- }
-
- public string Name {
- get {
- return SymbolTable.Table.MangleName (elem.GetAttribute("name"));
- }
- }
-
- public bool Owned {
- get {
- return elem.GetAttribute ("owned") == "true";
- }
- }
-
- public virtual string NativeSignature {
- get {
- string sig = MarshalType + " " + Name;
- if (PassAs != String.Empty)
- sig = PassAs + " " + sig;
- return sig;
- }
- }
-
- public string PropertyName {
- get {
- return elem.GetAttribute("property_name");
- }
- }
-
- string pass_as;
-
- public string PassAs {
- get {
- if (pass_as != null)
- return pass_as;
-
- if (elem.HasAttribute ("pass_as"))
- return elem.GetAttribute ("pass_as");
-
- if (IsArray || CSType.EndsWith ("IntPtr"))
- return "";
-
- if (CType.EndsWith ("*") && (Generatable is SimpleGen || Generatable is EnumGen))
- return "out";
-
- return "";
- }
- set {
- pass_as = value;
- }
- }
-
- string scope;
- public string Scope {
- get {
- if (scope == null)
- scope = elem.GetAttribute ("scope");
- return scope;
- }
- set {
- scope = value;
- }
- }
-
- public virtual string[] Prepare {
- get {
- IGeneratable gen = Generatable;
- if (gen is IManualMarshaler) {
- string result = "IntPtr native_" + CallName;
- if (PassAs != "out")
- result += " = " + (gen as IManualMarshaler).AllocNative (CallName);
- return new string [] { result + ";" };
- } else if (PassAs == "out" && CSType != MarshalType) {
- return new string [] { gen.MarshalType + " native_" + CallName + ";" };
- } else if (PassAs == "ref" && CSType != MarshalType) {
- return new string [] { gen.MarshalType + " native_" + CallName + " = (" + gen.MarshalType + ") " + CallName + ";" };
- }
-
- return new string [0];
- }
- }
-
- public virtual string CallString {
- get {
- string call_parm;
-
- IGeneratable gen = Generatable;
- if (gen is CallbackGen)
- return SymbolTable.Table.CallByName (CType, CallName + "_wrapper");
- else if (PassAs != String.Empty) {
- call_parm = PassAs + " ";
- if (CSType != MarshalType)
- call_parm += "native_";
- call_parm += CallName;
- } else if (gen is IManualMarshaler)
- call_parm = "native_" + CallName;
- else if (gen is ObjectBase)
- call_parm = (gen as ObjectBase).CallByName (CallName, Owned);
- else
- call_parm = gen.CallByName (CallName);
-
- return call_parm;
- }
- }
-
- public virtual string[] Finish {
- get {
- IGeneratable gen = Generatable;
- if (gen is IManualMarshaler) {
- string[] result = new string [PassAs == "ref" ? 2 : 1];
- int i = 0;
- if (PassAs != String.Empty)
- result [i++] = CallName + " = " + Generatable.FromNative ("native_" + CallName) + ";";
- if (PassAs != "out")
- result [i] = (gen as IManualMarshaler).ReleaseNative ("native_" + CallName) + ";";
- return result;
- } else if (PassAs != String.Empty && MarshalType != CSType)
- if (gen is IOwnable)
- return new string [] { CallName + " = " + (gen as IOwnable).FromNative ("native_" + CallName, Owned) + ";" };
- else
- return new string [] { CallName + " = " + gen.FromNative ("native_" + CallName) + ";" };
- return new string [0];
- }
- }
-
- public string FromNative (string var)
- {
- if (Generatable == null)
- return String.Empty;
- else if (Generatable is IOwnable)
- return ((IOwnable)Generatable).FromNative (var, Owned);
- else
- return Generatable.FromNative (var);
- }
-
- public string StudlyName {
- get {
- string name = elem.GetAttribute("name");
- string[] segs = name.Split('_');
- string studly = "";
- foreach (string s in segs) {
- if (s.Trim () == "")
- continue;
- studly += (s.Substring(0,1).ToUpper() + s.Substring(1));
- }
- return studly;
-
- }
- }
- }
-
- public class ArrayParameter : Parameter {
-
- bool null_terminated;
-
- public ArrayParameter (XmlElement elem) : base (elem)
- {
- null_terminated = elem.HasAttribute ("null_term_array");
- }
-
- public override string MarshalType {
- get {
- if (Generatable is StructBase)
- return CSType;
- else
- return base.MarshalType;
- }
- }
-
- bool NullTerminated {
- get {
- return null_terminated;
- }
- }
-
- public override string[] Prepare {
- get {
- if (CSType == MarshalType)
- return new string [0];
-
- ArrayList result = new ArrayList ();
- result.Add (String.Format ("int cnt_{0} = {0} == null ? 0 : {0}.Length;", CallName));
- result.Add (String.Format ("{0}[] native_{1} = new {0} [cnt_{1}" + (NullTerminated ? " + 1" : "") + "];", MarshalType.TrimEnd('[', ']'), CallName));
- result.Add (String.Format ("for (int i = 0; i < cnt_{0}; i++)", CallName));
- IGeneratable gen = Generatable;
- if (gen is IManualMarshaler)
- result.Add (String.Format ("\tnative_{0} [i] = {1};", CallName, (gen as IManualMarshaler).AllocNative (CallName + "[i]")));
- else
- result.Add (String.Format ("\tnative_{0} [i] = {1};", CallName, gen.CallByName (CallName + "[i]")));
-
- if (NullTerminated)
- result.Add (String.Format ("native_{0} [cnt_{0}] = IntPtr.Zero;", CallName));
- return (string[]) result.ToArray (typeof (string));
- }
- }
-
- public override string CallString {
- get {
- if (CSType != MarshalType)
- return "native_" + CallName;
- else
- return CallName;
- }
- }
-
- public override string[] Finish {
- get {
- if (CSType == MarshalType)
- return new string [0];
-
- IGeneratable gen = Generatable;
- if (gen is IManualMarshaler) {
- string [] result = new string [4];
- result [0] = "for (int i = 0; i < native_" + CallName + ".Length" + (NullTerminated ? " - 1" : "") + "; i++) {";
- result [1] = "\t" + CallName + " [i] = " + Generatable.FromNative ("native_" + CallName + "[i]") + ";";
- result [2] = "\t" + (gen as IManualMarshaler).ReleaseNative ("native_" + CallName + "[i]") + ";";
- result [3] = "}";
- return result;
- }
-
- return new string [0];
- }
- }
- }
-
- public class ArrayCountPair : ArrayParameter {
-
- XmlElement count_elem;
- bool invert;
-
- public ArrayCountPair (XmlElement array_elem, XmlElement count_elem, bool invert) : base (array_elem)
- {
- this.count_elem = count_elem;
- this.invert = invert;
- }
-
- string CountNativeType {
- get {
- return SymbolTable.Table.GetMarshalType(count_elem.GetAttribute("type"));
- }
- }
-
- string CountType {
- get {
- return SymbolTable.Table.GetCSType(count_elem.GetAttribute("type"));
- }
- }
-
- string CountCast {
- get {
- if (CountType == "int")
- return String.Empty;
- else
- return "(" + CountType + ") ";
- }
- }
-
- string CountName {
- get {
- return SymbolTable.Table.MangleName (count_elem.GetAttribute("name"));
- }
- }
-
- string CallCount (string name)
- {
- string result = CountCast + "(" + name + " == null ? 0 : " + name + ".Length)";
- IGeneratable gen = SymbolTable.Table[count_elem.GetAttribute("type")];
- return gen.CallByName (result);
- }
-
- public override string CallString {
- get {
- if (invert)
- return CallCount (CallName) + ", " + base.CallString;
- else
- return base.CallString + ", " + CallCount (CallName);
- }
- }
-
- public override string NativeSignature {
- get {
- if (invert)
- return CountNativeType + " " + CountName + ", " + MarshalType + " " + Name;
- else
- return MarshalType + " " + Name + ", " + CountNativeType + " " + CountName;
- }
- }
- }
-
- public class ErrorParameter : Parameter {
-
- public ErrorParameter (XmlElement elem) : base (elem)
- {
- PassAs = "out";
- }
-
- public override string CallString {
- get {
- return "out error";
- }
- }
- }
-
- public class StructParameter : Parameter {
-
- public StructParameter (XmlElement elem) : base (elem) {}
-
- public override string MarshalType {
- get {
- return "IntPtr";
- }
- }
-
- public override string[] Prepare {
- get {
- if (PassAs == "out")
- return new string [] { "IntPtr native_" + CallName + " = Marshal.AllocHGlobal (Marshal.SizeOf (typeof (" + Generatable.QualifiedName + ")));"};
- else
- return new string [] { "IntPtr native_" + CallName + " = " + (Generatable as IManualMarshaler).AllocNative (CallName) + ";"};
- }
- }
-
- public override string CallString {
- get {
- return "native_" + CallName;
- }
- }
-
- public override string[] Finish {
- get {
- string[] result = new string [2];
- result [0] = CallName + " = " + FromNative ("native_" + CallName) + ";";
- result [1] = (Generatable as IManualMarshaler).ReleaseNative ("native_" + CallName) + ";";
- return result;
- }
- }
-
- public override string NativeSignature {
- get {
- return "IntPtr " + CallName;
- }
- }
- }
-
- public class Parameters : IEnumerable {
-
- ArrayList param_list = new ArrayList ();
- XmlElement elem;
- bool first_is_instance;
-
- public Parameters (XmlElement elem) : this (elem, false) { }
-
- public Parameters (XmlElement elem, bool first_is_instance)
- {
- if (elem == null)
- valid = true;
- this.elem = elem;
- this.first_is_instance = first_is_instance;
- if (first_is_instance)
- is_static = false;
- }
-
- public int Count {
- get { return param_list.Count; }
- }
-
- public int VisibleCount {
- get {
- int visible = 0;
- foreach (Parameter p in this) {
- if (!IsHidden (p))
- visible++;
- }
- return visible;
- }
- }
-
- public Parameter this [int idx] {
- get {
- return param_list [idx] as Parameter;
- }
- }
-
- public bool IsHidden (Parameter p)
- {
- int idx = param_list.IndexOf (p);
-
- if (idx > 0 && p.IsLength && p.PassAs == String.Empty && this [idx - 1].IsString)
- return true;
-
- if (p.IsCount)
- return true;
-
- if (p.CType == "GError**")
- return true;
-
- if (HasCB || HideData) {
- if (p.IsUserData && (idx == Count - 1))
- return true;
- if (p.IsUserData && (idx == Count - 2) && this [Count - 1] is ErrorParameter)
- return true;
- if (p.IsUserData && idx > 0 &&
- this [idx - 1].Generatable is CallbackGen)
- return true;
- if (p.IsDestroyNotify && (idx == Count - 1) &&
- this [idx - 1].IsUserData)
- return true;
- }
-
- return false;
- }
-
- bool has_cb;
- public bool HasCB {
- get { return has_cb; }
- set { has_cb = value; }
- }
-
- public bool HasOutParam {
- get {
- foreach (Parameter p in this)
- if (p.PassAs == "out")
- return true;
- return false;
- }
- }
-
- bool hide_data;
- public bool HideData {
- get { return hide_data; }
- set { hide_data = value; }
- }
-
- bool is_static;
- public bool Static {
- get { return is_static; }
- set { is_static = value; }
- }
-
- public Parameter GetCountParameter (string param_name)
- {
- foreach (Parameter p in this)
- if (p.Name == param_name) {
- p.IsCount = true;
- return p;
- }
- return null;
- }
-
- void Clear ()
- {
- elem = null;
- param_list.Clear ();
- param_list = null;
- }
-
- public IEnumerator GetEnumerator ()
- {
- return param_list.GetEnumerator ();
- }
-
- bool valid = false;
-
- public bool Validate (LogWriter log)
- {
- if (valid)
- return true;
-
- if (elem == null)
- return false;
-
- for (int i = first_is_instance ? 1 : 0; i < elem.ChildNodes.Count; i++) {
- XmlElement parm = elem.ChildNodes [i] as XmlElement;
- if (parm == null || parm.Name != "parameter")
- continue;
- Parameter p = new Parameter (parm);
-
- if (p.IsEllipsis) {
- log.Warn ("Ellipsis parameter: hide and bind manually if no alternative exists. ");
- Clear ();
- return false;
- }
-
- if ((p.CSType == "") || (p.Name == "") ||
- (p.MarshalType == "") || (SymbolTable.Table.CallByName(p.CType, p.Name) == "")) {
- log.Warn ("Unknown type {1} on parameter {0}", p.Name, p.CType);
- Clear ();
- return false;
- }
-
- IGeneratable gen = p.Generatable;
-
- if (p.IsArray) {
- p = new ArrayParameter (parm);
- if (i < elem.ChildNodes.Count - 1) {
- XmlElement next = elem.ChildNodes [i + 1] as XmlElement;
- if (next != null || next.Name == "parameter") {
- Parameter c = new Parameter (next);
- if (c.IsCount) {
- p = new ArrayCountPair (parm, next, false);
- i++;
- }
- }
- }
- } else if (p.IsCount) {
- p.IsCount = false;
- if (i < elem.ChildNodes.Count - 1) {
- XmlElement next = elem.ChildNodes [i + 1] as XmlElement;
- if (next != null || next.Name == "parameter") {
- Parameter a = new Parameter (next);
- if (a.IsArray) {
- p = new ArrayCountPair (next, parm, true);
- i++;
- }
- }
- }
- } else if (p.CType == "GError**")
- p = new ErrorParameter (parm);
- else if (gen is StructBase || gen is ByRefGen) {
- p = new StructParameter (parm);
- } else if (gen is CallbackGen) {
- has_cb = true;
- }
- param_list.Add (p);
- }
-
- if (has_cb && Count > 2 && this [Count - 3].Generatable is CallbackGen && this [Count - 2].IsUserData && this [Count - 1].IsDestroyNotify)
- this [Count - 3].Scope = "notified";
-
- valid = true;
- return true;
- }
-
- public bool IsAccessor {
- get {
- return VisibleCount == 1 && AccessorParam.PassAs == "out";
- }
- }
-
- public Parameter AccessorParam {
- get {
- foreach (Parameter p in this) {
- if (!IsHidden (p))
- return p;
- }
- return null;
- }
- }
-
- public string AccessorReturnType {
- get {
- Parameter p = AccessorParam;
- if (p != null)
- return p.CSType;
- else
- return null;
- }
- }
-
- public string AccessorName {
- get {
- Parameter p = AccessorParam;
- if (p != null)
- return p.Name;
- else
- return null;
- }
- }
-
- public string ImportSignature {
- get {
- if (Count == 0)
- return String.Empty;
-
- string[] result = new string [Count];
- for (int i = 0; i < Count; i++)
- result [i] = this [i].NativeSignature;
-
- return String.Join (", ", result);
- }
- }
- }
-}
-
+// GtkSharp.Generation.Parameters.cs - The Parameters Generation Class.
+//
+// Author: Mike Kestner <mkestner@speakeasy.net>
+//
+// Copyright (c) 2001-2003 Mike Kestner
+// Copyright (c) 2004 Novell, Inc.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of version 2 of the 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
+// General Public License for more details.
+//
+// You should have received a copy of the GNU 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 GtkSharp.Generation {
+
+ using System;
+ using System.Collections;
+ using System.Collections.Generic;
+ using System.Xml;
+
+ public class Parameters : IEnumerable<Parameter> {
+
+ IList<Parameter> param_list = new List<Parameter> ();
+ XmlElement elem;
+ bool first_is_instance;
+
+ public Parameters (XmlElement elem) : this (elem, false) { }
+
+ public Parameters (XmlElement elem, bool first_is_instance)
+ {
+ if (elem == null)
+ valid = true;
+ this.elem = elem;
+ this.first_is_instance = first_is_instance;
+ if (first_is_instance)
+ is_static = false;
+ }
+
+ public int Count {
+ get { return param_list.Count; }
+ }
+
+ public int VisibleCount {
+ get {
+ int visible = 0;
+ foreach (Parameter p in this) {
+ if (!IsHidden (p))
+ visible++;
+ }
+ return visible;
+ }
+ }
+
+ public Parameter this [int idx] {
+ get {
+ return param_list [idx];
+ }
+ }
+
+ public bool IsHidden (Parameter p)
+ {
+ int idx = param_list.IndexOf (p);
+
+ if (idx > 0 && p.IsLength && p.PassAs == String.Empty && this [idx - 1].IsString)
+ return true;
+
+ if (p.IsCount)
+ return true;
+
+ if (p.CType == "GError**")
+ return true;
+
+ if (HasCB || HideData) {
+ if (p.IsUserData && (idx == Count - 1))
+ return true;
+ if (p.IsUserData && (idx == Count - 2) && this [Count - 1] is ErrorParameter)
+ return true;
+ if (p.IsUserData && idx > 0 &&
+ this [idx - 1].Generatable is CallbackGen)
+ return true;
+ if (p.IsDestroyNotify && (idx == Count - 1) &&
+ this [idx - 1].IsUserData)
+ return true;
+ }
+
+ return false;
+ }
+
+ bool has_cb;
+ public bool HasCB {
+ get { return has_cb; }
+ set { has_cb = value; }
+ }
+
+ public bool HasOutParam {
+ get {
+ foreach (Parameter p in this)
+ if (p.PassAs == "out")
+ return true;
+ return false;
+ }
+ }
+
+ bool hide_data;
+ public bool HideData {
+ get { return hide_data; }
+ set { hide_data = value; }
+ }
+
+ bool is_static;
+ public bool Static {
+ get { return is_static; }
+ set { is_static = value; }
+ }
+
+ public Parameter GetCountParameter (string param_name)
+ {
+ foreach (Parameter p in this)
+ if (p.Name == param_name) {
+ p.IsCount = true;
+ return p;
+ }
+ return null;
+ }
+
+ void Clear ()
+ {
+ elem = null;
+ param_list.Clear ();
+ param_list = null;
+ }
+
+ public IEnumerator<Parameter> GetEnumerator ()
+ {
+ return param_list.GetEnumerator ();
+ }
+
+ IEnumerator IEnumerable.GetEnumerator ()
+ {
+ return GetEnumerator ();
+ }
+
+ bool valid = false;
+
+ public bool Validate (LogWriter log)
+ {
+ if (valid)
+ return true;
+
+ if (elem == null)
+ return false;
+
+ for (int i = first_is_instance ? 1 : 0; i < elem.ChildNodes.Count; i++) {
+ XmlElement parm = elem.ChildNodes [i] as XmlElement;
+ if (parm == null || parm.Name != "parameter")
+ continue;
+ Parameter p = new Parameter (parm);
+
+ if (p.IsEllipsis) {
+ log.Warn ("Ellipsis parameter: hide and bind manually if no alternative exists. ");
+ Clear ();
+ return false;
+ }
+
+ if ((p.CSType == "") || (p.Name == "") ||
+ (p.MarshalType == "") || (SymbolTable.Table.CallByName(p.CType, p.Name) == "")) {
+ log.Warn ("Unknown type {1} on parameter {0}", p.Name, p.CType);
+ Clear ();
+ return false;
+ }
+
+ IGeneratable gen = p.Generatable;
+
+ if (p.IsArray) {
+ p = new ArrayParameter (parm);
+ if (i < elem.ChildNodes.Count - 1) {
+ XmlElement next = elem.ChildNodes [i + 1] as XmlElement;
+ if (next != null || next.Name == "parameter") {
+ Parameter c = new Parameter (next);
+ if (c.IsCount) {
+ p = new ArrayCountPair (parm, next, false);
+ i++;
+ }
+ }
+ }
+ } else if (p.IsCount) {
+ p.IsCount = false;
+ if (i < elem.ChildNodes.Count - 1) {
+ XmlElement next = elem.ChildNodes [i + 1] as XmlElement;
+ if (next != null || next.Name == "parameter") {
+ Parameter a = new Parameter (next);
+ if (a.IsArray) {
+ p = new ArrayCountPair (next, parm, true);
+ i++;
+ }
+ }
+ }
+ } else if (p.CType == "GError**")
+ p = new ErrorParameter (parm);
+ else if (gen is StructBase || gen is ByRefGen) {
+ p = new StructParameter (parm);
+ } else if (gen is CallbackGen) {
+ has_cb = true;
+ }
+ param_list.Add (p);
+ }
+
+ if (has_cb && Count > 2 && this [Count - 3].Generatable is CallbackGen && this [Count - 2].IsUserData && this [Count - 1].IsDestroyNotify)
+ this [Count - 3].Scope = "notified";
+
+ valid = true;
+ return true;
+ }
+
+ public bool IsAccessor {
+ get {
+ return VisibleCount == 1 && AccessorParam.PassAs == "out";
+ }
+ }
+
+ public Parameter AccessorParam {
+ get {
+ foreach (Parameter p in this) {
+ if (!IsHidden (p))
+ return p;
+ }
+ return null;
+ }
+ }
+
+ public string AccessorReturnType {
+ get {
+ Parameter p = AccessorParam;
+ if (p != null)
+ return p.CSType;
+ else
+ return null;
+ }
+ }
+
+ public string AccessorName {
+ get {
+ Parameter p = AccessorParam;
+ if (p != null)
+ return p.Name;
+ else
+ return null;
+ }
+ }
+
+ public string ImportSignature {
+ get {
+ if (Count == 0)
+ return String.Empty;
+
+ string[] result = new string [Count];
+ for (int i = 0; i < Count; i++)
+ result [i] = this [i].NativeSignature;
+
+ return String.Join (", ", result);
+ }
+ }
+ }
+}
diff --git a/generator/Parser.cs b/generator/Parser.cs
index 99581fc..2f0ba6c 100644
--- a/generator/Parser.cs
+++ b/generator/Parser.cs
@@ -1,189 +1,194 @@
-// GtkSharp.Generation.Parser.cs - The XML Parsing engine.
-//
-// Author: Mike Kestner <mkestner@speakeasy.net>
-//
-// Copyright (c) 2001-2003 Mike Kestner
-// Copyright (c) 2003 Ximian Inc.
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of version 2 of the 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
-// General Public License for more details.
-//
-// You should have received a copy of the GNU 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 GtkSharp.Generation {
-
- using System;
- using System.Collections;
- using System.IO;
- using System.Xml;
-
- public class Parser {
- const int curr_parser_version = 2;
-
- private XmlDocument Load (string filename)
- {
- XmlDocument doc = new XmlDocument ();
-
- try {
- Stream stream = File.OpenRead (filename);
- doc.Load (stream);
- stream.Close ();
- } catch (XmlException e) {
- Console.WriteLine ("Invalid XML file.");
- Console.WriteLine (e);
- doc = null;
- }
-
- return doc;
- }
-
- public IGeneratable[] Parse (string filename)
- {
- XmlDocument doc = Load (filename);
- if (doc == null)
- return null;
-
- XmlElement root = doc.DocumentElement;
-
- if ((root == null) || !root.HasChildNodes) {
- Console.WriteLine ("No Namespaces found.");
- return null;
- }
-
- int parser_version;
- if (root.HasAttribute ("parser_version")) {
- try {
- parser_version = int.Parse (root.GetAttribute ("parser_version"));
- } catch {
- Console.WriteLine ("ERROR: Unable to parse parser_version attribute value \"{0}\" to a number. Input file {1} will be ignored", root.GetAttribute ("parser_version"), filename);
- return null;
- }
- } else
- parser_version = 1;
-
- if (parser_version > curr_parser_version)
- Console.WriteLine ("WARNING: The input file {0} was created by a parser that was released after this version of the generator. Consider updating the code generator if you experience problems.", filename);
-
- ArrayList gens = new ArrayList ();
-
- foreach (XmlNode child in root.ChildNodes) {
- XmlElement elem = child as XmlElement;
- if (elem == null)
- continue;
-
- switch (child.Name) {
- case "namespace":
- gens.AddRange (ParseNamespace (elem));
- break;
- case "symbol":
- gens.Add (ParseSymbol (elem));
- break;
- default:
- Console.WriteLine ("Parser::Parse - Unexpected child node: " + child.Name);
- break;
- }
- }
-
- return (IGeneratable[]) gens.ToArray (typeof (IGeneratable));
- }
-
- private ArrayList ParseNamespace (XmlElement ns)
- {
- ArrayList result = new ArrayList ();
-
- foreach (XmlNode def in ns.ChildNodes) {
-
- XmlElement elem = def as XmlElement;
- if (elem == null)
- continue;
-
- if (elem.HasAttribute("hidden"))
- continue;
-
- bool is_opaque = false;
- if (elem.GetAttribute ("opaque") == "true" ||
- elem.GetAttribute ("opaque") == "1")
- is_opaque = true;
-
- switch (def.Name) {
- case "alias":
- string aname = elem.GetAttribute("cname");
- string atype = elem.GetAttribute("type");
- if ((aname == "") || (atype == ""))
- continue;
- result.Add (new AliasGen (aname, atype));
- break;
- case "boxed":
- result.Add (is_opaque ? new OpaqueGen (ns, elem) as object : new BoxedGen (ns, elem) as object);
- break;
- case "callback":
- result.Add (new CallbackGen (ns, elem));
- break;
- case "enum":
- result.Add (new EnumGen (ns, elem));
- break;
- case "interface":
- result.Add (new InterfaceGen (ns, elem));
- break;
- case "object":
- result.Add (new ObjectGen (ns, elem));
- break;
- case "class":
- result.Add (new ClassGen (ns, elem));
- break;
- case "struct":
- result.Add (is_opaque ? new OpaqueGen (ns, elem) as object : new StructGen (ns, elem) as object);
- break;
- default:
- Console.WriteLine ("Parser::ParseNamespace - Unexpected node: " + def.Name);
- break;
- }
- }
-
- return result;
- }
-
- private IGeneratable ParseSymbol (XmlElement symbol)
- {
- string type = symbol.GetAttribute ("type");
- string cname = symbol.GetAttribute ("cname");
- string name = symbol.GetAttribute ("name");
- IGeneratable result = null;
-
- if (type == "simple") {
- if (symbol.HasAttribute ("default_value"))
- result = new SimpleGen (cname, name, symbol.GetAttribute ("default_value"));
- else {
- Console.WriteLine ("Simple type element " + cname + " has no specified default value");
- result = new SimpleGen (cname, name, String.Empty);
- }
- } else if (type == "manual")
- result = new ManualGen (cname, name);
- else if (type == "ownable")
- result = new OwnableGen (cname, name);
- else if (type == "alias")
- result = new AliasGen (cname, name);
- else if (type == "marshal") {
- string mtype = symbol.GetAttribute ("marshal_type");
- string call = symbol.GetAttribute ("call_fmt");
- string from = symbol.GetAttribute ("from_fmt");
- result = new MarshalGen (cname, name, mtype, call, from);
- } else if (type == "struct") {
- result = new ByRefGen (symbol.GetAttribute ("cname"), symbol.GetAttribute ("name"));
- } else
- Console.WriteLine ("Parser::ParseSymbol - Unexpected symbol type " + type);
-
- return result;
- }
- }
-}
+// GtkSharp.Generation.Parser.cs - The XML Parsing engine.
+//
+// Author: Mike Kestner <mkestner@speakeasy.net>
+//
+// Copyright (c) 2001-2003 Mike Kestner
+// Copyright (c) 2003 Ximian Inc.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of version 2 of the 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
+// General Public License for more details.
+//
+// You should have received a copy of the GNU 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 GtkSharp.Generation {
+
+ using System;
+ using System.Collections.Generic;
+ using System.IO;
+ using System.Xml;
+
+ public class Parser {
+ const int curr_parser_version = 2;
+
+ private XmlDocument Load (string filename)
+ {
+ XmlDocument doc = new XmlDocument ();
+
+ try {
+ Stream stream = File.OpenRead (filename);
+ doc.Load (stream);
+ stream.Close ();
+ } catch (XmlException e) {
+ Console.WriteLine ("Invalid XML file.");
+ Console.WriteLine (e);
+ doc = null;
+ }
+
+ return doc;
+ }
+
+ public IGeneratable[] Parse (string filename)
+ {
+ XmlDocument doc = Load (filename);
+ if (doc == null)
+ return null;
+
+ XmlElement root = doc.DocumentElement;
+
+ if ((root == null) || !root.HasChildNodes) {
+ Console.WriteLine ("No Namespaces found.");
+ return null;
+ }
+
+ int parser_version;
+ if (root.HasAttribute ("parser_version")) {
+ try {
+ parser_version = int.Parse (root.GetAttribute ("parser_version"));
+ } catch {
+ Console.WriteLine ("ERROR: Unable to parse parser_version attribute value \"{0}\" to a number. Input file {1} will be ignored", root.GetAttribute ("parser_version"), filename);
+ return null;
+ }
+ } else
+ parser_version = 1;
+
+ if (parser_version > curr_parser_version)
+ Console.WriteLine ("WARNING: The input file {0} was created by a parser that was released after this version of the generator. Consider updating the code generator if you experience problems.", filename);
+
+ var gens = new List<IGeneratable> ();
+
+ foreach (XmlNode child in root.ChildNodes) {
+ XmlElement elem = child as XmlElement;
+ if (elem == null)
+ continue;
+
+ switch (child.Name) {
+ case "namespace":
+ gens.AddRange (ParseNamespace (elem));
+ break;
+ case "symbol":
+ gens.Add (ParseSymbol (elem));
+ break;
+ default:
+ Console.WriteLine ("Parser::Parse - Unexpected child node: " + child.Name);
+ break;
+ }
+ }
+
+ return gens.ToArray ();
+ }
+
+ private IList<IGeneratable> ParseNamespace (XmlElement ns)
+ {
+ var result = new List<IGeneratable> ();
+
+ foreach (XmlNode def in ns.ChildNodes) {
+
+ XmlElement elem = def as XmlElement;
+ if (elem == null)
+ continue;
+
+ if (elem.GetAttributeAsBoolean ("hidden"))
+ continue;
+
+ bool is_opaque = elem.GetAttributeAsBoolean ("opaque");
+
+ switch (def.Name) {
+ case "alias":
+ string aname = elem.GetAttribute("cname");
+ string atype = elem.GetAttribute("type");
+ if ((aname == "") || (atype == ""))
+ continue;
+ result.Add (new AliasGen (aname, atype));
+ break;
+ case "boxed":
+ if (is_opaque) {
+ result.Add (new OpaqueGen (ns, elem));
+ } else {
+ result.Add (new BoxedGen (ns, elem));
+ }
+ break;
+ case "callback":
+ result.Add (new CallbackGen (ns, elem));
+ break;
+ case "enum":
+ result.Add (new EnumGen (ns, elem));
+ break;
+ case "interface":
+ result.Add (new InterfaceGen (ns, elem));
+ break;
+ case "object":
+ result.Add (new ObjectGen (ns, elem));
+ break;
+ case "class":
+ result.Add (new ClassGen (ns, elem));
+ break;
+ case "struct":
+ if (is_opaque) {
+ result.Add (new OpaqueGen (ns, elem));
+ } else {
+ result.Add (new StructGen (ns, elem));
+ }
+ break;
+ default:
+ Console.WriteLine ("Parser::ParseNamespace - Unexpected node: " + def.Name);
+ break;
+ }
+ }
+
+ return result;
+ }
+
+ private IGeneratable ParseSymbol (XmlElement symbol)
+ {
+ string type = symbol.GetAttribute ("type");
+ string cname = symbol.GetAttribute ("cname");
+ string name = symbol.GetAttribute ("name");
+ IGeneratable result = null;
+
+ if (type == "simple") {
+ if (symbol.HasAttribute ("default_value"))
+ result = new SimpleGen (cname, name, symbol.GetAttribute ("default_value"));
+ else {
+ Console.WriteLine ("Simple type element " + cname + " has no specified default value");
+ result = new SimpleGen (cname, name, String.Empty);
+ }
+ } else if (type == "manual")
+ result = new ManualGen (cname, name);
+ else if (type == "ownable")
+ result = new OwnableGen (cname, name);
+ else if (type == "alias")
+ result = new AliasGen (cname, name);
+ else if (type == "marshal") {
+ string mtype = symbol.GetAttribute ("marshal_type");
+ string call = symbol.GetAttribute ("call_fmt");
+ string from = symbol.GetAttribute ("from_fmt");
+ result = new MarshalGen (cname, name, mtype, call, from);
+ } else if (type == "struct") {
+ result = new ByRefGen (symbol.GetAttribute ("cname"), symbol.GetAttribute ("name"));
+ } else
+ Console.WriteLine ("Parser::ParseSymbol - Unexpected symbol type " + type);
+
+ return result;
+ }
+ }
+}
diff --git a/generator/Property.cs b/generator/Property.cs
index 91dd066..4555b1d 100644
--- a/generator/Property.cs
+++ b/generator/Property.cs
@@ -1,194 +1,193 @@
-// GtkSharp.Generation.Property.cs - The Property Generatable.
-//
-// Author: Mike Kestner <mkestner@speakeasy.net>
-//
-// Copyright (c) 2001-2003 Mike Kestner
-// Copyright (c) 2004 Novell, Inc.
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of version 2 of the 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
-// General Public License for more details.
-//
-// You should have received a copy of the GNU 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 GtkSharp.Generation {
-
- using System;
- using System.Collections;
- using System.IO;
- using System.Xml;
-
- public class Property : PropertyBase {
-
- public Property (XmlElement elem, ClassBase container_type) : base (elem, container_type) {}
-
- public bool Validate (LogWriter log)
- {
- if (CSType == "" && !Hidden) {
- log.Member = Name;
- log.Warn ("property has unknown type '{0}' ", CType);
- Statistics.ThrottledCount++;
- return false;
- }
-
- return true;
- }
-
- bool Readable {
- get {
- return elem.GetAttribute ("readable") == "true";
- }
- }
-
- bool Writable {
- get {
- return elem.GetAttribute ("writeable") == "true" &&
- !elem.HasAttribute ("construct-only");
- }
- }
-
- bool IsDeprecated {
- get {
- return !container_type.IsDeprecated &&
- (elem.GetAttribute ("deprecated") == "1" ||
- elem.GetAttribute ("deprecated") == "true");
- }
- }
-
- protected virtual string PropertyAttribute (string qpname) {
- return "[GLib.Property (" + qpname + ")]";
- }
-
- protected virtual string RawGetter (string qpname) {
- return "GetProperty (" + qpname + ")";
- }
-
- protected virtual string RawSetter (string qpname) {
- return "SetProperty(" + qpname + ", val)";
- }
-
- public void GenerateDecl (StreamWriter sw, string indent)
- {
- if (Hidden || (!Readable && !Writable))
- return;
-
- string name = Name;
- if (name == container_type.Name)
- name += "Prop";
-
- sw.WriteLine (indent + CSType + " " + name + " {");
- sw.Write (indent + "\t");
- if (Readable || Getter != null)
- sw.Write ("get; ");
- if (Writable || Setter != null)
- sw.Write ("set;");
- sw.WriteLine ();
- sw.WriteLine (indent + "}");
- }
-
- public void Generate (GenerationInfo gen_info, string indent, ClassBase implementor)
- {
- SymbolTable table = SymbolTable.Table;
- StreamWriter sw = gen_info.Writer;
-
- if (Hidden || (!Readable && !Writable))
- return;
-
- string modifiers = "";
-
- if (IsNew || (container_type.Parent != null && container_type.Parent.GetPropertyRecursively (Name) != null))
- modifiers = "new ";
- else if (implementor != null && implementor.Parent != null && implementor.Parent.GetPropertyRecursively (Name) != null)
- modifiers = "new ";
-
- string name = Name;
- if (name == container_type.Name) {
- name += "Prop";
- }
- string qpname = "\"" + CName + "\"";
-
- string v_type = "";
- if (table.IsInterface (CType)) {
- v_type = "(GLib.Object)";
- } else if (table.IsOpaque (CType)) {
- v_type = "(GLib.Opaque)";
- } else if (table.IsEnum (CType)) {
- v_type = "(Enum)";
- }
-
- GenerateImports (gen_info, indent);
-
- if (IsDeprecated ||
- (Getter != null && Getter.IsDeprecated) ||
- (Setter != null && Setter.IsDeprecated))
- sw.WriteLine (indent + "[Obsolete]");
- sw.WriteLine (indent + PropertyAttribute (qpname));
- sw.WriteLine (indent + "public " + modifiers + CSType + " " + name + " {");
- indent += "\t";
-
- if (Getter != null) {
- sw.Write(indent + "get ");
- Getter.GenerateBody(gen_info, implementor, "\t");
- sw.WriteLine();
- } else if (Readable) {
- sw.WriteLine(indent + "get {");
- sw.WriteLine(indent + "\tGLib.Value val = " + RawGetter (qpname) + ";");
- if (table.IsOpaque (CType) || table.IsBoxed (CType)) {
- sw.WriteLine(indent + "\t" + CSType + " ret = (" + CSType + ") val;");
- } else if (table.IsInterface (CType)) {
- // Do we have to dispose the GLib.Object from the GLib.Value?
- sw.WriteLine (indent + "\t{0} ret = {0}Adapter.GetObject ((GLib.Object) val);", CSType);
- } else {
- sw.Write(indent + "\t" + CSType + " ret = ");
- sw.Write ("(" + CSType + ") ");
- if (v_type != "") {
- sw.Write(v_type + " ");
- }
- sw.WriteLine("val;");
- }
-
- sw.WriteLine(indent + "\tval.Dispose ();");
- sw.WriteLine(indent + "\treturn ret;");
- sw.WriteLine(indent + "}");
- }
-
- if (Setter != null) {
- sw.Write(indent + "set ");
- Setter.GenerateBody(gen_info, implementor, "\t");
- sw.WriteLine();
- } else if (Writable) {
- sw.WriteLine(indent + "set {");
- sw.Write(indent + "\tGLib.Value val = ");
- if (table.IsBoxed (CType)) {
- sw.WriteLine("(GLib.Value) value;");
- } else if (table.IsOpaque (CType)) {
- sw.WriteLine("new GLib.Value(value, \"{0}\");", CType);
- } else {
- sw.Write("new GLib.Value(");
- if (v_type != "" && !(table.IsObject (CType) || table.IsInterface (CType) || table.IsOpaque (CType))) {
- sw.Write(v_type + " ");
- }
- sw.WriteLine("value);");
- }
- sw.WriteLine(indent + "\t" + RawSetter (qpname) + ";");
- sw.WriteLine(indent + "\tval.Dispose ();");
- sw.WriteLine(indent + "}");
- }
-
- sw.WriteLine(indent.Substring (1) + "}");
- sw.WriteLine();
-
- Statistics.PropCount++;
- }
- }
-}
-
+// GtkSharp.Generation.Property.cs - The Property Generatable.
+//
+// Author: Mike Kestner <mkestner@speakeasy.net>
+//
+// Copyright (c) 2001-2003 Mike Kestner
+// Copyright (c) 2004 Novell, Inc.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of version 2 of the 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
+// General Public License for more details.
+//
+// You should have received a copy of the GNU 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 GtkSharp.Generation {
+
+ using System;
+ using System.Collections;
+ using System.IO;
+ using System.Xml;
+
+ public class Property : PropertyBase {
+
+ public Property (XmlElement elem, ClassBase container_type) : base (elem, container_type) {}
+
+ public bool Validate (LogWriter log)
+ {
+ if (CSType == "" && !Hidden) {
+ log.Member = Name;
+ log.Warn ("property has unknown type '{0}' ", CType);
+ Statistics.ThrottledCount++;
+ return false;
+ }
+
+ return true;
+ }
+
+ bool Readable {
+ get {
+ return elem.GetAttributeAsBoolean ("readable");
+ }
+ }
+
+ bool Writable {
+ get {
+ return elem.GetAttributeAsBoolean ("writeable") &&
+ !elem.GetAttributeAsBoolean ("construct-only");
+ }
+ }
+
+ bool IsDeprecated {
+ get {
+ return !container_type.IsDeprecated &&
+ elem.GetAttributeAsBoolean ("deprecated");
+ }
+ }
+
+ protected virtual string PropertyAttribute (string qpname) {
+ return "[GLib.Property (" + qpname + ")]";
+ }
+
+ protected virtual string RawGetter (string qpname) {
+ return "GetProperty (" + qpname + ")";
+ }
+
+ protected virtual string RawSetter (string qpname) {
+ return "SetProperty(" + qpname + ", val)";
+ }
+
+ public void GenerateDecl (StreamWriter sw, string indent)
+ {
+ if (Hidden || (!Readable && !Writable))
+ return;
+
+ string name = Name;
+ if (name == container_type.Name)
+ name += "Prop";
+
+ sw.WriteLine (indent + CSType + " " + name + " {");
+ sw.Write (indent + "\t");
+ if (Readable || Getter != null)
+ sw.Write ("get; ");
+ if (Writable || Setter != null)
+ sw.Write ("set;");
+ sw.WriteLine ();
+ sw.WriteLine (indent + "}");
+ }
+
+ public void Generate (GenerationInfo gen_info, string indent, ClassBase implementor)
+ {
+ SymbolTable table = SymbolTable.Table;
+ StreamWriter sw = gen_info.Writer;
+
+ if (Hidden || (!Readable && !Writable))
+ return;
+
+ string modifiers = "";
+
+ if (IsNew || (container_type.Parent != null && container_type.Parent.GetPropertyRecursively (Name) != null))
+ modifiers = "new ";
+ else if (implementor != null && implementor.Parent != null && implementor.Parent.GetPropertyRecursively (Name) != null)
+ modifiers = "new ";
+
+ string name = Name;
+ if (name == container_type.Name) {
+ name += "Prop";
+ }
+ string qpname = "\"" + CName + "\"";
+
+ string v_type = "";
+ if (table.IsInterface (CType)) {
+ v_type = "(GLib.Object)";
+ } else if (table.IsOpaque (CType)) {
+ v_type = "(GLib.Opaque)";
+ } else if (table.IsEnum (CType)) {
+ v_type = "(Enum)";
+ }
+
+ GenerateImports (gen_info, indent);
+
+ if (IsDeprecated ||
+ (Getter != null && Getter.IsDeprecated) ||
+ (Setter != null && Setter.IsDeprecated))
+ sw.WriteLine (indent + "[Obsolete]");
+ sw.WriteLine (indent + PropertyAttribute (qpname));
+ sw.WriteLine (indent + "public " + modifiers + CSType + " " + name + " {");
+ indent += "\t";
+
+ if (Getter != null) {
+ sw.Write(indent + "get ");
+ Getter.GenerateBody(gen_info, implementor, "\t");
+ sw.WriteLine();
+ } else if (Readable) {
+ sw.WriteLine(indent + "get {");
+ sw.WriteLine(indent + "\tGLib.Value val = " + RawGetter (qpname) + ";");
+ if (table.IsOpaque (CType) || table.IsBoxed (CType)) {
+ sw.WriteLine(indent + "\t" + CSType + " ret = (" + CSType + ") val;");
+ } else if (table.IsInterface (CType)) {
+ // Do we have to dispose the GLib.Object from the GLib.Value?
+ sw.WriteLine (indent + "\t{0} ret = {0}Adapter.GetObject ((GLib.Object) val);", CSType);
+ } else {
+ sw.Write(indent + "\t" + CSType + " ret = ");
+ sw.Write ("(" + CSType + ") ");
+ if (v_type != "") {
+ sw.Write(v_type + " ");
+ }
+ sw.WriteLine("val;");
+ }
+
+ sw.WriteLine(indent + "\tval.Dispose ();");
+ sw.WriteLine(indent + "\treturn ret;");
+ sw.WriteLine(indent + "}");
+ }
+
+ if (Setter != null) {
+ sw.Write(indent + "set ");
+ Setter.GenerateBody(gen_info, implementor, "\t");
+ sw.WriteLine();
+ } else if (Writable) {
+ sw.WriteLine(indent + "set {");
+ sw.Write(indent + "\tGLib.Value val = ");
+ if (table.IsBoxed (CType)) {
+ sw.WriteLine("(GLib.Value) value;");
+ } else if (table.IsOpaque (CType)) {
+ sw.WriteLine("new GLib.Value(value, \"{0}\");", CType);
+ } else {
+ sw.Write("new GLib.Value(");
+ if (v_type != "" && !(table.IsObject (CType) || table.IsInterface (CType) || table.IsOpaque (CType))) {
+ sw.Write(v_type + " ");
+ }
+ sw.WriteLine("value);");
+ }
+ sw.WriteLine(indent + "\t" + RawSetter (qpname) + ";");
+ sw.WriteLine(indent + "\tval.Dispose ();");
+ sw.WriteLine(indent + "}");
+ }
+
+ sw.WriteLine(indent.Substring (1) + "}");
+ sw.WriteLine();
+
+ Statistics.PropCount++;
+ }
+ }
+}
+
diff --git a/generator/PropertyBase.cs b/generator/PropertyBase.cs
index ef106f6..a673b71 100644
--- a/generator/PropertyBase.cs
+++ b/generator/PropertyBase.cs
@@ -74,13 +74,13 @@ namespace GtkSharp.Generation {
public bool Hidden {
get {
- return elem.HasAttribute("hidden");
+ return elem.GetAttributeAsBoolean ("hidden");
}
}
protected bool IsNew {
get {
- return elem.HasAttribute("new_flag");
+ return elem.GetAttributeAsBoolean ("new_flag");
}
}
diff --git a/generator/ReturnValue.cs b/generator/ReturnValue.cs
index 6da64f3..40d139f 100644
--- a/generator/ReturnValue.cs
+++ b/generator/ReturnValue.cs
@@ -1,189 +1,194 @@
-// GtkSharp.Generation.ReturnValue.cs - The ReturnValue Generatable.
-//
-// Author: Mike Kestner <mkestner@novell.com>
-//
-// Copyright (c) 2004-2005 Novell, Inc.
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of version 2 of the 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
-// General Public License for more details.
-//
-// You should have received a copy of the GNU 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 GtkSharp.Generation {
-
- using System;
- using System.Xml;
-
- public class ReturnValue {
-
-
- bool is_null_term;
- bool is_array;
- bool elements_owned;
- bool owned;
- string array_length_param = String.Empty;
- string ctype = String.Empty;
- string default_value = String.Empty;
- string element_ctype = String.Empty;
- Parameter count_param;
-
- public ReturnValue (XmlElement elem)
- {
- if (elem != null) {
- is_null_term = elem.HasAttribute ("null_term_array");
- is_array = elem.HasAttribute ("array") || elem.HasAttribute ("array_length_param");
- array_length_param = elem.GetAttribute ("array_length_param");
- elements_owned = elem.GetAttribute ("elements_owned") == "true";
- owned = elem.GetAttribute ("owned") == "true";
- ctype = elem.GetAttribute("type");
- default_value = elem.GetAttribute ("default_value");
- element_ctype = elem.GetAttribute ("element_type");
- }
- }
-
- public Parameter CountParameter {
- get { return count_param; }
- set { count_param = value; }
- }
-
- public string CountParameterName {
- get { return array_length_param; }
- }
-
- public string CType {
- get {
- return ctype;
- }
- }
-
- public string CSType {
- get {
- if (IGen == null)
- return String.Empty;
-
- if (ElementType != String.Empty)
- return ElementType + "[]";
-
- return IGen.QualifiedName + (is_array || is_null_term ? "[]" : String.Empty);
- }
- }
-
- public string DefaultValue {
- get {
- if (default_value != null && default_value.Length > 0)
- return default_value;
- if (IGen == null)
- return String.Empty;
- return IGen.DefaultValue;
- }
- }
-
- string ElementType {
- get {
- if (element_ctype.Length > 0)
- return SymbolTable.Table.GetCSType (element_ctype);
-
- return String.Empty;
- }
- }
-
- IGeneratable igen;
- public IGeneratable IGen {
- get {
- if (igen == null)
- igen = SymbolTable.Table [CType];
- return igen;
- }
- }
-
- public bool IsVoid {
- get {
- return CSType == "void";
- }
- }
-
- public string MarshalType {
- get {
- if (IGen == null)
- return String.Empty;
- else if (is_array || is_null_term)
- return "IntPtr";
- return IGen.MarshalType;
- }
- }
-
- public string ToNativeType {
- get {
- if (IGen == null)
- return String.Empty;
- return IGen.MarshalType + (is_array || is_null_term ? "[]" : String.Empty);
- }
- }
-
- public string FromNative (string var)
- {
- if (IGen == null)
- return String.Empty;
-
- if (ElementType != String.Empty) {
- string args = (owned ? "true" : "false") + ", " + (elements_owned ? "true" : "false");
- if (IGen.QualifiedName == "GLib.PtrArray")
- return String.Format ("({0}[]) GLib.Marshaller.PtrArrayToArray ({1}, {2}, typeof({0}))", ElementType, var, args);
- else
- return String.Format ("({0}[]) GLib.Marshaller.ListPtrToArray ({1}, typeof({2}), {3}, typeof({4}))", ElementType, var, IGen.QualifiedName, args, element_ctype == "gfilename*" ? "GLib.ListBase.FilenameString" : ElementType);
- } else if (IGen is IOwnable)
- return ((IOwnable)IGen).FromNative (var, owned);
- else if (is_null_term)
- return String.Format ("GLib.Marshaller.NullTermPtrToStringArray ({0}, {1})", var, owned ? "true" : "false");
- else if (is_array)
- return String.Format ("({0}) GLib.Marshaller.ArrayPtrToArray ({1}, typeof ({2}), (int){3}native_{4}, true)", CSType, var, IGen.QualifiedName, CountParameter.CSType == "int" ? String.Empty : "(" + CountParameter.CSType + ")", CountParameter.Name);
- else
- return IGen.FromNative (var);
- }
-
- public string ToNative (string var)
- {
- if (IGen == null)
- return String.Empty;
-
- if (ElementType.Length > 0) {
- string args = ", typeof (" + ElementType + "), " + (owned ? "true" : "false") + ", " + (elements_owned ? "true" : "false");
- var = "new " + IGen.QualifiedName + "(" + var + args + ")";
- } else if (is_null_term)
- return String.Format ("GLib.Marshaller.StringArrayToNullTermPointer ({0})", var);
- else if (is_array)
- return String.Format ("GLib.Marshaller.ArrayToArrayPtr ({0})", var);
-
- if (IGen is IManualMarshaler)
- return (IGen as IManualMarshaler).AllocNative (var);
- else if (IGen is ObjectGen && owned)
- return var + " == null ? IntPtr.Zero : " + var + ".OwnedHandle";
- else if (IGen is OpaqueGen && owned)
- return var + " == null ? IntPtr.Zero : " + var + ".OwnedCopy";
- else
- return IGen.CallByName (var);
- }
-
- public bool Validate (LogWriter log)
- {
- if (MarshalType == "" || CSType == "") {
- log.Warn ("Unknown return type: {0}", CType);
- return false;
- } else if ((CSType == "GLib.List" || CSType == "GLib.SList") && String.IsNullOrEmpty (ElementType))
- log.Warn ("Returns {0} with unknown element type. Add element_type attribute with gapi-fixup.", CType);
-
- return true;
- }
- }
-}
-
+// GtkSharp.Generation.ReturnValue.cs - The ReturnValue Generatable.
+//
+// Author: Mike Kestner <mkestner@novell.com>
+//
+// Copyright (c) 2004-2005 Novell, Inc.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of version 2 of the 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
+// General Public License for more details.
+//
+// You should have received a copy of the GNU 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 GtkSharp.Generation {
+
+ using System;
+ using System.Xml;
+
+ public class ReturnValue {
+
+
+ bool is_null_term;
+ bool is_array;
+ bool elements_owned;
+ bool owned;
+ string array_length_param = String.Empty;
+ string ctype = String.Empty;
+ string default_value = String.Empty;
+ string element_ctype = String.Empty;
+ Parameter count_param;
+
+ public ReturnValue (XmlElement elem)
+ {
+ if (elem != null) {
+ is_null_term = elem.GetAttributeAsBoolean ("null_term_array");
+ is_array = elem.GetAttributeAsBoolean ("array") || elem.HasAttribute ("array_length_param");
+ array_length_param = elem.GetAttribute ("array_length_param");
+ elements_owned = elem.GetAttributeAsBoolean ("elements_owned");
+ owned = elem.GetAttributeAsBoolean ("owned");
+ ctype = elem.GetAttribute("type");
+ default_value = elem.GetAttribute ("default_value");
+ element_ctype = elem.GetAttribute ("element_type");
+ }
+ }
+
+ public Parameter CountParameter {
+ get { return count_param; }
+ set { count_param = value; }
+ }
+
+ public string CountParameterName {
+ get { return array_length_param; }
+ }
+
+ public string CType {
+ get {
+ return ctype;
+ }
+ }
+
+ public string CSType {
+ get {
+ if (IGen == null)
+ return String.Empty;
+
+ if (ElementType != String.Empty)
+ return ElementType + "[]";
+
+ return IGen.QualifiedName + (is_array || is_null_term ? "[]" : String.Empty);
+ }
+ }
+
+ public string DefaultValue {
+ get {
+ if (default_value != null && default_value.Length > 0)
+ return default_value;
+ if (IGen == null)
+ return String.Empty;
+ return IGen.DefaultValue;
+ }
+ }
+
+ string ElementType {
+ get {
+ if (element_ctype.Length > 0)
+ return SymbolTable.Table.GetCSType (element_ctype);
+
+ return String.Empty;
+ }
+ }
+
+ IGeneratable igen;
+ public IGeneratable IGen {
+ get {
+ if (igen == null)
+ igen = SymbolTable.Table [CType];
+ return igen;
+ }
+ }
+
+ public bool IsVoid {
+ get {
+ return CSType == "void";
+ }
+ }
+
+ public string MarshalType {
+ get {
+ if (IGen == null)
+ return String.Empty;
+ else if (is_array || is_null_term)
+ return "IntPtr";
+ return IGen.MarshalType;
+ }
+ }
+
+ public string ToNativeType {
+ get {
+ if (IGen == null)
+ return String.Empty;
+ return IGen.MarshalType + (is_array || is_null_term ? "[]" : String.Empty);
+ }
+ }
+
+ public string FromNative (string var)
+ {
+ if (IGen == null)
+ return String.Empty;
+
+ if (ElementType != String.Empty) {
+ string args = (owned ? "true" : "false") + ", " + (elements_owned ? "true" : "false");
+ if (IGen.QualifiedName == "GLib.PtrArray")
+ return String.Format ("({0}[]) GLib.Marshaller.PtrArrayToArray ({1}, {2}, typeof({0}))", ElementType, var, args);
+ else
+ return String.Format ("({0}[]) GLib.Marshaller.ListPtrToArray ({1}, typeof({2}), {3}, typeof({4}))", ElementType, var, IGen.QualifiedName, args, element_ctype == "gfilename*" ? "GLib.ListBase.FilenameString" : ElementType);
+ } else if (IGen is IOwnable)
+ return ((IOwnable)IGen).FromNative (var, owned);
+ else if (is_null_term)
+ return String.Format ("GLib.Marshaller.NullTermPtrToStringArray ({0}, {1})", var, owned ? "true" : "false");
+ else if (is_array)
+ return String.Format ("({0}) GLib.Marshaller.ArrayPtrToArray ({1}, typeof ({2}), (int){3}native_{4}, true)", CSType, var, IGen.QualifiedName, CountParameter.CSType == "int" ? String.Empty : "(" + CountParameter.CSType + ")", CountParameter.Name);
+ else
+ return IGen.FromNative (var);
+ }
+
+ public string ToNative (string var)
+ {
+ if (IGen == null)
+ return String.Empty;
+
+ if (ElementType.Length > 0) {
+ string args = ", typeof (" + ElementType + "), " + (owned ? "true" : "false") + ", " + (elements_owned ? "true" : "false");
+ var = "new " + IGen.QualifiedName + "(" + var + args + ")";
+ } else if (is_null_term)
+ return String.Format ("GLib.Marshaller.StringArrayToNullTermPointer ({0})", var);
+ else if (is_array)
+ return String.Format ("GLib.Marshaller.ArrayToArrayPtr ({0})", var);
+
+ if (IGen is IManualMarshaler)
+ return (IGen as IManualMarshaler).AllocNative (var);
+ else if (IGen is ObjectGen && owned)
+ return var + " == null ? IntPtr.Zero : " + var + ".OwnedHandle";
+ else if (IGen is OpaqueGen && owned)
+ return var + " == null ? IntPtr.Zero : " + var + ".OwnedCopy";
+ else
+ return IGen.CallByName (var);
+ }
+
+ public bool Validate (LogWriter log)
+ {
+ if (MarshalType == "" || CSType == "") {
+ log.Warn ("Unknown return type: {0}", CType);
+ return false;
+ } else if ((CSType == "GLib.List" || CSType == "GLib.SList") && String.IsNullOrEmpty (ElementType))
+ log.Warn ("Returns {0} with unknown element type. Add element_type attribute with gapi-fixup.", CType);
+
+ if (is_array && !is_null_term && String.IsNullOrEmpty (array_length_param)) {
+ log.Warn ("Returns an array with undeterminable length. Add null_term_array or array_length_param attribute with gapi-fixup.");
+ return false;
+ }
+
+ return true;
+ }
+ }
+}
+
diff --git a/generator/Signal.cs b/generator/Signal.cs
index ee61c98..5107f29 100644
--- a/generator/Signal.cs
+++ b/generator/Signal.cs
@@ -1,330 +1,330 @@
-// GtkSharp.Generation.Signal.cs - The Signal Generatable.
-//
-// Author: Mike Kestner <mkestner@speakeasy.net>
-//
-// Copyright (c) 2001-2003 Mike Kestner
-// Copyright (c) 2003-2005 Novell, Inc.
-// Copyright (c) 2007 Novell, Inc.
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of version 2 of the 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
-// General Public License for more details.
-//
-// You should have received a copy of the GNU 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 GtkSharp.Generation {
-
- using System;
- using System.Collections;
- using System.IO;
- using System.Xml;
-
- public class Signal {
-
- bool marshaled;
- string name;
- XmlElement elem;
- ReturnValue retval;
- Parameters parms;
- ObjectBase container_type;
-
- public Signal (XmlElement elem, ObjectBase container_type)
- {
- this.elem = elem;
- name = elem.GetAttribute ("name");
- marshaled = elem.GetAttribute ("manual") == "true";
- retval = new ReturnValue (elem ["return-type"]);
- parms = new Parameters (elem["parameters"], container_type.ParserVersion == 1 ? true : false);
- this.container_type = container_type;
- }
-
- bool Marshaled {
- get { return marshaled; }
- }
-
- public string Name {
- get {
- return name;
- }
- set {
- name = value;
- }
- }
-
- public bool Validate (LogWriter log)
- {
- log.Member = Name;
- if (Name == "") {
- log.Warn ("Nameless signal found. Add name attribute with fixup.");
- Statistics.ThrottledCount++;
- return false;
- } else if (!parms.Validate (log) || !retval.Validate (log)) {
- Statistics.ThrottledCount++;
- return false;
- }
- return true;
- }
-
- public void GenerateDecl (StreamWriter sw)
- {
- if (elem.HasAttribute("new_flag") || (container_type != null && container_type.GetSignalRecursively (Name) != null))
- sw.Write("new ");
-
- sw.WriteLine ("\t\tevent " + EventHandlerQualifiedName + " " + Name + ";");
- }
-
- public string CName {
- get {
- return "\"" + elem.GetAttribute("cname") + "\"";
- }
- }
-
- string CallbackSig {
- get {
- string result = "";
- for (int i = 0; i < parms.Count; i++) {
- if (i > 0)
- result += ", ";
-
- Parameter p = parms [i];
- if (p.PassAs != "" && !(p.Generatable is StructBase))
- result += p.PassAs + " ";
- result += (p.MarshalType + " arg" + i);
- }
-
- return result;
- }
- }
-
- string CallbackName {
- get { return Name + "SignalCallback"; }
- }
-
- string DelegateName {
- get { return Name + "SignalDelegate"; }
- }
-
- private string EventArgsName {
- get {
- if (IsEventHandler)
- return "EventArgs";
- else
- return Name + "Args";
- }
- }
-
- private string EventArgsQualifiedName {
- get {
- if (IsEventHandler)
- return "System.EventArgs";
- else
- return container_type.NS + "." + Name + "Args";
- }
- }
-
- private string EventHandlerName {
- get {
- if (IsEventHandler)
- return "EventHandler";
- else if (SymbolTable.Table [container_type.NS + Name + "Handler"] != null)
- return Name + "EventHandler";
- else
- return Name + "Handler";
- }
- }
-
- private string EventHandlerQualifiedName {
- get {
- if (IsEventHandler)
- return "System.EventHandler";
- else
- return container_type.NS + "." + EventHandlerName;
- }
- }
-
- private bool IsEventHandler {
- get {
- return retval.CSType == "void" && parms.Count == 0;
- }
- }
-
- public string GenArgsInitialization (StreamWriter sw)
- {
- if (parms.Count > 0)
- sw.WriteLine("\t\t\t\targs.Args = new object[" + parms.Count + "];");
- string finish = "";
- for (int idx = 0; idx < parms.Count; idx++) {
- Parameter p = parms [idx];
- IGeneratable igen = p.Generatable;
- if (p.PassAs != "out") {
- if (igen is ManualGen) {
- sw.WriteLine("\t\t\t\tif (arg{0} == IntPtr.Zero)", idx);
- sw.WriteLine("\t\t\t\t\targs.Args[{0}] = null;", idx);
- sw.WriteLine("\t\t\t\telse {");
- sw.WriteLine("\t\t\t\t\targs.Args[" + idx + "] = " + p.FromNative ("arg" + idx) + ";");
- sw.WriteLine("\t\t\t\t}");
- } else
- sw.WriteLine("\t\t\t\targs.Args[" + idx + "] = " + p.FromNative ("arg" + idx) + ";");
- }
- if ((igen is StructBase || igen is ByRefGen) && p.PassAs != "")
- finish += "\t\t\t\tif (arg" + idx + " != IntPtr.Zero) System.Runtime.InteropServices.Marshal.StructureToPtr (args.Args[" + idx + "], arg" + idx + ", false);\n";
- else if (igen is IManualMarshaler && p.PassAs != "")
- finish += String.Format ("\t\t\t\targ{0} = {1};\n", idx, (igen as IManualMarshaler).AllocNative ("args.Args[" + idx + "]"));
- else if (p.PassAs != "")
- finish += "\t\t\t\targ" + idx + " = " + igen.CallByName ("((" + p.CSType + ")args.Args[" + idx + "])") + ";\n";
- }
- return finish;
- }
-
- public void GenArgsCleanup (StreamWriter sw, string finish)
- {
- if (retval.IsVoid && finish.Length == 0)
- return;
-
- sw.WriteLine("\n\t\t\ttry {");
- sw.Write (finish);
- if (!retval.IsVoid) {
- if (retval.CSType == "bool") {
- sw.WriteLine ("\t\t\t\tif (args.RetVal == null)");
- sw.WriteLine ("\t\t\t\t\treturn false;");
- }
- sw.WriteLine ("\t\t\t\treturn {0};", retval.ToNative (String.Format ("(({0}) args.RetVal)", retval.CSType)));
- }
- sw.WriteLine("\t\t\t} catch (Exception) {");
- sw.WriteLine ("\t\t\t\tException ex = new Exception (\"args.RetVal or 'out' property unset or set to incorrect type in " + EventHandlerQualifiedName + " callback\");");
- sw.WriteLine("\t\t\t\tGLib.ExceptionManager.RaiseUnhandledException (ex, true);");
-
- sw.WriteLine ("\t\t\t\t// NOTREACHED: above call doesn't return.");
- sw.WriteLine ("\t\t\t\tthrow ex;");
- sw.WriteLine("\t\t\t}");
- }
-
- public void GenCallback (StreamWriter sw)
- {
- if (IsEventHandler)
- return;
-
- string native_signature = "IntPtr inst";
- if (parms.Count > 0)
- native_signature += ", " + CallbackSig;
- native_signature += ", IntPtr gch";
-
- sw.WriteLine ("\t\t[UnmanagedFunctionPointer (CallingConvention.Cdecl)]");
- sw.WriteLine ("\t\tdelegate {0} {1} ({2});", retval.ToNativeType, DelegateName, native_signature);
- sw.WriteLine ();
- sw.WriteLine ("\t\tstatic {0} {1} ({2})", retval.ToNativeType, CallbackName, native_signature);
- sw.WriteLine("\t\t{");
- sw.WriteLine("\t\t\t{0} args = new {0} ();", EventArgsQualifiedName);
- sw.WriteLine("\t\t\ttry {");
- sw.WriteLine("\t\t\t\tGLib.Signal sig = ((GCHandle) gch).Target as GLib.Signal;");
- sw.WriteLine("\t\t\t\tif (sig == null)");
- sw.WriteLine("\t\t\t\t\tthrow new Exception(\"Unknown signal GC handle received \" + gch);");
- sw.WriteLine();
- string finish = GenArgsInitialization (sw);
- sw.WriteLine("\t\t\t\t{0} handler = ({0}) sig.Handler;", EventHandlerQualifiedName);
- sw.WriteLine("\t\t\t\thandler (GLib.Object.GetObject (inst), args);");
- sw.WriteLine("\t\t\t} catch (Exception e) {");
- sw.WriteLine("\t\t\t\tGLib.ExceptionManager.RaiseUnhandledException (e, false);");
- sw.WriteLine("\t\t\t}");
- GenArgsCleanup (sw, finish);
- sw.WriteLine("\t\t}");
- sw.WriteLine();
- }
-
- private bool NeedNew (ObjectBase implementor)
- {
- return elem.HasAttribute ("new_flag") ||
- (container_type != null && container_type.GetSignalRecursively (Name) != null) ||
- (implementor != null && implementor.GetSignalRecursively (Name) != null);
- }
-
- public void GenEventHandler (GenerationInfo gen_info)
- {
- if (IsEventHandler)
- return;
-
- string ns = container_type.NS;
-
- StreamWriter sw = gen_info.OpenStream (EventHandlerName);
-
- sw.WriteLine ("namespace " + ns + " {");
- sw.WriteLine ();
- sw.WriteLine ("\tusing System;");
-
- sw.WriteLine ();
- sw.WriteLine ("\tpublic delegate void " + EventHandlerName + "(object o, " + EventArgsName + " args);");
- sw.WriteLine ();
- sw.WriteLine ("\tpublic class " + EventArgsName + " : GLib.SignalArgs {");
- for (int i = 0; i < parms.Count; i++) {
- sw.WriteLine ("\t\tpublic " + parms[i].CSType + " " + parms[i].StudlyName + "{");
- if (parms[i].PassAs != "out") {
- sw.WriteLine ("\t\t\tget {");
- if (SymbolTable.Table.IsInterface (parms [i].CType))
- sw.WriteLine ("\t\t\t\treturn {0}Adapter.GetObject (Args [{1}] as GLib.Object);", parms [i].CSType, i);
- else
- sw.WriteLine ("\t\t\t\treturn ({0}) Args [{1}];", parms [i].CSType, i);
- sw.WriteLine ("\t\t\t}");
- }
- if (parms[i].PassAs != "") {
- sw.WriteLine ("\t\t\tset {");
- if (SymbolTable.Table.IsInterface (parms [i].CType))
- sw.WriteLine ("\t\t\t\tArgs [{0}] = value is {1}Adapter ? (value as {1}Adapter).Implementor : value;", i, parms [i].CSType);
- else
- sw.WriteLine ("\t\t\t\tArgs[" + i + "] = (" + parms[i].CSType + ")value;");
- sw.WriteLine ("\t\t\t}");
- }
- sw.WriteLine ("\t\t}");
- sw.WriteLine ();
- }
- sw.WriteLine ("\t}");
- sw.WriteLine ("}");
- sw.Close ();
- }
-
- public void GenEvent (StreamWriter sw, ObjectBase implementor, string target)
- {
- string args_type = IsEventHandler ? "" : ", typeof (" + EventArgsQualifiedName + ")";
-
- if (Marshaled) {
- GenCallback (sw);
- args_type = ", new " + DelegateName + "(" + CallbackName + ")";
- }
-
- sw.WriteLine("\t\t[GLib.Signal("+ CName + ")]");
- sw.Write("\t\tpublic ");
- if (NeedNew (implementor))
- sw.Write("new ");
- sw.WriteLine("event " + EventHandlerQualifiedName + " " + Name + " {");
- sw.WriteLine("\t\t\tadd {");
- sw.WriteLine("\t\t\t\t{0}.AddSignalHandler ({1}, value{2});", target, CName, args_type);
- sw.WriteLine("\t\t\t}");
- sw.WriteLine("\t\t\tremove {");
- sw.WriteLine("\t\t\t\t{0}.RemoveSignalHandler ({1}, value);", target, CName);
- sw.WriteLine("\t\t\t}");
- sw.WriteLine("\t\t}");
- sw.WriteLine();
- }
-
- public void Generate (GenerationInfo gen_info, ObjectBase implementor)
- {
- StreamWriter sw = gen_info.Writer;
-
- if (implementor == null)
- GenEventHandler (gen_info);
-
- GenEvent (sw, implementor, "this");
-
- Statistics.SignalCount++;
- }
- }
-}
-
+// GtkSharp.Generation.Signal.cs - The Signal Generatable.
+//
+// Author: Mike Kestner <mkestner@speakeasy.net>
+//
+// Copyright (c) 2001-2003 Mike Kestner
+// Copyright (c) 2003-2005 Novell, Inc.
+// Copyright (c) 2007 Novell, Inc.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of version 2 of the 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
+// General Public License for more details.
+//
+// You should have received a copy of the GNU 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 GtkSharp.Generation {
+
+ using System;
+ using System.Collections;
+ using System.IO;
+ using System.Xml;
+
+ public class Signal {
+
+ bool marshaled;
+ string name;
+ XmlElement elem;
+ ReturnValue retval;
+ Parameters parms;
+ ObjectBase container_type;
+
+ public Signal (XmlElement elem, ObjectBase container_type)
+ {
+ this.elem = elem;
+ name = elem.GetAttribute ("name");
+ marshaled = elem.GetAttribute ("manual") == "true";
+ retval = new ReturnValue (elem ["return-type"]);
+ parms = new Parameters (elem["parameters"], container_type.ParserVersion == 1 ? true : false);
+ this.container_type = container_type;
+ }
+
+ bool Marshaled {
+ get { return marshaled; }
+ }
+
+ public string Name {
+ get {
+ return name;
+ }
+ set {
+ name = value;
+ }
+ }
+
+ public bool Validate (LogWriter log)
+ {
+ log.Member = Name;
+ if (Name == "") {
+ log.Warn ("Nameless signal found. Add name attribute with fixup.");
+ Statistics.ThrottledCount++;
+ return false;
+ } else if (!parms.Validate (log) || !retval.Validate (log)) {
+ Statistics.ThrottledCount++;
+ return false;
+ }
+ return true;
+ }
+
+ public void GenerateDecl (StreamWriter sw)
+ {
+ if (elem.GetAttributeAsBoolean ("new_flag") || (container_type != null && container_type.GetSignalRecursively (Name) != null))
+ sw.Write("new ");
+
+ sw.WriteLine ("\t\tevent " + EventHandlerQualifiedName + " " + Name + ";");
+ }
+
+ public string CName {
+ get {
+ return "\"" + elem.GetAttribute("cname") + "\"";
+ }
+ }
+
+ string CallbackSig {
+ get {
+ string result = "";
+ for (int i = 0; i < parms.Count; i++) {
+ if (i > 0)
+ result += ", ";
+
+ Parameter p = parms [i];
+ if (p.PassAs != "" && !(p.Generatable is StructBase))
+ result += p.PassAs + " ";
+ result += (p.MarshalType + " arg" + i);
+ }
+
+ return result;
+ }
+ }
+
+ string CallbackName {
+ get { return Name + "SignalCallback"; }
+ }
+
+ string DelegateName {
+ get { return Name + "SignalDelegate"; }
+ }
+
+ private string EventArgsName {
+ get {
+ if (IsEventHandler)
+ return "EventArgs";
+ else
+ return Name + "Args";
+ }
+ }
+
+ private string EventArgsQualifiedName {
+ get {
+ if (IsEventHandler)
+ return "System.EventArgs";
+ else
+ return container_type.NS + "." + Name + "Args";
+ }
+ }
+
+ private string EventHandlerName {
+ get {
+ if (IsEventHandler)
+ return "EventHandler";
+ else if (SymbolTable.Table [container_type.NS + Name + "Handler"] != null)
+ return Name + "EventHandler";
+ else
+ return Name + "Handler";
+ }
+ }
+
+ private string EventHandlerQualifiedName {
+ get {
+ if (IsEventHandler)
+ return "System.EventHandler";
+ else
+ return container_type.NS + "." + EventHandlerName;
+ }
+ }
+
+ private bool IsEventHandler {
+ get {
+ return retval.CSType == "void" && parms.Count == 0;
+ }
+ }
+
+ public string GenArgsInitialization (StreamWriter sw)
+ {
+ if (parms.Count > 0)
+ sw.WriteLine("\t\t\t\targs.Args = new object[" + parms.Count + "];");
+ string finish = "";
+ for (int idx = 0; idx < parms.Count; idx++) {
+ Parameter p = parms [idx];
+ IGeneratable igen = p.Generatable;
+ if (p.PassAs != "out") {
+ if (igen is ManualGen) {
+ sw.WriteLine("\t\t\t\tif (arg{0} == IntPtr.Zero)", idx);
+ sw.WriteLine("\t\t\t\t\targs.Args[{0}] = null;", idx);
+ sw.WriteLine("\t\t\t\telse {");
+ sw.WriteLine("\t\t\t\t\targs.Args[" + idx + "] = " + p.FromNative ("arg" + idx) + ";");
+ sw.WriteLine("\t\t\t\t}");
+ } else
+ sw.WriteLine("\t\t\t\targs.Args[" + idx + "] = " + p.FromNative ("arg" + idx) + ";");
+ }
+ if ((igen is StructBase || igen is ByRefGen) && p.PassAs != "")
+ finish += "\t\t\t\tif (arg" + idx + " != IntPtr.Zero) System.Runtime.InteropServices.Marshal.StructureToPtr (args.Args[" + idx + "], arg" + idx + ", false);\n";
+ else if (igen is IManualMarshaler && p.PassAs != "")
+ finish += String.Format ("\t\t\t\targ{0} = {1};\n", idx, (igen as IManualMarshaler).AllocNative ("args.Args[" + idx + "]"));
+ else if (p.PassAs != "")
+ finish += "\t\t\t\targ" + idx + " = " + igen.CallByName ("((" + p.CSType + ")args.Args[" + idx + "])") + ";\n";
+ }
+ return finish;
+ }
+
+ public void GenArgsCleanup (StreamWriter sw, string finish)
+ {
+ if (retval.IsVoid && finish.Length == 0)
+ return;
+
+ sw.WriteLine("\n\t\t\ttry {");
+ sw.Write (finish);
+ if (!retval.IsVoid) {
+ if (retval.CSType == "bool") {
+ sw.WriteLine ("\t\t\t\tif (args.RetVal == null)");
+ sw.WriteLine ("\t\t\t\t\treturn false;");
+ }
+ sw.WriteLine ("\t\t\t\treturn {0};", retval.ToNative (String.Format ("(({0}) args.RetVal)", retval.CSType)));
+ }
+ sw.WriteLine("\t\t\t} catch (Exception) {");
+ sw.WriteLine ("\t\t\t\tException ex = new Exception (\"args.RetVal or 'out' property unset or set to incorrect type in " + EventHandlerQualifiedName + " callback\");");
+ sw.WriteLine("\t\t\t\tGLib.ExceptionManager.RaiseUnhandledException (ex, true);");
+
+ sw.WriteLine ("\t\t\t\t// NOTREACHED: above call doesn't return.");
+ sw.WriteLine ("\t\t\t\tthrow ex;");
+ sw.WriteLine("\t\t\t}");
+ }
+
+ public void GenCallback (StreamWriter sw)
+ {
+ if (IsEventHandler)
+ return;
+
+ string native_signature = "IntPtr inst";
+ if (parms.Count > 0)
+ native_signature += ", " + CallbackSig;
+ native_signature += ", IntPtr gch";
+
+ sw.WriteLine ("\t\t[UnmanagedFunctionPointer (CallingConvention.Cdecl)]");
+ sw.WriteLine ("\t\tdelegate {0} {1} ({2});", retval.ToNativeType, DelegateName, native_signature);
+ sw.WriteLine ();
+ sw.WriteLine ("\t\tstatic {0} {1} ({2})", retval.ToNativeType, CallbackName, native_signature);
+ sw.WriteLine("\t\t{");
+ sw.WriteLine("\t\t\t{0} args = new {0} ();", EventArgsQualifiedName);
+ sw.WriteLine("\t\t\ttry {");
+ sw.WriteLine("\t\t\t\tGLib.Signal sig = ((GCHandle) gch).Target as GLib.Signal;");
+ sw.WriteLine("\t\t\t\tif (sig == null)");
+ sw.WriteLine("\t\t\t\t\tthrow new Exception(\"Unknown signal GC handle received \" + gch);");
+ sw.WriteLine();
+ string finish = GenArgsInitialization (sw);
+ sw.WriteLine("\t\t\t\t{0} handler = ({0}) sig.Handler;", EventHandlerQualifiedName);
+ sw.WriteLine("\t\t\t\thandler (GLib.Object.GetObject (inst), args);");
+ sw.WriteLine("\t\t\t} catch (Exception e) {");
+ sw.WriteLine("\t\t\t\tGLib.ExceptionManager.RaiseUnhandledException (e, false);");
+ sw.WriteLine("\t\t\t}");
+ GenArgsCleanup (sw, finish);
+ sw.WriteLine("\t\t}");
+ sw.WriteLine();
+ }
+
+ private bool NeedNew (ObjectBase implementor)
+ {
+ return elem.GetAttributeAsBoolean ("new_flag") ||
+ (container_type != null && container_type.GetSignalRecursively (Name) != null) ||
+ (implementor != null && implementor.GetSignalRecursively (Name) != null);
+ }
+
+ public void GenEventHandler (GenerationInfo gen_info)
+ {
+ if (IsEventHandler)
+ return;
+
+ string ns = container_type.NS;
+
+ StreamWriter sw = gen_info.OpenStream (EventHandlerName);
+
+ sw.WriteLine ("namespace " + ns + " {");
+ sw.WriteLine ();
+ sw.WriteLine ("\tusing System;");
+
+ sw.WriteLine ();
+ sw.WriteLine ("\tpublic delegate void " + EventHandlerName + "(object o, " + EventArgsName + " args);");
+ sw.WriteLine ();
+ sw.WriteLine ("\tpublic class " + EventArgsName + " : GLib.SignalArgs {");
+ for (int i = 0; i < parms.Count; i++) {
+ sw.WriteLine ("\t\tpublic " + parms[i].CSType + " " + parms[i].StudlyName + "{");
+ if (parms[i].PassAs != "out") {
+ sw.WriteLine ("\t\t\tget {");
+ if (SymbolTable.Table.IsInterface (parms [i].CType))
+ sw.WriteLine ("\t\t\t\treturn {0}Adapter.GetObject (Args [{1}] as GLib.Object);", parms [i].CSType, i);
+ else
+ sw.WriteLine ("\t\t\t\treturn ({0}) Args [{1}];", parms [i].CSType, i);
+ sw.WriteLine ("\t\t\t}");
+ }
+ if (parms[i].PassAs != "") {
+ sw.WriteLine ("\t\t\tset {");
+ if (SymbolTable.Table.IsInterface (parms [i].CType))
+ sw.WriteLine ("\t\t\t\tArgs [{0}] = value is {1}Adapter ? (value as {1}Adapter).Implementor : value;", i, parms [i].CSType);
+ else
+ sw.WriteLine ("\t\t\t\tArgs[" + i + "] = (" + parms[i].CSType + ")value;");
+ sw.WriteLine ("\t\t\t}");
+ }
+ sw.WriteLine ("\t\t}");
+ sw.WriteLine ();
+ }
+ sw.WriteLine ("\t}");
+ sw.WriteLine ("}");
+ sw.Close ();
+ }
+
+ public void GenEvent (StreamWriter sw, ObjectBase implementor, string target)
+ {
+ string args_type = IsEventHandler ? "" : ", typeof (" + EventArgsQualifiedName + ")";
+
+ if (Marshaled) {
+ GenCallback (sw);
+ args_type = ", new " + DelegateName + "(" + CallbackName + ")";
+ }
+
+ sw.WriteLine("\t\t[GLib.Signal("+ CName + ")]");
+ sw.Write("\t\tpublic ");
+ if (NeedNew (implementor))
+ sw.Write("new ");
+ sw.WriteLine("event " + EventHandlerQualifiedName + " " + Name + " {");
+ sw.WriteLine("\t\t\tadd {");
+ sw.WriteLine("\t\t\t\t{0}.AddSignalHandler ({1}, value{2});", target, CName, args_type);
+ sw.WriteLine("\t\t\t}");
+ sw.WriteLine("\t\t\tremove {");
+ sw.WriteLine("\t\t\t\t{0}.RemoveSignalHandler ({1}, value);", target, CName);
+ sw.WriteLine("\t\t\t}");
+ sw.WriteLine("\t\t}");
+ sw.WriteLine();
+ }
+
+ public void Generate (GenerationInfo gen_info, ObjectBase implementor)
+ {
+ StreamWriter sw = gen_info.Writer;
+
+ if (implementor == null)
+ GenEventHandler (gen_info);
+
+ GenEvent (sw, implementor, "this");
+
+ Statistics.SignalCount++;
+ }
+ }
+}
+
diff --git a/generator/Signature.cs b/generator/Signature.cs
index 1b01234..80808dd 100644
--- a/generator/Signature.cs
+++ b/generator/Signature.cs
@@ -1,123 +1,123 @@
-// GtkSharp.Generation.Signature.cs - The Signature Generation Class.
-//
-// Author: Mike Kestner <mkestner@ximian.com>
-//
-// Copyright (c) 2003-2004 Novell, Inc.
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of version 2 of the 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
-// General Public License for more details.
-//
-// You should have received a copy of the GNU 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 GtkSharp.Generation {
-
- using System;
- using System.Collections;
- using System.Xml;
-
- public class Signature {
-
- private ArrayList parms = new ArrayList ();
-
- public Signature (Parameters parms)
- {
- foreach (Parameter p in parms) {
- if (!parms.IsHidden (p))
- this.parms.Add (p);
- }
- }
-
- public override string ToString ()
- {
- if (parms.Count == 0)
- return "";
-
- string[] result = new string [parms.Count];
- int i = 0;
-
- foreach (Parameter p in parms) {
- result [i] = p.PassAs != "" ? p.PassAs + " " : "";
- result [i++] += p.CSType + " " + p.Name;
- }
-
- return String.Join (", ", result);
- }
-
- public string Types {
- get {
- if (parms.Count == 0)
- return "";
-
- string[] result = new string [parms.Count];
- int i = 0;
-
- foreach (Parameter p in parms)
- result [i++] = p.CSType;
-
- return String.Join (":", result);
- }
- }
-
- public bool IsAccessor {
- get {
- int count = 0;
- foreach (Parameter p in parms) {
- if (p.PassAs == "out")
- count++;
-
- if (count > 1)
- return false;
- }
- return count == 1;
- }
- }
-
- public string AccessorType {
- get {
- foreach (Parameter p in parms)
- if (p.PassAs == "out")
- return p.CSType;
-
- return null;
- }
- }
-
- public string AccessorName {
- get {
- foreach (Parameter p in parms)
- if (p.PassAs == "out")
- return p.Name;
-
- return null;
- }
- }
-
- public string AsAccessor {
- get {
- string[] result = new string [parms.Count - 1];
- int i = 0;
-
- foreach (Parameter p in parms) {
- if (p.PassAs == "out")
- continue;
-
- result [i] = p.PassAs != "" ? p.PassAs + " " : "";
- result [i++] += p.CSType + " " + p.Name;
- }
-
- return String.Join (", ", result);
- }
- }
- }
-}
-
+// GtkSharp.Generation.Signature.cs - The Signature Generation Class.
+//
+// Author: Mike Kestner <mkestner@ximian.com>
+//
+// Copyright (c) 2003-2004 Novell, Inc.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of version 2 of the 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
+// General Public License for more details.
+//
+// You should have received a copy of the GNU 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 GtkSharp.Generation {
+
+ using System;
+ using System.Collections.Generic;
+ using System.Xml;
+
+ public class Signature {
+
+ private IList<Parameter> parms = new List<Parameter> ();
+
+ public Signature (Parameters parms)
+ {
+ foreach (Parameter p in parms) {
+ if (!parms.IsHidden (p))
+ this.parms.Add (p);
+ }
+ }
+
+ public override string ToString ()
+ {
+ if (parms.Count == 0)
+ return "";
+
+ string[] result = new string [parms.Count];
+ int i = 0;
+
+ foreach (Parameter p in parms) {
+ result [i] = p.PassAs != "" ? p.PassAs + " " : "";
+ result [i++] += p.CSType + " " + p.Name;
+ }
+
+ return String.Join (", ", result);
+ }
+
+ public string Types {
+ get {
+ if (parms.Count == 0)
+ return "";
+
+ string[] result = new string [parms.Count];
+ int i = 0;
+
+ foreach (Parameter p in parms)
+ result [i++] = p.CSType;
+
+ return String.Join (":", result);
+ }
+ }
+
+ public bool IsAccessor {
+ get {
+ int count = 0;
+ foreach (Parameter p in parms) {
+ if (p.PassAs == "out")
+ count++;
+
+ if (count > 1)
+ return false;
+ }
+ return count == 1;
+ }
+ }
+
+ public string AccessorType {
+ get {
+ foreach (Parameter p in parms)
+ if (p.PassAs == "out")
+ return p.CSType;
+
+ return null;
+ }
+ }
+
+ public string AccessorName {
+ get {
+ foreach (Parameter p in parms)
+ if (p.PassAs == "out")
+ return p.Name;
+
+ return null;
+ }
+ }
+
+ public string AsAccessor {
+ get {
+ string[] result = new string [parms.Count - 1];
+ int i = 0;
+
+ foreach (Parameter p in parms) {
+ if (p.PassAs == "out")
+ continue;
+
+ result [i] = p.PassAs != "" ? p.PassAs + " " : "";
+ result [i++] += p.CSType + " " + p.Name;
+ }
+
+ return String.Join (", ", result);
+ }
+ }
+ }
+}
+
diff --git a/generator/SimpleBase.cs b/generator/SimpleBase.cs
index 0a6f2b8..4547af2 100644
--- a/generator/SimpleBase.cs
+++ b/generator/SimpleBase.cs
@@ -1,99 +1,99 @@
-// GtkSharp.Generation.SimpleBase.cs - base class for marshaling non-generated types.
-//
-// Author: Mike Kestner <mkestner@novell.com>
-//
-// Copyright (c) 2004 Novell, Inc.
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of version 2 of the 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
-// General Public License for more details.
-//
-// You should have received a copy of the GNU 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 GtkSharp.Generation {
-
- using System;
-
- public abstract class SimpleBase : IGeneratable {
-
- string type;
- string ctype;
- string ns = String.Empty;
- string default_value = String.Empty;
-
- public SimpleBase (string ctype, string type, string default_value)
- {
- string[] toks = type.Split('.');
- this.ctype = ctype;
- this.type = toks[toks.Length - 1];
- if (toks.Length > 2)
- this.ns = String.Join (".", toks, 0, toks.Length - 1);
- else if (toks.Length == 2)
- this.ns = toks[0];
- this.default_value = default_value;
- }
-
- public string CName {
- get {
- return ctype;
- }
- }
-
- public string Name {
- get {
- return type;
- }
- }
-
- public string QualifiedName {
- get {
- return ns == String.Empty ? type : ns + "." + type;
- }
- }
-
- public virtual string MarshalType {
- get {
- return QualifiedName;
- }
- }
-
- public virtual string DefaultValue {
- get {
- return default_value;
- }
- }
-
- public virtual string CallByName (string var)
- {
- return var;
- }
-
- public virtual string FromNative(string var)
- {
- return var;
- }
-
- public bool Validate ()
- {
- return true;
- }
-
- public void Generate ()
- {
- }
-
- public void Generate (GenerationInfo gen_info)
- {
- }
- }
-}
-
+// GtkSharp.Generation.SimpleBase.cs - base class for marshaling non-generated types.
+//
+// Author: Mike Kestner <mkestner@novell.com>
+//
+// Copyright (c) 2004 Novell, Inc.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of version 2 of the 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
+// General Public License for more details.
+//
+// You should have received a copy of the GNU 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 GtkSharp.Generation {
+
+ using System;
+
+ public abstract class SimpleBase : IGeneratable {
+
+ string type;
+ string ctype;
+ string ns = String.Empty;
+ string default_value = String.Empty;
+
+ public SimpleBase (string ctype, string type, string default_value)
+ {
+ string[] toks = type.Split('.');
+ this.ctype = ctype;
+ this.type = toks[toks.Length - 1];
+ if (toks.Length > 2)
+ this.ns = String.Join (".", toks, 0, toks.Length - 1);
+ else if (toks.Length == 2)
+ this.ns = toks[0];
+ this.default_value = default_value;
+ }
+
+ public string CName {
+ get {
+ return ctype;
+ }
+ }
+
+ public string Name {
+ get {
+ return type;
+ }
+ }
+
+ public string QualifiedName {
+ get {
+ return ns == String.Empty ? type : ns + "." + type;
+ }
+ }
+
+ public virtual string MarshalType {
+ get {
+ return QualifiedName;
+ }
+ }
+
+ public virtual string DefaultValue {
+ get {
+ return default_value;
+ }
+ }
+
+ public virtual string CallByName (string var)
+ {
+ return var;
+ }
+
+ public virtual string FromNative(string var)
+ {
+ return var;
+ }
+
+ public bool Validate ()
+ {
+ return true;
+ }
+
+ public void Generate ()
+ {
+ }
+
+ public void Generate (GenerationInfo gen_info)
+ {
+ }
+ }
+}
+
diff --git a/generator/SimpleGen.cs b/generator/SimpleGen.cs
index b382135..14554ab 100644
--- a/generator/SimpleGen.cs
+++ b/generator/SimpleGen.cs
@@ -1,31 +1,31 @@
-// GtkSharp.Generation.SimpleGen.cs - The Simple type Generatable.
-//
-// Author: Mike Kestner <mkestner@speakeasy.net>
-//
-// Copyright (c) 2003 Mike Kestner
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of version 2 of the 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
-// General Public License for more details.
-//
-// You should have received a copy of the GNU 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 GtkSharp.Generation {
-
- using System;
-
- public class SimpleGen : SimpleBase {
- public SimpleGen (string ctype, string type, string default_value) : base (ctype, type, default_value) {}
-
- }
-}
-
+// GtkSharp.Generation.SimpleGen.cs - The Simple type Generatable.
+//
+// Author: Mike Kestner <mkestner@speakeasy.net>
+//
+// Copyright (c) 2003 Mike Kestner
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of version 2 of the 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
+// General Public License for more details.
+//
+// You should have received a copy of the GNU 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 GtkSharp.Generation {
+
+ using System;
+
+ public class SimpleGen : SimpleBase {
+ public SimpleGen (string ctype, string type, string default_value) : base (ctype, type, default_value) {}
+
+ }
+}
+
diff --git a/generator/Statistics.cs b/generator/Statistics.cs
index 4545765..f634185 100644
--- a/generator/Statistics.cs
+++ b/generator/Statistics.cs
@@ -1,197 +1,197 @@
-// Statistics.cs : Generation statistics class implementation
-//
-// Author: Mike Kestner <mkestner@ximian.com>
-//
-// Copyright (c) 2002 Mike Kestner
-// Copyright (c) 2004 Novell, Inc.
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of version 2 of the 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
-// General Public License for more details.
-//
-// You should have received a copy of the GNU 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 GtkSharp.Generation {
-
- using System;
- using System.Collections;
-
- public class Statistics {
-
- static int cbs = 0;
- static int enums = 0;
- static int objects = 0;
- static int structs = 0;
- static int boxed = 0;
- static int opaques = 0;
- static int interfaces = 0;
- static int methods = 0;
- static int ctors = 0;
- static int props = 0;
- static int sigs = 0;
- static int throttled = 0;
- static int ignored = 0;
- static bool vm_ignored = false;
-
- public static int CBCount {
- get {
- return cbs;
- }
- set {
- cbs = value;
- }
- }
-
- public static int EnumCount {
- get {
- return enums;
- }
- set {
- enums = value;
- }
- }
-
- public static int ObjectCount {
- get {
- return objects;
- }
- set {
- objects = value;
- }
- }
-
- public static int StructCount {
- get {
- return structs;
- }
- set {
- structs = value;
- }
- }
-
- public static int BoxedCount {
- get {
- return boxed;
- }
- set {
- boxed = value;
- }
- }
-
- public static int OpaqueCount {
- get {
- return opaques;
- }
- set {
- opaques = value;
- }
- }
-
- public static int CtorCount {
- get {
- return ctors;
- }
- set {
- ctors = value;
- }
- }
-
- public static int MethodCount {
- get {
- return methods;
- }
- set {
- methods = value;
- }
- }
-
- public static int PropCount {
- get {
- return props;
- }
- set {
- props = value;
- }
- }
-
- public static int SignalCount {
- get {
- return sigs;
- }
- set {
- sigs = value;
- }
- }
-
- public static int IFaceCount {
- get {
- return interfaces;
- }
- set {
- interfaces = value;
- }
- }
-
- public static int ThrottledCount {
- get {
- return throttled;
- }
- set {
- throttled = value;
- }
- }
-
- public static int IgnoreCount {
- get {
- return ignored;
- }
- set {
- ignored = value;
- }
- }
-
- public static bool VMIgnored {
- get {
- return vm_ignored;
- }
- set {
- if (value)
- vm_ignored = value;
- }
- }
-
- public static void Report()
- {
- if (VMIgnored) {
- Console.WriteLine();
- Console.WriteLine("Warning: Generation throttled for Virtual Methods.");
- Console.WriteLine(" Consider regenerating with --gluelib-name and --glue-filename.");
- }
- Console.WriteLine();
- Console.WriteLine("Generation Summary:");
- Console.Write(" Enums: " + enums);
- Console.Write(" Structs: " + structs);
- Console.Write(" Boxed: " + boxed);
- Console.Write(" Opaques: " + opaques);
- Console.Write(" Interfaces: " + interfaces);
- Console.Write(" Objects: " + objects);
- Console.WriteLine(" Callbacks: " + cbs);
- Console.Write(" Properties: " + props);
- Console.Write(" Signals: " + sigs);
- Console.Write(" Methods: " + methods);
- Console.Write(" Constructors: " + ctors);
- Console.WriteLine(" Throttled: " + throttled);
- Console.WriteLine("Total Nodes: " + (enums+structs+boxed+opaques+interfaces+cbs+objects+props+sigs+methods+ctors+throttled));
- Console.WriteLine();
- }
- }
-}
+// Statistics.cs : Generation statistics class implementation
+//
+// Author: Mike Kestner <mkestner@ximian.com>
+//
+// Copyright (c) 2002 Mike Kestner
+// Copyright (c) 2004 Novell, Inc.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of version 2 of the 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
+// General Public License for more details.
+//
+// You should have received a copy of the GNU 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 GtkSharp.Generation {
+
+ using System;
+ using System.Collections;
+
+ public class Statistics {
+
+ static int cbs = 0;
+ static int enums = 0;
+ static int objects = 0;
+ static int structs = 0;
+ static int boxed = 0;
+ static int opaques = 0;
+ static int interfaces = 0;
+ static int methods = 0;
+ static int ctors = 0;
+ static int props = 0;
+ static int sigs = 0;
+ static int throttled = 0;
+ static int ignored = 0;
+ static bool vm_ignored = false;
+
+ public static int CBCount {
+ get {
+ return cbs;
+ }
+ set {
+ cbs = value;
+ }
+ }
+
+ public static int EnumCount {
+ get {
+ return enums;
+ }
+ set {
+ enums = value;
+ }
+ }
+
+ public static int ObjectCount {
+ get {
+ return objects;
+ }
+ set {
+ objects = value;
+ }
+ }
+
+ public static int StructCount {
+ get {
+ return structs;
+ }
+ set {
+ structs = value;
+ }
+ }
+
+ public static int BoxedCount {
+ get {
+ return boxed;
+ }
+ set {
+ boxed = value;
+ }
+ }
+
+ public static int OpaqueCount {
+ get {
+ return opaques;
+ }
+ set {
+ opaques = value;
+ }
+ }
+
+ public static int CtorCount {
+ get {
+ return ctors;
+ }
+ set {
+ ctors = value;
+ }
+ }
+
+ public static int MethodCount {
+ get {
+ return methods;
+ }
+ set {
+ methods = value;
+ }
+ }
+
+ public static int PropCount {
+ get {
+ return props;
+ }
+ set {
+ props = value;
+ }
+ }
+
+ public static int SignalCount {
+ get {
+ return sigs;
+ }
+ set {
+ sigs = value;
+ }
+ }
+
+ public static int IFaceCount {
+ get {
+ return interfaces;
+ }
+ set {
+ interfaces = value;
+ }
+ }
+
+ public static int ThrottledCount {
+ get {
+ return throttled;
+ }
+ set {
+ throttled = value;
+ }
+ }
+
+ public static int IgnoreCount {
+ get {
+ return ignored;
+ }
+ set {
+ ignored = value;
+ }
+ }
+
+ public static bool VMIgnored {
+ get {
+ return vm_ignored;
+ }
+ set {
+ if (value)
+ vm_ignored = value;
+ }
+ }
+
+ public static void Report()
+ {
+ if (VMIgnored) {
+ Console.WriteLine();
+ Console.WriteLine("Warning: Generation throttled for Virtual Methods.");
+ Console.WriteLine(" Consider regenerating with --gluelib-name and --glue-filename.");
+ }
+ Console.WriteLine();
+ Console.WriteLine("Generation Summary:");
+ Console.Write(" Enums: " + enums);
+ Console.Write(" Structs: " + structs);
+ Console.Write(" Boxed: " + boxed);
+ Console.Write(" Opaques: " + opaques);
+ Console.Write(" Interfaces: " + interfaces);
+ Console.Write(" Objects: " + objects);
+ Console.WriteLine(" Callbacks: " + cbs);
+ Console.Write(" Properties: " + props);
+ Console.Write(" Signals: " + sigs);
+ Console.Write(" Methods: " + methods);
+ Console.Write(" Constructors: " + ctors);
+ Console.WriteLine(" Throttled: " + throttled);
+ Console.WriteLine("Total Nodes: " + (enums+structs+boxed+opaques+interfaces+cbs+objects+props+sigs+methods+ctors+throttled));
+ Console.WriteLine();
+ }
+ }
+}
diff --git a/generator/StructBase.cs b/generator/StructBase.cs
index 9a0b380..63ace75 100644
--- a/generator/StructBase.cs
+++ b/generator/StructBase.cs
@@ -22,7 +22,7 @@
namespace GtkSharp.Generation {
using System;
- using System.Collections;
+ using System.Collections.Generic;
using System.IO;
using System.Text;
using System.Text.RegularExpressions;
@@ -30,7 +30,7 @@ namespace GtkSharp.Generation {
public abstract class StructBase : ClassBase, IManualMarshaler {
- new ArrayList fields = new ArrayList ();
+ IList<StructField> fields = new List<StructField> ();
bool need_read_native = false;
protected StructBase (XmlElement ns, XmlElement elem) : base (ns, elem)
@@ -103,11 +103,11 @@ namespace GtkSharp.Generation {
private bool DisableNew {
get {
- return Elem.HasAttribute ("disable_new");
+ return Elem.GetAttributeAsBoolean ("disable_new");
}
}
- protected new void GenEqualsAndHash (StreamWriter sw)
+ protected void GenEqualsAndHash (StreamWriter sw)
{
int bitfields = 0;
bool need_field = true;
@@ -200,6 +200,7 @@ namespace GtkSharp.Generation {
sw.WriteLine ();
sw.WriteLine ("\tusing System;");
sw.WriteLine ("\tusing System.Collections;");
+ sw.WriteLine ("\tusing System.Collections.Generic;");
sw.WriteLine ("\tusing System.Runtime.InteropServices;");
sw.WriteLine ();
diff --git a/generator/StructField.cs b/generator/StructField.cs
index 3fa6e80..7b62cab 100644
--- a/generator/StructField.cs
+++ b/generator/StructField.cs
@@ -73,7 +73,6 @@ namespace GtkSharp.Generation {
public string EqualityName {
get {
SymbolTable table = SymbolTable.Table;
- string wrapped = table.GetCSType (CType);
string wrapped_name = SymbolTable.Table.MangleName (CName);
IGeneratable gen = table [CType];
diff --git a/generator/StructGen.cs b/generator/StructGen.cs
index e3da303..5276b26 100644
--- a/generator/StructGen.cs
+++ b/generator/StructGen.cs
@@ -1,52 +1,52 @@
-// GtkSharp.Generation.StructGen.cs - The Structure Generatable.
-//
-// Author: Mike Kestner <mkestner@speakeasy.net>
-//
-// Copyright (c) 2001 Mike Kestner
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of version 2 of the 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
-// General Public License for more details.
-//
-// You should have received a copy of the GNU 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 GtkSharp.Generation {
-
- using System;
- using System.IO;
- using System.Xml;
-
- public class StructGen : StructBase {
-
- public StructGen (XmlElement ns, XmlElement elem) : base (ns, elem) {}
-
- public override void Generate (GenerationInfo gen_info)
- {
- gen_info.CurrentType = QualifiedName;
-
- StreamWriter sw = gen_info.Writer = gen_info.OpenStream (Name);
- base.Generate (gen_info);
- if (GetMethod ("GetType") == null && GetMethod ("GetGType") == null) {
- sw.WriteLine ("\t\tprivate static GLib.GType GType {");
- sw.WriteLine ("\t\t\tget { return GLib.GType.Pointer; }");
- sw.WriteLine ("\t\t}");
- }
- sw.WriteLine ("#endregion");
- sw.WriteLine ("\t}");
- sw.WriteLine ("}");
- sw.Close ();
- gen_info.Writer = null;
- Statistics.StructCount++;
- }
- }
-}
-
+// GtkSharp.Generation.StructGen.cs - The Structure Generatable.
+//
+// Author: Mike Kestner <mkestner@speakeasy.net>
+//
+// Copyright (c) 2001 Mike Kestner
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of version 2 of the 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
+// General Public License for more details.
+//
+// You should have received a copy of the GNU 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 GtkSharp.Generation {
+
+ using System;
+ using System.IO;
+ using System.Xml;
+
+ public class StructGen : StructBase {
+
+ public StructGen (XmlElement ns, XmlElement elem) : base (ns, elem) {}
+
+ public override void Generate (GenerationInfo gen_info)
+ {
+ gen_info.CurrentType = QualifiedName;
+
+ StreamWriter sw = gen_info.Writer = gen_info.OpenStream (Name);
+ base.Generate (gen_info);
+ if (GetMethod ("GetType") == null && GetMethod ("GetGType") == null) {
+ sw.WriteLine ("\t\tprivate static GLib.GType GType {");
+ sw.WriteLine ("\t\t\tget { return GLib.GType.Pointer; }");
+ sw.WriteLine ("\t\t}");
+ }
+ sw.WriteLine ("#endregion");
+ sw.WriteLine ("\t}");
+ sw.WriteLine ("}");
+ sw.Close ();
+ gen_info.Writer = null;
+ Statistics.StructCount++;
+ }
+ }
+}
+
diff --git a/generator/SymbolTable.cs b/generator/SymbolTable.cs
index 7d0ebe4..dca21eb 100644
--- a/generator/SymbolTable.cs
+++ b/generator/SymbolTable.cs
@@ -1,388 +1,389 @@
-// GtkSharp.Generation.SymbolTable.cs - The Symbol Table Class.
-//
-// Author: Mike Kestner <mkestner@novell.com>
-//
-// Copyright (c) 2001-2003 Mike Kestner
-// Copyright (c) 2004-2005 Novell, Inc.
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of version 2 of the 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
-// General Public License for more details.
-//
-// You should have received a copy of the GNU 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 GtkSharp.Generation {
-
- using System;
- using System.Collections;
-
- public class SymbolTable {
-
- static SymbolTable table = null;
-
- Hashtable types = new Hashtable ();
-
- public static SymbolTable Table {
- get {
- if (table == null)
- table = new SymbolTable ();
-
- return table;
- }
- }
-
- public SymbolTable ()
- {
- // Simple easily mapped types
- AddType (new SimpleGen ("void", "void", String.Empty));
- AddType (new SimpleGen ("gpointer", "IntPtr", "IntPtr.Zero"));
- AddType (new SimpleGen ("AtkFunction", "IntPtr", "IntPtr.Zero")); // function definition used for padding
- AddType (new SimpleGen ("gboolean", "bool", "false"));
- AddType (new SimpleGen ("gint", "int", "0"));
- AddType (new SimpleGen ("guint", "uint", "0"));
- AddType (new SimpleGen ("int", "int", "0"));
- AddType (new SimpleGen ("unsigned", "uint", "0"));
- AddType (new SimpleGen ("unsigned int", "uint", "0"));
- AddType (new SimpleGen ("unsigned-int", "uint", "0"));
- AddType (new SimpleGen ("gshort", "short", "0"));
- AddType (new SimpleGen ("gushort", "ushort", "0"));
- AddType (new SimpleGen ("short", "short", "0"));
- AddType (new SimpleGen ("guchar", "byte", "0"));
- AddType (new SimpleGen ("unsigned char", "byte", "0"));
- AddType (new SimpleGen ("unsigned-char", "byte", "0"));
- AddType (new SimpleGen ("guint1", "bool", "false"));
- AddType (new SimpleGen ("uint1", "bool", "false"));
- AddType (new SimpleGen ("gint8", "sbyte", "0"));
- AddType (new SimpleGen ("guint8", "byte", "0"));
- AddType (new SimpleGen ("gint16", "short", "0"));
- AddType (new SimpleGen ("guint16", "ushort", "0"));
- AddType (new SimpleGen ("gint32", "int", "0"));
- AddType (new SimpleGen ("guint32", "uint", "0"));
- AddType (new SimpleGen ("gint64", "long", "0"));
- AddType (new SimpleGen ("guint64", "ulong", "0"));
- AddType (new SimpleGen ("long long", "long", "0"));
- AddType (new SimpleGen ("gfloat", "float", "0.0"));
- AddType (new SimpleGen ("float", "float", "0.0"));
- AddType (new SimpleGen ("gdouble", "double", "0.0"));
- AddType (new SimpleGen ("double", "double", "0.0"));
- AddType (new SimpleGen ("goffset", "long", "0"));
- AddType (new SimpleGen ("GQuark", "int", "0"));
-
- // platform specific integer types.
-#if WIN64LONGS
- AddType (new SimpleGen ("long", "int", "0"));
- AddType (new SimpleGen ("glong", "int", "0"));
- AddType (new SimpleGen ("ulong", "uint", "0"));
- AddType (new SimpleGen ("gulong", "uint", "0"));
- AddType (new SimpleGen ("unsigned long", "uint", "0"));
- AddType (new SimpleGen ("gintptr", "int", "0"));
- AddType (new SimpleGen ("guintptr", "uint", "0"));
-#else
- AddType (new LPGen ("long"));
- AddType (new LPGen ("glong"));
- AddType (new LPGen ("gintptr"));
- AddType (new LPUGen ("ulong"));
- AddType (new LPUGen ("gulong"));
- AddType (new LPUGen ("unsigned long"));
- AddType (new LPUGen ("guintptr"));
-#endif
-
- AddType (new LPGen ("ssize_t"));
- AddType (new LPGen ("gssize"));
- AddType (new LPUGen ("size_t"));
- AddType (new LPUGen ("gsize"));
-
-#if OFF_T_8
- AddType (new AliasGen ("off_t", "long"));
-#else
- AddType (new LPGen ("off_t"));
-#endif
-
- // string types
- AddType (new ConstStringGen ("const-gchar"));
- AddType (new ConstStringGen ("const-xmlChar"));
- AddType (new ConstStringGen ("const-char"));
- AddType (new ConstFilenameGen ("const-gfilename"));
- AddType (new MarshalGen ("gfilename", "string", "IntPtr", "GLib.Marshaller.StringToFilenamePtr({0})", "GLib.Marshaller.FilenamePtrToStringGFree({0})"));
- AddType (new MarshalGen ("gchar", "string", "IntPtr", "GLib.Marshaller.StringToPtrGStrdup({0})", "GLib.Marshaller.PtrToStringGFree({0})"));
- AddType (new MarshalGen ("char", "string", "IntPtr", "GLib.Marshaller.StringToPtrGStrdup({0})", "GLib.Marshaller.PtrToStringGFree({0})"));
- AddType (new SimpleGen ("GStrv", "string[]", "null"));
-
- // manually wrapped types requiring more complex marshaling
- AddType (new ManualGen ("GInitiallyUnowned", "GLib.InitiallyUnowned", "GLib.Object.GetObject ({0})"));
- AddType (new ManualGen ("GObject", "GLib.Object", "GLib.Object.GetObject ({0})"));
- AddType (new ManualGen ("GList", "GLib.List"));
- AddType (new ManualGen ("GPtrArray", "GLib.PtrArray"));
- AddType (new ManualGen ("GSList", "GLib.SList"));
- AddType (new ManualGen ("GVariant", "GLib.Variant"));
- AddType (new ManualGen ("GVariantType", "GLib.VariantType"));
- AddType (new ManualGen ("GValueArray", "GLib.ValueArray"));
- AddType (new MarshalGen ("gunichar", "char", "uint", "GLib.Marshaller.CharToGUnichar ({0})", "GLib.Marshaller.GUnicharToChar ({0})"));
- AddType (new MarshalGen ("time_t", "System.DateTime", "IntPtr", "GLib.Marshaller.DateTimeTotime_t ({0})", "GLib.Marshaller.time_tToDateTime ({0})"));
- AddType (new MarshalGen ("GString", "string", "IntPtr", "new GLib.GString ({0}).Handle", "GLib.GString.PtrToString ({0})"));
- AddType (new MarshalGen ("GType", "GLib.GType", "IntPtr", "{0}.Val", "new GLib.GType({0})", "GLib.GType.None"));
- AddType (new ByRefGen ("GValue", "GLib.Value"));
- AddType (new SimpleGen ("GDestroyNotify", "GLib.DestroyNotify", "null"));
-
- // FIXME: These ought to be handled properly.
- AddType (new SimpleGen ("GC", "IntPtr", "IntPtr.Zero"));
- AddType (new SimpleGen ("GError", "IntPtr", "IntPtr.Zero"));
- AddType (new SimpleGen ("GMemChunk", "IntPtr", "IntPtr.Zero"));
- AddType (new SimpleGen ("GTimeVal", "IntPtr", "IntPtr.Zero"));
- AddType (new SimpleGen ("GClosure", "IntPtr", "IntPtr.Zero"));
- AddType (new SimpleGen ("GArray", "IntPtr", "IntPtr.Zero"));
- AddType (new SimpleGen ("GByteArray", "IntPtr", "IntPtr.Zero"));
- AddType (new SimpleGen ("GData", "IntPtr", "IntPtr.Zero"));
- AddType (new SimpleGen ("GIOChannel", "IntPtr", "IntPtr.Zero"));
- AddType (new SimpleGen ("GTypeModule", "GLib.Object", "null"));
- AddType (new SimpleGen ("GHashTable", "System.IntPtr", "IntPtr.Zero"));
- AddType (new SimpleGen ("va_list", "IntPtr", "IntPtr.Zero"));
- AddType (new SimpleGen ("GParamSpec", "IntPtr", "IntPtr.Zero"));
- AddType (new SimpleGen ("gconstpointer", "IntPtr", "IntPtr.Zero"));
- }
-
- public void AddType (IGeneratable gen)
- {
- types [gen.CName] = gen;
- }
-
- public void AddTypes (IGeneratable[] gens)
- {
- foreach (IGeneratable gen in gens)
- types [gen.CName] = gen;
- }
-
- public int Count {
- get
- {
- return types.Count;
- }
- }
-
- public IEnumerable Generatables {
- get {
- return types.Values;
- }
- }
-
- public IGeneratable this [string ctype] {
- get {
- return DeAlias (ctype) as IGeneratable;
- }
- }
-
- private bool IsConstString (string type)
- {
- switch (type) {
- case "const-gchar":
- case "const-char":
- case "const-xmlChar":
- case "const-gfilename":
- return true;
- default:
- return false;
- }
- }
-
- private string Trim(string type)
- {
- // HACK: If we don't detect this here, there is no
- // way of indicating it in the symbol table
- if (type == "void*" || type == "const-void*") return "gpointer";
-
- string trim_type = type.TrimEnd('*');
-
- if (IsConstString (trim_type))
- return trim_type;
-
- if (trim_type.StartsWith("const-")) return trim_type.Substring(6);
- return trim_type;
- }
-
- private object DeAlias (string type)
- {
- type = Trim (type);
- while (types [type] is AliasGen) {
- IGeneratable igen = types [type] as AliasGen;
- types [type] = types [igen.Name];
- type = igen.Name;
- }
-
- return types [type];
- }
-
- public string FromNative(string c_type, string val)
- {
- IGeneratable gen = this[c_type];
- if (gen == null)
- return "";
- return gen.FromNative (val);
- }
-
- public string GetCSType(string c_type)
- {
- IGeneratable gen = this[c_type];
- if (gen == null)
- return "";
- return gen.QualifiedName;
- }
-
- public string GetName(string c_type)
- {
- IGeneratable gen = this[c_type];
- if (gen == null)
- return "";
- return gen.Name;
- }
-
- public string GetMarshalType(string c_type)
- {
- IGeneratable gen = this[c_type];
- if (gen == null)
- return "";
- return gen.MarshalType;
- }
-
- public string CallByName(string c_type, string var_name)
- {
- IGeneratable gen = this[c_type];
- if (gen == null)
- return "";
- return gen.CallByName(var_name);
- }
-
- public bool IsOpaque(string c_type)
- {
- if (this[c_type] is OpaqueGen)
- return true;
-
- return false;
- }
-
- public bool IsBoxed(string c_type)
- {
- if (this[c_type] is BoxedGen)
- return true;
-
- return false;
- }
-
- public bool IsStruct(string c_type)
- {
- if (this[c_type] is StructGen)
- return true;
-
- return false;
- }
-
- public bool IsEnum(string c_type)
- {
- if (this[c_type] is EnumGen)
- return true;
-
- return false;
- }
-
- public bool IsEnumFlags(string c_type)
- {
- EnumGen gen = this [c_type] as EnumGen;
- return (gen != null && gen.Elem.GetAttribute ("type") == "flags");
- }
-
- public bool IsInterface(string c_type)
- {
- if (this[c_type] is InterfaceGen)
- return true;
-
- return false;
- }
-
- public ClassBase GetClassGen(string c_type)
- {
- return this[c_type] as ClassBase;
- }
-
- public bool IsObject(string c_type)
- {
- if (this[c_type] is ObjectGen)
- return true;
-
- return false;
- }
-
- public bool IsCallback(string c_type)
- {
- if (this[c_type] is CallbackGen)
- return true;
-
- return false;
- }
-
- public bool IsManuallyWrapped(string c_type)
- {
- if (this[c_type] is ManualGen)
- return true;
-
- return false;
- }
-
- public string MangleName(string name)
- {
- switch (name) {
- case "string":
- return "str1ng";
- case "event":
- return "evnt";
- case "null":
- return "is_null";
- case "object":
- return "objekt";
- case "params":
- return "parms";
- case "ref":
- return "reference";
- case "in":
- return "in_param";
- case "out":
- return "out_param";
- case "fixed":
- return "mfixed";
- case "byte":
- return "_byte";
- case "new":
- return "_new";
- case "base":
- return "_base";
- case "lock":
- return "_lock";
- case "callback":
- return "cb";
- case "readonly":
- return "read_only";
- case "interface":
- return "iface";
- case "internal":
- return "_internal";
- case "where":
- return "wh3r3";
- case "foreach":
- return "for_each";
- case "remove":
- return "_remove";
- default:
- break;
- }
-
- return name;
- }
- }
-}
+// GtkSharp.Generation.SymbolTable.cs - The Symbol Table Class.
+//
+// Author: Mike Kestner <mkestner@novell.com>
+//
+// Copyright (c) 2001-2003 Mike Kestner
+// Copyright (c) 2004-2005 Novell, Inc.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of version 2 of the 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
+// General Public License for more details.
+//
+// You should have received a copy of the GNU 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 GtkSharp.Generation {
+
+ using System;
+ using System.Collections.Generic;
+
+ public class SymbolTable {
+
+ static SymbolTable table = null;
+
+ IDictionary<string, IGeneratable> types = new Dictionary<string, IGeneratable> ();
+
+ public static SymbolTable Table {
+ get {
+ if (table == null)
+ table = new SymbolTable ();
+
+ return table;
+ }
+ }
+
+ public SymbolTable ()
+ {
+ // Simple easily mapped types
+ AddType (new SimpleGen ("void", "void", String.Empty));
+ AddType (new SimpleGen ("gpointer", "IntPtr", "IntPtr.Zero"));
+ AddType (new SimpleGen ("AtkFunction", "IntPtr", "IntPtr.Zero")); // function definition used for padding
+ AddType (new SimpleGen ("gboolean", "bool", "false"));
+ AddType (new SimpleGen ("gint", "int", "0"));
+ AddType (new SimpleGen ("guint", "uint", "0"));
+ AddType (new SimpleGen ("int", "int", "0"));
+ AddType (new SimpleGen ("unsigned", "uint", "0"));
+ AddType (new SimpleGen ("unsigned int", "uint", "0"));
+ AddType (new SimpleGen ("unsigned-int", "uint", "0"));
+ AddType (new SimpleGen ("gshort", "short", "0"));
+ AddType (new SimpleGen ("gushort", "ushort", "0"));
+ AddType (new SimpleGen ("short", "short", "0"));
+ AddType (new SimpleGen ("guchar", "byte", "0"));
+ AddType (new SimpleGen ("unsigned char", "byte", "0"));
+ AddType (new SimpleGen ("unsigned-char", "byte", "0"));
+ AddType (new SimpleGen ("guint1", "bool", "false"));
+ AddType (new SimpleGen ("uint1", "bool", "false"));
+ AddType (new SimpleGen ("gint8", "sbyte", "0"));
+ AddType (new SimpleGen ("guint8", "byte", "0"));
+ AddType (new SimpleGen ("gint16", "short", "0"));
+ AddType (new SimpleGen ("guint16", "ushort", "0"));
+ AddType (new SimpleGen ("gint32", "int", "0"));
+ AddType (new SimpleGen ("guint32", "uint", "0"));
+ AddType (new SimpleGen ("gint64", "long", "0"));
+ AddType (new SimpleGen ("guint64", "ulong", "0"));
+ AddType (new SimpleGen ("long long", "long", "0"));
+ AddType (new SimpleGen ("gfloat", "float", "0.0"));
+ AddType (new SimpleGen ("float", "float", "0.0"));
+ AddType (new SimpleGen ("gdouble", "double", "0.0"));
+ AddType (new SimpleGen ("double", "double", "0.0"));
+ AddType (new SimpleGen ("goffset", "long", "0"));
+ AddType (new SimpleGen ("GQuark", "int", "0"));
+
+ // platform specific integer types.
+#if WIN64LONGS
+ AddType (new SimpleGen ("long", "int", "0"));
+ AddType (new SimpleGen ("glong", "int", "0"));
+ AddType (new SimpleGen ("ulong", "uint", "0"));
+ AddType (new SimpleGen ("gulong", "uint", "0"));
+ AddType (new SimpleGen ("unsigned long", "uint", "0"));
+ AddType (new SimpleGen ("gintptr", "int", "0"));
+ AddType (new SimpleGen ("guintptr", "uint", "0"));
+#else
+ AddType (new LPGen ("long"));
+ AddType (new LPGen ("glong"));
+ AddType (new LPGen ("gintptr"));
+ AddType (new LPUGen ("ulong"));
+ AddType (new LPUGen ("gulong"));
+ AddType (new LPUGen ("unsigned long"));
+ AddType (new LPUGen ("guintptr"));
+#endif
+
+ AddType (new LPGen ("ssize_t"));
+ AddType (new LPGen ("gssize"));
+ AddType (new LPUGen ("size_t"));
+ AddType (new LPUGen ("gsize"));
+
+#if OFF_T_8
+ AddType (new AliasGen ("off_t", "long"));
+#else
+ AddType (new LPGen ("off_t"));
+#endif
+
+ // string types
+ AddType (new ConstStringGen ("const-gchar"));
+ AddType (new ConstStringGen ("const-xmlChar"));
+ AddType (new ConstStringGen ("const-char"));
+ AddType (new ConstFilenameGen ("const-gfilename"));
+ AddType (new MarshalGen ("gfilename", "string", "IntPtr", "GLib.Marshaller.StringToFilenamePtr({0})", "GLib.Marshaller.FilenamePtrToStringGFree({0})"));
+ AddType (new MarshalGen ("gchar", "string", "IntPtr", "GLib.Marshaller.StringToPtrGStrdup({0})", "GLib.Marshaller.PtrToStringGFree({0})"));
+ AddType (new MarshalGen ("char", "string", "IntPtr", "GLib.Marshaller.StringToPtrGStrdup({0})", "GLib.Marshaller.PtrToStringGFree({0})"));
+ AddType (new SimpleGen ("GStrv", "string[]", "null"));
+
+ // manually wrapped types requiring more complex marshaling
+ AddType (new ManualGen ("GInitiallyUnowned", "GLib.InitiallyUnowned", "GLib.Object.GetObject ({0})"));
+ AddType (new ManualGen ("GObject", "GLib.Object", "GLib.Object.GetObject ({0})"));
+ AddType (new ManualGen ("GList", "GLib.List"));
+ AddType (new ManualGen ("GPtrArray", "GLib.PtrArray"));
+ AddType (new ManualGen ("GSList", "GLib.SList"));
+ AddType (new ManualGen ("GVariant", "GLib.Variant"));
+ AddType (new ManualGen ("GVariantType", "GLib.VariantType"));
+ AddType (new ManualGen ("GValueArray", "GLib.ValueArray"));
+ AddType (new MarshalGen ("gunichar", "char", "uint", "GLib.Marshaller.CharToGUnichar ({0})", "GLib.Marshaller.GUnicharToChar ({0})"));
+ AddType (new MarshalGen ("time_t", "System.DateTime", "IntPtr", "GLib.Marshaller.DateTimeTotime_t ({0})", "GLib.Marshaller.time_tToDateTime ({0})"));
+ AddType (new MarshalGen ("GString", "string", "IntPtr", "new GLib.GString ({0}).Handle", "GLib.GString.PtrToString ({0})"));
+ AddType (new MarshalGen ("GType", "GLib.GType", "IntPtr", "{0}.Val", "new GLib.GType({0})", "GLib.GType.None"));
+ AddType (new ByRefGen ("GValue", "GLib.Value"));
+ AddType (new SimpleGen ("GDestroyNotify", "GLib.DestroyNotify", "null"));
+
+ // FIXME: These ought to be handled properly.
+ AddType (new SimpleGen ("GC", "IntPtr", "IntPtr.Zero"));
+ AddType (new SimpleGen ("GError", "IntPtr", "IntPtr.Zero"));
+ AddType (new SimpleGen ("GMemChunk", "IntPtr", "IntPtr.Zero"));
+ AddType (new SimpleGen ("GTimeVal", "IntPtr", "IntPtr.Zero"));
+ AddType (new SimpleGen ("GClosure", "IntPtr", "IntPtr.Zero"));
+ AddType (new SimpleGen ("GArray", "IntPtr", "IntPtr.Zero"));
+ AddType (new SimpleGen ("GByteArray", "IntPtr", "IntPtr.Zero"));
+ AddType (new SimpleGen ("GData", "IntPtr", "IntPtr.Zero"));
+ AddType (new SimpleGen ("GIOChannel", "IntPtr", "IntPtr.Zero"));
+ AddType (new SimpleGen ("GTypeModule", "GLib.Object", "null"));
+ AddType (new SimpleGen ("GHashTable", "System.IntPtr", "IntPtr.Zero"));
+ AddType (new SimpleGen ("va_list", "IntPtr", "IntPtr.Zero"));
+ AddType (new SimpleGen ("GParamSpec", "IntPtr", "IntPtr.Zero"));
+ AddType (new SimpleGen ("gconstpointer", "IntPtr", "IntPtr.Zero"));
+ }
+
+ public void AddType (IGeneratable gen)
+ {
+ types [gen.CName] = gen;
+ }
+
+ public void AddTypes (IGeneratable[] gens)
+ {
+ foreach (IGeneratable gen in gens)
+ types [gen.CName] = gen;
+ }
+
+ public int Count {
+ get
+ {
+ return types.Count;
+ }
+ }
+
+ public IEnumerable<IGeneratable> Generatables {
+ get {
+ return types.Values;
+ }
+ }
+
+ public IGeneratable this [string ctype] {
+ get {
+ return DeAlias (ctype);
+ }
+ }
+
+ private bool IsConstString (string type)
+ {
+ switch (type) {
+ case "const-gchar":
+ case "const-char":
+ case "const-xmlChar":
+ case "const-gfilename":
+ return true;
+ default:
+ return false;
+ }
+ }
+
+ private string Trim(string type)
+ {
+ // HACK: If we don't detect this here, there is no
+ // way of indicating it in the symbol table
+ if (type == "void*" || type == "const-void*") return "gpointer";
+
+ string trim_type = type.TrimEnd('*');
+
+ if (IsConstString (trim_type))
+ return trim_type;
+
+ if (trim_type.StartsWith("const-")) return trim_type.Substring(6);
+ return trim_type;
+ }
+
+ private IGeneratable DeAlias (string type)
+ {
+ type = Trim (type);
+ IGeneratable cur_type = null;
+ while (types.TryGetValue (type, out cur_type) && cur_type is AliasGen) {
+ IGeneratable igen = types [type] as AliasGen;
+ types [type] = types [igen.Name];
+ type = igen.Name;
+ }
+
+ return cur_type;
+ }
+
+ public string FromNative(string c_type, string val)
+ {
+ IGeneratable gen = this[c_type];
+ if (gen == null)
+ return "";
+ return gen.FromNative (val);
+ }
+
+ public string GetCSType(string c_type)
+ {
+ IGeneratable gen = this[c_type];
+ if (gen == null)
+ return "";
+ return gen.QualifiedName;
+ }
+
+ public string GetName(string c_type)
+ {
+ IGeneratable gen = this[c_type];
+ if (gen == null)
+ return "";
+ return gen.Name;
+ }
+
+ public string GetMarshalType(string c_type)
+ {
+ IGeneratable gen = this[c_type];
+ if (gen == null)
+ return "";
+ return gen.MarshalType;
+ }
+
+ public string CallByName(string c_type, string var_name)
+ {
+ IGeneratable gen = this[c_type];
+ if (gen == null)
+ return "";
+ return gen.CallByName(var_name);
+ }
+
+ public bool IsOpaque(string c_type)
+ {
+ if (this[c_type] is OpaqueGen)
+ return true;
+
+ return false;
+ }
+
+ public bool IsBoxed(string c_type)
+ {
+ if (this[c_type] is BoxedGen)
+ return true;
+
+ return false;
+ }
+
+ public bool IsStruct(string c_type)
+ {
+ if (this[c_type] is StructGen)
+ return true;
+
+ return false;
+ }
+
+ public bool IsEnum(string c_type)
+ {
+ if (this[c_type] is EnumGen)
+ return true;
+
+ return false;
+ }
+
+ public bool IsEnumFlags(string c_type)
+ {
+ EnumGen gen = this [c_type] as EnumGen;
+ return (gen != null && gen.Elem.GetAttribute ("type") == "flags");
+ }
+
+ public bool IsInterface(string c_type)
+ {
+ if (this[c_type] is InterfaceGen)
+ return true;
+
+ return false;
+ }
+
+ public ClassBase GetClassGen(string c_type)
+ {
+ return this[c_type] as ClassBase;
+ }
+
+ public bool IsObject(string c_type)
+ {
+ if (this[c_type] is ObjectGen)
+ return true;
+
+ return false;
+ }
+
+ public bool IsCallback(string c_type)
+ {
+ if (this[c_type] is CallbackGen)
+ return true;
+
+ return false;
+ }
+
+ public bool IsManuallyWrapped(string c_type)
+ {
+ if (this[c_type] is ManualGen)
+ return true;
+
+ return false;
+ }
+
+ public string MangleName(string name)
+ {
+ switch (name) {
+ case "string":
+ return "str1ng";
+ case "event":
+ return "evnt";
+ case "null":
+ return "is_null";
+ case "object":
+ return "objekt";
+ case "params":
+ return "parms";
+ case "ref":
+ return "reference";
+ case "in":
+ return "in_param";
+ case "out":
+ return "out_param";
+ case "fixed":
+ return "mfixed";
+ case "byte":
+ return "_byte";
+ case "new":
+ return "_new";
+ case "base":
+ return "_base";
+ case "lock":
+ return "_lock";
+ case "callback":
+ return "cb";
+ case "readonly":
+ return "read_only";
+ case "interface":
+ return "iface";
+ case "internal":
+ return "_internal";
+ case "where":
+ return "wh3r3";
+ case "foreach":
+ return "for_each";
+ case "remove":
+ return "_remove";
+ default:
+ break;
+ }
+
+ return name;
+ }
+ }
+}
diff --git a/generator/VMSignature.cs b/generator/VMSignature.cs
index c14ce51..d2dbc7c 100644
--- a/generator/VMSignature.cs
+++ b/generator/VMSignature.cs
@@ -1,91 +1,91 @@
-// GtkSharp.Generation.VMSignature.cs - The Virtual Method Signature Generation Class.
-//
-// Author: Mike Kestner <mkestner@ximian.com>
-//
-// Copyright (c) 2003-2004 Novell, Inc.
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of version 2 of the 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
-// General Public License for more details.
-//
-// You should have received a copy of the GNU 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 GtkSharp.Generation {
-
- using System;
- using System.Collections;
- using System.Xml;
-
- public class VMSignature {
-
- private ArrayList parms = new ArrayList ();
-
- public VMSignature (Parameters parms)
- {
- bool has_cb = parms.HideData;
- for (int i = 0; i < parms.Count; i++) {
- Parameter p = parms [i];
-
- if (i > 0 && p.IsLength && parms [i - 1].IsString)
- continue;
-
- if (p.IsCount && ((i > 0 && parms [i - 1].IsArray) || (i < parms.Count - 1 && parms [i + 1].IsArray)))
- continue;
-
- has_cb = has_cb || p.Generatable is CallbackGen;
- if (p.IsUserData && has_cb)
- continue;
-
- if (p.CType == "GError**")
- continue;
-
- if (p.Scope == "notified")
- i += 2;
-
- this.parms.Add (p);
- }
- }
-
- public string GetCallString (bool use_place_holders)
- {
- if (parms.Count == 0)
- return "";
-
- string[] result = new string [parms.Count];
- int i = 0;
- foreach (Parameter p in parms) {
- result [i] = p.PassAs != "" ? p.PassAs + " " : "";
- result [i] += use_place_holders ? "{" + i + "}" : p.Name;
- i++;
- }
-
- return String.Join (", ", result);
- }
-
- public override string ToString ()
- {
- if (parms.Count == 0)
- return "";
-
- string[] result = new string [parms.Count];
- int i = 0;
-
- foreach (Parameter p in parms) {
- result [i] = p.PassAs != "" ? p.PassAs + " " : "";
- result [i++] += p.CSType + " " + p.Name;
- }
-
- return String.Join (", ", result);
- }
- }
-}
-
+// GtkSharp.Generation.VMSignature.cs - The Virtual Method Signature Generation Class.
+//
+// Author: Mike Kestner <mkestner@ximian.com>
+//
+// Copyright (c) 2003-2004 Novell, Inc.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of version 2 of the 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
+// General Public License for more details.
+//
+// You should have received a copy of the GNU 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 GtkSharp.Generation {
+
+ using System;
+ using System.Collections.Generic;
+ using System.Xml;
+
+ public class VMSignature {
+
+ private IList<Parameter> parms = new List<Parameter> ();
+
+ public VMSignature (Parameters parms)
+ {
+ bool has_cb = parms.HideData;
+ for (int i = 0; i < parms.Count; i++) {
+ Parameter p = parms [i];
+
+ if (i > 0 && p.IsLength && parms [i - 1].IsString)
+ continue;
+
+ if (p.IsCount && ((i > 0 && parms [i - 1].IsArray) || (i < parms.Count - 1 && parms [i + 1].IsArray)))
+ continue;
+
+ has_cb = has_cb || p.Generatable is CallbackGen;
+ if (p.IsUserData && has_cb)
+ continue;
+
+ if (p.CType == "GError**")
+ continue;
+
+ if (p.Scope == "notified")
+ i += 2;
+
+ this.parms.Add (p);
+ }
+ }
+
+ public string GetCallString (bool use_place_holders)
+ {
+ if (parms.Count == 0)
+ return "";
+
+ string[] result = new string [parms.Count];
+ int i = 0;
+ foreach (Parameter p in parms) {
+ result [i] = p.PassAs != "" ? p.PassAs + " " : "";
+ result [i] += use_place_holders ? "{" + i + "}" : p.Name;
+ i++;
+ }
+
+ return String.Join (", ", result);
+ }
+
+ public override string ToString ()
+ {
+ if (parms.Count == 0)
+ return "";
+
+ string[] result = new string [parms.Count];
+ int i = 0;
+
+ foreach (Parameter p in parms) {
+ result [i] = p.PassAs != "" ? p.PassAs + " " : "";
+ result [i++] += p.CSType + " " + p.Name;
+ }
+
+ return String.Join (", ", result);
+ }
+ }
+}
+
diff --git a/generator/XmlElementExtensions.cs b/generator/XmlElementExtensions.cs
new file mode 100644
index 0000000..4bb4c4c
--- /dev/null
+++ b/generator/XmlElementExtensions.cs
@@ -0,0 +1,20 @@
+using System;
+using System.Xml;
+
+namespace GtkSharp.Generation
+{
+ public static class XmlElementExtensions
+ {
+ public static bool GetAttributeAsBoolean (this XmlElement elt, string name)
+ {
+ string value = elt.GetAttribute (name);
+
+ if (String.IsNullOrEmpty (value)) {
+ return false;
+ } else {
+ return XmlConvert.ToBoolean (value);
+ }
+ }
+ }
+}
+
diff --git a/gio/FileEnumerator.cs b/gio/FileEnumerator.cs
index 5b5d656..3e7d6dc 100644
--- a/gio/FileEnumerator.cs
+++ b/gio/FileEnumerator.cs
@@ -21,34 +21,47 @@
namespace GLib {
using System;
using System.Collections;
+ using System.Collections.Generic;
- public partial class FileEnumerator {
- public IEnumerator GetEnumerator ()
+ public partial class FileEnumerator : IEnumerable<FileInfo> {
+ public IEnumerator<FileInfo> GetEnumerator ()
{
return new Enumerator (this);
}
-
+
+ IEnumerator IEnumerable.GetEnumerator ()
+ {
+ return GetEnumerator ();
+ }
+
public FileInfo NextFile ()
{
return NextFile ((Cancellable) null);
}
-
- class Enumerator : IEnumerator
+
+ class Enumerator : IEnumerator<FileInfo>
{
FileEnumerator file_enumerator;
-
+
public Enumerator (FileEnumerator file_enumerator)
{
this.file_enumerator = file_enumerator;
}
-
- FileInfo current=null;
- public object Current {
+
+ void IDisposable.Dispose() { }
+
+ FileInfo current;
+ public FileInfo Current {
get {
return current;
}
}
-
+
+ object IEnumerator.Current
+ {
+ get { return Current; }
+ }
+
public bool MoveNext ()
{
current = file_enumerator.NextFile ();
diff --git a/gio/Gio.metadata b/gio/Gio.metadata
index 59a390d..a7e4540 100644
--- a/gio/Gio.metadata
+++ b/gio/Gio.metadata
@@ -37,7 +37,6 @@
<attr path="/api/namespace/interface[@cname='GTlsServerConnection']/property[@cname='authentication-mode']" name="hidden">1</attr>
<attr path="/api/namespace/interface[@cname='GVolume']" name="consume_only">1</attr>
<attr path="/api/namespace/interface[@cname='GVolume']/method[@name='GetMount']" name="name">GetMountInstance</attr>
- <add-node path="/api/namespace/object[@cname='GFileEnumerator']"><implements><interface name="IEnumerable" /></implements></add-node>
<attr path="/api/namespace/object[@cname='GApplication']/signal[@cname='activate']" name="name">Activated</attr>
<attr path="/api/namespace/object[@cname='GApplication']/signal[@cname='open']" name="name">Opened</attr>
<attr path="/api/namespace/object[@cname='GDBusAuthObserver']/signal[@cname='authorize-authenticated-peer']" name="name">AuthenticatedPeerAuthorized</attr>
diff --git a/gio/Makefile.in b/gio/Makefile.in
index 71dd1e5..7c2db9d 100644
--- a/gio/Makefile.in
+++ b/gio/Makefile.in
@@ -51,7 +51,6 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-target_triplet = @target@
DIST_COMMON = $(srcdir)/../Makefile.include $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in $(srcdir)/gio-sharp-3.0.pc.in \
$(srcdir)/gio-sharp.dll.config.in
@@ -154,8 +153,6 @@ AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BUILD_EXEEXT = @BUILD_EXEEXT@
-BUILD_GTK_CFLAGS = @BUILD_GTK_CFLAGS@
-BUILD_GTK_LIBS = @BUILD_GTK_LIBS@
CAIRO_API_VERSION = @CAIRO_API_VERSION@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
@@ -179,7 +176,6 @@ EXEEXT = @EXEEXT@
FGREP = @FGREP@
GACUTIL = @GACUTIL@
GACUTIL_FLAGS = @GACUTIL_FLAGS@
-GDK_BACKEND = @GDK_BACKEND@
GENERATED_SOURCES = @GENERATED_SOURCES@
GIO_CFLAGS = @GIO_CFLAGS@
GIO_LIBS = @GIO_LIBS@
@@ -234,6 +230,8 @@ PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POLICY_VERSIONS =
+PROFILER_CFLAGS = @PROFILER_CFLAGS@
+PROFILER_LIBS = @PROFILER_LIBS@
RANLIB = @RANLIB@
RUNTIME = @RUNTIME@
SED = @SED@
@@ -289,11 +287,7 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
-target = @target@
target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/gio/glue/Makefile.in b/gio/glue/Makefile.in
index 1baaa16..9cdee07 100644
--- a/gio/glue/Makefile.in
+++ b/gio/glue/Makefile.in
@@ -51,7 +51,6 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-target_triplet = @target@
subdir = gio/glue
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -137,8 +136,6 @@ AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BUILD_EXEEXT = @BUILD_EXEEXT@
-BUILD_GTK_CFLAGS = @BUILD_GTK_CFLAGS@
-BUILD_GTK_LIBS = @BUILD_GTK_LIBS@
CAIRO_API_VERSION = @CAIRO_API_VERSION@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
@@ -162,7 +159,6 @@ EXEEXT = @EXEEXT@
FGREP = @FGREP@
GACUTIL = @GACUTIL@
GACUTIL_FLAGS = @GACUTIL_FLAGS@
-GDK_BACKEND = @GDK_BACKEND@
GENERATED_SOURCES = @GENERATED_SOURCES@
GIO_CFLAGS = @GIO_CFLAGS@
GIO_LIBS = @GIO_LIBS@
@@ -217,6 +213,8 @@ PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POLICY_VERSIONS = @POLICY_VERSIONS@
+PROFILER_CFLAGS = @PROFILER_CFLAGS@
+PROFILER_LIBS = @PROFILER_LIBS@
RANLIB = @RANLIB@
RUNTIME = @RUNTIME@
SED = @SED@
@@ -272,11 +270,7 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
-target = @target@
target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/glib/GType.cs b/glib/GType.cs
index 68bba65..99022f5 100755
--- a/glib/GType.cs
+++ b/glib/GType.cs
@@ -23,7 +23,7 @@
namespace GLib {
using System;
- using System.Collections;
+ using System.Collections.Generic;
using System.IO;
using System.Reflection;
using System.Runtime.InteropServices;
@@ -88,8 +88,8 @@ namespace GLib {
public static readonly GType Param = new GType ((IntPtr) TypeFundamentals.TypeParam);
public static readonly GType Object = new GType ((IntPtr) TypeFundamentals.TypeObject);
- static Hashtable types = new Hashtable ();
- static Hashtable gtypes = new Hashtable ();
+ static IDictionary<IntPtr, Type> types = new Dictionary<IntPtr, Type> ();
+ static IDictionary<Type, GType> gtypes = new Dictionary<Type, GType> ();
public static void Register (GType native_type, System.Type type)
{
@@ -131,8 +131,8 @@ namespace GLib {
GType gtype;
lock (types) {
- if (gtypes.Contains (type))
- return (GType)gtypes[type];
+ if (gtypes.ContainsKey (type))
+ return gtypes[type];
}
if (type.IsSubclassOf (typeof (GLib.Object))) {
@@ -189,8 +189,8 @@ namespace GLib {
public static Type LookupType (IntPtr typeid)
{
lock (types) {
- if (types.Contains (typeid))
- return (Type)types[typeid];
+ if (types.ContainsKey (typeid))
+ return types[typeid];
}
string native_name = Marshaller.Utf8PtrToString (g_type_name (typeid));
@@ -375,8 +375,8 @@ namespace GLib {
internal static GType LookupGObjectType (System.Type t)
{
lock (types) {
- if (gtypes.Contains (t))
- return (GType) gtypes [t];
+ if (gtypes.ContainsKey (t))
+ return gtypes [t];
}
PropertyInfo pi = t.GetProperty ("GType", BindingFlags.DeclaredOnly | BindingFlags.Static | BindingFlags.Public);
diff --git a/glib/Makefile.in b/glib/Makefile.in
index b875f1c..f90e4b4 100644
--- a/glib/Makefile.in
+++ b/glib/Makefile.in
@@ -51,7 +51,6 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-target_triplet = @target@
subdir = glib
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(srcdir)/glib-sharp-3.0.pc.in \
@@ -154,8 +153,6 @@ AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BUILD_EXEEXT = @BUILD_EXEEXT@
-BUILD_GTK_CFLAGS = @BUILD_GTK_CFLAGS@
-BUILD_GTK_LIBS = @BUILD_GTK_LIBS@
CAIRO_API_VERSION = @CAIRO_API_VERSION@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
@@ -179,7 +176,6 @@ EXEEXT = @EXEEXT@
FGREP = @FGREP@
GACUTIL = @GACUTIL@
GACUTIL_FLAGS = @GACUTIL_FLAGS@
-GDK_BACKEND = @GDK_BACKEND@
GENERATED_SOURCES = @GENERATED_SOURCES@
GIO_CFLAGS = @GIO_CFLAGS@
GIO_LIBS = @GIO_LIBS@
@@ -234,6 +230,8 @@ PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POLICY_VERSIONS = @POLICY_VERSIONS@
+PROFILER_CFLAGS = @PROFILER_CFLAGS@
+PROFILER_LIBS = @PROFILER_LIBS@
RANLIB = @RANLIB@
RUNTIME = @RUNTIME@
SED = @SED@
@@ -289,11 +287,7 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
-target = @target@
target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/glib/Marshaller.cs b/glib/Marshaller.cs
index 457beed..d28d57e 100644
--- a/glib/Marshaller.cs
+++ b/glib/Marshaller.cs
@@ -23,6 +23,7 @@
namespace GLib {
using System;
+ using System.Collections.Generic;
using System.Runtime.InteropServices;
public class Marshaller {
@@ -202,7 +203,7 @@ namespace GLib {
return new string [0];
int count = 0;
- System.Collections.ArrayList result = new System.Collections.ArrayList ();
+ var result = new List<string> ();
IntPtr s = Marshal.ReadIntPtr (null_term_array, count++ * IntPtr.Size);
while (s != IntPtr.Zero) {
result.Add (Utf8PtrToString (s));
@@ -212,7 +213,7 @@ namespace GLib {
if (owned)
g_strfreev (null_term_array);
- return (string[]) result.ToArray (typeof(string));
+ return result.ToArray ();
}
public static string[] PtrToStringArrayGFree (IntPtr string_array)
diff --git a/glib/Object.cs b/glib/Object.cs
index 64c5790..15a7ded 100644
--- a/glib/Object.cs
+++ b/glib/Object.cs
@@ -82,6 +82,23 @@ namespace GLib {
[DllImport ("libgobject-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern void g_object_unref (IntPtr raw);
+ public static Object TryGetObject (IntPtr o)
+ {
+ if (o == IntPtr.Zero)
+ return null;
+
+ ToggleRef toggle_ref;
+ lock (Objects) {
+ toggle_ref = (ToggleRef) Objects[o];
+ }
+
+ if (toggle_ref != null) {
+ return toggle_ref.Target;
+ }
+
+ return null;
+ }
+
public static Object GetObject(IntPtr o, bool owned_ref)
{
if (o == IntPtr.Zero)
@@ -90,9 +107,11 @@ namespace GLib {
Object obj = null;
ToggleRef toggle_ref;
- if (Objects.TryGetValue (o, out toggle_ref)) {
- if (toggle_ref != null)
- obj = toggle_ref.Target;
+ lock (Objects) {
+ if (Objects.TryGetValue (o, out toggle_ref)) {
+ if (toggle_ref != null)
+ obj = toggle_ref.Target;
+ }
}
if (obj != null && obj.Handle == o) {
@@ -527,17 +546,20 @@ namespace GLib {
if (handle == value)
return;
- if (handle != IntPtr.Zero) {
- Objects.Remove (handle);
- if (tref != null) {
- tref.Dispose ();
- tref = null;
+ lock (Objects) {
+ if (handle != IntPtr.Zero) {
+ Objects.Remove (handle);
+ if (tref != null) {
+ tref.Dispose ();
+ tref = null;
+ }
+ }
+
+ handle = value;
+ if (value != IntPtr.Zero) {
+ tref = new ToggleRef (this);
+ Objects [value] = tref;
}
- }
- handle = value;
- if (value != IntPtr.Zero) {
- tref = new ToggleRef (this);
- Objects [value] = tref;
}
}
}
diff --git a/glib/ValueArray.cs b/glib/ValueArray.cs
index 4f42cb5..6483c9b 100644
--- a/glib/ValueArray.cs
+++ b/glib/ValueArray.cs
@@ -23,13 +23,14 @@ namespace GLib {
using System;
using System.Collections;
+ using System.Collections.Generic;
using System.Runtime.InteropServices;
public class ValueArray : IDisposable, ICollection, ICloneable, IWrapper {
private IntPtr handle = IntPtr.Zero;
- static private ArrayList PendingFrees = new ArrayList ();
+ static private IList<IntPtr> PendingFrees = new List<IntPtr> ();
static private bool idle_queued = false;
[DllImport ("libgobject-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
diff --git a/gtk/Container.cs b/gtk/Container.cs
index 5730587..28ca251 100644
--- a/gtk/Container.cs
+++ b/gtk/Container.cs
@@ -24,7 +24,7 @@ namespace Gtk {
using System.Collections;
using System.Runtime.InteropServices;
- public partial class Container {
+ public partial class Container : IEnumerable {
[DllImport("gtksharpglue-3")]
static extern void gtksharp_container_child_get_property (IntPtr container, IntPtr child, IntPtr property, ref GLib.Value value);
@@ -134,9 +134,16 @@ namespace Gtk {
static void ForallOld_cb (IntPtr container, bool include_internals, IntPtr cb, IntPtr data)
{
try {
- Container obj = GLib.Object.GetObject (container, false) as Container;
- CallbackInvoker invoker = new CallbackInvoker (cb, data);
- obj.ForAll (include_internals, invoker);
+ //GtkContainer's unmanaged dispose calls forall, but by that time the managed object is gone
+ //so it couldn't do anything useful, and resurrecting it would cause a resurrection cycle.
+ //In that case, just chain to the native base in case it can do something.
+ Container obj = (Container) GLib.Object.TryGetObject (container);
+ if (obj != null) {
+ CallbackInvoker invoker = new CallbackInvoker (cb, data);
+ obj.ForAll (include_internals, invoker);
+ } else {
+ gtksharp_container_base_forall (container, include_internals, cb, data);
+ }
} catch (Exception e) {
GLib.ExceptionManager.RaiseUnhandledException (e, false);
}
@@ -159,9 +166,16 @@ namespace Gtk {
static void Forall_cb (IntPtr container, bool include_internals, IntPtr cb, IntPtr data)
{
try {
- Container obj = GLib.Object.GetObject (container, false) as Container;
- CallbackInvoker invoker = new CallbackInvoker (cb, data);
- obj.ForAll (include_internals, new Gtk.Callback (invoker.Invoke));
+ //GtkContainer's unmanaged dispose calls forall, but by that time the managed object is gone
+ //so it couldn't do anything useful, and resurrecting it would cause a resurrection cycle.
+ //In that case, just chain to the native base in case it can do something.
+ Container obj = (Container) GLib.Object.TryGetObject (container);
+ if (obj != null) {
+ CallbackInvoker invoker = new CallbackInvoker (cb, data);
+ obj.ForAll (include_internals, new Gtk.Callback (invoker.Invoke));
+ } else {
+ gtksharp_container_base_forall (container, include_internals, cb, data);
+ }
} catch (Exception e) {
GLib.ExceptionManager.RaiseUnhandledException (e, false);
}
diff --git a/gtk/Gtk.metadata b/gtk/Gtk.metadata
index 7f5bd65..d046074 100644
--- a/gtk/Gtk.metadata
+++ b/gtk/Gtk.metadata
@@ -172,6 +172,7 @@
<attr path="/api/namespace/interface[@cname='GtkRecentChooser']/method[@name='GetItems']/return-type" name="element_type">GtkRecentInfo*</attr>
<attr path="/api/namespace/interface[@cname='GtkRecentChooser']/method[@name='GetItems']/return-type" name="elements_owned">true</attr>
<attr path="/api/namespace/interface[@cname='GtkRecentChooser']/method[@name='GetItems']/return-type" name="owned">true</attr>
+ <attr path="/api/namespace/interface[@cname='GtkRecentChooser']/method[@name='GetUris']/return-type" name="null_term_array">1</attr>
<attr path="/api/namespace/interface[@cname='GtkRecentChooser']/method[@name='ListFilters']" name="name">GetFilters</attr>
<attr path="/api/namespace/interface[@cname='GtkRecentChooser']/method[@cname='gtk_recent_chooser_list_filters']/return-type" name="element_type">GtkRecentFilter*</attr>
<attr path="/api/namespace/interface[@cname='GtkRecentChooser']/method[@cname='gtk_recent_chooser_list_filters']/return-type" name="elements_owned">false</attr>
@@ -311,7 +312,6 @@
<attr path="/api/namespace/object[@cname='GtkComboBox']/method[@name='SetTitle']" name="name">SetTearoffTitle</attr>
<attr path="/api/namespace/object[@cname='GtkComboBox']/signal[@name='Popdown']" name="name">PoppedDown</attr>
<attr path="/api/namespace/object[@cname='GtkComboBox']/signal[@name='Popup']" name="name">PoppedUp</attr>
- <add-node path="/api/namespace/object[@cname='GtkContainer']"><implements><interface name="IEnumerable" /></implements></add-node>
<attr path="/api/namespace/object[@cname='GtkContainer']/method[@name='AddWithProperties']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkContainer']/method[@name='ChildGet']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkContainer']/method[@name='ChildGetProperty']" name="hidden">1</attr>
@@ -431,7 +431,6 @@
<attr path="/api/namespace/object[@cname='GtkLayout']/method[@name='GetVadjustment']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkLayout']/method[@name='SetHadjustment']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkLayout']/method[@name='SetVadjustment']" name="hidden">1</attr>
- <add-node path="/api/namespace/object[@name='ListStore']"><implements><interface name="IEnumerable" /></implements></add-node>
<attr path="/api/namespace/object[@cname='GtkListStore']/constructor[@cname='gtk_list_store_new']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkListStore']/constructor[@cname='gtk_list_store_newv']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkListStore']/method[@name='Append']/*/*[@name='iter']" name="pass_as">out</attr>
diff --git a/gtk/IconTheme.cs b/gtk/IconTheme.cs
index 524cfd7..e8581ab 100644
--- a/gtk/IconTheme.cs
+++ b/gtk/IconTheme.cs
@@ -23,7 +23,7 @@
namespace Gtk {
using System;
- using System.Collections;
+ using System.Collections.Generic;
using System.Runtime.InteropServices;
public partial class IconTheme {
@@ -117,7 +117,7 @@ namespace Gtk {
{
IntPtr icon_name_as_native = GLib.Marshaller.StringToPtrGStrdup (icon_name);
IntPtr raw_ret = gtk_icon_theme_get_icon_sizes(Handle, icon_name_as_native);
- ArrayList result = new ArrayList ();
+ var result = new List<int> ();
int offset = 0;
int size = Marshal.ReadInt32 (raw_ret, offset);
while (size != 0) {
@@ -127,7 +127,7 @@ namespace Gtk {
}
GLib.Marshaller.Free (icon_name_as_native);
GLib.Marshaller.Free (raw_ret);
- return (int[]) result.ToArray (typeof (int));
+ return result.ToArray ();
}
}
}
diff --git a/gtk/Image.cs b/gtk/Image.cs
index 8c85ae9..79f33c7 100644
--- a/gtk/Image.cs
+++ b/gtk/Image.cs
@@ -22,7 +22,7 @@
namespace Gtk {
using System;
- using System.Collections;
+ using System.Collections.Generic;
using System.Runtime.InteropServices;
public partial class Image {
@@ -33,13 +33,13 @@ namespace Gtk {
public Image (Gtk.IconSet icon_set, Gtk.IconSize size) : base (IntPtr.Zero)
{
if (GetType () != typeof (Image)) {
- ArrayList vals = new ArrayList();
- ArrayList names = new ArrayList();
+ var vals = new List<GLib.Value> ();
+ var names = new List<string> ();
names.Add ("icon_set");
vals.Add (new GLib.Value (icon_set));
names.Add ("icon_size");
vals.Add (new GLib.Value ((int)size));
- CreateNativeObject ((string[])names.ToArray (typeof (string)), (GLib.Value[])vals.ToArray (typeof (GLib.Value)));
+ CreateNativeObject (names.ToArray (), vals.ToArray ());
return;
}
Raw = gtk_image_new_from_icon_set(icon_set.Handle, (int) size);
@@ -51,13 +51,13 @@ namespace Gtk {
public Image (string stock_id, Gtk.IconSize size) : base (IntPtr.Zero)
{
if (GetType () != typeof (Image)) {
- ArrayList vals = new ArrayList();
- ArrayList names = new ArrayList();
+ var vals = new List<GLib.Value> ();
+ var names = new List<string> ();
names.Add ("stock");
vals.Add (new GLib.Value (stock_id));
names.Add ("icon_size");
vals.Add (new GLib.Value ((int)size));
- CreateNativeObject ((string[])names.ToArray (typeof (string)), (GLib.Value[])vals.ToArray (typeof (GLib.Value)));
+ CreateNativeObject (names.ToArray (), vals.ToArray ());
return;
}
IntPtr native = GLib.Marshaller.StringToPtrGStrdup (stock_id);
diff --git a/gtk/ListStore.cs b/gtk/ListStore.cs
index 757ebe6..8e60f50 100644
--- a/gtk/ListStore.cs
+++ b/gtk/ListStore.cs
@@ -24,7 +24,7 @@ namespace Gtk {
using System.Collections;
using System.Runtime.InteropServices;
- public partial class ListStore {
+ public partial class ListStore : IEnumerable {
[DllImport ("libgtk-win32-3.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
static extern bool gtk_tree_model_iter_children (IntPtr raw, out Gtk.TreeIter iter, IntPtr parent);
diff --git a/gtk/Makefile.am b/gtk/Makefile.am
index 78a30aa..7deda33 100644
--- a/gtk/Makefile.am
+++ b/gtk/Makefile.am
@@ -1,4 +1,4 @@
-SUBDIRS = . glue
+SUBDIRS = . glue gui-thread-check
pkg = gtk
pkgconfigdir=$(libdir)/pkgconfig
diff --git a/gtk/Makefile.in b/gtk/Makefile.in
index 4e5b7a1..5e957d7 100644
--- a/gtk/Makefile.in
+++ b/gtk/Makefile.in
@@ -51,7 +51,6 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-target_triplet = @target@
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(srcdir)/gtk-sharp-3.0.pc.in \
$(srcdir)/gtk-sharp.dll.config.in \
@@ -155,8 +154,6 @@ AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BUILD_EXEEXT = @BUILD_EXEEXT@
-BUILD_GTK_CFLAGS = @BUILD_GTK_CFLAGS@
-BUILD_GTK_LIBS = @BUILD_GTK_LIBS@
CAIRO_API_VERSION = @CAIRO_API_VERSION@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
@@ -180,7 +177,6 @@ EXEEXT = @EXEEXT@
FGREP = @FGREP@
GACUTIL = @GACUTIL@
GACUTIL_FLAGS = @GACUTIL_FLAGS@
-GDK_BACKEND = @GDK_BACKEND@
GENERATED_SOURCES = @GENERATED_SOURCES@
GIO_CFLAGS = @GIO_CFLAGS@
GIO_LIBS = @GIO_LIBS@
@@ -235,6 +231,8 @@ PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POLICY_VERSIONS = @POLICY_VERSIONS@
+PROFILER_CFLAGS = @PROFILER_CFLAGS@
+PROFILER_LIBS = @PROFILER_LIBS@
RANLIB = @RANLIB@
RUNTIME = @RUNTIME@
SED = @SED@
@@ -290,15 +288,11 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
-target = @target@
target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
-SUBDIRS = . glue
+SUBDIRS = . glue gui-thread-check
pkg = gtk
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = gtk-sharp-3.0.pc
diff --git a/gtk/NodeStore.cs b/gtk/NodeStore.cs
index 308db17..db24919 100644
--- a/gtk/NodeStore.cs
+++ b/gtk/NodeStore.cs
@@ -24,6 +24,7 @@ namespace Gtk {
using System;
using System.Collections;
+ using System.Collections.Generic;
using System.Reflection;
using System.Runtime.InteropServices;
@@ -107,7 +108,7 @@ namespace Gtk {
if (tna != null)
list_only = tna.ListOnly;
- ArrayList minfos = new ArrayList ();
+ var minfos = new List<MemberInfo> ();
foreach (PropertyInfo pi in type.GetProperties ())
foreach (TreeNodeValueAttribute attr in pi.GetCustomAttributes (typeof (TreeNodeValueAttribute), false))
@@ -199,12 +200,12 @@ namespace Gtk {
#endregion
#region Gtk.TreeIter handling
- ArrayList gc_handles = new ArrayList ();
+ IList<GCHandle> gc_handles = new List<GCHandle> ();
protected override void Dispose (bool disposing)
{
// Free all the GCHandles pointing to the iters since they won't be garbage collected
- foreach (System.Runtime.InteropServices.GCHandle handle in gc_handles)
+ foreach (GCHandle handle in gc_handles)
handle.Free ();
base.Dispose (disposing);
diff --git a/gtk/Widget.cs b/gtk/Widget.cs
index c348961..fef2707 100644
--- a/gtk/Widget.cs
+++ b/gtk/Widget.cs
@@ -24,7 +24,7 @@
namespace Gtk {
using System;
- using System.Collections;
+ using System.Collections.Generic;
using System.Runtime.InteropServices;
public partial class Widget {
@@ -134,10 +134,11 @@ namespace Gtk {
}
}
- /* As gtk_binding_entry_add_signall only allows passing long, double and string parameters to the specified signal, we cannot pass a pointer to the BindingInvoker directly
- * to the signal. Instead, the signal takes the index of the BindingInvoker in binding_invokers.
- */
- static ArrayList binding_invokers;
+ /* As gtk_binding_entry_add_signall only allows passing long, double and string parameters
+ * to the specified signal, we cannot pass a pointer to the BindingInvoker directly to the signal.
+ * Instead, the signal takes the index of the BindingInvoker in binding_invokers.
+ */
+ static IList<BindingInvoker> binding_invokers;
static void BindingMarshal_cb (IntPtr raw_closure, IntPtr return_val, uint n_param_vals, IntPtr param_values, IntPtr invocation_hint, IntPtr marshal_data)
{
@@ -148,7 +149,7 @@ namespace Gtk {
inst_and_params [idx] = (GLib.Value) Marshal.PtrToStructure (new IntPtr (param_values.ToInt64 () + idx * gvalue_size), typeof (GLib.Value));
Widget w = inst_and_params [0].Val as Widget;
- BindingInvoker invoker = binding_invokers [(int) (long) inst_and_params [1]] as BindingInvoker;
+ BindingInvoker invoker = binding_invokers [(int) (long) inst_and_params [1]];
invoker.Invoke (w);
} catch (Exception e) {
GLib.ExceptionManager.RaiseUnhandledException (e, false);
@@ -197,7 +198,7 @@ namespace Gtk {
RegisterSignal (signame, gtype, GLib.Signal.Flags.RunLast | GLib.Signal.Flags.Action, GLib.GType.None, new GLib.GType[] {GLib.GType.Long}, BindingDelegate);
if (binding_invokers == null)
- binding_invokers = new ArrayList ();
+ binding_invokers = new List<BindingInvoker> ();
foreach (BindingAttribute attr in attrs) {
System.Reflection.MethodInfo mi = t.GetMethod (attr.Handler, System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Public);
@@ -206,7 +207,10 @@ namespace Gtk {
GtkBindingArg arg = new GtkBindingArg ();
arg.arg_type = GLib.GType.Long.Val;
- int binding_invoker_idx = binding_invokers.Add (new BindingInvoker (mi, attr.Parms));
+
+ var bi = new BindingInvoker (mi, attr.Parms);
+ binding_invokers.Add (bi);
+ int binding_invoker_idx = binding_invokers.IndexOf (bi);
#if WIN64LONGS
arg.data.long_data = binding_invoker_idx;
#else
@@ -296,15 +300,11 @@ namespace Gtk {
Path (out len, out path, out path_reversed);
}
-
-// Code from custom code for Gtk.Object in 2.x
-// Object is gone in 3.x
-
- static Hashtable destroy_handlers;
- static Hashtable DestroyHandlers {
+ static IDictionary<IntPtr, Delegate> destroy_handlers;
+ static IDictionary<IntPtr, Delegate> DestroyHandlers {
get {
if (destroy_handlers == null)
- destroy_handlers = new Hashtable ();
+ destroy_handlers = new Dictionary<IntPtr, Delegate> ();
return destroy_handlers;
}
}
@@ -320,7 +320,7 @@ namespace Gtk {
[GLib.DefaultSignalHandler(Type=typeof(Gtk.Widget), ConnectionMethod="OverrideDestroyed")]
protected virtual void OnDestroyed ()
{
- if (DestroyHandlers.Contains (Handle)) {
+ if (DestroyHandlers.ContainsKey (Handle)) {
EventHandler handler = (EventHandler) DestroyHandlers [Handle];
handler (this, EventArgs.Empty);
DestroyHandlers.Remove (Handle);
diff --git a/gtk/glue/Makefile.in b/gtk/glue/Makefile.in
index 1aedc3e..b07cb29 100644
--- a/gtk/glue/Makefile.in
+++ b/gtk/glue/Makefile.in
@@ -51,7 +51,6 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-target_triplet = @target@
subdir = gtk/glue
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -138,8 +137,6 @@ AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BUILD_EXEEXT = @BUILD_EXEEXT@
-BUILD_GTK_CFLAGS = @BUILD_GTK_CFLAGS@
-BUILD_GTK_LIBS = @BUILD_GTK_LIBS@
CAIRO_API_VERSION = @CAIRO_API_VERSION@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
@@ -163,7 +160,6 @@ EXEEXT = @EXEEXT@
FGREP = @FGREP@
GACUTIL = @GACUTIL@
GACUTIL_FLAGS = @GACUTIL_FLAGS@
-GDK_BACKEND = @GDK_BACKEND@
GENERATED_SOURCES = @GENERATED_SOURCES@
GIO_CFLAGS = @GIO_CFLAGS@
GIO_LIBS = @GIO_LIBS@
@@ -218,6 +214,8 @@ PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POLICY_VERSIONS = @POLICY_VERSIONS@
+PROFILER_CFLAGS = @PROFILER_CFLAGS@
+PROFILER_LIBS = @PROFILER_LIBS@
RANLIB = @RANLIB@
RUNTIME = @RUNTIME@
SED = @SED@
@@ -273,11 +271,7 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
-target = @target@
target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/gtk/glue/container.c b/gtk/glue/container.c
index b9c7b75..2e0d407 100644
--- a/gtk/glue/container.c
+++ b/gtk/glue/container.c
@@ -20,15 +20,24 @@
*/
#include <gtk/gtk.h>
+#include <string.h>
void gtksharp_container_base_forall (GtkContainer *container, gboolean include_internals, GtkCallback cb, gpointer data);
void
gtksharp_container_base_forall (GtkContainer *container, gboolean include_internals, GtkCallback cb, gpointer data)
{
- GtkContainerClass *parent = g_type_class_peek_parent (G_OBJECT_GET_CLASS (container));
- if (parent->forall)
- (*parent->forall) (container, include_internals, cb, data);
+ // Find and call the first base callback that's not the GTK# callback. The GTK# callback calls down the whole
+ // managed override chain, so calling it on a subclass-of-a-managed-container-subclass causes a stack overflow.
+ GtkContainerClass *parent = (GtkContainerClass *) G_OBJECT_GET_CLASS (container);
+ while ((parent = g_type_class_peek_parent (parent))) {
+ if (strncmp (G_OBJECT_CLASS_NAME (parent), "__gtksharp_", 11) != 0) {
+ if (parent->forall) {
+ (*parent->forall) (container, include_internals, cb, data);
+ }
+ return;
+ }
+ }
}
void gtksharp_container_override_forall (GType gtype, gpointer cb);
diff --git a/gtk/gui-thread-check/COPYING b/gtk/gui-thread-check/COPYING
new file mode 100644
index 0000000..94a9ed0
--- /dev/null
+++ b/gtk/gui-thread-check/COPYING
@@ -0,0 +1,674 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ <program> Copyright (C) <year> <name of author>
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<http://www.gnu.org/licenses/>.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+<http://www.gnu.org/philosophy/why-not-lgpl.html>.
diff --git a/gtk/gui-thread-check/Makefile.am b/gtk/gui-thread-check/Makefile.am
new file mode 100644
index 0000000..060fd90
--- /dev/null
+++ b/gtk/gui-thread-check/Makefile.am
@@ -0,0 +1,3 @@
+
+SUBDIRS = profiler
+
diff --git a/gtk/gui-thread-check/Makefile.in b/gtk/gui-thread-check/Makefile.in
new file mode 100644
index 0000000..cbc9ec7
--- /dev/null
+++ b/gtk/gui-thread-check/Makefile.in
@@ -0,0 +1,614 @@
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = gtk/gui-thread-check
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in COPYING
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+ html-recursive info-recursive install-data-recursive \
+ install-dvi-recursive install-exec-recursive \
+ install-html-recursive install-info-recursive \
+ install-pdf-recursive install-ps-recursive install-recursive \
+ installcheck-recursive installdirs-recursive pdf-recursive \
+ ps-recursive uninstall-recursive
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
+ distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+ distdir
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
+ACLOCAL = @ACLOCAL@
+AL = @AL@
+AMTAR = @AMTAR@
+API_VERSION = @API_VERSION@
+AR = @AR@
+AS = @AS@
+ATK_CFLAGS = @ATK_CFLAGS@
+ATK_LIBS = @ATK_LIBS@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BUILD_EXEEXT = @BUILD_EXEEXT@
+CAIRO_API_VERSION = @CAIRO_API_VERSION@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CC_FOR_BUILD = @CC_FOR_BUILD@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CSC = @CSC@
+CSFLAGS = @CSFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GACUTIL = @GACUTIL@
+GACUTIL_FLAGS = @GACUTIL_FLAGS@
+GENERATED_SOURCES = @GENERATED_SOURCES@
+GIO_CFLAGS = @GIO_CFLAGS@
+GIO_LIBS = @GIO_LIBS@
+GLIB_2_31_CFLAGS = @GLIB_2_31_CFLAGS@
+GLIB_2_31_LIBS = @GLIB_2_31_LIBS@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_LIBS = @GLIB_LIBS@
+GREP = @GREP@
+GTK_CFLAGS = @GTK_CFLAGS@
+GTK_LIBS = @GTK_LIBS@
+HOST_CC = @HOST_CC@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIB_PREFIX = @LIB_PREFIX@
+LIB_SUFFIX = @LIB_SUFFIX@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MDOC = @MDOC@
+MKDIR_P = @MKDIR_P@
+MONO_DEPENDENCY_CFLAGS = @MONO_DEPENDENCY_CFLAGS@
+MONO_DEPENDENCY_LIBS = @MONO_DEPENDENCY_LIBS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OFF_T_FLAGS = @OFF_T_FLAGS@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PANGO_CFLAGS = @PANGO_CFLAGS@
+PANGO_LIBS = @PANGO_LIBS@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POLICY_VERSIONS = @POLICY_VERSIONS@
+PROFILER_CFLAGS = @PROFILER_CFLAGS@
+PROFILER_LIBS = @PROFILER_LIBS@
+RANLIB = @RANLIB@
+RUNTIME = @RUNTIME@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+SUBDIRS = profiler
+all: all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign gtk/gui-thread-check/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign gtk/gui-thread-check/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+# (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+ @fail= failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+$(RECURSIVE_CLEAN_TARGETS):
+ @fail= failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ rev=''; for subdir in $$list; do \
+ if test "$$subdir" = "."; then :; else \
+ rev="$$subdir $$rev"; \
+ fi; \
+ done; \
+ rev="$$rev ."; \
+ target=`echo $@ | sed s/-recursive//`; \
+ for subdir in $$rev; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done && test -z "$$fail"
+tags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ done
+ctags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ include_option=--etags-include; \
+ empty_fix=.; \
+ else \
+ include_option=--include; \
+ empty_fix=; \
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test ! -f $$subdir/TAGS || \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ $(am__make_dryrun) \
+ || test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
+ am__remove_distdir=: \
+ am__skip_length_check=: \
+ am__skip_mode_fix=: \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-recursive
+all-am: Makefile
+installdirs: installdirs-recursive
+installdirs-am:
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+ install-am install-strip tags-recursive
+
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+ all all-am check check-am clean clean-generic clean-libtool \
+ ctags ctags-recursive distclean distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-pdf install-pdf-am \
+ install-ps install-ps-am install-strip installcheck \
+ installcheck-am installdirs installdirs-am maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
+ uninstall uninstall-am
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/gtk/gui-thread-check/profiler/Makefile.am b/gtk/gui-thread-check/profiler/Makefile.am
new file mode 100644
index 0000000..c253f70
--- /dev/null
+++ b/gtk/gui-thread-check/profiler/Makefile.am
@@ -0,0 +1,8 @@
+
+lib_LTLIBRARIES = libmono-profiler-gui-thread-check.la
+
+libmono_profiler_gui_thread_check_la_SOURCES = gui-thread-check.c
+
+libmono_profiler_gui_thread_check_la_LIBADD = @PROFILER_LIBS@
+
+INCLUDES = @PROFILER_CFLAGS@ -Wall
diff --git a/gtk/gui-thread-check/profiler/Makefile.in b/gtk/gui-thread-check/profiler/Makefile.in
new file mode 100644
index 0000000..f403b58
--- /dev/null
+++ b/gtk/gui-thread-check/profiler/Makefile.in
@@ -0,0 +1,588 @@
+# Makefile.in generated by automake 1.11.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = gtk/gui-thread-check/profiler
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
+am__installdirs = "$(DESTDIR)$(libdir)"
+LTLIBRARIES = $(lib_LTLIBRARIES)
+libmono_profiler_gui_thread_check_la_DEPENDENCIES =
+am_libmono_profiler_gui_thread_check_la_OBJECTS = gui-thread-check.lo
+libmono_profiler_gui_thread_check_la_OBJECTS = \
+ $(am_libmono_profiler_gui_thread_check_la_OBJECTS)
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+SOURCES = $(libmono_profiler_gui_thread_check_la_SOURCES)
+DIST_SOURCES = $(libmono_profiler_gui_thread_check_la_SOURCES)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AL = @AL@
+AMTAR = @AMTAR@
+API_VERSION = @API_VERSION@
+AR = @AR@
+AS = @AS@
+ATK_CFLAGS = @ATK_CFLAGS@
+ATK_LIBS = @ATK_LIBS@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BUILD_EXEEXT = @BUILD_EXEEXT@
+CAIRO_API_VERSION = @CAIRO_API_VERSION@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CC_FOR_BUILD = @CC_FOR_BUILD@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CSC = @CSC@
+CSFLAGS = @CSFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GACUTIL = @GACUTIL@
+GACUTIL_FLAGS = @GACUTIL_FLAGS@
+GENERATED_SOURCES = @GENERATED_SOURCES@
+GIO_CFLAGS = @GIO_CFLAGS@
+GIO_LIBS = @GIO_LIBS@
+GLIB_2_31_CFLAGS = @GLIB_2_31_CFLAGS@
+GLIB_2_31_LIBS = @GLIB_2_31_LIBS@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_LIBS = @GLIB_LIBS@
+GREP = @GREP@
+GTK_CFLAGS = @GTK_CFLAGS@
+GTK_LIBS = @GTK_LIBS@
+HOST_CC = @HOST_CC@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIB_PREFIX = @LIB_PREFIX@
+LIB_SUFFIX = @LIB_SUFFIX@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MDOC = @MDOC@
+MKDIR_P = @MKDIR_P@
+MONO_DEPENDENCY_CFLAGS = @MONO_DEPENDENCY_CFLAGS@
+MONO_DEPENDENCY_LIBS = @MONO_DEPENDENCY_LIBS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OFF_T_FLAGS = @OFF_T_FLAGS@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PANGO_CFLAGS = @PANGO_CFLAGS@
+PANGO_LIBS = @PANGO_LIBS@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POLICY_VERSIONS = @POLICY_VERSIONS@
+PROFILER_CFLAGS = @PROFILER_CFLAGS@
+PROFILER_LIBS = @PROFILER_LIBS@
+RANLIB = @RANLIB@
+RUNTIME = @RUNTIME@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+lib_LTLIBRARIES = libmono-profiler-gui-thread-check.la
+libmono_profiler_gui_thread_check_la_SOURCES = gui-thread-check.c
+libmono_profiler_gui_thread_check_la_LIBADD = @PROFILER_LIBS@
+INCLUDES = @PROFILER_CFLAGS@ -Wall
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign gtk/gui-thread-check/profiler/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign gtk/gui-thread-check/profiler/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-libLTLIBRARIES: $(lib_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
+ list2=; for p in $$list; do \
+ if test -f $$p; then \
+ list2="$$list2 $$p"; \
+ else :; fi; \
+ done; \
+ test -z "$$list2" || { \
+ echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
+ }
+
+uninstall-libLTLIBRARIES:
+ @$(NORMAL_UNINSTALL)
+ @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
+ for p in $$list; do \
+ $(am__strip_dir) \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \
+ done
+
+clean-libLTLIBRARIES:
+ -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
+ @list='$(lib_LTLIBRARIES)'; for p in $$list; do \
+ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+ test "$$dir" != "$$p" || dir=.; \
+ echo "rm -f \"$${dir}/so_locations\""; \
+ rm -f "$${dir}/so_locations"; \
+ done
+libmono-profiler-gui-thread-check.la: $(libmono_profiler_gui_thread_check_la_OBJECTS) $(libmono_profiler_gui_thread_check_la_DEPENDENCIES) $(EXTRA_libmono_profiler_gui_thread_check_la_DEPENDENCIES)
+ $(LINK) -rpath $(libdir) $(libmono_profiler_gui_thread_check_la_OBJECTS) $(libmono_profiler_gui_thread_check_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gui-thread-check.Plo@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LTLIBRARIES)
+installdirs:
+ for dir in "$(DESTDIR)$(libdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
+ mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-libLTLIBRARIES
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-libLTLIBRARIES
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ clean-libLTLIBRARIES clean-libtool ctags distclean \
+ distclean-compile distclean-generic distclean-libtool \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am \
+ install-libLTLIBRARIES install-man install-pdf install-pdf-am \
+ install-ps install-ps-am install-strip installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags uninstall uninstall-am uninstall-libLTLIBRARIES
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/gtk/gui-thread-check/profiler/gui-thread-check.c b/gtk/gui-thread-check/profiler/gui-thread-check.c
new file mode 100644
index 0000000..4ec8643
--- /dev/null
+++ b/gtk/gui-thread-check/profiler/gui-thread-check.c
@@ -0,0 +1,93 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+
+/*
+ * gui-thread-check.c
+ *
+ * Copyright (C) 2008 Novell, Inc.
+ *
+ */
+
+/*
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of version 2 of the 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU 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.
+ */
+
+#include <string.h>
+#include <glib.h>
+#include <mono/metadata/profiler.h>
+
+
+extern pthread_t pthread_self (void);
+
+static gboolean
+stack_walk_fn (MonoMethod *method, gint32 native_offset, gint32 il_offset, gboolean managed, gpointer data)
+{
+ if (managed) {
+ MonoClass* klass = mono_method_get_class (method);
+ const char* method_name = mono_method_get_name (method);
+ const char* klass_name = mono_class_get_name (klass);
+ printf (" %s.%s\n", klass_name, method_name);
+ }
+ return FALSE;
+}
+
+static void
+simple_method_enter (MonoProfiler *prof, MonoMethod *method)
+{
+ static int guithread;
+ static gboolean guithread_set = FALSE;
+ MonoClass* klass;
+ const char* name_space;
+
+ klass = mono_method_get_class (method);
+ name_space = mono_class_get_namespace (klass);
+
+ int current_thread_id = (int) pthread_self();
+
+ if (strstr (name_space, "Gtk") == name_space || strstr (name_space, "Gdk") == name_space) {
+ const char* method_name = mono_method_get_name (method);
+ const char* klass_name = mono_class_get_name (klass);
+
+ if (!guithread_set && strcmp (klass_name, "Application")==0 && strcmp (method_name, "Init")==0) {
+ guithread_set = TRUE;
+ guithread = current_thread_id;
+ printf ("*** GUI THREAD INITIALIZED: %u\n", guithread);
+ return;
+ }
+ if (!guithread_set) {
+ return;
+ }
+ if (current_thread_id != guithread &&
+ !(strcmp (klass_name, "Object")==0 && strcmp (method_name, "Dispose")==0) &&
+ !(strcmp (klass_name, "Application")==0 && strcmp (method_name, "Invoke")==0) &&
+ !(strcmp (method_name, "Finalize")==0) &&
+ !(strcmp (method_name, "get_NativeDestroyHandler")==0) &&
+ !(strcmp (method_name, "remove_Destroyed")==0)
+ ) {
+ printf ("*** GTK CALL NOT IN GUI THREAD: %s.%s\n", klass_name, method_name);
+ mono_stack_walk_no_il (stack_walk_fn, NULL);
+ }
+ }
+}
+
+void
+mono_profiler_startup (const char *desc)
+{
+ g_print ("*** Running with gui-thread-check ***\n");
+
+ mono_profiler_install (NULL, NULL);
+ mono_profiler_install_enter_leave (simple_method_enter, NULL);
+ mono_profiler_set_events (MONO_PROFILE_ENTER_LEAVE);
+}
+
diff --git a/gtkdotnet/Makefile.in b/gtkdotnet/Makefile.in
index 8685c52..0fa9d54 100644
--- a/gtkdotnet/Makefile.in
+++ b/gtkdotnet/Makefile.in
@@ -51,7 +51,6 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-target_triplet = @target@
subdir = gtkdotnet
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(srcdir)/gtk-dotnet-3.0.pc.in \
@@ -114,8 +113,6 @@ AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BUILD_EXEEXT = @BUILD_EXEEXT@
-BUILD_GTK_CFLAGS = @BUILD_GTK_CFLAGS@
-BUILD_GTK_LIBS = @BUILD_GTK_LIBS@
CAIRO_API_VERSION = @CAIRO_API_VERSION@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
@@ -139,7 +136,6 @@ EXEEXT = @EXEEXT@
FGREP = @FGREP@
GACUTIL = @GACUTIL@
GACUTIL_FLAGS = @GACUTIL_FLAGS@
-GDK_BACKEND = @GDK_BACKEND@
GENERATED_SOURCES = @GENERATED_SOURCES@
GIO_CFLAGS = @GIO_CFLAGS@
GIO_LIBS = @GIO_LIBS@
@@ -194,6 +190,8 @@ PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POLICY_VERSIONS = @POLICY_VERSIONS@
+PROFILER_CFLAGS = @PROFILER_CFLAGS@
+PROFILER_LIBS = @PROFILER_LIBS@
RANLIB = @RANLIB@
RUNTIME = @RUNTIME@
SED = @SED@
@@ -249,11 +247,7 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
-target = @target@
target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/pango/Makefile.in b/pango/Makefile.in
index e3aad37..e0f644e 100644
--- a/pango/Makefile.in
+++ b/pango/Makefile.in
@@ -51,7 +51,6 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-target_triplet = @target@
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(srcdir)/pango-sharp.dll.config.in \
$(top_srcdir)/Makefile.include
@@ -154,8 +153,6 @@ AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BUILD_EXEEXT = @BUILD_EXEEXT@
-BUILD_GTK_CFLAGS = @BUILD_GTK_CFLAGS@
-BUILD_GTK_LIBS = @BUILD_GTK_LIBS@
CAIRO_API_VERSION = @CAIRO_API_VERSION@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
@@ -179,7 +176,6 @@ EXEEXT = @EXEEXT@
FGREP = @FGREP@
GACUTIL = @GACUTIL@
GACUTIL_FLAGS = @GACUTIL_FLAGS@
-GDK_BACKEND = @GDK_BACKEND@
GENERATED_SOURCES = @GENERATED_SOURCES@
GIO_CFLAGS = @GIO_CFLAGS@
GIO_LIBS = @GIO_LIBS@
@@ -234,6 +230,8 @@ PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POLICY_VERSIONS = @POLICY_VERSIONS@
+PROFILER_CFLAGS = @PROFILER_CFLAGS@
+PROFILER_LIBS = @PROFILER_LIBS@
RANLIB = @RANLIB@
RUNTIME = @RUNTIME@
SED = @SED@
@@ -289,11 +287,7 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
-target = @target@
target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/pango/glue/Makefile.in b/pango/glue/Makefile.in
index c1206ac..d3412ad 100644
--- a/pango/glue/Makefile.in
+++ b/pango/glue/Makefile.in
@@ -51,7 +51,6 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-target_triplet = @target@
subdir = pango/glue
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -137,8 +136,6 @@ AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BUILD_EXEEXT = @BUILD_EXEEXT@
-BUILD_GTK_CFLAGS = @BUILD_GTK_CFLAGS@
-BUILD_GTK_LIBS = @BUILD_GTK_LIBS@
CAIRO_API_VERSION = @CAIRO_API_VERSION@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
@@ -162,7 +159,6 @@ EXEEXT = @EXEEXT@
FGREP = @FGREP@
GACUTIL = @GACUTIL@
GACUTIL_FLAGS = @GACUTIL_FLAGS@
-GDK_BACKEND = @GDK_BACKEND@
GENERATED_SOURCES = @GENERATED_SOURCES@
GIO_CFLAGS = @GIO_CFLAGS@
GIO_LIBS = @GIO_LIBS@
@@ -217,6 +213,8 @@ PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POLICY_VERSIONS = @POLICY_VERSIONS@
+PROFILER_CFLAGS = @PROFILER_CFLAGS@
+PROFILER_LIBS = @PROFILER_LIBS@
RANLIB = @RANLIB@
RUNTIME = @RUNTIME@
SED = @SED@
@@ -272,11 +270,7 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
-target = @target@
target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/parser/Makefile.in b/parser/Makefile.in
index 9ecfd25..defe26b 100644
--- a/parser/Makefile.in
+++ b/parser/Makefile.in
@@ -52,7 +52,6 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-target_triplet = @target@
subdir = parser
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(srcdir)/gapi-3.0.pc.in $(srcdir)/gapi3-fixup.in \
@@ -117,8 +116,6 @@ AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BUILD_EXEEXT = @BUILD_EXEEXT@
-BUILD_GTK_CFLAGS = @BUILD_GTK_CFLAGS@
-BUILD_GTK_LIBS = @BUILD_GTK_LIBS@
CAIRO_API_VERSION = @CAIRO_API_VERSION@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
@@ -142,7 +139,6 @@ EXEEXT = @EXEEXT@
FGREP = @FGREP@
GACUTIL = @GACUTIL@
GACUTIL_FLAGS = @GACUTIL_FLAGS@
-GDK_BACKEND = @GDK_BACKEND@
GENERATED_SOURCES = @GENERATED_SOURCES@
GIO_CFLAGS = @GIO_CFLAGS@
GIO_LIBS = @GIO_LIBS@
@@ -197,6 +193,8 @@ PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POLICY_VERSIONS = @POLICY_VERSIONS@
+PROFILER_CFLAGS = @PROFILER_CFLAGS@
+PROFILER_LIBS = @PROFILER_LIBS@
RANLIB = @RANLIB@
RUNTIME = @RUNTIME@
SED = @SED@
@@ -252,11 +250,7 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
-target = @target@
target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/sample/Actions.cs b/sample/Actions.cs
index cc25aaa..f9880c1 100644
--- a/sample/Actions.cs
+++ b/sample/Actions.cs
@@ -8,7 +8,7 @@ namespace GtkSamples {
using Gtk;
using System;
- using System.Collections;
+ using System.Collections.Generic;
public class Actions {
static VBox box = null;
@@ -19,7 +19,7 @@ namespace GtkSamples {
static ActionGroup dynGroup = null;
static uint mergeId = 0;
static UIManager uim = null;
- static Hashtable actions = new Hashtable ();
+ static Dictionary<Widget, Gtk.Action> actions = new Dictionary<Widget, Gtk.Action> ();
/* XML description of the menus for the test app. The parser understands
* a subset of the Bonobo UI XML format, and uses GMarkup for parsing */
@@ -299,7 +299,7 @@ namespace GtkSamples {
static void OnSelect (object obj, EventArgs args)
{
- Gtk.Action action = (Gtk.Action) actions[obj];
+ Gtk.Action action = actions[(Widget)obj];
if (action.Tooltip != null)
statusbar.Push (0, action.Tooltip);
}
diff --git a/sample/GtkDemo/DemoEditableCells.cs b/sample/GtkDemo/DemoEditableCells.cs
index df88ee4..56848af 100644
--- a/sample/GtkDemo/DemoEditableCells.cs
+++ b/sample/GtkDemo/DemoEditableCells.cs
@@ -7,7 +7,7 @@
*/
using System;
-using System.Collections;
+using System.Collections.Generic;
using Gtk;
namespace GtkDemo
@@ -17,7 +17,7 @@ namespace GtkDemo
{
private ListStore store;
private TreeView treeView;
- private ArrayList articles;
+ private IList<Item> articles;
public DemoEditableCells () : base ("Shopping list")
{
@@ -82,7 +82,7 @@ namespace GtkDemo
private ListStore CreateModel ()
{
// create array
- articles = new ArrayList ();
+ articles = new List<Item> ();
AddItems ();
// create list store
@@ -130,7 +130,7 @@ namespace GtkDemo
Item foo;
try {
- foo = (Item) articles[i];
+ foo = articles[i];
foo.Number = int.Parse (args.NewText);
} catch (Exception e) {
Console.WriteLine (e);
@@ -147,7 +147,7 @@ namespace GtkDemo
store.GetIter (out iter, path);
int i = path.Indices[0];
- Item foo = (Item) articles[i];
+ Item foo = articles[i];
foo.Product = args.NewText;
store.SetValue (iter, (int) Column.Product, foo.Product);
}
diff --git a/sample/GtkDemo/DemoHyperText.cs b/sample/GtkDemo/DemoHyperText.cs
index a657aaf..8e91e03 100644
--- a/sample/GtkDemo/DemoHyperText.cs
+++ b/sample/GtkDemo/DemoHyperText.cs
@@ -7,7 +7,7 @@
*/
using System;
-using System.Collections;
+using System.Collections.Generic;
using Gtk;
namespace GtkDemo
@@ -41,7 +41,7 @@ namespace GtkDemo
ShowAll ();
}
- Hashtable tag_pages = new Hashtable ();
+ IDictionary<TextTag, int> tag_pages = new Dictionary<TextTag, int> ();
// Inserts a piece of text into the buffer, giving it the usual
// appearance of a hyperlink in a web browser: blue and underlined.
@@ -100,9 +100,8 @@ namespace GtkDemo
void FollowIfLink (TextView view, TextIter iter)
{
foreach (TextTag tag in iter.Tags) {
- object page = tag_pages [tag];
- if (page is int)
- ShowPage (view.Buffer, (int)page);
+ int page = tag_pages [tag];
+ ShowPage (view.Buffer, (int)page);
}
}
@@ -115,10 +114,8 @@ namespace GtkDemo
TextIter iter = view.GetIterAtLocation (x, y);
foreach (TextTag tag in iter.Tags) {
- if (tag_pages [tag] is int) {
- hovering = true;
- break;
- }
+ hovering = true;
+ break;
}
if (hovering != hoveringOverLink) {
diff --git a/sample/GtkDemo/DemoMain.cs b/sample/GtkDemo/DemoMain.cs
index b2b39dd..961be1d 100644
--- a/sample/GtkDemo/DemoMain.cs
+++ b/sample/GtkDemo/DemoMain.cs
@@ -1,5 +1,5 @@
using System;
-using System.Collections;
+using System.Collections.Generic;
using System.IO;
using System.Reflection;
@@ -197,7 +197,7 @@ namespace GtkDemo
{
// title, filename, italic
store = new TreeStore (typeof (string), typeof (System.Type), typeof (bool));
- Hashtable parents = new Hashtable ();
+ Dictionary<string, TreeIter> parents = new Dictionary<string, TreeIter> ();
TreeIter parent;
Type[] types = Assembly.GetExecutingAssembly ().GetTypes ();
@@ -205,10 +205,10 @@ namespace GtkDemo
object[] att = t.GetCustomAttributes (typeof (DemoAttribute), false);
foreach (DemoAttribute demo in att) {
if (demo.Parent != null) {
- if (!parents.Contains (demo.Parent))
+ if (!parents.ContainsKey (demo.Parent))
parents.Add (demo.Parent, store.AppendValues (demo.Parent));
- parent = (TreeIter) parents[demo.Parent];
+ parent = parents[demo.Parent];
store.AppendValues (parent, demo.Label, t, false);
} else {
store.AppendValues (demo.Label, t, false);
diff --git a/sample/GtkDemo/DemoPanes.cs b/sample/GtkDemo/DemoPanes.cs
index 66f972c..72db744 100644
--- a/sample/GtkDemo/DemoPanes.cs
+++ b/sample/GtkDemo/DemoPanes.cs
@@ -13,7 +13,7 @@
using System;
-using System.Collections;
+using System.Collections.Generic;
using Gtk;
namespace GtkDemo
@@ -21,7 +21,7 @@ namespace GtkDemo
[Demo ("Paned Widget", "DemoPanes.cs")]
public class DemoPanes : Gtk.Window
{
- Hashtable children = new Hashtable ();
+ Dictionary<ToggleButton, Widget> children = new Dictionary<ToggleButton, Widget> ();
public DemoPanes () : base ("Panes")
{
@@ -113,7 +113,7 @@ namespace GtkDemo
private void ToggleResize (object obj, EventArgs args)
{
ToggleButton toggle = obj as ToggleButton;
- Widget child = children[obj] as Widget;
+ Widget child = children[toggle];
Paned paned = child.Parent as Paned;
Paned.PanedChild pc = paned[child] as Paned.PanedChild;
@@ -123,7 +123,7 @@ namespace GtkDemo
private void ToggleShrink (object obj, EventArgs args)
{
ToggleButton toggle = obj as ToggleButton;
- Widget child = children[obj] as Widget;
+ Widget child = children[toggle];
Paned paned = child.Parent as Paned;
Paned.PanedChild pc = paned[child] as Paned.PanedChild;
diff --git a/sample/GtkDemo/Makefile.in b/sample/GtkDemo/Makefile.in
index 22ae38a..5a2d154 100644
--- a/sample/GtkDemo/Makefile.in
+++ b/sample/GtkDemo/Makefile.in
@@ -51,7 +51,6 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-target_triplet = @target@
subdir = sample/GtkDemo
DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in TODO
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -84,8 +83,6 @@ AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BUILD_EXEEXT = @BUILD_EXEEXT@
-BUILD_GTK_CFLAGS = @BUILD_GTK_CFLAGS@
-BUILD_GTK_LIBS = @BUILD_GTK_LIBS@
CAIRO_API_VERSION = @CAIRO_API_VERSION@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
@@ -109,7 +106,6 @@ EXEEXT = @EXEEXT@
FGREP = @FGREP@
GACUTIL = @GACUTIL@
GACUTIL_FLAGS = @GACUTIL_FLAGS@
-GDK_BACKEND = @GDK_BACKEND@
GENERATED_SOURCES = @GENERATED_SOURCES@
GIO_CFLAGS = @GIO_CFLAGS@
GIO_LIBS = @GIO_LIBS@
@@ -164,6 +160,8 @@ PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POLICY_VERSIONS = @POLICY_VERSIONS@
+PROFILER_CFLAGS = @PROFILER_CFLAGS@
+PROFILER_LIBS = @PROFILER_LIBS@
RANLIB = @RANLIB@
RUNTIME = @RUNTIME@
SED = @SED@
@@ -219,11 +217,7 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
-target = @target@
target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/sample/Makefile.in b/sample/Makefile.in
index 43273c3..e4654bb 100644
--- a/sample/Makefile.in
+++ b/sample/Makefile.in
@@ -51,7 +51,6 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-target_triplet = @target@
subdir = sample
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -124,8 +123,6 @@ AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BUILD_EXEEXT = @BUILD_EXEEXT@
-BUILD_GTK_CFLAGS = @BUILD_GTK_CFLAGS@
-BUILD_GTK_LIBS = @BUILD_GTK_LIBS@
CAIRO_API_VERSION = @CAIRO_API_VERSION@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
@@ -149,7 +146,6 @@ EXEEXT = @EXEEXT@
FGREP = @FGREP@
GACUTIL = @GACUTIL@
GACUTIL_FLAGS = @GACUTIL_FLAGS@
-GDK_BACKEND = @GDK_BACKEND@
GENERATED_SOURCES = @GENERATED_SOURCES@
GIO_CFLAGS = @GIO_CFLAGS@
GIO_LIBS = @GIO_LIBS@
@@ -204,6 +200,8 @@ PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POLICY_VERSIONS = @POLICY_VERSIONS@
+PROFILER_CFLAGS = @PROFILER_CFLAGS@
+PROFILER_LIBS = @PROFILER_LIBS@
RANLIB = @RANLIB@
RUNTIME = @RUNTIME@
SED = @SED@
@@ -259,11 +257,7 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
-target = @target@
target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/sample/PolarFixed.cs b/sample/PolarFixed.cs
index 5a3462d..8c7b002 100644
--- a/sample/PolarFixed.cs
+++ b/sample/PolarFixed.cs
@@ -1,16 +1,16 @@
// This is a completely pointless widget, but it shows how to subclass container...
using System;
-using System.Collections;
+using System.Collections.Generic;
using Gtk;
using Gdk;
class PolarFixed : Container {
- ArrayList children;
+ IList<PolarFixedChild> children;
public PolarFixed ()
{
- children = new ArrayList ();
+ children = new List<PolarFixedChild> ();
HasWindow = false;
}
diff --git a/sample/gio/Makefile.in b/sample/gio/Makefile.in
index ff9fa39..b263fb0 100644
--- a/sample/gio/Makefile.in
+++ b/sample/gio/Makefile.in
@@ -51,7 +51,6 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-target_triplet = @target@
subdir = sample/gio
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -84,8 +83,6 @@ AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BUILD_EXEEXT = @BUILD_EXEEXT@
-BUILD_GTK_CFLAGS = @BUILD_GTK_CFLAGS@
-BUILD_GTK_LIBS = @BUILD_GTK_LIBS@
CAIRO_API_VERSION = @CAIRO_API_VERSION@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
@@ -109,7 +106,6 @@ EXEEXT = @EXEEXT@
FGREP = @FGREP@
GACUTIL = @GACUTIL@
GACUTIL_FLAGS = @GACUTIL_FLAGS@
-GDK_BACKEND = @GDK_BACKEND@
GENERATED_SOURCES = @GENERATED_SOURCES@
GIO_CFLAGS = @GIO_CFLAGS@
GIO_LIBS = @GIO_LIBS@
@@ -164,6 +160,8 @@ PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POLICY_VERSIONS = @POLICY_VERSIONS@
+PROFILER_CFLAGS = @PROFILER_CFLAGS@
+PROFILER_LIBS = @PROFILER_LIBS@
RANLIB = @RANLIB@
RUNTIME = @RUNTIME@
SED = @SED@
@@ -219,11 +217,7 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
-target = @target@
target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/sample/gtk-gio/Makefile.in b/sample/gtk-gio/Makefile.in
index 8b923f8..cd3712e 100644
--- a/sample/gtk-gio/Makefile.in
+++ b/sample/gtk-gio/Makefile.in
@@ -51,7 +51,6 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-target_triplet = @target@
subdir = sample/gtk-gio
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -84,8 +83,6 @@ AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BUILD_EXEEXT = @BUILD_EXEEXT@
-BUILD_GTK_CFLAGS = @BUILD_GTK_CFLAGS@
-BUILD_GTK_LIBS = @BUILD_GTK_LIBS@
CAIRO_API_VERSION = @CAIRO_API_VERSION@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
@@ -109,7 +106,6 @@ EXEEXT = @EXEEXT@
FGREP = @FGREP@
GACUTIL = @GACUTIL@
GACUTIL_FLAGS = @GACUTIL_FLAGS@
-GDK_BACKEND = @GDK_BACKEND@
GENERATED_SOURCES = @GENERATED_SOURCES@
GIO_CFLAGS = @GIO_CFLAGS@
GIO_LIBS = @GIO_LIBS@
@@ -164,6 +160,8 @@ PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POLICY_VERSIONS = @POLICY_VERSIONS@
+PROFILER_CFLAGS = @PROFILER_CFLAGS@
+PROFILER_LIBS = @PROFILER_LIBS@
RANLIB = @RANLIB@
RUNTIME = @RUNTIME@
SED = @SED@
@@ -219,11 +217,7 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
-target = @target@
target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/sample/opaquetest/Makefile.in b/sample/opaquetest/Makefile.in
index aad52cb..19cd760 100644
--- a/sample/opaquetest/Makefile.in
+++ b/sample/opaquetest/Makefile.in
@@ -52,7 +52,6 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-target_triplet = @target@
subdir = sample/opaquetest
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(srcdir)/opaquetest.exe.config.in
@@ -137,8 +136,6 @@ AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BUILD_EXEEXT = @BUILD_EXEEXT@
-BUILD_GTK_CFLAGS = @BUILD_GTK_CFLAGS@
-BUILD_GTK_LIBS = @BUILD_GTK_LIBS@
CAIRO_API_VERSION = @CAIRO_API_VERSION@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
@@ -162,7 +159,6 @@ EXEEXT = @EXEEXT@
FGREP = @FGREP@
GACUTIL = @GACUTIL@
GACUTIL_FLAGS = @GACUTIL_FLAGS@
-GDK_BACKEND = @GDK_BACKEND@
GENERATED_SOURCES = @GENERATED_SOURCES@
GIO_CFLAGS = @GIO_CFLAGS@
GIO_LIBS = @GIO_LIBS@
@@ -217,6 +213,8 @@ PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POLICY_VERSIONS = @POLICY_VERSIONS@
+PROFILER_CFLAGS = @PROFILER_CFLAGS@
+PROFILER_LIBS = @PROFILER_LIBS@
RANLIB = @RANLIB@
RUNTIME = @RUNTIME@
SED = @SED@
@@ -272,11 +270,7 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
-target = @target@
target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/sample/pixmaps/Makefile.in b/sample/pixmaps/Makefile.in
index 978bd97..59e1eaf 100644
--- a/sample/pixmaps/Makefile.in
+++ b/sample/pixmaps/Makefile.in
@@ -50,7 +50,6 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-target_triplet = @target@
subdir = sample/pixmaps
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -82,8 +81,6 @@ AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BUILD_EXEEXT = @BUILD_EXEEXT@
-BUILD_GTK_CFLAGS = @BUILD_GTK_CFLAGS@
-BUILD_GTK_LIBS = @BUILD_GTK_LIBS@
CAIRO_API_VERSION = @CAIRO_API_VERSION@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
@@ -107,7 +104,6 @@ EXEEXT = @EXEEXT@
FGREP = @FGREP@
GACUTIL = @GACUTIL@
GACUTIL_FLAGS = @GACUTIL_FLAGS@
-GDK_BACKEND = @GDK_BACKEND@
GENERATED_SOURCES = @GENERATED_SOURCES@
GIO_CFLAGS = @GIO_CFLAGS@
GIO_LIBS = @GIO_LIBS@
@@ -162,6 +158,8 @@ PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POLICY_VERSIONS = @POLICY_VERSIONS@
+PROFILER_CFLAGS = @PROFILER_CFLAGS@
+PROFILER_LIBS = @PROFILER_LIBS@
RANLIB = @RANLIB@
RUNTIME = @RUNTIME@
SED = @SED@
@@ -217,11 +215,7 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
-target = @target@
target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/sample/test/Makefile.in b/sample/test/Makefile.in
index fda821a..ad9fbf8 100644
--- a/sample/test/Makefile.in
+++ b/sample/test/Makefile.in
@@ -51,7 +51,6 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-target_triplet = @target@
subdir = sample/test
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ChangeLog
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -84,8 +83,6 @@ AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BUILD_EXEEXT = @BUILD_EXEEXT@
-BUILD_GTK_CFLAGS = @BUILD_GTK_CFLAGS@
-BUILD_GTK_LIBS = @BUILD_GTK_LIBS@
CAIRO_API_VERSION = @CAIRO_API_VERSION@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
@@ -109,7 +106,6 @@ EXEEXT = @EXEEXT@
FGREP = @FGREP@
GACUTIL = @GACUTIL@
GACUTIL_FLAGS = @GACUTIL_FLAGS@
-GDK_BACKEND = @GDK_BACKEND@
GENERATED_SOURCES = @GENERATED_SOURCES@
GIO_CFLAGS = @GIO_CFLAGS@
GIO_LIBS = @GIO_LIBS@
@@ -164,6 +160,8 @@ PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POLICY_VERSIONS = @POLICY_VERSIONS@
+PROFILER_CFLAGS = @PROFILER_CFLAGS@
+PROFILER_LIBS = @PROFILER_LIBS@
RANLIB = @RANLIB@
RUNTIME = @RUNTIME@
SED = @SED@
@@ -219,11 +217,7 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
-target = @target@
target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/sample/valtest/Makefile.in b/sample/valtest/Makefile.in
index ccb1a3c..310ceca 100644
--- a/sample/valtest/Makefile.in
+++ b/sample/valtest/Makefile.in
@@ -52,7 +52,6 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-target_triplet = @target@
subdir = sample/valtest
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(srcdir)/valtest.exe.config.in
@@ -137,8 +136,6 @@ AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BUILD_EXEEXT = @BUILD_EXEEXT@
-BUILD_GTK_CFLAGS = @BUILD_GTK_CFLAGS@
-BUILD_GTK_LIBS = @BUILD_GTK_LIBS@
CAIRO_API_VERSION = @CAIRO_API_VERSION@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
@@ -162,7 +159,6 @@ EXEEXT = @EXEEXT@
FGREP = @FGREP@
GACUTIL = @GACUTIL@
GACUTIL_FLAGS = @GACUTIL_FLAGS@
-GDK_BACKEND = @GDK_BACKEND@
GENERATED_SOURCES = @GENERATED_SOURCES@
GIO_CFLAGS = @GIO_CFLAGS@
GIO_LIBS = @GIO_LIBS@
@@ -217,6 +213,8 @@ PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POLICY_VERSIONS = @POLICY_VERSIONS@
+PROFILER_CFLAGS = @PROFILER_CFLAGS@
+PROFILER_LIBS = @PROFILER_LIBS@
RANLIB = @RANLIB@
RUNTIME = @RUNTIME@
SED = @SED@
@@ -272,11 +270,7 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
-target = @target@
target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/sources/Makefile.in b/sources/Makefile.in
index 4272519..e84e6a4 100644
--- a/sources/Makefile.in
+++ b/sources/Makefile.in
@@ -50,7 +50,6 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-target_triplet = @target@
subdir = sources
DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -82,8 +81,6 @@ AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BUILD_EXEEXT = @BUILD_EXEEXT@
-BUILD_GTK_CFLAGS = @BUILD_GTK_CFLAGS@
-BUILD_GTK_LIBS = @BUILD_GTK_LIBS@
CAIRO_API_VERSION = @CAIRO_API_VERSION@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
@@ -107,7 +104,6 @@ EXEEXT = @EXEEXT@
FGREP = @FGREP@
GACUTIL = @GACUTIL@
GACUTIL_FLAGS = @GACUTIL_FLAGS@
-GDK_BACKEND = @GDK_BACKEND@
GENERATED_SOURCES = @GENERATED_SOURCES@
GIO_CFLAGS = @GIO_CFLAGS@
GIO_LIBS = @GIO_LIBS@
@@ -162,6 +158,8 @@ PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POLICY_VERSIONS = @POLICY_VERSIONS@
+PROFILER_CFLAGS = @PROFILER_CFLAGS@
+PROFILER_LIBS = @PROFILER_LIBS@
RANLIB = @RANLIB@
RUNTIME = @RUNTIME@
SED = @SED@
@@ -217,11 +215,7 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
-target = @target@
target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/sources/README b/sources/README
index 79d3f3d..ae4672b 100644
--- a/sources/README
+++ b/sources/README
@@ -1,50 +1,26 @@
The contents of this directory are (basically) the first step
in creating .NET bindings, to libraries based on GObject.
-QUICK INSTRUCTIONS
-------------------
-
- Edit the .metadata file(s), then do a:
-
- make get-source-code
- make api
-
- You only have to do a "make get-source-code" once! After
- you have run "make get-source-code" once, do the following...
-
-
- Edit the .metadata file(s), then do a:
-
- make api
-
-
- Note, these instructions only generate XML files in the "api"
- directory. To turn those XML files (in the "api" directory)
- into C# code; and then turn that C# code into a .DLL, you'll
- need to perform extra steps, which are NOT described in this
- document.
-
- (If you are going to create a new .NET binding, then you will need
- to do more than just this.)
-
-
WHO USES THE SOURCES DIRECTORY
------------------------------
- This directory is essentially the "starting point" in the creation
- of a .NET binding. Most people can safely ignore it. (If all
+ This directory is essentially the starting point in the creation
+ of a .NET binding. Most people can safely ignore it. (If all
you want to do is build Gtk#, then you can ignore what's in this
directory.)
- This directory is not part of the normal "build process" for Gtk#.
+ This directory is not part of the normal build process for Gtk#.
But is instead used by people wishing to update an existing .NET
binding; or to create a new .NET binding (for a GObject based library).
The result of running "make api" on this directory (once everything
- is set up) are the XML files that you find in the "api" directory.
- (Those XML files, that you find in the "api" directory, are then used
- to generate the C# code. And then that C# code is used to create
- the various .DLL files.)
+ is set up) are the various '*-api.raw' XML files that you find in the
+ corresponding directories. Those XML files will then be used to generate
+ the C# code. And then that C# code is used to create the various .DLL
+ files.
+
+ Please refer to http://www.mono-project.com/GAPI for a more complete and
+ up-to-date guide to this process.
WHAT'S REQUIRED
@@ -52,63 +28,32 @@ WHAT'S REQUIRED
Before you can do anything here, you need to get the source
code to the various libraries (which you are generating .NET
- bindings for). And then do a little configuring. The current
- list of libraries that Gtk# supports is:
-
- pango-1.4.0
- atk-1.6.0
- gtk+-2.4.1
- libgnome-2.6.0
- libgnomecanvas-2.6.0
- libgnomeui-2.6.0
- libgnomeprint-2.6.0
- libgnomeprintui-2.6.0
- gtkhtml-3.0.10 files: gtkhtml.[ch], gtkhtml-types.h,
- gtkhtml-enums.h, gtkhtml-stream.[ch]
- libglade-2.3.6
- libart_lgpl-2.3.16
- librsvg-2.6.4
- gnome-vfs-2.6.0
- gnome-panel-2.6.0
-
- (If you create a new binding, that is part of Gtk#, be sure to add it
- to this list. Also, you'll need to add an entry in "gtk-sharp.sources".
- And you should add it to the "makefile" so that it is part of the
- "get-source-code" rule.)
-
- (There are two ways to get this source code. As you will see in the
- next section.)
+ bindings for). And then do a little configuring. The current
+ list of libraries that Gtk# supports is in the sources.xml and Makefile.am
+ files.
+
+ If you create a new binding that is part of Gtk#, be sure to add it to this
+ list.
+
+ There are two ways to get this source code, as you will see in the
+ next section.
SETTING THINGS UP
-----------------
To set things up, you need to get the source code to the libraries listed
- above. There are two (alternate) methods of doing this.
+ above. There are two (alternate) methods of doing this.
Method 1)
- Download it. Unpack the source code (if necessary). Then do the extra
- cofiguration stuff listed above.
+ Download and unpack the source code manually.
Method 2)
Run:
make get-source-code
+ (Method 2 is probably the easiest way to do it for most people. It
+ automatically goes and downloads everything you need, and sets everything
+ up for you.)
- (Method 2 is probably the easiest way to do it for most people. It automatically
- goes and downloads everything you need. And configures everything for you.)
-
-
-EDITING .METADATA FILES
------------------------
-
- Part of updating a .NET binding involves editing a .metadata file.
- (Assuming you already have the required source code, to the
- libraries...) once you update a binding, you then run:
-
- make api
-
- ...to create the new updated XML file(s) that will be placed in the "api"
- directory.
-
-
+ For more information, please refer to http://www.mono-project.com/GAPI
diff --git a/sources/sources.xml b/sources/sources.xml
index 3aadf89..f22a014 100644
--- a/sources/sources.xml
+++ b/sources/sources.xml
@@ -35,7 +35,7 @@
<exclude>gwin32outputstream.h</exclude>
<exclude>gwin32resolver.h</exclude>
<exclude>gwin32volumemonitor.h</exclude>
- </directory>
+ </directory>
</namespace>
</library>
</api>
@@ -50,39 +50,40 @@
<library name="libpango-1.0-0.dll">
<namespace name="Pango">
<directory path="pango-1.28.3/pango">
- <exclude>pangoatsui.c</exclude>
- <exclude>pangoatsui.h</exclude>
- <exclude>pangoatsui-fontmap.h</exclude>
- <exclude>pangoatsui-private.h</exclude>
- <exclude>pangocairo-atsui.h</exclude>
- <exclude>pangocairo-atsuifont.h</exclude>
- <exclude>pangocairo-fc.h</exclude>
- <exclude>pangocairo-win32.h</exclude>
- <exclude>pangocairo-private.h</exclude>
- <exclude>pangofc-decoder.c</exclude>
- <exclude>pangofc-decoder.h</exclude>
- <exclude>pangofc-font.c</exclude>
- <exclude>pangofc-font.h</exclude>
- <exclude>pangofc-fontmap.c</exclude>
- <exclude>pangofc-fontmap.h</exclude>
- <exclude>pangofc-private.h</exclude>
- <exclude>pangox-fontcache.c</exclude>
- <exclude>pangox-fontmap.c</exclude>
- <exclude>pangox-private.h</exclude>
- <exclude>pangox.h</exclude>
- <exclude>pangox.c</exclude>
- <exclude>pangoxft.h</exclude>
- <exclude>pangoxft-font.c</exclude>
- <exclude>pangoxft-font.h</exclude>
- <exclude>pangoxft-fontmap.c</exclude>
- <exclude>pangoxft-fontmap.h</exclude>
- <exclude>pangoxft-private.h</exclude>
- <exclude>pangoxft-render.c</exclude>
- <exclude>pangoxft-render.h</exclude>
- <exclude>pango-color-table.h</exclude>
- <exclude>pango-impl-utils.h</exclude>
- <exclude>pango-script-lang-table.h</exclude>
- <exclude>pango-script-table.h</exclude>
+ <exclude>pangoatsui.c</exclude>
+ <exclude>pangoatsui.h</exclude>
+ <exclude>pangoatsui-fontmap.h</exclude>
+ <exclude>pangoatsui-private.h</exclude>
+ <exclude>pangocairo-atsui.h</exclude>
+ <exclude>pangocairo-atsuifont.h</exclude>
+ <exclude>pangocairo-fc.h</exclude>
+ <exclude>pangocairo-win32.h</exclude>
+ <exclude>pangocairo-private.h</exclude>
+ <exclude>pangofc-decoder.c</exclude>
+ <exclude>pangofc-decoder.h</exclude>
+ <exclude>pangofc-font.c</exclude>
+ <exclude>pangofc-font.h</exclude>
+ <exclude>pangofc-fontmap.c</exclude>
+ <exclude>pangofc-fontmap.h</exclude>
+ <exclude>pangofc-private.h</exclude>
+ <exclude>pangox-fontcache.c</exclude>
+ <exclude>pangox-fontmap.c</exclude>
+ <exclude>pangox-private.h</exclude>
+ <exclude>pangox.h</exclude>
+ <exclude>pangox.c</exclude>
+ <exclude>pangoxft.h</exclude>
+ <exclude>pangoxft-font.c</exclude>
+ <exclude>pangoxft-font.h</exclude>
+ <exclude>pangoxft-fontmap.c</exclude>
+ <exclude>pangoxft-fontmap.h</exclude>
+ <exclude>pangoxft-private.h</exclude>
+ <exclude>pangoxft-render.c</exclude>
+ <exclude>pangoxft-render.h</exclude>
+ <exclude>pango-color-table.h</exclude>
+ <exclude>pango-impl-utils.h</exclude>
+ <exclude>pango-language-sample-table.h</exclude>
+ <exclude>pango-script-lang-table.h</exclude>
+ <exclude>pango-script-table.h</exclude>
</directory>
</namespace>
</library>