Commit graph

479 commits

Author SHA1 Message Date
Andrés G. Aragoneses 005731b75c 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.


svn path=/trunk/gtk-sharp/; revision=131835
2009-04-15 22:33:26 +00:00
Andrés G. Aragoneses 722954e799 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.


svn path=/trunk/gtk-sharp/; revision=131780
2009-04-15 15:32:41 +00:00
Christian Hoff 291ee61b2d 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.

svn path=/trunk/gtk-sharp/; revision=131604
2009-04-13 17:44:48 +00:00
Mike Kestner edf5b066e1 2009-04-09 Mike Kestner <mkestner@novell.com>
* glib/ListBase.cs: fix g_object_unref dllimport lib.
	[Fixes #493128]

svn path=/trunk/gtk-sharp/; revision=131388
2009-04-09 14:38:16 +00:00
Christian Hoff b2a4c7ee7c 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]

svn path=/trunk/gtk-sharp/; revision=127892
2009-02-24 20:06:07 +00:00
Christian Hoff e91ff2bdad 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

svn path=/trunk/gtk-sharp/; revision=127183
2009-02-17 17:38:05 +00:00
Mike Kestner bc188c9358 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.

svn path=/trunk/gtk-sharp/; revision=124940
2009-01-29 16:26:09 +00:00
Mike Kestner d7f231117d 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]

svn path=/trunk/gtk-sharp/; revision=124683
2009-01-27 17:45:15 +00:00
Mike Kestner 1d9f50edb7 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]

svn path=/trunk/gtk-sharp/; revision=124561
2009-01-26 20:42:50 +00:00
Mike Kestner 27c413091c 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]

svn path=/trunk/gtk-sharp/; revision=124400
2009-01-24 04:47:54 +00:00
Mike Kestner 33849fd085 2009-01-09 Mike Kestner <mkestner@novell.com>
* glib/Opaque.cs (GetOpaque): return null for IntPtr.Zero.

svn path=/trunk/gtk-sharp/; revision=123140
2009-01-12 22:15:47 +00:00
Mike Kestner 1a16f66803 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.

svn path=/trunk/gtk-sharp/; revision=122802
2009-01-08 18:43:00 +00:00
Andrés G. Aragoneses 8ffc1097fb revert r122505
svn path=/trunk/gtk-sharp/; revision=122553
2009-01-06 15:27:12 +00:00
Andrés G. Aragoneses 1f40330573 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]


