Commit graph

234 commits

Author SHA1 Message Date
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
Mike Kestner c14d107865 2005-03-23 Mike Kestner <mkestner@novell.com>
* glib/Makefile.am : add new file.

svn path=/trunk/gtk-sharp/; revision=42169
2005-03-23 20:39:18 +00:00
Mike Kestner ac4cc59206 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.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.

svn path=/trunk/gtk-sharp/; revision=42168
2005-03-23 20:35:15 +00:00
John Luke b9831cc33e 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


svn path=/trunk/gtk-sharp/; revision=41839
2005-03-15 16:40:24 +00:00
Mike Kestner 64073ff268 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.

svn path=/trunk/gtk-sharp/; revision=41740
2005-03-12 22:19:44 +00:00
Mike Kestner bd50999b1b 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.

svn path=/trunk/gtk-sharp/; revision=41738
2005-03-12 18:54:53 +00:00
Mike Kestner 8983ea960c 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.

svn path=/trunk/gtk-sharp/; revision=41711
2005-03-11 18:01:47 +00:00
Mike Kestner ac91f1c8b1 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.

svn path=/trunk/gtk-sharp/; revision=41661
2005-03-10 20:33:57 +00:00
Mike Kestner ae7d9dfbf9 2005-03-09 Mike Kestner <mkestner@novell.com>
* glib/Marshaller.cs : add IntPtr.Zero guarding.

svn path=/trunk/gtk-sharp/; revision=41607
2005-03-09 17:01:35 +00:00
Mike Kestner 90a870e2de 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.

svn path=/trunk/gtk-sharp/; revision=41579
2005-03-08 21:28:08 +00:00
Mike Kestner 0b0700bae6 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.

svn path=/trunk/gtk-sharp/; revision=41459
2005-03-04 18:59:09 +00:00
Mike Kestner 0677e5ac75 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.

svn path=/trunk/gtk-sharp/; revision=41409
2005-03-03 20:50:46 +00:00
Mike Kestner 57972ab070 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.

svn path=/trunk/gtk-sharp/; revision=41290
2005-02-28 18:11:24 +00:00
Mike Kestner 6d70444302 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.

svn path=/trunk/gtk-sharp/; revision=41208
2005-02-25 18:18:10 +00:00
Mike Kestner f120479d88 2005-02-03 Mike Kestner <mkestner@novell.com>
* glib/ObjectManager.cs (GetValidParentType): return null if
	G_TYPE_INVALID is returned from glue. [Fixes #72150]

svn path=/trunk/gtk-sharp/; revision=40063
2005-02-03 14:27:24 +00:00
Mike Kestner 6590388024 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]

svn path=/trunk/gtk-sharp/; revision=40007
2005-02-02 21:57:15 +00:00
Mike Kestner a8f16beaa7 2005-02-01 Fredrik Nilsson <jymdman@home.se>
* glib/Marshaller.cs : DateTime marshaling fix.

svn path=/trunk/gtk-sharp/; revision=39952
2005-02-01 22:35:48 +00:00
Dan Winship de70fff09f * 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

svn path=/trunk/gtk-sharp/; revision=39717
2005-01-28 16:44:30 +00:00
Mike Kestner 8152f4899e 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]

svn path=/trunk/gtk-sharp/; revision=39615
2005-01-27 00:50:46 +00:00
Dan Winship 67e7fc486b * 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.

svn path=/trunk/gtk-sharp/; revision=39256
2005-01-20 15:45:13 +00:00
Dan Winship 7a30d17a4d * 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

svn path=/trunk/gtk-sharp/; revision=38957
2005-01-14 19:54:07 +00:00
Mike Kestner b6b39dbbfe 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.

svn path=/trunk/gtk-sharp/; revision=38729
2005-01-11 20:49:50 +00:00
Mike Kestner 8fd87b2e0a 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.

svn path=/trunk/gtk-sharp/; revision=38551
2005-01-09 00:26:45 +00:00
Mike Kestner 56a0288b7b 2004-12-30 Mike Kestner <mkestner@novell.com>
* glib/Object.cs : mark the Data hashtable obsolete.

svn path=/trunk/gtk-sharp/; revision=38201
2004-12-30 18:59:09 +00:00
Mike Kestner adef5f7bbd 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.

