2008-08-20 Mike Kestner * generator/ReturnValue.cs: use new ListPtrToArray marshaler for lists with known element types. * glib/Marshaller.cs: new ListPtrToArray marshaller with more aggressive list disposal. * gtk/Container.custom: remove manual Children impl. Use Children in GetEnumerator instead of pinvoking directly. * gtk/Gtk.metadata: remove hidden attr and add element type and owned for Container.GetChildren to generate it properly. 2008-08-20 Mike Kestner Patch from Christian Hoff fixing bug #396195. * generator/Property.cs: handle interface adapter values. * generator/InterfaceGen.cs: register the gtype so mapping occurs automatically for interface adapters. New GetObject overload to handle already wrapped objects more efficiently. * glib/Value.cs: handle set_Val for interface adapter objects. 2008-08-19 Brad Taylor * atk/Object.custom: Add method to allow emission of visible-data-changed signal. * atk/TextChangedDetail.cs: * atk/TextAdapter.custom: Add method to allow emission of text-changed signal. 2008-08-13 Mike Kestner * atk/Atk.metadata: switch Value methods to ref params since atk actually checks for initialized values instead of just treating it like uninitialized memory. Makes for uglier API, but avoids crashes in unfortunate memory content scenarios. 2008-08-04 Mike Kestner * gtk/IconTheme.custom: elements and the list returned by ListIcons are owned. 2008-08-04 Mike Kestner * gtk/Gtk.metadata: mark IconTheme.LoadIcon return as owned. 2008-07-23 Mike Kestner * atk/Atk.metadata: map some out params on Atk.Value. They were unusable in their existing form. 2008-07-08 Mike Kestner Patch from Christian Hoff with a few minor tweaks. * generator/CallbackGen.cs: refactor to use ManagedCallString and drop a ton of redundant, half-baked code. * generator/ManagedCallString.cs: add Unconditional setup method for stuff that has to happen before the try block. Add "drop_first" concept so it can be reused by CallbackGen which doesn't drop first params. * generator/Signal.cs: use Unconditional method for prep. * generator/VirtualMethod.cs: use Unconditional method for prep. * gtk/Gtk.metadata: mark a ref param. [Fixes #394352] 2008-06-28 Mike Kestner * gtk/Gtk.metadata: mark ListStore.Reorder array param. * gtk/ListStore.cs: compat obsolete method, though the old one was useless. 2008-06-28 Mike Kestner * glib/Marshaller.cs: some 64 bit fixes for time_t marshaling issue found by Federico. 2008-06-28 Mike Kestner * gtk/TreeSelection.custom: use list marshaler to avoid O(n^2) copy from old custom code. [Fixes #404669] 2008-06-28 Mike Kestner * gtk/Gtk.metadata: mark a const string. [Fixes #404630] 2008-06-27 Mike Kestner * gtk/Gtk.metadata: fix a couple out params. 2008-06-20 Mike Kestner * glib/Value.cs: Patch from Christian Hoff. Support for byte and sbyte values. 2008-06-17 Mike Kestner * glib/SignalClosure.cs: post back the gvalues after the closure is invoked using a new Update method on GLib.Value. This only impacts boxed types, since they are the only "value types" passed by ref in the signal marshaling environment. We can't call set_boxed on the value to update it, since that allocs new memory, we need to marshal the updated struct out to the existing native memory address using g_value_get_boxed. * glib/Value.cs (Update): new update method for writing values to an existing boxed type instance instead of allocating a new native struct. Fixes #398929. 2008-06-17 Mike Kestner * glib/GType.cs (LookupType): traversed referenced assemblies to find types in currently unloaded assemblies. Fixes #400595. 2008-06-16 Andrés G. Aragoneses * atk/Object.custom: * atk/glue/object.c: Simplified code for previous issue (recommendation from mkestner). 2008-06-16 Mike Kestner * glib/glue/object.c: fixes for object, boxed, and gtype property paramspec creation. Patch provided by Christian Hoff. 2008-06-09 Andrés G. Aragoneses * atk/Object.custom: * atk/glue/object.c: Temporary workaround for infinite recursion issue. 2008-06-06 Andrés G. Aragoneses * glib/glue/thread.c: Fix a warning. 2008-06-06 Mike Kestner Initial Patch submitted by Christian Hoff with some small style alterations and a round trip sample by me. Supports the registration of managed properties with the GType system, so that things like custom cell renderers can be accessed via the native property system from treeview. * glib/glue/object.c : property registration related glue. * glib/Object.cs: implement managed property registration. * glib/PropertyAttribute.cs: add new props and ctor for managed property registration. * sample/PropertyRegistration.cs: little test app to test round- tripping of registered properties. * sample/Makefile.am: add new sample. 2008-06-06 Mike Kestner * atk/Object.custom: use 'as StateSet' instead of cast to avoid cast exceptions in the null case. Apparently it's not an exception any more, according to folks on #monodev. I still prefer as for GetObject 'casting'. 2008-06-06 Andres G. Aragoneses * atk/Object.custom: * atk/glue/object.c: Implement virtual method OnRefStateSet(). 2008-05-30 Mike Kestner * gdk/Pixbuf.custom: don't use the autogenerated PixbufDestroyNative delegate type since is has a byte[] parameter that blows up. 2008-05-30 Mike Kestner * gtk/Object.custom: * gtk/glue/object.c: remove the destroy override. it doesn't work. 2008-05-28 Mike Kestner * gtk/Object.custom: move Dispose call to a vm override so that it runs after all signals and native overrides have run. * gtk/glue/object.c: destroy override implementation. 2008-05-28 Lluis Sanchez Gual * gtk/Object.custom: If all destroy handlers have been unregistered, remove the hashtable entry since it is not needed anymore. 2008-05-27 Mike Kestner * generator/Method.cs (GenerateBody): when generating value type methods, we should demarshal the 'this' memory before any ref or out parameters in the event that someone passes 'this' as a param. That will ensure that an updated value coming back from the native side ends up in the memory location. 2008-05-22 Mike Kestner * gtk/Widget.custom: guard against MissingIntPtrCtorException in the Activate and SetScrollAdjustments funky signal VM impl. Can't use SignalClosure easily. Could be reworked more cleanly at some point. Or not. 2008-05-21 Mike Kestner * gtk/Object.custom (OnDestroyed): ensure Dispose runs even if no Destroyed handlers are connected. 2008-05-21 Mike Kestner * gtk/Application.cs (CurrentEvent): use Event.GetEvent to retrieve an explicit event subclass. 2008-05-15 Mike Kestner * kill the makefile.win32 build system. it has been unmaintained for quite some time, replaced by the auto* build in cygwin. 2008-05-14 Andres G. Aragoneses * atk/Object.custom: Track API changes in GLib.Signal. * glib/Signal.cs: AddEmissionHook binding (for closing #386950), and change API of Emit to mimic the detailed_signal pattern. * glib/GType.cs: GType.FromName: new wrapper for native call. * glib/ObjectManager.cs: Use the new FromName managed method. 2008-05-08 Mike Kestner * atk/atk-api-2.12.raw: reparsed. * gdk/gdk-api-2.12.raw: reparsed. * gtk/gtk-api-2.12.raw: reparsed. * parser/gapi2xml.pl: fixes for signal and vm order needed for proper interface struct layout. [Fixes #386802] 2008-05-07 Stephane Delcroix * gtk/Object.custom: swap the event removing and destroy calls. 2008-05-07 Andres G. Aragoneses * atk/Object.custom, atk/glue/object.c: Remove unneeded return types (I don't know why gcc ever let this compile...). 2008-05-06 Mike Kestner * glib/Object.cs: revert the connection optimization from r102349. It breaks under the current CellRenderer implementation which probably can't be reworked compatibly to take advantage of this code. * glib/SignalClosure.cs: use IntPtr.ToInt64 instead of (long) since the cast apparently has issues on bleeding edge mono. 2008-05-06 Mike Kestner * gtk/Gtk.metadata: mark Rc.DefaultFiles accessors as null_term_array. 2008-05-02 Mike Kestner * generator/GenerationInfo.cs: refactor glue writer implementation so that GlueEnabled means there is a valid glue writer available. Avoids crashes in scenarios where an unwriteable glue path is provided to the generator. Generate a glue function which scans the type hierarchy of an object for the most-derived unmanaged ancestor so that we can invoke class methods on it, avoiding infinite recursions. * generator/Signal.cs: revamp the default handler vm overriding mechanism. When class fields exist which can be directly hooked into, we now generate glue to override and chain up to unmanaged base funcs. This avoids some strangeness in the g_signal_override_class_closure and g_signal_chain_from_overridden reported in #332300 and also lays the groundwork for automated generation of non-signal VMs. * gtk/Gtk.metadata: block signal glue generation for a few types which don't seem to install headers. 2008-05-02 Mike Kestner * glib/Object.cs: Don't bother hooking VM into the class field if another managed ancestor has already done so. Add a LogFunc printing a stack trace for the GObject log domain if GTK_SHARP_DEBUG is set in the environment. It's a bit noisy to do unconditionally. 2008-05-02 Mike Kestner * gtk/Object.custom: some NULL guarding in Dispose and Destroy handling. 2008-05-02 Mike Kestner * atk/Atk.metadata: hide Global.AddGlobalEventListener. * atk/Global.custom: AddGlobalEventListener impl. * atk/Util.custom: AddGlobalEventListenerHandler prop. [Fixes the rest of #365437] 2008-05-01 Mike Kestner * gtk/gtk-api-2.12.raw: regen, removes some private printing API. * source/gtk-sharp-2.12-sources.xml: hide some private printing API. 2008-05-01 Mike Kestner * generator/InterfaceGen.cs: use CName and mangle it. ClassFieldName is not guaranteed to be set now. * generator/Signal.cs: read ClassFieldName from the api xml. Move glue writer lookup inside the block to avoid exceptions for now. 2008-04-30 Mike Kestner * generator/InterfaceGen.cs: * generator/Signal.cs: use generic signal marshaling instead of generating signature specific marshaling callbacks. * glib/glue/closure.c: glue for new closure impl. * glib/Object.cs: open up a couple hashes internally. * glib/Signal.cs: hook in closure based connection and expose EmissionHook functionality for atk usage. * glib/SignalClosure.cs: new generic signal marshaling mechanism. * glib/ToggleRef.cs: null guarding in Target and let Signal remove itself from hash when it disposes itself. 2008-04-30 Mike Kestner * parser/gapi2xml.pl: put class struct field in the signal elems. * atk/atk-api-2.12.raw: * gdk/gdk-api-2.12.raw: * gtk/gtk-api-2.12.raw: 2008-04-28 Mike Kestner * glib/Value.cs : Add GParam support and beef up the Boxed type marshaling to support types with New methods via reflection. 2008-04-28 Mike Kestner * glib/GType.cs : Add a few missing static fields. 2008-04-24 Mike Kestner * gdk/Window.custom (Destroy): take a normal ref for the native method to release, and Dispose our toggle ref. Fixes #382186. 2008-04-24 Andres G. Aragoneses * glib/Signal.cs: Remove unneeded cast. 2008-04-24 Andres G. Aragoneses * atk/Object.custom: custom protected method for firing the ChildrenChanged signal. * glib/Signal.cs: first implementation of a managed method for emitting signals.