svn path=/trunk/gtk-sharp/; revision=122505
2009-01-06 03:36:56 +00:00
Mike Kestner 65f96d21dc 2009-01-04 Mike Kestner <mkestner@novell.com>
* glib/GType.cs: fix incorrect null check noticed by Christian Hoff.
	[Fixes #463445]

svn path=/trunk/gtk-sharp/; revision=122390
2009-01-04 16:52:22 +00:00
Andrés G. Aragoneses a8b28619be 2008-12-22 Andrés G. Aragoneses <aaragoneses@novell.com>
* glib/GType.cs: simplify, avoiding a static method.  
        * generator/InterfaceGen.cs: track API.
        * glib/Value.cs: reuse g_type_is_a.
        [Improves fix for #448009 in r121990]


svn path=/trunk/gtk-sharp/; revision=121991
2008-12-22 17:16:03 +00:00
Andrés G. Aragoneses 8191911b26 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]


svn path=/trunk/gtk-sharp/; revision=121990
2008-12-22 17:02:09 +00:00
Stephane Delcroix 3a87d8d650 2008-12-11 Stephane Delcroix <sdelcroix@novell.con>
* glib/Timeout.cs: map AddSeconds ().

svn path=/trunk/gtk-sharp/; revision=121925
2008-12-20 13:03:07 +00:00
Mike Kestner 89afb3f49f 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.

svn path=/trunk/gtk-sharp/; revision=121880
2008-12-19 18:57:42 +00:00
Andrés G. Aragoneses 470776ccea * glib/Signal.cs: Improve protection against invalid signals.
svn path=/trunk/gtk-sharp/; revision=121045
2008-12-08 21:54:20 +00:00
Mike Kestner 7a52b14c1c 2008-11-25 Mike Kestner <mkestner@novell.com>
* glib/Value.cs: fix for 'IntPtr as object' value construction.

svn path=/trunk/gtk-sharp/; revision=120041
2008-11-26 01:56:46 +00:00
Mike Kestner 84a63992fd remove a C.WL, oops
svn path=/trunk/gtk-sharp/; revision=119652
2008-11-21 17:47:37 +00:00
Mike Kestner 8d6e58e175 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.

svn path=/trunk/gtk-sharp/; revision=119648
2008-11-21 17:42:16 +00:00
Stephane Delcroix 1d63a0e3e7 Global.ApplicationName property
2008-11-21  Stephane Delcroix  <sdelcroix@novell.com>

	* glib/Global.cs: implement Global.ApplicationName for localized
	application name.

svn path=/trunk/gtk-sharp/; revision=119633
2008-11-21 16:54:10 +00:00
Stephane Delcroix 68ec7f1ebd map g_format_size_for_display in Format.cs
2008-11-21  Stephane Delcroix  <sdelcroix@novell.com>

	* Makefile.am:
	* glib/Format.cs: new class to map the g_format methods

svn path=/trunk/gtk-sharp/; revision=119630
2008-11-21 16:42:46 +00:00
Brad Taylor 45622e1d33 2008-11-14 Brad Taylor <brad@getcoded.net>
* glib/Object.cs: Bind g_object_notify.

	* doc/en/GLib/Object.xml: Document new API.


svn path=/trunk/gtk-sharp/; revision=118864
2008-11-14 16:21:16 +00:00
Mike Gorse c9d658f381 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.

svn path=/trunk/gtk-sharp/; revision=117919
2008-11-04 20:17:00 +00:00
Mike Kestner 4de7ad4914 2008-10-29 Mike Kestner <mkestner@novell.com>
* glib/Signal.cs : custom marshaling hooks
	* glib/SignalClosure.cs : support for custom marshalers.

svn path=/trunk/gtk-sharp/; revision=117424
2008-10-29 21:41:57 +00:00
Stephane Delcroix e7a4cbea59 2008-10-27 Stephane Delcroix <sdelcroix@novell.com>
* glib/ListBase.cs: DataMarshal: create the right object for *Adapter
	list items.

svn path=/trunk/gtk-sharp/; revision=117169
2008-10-27 15:08:02 +00:00
Mike Kestner d059903d1c 2008-10-24 Mike Kestner <mkestner@novell.com>
* glib/GType.cs: register IntPtr.

svn path=/trunk/gtk-sharp/; revision=116997
2008-10-24 22:03:49 +00:00
Mike Kestner 51299b17bb 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.

svn path=/trunk/gtk-sharp/; revision=114008
2008-09-24 20:06:47 +00:00
Mike Kestner ead904c8a3 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.

svn path=/trunk/gtk-sharp/; revision=113989
2008-09-24 18:53:05 +00:00
Andrés G. Aragoneses 76c808b7cb Cosmetic: spaces to tabs and coding guidelines
svn path=/trunk/gtk-sharp/; revision=113403
2008-09-18 11:34:15 +00:00
Zoltan Varga fc871aacca 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.

svn path=/trunk/gtk-sharp/; revision=112905
2008-09-12 20:07:13 +00:00
Zoltan Varga b1a12cf3ec 2008-09-09 Zoltan Varga <vargaz@gmail.com>
* glib/GType.cs (FindTypeInReferences): Skip dynamic assemblies.

svn path=/trunk/gtk-sharp/; revision=112605
2008-09-09 16:50:16 +00:00
Mike Kestner fdfff5bb60 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.

svn path=/trunk/gtk-sharp/; revision=112545
2008-09-08 20:52:27 +00:00
Andrés G. Aragoneses a4bc03d66d 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.


svn path=/trunk/gtk-sharp/; revision=112360
2008-09-05 07:38:11 +00:00
Mike Kestner dee1e4f321 2008-08-27 Mike Kestner <mkestner@novell.com>
* glib/Signal.cs: multiple dispose guarding for closures.

svn path=/trunk/gtk-sharp/; revision=111710
2008-08-27 14:54:34 +00:00
Mike Kestner 47e002a7d4 2008-08-20 Mike Kestner <mkestner@novell.com>
* glib/Object.cs:
	* glib/Signal.cs: fix a couple 2.0-isms.  Patch from Christian Hoff.

svn path=/trunk/gtk-sharp/; revision=111574
2008-08-25 20:43:09 +00:00
Mike Kestner cab2f46db5 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.

svn path=/trunk/gtk-sharp/; revision=111173
2008-08-20 19:48:26 +00:00
Mike Kestner b2e51e9989 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.

svn path=/trunk/gtk-sharp/; revision=111154
2008-08-20 15:53:03 +00:00
Brad Taylor 70b8817f12 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.


svn path=/trunk/gtk-sharp/; revision=111015
2008-08-19 22:00:33 +00:00
Mike Kestner 51454acbb7 2008-06-28 Mike Kestner <mkestner@novell.com>
* glib/Marshaller.cs: some 64 bit fixes for time_t marshaling
	issue found by Federico.

svn path=/trunk/gtk-sharp/; revision=106828
2008-06-28 17:15:31 +00:00
Mike Kestner 04d1d00b15 2008-06-20 Mike Kestner <mkestner@novell.com>
* glib/Value.cs: Patch from Christian Hoff.  Support for byte and
	sbyte values.

svn path=/trunk/gtk-sharp/; revision=106309
2008-06-20 15:51:03 +00:00
Mike Kestner 793802f7be 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.

svn path=/trunk/gtk-sharp/; revision=106058
2008-06-17 20:18:23 +00:00
Mike Kestner 179d4b214f 2008-06-17 Mike Kestner <mkestner@novell.com>
* glib/GType.cs (LookupType): traversed referenced assemblies to
	find types in currently unloaded assemblies.  Fixes #400595.

svn path=/trunk/gtk-sharp/; revision=106027
2008-06-17 16:36:06 +00:00
Mike Kestner d46963e86b 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.

svn path=/trunk/gtk-sharp/; revision=105905
2008-06-16 14:35:32 +00:00
Andrés G. Aragoneses f006f28918 * glib/glue/thread.c: Fix a warning.
svn path=/trunk/gtk-sharp/; revision=105185
2008-06-06 17:31:34 +00:00
Mike Kestner 9864a0960d 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.

svn path=/trunk/gtk-sharp/; revision=105177
2008-06-06 16:55:00 +00:00
Mike Kestner 621b39b531 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.

svn path=/trunk/gtk-sharp/; revision=103308
2008-05-15 17:36:46 +00:00
Andrés G. Aragoneses 52e68fbeb6 * 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.

svn path=/trunk/gtk-sharp/; revision=103198
2008-05-14 16:03:13 +00:00
Mike Kestner 22add1100a 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.

svn path=/trunk/gtk-sharp/; revision=102693
2008-05-07 02:13:16 +00:00
Mike Kestner b9d94385a6 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.

svn path=/trunk/gtk-sharp/; revision=102349
2008-05-02 16:58:46 +00:00
Mike Kestner 0780ed3c0d 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.

svn path=/trunk/gtk-sharp/; revision=102241
2008-04-30 20:15:45 +00:00
Mike Kestner 4afdaf6602 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.

svn path=/trunk/gtk-sharp/; revision=102064
2008-04-28 19:00:48 +00:00
Mike Kestner d5e5c13a1f 2008-04-28 Mike Kestner <mkestner@novell.com>
* glib/GType.cs : Add a few missing static fields.

svn path=/trunk/gtk-sharp/; revision=102063
2008-04-28 18:52:49 +00:00
Andrés G. Aragoneses a0d608fcd2 * glib/Signal.cs: Remove unneeded cast.
svn path=/trunk/gtk-sharp/; revision=101704
2008-04-24 17:18:59 +00:00
Andrés G. Aragoneses d0b8f4c279 * atk/Object.custom: custom protected method for firing
the ChildrenChanged signal.
* glib/Signal.cs: first implementation of a managed
method for emitting signals.

svn path=/trunk/gtk-sharp/; revision=101700
2008-04-24 17:11:11 +00:00
Mike Kestner 35bc523511 2008-04-17 Mike Kestner <mkestner@novell.com>
* glib/Object.cs: add Harden method to reduce the reflection 
	overhead in Gnome.Program.

svn path=/trunk/gtk-sharp/; revision=101024
2008-04-17 16:32:44 +00:00
Mike Kestner d2a74c9a37 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.

svn path=/trunk/gtk-sharp/; revision=101021
2008-04-17 16:17:37 +00:00
Mike Kestner 11286d19c6 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]