svn path=/trunk/gtk-sharp/; revision=38074
2004-12-23 22:59:59 +00:00
Mike Kestner e38ece1fdb 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]

svn path=/trunk/gtk-sharp/; revision=38046
2004-12-21 19:47:55 +00:00
Dan Winship a610fb9a79 * 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

svn path=/trunk/gtk-sharp/; revision=37998
2004-12-20 22:05:21 +00:00
Mike Kestner 256bc09aee 2004-12-16 Tambet Ingo <tambet@ximian.com>
* glib/Opaque.cs : hold a weakref in the hash, not a strong ref.

svn path=/trunk/gtk-sharp/; revision=37840
2004-12-16 17:09:58 +00:00
Mike Kestner 993d91fa31 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

svn path=/trunk/gtk-sharp/; revision=37324
2004-12-07 19:03:55 +00:00
Mike Kestner 3d6cb09562 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.

svn path=/trunk/gtk-sharp/; revision=37049
2004-12-03 20:04:18 +00:00
Todd Berman 6d9785c7f7 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.

svn path=/trunk/gtk-sharp/; revision=36912
2004-12-01 21:41:10 +00:00
Mike Kestner 70d245e7fe 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]


svn path=/trunk/gtk-sharp/; revision=36845
2004-11-30 14:36:10 +00:00
Dan Winship 9d04b4dd06 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.

        * doc/en/Gtk/: update for container child property change

svn path=/trunk/gtk-sharp/; revision=36284
2004-11-18 20:31:22 +00:00
Dan Winship 598f8e28e5 * 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.)

svn path=/trunk/gtk-sharp/; revision=36174
2004-11-16 18:03:58 +00:00
Mike Kestner cd10436742 2004-11-09 Mike Kestner <mkestner@novell.com>
* */Makefile.am : make the Obsolete warnings shaddup.

svn path=/trunk/gtk-sharp/; revision=35999
2004-11-11 03:58:14 +00:00
Dan Winship e1dc10e4c8 * 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]

svn path=/trunk/gtk-sharp/; revision=35885
2004-11-09 14:22:39 +00:00
Dan Winship df41dcc177 * 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

svn path=/trunk/gtk-sharp/; revision=35702
2004-11-05 16:47:15 +00:00
Todd Berman 532947448e 2004-11-04 Todd Berman <tberman@off.net>
* glib/ListBase.cs: In Empty, call FreeList, not Dispose.

svn path=/trunk/gtk-sharp/; revision=35665
2004-11-04 20:01:40 +00:00
Todd Berman 838882b81a 2004-11-04 Todd Berman <tberman@off.net>
* glib/ListBase.cs: Make sure to properly check if it is a
        GLib.Object subclass.

svn path=/trunk/gtk-sharp/; revision=35654
2004-11-04 19:43:10 +00:00
Todd Berman cac3c4a368 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.

svn path=/trunk/gtk-sharp/; revision=35650
2004-11-04 19:29:01 +00:00
Mike Kestner 7f3171c814 merge to HEAD of jeroen and friends' work on the 2-4 branch. HEAD
is now tracking Gnome 2.6.

svn path=/trunk/gtk-sharp/; revision=35479
2004-10-29 20:33:07 +00:00
Mike Kestner a5ee1fee3b mark Boxed [Obsolete]
svn path=/trunk/gtk-sharp/; revision=35191
2004-10-21 01:08:10 +00:00
Mike Kestner cd85c4b3de 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.

svn path=/trunk/gtk-sharp/; revision=34523
2004-09-29 17:47:51 +00:00
Mike Kestner d75f4ef6ca 2004-09-26 Mike Kestner <mkestner@ximian.com>
* glib/Idle.cs : proxy hash keys are uints, not ints.

svn path=/trunk/gtk-sharp/; revision=34420
2004-09-27 00:28:16 +00:00
Miguel de Icaza 95978e0ce7 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.

svn path=/trunk/gtk-sharp/; revision=34094
2004-09-20 16:43:16 +00:00
Mike Kestner 0d9c6b74e2 kill a C.WL
svn path=/trunk/gtk-sharp/; revision=33124
2004-08-31 19:18:28 +00:00