Commit graph

312 commits

Author SHA1 Message Date
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