svn path=/trunk/gtk-sharp/; revision=100762
2008-04-15 19:43:16 +00:00
Mike Kestner 772790dcb0 2008-04-15 Mike Kestner <mkestner@novell.com>
* glib/Marshaller.cs: marshal null string arrays as a null IntPtr[].
	[Fixes #378514]

svn path=/trunk/gtk-sharp/; revision=100744
2008-04-15 17:43:55 +00:00
Mike Kestner 213a3b99e3 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.

svn path=/trunk/gtk-sharp/; revision=99875
2008-04-04 18:45:13 +00:00
Mike Kestner bdeb30bbad 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.

svn path=/trunk/gtk-sharp/; revision=99849
2008-04-04 16:10:08 +00:00
Andrés G. Aragoneses 5fabaace5e * 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.
(Patch reviewed by mkestner)

svn path=/trunk/gtk-sharp/; revision=99134
2008-03-27 15:59:26 +00:00
Mike Kestner 2a1bb876bf kill a debug cwl
svn path=/trunk/gtk-sharp/; revision=98393
2008-03-15 18:09:32 +00:00
Mike Kestner 51292d20b3 2008-03-12 Mike Kestner <mkestner@novell.com>
* glib/GType.cs: add an Init method for explicit initialization.

svn path=/trunk/gtk-sharp/; revision=98056
2008-03-12 16:15:06 +00:00
Mike Kestner be28ed3597 2008-02-29 Mike Kestner <mkestner@novell.com>
* generator/ReturnValue.cs: null-term array handling.
	* glib/Marshaller.cs: marshaling methods for null-term arrays.

svn path=/trunk/gtk-sharp/; revision=97032
2008-02-29 23:42:27 +00:00
Mike Kestner c949e6e8de 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]

