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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
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
* 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
* 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
* 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