GtkSharp/gtk/Gtk.metadata

862 lines
102 KiB
Text
Raw Normal View History

<?xml version="1.0"?>
<metadata>
* generator/Parameters.cs (Parameters.Validate): If the parameters end with "callback, gpointer, GDestroyNotify", then mark the callback as having "notified" Scope. (Parameters.IsHidden): Hide user_data and GDestroyNotify after a callback. (Parameter.Scope): make this settable (Parameter.IsDestroyNotify): new test * generator/MethodBody.cs (Initialize): Handle "notified" callback scope (using a GCHandle and GLib.DestroyHelper.NotifyHandler) * generator/CallbackGen.cs (GenWrapper): Add a static "GetManagedDelegate" method to the wrapper type, to translate a native delegate back to its corresponding managed delegate. (FromNative): use GetManagedDelegate. * generator/ReturnValue.cs (Validate): We handle callback return values now * generator/SymbolTable.cs: marshal GDestroyNotify as GLib.DestroyNotify * glib/DestroyNotify.cs: Moved from gtk * gtk/Gtk.metadata: globally change GtkDestroyNotify to GDestroyNotify, but then change back the ones that are exposed in the API. Un-hide lots of methods we can correctly autogenerate now. * gtk/DestroyHelper.cs: moved to glib * gtk/*.custom: remove methods that are autogenerated now, add Obsolete wrappers where needed, replace Gtk.DestroyHelper usage with GLib.DestroyHelper. * gdk/Gdk.metadata: * gnome/Gnome.metadata: Turn Gdk.Drawable.SetData and Gnome.IconList.SetIconDataFull's GDestroyNotify args into gpointers so the generated API stays the same as it used to be. * rsvg/Handle.custom: implement deprecated SetSizeCallback * sample/GtkDemo/DemoIconView.cs (CreateSort): update for API changes svn path=/trunk/gtk-sharp/; revision=44020
2005-05-04 11:47:25 +00:00
<attr path="/api/namespace/*/method/*/*[@type='GtkDestroyNotify']" name="type">GDestroyNotify</attr>
<attr path="/api/namespace/*/virtual_method/*/*[@type='GtkDestroyNotify']" name="type">GDestroyNotify</attr>
<attr path="/api/namespace/struct[@cname='GtkAccelKey']/field[@cname='accel_key']" name="type">GdkKey</attr>
<attr path="/api/namespace/struct[@cname='GtkAccelKey']/field[@cname='accel_key']" name="name">Key</attr>
<attr path="/api/namespace/struct[@cname='GtkAccelKey']/field[@cname='accel_mods']" name="type">GdkModifierType</attr>
<attr path="/api/namespace/struct[@cname='GtkAccelKey']/field[@cname='accel_flags']" name="type">GtkAccelFlags</attr>
<attr path="/api/namespace/struct[@cname='GtkActionEntry']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='FileModelNode']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='GtkRadioActionEntry']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='GtkToggleActionEntry']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='GtkTypeInfo']" name="hidden">1</attr>
<attr path="/api/namespace/boxed[@cname='GtkBorder']" name="hidden">1</attr>
Automatic memory management for opaque types [#49565] * glib/Opaque.cs (Owned): new property saying whether or not gtk# owns the memory. (Opaque): Set Owned to true in the void ctor and false in the IntPtr one. (GetOpaque): add a new overload that can also create opaques, a la GLib.Object.GetObject. (Ref, Unref, Free): empty virtual methods to be overridden by subclasses. (set_Raw): Unref() and possibly Free() the old value, Ref() the new one. (~Opaque, Dispose): set Raw to IntPtr.Zero (triggering Free/Unref if needed) * parser/gapi2xml.pl (addReturnElem): if the method is named Copy and returns a pointer, set the "owned" attribute on the return-type. * */*-api.raw: Regen * generator/HandleBase.cs (FromNative): Add new FromNative/FromNativeReturn overloads that takes a "bool owned" param. Implement the 1-arg FromNative and FromNativeReturn in terms of that. * generator/ObjectBase.cs (FromNative): Implement HandleBase's new overload. Use the two-arg version of GLib.Object.GetObject when "owned" is true. * generator/OpaqueGen.cs (Generate): Pull out Ref, Unref, and Free/Destroy/Dispose methods and handle them specially by overriding Opaque.Ref, .Unref, and .Free appropriately. (If any of the methods are marked deprecated, output a deprecated do-nothing method as well, to save us from having to write all those deprecated methods by hand.) (FromNative): use GetOpaque, passing "owned". * generator/ReturnValue.cs (FromNative): if the value is a HandleBase, pass Owned to its FromNative(). * generator/Parameters.cs (Owned): new property (for use on out params) (FromNative): Call FromNative() on the generatable, handling Owned in the case of HandleBase. * generator/ManagedCallString.cs: * generator/MethodBody.cs: * generator/Signal.cs: use param.FromNative() rather than param.Generatable.FromNative(), to get ownership right. * */*.metadata: Mark opaque ref/unref/free methods deprecated (except where we were hiding them before). Add "owned" attributes to return values and out params as needed. * pango/AttrIterator.custom (GetFont): work around a memory-management oddity of the underlying method. * pango/AttrFontDesc.cs (AttrFontDesc): copy the passed-in FontDescriptor, since the attribute will assume ownership of it. * gtk/TreeView.custom (GetPathAtPos): set the "owned" flag on the returned TreePaths. * gtk/TargetList.custom: Remove refcounting stuff, which is now handled automatically * gtk/NodeStore.cs (GetPath): clear the Owned flag on the created TreePath so that the underlying structure doesn't get freed when the function returns * gtkhtml/HTMLStream.custom (Destroy): hide this and then reimplement it by hand to keep OpaqueGen from using it in Dispose(), since calling it after an HTMLStream.Close() will result in a crash. svn path=/trunk/gtk-sharp/; revision=47928
2005-08-02 18:45:21 +00:00
<attr path="/api/namespace/boxed[@cname='GtkIconInfo']/method[@name='Free']" name="deprecated">1</attr>
<attr path="/api/namespace/boxed[@cname='GtkIconSet']/method[@name='GetSizes']" name="hidden">1</attr>
Automatic memory management for opaque types [#49565] * glib/Opaque.cs (Owned): new property saying whether or not gtk# owns the memory. (Opaque): Set Owned to true in the void ctor and false in the IntPtr one. (GetOpaque): add a new overload that can also create opaques, a la GLib.Object.GetObject. (Ref, Unref, Free): empty virtual methods to be overridden by subclasses. (set_Raw): Unref() and possibly Free() the old value, Ref() the new one. (~Opaque, Dispose): set Raw to IntPtr.Zero (triggering Free/Unref if needed) * parser/gapi2xml.pl (addReturnElem): if the method is named Copy and returns a pointer, set the "owned" attribute on the return-type. * */*-api.raw: Regen * generator/HandleBase.cs (FromNative): Add new FromNative/FromNativeReturn overloads that takes a "bool owned" param. Implement the 1-arg FromNative and FromNativeReturn in terms of that. * generator/ObjectBase.cs (FromNative): Implement HandleBase's new overload. Use the two-arg version of GLib.Object.GetObject when "owned" is true. * generator/OpaqueGen.cs (Generate): Pull out Ref, Unref, and Free/Destroy/Dispose methods and handle them specially by overriding Opaque.Ref, .Unref, and .Free appropriately. (If any of the methods are marked deprecated, output a deprecated do-nothing method as well, to save us from having to write all those deprecated methods by hand.) (FromNative): use GetOpaque, passing "owned". * generator/ReturnValue.cs (FromNative): if the value is a HandleBase, pass Owned to its FromNative(). * generator/Parameters.cs (Owned): new property (for use on out params) (FromNative): Call FromNative() on the generatable, handling Owned in the case of HandleBase. * generator/ManagedCallString.cs: * generator/MethodBody.cs: * generator/Signal.cs: use param.FromNative() rather than param.Generatable.FromNative(), to get ownership right. * */*.metadata: Mark opaque ref/unref/free methods deprecated (except where we were hiding them before). Add "owned" attributes to return values and out params as needed. * pango/AttrIterator.custom (GetFont): work around a memory-management oddity of the underlying method. * pango/AttrFontDesc.cs (AttrFontDesc): copy the passed-in FontDescriptor, since the attribute will assume ownership of it. * gtk/TreeView.custom (GetPathAtPos): set the "owned" flag on the returned TreePaths. * gtk/TargetList.custom: Remove refcounting stuff, which is now handled automatically * gtk/NodeStore.cs (GetPath): clear the Owned flag on the created TreePath so that the underlying structure doesn't get freed when the function returns * gtkhtml/HTMLStream.custom (Destroy): hide this and then reimplement it by hand to keep OpaqueGen from using it in Dispose(), since calling it after an HTMLStream.Close() will result in a crash. svn path=/trunk/gtk-sharp/; revision=47928
2005-08-02 18:45:21 +00:00
<attr path="/api/namespace/boxed[@cname='GtkIconSet']/method[@name='Ref']" name="deprecated">1</attr>
<attr path="/api/namespace/boxed[@cname='GtkIconSet']/method[@name='Unref']" name="deprecated">1</attr>
<attr path="/api/namespace/boxed[@cname='GtkIconSource']/method[@name='Free']" name="deprecated">1</attr>
<attr path="/api/namespace/boxed[@cname='GtkPaperSize']/method[@name='GetPaperSizes']/return-type" name="element_type">GtkPaperSize*</attr>
<attr path="/api/namespace/boxed[@cname='GtkPaperSize']/method[@name='GetPaperSizes']/return-type" name="owned">true</attr>
<attr path="/api/namespace/boxed[@cname='GtkPaperSize']/method[@name='GetPaperSizes']/return-type" name="elements_owned">true</attr>
* parser/gapi2xml.pl (addFuncElems): if a struct or boxed type has a constructor or a ref, unref, or destroy method, then it must be a reference type, so mark it "opaque" but then also mark all of its fields public and writable. * */*-api*.raw: Regen * generator/Parser.cs (ParseNamespace): make the opaque attribute check actually look at the value of the attribute rather than just checking if it's there, so that you can change a struct's opaque attribute from "true" to "false" via metadata and have that work. * generator/BoxedGen.cs (Generate): do not generate the boxed's "Free" method (since it's guaranteed to crash when we pass it a stack pointer). If "Copy" is marked deprecated, create a deprecated no-op for it, otherwise just skip it (since otherwise it will just leak memory when we copy its result onto the stack). * pango/Pango.metadata: deprecate Pango.Color.Copy and Pango.Matrix.Copy. Hide some array fields in Pango.GlyphString that we've never generated correctly. Tweak Pango.LayoutLine fields to be the same as they used to be. * pango/GlyphItem.custom (glyphs, item): * pango/GlyphString.custom (Zero, New): * pango/Item.custom (Zero, New): * pango/LayoutRun.custom (glyphs, item): add deprecated API compat * gdk/Gdk.metadata: undo the parser's new opaquification of Gdk.Font; it's been deprecated since pre-gtk# times, and no one should be using it, so there's no point in fixing it now. Fix up a few other things to match how they used to be. Fix RgbCmap's constructor args. * gdk/RgbCmap.custom (Zero, New): deprecated API compat * gdk/PangoAttrEmbossed.custom: * gdk/PangoAttrStipple.custom (Zero, New, Attr): deprecated API compat (explicit operator ...): allow casting back and forth between Pango.Attribute. (We can't usefully make them real subclasses of Pango.Attribute, because there's no way for Pango.Attribute.GetAttribute() to be able to dtrt with them.) * gtk/Gtk.metadata: deprecate Gtk.Requisition.Copy, Gtk.TextIter.Copy, and Gtk.TreeIter.Copy. Mark the return value of TextView.DefaultAttributes as "owned". Mark TargetList's fields private so it stays how it used to be. * gtk/TextAttributes.custom (Zero, New): deprecated API compat * gnomevfs/Gnomevfs.metadata: remove a bunch of opaque declarations that the parser figures out on its own now. * art/Art.metadata: * glade/Glade.metadata: * rsvg/Rsvg.metadata: un-mark everything the parser marked opaque in these libraries, because all of the structs in question would still be unusably broken, so the API churn would be pointless. svn path=/trunk/gtk-sharp/; revision=48387
2005-08-15 15:15:57 +00:00
<attr path="/api/namespace/boxed[@cname='GtkRequisition']/method[@name='Copy']" name="deprecated">1</attr>
<attr path="/api/namespace/boxed[@cname='GtkSelectionData']" name="opaque">1</attr>
* generator/StructBase.cs: update field-generation logic a bit * generator/CodeGenerator.cs: add a --glue-includes flag * generator/GenerationInfo.cs: Accept glue_includes value from Main and output it to the glue_filename. * generator/FieldBase.cs (Ignored): handle more ignorable cases. (CheckGlue): New method to figure out what kind of glue we'll need for a field. (GenerateImports): generate appropriate imports per CheckGlue. (GenerateGlue): Generate C glue for accessing a struct field; either a fully-C-based accessor, or a method to just return the field's offset in the struct. (Generate): Use the generated glue to read the field. * generator/PropertyBase.cs (CType): if the field is a single bit, set its type to gboolean. * generator/ObjectGen.cs (Generate): * generator/OpaqueGen.cs (Generate): Call GenFields. * generator/StructField.cs: Use FieldBase's glue-generation code to handle bitfields. [#54489] * generator/ObjectField.cs: Generates accessors for public fields of objects and opaque structs. [#69514] * generator/ClassBase.cs (ClassBase): Parse <fields> nodes and create ObjectField objects. (GenFields): Output field properties (IgnoreMethod): Ignore Get/Set methods that duplicate fields * generator/Makefile.am (sources): update * {gdk,gnome,gtk,pango}/*.metadata: Mark some additional fields as public. Rename/retype some fields for consistency with earlier hand-coded bindings. * {gdk,gnome,gtk,pango}/*.custom: Remove custom methods that can now be autogenerated. * {gdk,gnome,gtk,pango}/glue/*.c: Remove glue methods that can now be autogenerated * {gdk,glade,gnome,gtk,pango,vte}/Makefile.am * {gdk,glade,gnome,gtk,pango,vte}/glue/Makefile.am * {gdk,gnome,gtk,pango}/glue/makefile.win32: Update svn path=/trunk/gtk-sharp/; revision=44563
2005-05-16 14:28:55 +00:00
<attr path="/api/namespace/boxed[@cname='GtkSelectionData']/field[@name='Length']" name="access">public</attr>
<attr path="/api/namespace/boxed[@cname='GtkSelectionData']/field[@name='Format']" name="access">public</attr>
<attr path="/api/namespace/boxed[@cname='GtkSelectionData']/field[@name='Selection']" name="access">public</attr>
<attr path="/api/namespace/boxed[@cname='GtkSelectionData']/field[@name='Target']" name="access">public</attr>
<attr path="/api/namespace/boxed[@cname='GtkSelectionData']/field[@name='Type']" name="access">public</attr>
Automatic memory management for opaque types [#49565] * glib/Opaque.cs (Owned): new property saying whether or not gtk# owns the memory. (Opaque): Set Owned to true in the void ctor and false in the IntPtr one. (GetOpaque): add a new overload that can also create opaques, a la GLib.Object.GetObject. (Ref, Unref, Free): empty virtual methods to be overridden by subclasses. (set_Raw): Unref() and possibly Free() the old value, Ref() the new one. (~Opaque, Dispose): set Raw to IntPtr.Zero (triggering Free/Unref if needed) * parser/gapi2xml.pl (addReturnElem): if the method is named Copy and returns a pointer, set the "owned" attribute on the return-type. * */*-api.raw: Regen * generator/HandleBase.cs (FromNative): Add new FromNative/FromNativeReturn overloads that takes a "bool owned" param. Implement the 1-arg FromNative and FromNativeReturn in terms of that. * generator/ObjectBase.cs (FromNative): Implement HandleBase's new overload. Use the two-arg version of GLib.Object.GetObject when "owned" is true. * generator/OpaqueGen.cs (Generate): Pull out Ref, Unref, and Free/Destroy/Dispose methods and handle them specially by overriding Opaque.Ref, .Unref, and .Free appropriately. (If any of the methods are marked deprecated, output a deprecated do-nothing method as well, to save us from having to write all those deprecated methods by hand.) (FromNative): use GetOpaque, passing "owned". * generator/ReturnValue.cs (FromNative): if the value is a HandleBase, pass Owned to its FromNative(). * generator/Parameters.cs (Owned): new property (for use on out params) (FromNative): Call FromNative() on the generatable, handling Owned in the case of HandleBase. * generator/ManagedCallString.cs: * generator/MethodBody.cs: * generator/Signal.cs: use param.FromNative() rather than param.Generatable.FromNative(), to get ownership right. * */*.metadata: Mark opaque ref/unref/free methods deprecated (except where we were hiding them before). Add "owned" attributes to return values and out params as needed. * pango/AttrIterator.custom (GetFont): work around a memory-management oddity of the underlying method. * pango/AttrFontDesc.cs (AttrFontDesc): copy the passed-in FontDescriptor, since the attribute will assume ownership of it. * gtk/TreeView.custom (GetPathAtPos): set the "owned" flag on the returned TreePaths. * gtk/TargetList.custom: Remove refcounting stuff, which is now handled automatically * gtk/NodeStore.cs (GetPath): clear the Owned flag on the created TreePath so that the underlying structure doesn't get freed when the function returns * gtkhtml/HTMLStream.custom (Destroy): hide this and then reimplement it by hand to keep OpaqueGen from using it in Dispose(), since calling it after an HTMLStream.Close() will result in a crash. svn path=/trunk/gtk-sharp/; revision=47928
2005-08-02 18:45:21 +00:00
<attr path="/api/namespace/boxed[@cname='GtkSelectionData']/method[@name='Free']" name="deprecated">1</attr>
<attr path="/api/namespace/boxed[@cname='GtkSelectionData']/method[@name='GetTargets']" name="hidden">1</attr>
<attr path="/api/namespace/boxed[@cname='GtkSelectionData']/method[@name='GetText']" name="hidden">1</attr>
<attr path="/api/namespace/boxed[@cname='GtkSelectionData']/method[@name='SetText']" name="hidden">1</attr>
<attr path="/api/namespace/boxed[@cname='GtkSelectionData']/method[@name='Set']/*/*[@name='data']" name="type">guchar</attr>
<attr path="/api/namespace/boxed[@cname='GtkSelectionData']/method[@name='Set']/*/*[@name='data']" name="array">1</attr>
<attr path="/api/namespace/boxed[@cname='GtkTextIter']/method[@name='BackwardFindChar']/*/*[@name='pred']" name="scope">call</attr>
<attr path="/api/namespace/boxed[@cname='GtkTextIter']/method[@name='BackwardSearch']/*/*[@type='GtkTextIter*']" name="pass_as">out</attr>
* parser/gapi2xml.pl (addFuncElems): if a struct or boxed type has a constructor or a ref, unref, or destroy method, then it must be a reference type, so mark it "opaque" but then also mark all of its fields public and writable. * */*-api*.raw: Regen * generator/Parser.cs (ParseNamespace): make the opaque attribute check actually look at the value of the attribute rather than just checking if it's there, so that you can change a struct's opaque attribute from "true" to "false" via metadata and have that work. * generator/BoxedGen.cs (Generate): do not generate the boxed's "Free" method (since it's guaranteed to crash when we pass it a stack pointer). If "Copy" is marked deprecated, create a deprecated no-op for it, otherwise just skip it (since otherwise it will just leak memory when we copy its result onto the stack). * pango/Pango.metadata: deprecate Pango.Color.Copy and Pango.Matrix.Copy. Hide some array fields in Pango.GlyphString that we've never generated correctly. Tweak Pango.LayoutLine fields to be the same as they used to be. * pango/GlyphItem.custom (glyphs, item): * pango/GlyphString.custom (Zero, New): * pango/Item.custom (Zero, New): * pango/LayoutRun.custom (glyphs, item): add deprecated API compat * gdk/Gdk.metadata: undo the parser's new opaquification of Gdk.Font; it's been deprecated since pre-gtk# times, and no one should be using it, so there's no point in fixing it now. Fix up a few other things to match how they used to be. Fix RgbCmap's constructor args. * gdk/RgbCmap.custom (Zero, New): deprecated API compat * gdk/PangoAttrEmbossed.custom: * gdk/PangoAttrStipple.custom (Zero, New, Attr): deprecated API compat (explicit operator ...): allow casting back and forth between Pango.Attribute. (We can't usefully make them real subclasses of Pango.Attribute, because there's no way for Pango.Attribute.GetAttribute() to be able to dtrt with them.) * gtk/Gtk.metadata: deprecate Gtk.Requisition.Copy, Gtk.TextIter.Copy, and Gtk.TreeIter.Copy. Mark the return value of TextView.DefaultAttributes as "owned". Mark TargetList's fields private so it stays how it used to be. * gtk/TextAttributes.custom (Zero, New): deprecated API compat * gnomevfs/Gnomevfs.metadata: remove a bunch of opaque declarations that the parser figures out on its own now. * art/Art.metadata: * glade/Glade.metadata: * rsvg/Rsvg.metadata: un-mark everything the parser marked opaque in these libraries, because all of the structs in question would still be unusably broken, so the API churn would be pointless. svn path=/trunk/gtk-sharp/; revision=48387
2005-08-15 15:15:57 +00:00
<attr path="/api/namespace/boxed[@cname='GtkTextIter']/method[@name='Copy']" name="deprecated">1</attr>
<attr path="/api/namespace/boxed[@cname='GtkTextIter']/method[@name='ForwardFindChar']/*/*[@name='pred']" name="scope">call</attr>
<attr path="/api/namespace/boxed[@cname='GtkTextIter']/method[@name='ForwardSearch']/*/*[@type='GtkTextIter*']" name="pass_as">out</attr>
<attr path="/api/namespace/boxed[@cname='GtkTextIter']/method[@name='GetChar']" name="hidden">1</attr>
<attr path="/api/namespace/boxed[@cname='GtkTextIter']/method[@name='GetMarks']" name="hidden">1</attr>
<attr path="/api/namespace/boxed[@cname='GtkTextIter']/method[@name='GetTags']" name="hidden">1</attr>
<attr path="/api/namespace/boxed[@cname='GtkTextIter']/method[@name='GetToggledTags']" name="hidden">1</attr>
* parser/gapi2xml.pl (addFuncElems): if a struct or boxed type has a constructor or a ref, unref, or destroy method, then it must be a reference type, so mark it "opaque" but then also mark all of its fields public and writable. * */*-api*.raw: Regen * generator/Parser.cs (ParseNamespace): make the opaque attribute check actually look at the value of the attribute rather than just checking if it's there, so that you can change a struct's opaque attribute from "true" to "false" via metadata and have that work. * generator/BoxedGen.cs (Generate): do not generate the boxed's "Free" method (since it's guaranteed to crash when we pass it a stack pointer). If "Copy" is marked deprecated, create a deprecated no-op for it, otherwise just skip it (since otherwise it will just leak memory when we copy its result onto the stack). * pango/Pango.metadata: deprecate Pango.Color.Copy and Pango.Matrix.Copy. Hide some array fields in Pango.GlyphString that we've never generated correctly. Tweak Pango.LayoutLine fields to be the same as they used to be. * pango/GlyphItem.custom (glyphs, item): * pango/GlyphString.custom (Zero, New): * pango/Item.custom (Zero, New): * pango/LayoutRun.custom (glyphs, item): add deprecated API compat * gdk/Gdk.metadata: undo the parser's new opaquification of Gdk.Font; it's been deprecated since pre-gtk# times, and no one should be using it, so there's no point in fixing it now. Fix up a few other things to match how they used to be. Fix RgbCmap's constructor args. * gdk/RgbCmap.custom (Zero, New): deprecated API compat * gdk/PangoAttrEmbossed.custom: * gdk/PangoAttrStipple.custom (Zero, New, Attr): deprecated API compat (explicit operator ...): allow casting back and forth between Pango.Attribute. (We can't usefully make them real subclasses of Pango.Attribute, because there's no way for Pango.Attribute.GetAttribute() to be able to dtrt with them.) * gtk/Gtk.metadata: deprecate Gtk.Requisition.Copy, Gtk.TextIter.Copy, and Gtk.TreeIter.Copy. Mark the return value of TextView.DefaultAttributes as "owned". Mark TargetList's fields private so it stays how it used to be. * gtk/TextAttributes.custom (Zero, New): deprecated API compat * gnomevfs/Gnomevfs.metadata: remove a bunch of opaque declarations that the parser figures out on its own now. * art/Art.metadata: * glade/Glade.metadata: * rsvg/Rsvg.metadata: un-mark everything the parser marked opaque in these libraries, because all of the structs in question would still be unusably broken, so the API churn would be pointless. svn path=/trunk/gtk-sharp/; revision=48387
2005-08-15 15:15:57 +00:00
<attr path="/api/namespace/boxed[@cname='GtkTreeIter']/method[@name='Copy']" name="deprecated">1</attr>
<attr path="/api/namespace/boxed[@cname='GtkTreePath']/constructor[@cname='gtk_tree_path_new_from_indices']" name="hidden">1</attr>
<attr path="/api/namespace/boxed[@cname='GtkTreePath']/method[@name='GetIndices']" name="hidden">1</attr>
Automatic memory management for opaque types [#49565] * glib/Opaque.cs (Owned): new property saying whether or not gtk# owns the memory. (Opaque): Set Owned to true in the void ctor and false in the IntPtr one. (GetOpaque): add a new overload that can also create opaques, a la GLib.Object.GetObject. (Ref, Unref, Free): empty virtual methods to be overridden by subclasses. (set_Raw): Unref() and possibly Free() the old value, Ref() the new one. (~Opaque, Dispose): set Raw to IntPtr.Zero (triggering Free/Unref if needed) * parser/gapi2xml.pl (addReturnElem): if the method is named Copy and returns a pointer, set the "owned" attribute on the return-type. * */*-api.raw: Regen * generator/HandleBase.cs (FromNative): Add new FromNative/FromNativeReturn overloads that takes a "bool owned" param. Implement the 1-arg FromNative and FromNativeReturn in terms of that. * generator/ObjectBase.cs (FromNative): Implement HandleBase's new overload. Use the two-arg version of GLib.Object.GetObject when "owned" is true. * generator/OpaqueGen.cs (Generate): Pull out Ref, Unref, and Free/Destroy/Dispose methods and handle them specially by overriding Opaque.Ref, .Unref, and .Free appropriately. (If any of the methods are marked deprecated, output a deprecated do-nothing method as well, to save us from having to write all those deprecated methods by hand.) (FromNative): use GetOpaque, passing "owned". * generator/ReturnValue.cs (FromNative): if the value is a HandleBase, pass Owned to its FromNative(). * generator/Parameters.cs (Owned): new property (for use on out params) (FromNative): Call FromNative() on the generatable, handling Owned in the case of HandleBase. * generator/ManagedCallString.cs: * generator/MethodBody.cs: * generator/Signal.cs: use param.FromNative() rather than param.Generatable.FromNative(), to get ownership right. * */*.metadata: Mark opaque ref/unref/free methods deprecated (except where we were hiding them before). Add "owned" attributes to return values and out params as needed. * pango/AttrIterator.custom (GetFont): work around a memory-management oddity of the underlying method. * pango/AttrFontDesc.cs (AttrFontDesc): copy the passed-in FontDescriptor, since the attribute will assume ownership of it. * gtk/TreeView.custom (GetPathAtPos): set the "owned" flag on the returned TreePaths. * gtk/TargetList.custom: Remove refcounting stuff, which is now handled automatically * gtk/NodeStore.cs (GetPath): clear the Owned flag on the created TreePath so that the underlying structure doesn't get freed when the function returns * gtkhtml/HTMLStream.custom (Destroy): hide this and then reimplement it by hand to keep OpaqueGen from using it in Dispose(), since calling it after an HTMLStream.Close() will result in a crash. svn path=/trunk/gtk-sharp/; revision=47928
2005-08-02 18:45:21 +00:00
<attr path="/api/namespace/boxed[@cname='GtkTreePath']/method[@name='Free']" name="deprecated">1</attr>
<attr path="/api/namespace/boxed[@cname='GtkTreeRowReference']/method[@name='Free']" name="deprecated">1</attr>
<attr path="/api/namespace/boxed[@cname='GtkTreeRowReference']/method[@name='GetPath']/return-type" name="owned">true</attr>
<attr path="/api/namespace/callback[@cname='GtkClipboardRichTextReceivedFunc']" name="hidden">1</attr>
<attr path="/api/namespace/callback[@cname='GtkItemFactoryCallback2']" name="hidden">1</attr>
<attr path="/api/namespace/callback[@cname='GtkModuleDisplayInitFunc']" name="hidden">1</attr>
<attr path="/api/namespace/callback[@cname='GtkModuleInitFunc']" name="hidden">1</attr>
<attr path="/api/namespace/class[@cname='GtkAccel_']/method[@name='GroupsFromObject']" name="hidden">1</attr>
<attr path="/api/namespace/class[@cname='GtkAccelerator_']/method[@name='GetDefaultModMask']/return-type" name="type">GdkModifierType</attr>
<attr path="/api/namespace/class[@cname='GtkBindings_']/method[@name='Activate']" name="name">BindingsActivate</attr>
<attr path="/api/namespace/class[@cname='GtkCtree_']" name="hidden">1</attr>
<attr path="/api/namespace/class[@cname='GtkDrag_']/method[@name='DestSet']/*/*[@name='targets']" name="array">1</attr>
<attr path="/api/namespace/class[@cname='GtkDrag_']/method[@name='SetIconDefault']" name="hidden">1</attr>
<attr path="/api/namespace/class[@cname='GtkDrag_']/method[@name='SourceSet']/*/*[@name='targets']" name="array">1</attr>
<attr path="/api/namespace/class[@cname='GtkGlobal']/method[@name='EventsPending']/return-type" name="type">gboolean</attr>
<attr path="/api/namespace/class[@cname='GtkGlobal']/method[@name='EventsPending']" name="name">GetEventsPending</attr>
<attr path="/api/namespace/class[@cname='GtkGlobal']/method[@name='CellTypeGetType']" name="hidden">1</attr>
<attr path="/api/namespace/class[@cname='GtkGlobal']/method[@name='CheckVersion']/return-type" name="type">const-gchar*</attr>
<attr path="/api/namespace/class[@cname='GtkGlobal']/method[@name='ClistDragPosGetType']" name="hidden">1</attr>
<attr path="/api/namespace/class[@cname='GtkGlobal']/method[@name='EnumeratePrinters']" name="hidden">1</attr>
<attr path="/api/namespace/class[@cname='GtkGlobal']/method[@name='IdentifierGetType']" name="hidden">1</attr>
<attr path="/api/namespace/class[@cname='GtkGlobal']/method[@name='PaintPolygon']/*/*[@name='points']" name="array">1</attr>
<attr path="/api/namespace/class[@cname='GtkGlobal']/method[@name='PaintPolygon']/*/*[@name='npoints']" name="name">n_points</attr>
<attr path="/api/namespace/class[@cname='GtkGlobal']/method[@name='PrivateFlagsGetType']" name="hidden">1</attr>
<attr path="/api/namespace/class[@cname='GtkGlobal']/method[@name='TextLayoutDraw']" name="hidden">1</attr>
<attr path="/api/namespace/class[@cname='GtkGlobal']/method[@name='PaintArrow']/*/*[@name='window']" name="type">GdkDrawable*</attr>
<attr path="/api/namespace/class[@cname='GtkGlobal']/method[@name='PaintBoxGap']/*/*[@name='window']" name="type">GdkDrawable*</attr>
<attr path="/api/namespace/class[@cname='GtkGlobal']/method[@name='PaintBox']/*/*[@name='window']" name="type">GdkDrawable*</attr>
<attr path="/api/namespace/class[@cname='GtkGlobal']/method[@name='PaintCheck']/*/*[@name='window']" name="type">GdkDrawable*</attr>
<attr path="/api/namespace/class[@cname='GtkGlobal']/method[@name='PaintDiamond']/*/*[@name='window']" name="type">GdkDrawable*</attr>
<attr path="/api/namespace/class[@cname='GtkGlobal']/method[@name='PaintExpander']/*/*[@name='window']" name="type">GdkDrawable*</attr>
<attr path="/api/namespace/class[@cname='GtkGlobal']/method[@name='PaintExtension']/*/*[@name='window']" name="type">GdkDrawable*</attr>
<attr path="/api/namespace/class[@cname='GtkGlobal']/method[@name='PaintFlatBox']/*/*[@name='window']" name="type">GdkDrawable*</attr>
<attr path="/api/namespace/class[@cname='GtkGlobal']/method[@name='PaintFocus']/*/*[@name='window']" name="type">GdkDrawable*</attr>
<attr path="/api/namespace/class[@cname='GtkGlobal']/method[@name='PaintHandle']/*/*[@name='window']" name="type">GdkDrawable*</attr>
<attr path="/api/namespace/class[@cname='GtkGlobal']/method[@name='PaintHline']/*/*[@name='window']" name="type">GdkDrawable*</attr>
<attr path="/api/namespace/class[@cname='GtkGlobal']/method[@name='PaintLayout']/*/*[@name='window']" name="type">GdkDrawable*</attr>
<attr path="/api/namespace/class[@cname='GtkGlobal']/method[@name='PaintOption']/*/*[@name='window']" name="type">GdkDrawable*</attr>
<attr path="/api/namespace/class[@cname='GtkGlobal']/method[@name='PaintPolygon']/*/*[@name='window']" name="type">GdkDrawable*</attr>
<attr path="/api/namespace/class[@cname='GtkGlobal']/method[@name='PaintResizeGrip']/*/*[@name='window']" name="type">GdkDrawable*</attr>
<attr path="/api/namespace/class[@cname='GtkGlobal']/method[@name='PaintShadowGap']/*/*[@name='window']" name="type">GdkDrawable*</attr>
<attr path="/api/namespace/class[@cname='GtkGlobal']/method[@name='PaintShadow']/*/*[@name='window']" name="type">GdkDrawable*</attr>
<attr path="/api/namespace/class[@cname='GtkGlobal']/method[@name='PaintSlider']/*/*[@name='window']" name="type">GdkDrawable*</attr>
<attr path="/api/namespace/class[@cname='GtkGlobal']/method[@name='PaintTab']/*/*[@name='window']" name="type">GdkDrawable*</attr>
<attr path="/api/namespace/class[@cname='GtkGlobal']/method[@name='PaintVline']/*/*[@name='window']" name="type">GdkDrawable*</attr>
<attr path="/api/namespace/class[@cname='GtkIdle_']" name="hidden">1</attr>
<attr path="/api/namespace/class[@cname='GtkInit_']/method[@name='Check']" name="hidden">1</attr>
<attr path="/api/namespace/class[@cname='GtkInit_']/method[@name='CheckAbiCheck']" name="hidden">1</attr>
<attr path="/api/namespace/class[@cname='GtkInit_']/method[@name='AbiCheck']" name="hidden">1</attr>
<attr path="/api/namespace/class[@cname='GtkInput_']/method[@name='AddFull']" name="hidden">1</attr>
<attr path="/api/namespace/class[@cname='GtkPrint_']/method[@name='RunPageSetupDialogAsync']/*/*[@name='done_cb']" name="scope">async</attr>
<attr path="/api/namespace/class[@cname='GtkQuit_']/method[@name='Add']" name="hidden">1</attr>
<attr path="/api/namespace/class[@cname='GtkQuit_']/method[@name='AddFull']" name="hidden">1</attr>
<attr path="/api/namespace/class[@cname='GtkSignal_']" name="hidden">1</attr>
<attr path="/api/namespace/class[@cname='GtkStock_']" name="hidden">1</attr>
<attr path="/api/namespace/class[@cname='GtkTimeout_']" name="hidden">1</attr>
<attr path="/api/namespace/class[@cname='GtkTree_']/method[@name='GetRowDragData']/*/*[@name='tree_model']" name="pass_as">out</attr>
<attr path="/api/namespace/class[@cname='GtkTree_']/method[@name='GetRowDragData']/*/*[@name='path']" name="pass_as">out</attr>
Automatic memory management for opaque types [#49565] * glib/Opaque.cs (Owned): new property saying whether or not gtk# owns the memory. (Opaque): Set Owned to true in the void ctor and false in the IntPtr one. (GetOpaque): add a new overload that can also create opaques, a la GLib.Object.GetObject. (Ref, Unref, Free): empty virtual methods to be overridden by subclasses. (set_Raw): Unref() and possibly Free() the old value, Ref() the new one. (~Opaque, Dispose): set Raw to IntPtr.Zero (triggering Free/Unref if needed) * parser/gapi2xml.pl (addReturnElem): if the method is named Copy and returns a pointer, set the "owned" attribute on the return-type. * */*-api.raw: Regen * generator/HandleBase.cs (FromNative): Add new FromNative/FromNativeReturn overloads that takes a "bool owned" param. Implement the 1-arg FromNative and FromNativeReturn in terms of that. * generator/ObjectBase.cs (FromNative): Implement HandleBase's new overload. Use the two-arg version of GLib.Object.GetObject when "owned" is true. * generator/OpaqueGen.cs (Generate): Pull out Ref, Unref, and Free/Destroy/Dispose methods and handle them specially by overriding Opaque.Ref, .Unref, and .Free appropriately. (If any of the methods are marked deprecated, output a deprecated do-nothing method as well, to save us from having to write all those deprecated methods by hand.) (FromNative): use GetOpaque, passing "owned". * generator/ReturnValue.cs (FromNative): if the value is a HandleBase, pass Owned to its FromNative(). * generator/Parameters.cs (Owned): new property (for use on out params) (FromNative): Call FromNative() on the generatable, handling Owned in the case of HandleBase. * generator/ManagedCallString.cs: * generator/MethodBody.cs: * generator/Signal.cs: use param.FromNative() rather than param.Generatable.FromNative(), to get ownership right. * */*.metadata: Mark opaque ref/unref/free methods deprecated (except where we were hiding them before). Add "owned" attributes to return values and out params as needed. * pango/AttrIterator.custom (GetFont): work around a memory-management oddity of the underlying method. * pango/AttrFontDesc.cs (AttrFontDesc): copy the passed-in FontDescriptor, since the attribute will assume ownership of it. * gtk/TreeView.custom (GetPathAtPos): set the "owned" flag on the returned TreePaths. * gtk/TargetList.custom: Remove refcounting stuff, which is now handled automatically * gtk/NodeStore.cs (GetPath): clear the Owned flag on the created TreePath so that the underlying structure doesn't get freed when the function returns * gtkhtml/HTMLStream.custom (Destroy): hide this and then reimplement it by hand to keep OpaqueGen from using it in Dispose(), since calling it after an HTMLStream.Close() will result in a crash. svn path=/trunk/gtk-sharp/; revision=47928
2005-08-02 18:45:21 +00:00
<attr path="/api/namespace/class[@cname='GtkTree_']/method[@name='GetRowDragData']/*/*[@name='path']" name="owned">true</attr>
<attr path="/api/namespace/class[@cname='GtkType_']" name="hidden">1</attr>
<attr path="/api/namespace/enum[@cname='GtkArgFlags']" name="hidden">1</attr>
<attr path="/api/namespace/enum[@cname='GtkDebugFlag']" name="hidden">1</attr>
<attr path="/api/namespace/enum[@cname='GtkIMPreeditStyle']" name="hidden">1</attr>
<attr path="/api/namespace/enum[@cname='GtkIMStatusStyle']" name="hidden">1</attr>
<attr path="/api/namespace/enum[@cname='GtkObjectFlags']" name="hidden">1</attr>
<attr path="/api/namespace/enum[@cname='OperationMode']" name="hidden">1</attr>
<attr path="/api/namespace/enum[@cname='GtkPathPriorityType']" name="hidden">1</attr>
<attr path="/api/namespace/enum[@cname='GtkPathType']" name="hidden">1</attr>
<attr path="/api/namespace/enum[@cname='GtkRcFlags']" name="hidden">1</attr>
<attr path="/api/namespace/enum[@cname='GtkRcTokenType']" name="hidden">1</attr>
<attr path="/api/namespace/enum[@cname='GtkSignalRunType']" name="hidden">1</attr>
<attr path="/api/namespace/enum[@cname='GtkTargetFlags']/member[@name='SameApp']" name="name">App</attr>
<attr path="/api/namespace/enum[@cname='GtkTargetFlags']/member[@name='SameWidget']" name="name">Widget</attr>
<attr path="/api/namespace/enum[@cname='GtkTextBufferTargetInfo']/member[@name='BufferContents']" name="value">UInt32.MaxValue-0U</attr>
<attr path="/api/namespace/enum[@cname='GtkTextBufferTargetInfo']/member[@name='RichText']" name="value">UInt32.MaxValue-1U</attr>
<attr path="/api/namespace/enum[@cname='GtkTextBufferTargetInfo']/member[@name='Text']" name="value">UInt32.MaxValue-2U</attr>
<attr path="/api/namespace/enum[@cname='GtkToolbarSpaceStyle']" name="hidden">1</attr>
<attr path="/api/namespace/enum[@cname='GtkVisibility']" name="hidden">1</attr>
<attr path="/api/namespace/enum[@cname='GtkWin32EmbedMessageType']" name="hidden">1</attr>
<attr path="/api/namespace/interface[@cname='GtkBuildable']" name="hidden">1</attr>
<attr path="/api/namespace/interface[@cname='GtkCellEditable']/method[@name='EditingDone']" name="name">FinishEditing</attr>
<attr path="/api/namespace/interface[@cname='GtkCellEditable']/signal[@name='RemoveWidget']" name="name">WidgetRemoved</attr>
<attr path="/api/namespace/interface[@cname='GtkCellLayout']/*[@name='GetCells']/return-type" name="element_type">GtkCellRenderer*</attr>
<attr path="/api/namespace/interface[@cname='GtkCellLayout']/*[@name='GetCells']/return-type" name="owned">true</attr>
<attr path="/api/namespace/interface[@cname='GtkCellLayout']/method[@name='SetAttributes']" name="hidden">1</attr>
<attr path="/api/namespace/interface[@cname='GtkEditable']/method[@name='GetEditable']" name="name">GetIsEditable</attr>
<attr path="/api/namespace/interface[@cname='GtkEditable']/method[@name='InsertText']/*/*[@name='position']" name="pass_as">ref</attr>
<attr path="/api/namespace/interface[@cname='GtkEditable']/method[@name='SetEditable']" name="name">SetIsEditable</attr>
<attr path="/api/namespace/interface[@cname='GtkEditable']/signal[@name='DeleteText']" name="name">TextDeleted</attr>
<attr path="/api/namespace/interface[@cname='GtkEditable']/signal[@name='InsertText']/*/*[@name='position']" name="pass_as">ref</attr>
<attr path="/api/namespace/interface[@cname='GtkEditable']/signal[@name='InsertText']" name="name">TextInserted</attr>
<attr path="/api/namespace/interface[@cname='GtkEditable']/virtual_method[@name='DoDeleteText']" name="name">DeleteText</attr>
<attr path="/api/namespace/interface[@cname='GtkEditable']/virtual_method[@name='DoInsertText']" name="name">InsertText</attr>
<attr path="/api/namespace/interface[@cname='GtkEditable']/virtual_method[@cname='do_insert_text']/*/*[@name='position']" name="pass_as">ref</attr>
<attr path="/api/namespace/interface[@cname='GtkEditable']/virtual_method[@name='SetSelectionBounds']" name="name">SelectRegion</attr>
<attr path="/api/namespace/interface[@cname='GtkFileChooser']" name="consume_only">1</attr>
<attr path="/api/namespace/interface[@cname='GtkFileChooser']/property[@name='Action']" name="new_flag">1</attr>
<attr path="/api/namespace/interface[@cname='GtkFileChooser']/method[@name='GetCurrentFolder']/return-type" name="type">gfilename*</attr>
<attr path="/api/namespace/interface[@cname='GtkFileChooser']/method[@name='GetFilename']/return-type" name="type">gfilename*</attr>
<attr path="/api/namespace/interface[@cname='GtkFileChooser']/method[@name='GetFilenames']" name="hidden">1</attr>
<attr path="/api/namespace/interface[@cname='GtkFileChooser']/method[@name='GetPreviewFilename']/return-type" name="type">gfilename*</attr>
<attr path="/api/namespace/interface[@cname='GtkFileChooser']/method/parameters/*[@name='filename']" name="type">const-gfilename*</attr>
<attr path="/api/namespace/interface[@cname='GtkFileChooser']/method/parameters/*[@name='folder']" name="type">const-gfilename*</attr>
<attr path="/api/namespace/interface[@cname='GtkFileChooser']/method[@name='GetUris']/return-type" name="element_type">gchar*</attr>
<attr path="/api/namespace/interface[@cname='GtkFileChooser']/method[@name='GetUris']/return-type" name="elements_owned">true</attr>
<attr path="/api/namespace/interface[@cname='GtkFileChooser']/method[@name='GetUris']/return-type" name="owned">true</attr>
<attr path="/api/namespace/interface[@cname='GtkFileChooser']/method[@cname='gtk_file_chooser_list_filters']" name="name">GetFilters</attr>
<attr path="/api/namespace/interface[@cname='GtkFileChooser']/method[@cname='gtk_file_chooser_list_filters']/return-type" name="element_type">GtkFileFilter*</attr>
<attr path="/api/namespace/interface[@cname='GtkFileChooser']/method[@cname='gtk_file_chooser_list_filters']/return-type" name="owned">true</attr>
<attr path="/api/namespace/interface[@cname='GtkFileChooser']/method[@name='ListShortcutFolders']" name="hidden">1</attr>
<attr path="/api/namespace/interface[@cname='GtkFileChooser']/method[@cname='gtk_file_chooser_list_shortcut_folder_uris']" name="name">GetShortcutFolderUris</attr>
<attr path="/api/namespace/interface[@cname='GtkFileChooser']/method[@cname='gtk_file_chooser_list_shortcut_folder_uris']/return-type" name="element_type">gchar*</attr>
<attr path="/api/namespace/interface[@cname='GtkFileChooser']/method[@cname='gtk_file_chooser_list_shortcut_folder_uris']/return-type" name="elements_owned">true</attr>
<attr path="/api/namespace/interface[@cname='GtkFileChooser']/method[@cname='gtk_file_chooser_list_shortcut_folder_uris']/return-type" name="owned">true</attr>
<attr path="/api/namespace/interface[@cname='GtkFileChooser']/virtual_method[@name='GetPaths']" name="name">GetFilenames</attr>
<attr path="/api/namespace/interface[@cname='GtkFileChooser']/virtual_method[@cname='get_paths']/return-type" name="element_type">gfilename*</attr>
<attr path="/api/namespace/interface[@cname='GtkFileChooser']/virtual_method[@cname='get_paths']/return-type" name="elements_owned">true</attr>
<attr path="/api/namespace/interface[@cname='GtkFileChooser']/virtual_method[@cname='get_paths']/return-type" name="owned">true</attr>
<attr path="/api/namespace/interface[@cname='GtkFileChooser']/virtual_method[@name='ListFilters']" name="name">GetFilters</attr>
<attr path="/api/namespace/interface[@cname='GtkFileChooser']/virtual_method[@cname='list_filters']/return-type" name="element_type">gchar*</attr>
<attr path="/api/namespace/interface[@cname='GtkFileChooser']/virtual_method[@cname='list_filters']/return-type" name="elements_owned">true</attr>
<attr path="/api/namespace/interface[@cname='GtkFileChooser']/virtual_method[@cname='list_filters']/return-type" name="owned">true</attr>
<attr path="/api/namespace/interface[@cname='GtkFileChooser']/virtual_method[@name='ListShortcutFolders']" name="name">GetShortcutFolders</attr>
<attr path="/api/namespace/interface[@cname='GtkFileChooser']/virtual_method[@cname='list_shortcut_folders']/return-type" name="element_type">gchar*</attr>
<attr path="/api/namespace/interface[@cname='GtkFileChooser']/virtual_method[@cname='list_shortcut_folders']/return-type" name="elements_owned">true</attr>
<attr path="/api/namespace/interface[@cname='GtkFileChooser']/virtual_method[@cname='list_shortcut_folders']/return-type" name="owned">true</attr>
<attr path="/api/namespace/interface[@cname='GtkRecentChooser']/virtual_method[@name='GetRecentManager']" name="hidden">1</attr>
<attr path="/api/namespace/interface[@cname='GtkTreeModel']/method[@name='Foreach']/*/*[@name='func']" name="scope">call</attr>
<attr path="/api/namespace/interface[@cname='GtkTreeModel']/*[@name='GetIterFirst']/*/*[@name='iter']" name="pass_as">out</attr>
<attr path="/api/namespace/interface[@cname='GtkTreeModel']/method[@name='Get']" name="hidden">1</attr>
<attr path="/api/namespace/interface[@cname='GtkTreeModel']/*[@name='GetIterFromString']/*/*[@name='iter']" name="pass_as">out</attr>
<attr path="/api/namespace/interface[@cname='GtkTreeModel']/*[@name='GetIter']/*/*[@name='iter']" name="pass_as">out</attr>
<attr path="/api/namespace/interface[@cname='GtkTreeModel']/*[@name='GetPath']/return-type" name="owned">true</attr>
<attr path="/api/namespace/interface[@cname='GtkTreeModel']/*[@name='GetValue']/*/*[@name='value']" name="pass_as">ref</attr>
<attr path="/api/namespace/interface[@cname='GtkTreeModel']/*[@name='IterChildren']/*/*[@name='iter']" name="pass_as">out</attr>
<attr path="/api/namespace/interface[@cname='GtkTreeModel']/*[@name='IterNext']/*/*[@name='iter']" name="pass_as">ref</attr>
<attr path="/api/namespace/interface[@cname='GtkTreeModel']/*[@name='IterNthChild']/*/*[@name='iter']" name="pass_as">out</attr>
<attr path="/api/namespace/interface[@cname='GtkTreeModel']/*[@name='IterParent']/*/*[@name='iter']" name="pass_as">out</attr>
<attr path="/api/namespace/interface[@cname='GtkTreeModel']/method[@name='RowChanged']" name="name">EmitRowChanged</attr>
<attr path="/api/namespace/interface[@cname='GtkTreeModel']/method[@name='RowDeleted']" name="name">EmitRowDeleted</attr>
<attr path="/api/namespace/interface[@cname='GtkTreeModel']/method[@name='RowHasChildToggled']" name="name">EmitRowHasChildToggled</attr>
<attr path="/api/namespace/interface[@cname='GtkTreeModel']/method[@name='RowInserted']" name="name">EmitRowInserted</attr>
<attr path="/api/namespace/interface[@cname='GtkTreeModel']/method[@name='RowsReordered']" name="name">EmitRowsReordered</attr>
<attr path="/api/namespace/interface[@cname='GtkTreeSortable']/method[@name='SortColumnChanged']" name="name">ChangeSortColumn</attr>
<attr path="/api/namespace/interface[@cname='GtkTreeModel']/signal[@name='RowsReordered']" name="hidden">1</attr>
<attr path="/api/namespace/object/implements/interface[@cname='GtkBuildable']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkAccelLabel']/constructor[@cname='gtk_accel_label_new']/*/*[@name='string']" name="property_name">label</attr>
<attr path="/api/namespace/object[@cname='GtkAboutDialog']/method[@name='GetArtists']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkAboutDialog']/method[@name='GetAuthors']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkAboutDialog']/method[@name='GetDocumenters']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkAboutDialog']/method[@name='SetArtists']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkAboutDialog']/method[@name='SetAuthors']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkAboutDialog']/method[@name='SetDocumenters']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkAction']/signal[@name='Activate']" name="name">Activated</attr>
<attr path="/api/namespace/object[@cname='GtkAction']/method[@name='GetAccelClosure']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkAction']/method[@name='GetProxies']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkAccelGroup']/method[@name='Find']/*/*[@name='find_func']" name="scope">call</attr>
<attr path="/api/namespace/object[@cname='GtkAccelGroup']/signal[@name='AccelActivate']/*/*[@name='inst']" name="name">accel_group</attr>
<attr path="/api/namespace/object[@cname='GtkAccelGroup']/signal[@name='AccelActivate']/*/*[@name='p0']" name="name">acceleratable</attr>
<attr path="/api/namespace/object[@cname='GtkAccelGroup']/signal[@name='AccelActivate']/*/*[@name='p1']" name="name">keyval</attr>
<attr path="/api/namespace/object[@cname='GtkAccelGroup']/signal[@name='AccelActivate']/*/*[@name='p2']" name="name">modifier</attr>
<attr path="/api/namespace/object[@cname='GtkAccelMap']/method[@name='Foreach']/*/*[@name='foreach_func']" name="scope">call</attr>
<attr path="/api/namespace/object[@cname='GtkAccelMap']/method[@name='ForeachUnfiltered']/*/*[@name='foreach_func']" name="scope">call</attr>
<attr path="/api/namespace/object[@cname='GtkAccelMap']/signal[@name='Changed']" name="name">MapChanged</attr>
<attr path="/api/namespace/object[@cname='GtkAccelMap']/signal[@name='MapChanged']/*/*[@name='inst']" name="name">map</attr>
<attr path="/api/namespace/object[@cname='GtkAccelMap']/signal[@name='MapChanged']/*/*[@name='p0']" name="name">accel_path</attr>
<attr path="/api/namespace/object[@cname='GtkAccelMap']/signal[@name='MapChanged']/*/*[@name='p1']" name="name">accel_key</attr>
<attr path="/api/namespace/object[@cname='GtkAccelMap']/signal[@name='MapChanged']/*/*[@name='p2']" name="name">accel_mods</attr>
<attr path="/api/namespace/object[@cname='GtkActionGroup']/method[@name='AddAction']" name="name">Add</attr>
<attr path="/api/namespace/object[@cname='GtkActionGroup']/method[@name='AddActions']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkActionGroup']/method[@name='AddActionsFull']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkActionGroup']/method[@name='AddActionWithAccel']" name="name">Add</attr>
<attr path="/api/namespace/object[@cname='GtkActionGroup']/method[@name='AddRadioActions']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkActionGroup']/method[@name='AddRadioActionsFull']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkActionGroup']/method[@name='AddToggleActions']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkActionGroup']/method[@name='AddToggleActionsFull']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkActionGroup']/method[@name='ListActions']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkActionGroup']/method[@name='RemoveAction']" name="name">Remove</attr>
<attr path="/api/namespace/object[@cname='GtkActionGroup']/signal[@name='ConnectProxy']/*/*[@name='inst']" name="name">action_group</attr>
<attr path="/api/namespace/object[@cname='GtkActionGroup']/signal[@name='ConnectProxy']/*/*[@name='p0']" name="name">action</attr>
<attr path="/api/namespace/object[@cname='GtkActionGroup']/signal[@name='ConnectProxy']/*/*[@name='p1']" name="name">proxy</attr>
<attr path="/api/namespace/object[@cname='GtkActionGroup']/signal[@name='DisconnectProxy']/*/*[@name='inst']" name="name">action_group</attr>
<attr path="/api/namespace/object[@cname='GtkActionGroup']/signal[@name='DisconnectProxy']/*/*[@name='p0']" name="name">action</attr>
<attr path="/api/namespace/object[@cname='GtkActionGroup']/signal[@name='DisconnectProxy']/*/*[@name='p1']" name="name">proxy</attr>
<attr path="/api/namespace/object[@cname='GtkActionGroup']/signal[@name='PreActivate']/*/*[@name='inst']" name="name">action_group</attr>
<attr path="/api/namespace/object[@cname='GtkActionGroup']/signal[@name='PreActivate']/*/*[@name='p0']" name="name">action</attr>
<attr path="/api/namespace/object[@cname='GtkActionGroup']/signal[@name='PostActivate']/*/*[@name='inst']" name="name">action_group</attr>
<attr path="/api/namespace/object[@cname='GtkActionGroup']/signal[@name='PostActivate']/*/*[@name='p0']" name="name">action</attr>
<attr path="/api/namespace/object[@cname='GtkAdjustment']/constructor[@cname='gtk_adjustment_new']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkAdjustment']/method[@name='Changed']" name="name">Change</attr>
<attr path="/api/namespace/object[@cname='GtkAdjustment']/method[@name='ValueChanged']" name="name">ChangeValue</attr>
<attr path="/api/namespace/object[@cname='GtkArrow']/method[@name='Set']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkBin']/method[@name='GetChild']" name="hidden">1</attr>
* generator/StructBase.cs: update field-generation logic a bit * generator/CodeGenerator.cs: add a --glue-includes flag * generator/GenerationInfo.cs: Accept glue_includes value from Main and output it to the glue_filename. * generator/FieldBase.cs (Ignored): handle more ignorable cases. (CheckGlue): New method to figure out what kind of glue we'll need for a field. (GenerateImports): generate appropriate imports per CheckGlue. (GenerateGlue): Generate C glue for accessing a struct field; either a fully-C-based accessor, or a method to just return the field's offset in the struct. (Generate): Use the generated glue to read the field. * generator/PropertyBase.cs (CType): if the field is a single bit, set its type to gboolean. * generator/ObjectGen.cs (Generate): * generator/OpaqueGen.cs (Generate): Call GenFields. * generator/StructField.cs: Use FieldBase's glue-generation code to handle bitfields. [#54489] * generator/ObjectField.cs: Generates accessors for public fields of objects and opaque structs. [#69514] * generator/ClassBase.cs (ClassBase): Parse <fields> nodes and create ObjectField objects. (GenFields): Output field properties (IgnoreMethod): Ignore Get/Set methods that duplicate fields * generator/Makefile.am (sources): update * {gdk,gnome,gtk,pango}/*.metadata: Mark some additional fields as public. Rename/retype some fields for consistency with earlier hand-coded bindings. * {gdk,gnome,gtk,pango}/*.custom: Remove custom methods that can now be autogenerated. * {gdk,gnome,gtk,pango}/glue/*.c: Remove glue methods that can now be autogenerated * {gdk,glade,gnome,gtk,pango,vte}/Makefile.am * {gdk,glade,gnome,gtk,pango,vte}/glue/Makefile.am * {gdk,gnome,gtk,pango}/glue/makefile.win32: Update svn path=/trunk/gtk-sharp/; revision=44563
2005-05-16 14:28:55 +00:00
<attr path="/api/namespace/object[@cname='GtkBox']/field[@name='Children']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkBox']/method[@name='PackEndDefaults']" name="name">PackEnd</attr>
<attr path="/api/namespace/object[@cname='GtkBox']/method[@name='PackStartDefaults']" name="name">PackStart</attr>
<attr path="/api/namespace/object[@cname='GtkBuilder']" name="disable_gtype_ctor">1</attr>
<attr path="/api/namespace/object[@cname='GtkBuilder']/method[@name='AddFromFile']/*/*[@name='filename']" name="type">const-gfilename*</attr>
<attr path="/api/namespace/object[@cname='GtkBuilder']/method[@cname='gtk_builder_connect_signals']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkBuilder']/method[@name='ConnectSignalsFull']" name="name">ConnectSignals</attr>
<attr path="/api/namespace/object[@cname='GtkBuilder']/method[@name='ErrorQuark']" name="name">GetErrorQuark</attr>
<attr path="/api/namespace/object[@cname='GtkBuilder']/method[@name='GetObjects']/return-type" name="owned">true</attr>
<attr path="/api/namespace/object[@cname='GtkBuilder']/method[@name='GetObjects']/return-type" name="element_type">GObject*</attr>
<attr path="/api/namespace/object[@cname='GtkBuilder']/method[@name='GetTypeFromName']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkBuilder']/method[@name='ValueFromString']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkBuilder']/method[@name='ValueFromStringType']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkButton']/constructor[@cname='gtk_button_new_with_label']" name="shared">true</attr>
<attr path="/api/namespace/object[@cname='GtkButton']/constructor[@cname='gtk_button_new_from_stock']" name="hidden">1</attr>
* generator/StructBase.cs: update field-generation logic a bit * generator/CodeGenerator.cs: add a --glue-includes flag * generator/GenerationInfo.cs: Accept glue_includes value from Main and output it to the glue_filename. * generator/FieldBase.cs (Ignored): handle more ignorable cases. (CheckGlue): New method to figure out what kind of glue we'll need for a field. (GenerateImports): generate appropriate imports per CheckGlue. (GenerateGlue): Generate C glue for accessing a struct field; either a fully-C-based accessor, or a method to just return the field's offset in the struct. (Generate): Use the generated glue to read the field. * generator/PropertyBase.cs (CType): if the field is a single bit, set its type to gboolean. * generator/ObjectGen.cs (Generate): * generator/OpaqueGen.cs (Generate): Call GenFields. * generator/StructField.cs: Use FieldBase's glue-generation code to handle bitfields. [#54489] * generator/ObjectField.cs: Generates accessors for public fields of objects and opaque structs. [#69514] * generator/ClassBase.cs (ClassBase): Parse <fields> nodes and create ObjectField objects. (GenFields): Output field properties (IgnoreMethod): Ignore Get/Set methods that duplicate fields * generator/Makefile.am (sources): update * {gdk,gnome,gtk,pango}/*.metadata: Mark some additional fields as public. Rename/retype some fields for consistency with earlier hand-coded bindings. * {gdk,gnome,gtk,pango}/*.custom: Remove custom methods that can now be autogenerated. * {gdk,gnome,gtk,pango}/glue/*.c: Remove glue methods that can now be autogenerated * {gdk,glade,gnome,gtk,pango,vte}/Makefile.am * {gdk,glade,gnome,gtk,pango,vte}/glue/Makefile.am * {gdk,gnome,gtk,pango}/glue/makefile.win32: Update svn path=/trunk/gtk-sharp/; revision=44563
2005-05-16 14:28:55 +00:00
<attr path="/api/namespace/object[@cname='GtkButton']/field[@name='InButton']" name="access">public</attr>
<attr path="/api/namespace/object[@cname='GtkButton']/field[@name='InButton']" name="writeable">true</attr>
<attr path="/api/namespace/object[@cname='GtkButton']/method[@name='Clicked']" name="name">Click</attr>
<attr path="/api/namespace/object[@cname='GtkButton']/method[@name='Pressed']" name="name">Press</attr>
<attr path="/api/namespace/object[@cname='GtkButton']/method[@name='Released']" name="name">Release</attr>
<attr path="/api/namespace/object[@cname='GtkButton']/signal[@name='Activate']" name="name">Activated</attr>
<attr path="/api/namespace/object[@cname='GtkButton']/signal[@name='Enter']" name="name">Entered</attr>
<attr path="/api/namespace/object[@cname='GtkButton']/signal[@name='Leave']" name="name">Left</attr>
<attr path="/api/namespace/object[@cname='GtkCalendar']/method[@name='DisplayOptions']" name="name">SetDisplayOptions</attr>
<attr path="/api/namespace/object[@cname='GtkCellRenderer']/method[@name='EditingCanceled']" name="name">CancelEditing</attr>
<attr path="/api/namespace/object[@cname='GtkCellRenderer']/method[@name='StartEditing']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkCellRenderer']/method[@name='GetSize']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkCellRendererProgress']/property[@name='TextXalign']" name="name">TextXAlign</attr>
<attr path="/api/namespace/object[@cname='GtkCellRendererProgress']/property[@name='TextYalign']" name="name">TextYAlign</attr>
<attr path="/api/namespace/object[@cname='GtkCheckButton']/constructor[@cname='gtk_check_button_new_with_mnemonic']" name="preferred">1</attr>
<attr path="/api/namespace/object[@cname='GtkCheckMenuItem']/constructor[@cname='gtk_check_menu_item_new_with_mnemonic']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkCheckMenuItem']/constructor[@cname='gtk_check_menu_item_new_with_label']" name="hidden">1</attr>
* generator/CallbackGen.cs: * generator/CodeGenerator.cs: * generator/ManagedCallString.cs: * generator/Property.cs: Remove unused vars * generator/Method.cs (GetHashCode): have to implement this since we're overriding Equals. * generator/CallbackGen.cs: print a message when generating a broken struct-returning callback. (Currently affects GtkSharp.TextSegSplitFuncNative and GtkSharp.TextSegCleanupFuncNative) * gdk/glue/device.c: * gdk/glue/dragcontext.c: Add missing prototypes * gtk/Gtk.metadata: Mark SeparatorToolItem.Draw "new". Re-rename CheckMenuItem.Toggled to EmitToggled rather than Toggle, since that's a better description of what it does. * gtk/CheckMenuItem.custom: implement a "Toggle" method that does what the documentation claims it does. * gtk/NodeStore.cs: remove unused var * gnome/Gnome.metadata: mark DateEdit.Flags, Dialog.Default, and PropertyBox.State "new". Hide GnomePixmapEntry.GnomeEntry and GnomePixmapEntry.GtkEntry since they do exactly the same thing as the methods of the same names inherited from GnomeFileEntry. * gnome/glue/canvas-proxy.c: * gnome/glue/canvas-proxy.h: * gnome/glue/canvas-proxy-marshal.c: * gnome/glue/canvas-proxy-marshal.h: * gnome/glue/canvas-proxy-marshal.list: Remove unused code * gnome/glue/Makefile.am (libgnomesharpglue_2_la_SOURCES): update * panelapplet/PanelApplet.metadata: mark PanelApplet.Flags "new" * sample/CanvasExample.cs: * sample/CustomCellRenderer.cs: * sample/CustomNotebook.cs: * sample/DrawingSample.cs: * sample/Fifteen.cs: * sample/GladeTest.cs: * sample/GtkDemo/DemoHyperText.cs: * sample/GtkDemo/DemoPixbuf.cs: * sample/ScribbleXInput.cs: remove unused vars, use GLib.Timeout.Add rather than the deprecated Gtk.Timeout.Add svn path=/trunk/gtk-sharp/; revision=38043
2004-12-21 18:46:42 +00:00
<attr path="/api/namespace/object[@cname='GtkCheckMenuItem']/method[@name='Toggled']" name="name">EmitToggled</attr>
<attr path="/api/namespace/object[@cname='GtkClipboard']/method[@name='RequestContents']/*/*[@name='callback']" name="scope">async</attr>
<attr path="/api/namespace/object[@cname='GtkClipboard']/method[@name='RequestImage']/*/*[@name='callback']" name="scope">async</attr>
<attr path="/api/namespace/object[@cname='GtkClipboard']/method[@name='RequestTargets']/*/*[@name='callback']" name="scope">async</attr>
<attr path="/api/namespace/object[@cname='GtkClipboard']/method[@name='RequestText']/*/*[@name='callback']" name="scope">async</attr>
<attr path="/api/namespace/object[@cname='GtkClipboard']/method[@name='SetWithData']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkClipboard']/method[@name='SetWithOwner']" name="hidden">1</attr>
Automatic memory management for opaque types [#49565] * glib/Opaque.cs (Owned): new property saying whether or not gtk# owns the memory. (Opaque): Set Owned to true in the void ctor and false in the IntPtr one. (GetOpaque): add a new overload that can also create opaques, a la GLib.Object.GetObject. (Ref, Unref, Free): empty virtual methods to be overridden by subclasses. (set_Raw): Unref() and possibly Free() the old value, Ref() the new one. (~Opaque, Dispose): set Raw to IntPtr.Zero (triggering Free/Unref if needed) * parser/gapi2xml.pl (addReturnElem): if the method is named Copy and returns a pointer, set the "owned" attribute on the return-type. * */*-api.raw: Regen * generator/HandleBase.cs (FromNative): Add new FromNative/FromNativeReturn overloads that takes a "bool owned" param. Implement the 1-arg FromNative and FromNativeReturn in terms of that. * generator/ObjectBase.cs (FromNative): Implement HandleBase's new overload. Use the two-arg version of GLib.Object.GetObject when "owned" is true. * generator/OpaqueGen.cs (Generate): Pull out Ref, Unref, and Free/Destroy/Dispose methods and handle them specially by overriding Opaque.Ref, .Unref, and .Free appropriately. (If any of the methods are marked deprecated, output a deprecated do-nothing method as well, to save us from having to write all those deprecated methods by hand.) (FromNative): use GetOpaque, passing "owned". * generator/ReturnValue.cs (FromNative): if the value is a HandleBase, pass Owned to its FromNative(). * generator/Parameters.cs (Owned): new property (for use on out params) (FromNative): Call FromNative() on the generatable, handling Owned in the case of HandleBase. * generator/ManagedCallString.cs: * generator/MethodBody.cs: * generator/Signal.cs: use param.FromNative() rather than param.Generatable.FromNative(), to get ownership right. * */*.metadata: Mark opaque ref/unref/free methods deprecated (except where we were hiding them before). Add "owned" attributes to return values and out params as needed. * pango/AttrIterator.custom (GetFont): work around a memory-management oddity of the underlying method. * pango/AttrFontDesc.cs (AttrFontDesc): copy the passed-in FontDescriptor, since the attribute will assume ownership of it. * gtk/TreeView.custom (GetPathAtPos): set the "owned" flag on the returned TreePaths. * gtk/TargetList.custom: Remove refcounting stuff, which is now handled automatically * gtk/NodeStore.cs (GetPath): clear the Owned flag on the created TreePath so that the underlying structure doesn't get freed when the function returns * gtkhtml/HTMLStream.custom (Destroy): hide this and then reimplement it by hand to keep OpaqueGen from using it in Dispose(), since calling it after an HTMLStream.Close() will result in a crash. svn path=/trunk/gtk-sharp/; revision=47928
2005-08-02 18:45:21 +00:00
<attr path="/api/namespace/object[@cname='GtkClipboard']/method[@name='WaitForContents']/return-type" name="owned">true</attr>
<attr path="/api/namespace/object[@cname='GtkClipboard']/method[@name='WaitForRichText']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkClipboard']/method[@name='RequestRichText']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkColorButton']/method[@name='GetColor']/*/*[@name='color']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkColorSelection']/method[@name='GetColor']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkColorSelection']/method[@name='GetCurrentColor']/*/*[@name='color']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkColorSelection']/method[@name='GetPreviousColor']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkColorSelection']/method[@name='PaletteFromString']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkColorSelection']/method[@name='PaletteToString']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkColorSelection']/method[@name='SetChangePaletteHook']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkColorSelection']/method[@name='SetChangePaletteWithScreenHook']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkColorSelection']/method[@name='SetColor']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkColorSelection']/method[@name='SetPreviousColor']" name="hidden">1</attr>
* generator/StructBase.cs: update field-generation logic a bit * generator/CodeGenerator.cs: add a --glue-includes flag * generator/GenerationInfo.cs: Accept glue_includes value from Main and output it to the glue_filename. * generator/FieldBase.cs (Ignored): handle more ignorable cases. (CheckGlue): New method to figure out what kind of glue we'll need for a field. (GenerateImports): generate appropriate imports per CheckGlue. (GenerateGlue): Generate C glue for accessing a struct field; either a fully-C-based accessor, or a method to just return the field's offset in the struct. (Generate): Use the generated glue to read the field. * generator/PropertyBase.cs (CType): if the field is a single bit, set its type to gboolean. * generator/ObjectGen.cs (Generate): * generator/OpaqueGen.cs (Generate): Call GenFields. * generator/StructField.cs: Use FieldBase's glue-generation code to handle bitfields. [#54489] * generator/ObjectField.cs: Generates accessors for public fields of objects and opaque structs. [#69514] * generator/ClassBase.cs (ClassBase): Parse <fields> nodes and create ObjectField objects. (GenFields): Output field properties (IgnoreMethod): Ignore Get/Set methods that duplicate fields * generator/Makefile.am (sources): update * {gdk,gnome,gtk,pango}/*.metadata: Mark some additional fields as public. Rename/retype some fields for consistency with earlier hand-coded bindings. * {gdk,gnome,gtk,pango}/*.custom: Remove custom methods that can now be autogenerated. * {gdk,gnome,gtk,pango}/glue/*.c: Remove glue methods that can now be autogenerated * {gdk,glade,gnome,gtk,pango,vte}/Makefile.am * {gdk,glade,gnome,gtk,pango,vte}/glue/Makefile.am * {gdk,gnome,gtk,pango}/glue/makefile.win32: Update svn path=/trunk/gtk-sharp/; revision=44563
2005-05-16 14:28:55 +00:00
<attr path="/api/namespace/object[@cname='GtkCombo']/field[@name='Button']" name="type">GtkButton*</attr>
<attr path="/api/namespace/object[@cname='GtkCombo']/field[@name='Button']" name="access">public</attr>
<attr path="/api/namespace/object[@cname='GtkCombo']/field[@name='Entry']" name="type">GtkEntry*</attr>
<attr path="/api/namespace/object[@cname='GtkCombo']/method[@name='SetPopdownStrings']" name="hidden">1</attr>
* generator/Parameters.cs (Parameters.Validate): If the parameters end with "callback, gpointer, GDestroyNotify", then mark the callback as having "notified" Scope. (Parameters.IsHidden): Hide user_data and GDestroyNotify after a callback. (Parameter.Scope): make this settable (Parameter.IsDestroyNotify): new test * generator/MethodBody.cs (Initialize): Handle "notified" callback scope (using a GCHandle and GLib.DestroyHelper.NotifyHandler) * generator/CallbackGen.cs (GenWrapper): Add a static "GetManagedDelegate" method to the wrapper type, to translate a native delegate back to its corresponding managed delegate. (FromNative): use GetManagedDelegate. * generator/ReturnValue.cs (Validate): We handle callback return values now * generator/SymbolTable.cs: marshal GDestroyNotify as GLib.DestroyNotify * glib/DestroyNotify.cs: Moved from gtk * gtk/Gtk.metadata: globally change GtkDestroyNotify to GDestroyNotify, but then change back the ones that are exposed in the API. Un-hide lots of methods we can correctly autogenerate now. * gtk/DestroyHelper.cs: moved to glib * gtk/*.custom: remove methods that are autogenerated now, add Obsolete wrappers where needed, replace Gtk.DestroyHelper usage with GLib.DestroyHelper. * gdk/Gdk.metadata: * gnome/Gnome.metadata: Turn Gdk.Drawable.SetData and Gnome.IconList.SetIconDataFull's GDestroyNotify args into gpointers so the generated API stays the same as it used to be. * rsvg/Handle.custom: implement deprecated SetSizeCallback * sample/GtkDemo/DemoIconView.cs (CreateSort): update for API changes svn path=/trunk/gtk-sharp/; revision=44020
2005-05-04 11:47:25 +00:00
<attr path="/api/namespace/object[@cname='GtkComboBox']/method[@name='GetActiveIter']/*/*[@type='GtkTreeIter*']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkComboBox']/method[@name='GetTitle']" name="name">GetTearoffTitle</attr>
<attr path="/api/namespace/object[@cname='GtkComboBox']/method[@name='SetTitle']" name="name">SetTearoffTitle</attr>
<add-node path="/api/namespace/object[@cname='GtkContainer']"><implements><interface name="IEnumerable" /></implements></add-node>
* generator/StructBase.cs: update field-generation logic a bit * generator/CodeGenerator.cs: add a --glue-includes flag * generator/GenerationInfo.cs: Accept glue_includes value from Main and output it to the glue_filename. * generator/FieldBase.cs (Ignored): handle more ignorable cases. (CheckGlue): New method to figure out what kind of glue we'll need for a field. (GenerateImports): generate appropriate imports per CheckGlue. (GenerateGlue): Generate C glue for accessing a struct field; either a fully-C-based accessor, or a method to just return the field's offset in the struct. (Generate): Use the generated glue to read the field. * generator/PropertyBase.cs (CType): if the field is a single bit, set its type to gboolean. * generator/ObjectGen.cs (Generate): * generator/OpaqueGen.cs (Generate): Call GenFields. * generator/StructField.cs: Use FieldBase's glue-generation code to handle bitfields. [#54489] * generator/ObjectField.cs: Generates accessors for public fields of objects and opaque structs. [#69514] * generator/ClassBase.cs (ClassBase): Parse <fields> nodes and create ObjectField objects. (GenFields): Output field properties (IgnoreMethod): Ignore Get/Set methods that duplicate fields * generator/Makefile.am (sources): update * {gdk,gnome,gtk,pango}/*.metadata: Mark some additional fields as public. Rename/retype some fields for consistency with earlier hand-coded bindings. * {gdk,gnome,gtk,pango}/*.custom: Remove custom methods that can now be autogenerated. * {gdk,gnome,gtk,pango}/glue/*.c: Remove glue methods that can now be autogenerated * {gdk,glade,gnome,gtk,pango,vte}/Makefile.am * {gdk,glade,gnome,gtk,pango,vte}/glue/Makefile.am * {gdk,gnome,gtk,pango}/glue/makefile.win32: Update svn path=/trunk/gtk-sharp/; revision=44563
2005-05-16 14:28:55 +00:00
<attr path="/api/namespace/object[@cname='GtkContainer']/field[@name='FocusChild']" name="access">public</attr>
<attr path="/api/namespace/object[@cname='GtkContainer']/method[@name='AddWithProperties']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkContainer']/method[@name='ChildGet']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkContainer']/method[@name='ChildGetProperty']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkContainer']/method[@name='ChildSet']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkContainer']/method[@name='ClassInstallChildProperty']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkContainer']/method[@name='ClassListChildProperties']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkContainer']/method[@name='ClassFindChildProperty']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkContainer']/method[@name='Forall']/*/*[@name='callback']" name="scope">call</attr>
<attr path="/api/namespace/object[@cname='GtkContainer']/method[@name='Foreach']/*/*[@name='callback']" name="scope">call</attr>
* parser/gapi2xml.pl (addParamsElem): change the handling of anonymous function pointer types in method signatures. Before, we added a <callback> child to the <parameters> node, but the generator just ignored it. Now we add the callback (with a made-up name) to the toplevel node, and add an ordinary <param> node referencing it to the <parameters> node. Also, if the last param of the callback is a gpointer, rename it from "arg#" to "data" so it will be treated correctly (as the user data passed from the calling method). [Fixes #66241] * art/art-api.raw: * gdk/gdk-api-2.4.raw: * gdk/gdk-api-2.6.raw: Regen * generator/Parameters.cs (IsHidden): loosen the definition of hideable user_data; it doesn't have to occur at the end of the parameter list, as long as there's a callback arg before it. * generator/MethodBody.cs (GetCallString): Use Parameters.IsHidden to decide whether or not to squash user_data params, rather than trying to duplicate its logic. As a side effect, this also causes a handful of methods that take non-hidden IntPtr arguments to start actually passing those arguments to C rather than always passing IntPtr.Zero. * generator/Method.cs (Equals, GetHashCode): Remove unnecessary and possibly erroneous hashing overrides. * gtk/Gtk.metadata: Hide Gtk.Container.ForeachFull, since it's useless and wasn't in gtk# 1.0 * gtk/Menu.custom (Popup): * gtk/TextIter.custom (ForwardFindChar, BackwardFindChar): * gnome/App.custom (CreateMenusInterp, InsertMenusInterp, CreateToolbarInterp): * gnome/Client.custom (RequestInteractionInterp): * gnome/Popup.custom (MenuDoPopupModal, MenuDoPopup): Add [Obsolete] compat overloads for methods that have now lost a useless IntPtr. svn path=/trunk/gtk-sharp/; revision=47566
2005-07-22 19:10:04 +00:00
<attr path="/api/namespace/object[@cname='GtkContainer']/method[@name='ForeachFull']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkContainer']/method[@name='GetChildren']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkContainer']/method[@name='GetFocusChain']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkContainer']/method[@name='SetFocusChain']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkContainer']/signal[@name='Add']" name="name">Added</attr>
<attr path="/api/namespace/object[@cname='GtkContainer']/signal[@name='CheckResize']" name="name">ResizeChecked</attr>
<attr path="/api/namespace/object[@cname='GtkContainer']/signal[@name='Remove']" name="name">Removed</attr>
<attr path="/api/namespace/object[@cname='GtkContainer']/signal[@name='SetFocusChild']" name="name">FocusChildSet</attr>
<attr path="/api/namespace/object[@cname='GtkContainer']/method[@cname='gtk_container_child_type']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkDialog']/constructor[@cname='gtk_dialog_new_with_buttons']" name="hidden">1</attr>
* generator/StructBase.cs: update field-generation logic a bit * generator/CodeGenerator.cs: add a --glue-includes flag * generator/GenerationInfo.cs: Accept glue_includes value from Main and output it to the glue_filename. * generator/FieldBase.cs (Ignored): handle more ignorable cases. (CheckGlue): New method to figure out what kind of glue we'll need for a field. (GenerateImports): generate appropriate imports per CheckGlue. (GenerateGlue): Generate C glue for accessing a struct field; either a fully-C-based accessor, or a method to just return the field's offset in the struct. (Generate): Use the generated glue to read the field. * generator/PropertyBase.cs (CType): if the field is a single bit, set its type to gboolean. * generator/ObjectGen.cs (Generate): * generator/OpaqueGen.cs (Generate): Call GenFields. * generator/StructField.cs: Use FieldBase's glue-generation code to handle bitfields. [#54489] * generator/ObjectField.cs: Generates accessors for public fields of objects and opaque structs. [#69514] * generator/ClassBase.cs (ClassBase): Parse <fields> nodes and create ObjectField objects. (GenFields): Output field properties (IgnoreMethod): Ignore Get/Set methods that duplicate fields * generator/Makefile.am (sources): update * {gdk,gnome,gtk,pango}/*.metadata: Mark some additional fields as public. Rename/retype some fields for consistency with earlier hand-coded bindings. * {gdk,gnome,gtk,pango}/*.custom: Remove custom methods that can now be autogenerated. * {gdk,gnome,gtk,pango}/glue/*.c: Remove glue methods that can now be autogenerated * {gdk,glade,gnome,gtk,pango,vte}/Makefile.am * {gdk,glade,gnome,gtk,pango,vte}/glue/Makefile.am * {gdk,gnome,gtk,pango}/glue/makefile.win32: Update svn path=/trunk/gtk-sharp/; revision=44563
2005-05-16 14:28:55 +00:00
<attr path="/api/namespace/object[@cname='GtkDialog']/field[@name='ActionArea']" name="type">GtkHButtonBox*</attr>
<attr path="/api/namespace/object[@cname='GtkDialog']/field[@name='Vbox']" name="name">VBox</attr>
<attr path="/api/namespace/object[@cname='GtkDialog']/field[@name='VBox']" name="type">GtkVBox*</attr>
<attr path="/api/namespace/object[@cname='GtkDialog']/method[@name='AddButtons']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkDialog']/method[@name='Response']" name="name">Respond</attr>
<attr path="/api/namespace/object[@cname='GtkDialog']/method[@name='SetDefaultResponse']/*/*[@name='response_id']" name="type">GtkResponseType</attr>
<attr path="/api/namespace/object[@cname='GtkDialog']/method[@name='SetResponseSensitive']/*/*[@name='response_id']" name="type">GtkResponseType</attr>
<attr path="/api/namespace/object[@cname='GtkDialog']/signal[@name='Response']/*/*[@name='response_id']" name="type">GtkResponseType</attr>
<remove-node path="/api/namespace/object[@cname='GtkDialog']/method[@name='SetAlternativeButtonOrder']" />
<attr path="/api/namespace/object[@cname='GtkDialog']/method[@cname='gtk_dialog_set_alternative_button_order_from_array']" name="name">SetAlternativeButtonOrder</attr>
<attr path="/api/namespace/object[@cname='GtkDialog']/method[@name='SetAlternativeButtonOrder']/*/*[@name='new_order']" name="array">1</attr>
<attr path="/api/namespace/object[@cname='GtkEntry']/method[@name='SetEditable']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkEntry']/method[@name='SetPosition']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkEntry']/method[@name='SelectRegion']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkEntry']/property[@name='Editable']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkEntry']/signal[@name='Activate']" name="name">Activated</attr>
<attr path="/api/namespace/object[@cname='GtkEntry']/signal[@name='CopyClipboard']" name="name">ClipboardCopied</attr>
<attr path="/api/namespace/object[@cname='GtkEntry']/signal[@name='CutClipboard']" name="name">ClipboardCut</attr>
<attr path="/api/namespace/object[@cname='GtkEntry']/signal[@name='PasteClipboard']" name="name">ClipboardPasted</attr>
<attr path="/api/namespace/object[@cname='GtkEntryCompletion']/signal[@name='InsertPrefix']" name="name">PrefixInserted</attr>
<attr path="/api/namespace/object[@cname='GtkExpander']/constructor[@cname='gtk_expander_new_with_mnemonic']" name="preferred">1</attr>
* generator/StructBase.cs: update field-generation logic a bit * generator/CodeGenerator.cs: add a --glue-includes flag * generator/GenerationInfo.cs: Accept glue_includes value from Main and output it to the glue_filename. * generator/FieldBase.cs (Ignored): handle more ignorable cases. (CheckGlue): New method to figure out what kind of glue we'll need for a field. (GenerateImports): generate appropriate imports per CheckGlue. (GenerateGlue): Generate C glue for accessing a struct field; either a fully-C-based accessor, or a method to just return the field's offset in the struct. (Generate): Use the generated glue to read the field. * generator/PropertyBase.cs (CType): if the field is a single bit, set its type to gboolean. * generator/ObjectGen.cs (Generate): * generator/OpaqueGen.cs (Generate): Call GenFields. * generator/StructField.cs: Use FieldBase's glue-generation code to handle bitfields. [#54489] * generator/ObjectField.cs: Generates accessors for public fields of objects and opaque structs. [#69514] * generator/ClassBase.cs (ClassBase): Parse <fields> nodes and create ObjectField objects. (GenFields): Output field properties (IgnoreMethod): Ignore Get/Set methods that duplicate fields * generator/Makefile.am (sources): update * {gdk,gnome,gtk,pango}/*.metadata: Mark some additional fields as public. Rename/retype some fields for consistency with earlier hand-coded bindings. * {gdk,gnome,gtk,pango}/*.custom: Remove custom methods that can now be autogenerated. * {gdk,gnome,gtk,pango}/glue/*.c: Remove glue methods that can now be autogenerated * {gdk,glade,gnome,gtk,pango,vte}/Makefile.am * {gdk,glade,gnome,gtk,pango,vte}/glue/Makefile.am * {gdk,gnome,gtk,pango}/glue/makefile.win32: Update svn path=/trunk/gtk-sharp/; revision=44563
2005-05-16 14:28:55 +00:00
<attr path="/api/namespace/object[@cname='GtkExpander']/signal[@name='Activate']" name="name">Activated</attr>
<attr path="/api/namespace/object[@cname='GtkFileChooserDialog']/constructor[@cname='gtk_file_chooser_dialog_new']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkFileChooserDialog']/constructor[@cname='gtk_file_chooser_dialog_new_with_backend']" name="hidden">1</attr>
<remove-node path="/api/namespace/object[@cname='GtkFileChooserWidget']/implements/interface[@cname='GtkFileChooserEmbed']" />
* generator/StructBase.cs: update field-generation logic a bit * generator/CodeGenerator.cs: add a --glue-includes flag * generator/GenerationInfo.cs: Accept glue_includes value from Main and output it to the glue_filename. * generator/FieldBase.cs (Ignored): handle more ignorable cases. (CheckGlue): New method to figure out what kind of glue we'll need for a field. (GenerateImports): generate appropriate imports per CheckGlue. (GenerateGlue): Generate C glue for accessing a struct field; either a fully-C-based accessor, or a method to just return the field's offset in the struct. (Generate): Use the generated glue to read the field. * generator/PropertyBase.cs (CType): if the field is a single bit, set its type to gboolean. * generator/ObjectGen.cs (Generate): * generator/OpaqueGen.cs (Generate): Call GenFields. * generator/StructField.cs: Use FieldBase's glue-generation code to handle bitfields. [#54489] * generator/ObjectField.cs: Generates accessors for public fields of objects and opaque structs. [#69514] * generator/ClassBase.cs (ClassBase): Parse <fields> nodes and create ObjectField objects. (GenFields): Output field properties (IgnoreMethod): Ignore Get/Set methods that duplicate fields * generator/Makefile.am (sources): update * {gdk,gnome,gtk,pango}/*.metadata: Mark some additional fields as public. Rename/retype some fields for consistency with earlier hand-coded bindings. * {gdk,gnome,gtk,pango}/*.custom: Remove custom methods that can now be autogenerated. * {gdk,gnome,gtk,pango}/glue/*.c: Remove glue methods that can now be autogenerated * {gdk,glade,gnome,gtk,pango,vte}/Makefile.am * {gdk,glade,gnome,gtk,pango,vte}/glue/Makefile.am * {gdk,gnome,gtk,pango}/glue/makefile.win32: Update svn path=/trunk/gtk-sharp/; revision=44563
2005-05-16 14:28:55 +00:00
<attr path="/api/namespace/object[@cname='GtkFileSelection']/field[@name='ActionArea']" name="type">GtkHButtonBox*</attr>
<attr path="/api/namespace/object[@cname='GtkFileSelection']/field[@name='ActionArea']" name="new_flag">1</attr>
<attr path="/api/namespace/object[@cname='GtkFileSelection']/field[@name='ButtonArea']" name="type">GtkHButtonBox*</attr>
<attr path="/api/namespace/object[@cname='GtkFileSelection']/field[@name='CmplState']" name="access">private</attr>
<attr path="/api/namespace/object[@cname='GtkFileSelection']/field[@name='CancelButton']" name="type">GtkButton*</attr>
<attr path="/api/namespace/object[@cname='GtkFileSelection']/field[@name='DirList']" name="type">GtkTreeView*</attr>
<attr path="/api/namespace/object[@cname='GtkFileSelection']/field[@name='FileList']" name="type">GtkTreeView*</attr>
<attr path="/api/namespace/object[@cname='GtkFileSelection']/field[@name='FileopCDir']" name="type">GtkButton*</attr>
<attr path="/api/namespace/object[@cname='GtkFileSelection']/field[@name='FileopDelFile']" name="type">GtkButton*</attr>
<attr path="/api/namespace/object[@cname='GtkFileSelection']/field[@name='FileopDialog']" name="type">GtkMessageDialog*</attr>
<attr path="/api/namespace/object[@cname='GtkFileSelection']/field[@name='FileopEntry']" name="type">GtkEntry*</attr>
<attr path="/api/namespace/object[@cname='GtkFileSelection']/field[@name='FileopRenFile']" name="type">GtkButton*</attr>
<attr path="/api/namespace/object[@cname='GtkFileSelection']/field[@name='HelpButton']" name="type">GtkButton*</attr>
<attr path="/api/namespace/object[@cname='GtkFileSelection']/field[@name='HistoryList']" name="access">private</attr>
<attr path="/api/namespace/object[@cname='GtkFileSelection']/field[@name='HistoryMenu']" name="type">GtkMenu*</attr>
<attr path="/api/namespace/object[@cname='GtkFileSelection']/field[@name='HistoryPulldown']" name="type">GtkOptionMenu*</attr>
<attr path="/api/namespace/object[@cname='GtkFileSelection']/field[@name='MainVbox']" name="name">MainVBox</attr>
<attr path="/api/namespace/object[@cname='GtkFileSelection']/field[@name='MainVBox']" name="type">GtkVBox*</attr>
<attr path="/api/namespace/object[@cname='GtkFileSelection']/field[@name='OkButton']" name="type">GtkButton*</attr>
<attr path="/api/namespace/object[@cname='GtkFileSelection']/field[@name='SelectionEntry']" name="type">GtkEntry*</attr>
<attr path="/api/namespace/object[@cname='GtkFileSelection']/field[@name='SelectionText']" name="type">GtkLabel*</attr>
<attr path="/api/namespace/object[@cname='GtkFileSelection']/method[@name='GetFilename']/return-type" name="type">const-gfilename*</attr>
<attr path="/api/namespace/object[@cname='GtkFileSelection']/method[@name='GetSelections']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkFileSelection']/method[@name='SetFilename']/*/*[@name='filename']" name="type">const-gfilename*</attr>
<attr path="/api/namespace/object[@cname='GtkFileSelection']/property[@name='Filename']" name="type">gfilename*</attr>
* generator/StructBase.cs: update field-generation logic a bit * generator/CodeGenerator.cs: add a --glue-includes flag * generator/GenerationInfo.cs: Accept glue_includes value from Main and output it to the glue_filename. * generator/FieldBase.cs (Ignored): handle more ignorable cases. (CheckGlue): New method to figure out what kind of glue we'll need for a field. (GenerateImports): generate appropriate imports per CheckGlue. (GenerateGlue): Generate C glue for accessing a struct field; either a fully-C-based accessor, or a method to just return the field's offset in the struct. (Generate): Use the generated glue to read the field. * generator/PropertyBase.cs (CType): if the field is a single bit, set its type to gboolean. * generator/ObjectGen.cs (Generate): * generator/OpaqueGen.cs (Generate): Call GenFields. * generator/StructField.cs: Use FieldBase's glue-generation code to handle bitfields. [#54489] * generator/ObjectField.cs: Generates accessors for public fields of objects and opaque structs. [#69514] * generator/ClassBase.cs (ClassBase): Parse <fields> nodes and create ObjectField objects. (GenFields): Output field properties (IgnoreMethod): Ignore Get/Set methods that duplicate fields * generator/Makefile.am (sources): update * {gdk,gnome,gtk,pango}/*.metadata: Mark some additional fields as public. Rename/retype some fields for consistency with earlier hand-coded bindings. * {gdk,gnome,gtk,pango}/*.custom: Remove custom methods that can now be autogenerated. * {gdk,gnome,gtk,pango}/glue/*.c: Remove glue methods that can now be autogenerated * {gdk,glade,gnome,gtk,pango,vte}/Makefile.am * {gdk,glade,gnome,gtk,pango,vte}/glue/Makefile.am * {gdk,gnome,gtk,pango}/glue/makefile.win32: Update svn path=/trunk/gtk-sharp/; revision=44563
2005-05-16 14:28:55 +00:00
<attr path="/api/namespace/object[@cname='GtkFontSelectionDialog']/field[@name='ApplyButton']" name="type">GtkButton*</attr>
<attr path="/api/namespace/object[@cname='GtkFontSelectionDialog']/field[@name='ApplyButton']" name="access">public</attr>
<attr path="/api/namespace/object[@cname='GtkFontSelectionDialog']/field[@name='CancelButton']" name="type">GtkButton*</attr>
<attr path="/api/namespace/object[@cname='GtkFontSelectionDialog']/field[@name='CancelButton']" name="access">public</attr>
<attr path="/api/namespace/object[@cname='GtkFontSelectionDialog']/field[@name='OkButton']" name="type">GtkButton*</attr>
<attr path="/api/namespace/object[@cname='GtkFontSelectionDialog']/field[@name='OkButton']" name="access">public</attr>
<attr path="/api/namespace/object[@cname='GtkFrame']/method[@name='GetLabelAlign']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkFrame']/method[@name='SetLabelAlign']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkHandleBox']/property[@name='ShadowType']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkHScale']/constructor[@cname='gtk_hscale_new_with_range']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkIconTheme']/method[@name='ChooseIcon']/*/*[@name='icon_names']" name="null_term_array">1</attr>
<attr path="/api/namespace/object[@cname='GtkIconTheme']/method[@name='GetIconSizes']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkIconTheme']/method[@name='GetSearchPath']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkIconTheme']/method[@name='ListContexts']/return-type" name="element_type">gchar*</attr>
<attr path="/api/namespace/object[@cname='GtkIconTheme']/method[@name='ListContexts']/return-type" name="owned">true</attr>
<attr path="/api/namespace/object[@cname='GtkIconTheme']/method[@name='ListContexts']/return-type" name="elements_owned">true</attr>
<attr path="/api/namespace/object[@cname='GtkIconTheme']/method[@name='ListIcons']" name="hidden">1</attr>
Automatic memory management for opaque types [#49565] * glib/Opaque.cs (Owned): new property saying whether or not gtk# owns the memory. (Opaque): Set Owned to true in the void ctor and false in the IntPtr one. (GetOpaque): add a new overload that can also create opaques, a la GLib.Object.GetObject. (Ref, Unref, Free): empty virtual methods to be overridden by subclasses. (set_Raw): Unref() and possibly Free() the old value, Ref() the new one. (~Opaque, Dispose): set Raw to IntPtr.Zero (triggering Free/Unref if needed) * parser/gapi2xml.pl (addReturnElem): if the method is named Copy and returns a pointer, set the "owned" attribute on the return-type. * */*-api.raw: Regen * generator/HandleBase.cs (FromNative): Add new FromNative/FromNativeReturn overloads that takes a "bool owned" param. Implement the 1-arg FromNative and FromNativeReturn in terms of that. * generator/ObjectBase.cs (FromNative): Implement HandleBase's new overload. Use the two-arg version of GLib.Object.GetObject when "owned" is true. * generator/OpaqueGen.cs (Generate): Pull out Ref, Unref, and Free/Destroy/Dispose methods and handle them specially by overriding Opaque.Ref, .Unref, and .Free appropriately. (If any of the methods are marked deprecated, output a deprecated do-nothing method as well, to save us from having to write all those deprecated methods by hand.) (FromNative): use GetOpaque, passing "owned". * generator/ReturnValue.cs (FromNative): if the value is a HandleBase, pass Owned to its FromNative(). * generator/Parameters.cs (Owned): new property (for use on out params) (FromNative): Call FromNative() on the generatable, handling Owned in the case of HandleBase. * generator/ManagedCallString.cs: * generator/MethodBody.cs: * generator/Signal.cs: use param.FromNative() rather than param.Generatable.FromNative(), to get ownership right. * */*.metadata: Mark opaque ref/unref/free methods deprecated (except where we were hiding them before). Add "owned" attributes to return values and out params as needed. * pango/AttrIterator.custom (GetFont): work around a memory-management oddity of the underlying method. * pango/AttrFontDesc.cs (AttrFontDesc): copy the passed-in FontDescriptor, since the attribute will assume ownership of it. * gtk/TreeView.custom (GetPathAtPos): set the "owned" flag on the returned TreePaths. * gtk/TargetList.custom: Remove refcounting stuff, which is now handled automatically * gtk/NodeStore.cs (GetPath): clear the Owned flag on the created TreePath so that the underlying structure doesn't get freed when the function returns * gtkhtml/HTMLStream.custom (Destroy): hide this and then reimplement it by hand to keep OpaqueGen from using it in Dispose(), since calling it after an HTMLStream.Close() will result in a crash. svn path=/trunk/gtk-sharp/; revision=47928
2005-08-02 18:45:21 +00:00
<attr path="/api/namespace/object[@cname='GtkIconTheme']/method[@name='LookupIcon']/return-type" name="owned">true</attr>
2005-05-02 20:10:03 +00:00
<attr path="/api/namespace/object[@cname='GtkIconTheme']/method[@name='SetSearchPath']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkIconView']/method[@name='ItemActivated']" name="name">ActivateItem</attr>
<attr path="/api/namespace/object[@cname='GtkIconView']/method[@name='EnableModelDragDest']/*/*[@name='targets']" name="array">1</attr>
<attr path="/api/namespace/object[@cname='GtkIconView']/method[@name='EnableModelDragSource']/*/*[@name='targets']" name="array">1</attr>
<attr path="/api/namespace/object[@cname='GtkIconView']/method[@name='GetCursor']/*/parameter" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkIconView']/method[@name='GetCursor']/*/*[@name='path']" name="owned">true</attr>
<attr path="/api/namespace/object[@cname='GtkIconView']/method[@name='GetDestItemAtPos']/*/*[@name='path']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkIconView']/method[@name='GetDestItemAtPos']/*/*[@name='path']" name="owned">true</attr>
<attr path="/api/namespace/object[@cname='GtkIconView']/method[@name='GetDragDestItem']/*/*[@name='path']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkIconView']/method[@name='GetDragDestItem']/*/*[@name='path']" name="owned">true</attr>
<attr path="/api/namespace/object[@cname='GtkIconView']/method[@name='GetItemAtPos']/*/*[@name='path']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkIconView']/method[@name='GetItemAtPos']/*/*[@name='cell']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkIconView']/method[@name='GetItemAtPos']/*/*[@name='path']" name="owned">true</attr>
Automatic memory management for opaque types [#49565] * glib/Opaque.cs (Owned): new property saying whether or not gtk# owns the memory. (Opaque): Set Owned to true in the void ctor and false in the IntPtr one. (GetOpaque): add a new overload that can also create opaques, a la GLib.Object.GetObject. (Ref, Unref, Free): empty virtual methods to be overridden by subclasses. (set_Raw): Unref() and possibly Free() the old value, Ref() the new one. (~Opaque, Dispose): set Raw to IntPtr.Zero (triggering Free/Unref if needed) * parser/gapi2xml.pl (addReturnElem): if the method is named Copy and returns a pointer, set the "owned" attribute on the return-type. * */*-api.raw: Regen * generator/HandleBase.cs (FromNative): Add new FromNative/FromNativeReturn overloads that takes a "bool owned" param. Implement the 1-arg FromNative and FromNativeReturn in terms of that. * generator/ObjectBase.cs (FromNative): Implement HandleBase's new overload. Use the two-arg version of GLib.Object.GetObject when "owned" is true. * generator/OpaqueGen.cs (Generate): Pull out Ref, Unref, and Free/Destroy/Dispose methods and handle them specially by overriding Opaque.Ref, .Unref, and .Free appropriately. (If any of the methods are marked deprecated, output a deprecated do-nothing method as well, to save us from having to write all those deprecated methods by hand.) (FromNative): use GetOpaque, passing "owned". * generator/ReturnValue.cs (FromNative): if the value is a HandleBase, pass Owned to its FromNative(). * generator/Parameters.cs (Owned): new property (for use on out params) (FromNative): Call FromNative() on the generatable, handling Owned in the case of HandleBase. * generator/ManagedCallString.cs: * generator/MethodBody.cs: * generator/Signal.cs: use param.FromNative() rather than param.Generatable.FromNative(), to get ownership right. * */*.metadata: Mark opaque ref/unref/free methods deprecated (except where we were hiding them before). Add "owned" attributes to return values and out params as needed. * pango/AttrIterator.custom (GetFont): work around a memory-management oddity of the underlying method. * pango/AttrFontDesc.cs (AttrFontDesc): copy the passed-in FontDescriptor, since the attribute will assume ownership of it. * gtk/TreeView.custom (GetPathAtPos): set the "owned" flag on the returned TreePaths. * gtk/TargetList.custom: Remove refcounting stuff, which is now handled automatically * gtk/NodeStore.cs (GetPath): clear the Owned flag on the created TreePath so that the underlying structure doesn't get freed when the function returns * gtkhtml/HTMLStream.custom (Destroy): hide this and then reimplement it by hand to keep OpaqueGen from using it in Dispose(), since calling it after an HTMLStream.Close() will result in a crash. svn path=/trunk/gtk-sharp/; revision=47928
2005-08-02 18:45:21 +00:00
<attr path="/api/namespace/object[@cname='GtkIconView']/method[@name='GetPathAtPos']/return-type" name="owned">true</attr>
<attr path="/api/namespace/object[@cname='GtkIconView']/method[@name='GetSelectedItems']/return-type" name="element_type">GtkTreePath*</attr>
<attr path="/api/namespace/object[@cname='GtkIconView']/method[@name='GetSelectedItems']/return-type" name="elements_owned">true</attr>
<attr path="/api/namespace/object[@cname='GtkIconView']/method[@name='GetSelectedItems']/return-type" name="owned">true</attr>
<attr path="/api/namespace/object[@cname='GtkIconView']/method[@name='GetTooltipContext']/*/parameter[@name='iter']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkIconView']/method[@name='GetTooltipContext']/*/parameter[@name='model']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkIconView']/method[@name='GetTooltipContext']/*/parameter[@name='path']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkIconView']/method[@name='GetVisibleRange']/*/parameter" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkIconView']/method[@name='GetVisibleRange']/*/parameter" name="owned">true</attr>
<attr path="/api/namespace/object[@cname='GtkIconView']/method[@name='ScrollToPath']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkIconView']/signal[@name='SelectAll']" name="name">AllSelected</attr>
<attr path="/api/namespace/object[@cname='GtkIconView']/method[@name='SelectedForeach']/*/*[@name='func']" name="scope">call</attr>
<attr path="/api/namespace/object[@cname='GtkIconView']/signal[@name='SetScrollAdjustments']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkIconView']/signal[@name='UnselectAll']" name="name">AllUnselected</attr>
<attr path="/api/namespace/object[@cname='GtkImageMenuItem']/constructor[@cname='gtk_image_menu_item_new_with_mnemonic']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkImageMenuItem']/constructor[@cname='gtk_image_menu_item_new_with_label']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkImage']/constructor[@cname='gtk_image_new_from_animation']/*/*[@name='animation']" name="property_name">pixbuf_animation</attr>
<attr path="/api/namespace/object[@cname='GtkImage']/constructor[@cname='gtk_image_new_from_file']/*/*[@name='filename']" name="property_name">file</attr>
<attr path="/api/namespace/object[@cname='GtkImage']/constructor[@cname='gtk_image_new_from_icon_name']" name="shared">true</attr>
<attr path="/api/namespace/object[@cname='GtkImage']/constructor[@cname='gtk_image_new_from_icon_set']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkImage']/constructor[@cname='gtk_image_new_from_stock']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkImage']/method[@name='GetIconSet']/*/*[@name='icon_set']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkImage']/method[@name='GetImage']/*/*[@name='gdk_image']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkImage']/method[@name='GetImage']/*/*[@name='mask']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkImage']/method[@name='GetPixmap']/*/*[@name='pixmap']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkImage']/method[@name='GetPixmap']/*/*[@name='mask']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkImage']/method[@name='GetStock']/*/*[@name='stock_id']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkIMContext']/signal[@name='DeleteSurrounding']" name="name">SurroundingDeleted</attr>
<attr path="/api/namespace/object[@cname='GtkIMContext']/method[@name='GetPreeditString']/*/*[@name='str']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkIMContext']/method[@name='GetPreeditString']/*/*[@name='attrs']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkIMContext']/method[@name='GetSurrounding']/*/*[@name='text']" name="pass_as">out</attr>
* generator/StructBase.cs: update field-generation logic a bit * generator/CodeGenerator.cs: add a --glue-includes flag * generator/GenerationInfo.cs: Accept glue_includes value from Main and output it to the glue_filename. * generator/FieldBase.cs (Ignored): handle more ignorable cases. (CheckGlue): New method to figure out what kind of glue we'll need for a field. (GenerateImports): generate appropriate imports per CheckGlue. (GenerateGlue): Generate C glue for accessing a struct field; either a fully-C-based accessor, or a method to just return the field's offset in the struct. (Generate): Use the generated glue to read the field. * generator/PropertyBase.cs (CType): if the field is a single bit, set its type to gboolean. * generator/ObjectGen.cs (Generate): * generator/OpaqueGen.cs (Generate): Call GenFields. * generator/StructField.cs: Use FieldBase's glue-generation code to handle bitfields. [#54489] * generator/ObjectField.cs: Generates accessors for public fields of objects and opaque structs. [#69514] * generator/ClassBase.cs (ClassBase): Parse <fields> nodes and create ObjectField objects. (GenFields): Output field properties (IgnoreMethod): Ignore Get/Set methods that duplicate fields * generator/Makefile.am (sources): update * {gdk,gnome,gtk,pango}/*.metadata: Mark some additional fields as public. Rename/retype some fields for consistency with earlier hand-coded bindings. * {gdk,gnome,gtk,pango}/*.custom: Remove custom methods that can now be autogenerated. * {gdk,gnome,gtk,pango}/glue/*.c: Remove glue methods that can now be autogenerated * {gdk,glade,gnome,gtk,pango,vte}/Makefile.am * {gdk,glade,gnome,gtk,pango,vte}/glue/Makefile.am * {gdk,gnome,gtk,pango}/glue/makefile.win32: Update svn path=/trunk/gtk-sharp/; revision=44563
2005-05-16 14:28:55 +00:00
<attr path="/api/namespace/object[@cname='GtkInputDialog']/field[@name='CloseButton']" name="type">GtkButton*</attr>
<attr path="/api/namespace/object[@cname='GtkInputDialog']/field[@name='CloseButton']" name="access">public</attr>
<attr path="/api/namespace/object[@cname='GtkInputDialog']/field[@name='SaveButton']" name="type">GtkButton*</attr>
<attr path="/api/namespace/object[@cname='GtkInputDialog']/field[@name='SaveButton']" name="access">public</attr>
<attr path="/api/namespace/object[@cname='GtkInvisible']/property[@name='Screen']" name="new_flag">1</attr>
<attr path="/api/namespace/object[@cname='GtkItemFactory']/constructor[@cname='gtk_item_factory_new']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkItemFactory']/method[@name='GetItemByAction']" name="name">GetItem</attr>
<attr path="/api/namespace/object[@cname='GtkItemFactory']/method[@name='GetWidgetByAction']" name="name">GetWidget</attr>
* generator/Parameters.cs (Parameters.Validate): If the parameters end with "callback, gpointer, GDestroyNotify", then mark the callback as having "notified" Scope. (Parameters.IsHidden): Hide user_data and GDestroyNotify after a callback. (Parameter.Scope): make this settable (Parameter.IsDestroyNotify): new test * generator/MethodBody.cs (Initialize): Handle "notified" callback scope (using a GCHandle and GLib.DestroyHelper.NotifyHandler) * generator/CallbackGen.cs (GenWrapper): Add a static "GetManagedDelegate" method to the wrapper type, to translate a native delegate back to its corresponding managed delegate. (FromNative): use GetManagedDelegate. * generator/ReturnValue.cs (Validate): We handle callback return values now * generator/SymbolTable.cs: marshal GDestroyNotify as GLib.DestroyNotify * glib/DestroyNotify.cs: Moved from gtk * gtk/Gtk.metadata: globally change GtkDestroyNotify to GDestroyNotify, but then change back the ones that are exposed in the API. Un-hide lots of methods we can correctly autogenerate now. * gtk/DestroyHelper.cs: moved to glib * gtk/*.custom: remove methods that are autogenerated now, add Obsolete wrappers where needed, replace Gtk.DestroyHelper usage with GLib.DestroyHelper. * gdk/Gdk.metadata: * gnome/Gnome.metadata: Turn Gdk.Drawable.SetData and Gnome.IconList.SetIconDataFull's GDestroyNotify args into gpointers so the generated API stays the same as it used to be. * rsvg/Handle.custom: implement deprecated SetSizeCallback * sample/GtkDemo/DemoIconView.cs (CreateSort): update for API changes svn path=/trunk/gtk-sharp/; revision=44020
2005-05-04 11:47:25 +00:00
<attr path="/api/namespace/object[@cname='GtkItemFactory']/method[@name='PopupWithData']/*/*[@name='destroy']" name="type">GtkDestroyNotify</attr>
<attr path="/api/namespace/object[@cname='GtkItem']/signal[@name='Deselect']" name="name">Deselected</attr>
<attr path="/api/namespace/object[@cname='GtkItem']/signal[@name='Select']" name="name">Selected</attr>
<attr path="/api/namespace/object[@cname='GtkItem']/signal[@name='Toggle']" name="name">Toggled</attr>
<attr path="/api/namespace/object[@cname='GtkLabel']/constructor[@cname='gtk_label_new_with_mnemonic']" name="preferred">1</attr>
<attr path="/api/namespace/object[@cname='GtkLabel']/constructor[@cname='gtk_label_new_with_mnemonic']/*/*[@name='str']" name="property_name">label</attr>
<attr path="/api/namespace/object[@cname='GtkLabel']/property[@name='WrapMode']" name="name">LineWrapMode</attr>
<attr path="/api/namespace/object[@cname='GtkLayout']/signal[@name='SetScrollAdjustments']" name="name">ScrollAdjustmentsSet</attr>
<add-node path="/api/namespace/object[@name='ListStore']"><implements><interface name="IEnumerable" /></implements></add-node>
<attr path="/api/namespace/object[@cname='GtkListStore']/constructor[@cname='gtk_list_store_new']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkListStore']/constructor[@cname='gtk_list_store_newv']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkListStore']/method[@name='Append']/*/*[@name='iter']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkListStore']/method[@name='InsertAfter']/*/*[@name='iter']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkListStore']/method[@name='InsertBefore']/*/*[@name='iter']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkListStore']/method[@name='Insert']/*/*[@name='iter']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkListStore']/method[@name='InsertWithValues']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkListStore']/method[@name='InsertWithValuesv']" name="deprecated">1</attr>
<attr path="/api/namespace/object[@cname='GtkListStore']/method[@name='Prepend']/*/*[@name='iter']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkListStore']/method[@name='Remove']/*/*[@name='iter']" name="pass_as">ref</attr>
<attr path="/api/namespace/object[@cname='GtkListStore']/method[@name='Set']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkListStore']/method[@name='SetColumnTypes']/*/*[@name='types']" name="array">1</attr>
<attr path="/api/namespace/object[@cname='GtkListStore']/method[@name='SetValuesv']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkMenuItem']/constructor[@cname='gtk_menu_item_new_with_mnemonic']" name="preferred">1</attr>
<attr path="/api/namespace/object[@cname='GtkMenuItem']/constructor[@cname='gtk_menu_item_new_with_mnemonic']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkMenuItem']/constructor[@cname='gtk_menu_item_new_with_label']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkMenuItem']/signal[@name='Activate']" name="name">Activated</attr>
<attr path="/api/namespace/object[@cname='GtkMenuItem']/signal[@name='ToggleSizeAllocate']" name="name">ToggleSizeAllocated</attr>
<attr path="/api/namespace/object[@cname='GtkMenuItem']/signal[@name='ToggleSizeRequest']" name="name">ToggleSizeRequested</attr>
<attr path="/api/namespace/object[@cname='GtkMenu']/method[@name='AttachToWidget']/*/*[@name='detacher']" name="scope">async</attr>
<attr path="/api/namespace/object[@cname='GtkMenu']/method[@name='Popup']/*/*[@name='func']" name="scope">call</attr>
<attr path="/api/namespace/object[@cname='GtkMenu']/method[@name='SetScreen']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkMenuShell']/signal[@name='Cancel']" name="name">Canceled</attr>
<attr path="/api/namespace/object[@cname='GtkMenuShell']/signal[@name='Deactivate']" name="name">Deactivated</attr>
<attr path="/api/namespace/object[@cname='GtkMessageDialog']/constructor[@cname='gtk_message_dialog_new']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkMessageDialog']/constructor[@cname='gtk_message_dialog_new_with_markup']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkNotebook']/property[@name='Homogeneous']" name="deprecated">1</attr>
<attr path="/api/namespace/object[@cname='GtkNotebook']/signal[@name='ChangeCurrentPage']/return-type" name="type">void</attr>
<attr path="/api/namespace/object[@cname='GtkNotebook']/signal[@name='ReorderTab']/return-type" name="type">void</attr>
<attr path="/api/namespace/object[@cname='GtkObject']/constructor[@cname='gtk_object_new']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkObject']/method[@name='Destroy']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkObject']/method[@name='Get']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkObject']/method[@name='Set']" name="hidden">1</attr>
* generator/Parameters.cs (Parameters.Validate): If the parameters end with "callback, gpointer, GDestroyNotify", then mark the callback as having "notified" Scope. (Parameters.IsHidden): Hide user_data and GDestroyNotify after a callback. (Parameter.Scope): make this settable (Parameter.IsDestroyNotify): new test * generator/MethodBody.cs (Initialize): Handle "notified" callback scope (using a GCHandle and GLib.DestroyHelper.NotifyHandler) * generator/CallbackGen.cs (GenWrapper): Add a static "GetManagedDelegate" method to the wrapper type, to translate a native delegate back to its corresponding managed delegate. (FromNative): use GetManagedDelegate. * generator/ReturnValue.cs (Validate): We handle callback return values now * generator/SymbolTable.cs: marshal GDestroyNotify as GLib.DestroyNotify * glib/DestroyNotify.cs: Moved from gtk * gtk/Gtk.metadata: globally change GtkDestroyNotify to GDestroyNotify, but then change back the ones that are exposed in the API. Un-hide lots of methods we can correctly autogenerate now. * gtk/DestroyHelper.cs: moved to glib * gtk/*.custom: remove methods that are autogenerated now, add Obsolete wrappers where needed, replace Gtk.DestroyHelper usage with GLib.DestroyHelper. * gdk/Gdk.metadata: * gnome/Gnome.metadata: Turn Gdk.Drawable.SetData and Gnome.IconList.SetIconDataFull's GDestroyNotify args into gpointers so the generated API stays the same as it used to be. * rsvg/Handle.custom: implement deprecated SetSizeCallback * sample/GtkDemo/DemoIconView.cs (CreateSort): update for API changes svn path=/trunk/gtk-sharp/; revision=44020
2005-05-04 11:47:25 +00:00
<attr path="/api/namespace/object[@cname='GtkObject']/method[@name='SetDataFull']/*/*[@name='destroy']" name="type">GtkDestroyNotify</attr>
<attr path="/api/namespace/object[@cname='GtkObject']/method[@name='SetDataByIdFull']/*/*[@name='destroy']" name="type">GtkDestroyNotify</attr>
<attr path="/api/namespace/object[@cname='GtkObject']/method[@name='Weakref']/*/*[@name='notify']" name="type">GtkDestroyNotify</attr>
<attr path="/api/namespace/object[@cname='GtkObject']/method[@name='Weakunref']/*/*[@name='notify']" name="type">GtkDestroyNotify</attr>
<attr path="/api/namespace/object[@cname='GtkObject']/signal[@name='Destroy']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkPageSetup']/constructor[@cname='gtk_page_setup_new_from_file']/*/*[@name='file_name']" name="type">const-gfilename*</attr>
<attr path="/api/namespace/object[@cname='GtkPageSetup']/method[@name='ToFile']/*/*[@name='file_name']" name="type">const-gfilename*</attr>
<attr path="/api/namespace/object[@cname='GtkPlug']/constructor[@cname='gtk_plug_new']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkPlug']/constructor[@cname='gtk_plug_new_for_display']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkPlug']/property[@name='Embedded']" name="name">IsEmbedded</attr>
<attr path="/api/namespace/object[@cname='GtkPrinter']/method[@name='AcceptsPdf']" name="name">GetAcceptsPdf</attr>
<attr path="/api/namespace/object[@cname='GtkPrinter']/method[@name='AcceptsPs']" name="name">GetAcceptsPs</attr>
<attr path="/api/namespace/object[@cname='GtkPrinter']/method[@name='HasDetails']" name="name">GetHasDetails</attr>
<attr path="/api/namespace/object[@cname='GtkPrinter']/method[@name='IsActive']" name="name">GetIsActive</attr>
<attr path="/api/namespace/object[@cname='GtkPrinter']/method[@name='IsDefault']" name="name">GetIsDefault</attr>
<attr path="/api/namespace/object[@cname='GtkPrinter']/method[@name='IsNew']" name="name">GetIsNew</attr>
<attr path="/api/namespace/object[@cname='GtkPrinter']/method[@name='IsVirtual']" name="name">GetIsVirtual</attr>
<attr path="/api/namespace/object[@cname='GtkPrinter']/method[@name='ListPapers']/return-type" name="element_type">GtkPageSetup*</attr>
<attr path="/api/namespace/object[@cname='GtkPrinter']/method[@name='ListPapers']/return-type" name="owned">true</attr>
<attr path="/api/namespace/object[@cname='GtkPrinter']/method[@name='ListPapers']/return-type" name="elements_owned">true</attr>
<attr path="/api/namespace/object[@cname='GtkPrinterOptionSet']/method[@name='Foreach']/*/*[@name='func']" name="scope">call</attr>
<attr path="/api/namespace/object[@cname='GtkPrinterOptionSet']/method[@name='ForeachInGroup']/*/*[@name='func']" name="scope">call</attr>
<attr path="/api/namespace/object[@cname='GtkPrintSettings']/constructor[@cname='gtk_print_settings_new_from_file']/*/*[@name='file_name']" name="type">const-gfilename*</attr>
<attr path="/api/namespace/object[@cname='GtkPrintSettings']/method[@name='Foreach']/*/*[@name='func']" name="scope">call</attr>
<attr path="/api/namespace/object[@cname='GtkPrintSettings']/method[@name='ToFile']/*/*[@name='file_name']" name="type">const-gfilename*</attr>
<attr path="/api/namespace/object[@cname='GtkProgressBar']" name="parent">GtkWidget</attr>
<attr path="/api/namespace/object[@cname='GtkRadioButton']/constructor[@cname='gtk_radio_button_new']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkRadioButton']/constructor[@cname='gtk_radio_button_new_with_label_from_widget']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkRadioButton']/constructor[@cname='gtk_radio_button_new_with_label']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkRadioButton']/constructor[@cname='gtk_radio_button_new_with_mnemonic']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkRadioButton']/constructor[@cname='gtk_radio_button_new_from_widget']/*/*[@name='radio_group_member']" name="property_name">group</attr>
<attr path="/api/namespace/object[@cname='GtkRadioButton']/constructor[@cname='gtk_radio_button_new_with_mnemonic_from_widget']/*/*[@name='radio_group_member']" name="property_name">group</attr>
<attr path="/api/namespace/object[@cname='GtkRadioButton']/property[@name='Group']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkRadioMenuItem']/constructor[@cname='gtk_radio_menu_item_new']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkRadioMenuItem']/constructor[@cname='gtk_radio_menu_item_new_with_label']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkRadioMenuItem']/constructor[@cname='gtk_radio_menu_item_new_with_label_from_widget']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkRadioToolButton']/constructor[@cname='gtk_radio_tool_button_new']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkRadioToolButton']/constructor[@cname='gtk_radio_tool_button_new_from_stock']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkRcStyle']/method[@name='Ref']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkRcStyle']/method[@name='Unref']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkRcStyle']/field[@name='Name']" name="writeable">true</attr>
<attr path="/api/namespace/object[@cname='GtkRcStyle']/field[@name='BgPixmapName']" name="writeable">true</attr>
<attr path="/api/namespace/object[@cname='GtkRcStyle']/field[@name='FontDesc']" name="writeable">true</attr>
<attr path="/api/namespace/object[@cname='GtkRcStyle']/field[@name='ColorFlags']" name="writeable">true</attr>
<attr path="/api/namespace/object[@cname='GtkRcStyle']/field[@name='Fg']" name="writeable">true</attr>
<attr path="/api/namespace/object[@cname='GtkRcStyle']/field[@name='Bg']" name="writeable">true</attr>
<attr path="/api/namespace/object[@cname='GtkRcStyle']/field[@name='Text']" name="writeable">true</attr>
<attr path="/api/namespace/object[@cname='GtkRcStyle']/field[@name='Base']" name="writeable">true</attr>
<attr path="/api/namespace/object[@cname='GtkRcStyle']/field[@name='Xthickness']" name="writeable">true</attr>
<attr path="/api/namespace/object[@cname='GtkRcStyle']/field[@name='Ythickness']" name="writeable">true</attr>
<attr path="/api/namespace/object[@cname='GtkRecentAction']" name="disable_gtype_ctor">1</attr>
<attr path="/api/namespace/object[@cname='GtkRecentChooserMenu']/method[@name='GetShowNumbers']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkRecentChooserMenu']/method[@name='SetShowNumbers']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkRecentChooserMenu']/property[@name='ShowNumbers']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkScaleButton']" name="disable_gtype_ctor">1</attr>
<attr path="/api/namespace/object[@cname='GtkScaleButton']/constructor[@cname='gtk_scale_button_new']/*/*[@name='icons']" name="null_term_array">1</attr>
<attr path="/api/namespace/object[@cname='GtkScaleButton']/method[@name='SetIcons']/*/*[@name='icons']" name="null_term_array">1</attr>
<attr path="/api/namespace/object[@cname='GtkScrolledWindow']/field[@name='Hscrollbar']" name="access">private</attr>
<attr path="/api/namespace/object[@cname='GtkScrolledWindow']/field[@name='Vscrollbar']" name="access">private</attr>
<attr path="/api/namespace/object[@cname='GtkScrolledWindow']/method[@name='GetHscrollbar']" name="name">GetHScrollbar</attr>
<attr path="/api/namespace/object[@cname='GtkScrolledWindow']/method[@name='GetPolicy']/*/*[@type='GtkPolicyType*']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkScrolledWindow']/method[@name='GetVscrollbar']" name="name">GetVScrollbar</attr>
<attr path="/api/namespace/object[@cname='GtkScrolledWindow']/signal[@name='ScrollChild']/return-type" name="type">void</attr>
* generator/CallbackGen.cs: * generator/CodeGenerator.cs: * generator/ManagedCallString.cs: * generator/Property.cs: Remove unused vars * generator/Method.cs (GetHashCode): have to implement this since we're overriding Equals. * generator/CallbackGen.cs: print a message when generating a broken struct-returning callback. (Currently affects GtkSharp.TextSegSplitFuncNative and GtkSharp.TextSegCleanupFuncNative) * gdk/glue/device.c: * gdk/glue/dragcontext.c: Add missing prototypes * gtk/Gtk.metadata: Mark SeparatorToolItem.Draw "new". Re-rename CheckMenuItem.Toggled to EmitToggled rather than Toggle, since that's a better description of what it does. * gtk/CheckMenuItem.custom: implement a "Toggle" method that does what the documentation claims it does. * gtk/NodeStore.cs: remove unused var * gnome/Gnome.metadata: mark DateEdit.Flags, Dialog.Default, and PropertyBox.State "new". Hide GnomePixmapEntry.GnomeEntry and GnomePixmapEntry.GtkEntry since they do exactly the same thing as the methods of the same names inherited from GnomeFileEntry. * gnome/glue/canvas-proxy.c: * gnome/glue/canvas-proxy.h: * gnome/glue/canvas-proxy-marshal.c: * gnome/glue/canvas-proxy-marshal.h: * gnome/glue/canvas-proxy-marshal.list: Remove unused code * gnome/glue/Makefile.am (libgnomesharpglue_2_la_SOURCES): update * panelapplet/PanelApplet.metadata: mark PanelApplet.Flags "new" * sample/CanvasExample.cs: * sample/CustomCellRenderer.cs: * sample/CustomNotebook.cs: * sample/DrawingSample.cs: * sample/Fifteen.cs: * sample/GladeTest.cs: * sample/GtkDemo/DemoHyperText.cs: * sample/GtkDemo/DemoPixbuf.cs: * sample/ScribbleXInput.cs: remove unused vars, use GLib.Timeout.Add rather than the deprecated Gtk.Timeout.Add svn path=/trunk/gtk-sharp/; revision=38043
2004-12-21 18:46:42 +00:00
<attr path="/api/namespace/object[@cname='GtkSeparatorToolItem']/property[@name='Draw']" name="new_flag">1</attr>
<attr path="/api/namespace/object[@cname='GtkSizeGroup']/method[@name='GetWidgets']/return-type" name="element_type">GtkWidget*</attr>
<attr path="/api/namespace/object[@cname='GtkSpinButton']/constructor[@cname='gtk_spin_button_new_with_range']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkStatusIcon']/method[@name='GetGeometry']/*/*[@name='screen']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkStatusIcon']/method[@name='GetGeometry']/*/*[@name='area']" name="pass_as">out</attr>
* generator/StructBase.cs: update field-generation logic a bit * generator/CodeGenerator.cs: add a --glue-includes flag * generator/GenerationInfo.cs: Accept glue_includes value from Main and output it to the glue_filename. * generator/FieldBase.cs (Ignored): handle more ignorable cases. (CheckGlue): New method to figure out what kind of glue we'll need for a field. (GenerateImports): generate appropriate imports per CheckGlue. (GenerateGlue): Generate C glue for accessing a struct field; either a fully-C-based accessor, or a method to just return the field's offset in the struct. (Generate): Use the generated glue to read the field. * generator/PropertyBase.cs (CType): if the field is a single bit, set its type to gboolean. * generator/ObjectGen.cs (Generate): * generator/OpaqueGen.cs (Generate): Call GenFields. * generator/StructField.cs: Use FieldBase's glue-generation code to handle bitfields. [#54489] * generator/ObjectField.cs: Generates accessors for public fields of objects and opaque structs. [#69514] * generator/ClassBase.cs (ClassBase): Parse <fields> nodes and create ObjectField objects. (GenFields): Output field properties (IgnoreMethod): Ignore Get/Set methods that duplicate fields * generator/Makefile.am (sources): update * {gdk,gnome,gtk,pango}/*.metadata: Mark some additional fields as public. Rename/retype some fields for consistency with earlier hand-coded bindings. * {gdk,gnome,gtk,pango}/*.custom: Remove custom methods that can now be autogenerated. * {gdk,gnome,gtk,pango}/glue/*.c: Remove glue methods that can now be autogenerated * {gdk,glade,gnome,gtk,pango,vte}/Makefile.am * {gdk,glade,gnome,gtk,pango,vte}/glue/Makefile.am * {gdk,gnome,gtk,pango}/glue/makefile.win32: Update svn path=/trunk/gtk-sharp/; revision=44563
2005-05-16 14:28:55 +00:00
<attr path="/api/namespace/object[@cname='GtkStyle']/field[@type='GdkGC*']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkStyle']/method[@name='LookupColor']/*/*[@name='color']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkTable']/constructor[@cname='gtk_table_new']/*/*[@name='columns']" name="property_name">n_columns</attr>
<attr path="/api/namespace/object[@cname='GtkTable']/constructor[@cname='gtk_table_new']/*/*[@name='rows']" name="property_name">n_rows</attr>
<attr path="/api/namespace/object[@cname='GtkTable']/method[@name='AttachDefaults']" name="name">Attach</attr>
<attr path="/api/namespace/object[@cname='GtkTable']/method[@name='SetColSpacings']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkTable']/method[@name='SetRowSpacings']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkTextBuffer']/constructor[@cname='gtk_text_buffer_new']/*/*[@type='GtkTextTagTable*']" name="property_name">tag_table</attr>
<attr path="/api/namespace/object[@cname='GtkTextBuffer']/method/*/*[@type='GtkTextIter*']" name="pass_as">ref</attr>
<attr path="/api/namespace/object[@cname='GtkTextBuffer']/method[@name='ApplyTagByName']" name="name">ApplyTag</attr>
<attr path="/api/namespace/object[@cname='GtkTextBuffer']/method[@name='DeleteMarkByName']" name="name">DeleteMark</attr>
<attr path="/api/namespace/object[@cname='GtkTextBuffer']/method[@name='Deserialize']/*/*[@name='data']" name="array">1</attr>
<attr path="/api/namespace/object[@cname='GtkTextBuffer']/method[@name='GetBounds']/*/*[@type='GtkTextIter*']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkTextBuffer']/method[@name='GetDeserializeFormats']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkTextBuffer']/method[@name='GetEndIter']/*/*[@type='GtkTextIter*']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkTextBuffer']/method[@name='GetInsert']" name="name">GetInsertMark</attr>
<attr path="/api/namespace/object[@cname='GtkTextBuffer']/method[@name='GetIterAtChildAnchor']/*/*[@type='GtkTextIter*']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkTextBuffer']/method[@name='GetIterAtLine']/*/*[@type='GtkTextIter*']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkTextBuffer']/method[@name='GetIterAtLineIndex']/*/*[@type='GtkTextIter*']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkTextBuffer']/method[@name='GetIterAtLineOffset']/*/*[@type='GtkTextIter*']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkTextBuffer']/method[@name='GetIterAtMark']/*/*[@type='GtkTextIter*']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkTextBuffer']/method[@name='GetIterAtOffset']/*/*[@type='GtkTextIter*']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkTextBuffer']/method[@name='GetSelectionBounds']/*/*[@type='GtkTextIter*']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkTextBuffer']/method[@name='GetSerializeFormats']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkTextBuffer']/method[@name='GetStartIter']/*/*[@type='GtkTextIter*']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkTextBuffer']/method[@name='Insert']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkTextBuffer']/method[@name='InsertAtCursor']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkTextBuffer']/method[@name='InsertInteractive']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkTextBuffer']/method[@name='InsertInteractiveAtCursor']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkTextBuffer']/method[@name='InsertWithTags']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkTextBuffer']/method[@name='InsertWithTagsByName']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkTextBuffer']/method[@name='MoveMarkByName']" name="name">MoveMark</attr>
<attr path="/api/namespace/object[@cname='GtkTextBuffer']/method[@name='RemoveTagByName']" name="name">RemoveTag</attr>
<attr path="/api/namespace/object[@cname='GtkTextBuffer']/method[@name='Serialize']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkTextBuffer']/method[@name='SetText']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkTextBuffer']/signal[@name='ApplyTag']" name="name">TagApplied</attr>
<attr path="/api/namespace/object[@cname='GtkTextBuffer']/signal[@name='BeginUserAction']" name="name">UserActionBegun</attr>
<attr path="/api/namespace/object[@cname='GtkTextBuffer']/signal[@name='EndUserAction']" name="name">UserActionEnded</attr>
<attr path="/api/namespace/object[@cname='GtkTextBuffer']/signal[@name='InsertChildAnchor']" name="name">ChildAnchorInserted</attr>
<attr path="/api/namespace/object[@cname='GtkTextBuffer']/signal[@name='InsertPixbuf']" name="name">PixbufInserted</attr>
<attr path="/api/namespace/object[@cname='GtkTextBuffer']/signal[@name='RemoveTag']" name="name">TagRemoved</attr>
<attr path="/api/namespace/object[@cname='GtkTextChildAnchor']/method[@name='GetWidgets']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkTextTag']/method[@name='Event']" name="name">ProcessEvent</attr>
<attr path="/api/namespace/object[@cname='GtkTextTag']/property[@name='Weight']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkTextTag']/signal[@name='Event']" name="name">TextEvent</attr>
<add-node path="/api/namespace/object[@cname='GtkTextTag']">
<property name="BackgroundSet" cname="background_set" type="gboolean" readable="true" writeable="true" />
<property name="BackgroundFullHeightSet" cname="background_full_height_set" type="gboolean" readable="true" writeable="true" />
<property name="BackgroundStippleSet" cname="background_stipple_set" type="gboolean" readable="true" writeable="true" />
<property name="ForegroundSet" cname="foreground_set" type="gboolean" readable="true" writeable="true" />
<property name="ForegroundStippleSet" cname="foreground_stipple_set" type="gboolean" readable="true" writeable="true" />
<property name="EditableSet" cname="editable_set" type="gboolean" readable="true" writeable="true" />
<property name="FamilySet" cname="family_set" type="gboolean" readable="true" writeable="true" />
<property name="StyleSet" cname="style_set" type="gboolean" readable="true" writeable="true" />
<property name="VariantSet" cname="variant_set" type="gboolean" readable="true" writeable="true" />
<property name="WeightSet" cname="weight_set" type="gboolean" readable="true" writeable="true" />
<property name="StretchSet" cname="stretch_set" type="gboolean" readable="true" writeable="true" />
<property name="SizeSet" cname="size_set" type="gboolean" readable="true" writeable="true" />
<property name="ScaleSet" cname="scale_set" type="gboolean" readable="true" writeable="true" />
<property name="JustificationSet" cname="justification_set" type="gboolean" readable="true" writeable="true" />
<property name="LanguageSet" cname="language_set" type="gboolean" readable="true" writeable="true" />
<property name="LeftMarginSet" cname="left_margin_set" type="gboolean" readable="true" writeable="true" />
<property name="IndentSet" cname="indent_set" type="gboolean" readable="true" writeable="true" />
<property name="RiseSet" cname="rise_set" type="gboolean" readable="true" writeable="true" />
<property name="PixelsAboveLinesSet" cname="pixels_above_lines_set" type="gboolean" readable="true" writeable="true" />
<property name="PixelsBelowLinesSet" cname="pixels_below_lines_set" type="gboolean" readable="true" writeable="true" />
<property name="PixelsInsideWrapSet" cname="pixels_inside_wrap_set" type="gboolean" readable="true" writeable="true" />
<property name="StrikethroughSet" cname="strikethrough_set" type="gboolean" readable="true" writeable="true" />
<property name="RightMarginSet" cname="right_margin_set" type="gboolean" readable="true" writeable="true" />
<property name="UnderlineSet" cname="underline_set" type="gboolean" readable="true" writeable="true" />
<property name="WrapModeSet" cname="wrap_mode_set" type="gboolean" readable="true" writeable="true" />
<property name="TabsSet" cname="tabs_set" type="gboolean" readable="true" writeable="true" />
<property name="InvisibleSet" cname="invisible_set" type="gboolean" readable="true" writeable="true" />
</add-node>
<attr path="/api/namespace/object[@cname='GtkTextTagTable']/method[@name='Foreach']/*/*[@name='func']" name="scope">call</attr>
<attr path="/api/namespace/object[@cname='GtkTextView']/constructor[@cname='gtk_text_view_new_with_buffer']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkTextView']/method[@name='BackwardDisplayLine']/*/*[@type='GtkTextIter*']" name="pass_as">ref</attr>
<attr path="/api/namespace/object[@cname='GtkTextView']/method[@name='BackwardDisplayLineStart']/*/*[@type='GtkTextIter*']" name="pass_as">ref</attr>
<attr path="/api/namespace/object[@cname='GtkTextView']/method[@name='ForwardDisplayLine']/*/*[@type='GtkTextIter*']" name="pass_as">ref</attr>
<attr path="/api/namespace/object[@cname='GtkTextView']/method[@name='ForwardDisplayLineEnd']/*/*[@type='GtkTextIter*']" name="pass_as">ref</attr>
* parser/gapi2xml.pl (addFuncElems): if a struct or boxed type has a constructor or a ref, unref, or destroy method, then it must be a reference type, so mark it "opaque" but then also mark all of its fields public and writable. * */*-api*.raw: Regen * generator/Parser.cs (ParseNamespace): make the opaque attribute check actually look at the value of the attribute rather than just checking if it's there, so that you can change a struct's opaque attribute from "true" to "false" via metadata and have that work. * generator/BoxedGen.cs (Generate): do not generate the boxed's "Free" method (since it's guaranteed to crash when we pass it a stack pointer). If "Copy" is marked deprecated, create a deprecated no-op for it, otherwise just skip it (since otherwise it will just leak memory when we copy its result onto the stack). * pango/Pango.metadata: deprecate Pango.Color.Copy and Pango.Matrix.Copy. Hide some array fields in Pango.GlyphString that we've never generated correctly. Tweak Pango.LayoutLine fields to be the same as they used to be. * pango/GlyphItem.custom (glyphs, item): * pango/GlyphString.custom (Zero, New): * pango/Item.custom (Zero, New): * pango/LayoutRun.custom (glyphs, item): add deprecated API compat * gdk/Gdk.metadata: undo the parser's new opaquification of Gdk.Font; it's been deprecated since pre-gtk# times, and no one should be using it, so there's no point in fixing it now. Fix up a few other things to match how they used to be. Fix RgbCmap's constructor args. * gdk/RgbCmap.custom (Zero, New): deprecated API compat * gdk/PangoAttrEmbossed.custom: * gdk/PangoAttrStipple.custom (Zero, New, Attr): deprecated API compat (explicit operator ...): allow casting back and forth between Pango.Attribute. (We can't usefully make them real subclasses of Pango.Attribute, because there's no way for Pango.Attribute.GetAttribute() to be able to dtrt with them.) * gtk/Gtk.metadata: deprecate Gtk.Requisition.Copy, Gtk.TextIter.Copy, and Gtk.TreeIter.Copy. Mark the return value of TextView.DefaultAttributes as "owned". Mark TargetList's fields private so it stays how it used to be. * gtk/TextAttributes.custom (Zero, New): deprecated API compat * gnomevfs/Gnomevfs.metadata: remove a bunch of opaque declarations that the parser figures out on its own now. * art/Art.metadata: * glade/Glade.metadata: * rsvg/Rsvg.metadata: un-mark everything the parser marked opaque in these libraries, because all of the structs in question would still be unusably broken, so the API churn would be pointless. svn path=/trunk/gtk-sharp/; revision=48387
2005-08-15 15:15:57 +00:00
<attr path="/api/namespace/object[@cname='GtkTextView']/method[@name='GetDefaultAttributes']/return-type" name="owned">true</attr>
<attr path="/api/namespace/object[@cname='GtkTextView']/method[@name='GetIterAtLocation']/*/*[@type='GtkTextIter*']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkTextView']/method[@name='GetLineAtY']/*/*[@type='GtkTextIter*']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkTextView']/method[@name='GetIterLocation']/*/*[@type='GdkRectangle*']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkTextView']/method[@name='GetVisibleRect']/*/*[@type='GdkRectangle*']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkTextView']/method[@name='MoveVisually']/*/*[@type='GtkTextIter*']" name="pass_as">ref</attr>
<attr path="/api/namespace/object[@cname='GtkTextView']/signal[@name='SetScrollAdjustments']" name="name">ScrollAdjustmentsSet</attr>
<attr path="/api/namespace/object[@cname='GtkToggleAction']/method[@name='Toggled']" name="name">Toggle</attr>
<attr path="/api/namespace/object[@cname='GtkToggleButton']/constructor[@cname='gtk_toggle_button_new_with_mnemonic']" name="preferred">1</attr>
<attr path="/api/namespace/object[@cname='GtkToggleButton']/method[@name='Toggled']" name="name">Toggle</attr>
* generator/StructBase.cs: update field-generation logic a bit * generator/CodeGenerator.cs: add a --glue-includes flag * generator/GenerationInfo.cs: Accept glue_includes value from Main and output it to the glue_filename. * generator/FieldBase.cs (Ignored): handle more ignorable cases. (CheckGlue): New method to figure out what kind of glue we'll need for a field. (GenerateImports): generate appropriate imports per CheckGlue. (GenerateGlue): Generate C glue for accessing a struct field; either a fully-C-based accessor, or a method to just return the field's offset in the struct. (Generate): Use the generated glue to read the field. * generator/PropertyBase.cs (CType): if the field is a single bit, set its type to gboolean. * generator/ObjectGen.cs (Generate): * generator/OpaqueGen.cs (Generate): Call GenFields. * generator/StructField.cs: Use FieldBase's glue-generation code to handle bitfields. [#54489] * generator/ObjectField.cs: Generates accessors for public fields of objects and opaque structs. [#69514] * generator/ClassBase.cs (ClassBase): Parse <fields> nodes and create ObjectField objects. (GenFields): Output field properties (IgnoreMethod): Ignore Get/Set methods that duplicate fields * generator/Makefile.am (sources): update * {gdk,gnome,gtk,pango}/*.metadata: Mark some additional fields as public. Rename/retype some fields for consistency with earlier hand-coded bindings. * {gdk,gnome,gtk,pango}/*.custom: Remove custom methods that can now be autogenerated. * {gdk,gnome,gtk,pango}/glue/*.c: Remove glue methods that can now be autogenerated * {gdk,glade,gnome,gtk,pango,vte}/Makefile.am * {gdk,glade,gnome,gtk,pango,vte}/glue/Makefile.am * {gdk,gnome,gtk,pango}/glue/makefile.win32: Update svn path=/trunk/gtk-sharp/; revision=44563
2005-05-16 14:28:55 +00:00
<attr path="/api/namespace/object[@cname='GtkToolbar']/field[@name='Children']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkToolbar']/field[@name='Style']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkToolbar']/method[@name='AppendElement']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkToolbar']/method[@name='AppendItem']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkToolbar']/method[@name='InsertElement']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkToolbar']/method[@name='InsertItem']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkToolbar']/method[@name='InsertStock']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkToolbar']/method[@name='PrependElement']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkToolbar']/method[@name='PrependItem']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkToolItem']/signal[@name='SetTooltip']" name="name">TooltipSet</attr>
<attr path="/api/namespace/object[@cname='GtkToolTip']" name="disable_gtype_ctor">1</attr>
<attr path="/api/namespace/object[@cname='GtkTreeModelFilter']/constructor[@cname='gtk_tree_model_filter_new']/*/*[@name='root']" name="property_name">virtual-root</attr>
<attr path="/api/namespace/object[@cname='GtkTreeModelFilter']/method[@name='ConvertIterToChildIter']/*/*[@name='child_iter']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkTreeModelFilter']/method[@name='ConvertChildIterToIter']" name="hidden">1</attr>
Automatic memory management for opaque types [#49565] * glib/Opaque.cs (Owned): new property saying whether or not gtk# owns the memory. (Opaque): Set Owned to true in the void ctor and false in the IntPtr one. (GetOpaque): add a new overload that can also create opaques, a la GLib.Object.GetObject. (Ref, Unref, Free): empty virtual methods to be overridden by subclasses. (set_Raw): Unref() and possibly Free() the old value, Ref() the new one. (~Opaque, Dispose): set Raw to IntPtr.Zero (triggering Free/Unref if needed) * parser/gapi2xml.pl (addReturnElem): if the method is named Copy and returns a pointer, set the "owned" attribute on the return-type. * */*-api.raw: Regen * generator/HandleBase.cs (FromNative): Add new FromNative/FromNativeReturn overloads that takes a "bool owned" param. Implement the 1-arg FromNative and FromNativeReturn in terms of that. * generator/ObjectBase.cs (FromNative): Implement HandleBase's new overload. Use the two-arg version of GLib.Object.GetObject when "owned" is true. * generator/OpaqueGen.cs (Generate): Pull out Ref, Unref, and Free/Destroy/Dispose methods and handle them specially by overriding Opaque.Ref, .Unref, and .Free appropriately. (If any of the methods are marked deprecated, output a deprecated do-nothing method as well, to save us from having to write all those deprecated methods by hand.) (FromNative): use GetOpaque, passing "owned". * generator/ReturnValue.cs (FromNative): if the value is a HandleBase, pass Owned to its FromNative(). * generator/Parameters.cs (Owned): new property (for use on out params) (FromNative): Call FromNative() on the generatable, handling Owned in the case of HandleBase. * generator/ManagedCallString.cs: * generator/MethodBody.cs: * generator/Signal.cs: use param.FromNative() rather than param.Generatable.FromNative(), to get ownership right. * */*.metadata: Mark opaque ref/unref/free methods deprecated (except where we were hiding them before). Add "owned" attributes to return values and out params as needed. * pango/AttrIterator.custom (GetFont): work around a memory-management oddity of the underlying method. * pango/AttrFontDesc.cs (AttrFontDesc): copy the passed-in FontDescriptor, since the attribute will assume ownership of it. * gtk/TreeView.custom (GetPathAtPos): set the "owned" flag on the returned TreePaths. * gtk/TargetList.custom: Remove refcounting stuff, which is now handled automatically * gtk/NodeStore.cs (GetPath): clear the Owned flag on the created TreePath so that the underlying structure doesn't get freed when the function returns * gtkhtml/HTMLStream.custom (Destroy): hide this and then reimplement it by hand to keep OpaqueGen from using it in Dispose(), since calling it after an HTMLStream.Close() will result in a crash. svn path=/trunk/gtk-sharp/; revision=47928
2005-08-02 18:45:21 +00:00
<attr path="/api/namespace/object[@cname='GtkTreeModelFilter']/method[@name='ConvertChildPathToPath']/return-type" name="owned">true</attr>
<attr path="/api/namespace/object[@cname='GtkTreeModelFilter']/method[@name='ConvertPathToChildPath']/return-type" name="owned">true</attr>
<attr path="/api/namespace/object[@cname='GtkTreeModelFilter']/method[@name='SetModifyFunc']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkTreeModelSort']/constructor[@cname='gtk_tree_model_sort_new_with_model']/*/*[@name='child_model']" name="property_name">model</attr>
<attr path="/api/namespace/object[@cname='GtkTreeModelSort']/method[@name='ConvertChildIterToIter']/*/*[@name='sort_iter']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkTreeModelSort']/method[@name='ConvertIterToChildIter']/*/*[@name='child_iter']" name="pass_as">out</attr>
Automatic memory management for opaque types [#49565] * glib/Opaque.cs (Owned): new property saying whether or not gtk# owns the memory. (Opaque): Set Owned to true in the void ctor and false in the IntPtr one. (GetOpaque): add a new overload that can also create opaques, a la GLib.Object.GetObject. (Ref, Unref, Free): empty virtual methods to be overridden by subclasses. (set_Raw): Unref() and possibly Free() the old value, Ref() the new one. (~Opaque, Dispose): set Raw to IntPtr.Zero (triggering Free/Unref if needed) * parser/gapi2xml.pl (addReturnElem): if the method is named Copy and returns a pointer, set the "owned" attribute on the return-type. * */*-api.raw: Regen * generator/HandleBase.cs (FromNative): Add new FromNative/FromNativeReturn overloads that takes a "bool owned" param. Implement the 1-arg FromNative and FromNativeReturn in terms of that. * generator/ObjectBase.cs (FromNative): Implement HandleBase's new overload. Use the two-arg version of GLib.Object.GetObject when "owned" is true. * generator/OpaqueGen.cs (Generate): Pull out Ref, Unref, and Free/Destroy/Dispose methods and handle them specially by overriding Opaque.Ref, .Unref, and .Free appropriately. (If any of the methods are marked deprecated, output a deprecated do-nothing method as well, to save us from having to write all those deprecated methods by hand.) (FromNative): use GetOpaque, passing "owned". * generator/ReturnValue.cs (FromNative): if the value is a HandleBase, pass Owned to its FromNative(). * generator/Parameters.cs (Owned): new property (for use on out params) (FromNative): Call FromNative() on the generatable, handling Owned in the case of HandleBase. * generator/ManagedCallString.cs: * generator/MethodBody.cs: * generator/Signal.cs: use param.FromNative() rather than param.Generatable.FromNative(), to get ownership right. * */*.metadata: Mark opaque ref/unref/free methods deprecated (except where we were hiding them before). Add "owned" attributes to return values and out params as needed. * pango/AttrIterator.custom (GetFont): work around a memory-management oddity of the underlying method. * pango/AttrFontDesc.cs (AttrFontDesc): copy the passed-in FontDescriptor, since the attribute will assume ownership of it. * gtk/TreeView.custom (GetPathAtPos): set the "owned" flag on the returned TreePaths. * gtk/TargetList.custom: Remove refcounting stuff, which is now handled automatically * gtk/NodeStore.cs (GetPath): clear the Owned flag on the created TreePath so that the underlying structure doesn't get freed when the function returns * gtkhtml/HTMLStream.custom (Destroy): hide this and then reimplement it by hand to keep OpaqueGen from using it in Dispose(), since calling it after an HTMLStream.Close() will result in a crash. svn path=/trunk/gtk-sharp/; revision=47928
2005-08-02 18:45:21 +00:00
<attr path="/api/namespace/object[@cname='GtkTreeModelSort']/method[@name='ConvertChildPathToPath']/return-type" name="owned">true</attr>
<attr path="/api/namespace/object[@cname='GtkTreeModelSort']/method[@name='ConvertPathToChildPath']/return-type" name="owned">true</attr>
<attr path="/api/namespace/object[@cname='GtkTreeSelection']/method[@name='GetSelected']/*/*" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkTreeSelection']/method[@name='GetSelectedRows']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkTreeSelection']/method[@name='SelectedForeach']/*/*[@name='func']" name="scope">call</attr>
<attr path="/api/namespace/object[@cname='GtkTreeStore']/constructor[@cname='gtk_tree_store_new']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkTreeStore']/constructor[@cname='gtk_tree_store_newv']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkTreeStore']/method[@name='Append']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkTreeStore']/method[@name='InsertAfter']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkTreeStore']/method[@name='InsertBefore']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkTreeStore']/method[@name='InsertWithValues']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkTreeStore']/method[@name='InsertWithValuesv']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkTreeStore']/method[@name='Insert']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkTreeStore']/method[@name='Prepend']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkTreeStore']/method[@name='Remove']/*/*[@name='iter']" name="pass_as">ref</attr>
<attr path="/api/namespace/object[@cname='GtkTreeStore']/method[@name='Set']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkTreeStore']/method[@name='SetValuesv']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkTreeStore']/method[@name='SetColumnTypes']/*/*[@name='types']" name="array">1</attr>
<attr path="/api/namespace/object[@cname='GtkTreeViewColumn']/constructor[@cname='gtk_tree_view_column_new_with_attributes']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkTreeViewColumn']/method[@name='AddAttribute']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkTreeViewColumn']/method[@name='Clear']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkTreeViewColumn']/method[@name='ClearAttributes']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkTreeViewColumn']/method[@name='Clicked']" name="name">Click</attr>
<attr path="/api/namespace/object[@cname='GtkTreeViewColumn']/method[@name='GetCellRenderers']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkTreeViewColumn']/method[@name='PackEnd']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkTreeViewColumn']/method[@name='PackStart']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkTreeViewColumn']/method[@name='SetAttributes']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkTreeView']/method[@name='EnableModelDragDest']/*/*[@name='targets']" name="array">1</attr>
<attr path="/api/namespace/object[@cname='GtkTreeView']/method[@name='EnableModelDragSource']/*/*[@name='targets']" name="array">1</attr>
<attr path="/api/namespace/object[@cname='GtkTreeView']/method[@name='GetCellArea']/*/*[@name='rect']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkTreeView']/method[@name='GetColumns']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkTreeView']/method[@name='GetCursor']/*/*[@name='focus_column']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkTreeView']/method[@name='GetCursor']/*/*[@name='path']" name="pass_as">out</attr>
Automatic memory management for opaque types [#49565] * glib/Opaque.cs (Owned): new property saying whether or not gtk# owns the memory. (Opaque): Set Owned to true in the void ctor and false in the IntPtr one. (GetOpaque): add a new overload that can also create opaques, a la GLib.Object.GetObject. (Ref, Unref, Free): empty virtual methods to be overridden by subclasses. (set_Raw): Unref() and possibly Free() the old value, Ref() the new one. (~Opaque, Dispose): set Raw to IntPtr.Zero (triggering Free/Unref if needed) * parser/gapi2xml.pl (addReturnElem): if the method is named Copy and returns a pointer, set the "owned" attribute on the return-type. * */*-api.raw: Regen * generator/HandleBase.cs (FromNative): Add new FromNative/FromNativeReturn overloads that takes a "bool owned" param. Implement the 1-arg FromNative and FromNativeReturn in terms of that. * generator/ObjectBase.cs (FromNative): Implement HandleBase's new overload. Use the two-arg version of GLib.Object.GetObject when "owned" is true. * generator/OpaqueGen.cs (Generate): Pull out Ref, Unref, and Free/Destroy/Dispose methods and handle them specially by overriding Opaque.Ref, .Unref, and .Free appropriately. (If any of the methods are marked deprecated, output a deprecated do-nothing method as well, to save us from having to write all those deprecated methods by hand.) (FromNative): use GetOpaque, passing "owned". * generator/ReturnValue.cs (FromNative): if the value is a HandleBase, pass Owned to its FromNative(). * generator/Parameters.cs (Owned): new property (for use on out params) (FromNative): Call FromNative() on the generatable, handling Owned in the case of HandleBase. * generator/ManagedCallString.cs: * generator/MethodBody.cs: * generator/Signal.cs: use param.FromNative() rather than param.Generatable.FromNative(), to get ownership right. * */*.metadata: Mark opaque ref/unref/free methods deprecated (except where we were hiding them before). Add "owned" attributes to return values and out params as needed. * pango/AttrIterator.custom (GetFont): work around a memory-management oddity of the underlying method. * pango/AttrFontDesc.cs (AttrFontDesc): copy the passed-in FontDescriptor, since the attribute will assume ownership of it. * gtk/TreeView.custom (GetPathAtPos): set the "owned" flag on the returned TreePaths. * gtk/TargetList.custom: Remove refcounting stuff, which is now handled automatically * gtk/NodeStore.cs (GetPath): clear the Owned flag on the created TreePath so that the underlying structure doesn't get freed when the function returns * gtkhtml/HTMLStream.custom (Destroy): hide this and then reimplement it by hand to keep OpaqueGen from using it in Dispose(), since calling it after an HTMLStream.Close() will result in a crash. svn path=/trunk/gtk-sharp/; revision=47928
2005-08-02 18:45:21 +00:00
<attr path="/api/namespace/object[@cname='GtkTreeView']/method[@name='GetCursor']/*/*[@name='path']" name="owned">true</attr>
<attr path="/api/namespace/object[@cname='GtkTreeView']/method[@name='GetDestRowAtPos']/*/*[@name='path']" name="pass_as">out</attr>
Automatic memory management for opaque types [#49565] * glib/Opaque.cs (Owned): new property saying whether or not gtk# owns the memory. (Opaque): Set Owned to true in the void ctor and false in the IntPtr one. (GetOpaque): add a new overload that can also create opaques, a la GLib.Object.GetObject. (Ref, Unref, Free): empty virtual methods to be overridden by subclasses. (set_Raw): Unref() and possibly Free() the old value, Ref() the new one. (~Opaque, Dispose): set Raw to IntPtr.Zero (triggering Free/Unref if needed) * parser/gapi2xml.pl (addReturnElem): if the method is named Copy and returns a pointer, set the "owned" attribute on the return-type. * */*-api.raw: Regen * generator/HandleBase.cs (FromNative): Add new FromNative/FromNativeReturn overloads that takes a "bool owned" param. Implement the 1-arg FromNative and FromNativeReturn in terms of that. * generator/ObjectBase.cs (FromNative): Implement HandleBase's new overload. Use the two-arg version of GLib.Object.GetObject when "owned" is true. * generator/OpaqueGen.cs (Generate): Pull out Ref, Unref, and Free/Destroy/Dispose methods and handle them specially by overriding Opaque.Ref, .Unref, and .Free appropriately. (If any of the methods are marked deprecated, output a deprecated do-nothing method as well, to save us from having to write all those deprecated methods by hand.) (FromNative): use GetOpaque, passing "owned". * generator/ReturnValue.cs (FromNative): if the value is a HandleBase, pass Owned to its FromNative(). * generator/Parameters.cs (Owned): new property (for use on out params) (FromNative): Call FromNative() on the generatable, handling Owned in the case of HandleBase. * generator/ManagedCallString.cs: * generator/MethodBody.cs: * generator/Signal.cs: use param.FromNative() rather than param.Generatable.FromNative(), to get ownership right. * */*.metadata: Mark opaque ref/unref/free methods deprecated (except where we were hiding them before). Add "owned" attributes to return values and out params as needed. * pango/AttrIterator.custom (GetFont): work around a memory-management oddity of the underlying method. * pango/AttrFontDesc.cs (AttrFontDesc): copy the passed-in FontDescriptor, since the attribute will assume ownership of it. * gtk/TreeView.custom (GetPathAtPos): set the "owned" flag on the returned TreePaths. * gtk/TargetList.custom: Remove refcounting stuff, which is now handled automatically * gtk/NodeStore.cs (GetPath): clear the Owned flag on the created TreePath so that the underlying structure doesn't get freed when the function returns * gtkhtml/HTMLStream.custom (Destroy): hide this and then reimplement it by hand to keep OpaqueGen from using it in Dispose(), since calling it after an HTMLStream.Close() will result in a crash. svn path=/trunk/gtk-sharp/; revision=47928
2005-08-02 18:45:21 +00:00
<attr path="/api/namespace/object[@cname='GtkTreeView']/method[@name='GetDestRowAtPos']/*/*[@name='path']" name="owned">true</attr>
<attr path="/api/namespace/object[@cname='GtkTreeView']/method[@name='GetDestRowAtPos']/*/*[@name='pos']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkTreeView']/method[@name='GetDragDestRow']/*/*[@name='path']" name="pass_as">out</attr>
Automatic memory management for opaque types [#49565] * glib/Opaque.cs (Owned): new property saying whether or not gtk# owns the memory. (Opaque): Set Owned to true in the void ctor and false in the IntPtr one. (GetOpaque): add a new overload that can also create opaques, a la GLib.Object.GetObject. (Ref, Unref, Free): empty virtual methods to be overridden by subclasses. (set_Raw): Unref() and possibly Free() the old value, Ref() the new one. (~Opaque, Dispose): set Raw to IntPtr.Zero (triggering Free/Unref if needed) * parser/gapi2xml.pl (addReturnElem): if the method is named Copy and returns a pointer, set the "owned" attribute on the return-type. * */*-api.raw: Regen * generator/HandleBase.cs (FromNative): Add new FromNative/FromNativeReturn overloads that takes a "bool owned" param. Implement the 1-arg FromNative and FromNativeReturn in terms of that. * generator/ObjectBase.cs (FromNative): Implement HandleBase's new overload. Use the two-arg version of GLib.Object.GetObject when "owned" is true. * generator/OpaqueGen.cs (Generate): Pull out Ref, Unref, and Free/Destroy/Dispose methods and handle them specially by overriding Opaque.Ref, .Unref, and .Free appropriately. (If any of the methods are marked deprecated, output a deprecated do-nothing method as well, to save us from having to write all those deprecated methods by hand.) (FromNative): use GetOpaque, passing "owned". * generator/ReturnValue.cs (FromNative): if the value is a HandleBase, pass Owned to its FromNative(). * generator/Parameters.cs (Owned): new property (for use on out params) (FromNative): Call FromNative() on the generatable, handling Owned in the case of HandleBase. * generator/ManagedCallString.cs: * generator/MethodBody.cs: * generator/Signal.cs: use param.FromNative() rather than param.Generatable.FromNative(), to get ownership right. * */*.metadata: Mark opaque ref/unref/free methods deprecated (except where we were hiding them before). Add "owned" attributes to return values and out params as needed. * pango/AttrIterator.custom (GetFont): work around a memory-management oddity of the underlying method. * pango/AttrFontDesc.cs (AttrFontDesc): copy the passed-in FontDescriptor, since the attribute will assume ownership of it. * gtk/TreeView.custom (GetPathAtPos): set the "owned" flag on the returned TreePaths. * gtk/TargetList.custom: Remove refcounting stuff, which is now handled automatically * gtk/NodeStore.cs (GetPath): clear the Owned flag on the created TreePath so that the underlying structure doesn't get freed when the function returns * gtkhtml/HTMLStream.custom (Destroy): hide this and then reimplement it by hand to keep OpaqueGen from using it in Dispose(), since calling it after an HTMLStream.Close() will result in a crash. svn path=/trunk/gtk-sharp/; revision=47928
2005-08-02 18:45:21 +00:00
<attr path="/api/namespace/object[@cname='GtkTreeView']/method[@name='GetDragDestRow']/*/*[@name='path']" name="owned">true</attr>
<attr path="/api/namespace/object[@cname='GtkTreeView']/method[@name='GetDragDestRow']/*/*[@name='pos']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkTreeView']/method[@name='GetGridLines']" name="name">GetEnableGridLines</attr>
<attr path="/api/namespace/object[@cname='GtkTreeView']/method[@name='GetBackgroundArea']/*/*[@name='rect']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkTreeView']/method[@name='GetPathAtPos']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkTreeView']/method[@name='GetTooltipContext']/*/parameter[@name='iter']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkTreeView']/method[@name='GetTooltipContext']/*/parameter[@name='model']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkTreeView']/method[@name='GetTooltipContext']/*/parameter[@name='path']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkTreeView']/method[@name='GetVisibleRect']/*/*[@name='visible_rect']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkTreeView']/method[@name='GetVisibleRange']/*/parameter" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkTreeView']/method[@name='GetVisibleRange']/*/parameter" name="owned">true</attr>
<attr path="/api/namespace/object[@cname='GtkTreeView']/method[@name='InsertColumnWithAttributes']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkTreeView']/method[@name='InsertColumnWithDataFunc']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkTreeView']/method[@name='MapExpandedRows']/*/*[@name='func']" name="scope">call</attr>
<attr path="/api/namespace/object[@cname='GtkTreeView']/method[@name='ModeGetType']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkTreeView']/method[@name='RowActivated']" name="name">ActivateRow</attr>
<attr path="/api/namespace/object[@cname='GtkTreeView']/method[@name='RowExpanded']" name="name">GetRowExpanded</attr>
<attr path="/api/namespace/object[@cname='GtkTreeView']/method[@name='SetGridLines']" name="name">SetEnableGridLines</attr>
<attr path="/api/namespace/object[@cname='GtkTreeView']/signal[@name='SetScrollAdjustments']" name="name">ScrollAdjustmentsSet</attr>
<attr path="/api/namespace/object[@cname='GtkUIManager']/constructor[@cname='gtk_ui_manager_new_merge_id']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkUIManager']/method[@cname='gtk_ui_manager_get_action_groups']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkUIManager']/method[@name='GetToplevels']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkViewport']/signal[@name='SetScrollAdjustments']" name="name">ScrollAdjustmentsSet</attr>
<attr path="/api/namespace/object[@cname='GtkVolumeButton']" name="disable_gtype_ctor">1</attr>
<attr path="/api/namespace/object[@cname='GtkVScale']/constructor[@cname='gtk_vscale_new_with_range']" name="hidden">1</attr>
<add-node path="/api/namespace/object[@cname='GtkWidget']"><custom-attribute>[GLib.TypeInitializer (typeof (Gtk.Widget), "ClassInit")]</custom-attribute></add-node>
<attr path="/api/namespace/object[@cname='GtkWidget']" name="disable_gtype_ctor">1</attr>
<attr path="/api/namespace/object[@cname='GtkWidget']/constructor[@cname='gtk_widget_new']" name="hidden">1</attr>
* generator/StructBase.cs: update field-generation logic a bit * generator/CodeGenerator.cs: add a --glue-includes flag * generator/GenerationInfo.cs: Accept glue_includes value from Main and output it to the glue_filename. * generator/FieldBase.cs (Ignored): handle more ignorable cases. (CheckGlue): New method to figure out what kind of glue we'll need for a field. (GenerateImports): generate appropriate imports per CheckGlue. (GenerateGlue): Generate C glue for accessing a struct field; either a fully-C-based accessor, or a method to just return the field's offset in the struct. (Generate): Use the generated glue to read the field. * generator/PropertyBase.cs (CType): if the field is a single bit, set its type to gboolean. * generator/ObjectGen.cs (Generate): * generator/OpaqueGen.cs (Generate): Call GenFields. * generator/StructField.cs: Use FieldBase's glue-generation code to handle bitfields. [#54489] * generator/ObjectField.cs: Generates accessors for public fields of objects and opaque structs. [#69514] * generator/ClassBase.cs (ClassBase): Parse <fields> nodes and create ObjectField objects. (GenFields): Output field properties (IgnoreMethod): Ignore Get/Set methods that duplicate fields * generator/Makefile.am (sources): update * {gdk,gnome,gtk,pango}/*.metadata: Mark some additional fields as public. Rename/retype some fields for consistency with earlier hand-coded bindings. * {gdk,gnome,gtk,pango}/*.custom: Remove custom methods that can now be autogenerated. * {gdk,gnome,gtk,pango}/glue/*.c: Remove glue methods that can now be autogenerated * {gdk,glade,gnome,gtk,pango,vte}/Makefile.am * {gdk,glade,gnome,gtk,pango,vte}/glue/Makefile.am * {gdk,gnome,gtk,pango}/glue/makefile.win32: Update svn path=/trunk/gtk-sharp/; revision=44563
2005-05-16 14:28:55 +00:00
<attr path="/api/namespace/object[@cname='GtkWidget']/field[@name='Allocation']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkWidget']/field[@name='Requisition']" name="writeable">true</attr>
<attr path="/api/namespace/object[@cname='GtkWidget']/field[@name='Window']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkWidget']/method[@name='ClassFindStyleProperty']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkWidget']/method[@name='ClassInstallStylePropertyParser']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkWidget']/method[@name='ClassInstallStyleProperty']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkWidget']/method[@name='ClassListStyleProperties']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkWidget']/method[@name='ClassPath']/*/*[@type='gchar**']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkWidget']/method[@name='Destroy']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkWidget']/method[@name='Destroyed']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkWidget']/method[@name='Event']" name="name">ProcessEvent</attr>
<attr path="/api/namespace/object[@cname='GtkWidget']/method[@name='GetChildRequisition']/*/*[@name='requisition']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkWidget']/method[@name='GetColormap']" name="needs_ref">1</attr>
<attr path="/api/namespace/object[@cname='GtkWidget']/method[@name='GetDefaultColormap']" name="needs_ref">1</attr>
<attr path="/api/namespace/object[@cname='GtkWidget']/method[@name='GetDefaultStyle']" name="needs_ref">1</attr>
<attr path="/api/namespace/object[@cname='GtkWidget']/method[@name='GetDefaultVisual']" name="needs_ref">1</attr>
<attr path="/api/namespace/object[@cname='GtkWidget']/method[@name='GetEvents']/return-type" name="type">GdkEventMask</attr>
<attr path="/api/namespace/object[@cname='GtkWidget']/method[@name='GetModifierStyle']" name="needs_ref">1</attr>
<attr path="/api/namespace/object[@cname='GtkWidget']/method[@name='GetParentWindow']" name="needs_ref">1</attr>
<attr path="/api/namespace/object[@cname='GtkWidget']/method[@name='GetStyle']" name="needs_ref">1</attr>
<attr path="/api/namespace/object[@cname='GtkWidget']/method[@name='GetVisual']" name="needs_ref">1</attr>
<attr path="/api/namespace/object[@cname='GtkWidget']/method[@name='Intersect']/*/*[@name='intersection']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkWidget']/method[@name='IsFocus']" name="name">GetIsFocus</attr>
<attr path="/api/namespace/object[@cname='GtkWidget']/method[@name='ListAccelClosures']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkWidget']/method[@name='ListMnemonicLabels']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkWidget']/method[@name='Path']/*/*[@type='gchar**']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkWidget']/method[@name='Ref']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkWidget']/method[@name='SetEvents']/*/*[@type='gint']" name="type">GdkEventMask</attr>
<attr path="/api/namespace/object[@cname='GtkWidget']/method[@name='Set']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkWidget']/method[@name='SetState']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkWidget']/method[@name='SizeRequest']/*/*[@name='requisition']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkWidget']/method[@name='StyleGet']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkWidget']/method[@name='StyleGetProperty']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkWidget']/method[@name='StyleGetValist']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkWidget']/method[@name='Unref']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkWidget']/signal[@name='CanActivateAccel']" name="name">AccelCanActivate</attr>
<attr path="/api/namespace/object[@cname='GtkWidget']/signal[@name='ChildNotify']" name="name">ChildNotified</attr>
<attr path="/api/namespace/object[@cname='GtkWidget']/signal[@name='DragFailed']/*/*[@name='p0']" name="name">drag_context</attr>
<attr path="/api/namespace/object[@cname='GtkWidget']/signal[@name='DragFailed']/*/*[@name='p1']" name="name">drag_result</attr>
<attr path="/api/namespace/object[@cname='GtkWidget']/signal[@name='Event']" name="name">WidgetEvent</attr>
<attr path="/api/namespace/object[@cname='GtkWidget']/signal[@name='EventAfter']/*/*[@name='inst']" name="name">widget</attr>
<attr path="/api/namespace/object[@cname='GtkWidget']/signal[@name='EventAfter']/*/*[@name='p0']" name="name">event</attr>
<attr path="/api/namespace/object[@cname='GtkWidget']/signal[@name='EventAfter']" name="name">WidgetEventAfter</attr>
<attr path="/api/namespace/object[@cname='GtkWidget']/signal[@name='Focus']" name="name">Focused</attr>
<attr path="/api/namespace/object[@cname='GtkWidget']/signal[@name='GrabFocus']" name="name">FocusGrabbed</attr>
<attr path="/api/namespace/object[@cname='GtkWidget']/signal[@name='Hide']" name="name">Hidden</attr>
<attr path="/api/namespace/object[@cname='GtkWidget']/signal[@name='Map']" name="name">Mapped</attr>
<attr path="/api/namespace/object[@cname='GtkWidget']/signal[@name='MnemonicActivate']" name="name">MnemonicActivated</attr>
<attr path="/api/namespace/object[@cname='GtkWidget']/signal[@name='Realize']" name="name">Realized</attr>
<attr path="/api/namespace/object[@cname='GtkWidget']/signal[@name='ShowHelp']" name="name">HelpShown</attr>
<attr path="/api/namespace/object[@cname='GtkWidget']/signal[@name='Show']" name="name">Shown</attr>
<attr path="/api/namespace/object[@cname='GtkWidget']/signal[@name='SizeAllocate']" name="name">SizeAllocated</attr>
<attr path="/api/namespace/object[@cname='GtkWidget']/signal[@name='SizeRequest']" name="name">SizeRequested</attr>
<attr path="/api/namespace/object[@cname='GtkWidget']/signal[@name='SizeRequested']/*/*[@name='requisition']" name="pass_as">ref</attr>
<attr path="/api/namespace/object[@cname='GtkWidget']/signal[@name='Unmap']" name="name">Unmapped</attr>
<attr path="/api/namespace/object[@cname='GtkWidget']/signal[@name='Unrealize']" name="name">Unrealized</attr>
* generator/StructBase.cs: update field-generation logic a bit * generator/CodeGenerator.cs: add a --glue-includes flag * generator/GenerationInfo.cs: Accept glue_includes value from Main and output it to the glue_filename. * generator/FieldBase.cs (Ignored): handle more ignorable cases. (CheckGlue): New method to figure out what kind of glue we'll need for a field. (GenerateImports): generate appropriate imports per CheckGlue. (GenerateGlue): Generate C glue for accessing a struct field; either a fully-C-based accessor, or a method to just return the field's offset in the struct. (Generate): Use the generated glue to read the field. * generator/PropertyBase.cs (CType): if the field is a single bit, set its type to gboolean. * generator/ObjectGen.cs (Generate): * generator/OpaqueGen.cs (Generate): Call GenFields. * generator/StructField.cs: Use FieldBase's glue-generation code to handle bitfields. [#54489] * generator/ObjectField.cs: Generates accessors for public fields of objects and opaque structs. [#69514] * generator/ClassBase.cs (ClassBase): Parse <fields> nodes and create ObjectField objects. (GenFields): Output field properties (IgnoreMethod): Ignore Get/Set methods that duplicate fields * generator/Makefile.am (sources): update * {gdk,gnome,gtk,pango}/*.metadata: Mark some additional fields as public. Rename/retype some fields for consistency with earlier hand-coded bindings. * {gdk,gnome,gtk,pango}/*.custom: Remove custom methods that can now be autogenerated. * {gdk,gnome,gtk,pango}/glue/*.c: Remove glue methods that can now be autogenerated * {gdk,glade,gnome,gtk,pango,vte}/Makefile.am * {gdk,glade,gnome,gtk,pango,vte}/glue/Makefile.am * {gdk,gnome,gtk,pango}/glue/makefile.win32: Update svn path=/trunk/gtk-sharp/; revision=44563
2005-05-16 14:28:55 +00:00
<attr path="/api/namespace/object[@cname='GtkWindow']/field[@name='Position']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkWindow']/method[@name='GetDefaultIconList']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkWindow']/method[@name='GetDefaultSize']/*/*[@type='gint*']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkWindow']/method[@name='GetIconList']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkWindow']/method[@name='GetPosition']/*/*[@type='gint*']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkWindow']/method[@name='GetSize']/*/*[@type='gint*']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GtkWindow']/method[@name='HasToplevelFocus']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkWindow']/method[@name='IsActive']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkWindow']/method[@name='ListToplevels']/return-type" name="element_type">GtkWindow*</attr>
<attr path="/api/namespace/object[@cname='GtkWindow']/method[@name='ListToplevels']/return-type" name="owned">true</attr>
<attr path="/api/namespace/object[@cname='GtkWindow']/method[@name='SetDefaultIconList']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkWindow']/method[@name='SetIconList']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GtkWindow']/property[@name='Screen']" name="new_flag">1</attr>
<attr path="/api/namespace/object[@cname='GtkWindow']/signal[@name='ActivateDefault']" name="name">DefaultActivated</attr>
<attr path="/api/namespace/object[@cname='GtkWindow']/signal[@name='ActivateFocus']" name="name">FocusActivated</attr>
<attr path="/api/namespace/struct[@cname='GtkBindingArg']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='GtkBindingEntry']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='GtkBindingSet']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='GtkBindingSignal']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='GtkBoxChild']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='GtkFixedChild']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='GtkIMContextInfo']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='GtkItemFactoryItem']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='GtkImageAnimationData']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='GtkImageIconSetData']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='GtkImageImageData']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='GtkImagePixbufData']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='GtkImagePixmapData']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='GtkImageStockData']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='GtkKeyHash']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='GtkLabelSelectionInfo']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='GtkNotebookPage']/method[@name='Num']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='GtkPrintWin32Devnames']" name="deprecated">1</attr>
<attr path="/api/namespace/struct[@cname='GtkPrintWin32Devnames']/method[@name='FromPrinterName']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='GtkPrintWin32Devnames']/method[@name='FromWin32']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='GtkPrintWin32Devnames']/method[@name='ToWin32']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='GtkRangeLayout']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='GtkRangeStepTimer']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='GtkRcContext']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='GtkTableChild']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='GtkTableRowCol']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='GtkTargetEntry']/field[@cname='flags']" name="type">GtkTargetFlags</attr>
<attr path="/api/namespace/*[@cname='GtkTargetList']/constructor[@cname='gtk_target_list_new']" name="hidden">1</attr>
<attr path="/api/namespace/*[@cname='GtkTargetList']/field" name="access">private</attr>
<attr path="/api/namespace/*[@cname='GtkTargetList']/method[@name='AddTable']/*/*[@name='targets']" name="array">1</attr>
<attr path="/api/namespace/*[@cname='GtkTargetList']/method[@name='AddTable']/*/*[@name='ntargets']" name="name">n_targets</attr>
* generator/StructBase.cs: update field-generation logic a bit * generator/CodeGenerator.cs: add a --glue-includes flag * generator/GenerationInfo.cs: Accept glue_includes value from Main and output it to the glue_filename. * generator/FieldBase.cs (Ignored): handle more ignorable cases. (CheckGlue): New method to figure out what kind of glue we'll need for a field. (GenerateImports): generate appropriate imports per CheckGlue. (GenerateGlue): Generate C glue for accessing a struct field; either a fully-C-based accessor, or a method to just return the field's offset in the struct. (Generate): Use the generated glue to read the field. * generator/PropertyBase.cs (CType): if the field is a single bit, set its type to gboolean. * generator/ObjectGen.cs (Generate): * generator/OpaqueGen.cs (Generate): Call GenFields. * generator/StructField.cs: Use FieldBase's glue-generation code to handle bitfields. [#54489] * generator/ObjectField.cs: Generates accessors for public fields of objects and opaque structs. [#69514] * generator/ClassBase.cs (ClassBase): Parse <fields> nodes and create ObjectField objects. (GenFields): Output field properties (IgnoreMethod): Ignore Get/Set methods that duplicate fields * generator/Makefile.am (sources): update * {gdk,gnome,gtk,pango}/*.metadata: Mark some additional fields as public. Rename/retype some fields for consistency with earlier hand-coded bindings. * {gdk,gnome,gtk,pango}/*.custom: Remove custom methods that can now be autogenerated. * {gdk,gnome,gtk,pango}/glue/*.c: Remove glue methods that can now be autogenerated * {gdk,glade,gnome,gtk,pango,vte}/Makefile.am * {gdk,glade,gnome,gtk,pango,vte}/glue/Makefile.am * {gdk,gnome,gtk,pango}/glue/makefile.win32: Update svn path=/trunk/gtk-sharp/; revision=44563
2005-05-16 14:28:55 +00:00
<attr path="/api/namespace/struct[@cname='GtkTextAppearance']/field[@cname='underline']" name="type">PangoUnderline</attr>
<attr path="/api/namespace/struct[@cname='GtkTextAppearance']/field[@cname='draw_bg']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='GtkTextAppearance']/field[@cname='inside_selection']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='GtkTextAppearance']/field[@cname='is_text']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='GtkTextBTree']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='GtkTextLogAttrCache']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='GtkToolbarChild']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='GtkWidgetAuxInfo']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='GtkWidgetShapeInfo']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='GtkWindowGeometryInfo']" name="hidden">1</attr>
<move-node path="/api/namespace/class[@cname='GtkBindings_']/method[@name='BindingsActivate']">/api/namespace/class[@cname='GtkGlobal']</move-node>
<move-node path="/api/namespace/class[@cname='GtkGlobal']/method[@name='PaintArrow']">/api/namespace/object[@cname='GtkStyle']</move-node>
<move-node path="/api/namespace/class[@cname='GtkGlobal']/method[@name='PaintBoxGap']">/api/namespace/object[@cname='GtkStyle']</move-node>
<move-node path="/api/namespace/class[@cname='GtkGlobal']/method[@name='PaintBox']">/api/namespace/object[@cname='GtkStyle']</move-node>
<move-node path="/api/namespace/class[@cname='GtkGlobal']/method[@name='PaintCheck']">/api/namespace/object[@cname='GtkStyle']</move-node>
<move-node path="/api/namespace/class[@cname='GtkGlobal']/method[@name='PaintDiamond']">/api/namespace/object[@cname='GtkStyle']</move-node>
<move-node path="/api/namespace/class[@cname='GtkGlobal']/method[@name='PaintExpander']">/api/namespace/object[@cname='GtkStyle']</move-node>
<move-node path="/api/namespace/class[@cname='GtkGlobal']/method[@name='PaintExtension']">/api/namespace/object[@cname='GtkStyle']</move-node>
<move-node path="/api/namespace/class[@cname='GtkGlobal']/method[@name='PaintFlatBox']">/api/namespace/object[@cname='GtkStyle']</move-node>
<move-node path="/api/namespace/class[@cname='GtkGlobal']/method[@name='PaintFocus']">/api/namespace/object[@cname='GtkStyle']</move-node>
<move-node path="/api/namespace/class[@cname='GtkGlobal']/method[@name='PaintHandle']">/api/namespace/object[@cname='GtkStyle']</move-node>
<move-node path="/api/namespace/class[@cname='GtkGlobal']/method[@name='PaintHline']">/api/namespace/object[@cname='GtkStyle']</move-node>
<move-node path="/api/namespace/class[@cname='GtkGlobal']/method[@name='PaintLayout']">/api/namespace/object[@cname='GtkStyle']</move-node>
<move-node path="/api/namespace/class[@cname='GtkGlobal']/method[@name='PaintOption']">/api/namespace/object[@cname='GtkStyle']</move-node>
<move-node path="/api/namespace/class[@cname='GtkGlobal']/method[@name='PaintPolygon']">/api/namespace/object[@cname='GtkStyle']</move-node>
<move-node path="/api/namespace/class[@cname='GtkGlobal']/method[@name='PaintResizeGrip']">/api/namespace/object[@cname='GtkStyle']</move-node>
<move-node path="/api/namespace/class[@cname='GtkGlobal']/method[@name='PaintShadowGap']">/api/namespace/object[@cname='GtkStyle']</move-node>
<move-node path="/api/namespace/class[@cname='GtkGlobal']/method[@name='PaintShadow']">/api/namespace/object[@cname='GtkStyle']</move-node>
<move-node path="/api/namespace/class[@cname='GtkGlobal']/method[@name='PaintSlider']">/api/namespace/object[@cname='GtkStyle']</move-node>
<move-node path="/api/namespace/class[@cname='GtkGlobal']/method[@name='PaintTab']">/api/namespace/object[@cname='GtkStyle']</move-node>
<move-node path="/api/namespace/class[@cname='GtkGlobal']/method[@name='PaintVline']">/api/namespace/object[@cname='GtkStyle']</move-node>
</metadata>