svn path=/trunk/gtk-sharp/; revision=96363
2008-02-21 16:32:03 +00:00
Mike Kestner 776aeccdbb 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.

svn path=/trunk/gtk-sharp/; revision=93548
2008-01-22 16:54:44 +00:00
Mike Kestner 5ccb3ccd2f 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.

svn path=/trunk/gtk-sharp/; revision=93204
2008-01-17 21:10:25 +00:00
Mike Kestner 04a642f070 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.

svn path=/trunk/gtk-sharp/; revision=92686
2008-01-11 19:41:51 +00:00
Mike Kestner 209f353fc8 2007-12-06 Mike Kestner <mkestner@novell.com>
* * : update to 2.12 API.

svn path=/trunk/gtk-sharp/; revision=90823
2007-12-06 17:23:28 +00:00
Mike Kestner 3839abb463 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]

svn path=/trunk/gtk-sharp/; revision=90428
2007-11-29 14:36:26 +00:00
Mike Kestner f5e6d14520 2007-11-28 Mike Kestner <mkestner@novell.com>
* glib/Object.cs: take ref using method param to avoid
	NREs. [Fixes #344250]

svn path=/trunk/gtk-sharp/; revision=90412
2007-11-29 02:02:24 +00:00
Mike Kestner 70018d857d 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.

svn path=/trunk/gtk-sharp/; revision=89776
2007-11-16 18:35:38 +00:00
Mike Kestner 86d29321c3 2007-11-12 Mike Kestner <mkestner@novell.com>
* generator/SymbolTable.cs: remove GCallback mapping.
	* glib/GCallback.cs: kill, bad idea.

svn path=/trunk/gtk-sharp/; revision=89519
2007-11-13 03:04:32 +00:00
Mike Kestner 097537310e 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.

svn path=/trunk/gtk-sharp/; revision=89477
2007-11-12 17:27:35 +00:00
Mike Kestner de78d57176 2007-11-08 Mike Kestner <mkestner@novell.com>
* glib/Marshaller.cs: new null-terminated string[] marshaler from
	Mono.Unix with adaptations by Michael Hutchinson.

svn path=/trunk/gtk-sharp/; revision=89218
2007-11-08 17:27:13 +00:00
Mike Kestner 4a9070a2e1 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.

svn path=/trunk/gtk-sharp/; revision=88730
2007-11-02 16:36:26 +00:00
Mike Kestner 1fa0231217 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.

svn path=/trunk/gtk-sharp/; revision=88126
2007-10-24 20:13:08 +00:00
Mike Kestner 3341e20c13 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).

svn path=/trunk/gtk-sharp/; revision=87532
2007-10-15 20:25:05 +00:00
Mike Kestner 925a2b63c3 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.

