As we now use partial classes for custom code, we can put additional
interface implementation declaration in the custom code, instead of
adding it through a fix-up.
Side-note: I thought about moving to IEnumerable<T>, but ListStore is a
list of objects anyway, and Container is an array of Widgets, so there
wouldn't be much benefit from type safety.
A few properties would not be generated, as a property with the same
name already exists in the Widget class. To resolve this, we mark the
corresponding accessors as new.
In gtksettings.c, properties are installed using a custom function. So a
few properties were added as custom code. Move those as a fixup, and add
all the other properties too.
The only missing properties now are gtk-im-preedit-style and
gtk-im-status-style, because their type is hidden.
The interface parsing fix added a few properties on interfaces that have
no accessors. In this case, the code generated in the adapter for those
properties does not build: it tries to use (Get/Set)Property but they
don"t inherit from Glib.Object.
Hide those properties for now, until a proper fix is implemented. As
they were not available before, it's not that bad.
The action area is created as a GtkButtonBox, so casting it to a
GtkHButtonBox doesn't work. And GtkHButtonBox is going to be deprecated
in 3.2 anyway.
This fixes a crash when accessing Dialog.ActionArea. With this,
everything in sample/test seems to work OK.
* generator/CallbackGen.cs: connect return value count parameters
* generator/ManagedCallString.cs: out count params aren't special
* generator/MethodBody.cs: don't finish hidden params
* generator/Parameters.cs: explicit IsCount setting support, with
Parameters.GetCountParameter(name) interface. Clear IsCount
values during validation if they have no associated array. Any
remaining count params must be associated with a retval, so
hide them.
* generator/ReturnValue.cs: support array_length_param attribute to
associate a return value with a "count" param. Use new helper
methods to marshal these array retvals to IntPtr and back.
* glib/Marshaller.cs: support for byte[] marshaling to and from
IntPtr using a count and type in the from native direction.
* gtk/Gtk.metadata: mark TextBufferSerializeFunc return type as
an array with the length specific in the length param.
* gtk/Gtk.metadata: hide the Render class
* gtk/Makefile.am: build the new file
* gtk/StyleContext.cs: instance methods for the gtk_render_* api using
the internal generated Render class.
* gtk/Gtk.metadata: properties of type GdkRGBA get converted to
type="GdkRgba" by the parser name mangling. Manual fix those
and clean up the lists, ellipsis, and out param API in the new
StyleContext object.
* gtk/Gtk.metadata: mark GetContentArea return as a GtkBox* and
remove some unmatched fields on GtkDialog.
* sample/TreeViewDemo.cs: use Dialog.ContentArea instead of VBox.
* generator/Method.cs: support win32_utf8_variant attribute on methods.
* glib/*.cs: support win32 utf8 variant methods.
* gtk/*.custom: support win32 utf8 variant methods.
* gtk/Gtk.metadata: mark some win32_utf8_variant methods.
[Fixes#550961] Adapted from a patch by Tor Lillqvist.
svn path=/trunk/gtk-sharp/; revision=147113
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
* gtk/Target.custom: custom implementation of TableNewFromList.
* gtk/TargetList.custom: use Target.TableNewFromList method
to convert the TargetList to a TargetEntry array.
* gtk/glue/targetlist.c: deleted.
svn path=/trunk/gtk-sharp/; revision=131066
* 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
* gtk/Gtk.metadata: mark the SpinButton::Output signal as manually
marshaled to avoid a compat break. The old manual marshaler expected
and int RetVal and the new signal closure more accurately expects a
bool. Since returning 1 previously worked, we need to revert to the
int expectation, even though bool is technically more correct.
svn path=/trunk/gtk-sharp/; revision=118944