svn path=/trunk/gtk-sharp/; revision=86897
2007-10-04 17:52:35 +00:00
Mike Kestner 70bd5d56e9 2007-09-21 Mike Kestner <mkestner@novell.com>
* glib/Object.cs: add ctor (), which invokes CreateNativeObject
	to allow direct subclasses that do all the registration automatically.

svn path=/trunk/gtk-sharp/; revision=86730
2007-10-02 03:02:43 +00:00
Mike Kestner c93ecb7f88 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.

svn path=/trunk/gtk-sharp/; revision=85658
2007-09-11 20:34:24 +00:00
Mike Kestner c2230278b3 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.

svn path=/trunk/gtk-sharp/; revision=85480
2007-09-07 14:40:46 +00:00
Mike Kestner f956b09858 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.

svn path=/trunk/gtk-sharp/; revision=84112
2007-08-14 18:53:53 +00:00
Mike Kestner a06235f02f 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]

svn path=/trunk/gtk-sharp/; revision=82293
2007-07-19 15:35:28 +00:00
Mike Kestner b177644f06 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]

svn path=/trunk/gtk-sharp/; revision=78669
2007-06-05 19:53:34 +00:00
Mike Kestner 9611a6352f 2007-04-23 Mike Kestner <mkestner@novell.com>
* glib/Value.cs : add support for accessing generic struct boxed types
	as objects.  [Fixes #79224]

svn path=/trunk/gtk-sharp/; revision=76125
2007-04-23 16:17:12 +00:00
Mike Kestner 2ff726d3e6 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.

svn path=/trunk/gtk-sharp/; revision=75657
2007-04-12 18:01:33 +00:00
Mike Kestner a8b11a7445 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.

svn path=/trunk/gtk-sharp/; revision=75656
2007-04-12 17:57:50 +00:00
Mike Kestner c320772499 2007-04-05 Mike Kestner <mkestner@novell.com>
* glib/ToggleRef.cs : flush a few leftover changes from a
	ToggleRef refinement.

svn path=/trunk/gtk-sharp/; revision=75457
2007-04-05 19:59:23 +00:00
Mike Kestner fd01afc12b 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

svn path=/trunk/gtk-sharp/; revision=74004
2007-03-09 14:22:43 +00:00
Mike Kestner 57810954a3 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.  

svn path=/trunk/gtk-sharp/; revision=73965
2007-03-08 20:28:24 +00:00
Mike Kestner 32de2832db 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.

svn path=/trunk/gtk-sharp/; revision=73840
2007-03-06 20:10:15 +00:00
Mike Kestner 2469ba16ef 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.]

svn path=/trunk/gtk-sharp/; revision=73023
2007-02-16 16:18:59 +00:00
Mike Kestner 2ac6bb5457 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

svn path=/trunk/gtk-sharp/; revision=60521
2006-05-10 17:13:30 +00:00
Joe Shaw a199215947 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.

svn path=/trunk/gtk-sharp/; revision=60424
2006-05-08 20:45:48 +00:00
Mike Kestner 16fef6601b 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.

svn path=/trunk/gtk-sharp/; revision=58609
2006-03-27 18:35:08 +00:00
Mike Kestner e1d8403f5d 2005-01-13 Mike Kestner <mkestner@novell.com>
* glib/Marshaller.cs : subtract utc_offset when marshaling to time_t.
	[Fixes #77244]

svn path=/trunk/gtk-sharp/; revision=55575
2006-01-14 14:07:27 +00:00
Alp Toker c7a1509caa svn path=/trunk/gtk-sharp/; revision=54927 2005-12-30 12:46:07 +00:00
Alp Toker 21cd2dfc14 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.


svn path=/trunk/gtk-sharp/; revision=54926
2005-12-30 12:14:59 +00:00
Wade Berrier a36a3d4c0e * .pc and wrapper scripts: Use relative paths so gtk-sharp is
relocatable


svn path=/trunk/gtk-sharp/; revision=52437
2005-11-01 05:12:12 +00:00
Gonzalo Paniagua Javier 7ea1705778 2005-10-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
* glib/Object.cs: remove the fast path. It was causing troubles with
	MD.


svn path=/trunk/gtk-sharp/; revision=51957
2005-10-20 02:36:26 +00:00
Mike Kestner 35ee367957 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.

svn path=/trunk/gtk-sharp/; revision=51493
2005-10-09 18:55:31 +00:00
Ben Maurer 1be96c843d 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


svn path=/trunk/gtk-sharp/; revision=51481
2005-10-08 21:08:04 +00:00
Gonzalo Paniagua Javier 8900d1ccd7 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.


svn path=/trunk/gtk-sharp/; revision=51448
2005-10-07 21:33:30 +00:00
Mike Kestner fede690a37 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.

svn path=/trunk/gtk-sharp/; revision=50884
2005-09-27 19:12:43 +00:00
Mike Kestner 0435b45895 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.

svn path=/trunk/gtk-sharp/; revision=50641
2005-09-23 22:36:33 +00:00
Mike Kestner f9be897c3f 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.

svn path=/trunk/gtk-sharp/; revision=50450
2005-09-22 04:26:52 +00:00
Tambet Ingo 5a35a7dcef 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.


svn path=/trunk/gtk-sharp/; revision=50309
2005-09-20 16:32:43 +00:00
Tambet Ingo 0b40e4092b 2005-09-02 Tambet Ingo <tambet@ximian.com>
* glib/Object.cs: Clean disposed flag from resurrected objects.


svn path=/trunk/gtk-sharp/; revision=49457
2005-09-05 08:55:04 +00:00
John Luke a12a4b48f0 2005-08-26 John Luke <john.luke@gmail.com>
* glib/Signal.cs: deal with obj.Handle == IntPtr.Zero
        to avoid assertions


svn path=/trunk/gtk-sharp/; revision=48959
2005-08-27 00:27:42 +00:00
Mike Kestner 32e6f7df76 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

svn path=/trunk/gtk-sharp/; revision=48861
2005-08-25 22:32:18 +00:00
Mike Kestner 5e70f6eb45 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/.

svn path=/trunk/gtk-sharp/; revision=48859
2005-08-25 20:59:21 +00:00
Ben Maurer cbe9bad936 2005-08-23 Ben Maurer <bmaurer@novell.com>
* glib/Object.cs: Escape names and ensure stuff is unique.


svn path=/trunk/gtk-sharp/; revision=48772
2005-08-24 00:36:57 +00:00
Mike Kestner b5964c52d0 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.

svn path=/trunk/gtk-sharp/; revision=48389
2005-08-15 15:56:16 +00:00
Dan Winship 12cd8d0d17 * 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

svn path=/trunk/gtk-sharp/; revision=48168
2005-08-09 14:44:32 +00:00
Dan Winship eb4fdee774 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.

svn path=/trunk/gtk-sharp/; revision=47928
2005-08-02 18:45:21 +00:00
Dan Winship 196be89bc9 * 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

svn path=/trunk/gtk-sharp/; revision=47564
2005-07-22 18:36:50 +00:00
Dan Winship 635ed16db4 * 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.

svn path=/trunk/gtk-sharp/; revision=46773
2005-06-30 17:09:39 +00:00
Mike Kestner eddfdc7910 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.

svn path=/trunk/gtk-sharp/; revision=46457
2005-06-23 22:28:06 +00:00
Lluis Sanchez c5585dfd78 2005-06-09 Lluis Sanchez <lluis@novell.com>
* glib/Marshaller.cs: Added null check in FilenamePtrToString.


svn path=/trunk/gtk-sharp/; revision=45706
2005-06-09 14:52:24 +00:00
Mike Kestner 463618c958 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]

svn path=/trunk/gtk-sharp/; revision=45702
2005-06-09 14:27:48 +00:00
Mike Kestner e24d72317a 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.

svn path=/trunk/gtk-sharp/; revision=45654
2005-06-08 17:29:48 +00:00
Mike Kestner a307c78232 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]

svn path=/trunk/gtk-sharp/; revision=45649
2005-06-08 16:53:12 +00:00
Dan Winship 5743ba2da8 * glib/GType.cs (cctor): call g_type_init(). (Avoids debug spew
when monodocer updates doc/en/GLib/GType.xml.)

svn path=/trunk/gtk-sharp/; revision=45500
2005-06-06 15:09:07 +00:00
Mike Kestner ff096ac998 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]

svn path=/trunk/gtk-sharp/; revision=45334
2005-06-02 16:16:28 +00:00
Mike Kestner fee353d525 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]

svn path=/trunk/gtk-sharp/; revision=45328
2005-06-02 14:16:52 +00:00
Mike Kestner c881d7c5aa 2005-06-01 Mike Kestner <mkestner@novell.com>
* glib/Value.cs : handle enum/flags types in Val.
	[Fixes #75112]

svn path=/trunk/gtk-sharp/; revision=45310
2005-06-01 21:11:51 +00:00
Dan Winship f6f9fd0c79 * 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.

svn path=/trunk/gtk-sharp/; revision=45301
2005-06-01 17:58:28 +00:00
Mike Kestner 6334f60e2e 2005-05-31 Mike Kestner <mkestner@novell.com>
* glib/Object.cs : rework the weakref release mechanism to avoid a
	couple "resurrection" issues.

svn path=/trunk/gtk-sharp/; revision=45267
2005-05-31 19:22:58 +00:00
Mike Kestner 3f2252ad82 fix a typo in a warning message
svn path=/trunk/gtk-sharp/; revision=44457
2005-05-12 19:06:36 +00:00
Mike Kestner 551b1d3fd7 2005-05-11 Mike Kestner <mkestner@novell.com>
* glib/Object.cs : mark Dispose virtual.
	* gtk/Object.cs : release the Destroy handler in Dispose.

svn path=/trunk/gtk-sharp/; revision=44420
2005-05-12 00:42:21 +00:00
Mike Kestner 3a004064f7 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.

svn path=/trunk/gtk-sharp/; revision=44325
2005-05-10 11:30:12 +00:00
Mike Kestner 09c61ee026 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.

svn path=/trunk/gtk-sharp/; revision=44047
2005-05-04 20:53:02 +00:00
Mike Kestner b957224b9f 2005-05-04 Mike Kestner <mkestner@novell.com>
* glib/Signal.cs : s/DestroyNotify/SignalDestroyNotify to fix mcs 1.0
	compilation.
	* gdk/Input.custom : ditto.

svn path=/trunk/gtk-sharp/; revision=44046
2005-05-04 20:36:55 +00:00
Dan Winship 900b14290c * 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.

svn path=/trunk/gtk-sharp/; revision=44038
2005-05-04 16:54:24 +00:00
Dan Winship a7d8b64f7a * 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

svn path=/trunk/gtk-sharp/; revision=44020
2005-05-04 11:47:25 +00:00
Dan Winship faa783fba7 * 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...)

svn path=/trunk/gtk-sharp/; revision=43461
2005-04-22 19:43:46 +00:00
Dan Winship 7ebae92199 * glib/Type.cs:
* glib/TypeConverter.cs: 
	* glib/Value.cs: sort lists of GTypes into TypeFundamental order

svn path=/trunk/gtk-sharp/; revision=43457
2005-04-22 19:10:47 +00:00
Dan Winship e1306617e5 * 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

svn path=/trunk/gtk-sharp/; revision=43406
2005-04-21 15:12:12 +00:00
Mike Kestner e56d2feafc kill useless .cvsignore files
svn path=/trunk/gtk-sharp/; revision=43355
2005-04-20 20:11:00 +00:00
Dan Winship abbec2b649 * 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.

svn path=/trunk/gtk-sharp/; revision=42791
2005-04-11 14:56:29 +00:00
Mike Kestner e3a26238b6 2005-03-31 Mike Kestner <mkestner@novell.com>
* glib/ManagedValue.cs : add null/NULL guarding to Copy, Free, 
	WrapObject, and ObjectForWrapper.  [Fixes #74197]

svn path=/trunk/gtk-sharp/; revision=42434
2005-03-31 16:31:31 +00:00
Mike Kestner 9001c6fa25 2005-03-29 Mike Kestner <mkestner@novell.com>
* glib/Marshaller.cs : special case ucs4 "0" conversion.
	[Fixes #74175]

svn path=/trunk/gtk-sharp/; revision=42337
2005-03-29 15:28:02 +00:00
Mike Kestner 4caefdec00 2005-03-25 Mike Kestner <mkestner@novell.com>
* */*.cs : tag native callback delegates with [CDeclCallback].
	* */*.custom : tag native callback delegates with [CDeclCallback].

svn path=/trunk/gtk-sharp/; revision=42253
2005-03-25 17:57:15 +00:00
Mike Kestner d4af78e347 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.

svn path=/trunk/gtk-sharp/; revision=42241
2005-03-24 22:47:50 +00:00
Mike Kestner 17dc787956 remove some c.wls
svn path=/trunk/gtk-sharp/; revision=42222
2005-03-24 16:22:49 +00:00