GtkSharp/gdk/Gdk.metadata

187 lines
20 KiB
Plaintext
Raw Normal View History

<?xml version="1.0"?>
<metadata>
<attr path="/api/namespace/boxed[@cname='GdkColor']/method[@name='Copy']" name="hidden">1</attr>
<attr path="/api/namespace/boxed[@cname='GdkColor']/method[@name='Free']" name="hidden">1</attr>
<attr path="/api/namespace/boxed[@cname='GdkColor']/method[@name='Hash']" name="hidden">1</attr>
<attr path="/api/namespace/boxed[@cname='GdkColor']/method[@name='Parse']/return-type" name="type">gboolean</attr>
<attr path="/api/namespace/boxed[@cname='GdkColor']/method[@name='Parse']/*/*[@type='GdkColor*']" 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/boxed[@cname='GdkCursor']/field[@name='RefCount']" 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='GdkCursor']/method[@name='Ref']" name="deprecated">1</attr>
<attr path="/api/namespace/boxed[@cname='GdkCursor']/method[@name='Unref']" name="deprecated">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='GdkFont']" name="opaque">false</attr>
<attr path="/api/namespace/boxed[@cname='GdkRectangle']/method[@name='Intersect']/*/*[@name='dest']" name="pass_as">out</attr>
<attr path="/api/namespace/boxed[@cname='GdkRectangle']/method[@name='Union']/*/*[@name='dest']" name="pass_as">out</attr>
<attr path="/api/namespace/callback[@cname='GdkPixbufDestroyNotify']/*/*[@type='guchar*']" name="array">1</attr>
<attr path="/api/namespace/class[@cname='GdkCairo_']" name="name">CairoHelper</attr>
<attr path="/api/namespace/class[@cname='GdkColors_']" name="hidden">1</attr>
<attr path="/api/namespace/class[@cname='GdkDrag_']/method[@name='Begin']" name="hidden">1</attr>
<attr path="/api/namespace/class[@cname='GdkDrag_']/method[@name='FindWindow']/*/*[@name='dest_window']" name="pass_as">out</attr>
<attr path="/api/namespace/class[@cname='GdkDrag_']/method[@name='FindWindowForScreen']/*/*[@name='dest_window']" name="pass_as">out</attr>
<attr path="/api/namespace/class[@cname='GdkEvent_']/method[@name='HandlerSet']" name="hidden">1</attr>
<attr path="/api/namespace/class[@cname='GdkEvent_']" name="name">EventHelper</attr>
<attr path="/api/namespace/class[@cname='GdkInput_']/method[@name='Add']" name="hidden">1</attr>
<attr path="/api/namespace/class[@cname='GdkInput_']/method[@name='AddFull']" name="hidden">1</attr>
<attr path="/api/namespace/class[@cname='GdkKeyval_']/method[@name='Name']/return-type" name="type">const-gchar*</attr>
<attr path="/api/namespace/class[@cname='GdkGlobal']/method[@name='DevicesList']" name="hidden">1</attr>
<attr path="/api/namespace/class[@cname='GdkGlobal']/method[@name='FreeTextList']" name="hidden">1</attr>
<attr path="/api/namespace/class[@cname='GdkGlobal']/method[@name='InitCheck']" name="hidden">1</attr>
<attr path="/api/namespace/class[@cname='GdkGlobal']/method[@name='ListVisuals']" name="hidden">1</attr>
<attr path="/api/namespace/class[@cname='GdkGlobal']/method[@name='ParseArgs']" name="hidden">1</attr>
<attr path="/api/namespace/class[@cname='GdkGlobal']/method[@name='AddClientMessageFilter']" name="hidden">1</attr>
<attr path="/api/namespace/class[@cname='GdkGlobal']/method[@name='StringToCompoundText']" name="hidden">1</attr>
<attr path="/api/namespace/class[@cname='GdkGlobal']/method[@name='StringToCompoundTextForDisplay']" name="hidden">1</attr>
<attr path="/api/namespace/class[@cname='GdkPango_']" name="name">PangoHelper</attr>
<attr path="/api/namespace/class[@cname='GdkPixbuf_']" name="hidden">1</attr>
<attr path="/api/namespace/class[@cname='GdkProperty_']/method[@name='Get']/*/*[@name='actual_property_type']" name="pass_as">out</attr>
<attr path="/api/namespace/class[@cname='GdkProperty_']/method[@name='Get']/*/*[@name='data']" name="pass_as">out</attr>
<attr path="/api/namespace/class[@cname='GdkProperty_']/method[@name='Get']/*/*[@name='data']" name="array">1</attr>
<attr path="/api/namespace/class[@cname='GdkQuery_']" name="hidden">1</attr>
<attr path="/api/namespace/class[@cname='GdkRgb_']/method[@name='FindColor']/*/*[@name='color']" name="pass_as">ref</attr>
<attr path="/api/namespace/class[@cname='GdkSelection_']/method[@name='PropertyGet']" name="hidden">1</attr>
<attr path="/api/namespace/class[@cname='GdkText_']" name="hidden">1</attr>
<add-node path="/api/namespace/enum[@cname='GdkModifierType']"><member name="None" value="0" /></add-node>
<attr path="/api/namespace/enum[@cname='GdkModifierType']/member[@name='ModifierMask']" name="value">ReleaseMask | 0x1fff</attr>
<attr path="/api/namespace/enum[@cname='GdkWindowClass']/member[@name='Output']" name="name">InputOutput</attr>
<attr path="/api/namespace/enum[@cname='GdkWindowClass']/member[@name='Only']" name="name">InputOnly</attr>
<attr path="/api/namespace/object[@cname='GdkBitmap']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GdkBitmap']/method[@name='CreateFromData']" name="name">CreateBitmapFromData</attr>
<move-node path="/api/namespace/object[@cname='GdkBitmap']/method[@name='CreateBitmapFromData']">/api/namespace/object[@cname='GdkPixmap']</move-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='GdkColormap']/field[@name='Colors']" name="array">1</attr>
<attr path="/api/namespace/object[@cname='GdkColormap']/method[@name='AllocColor']/*/*[@type='GdkColor*']" name="pass_as">ref</attr>
<attr path="/api/namespace/object[@cname='GdkColormap']/method[@name='AllocColors']/*/*[@type='GdkColor*']" name="array">1</attr>
<attr path="/api/namespace/object[@cname='GdkColormap']/method[@name='AllocColors']/*/*[@name='success']" name="array">1</attr>
<attr path="/api/namespace/object[@cname='GdkColormap']/method[@name='QueryColor']/*/*[@type='GdkColor*']" name="pass_as">ref</attr>
<attr path="/api/namespace/object[@cname='GdkColormap']/method[@name='FreeColors']/*/*[@type='GdkColor*']" name="array">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='GdkDevice']/field[@name='Name']" name="access">public</attr>
<attr path="/api/namespace/object[@cname='GdkDevice']/field[@name='Source']" name="access">public</attr>
<attr path="/api/namespace/object[@cname='GdkDevice']/field[@name='Mode']" name="access">public</attr>
<attr path="/api/namespace/object[@cname='GdkDevice']/field[@name='HasCursor']" name="access">public</attr>
<attr path="/api/namespace/object[@cname='GdkDevice']/field[@name='NumAxes']" name="access">public</attr>
<attr path="/api/namespace/object[@cname='GdkDevice']/field[@name='NumKeys']" name="access">public</attr>
<attr path="/api/namespace/object[@cname='GdkDevice']/method[@name='GetAxis']/*/*[@name='axes']" name="array">1</attr>
<attr path="/api/namespace/object[@cname='GdkDevice']/method[@name='FreeHistory']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GdkDevice']/method[@name='GetHistory']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GdkDevice']/method[@name='GetState']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GdkDisplay']/method[@name='AddClientMessageFilter']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GdkDisplay']/method[@name='GetPointer']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GdkDisplay']/method[@name='ListDevices']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GdkDisplayManager']/method[@name='ListDisplays']" 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='GdkDragContext']/field[@cname='protocol']" name="name">DragProtocol</attr>
<attr path="/api/namespace/object[@cname='GdkDragContext']/field[@cname='targets']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GdkDrawable']/method[@name='DrawGrayImage']/*/*[@name='buf']" name="array">1</attr>
<attr path="/api/namespace/object[@cname='GdkDrawable']/method[@name='DrawIndexedImage']/*/*[@name='buf']" name="array">1</attr>
<attr path="/api/namespace/object[@cname='GdkDrawable']/method[@name='DrawRgbImage']/*/*[@name='rgb_buf']" name="array">1</attr>
<attr path="/api/namespace/object[@cname='GdkDrawable']/method[@name='DrawRgbImageDithalign']/*/*[@name='rgb_buf']" name="array">1</attr>
<attr path="/api/namespace/object[@cname='GdkDrawable']/method[@name='DrawRgb32Image']/*/*[@name='buf']" name="array">1</attr>
<attr path="/api/namespace/object[@cname='GdkDrawable']/method[@name='DrawRgb32ImageDithalign']/*/*[@name='buf']" name="array">1</attr>
<attr path="/api/namespace/object[@cname='GdkDrawable']/method[@name='DrawLines']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GdkDrawable']/method[@name='DrawPolygon']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GdkDrawable']/method[@name='GetSize']/*/*[@type='gint*']" name="pass_as">out</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='GdkDrawable']/method[@name='SetData']/*/*[@name='destroy_func']" name="type">gpointer</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='GdkImage']/field[@name='Mem']" name="access">private</attr>
<attr path="/api/namespace/object[@cname='GdkImage']/field[@name='WindowingData']" name="access">private</attr>
<attr path="/api/namespace/object[@cname='GdkKeymap']/method[@name='GetEntriesForKeycode']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GdkKeymap']/method[@name='GetEntriesForKeyval']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GdkPangoRenderer']/method[@name='GetDefault']/return-type" name="type">GdkPangoRenderer*</attr>
<attr path="/api/namespace/object[@cname='GdkPixbuf']/constructor[@cname='gdk_pixbuf_new_from_data']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GdkPixbuf']/constructor[@cname='gdk_pixbuf_new_from_file']" name="preferred">1</attr>
<attr path="/api/namespace/object[@cname='GdkPixbuf']/constructor[@cname='gdk_pixbuf_new_from_inline']/*/*[@name='data']" name="array">1</attr>
<attr path="/api/namespace/object[@cname='GdkPixbuf']/constructor[@cname='gdk_pixbuf_new_from_xpm_data']/*/*[@name='data']" name="array">1</attr>
<attr path="/api/namespace/object[@cname='GdkPixbuf']/method[@name='AddAlpha']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GdkPixbuf']/method[@name='CompositeColorSimple']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GdkPixbuf']/method[@name='GetFromDrawable']" name="library">libgdk-win32-2.0-0.dll</attr>
<attr path="/api/namespace/object[@cname='GdkPixbuf']/method[@name='GetFormats']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GdkPixbuf']/method[@name='GetFromImage']" name="library">libgdk-win32-2.0-0.dll</attr>
<attr path="/api/namespace/object[@cname='GdkPixbuf']/method[@name='GetPixels']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GdkPixbuf']/method[@name='RenderThresholdAlpha']" name="library">libgdk-win32-2.0-0.dll</attr>
<attr path="/api/namespace/object[@cname='GdkPixbuf']/method[@name='RenderToDrawable']" name="library">libgdk-win32-2.0-0.dll</attr>
<attr path="/api/namespace/object[@cname='GdkPixbuf']/method[@name='RenderToDrawableAlpha']" name="library">libgdk-win32-2.0-0.dll</attr>
<attr path="/api/namespace/object[@cname='GdkPixbuf']/method[@name='RenderPixmapAndMaskForColormap']" name="library">libgdk-win32-2.0-0.dll</attr>
<attr path="/api/namespace/object[@cname='GdkPixbuf']/method[@name='RenderPixmapAndMaskForColormap']/*/*[@name='pixmap_return']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GdkPixbuf']/method[@name='RenderPixmapAndMaskForColormap']/*/*[@name='mask_return']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GdkPixbuf']/method[@name='RenderPixmapAndMask']" name="library">libgdk-win32-2.0-0.dll</attr>
<attr path="/api/namespace/object[@cname='GdkPixbuf']/method[@name='RenderPixmapAndMask']/*/*[@name='pixmap_return']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GdkPixbuf']/method[@name='RenderPixmapAndMask']/*/*[@name='mask_return']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GdkPixbuf']/method[@name='Save']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GdkPixbuf']/method[@name='Savev']/*/*[@type='char**']" name="array">1</attr>
<attr path="/api/namespace/object[@cname='GdkPixbuf']/method[@name='SaveToBuffer']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GdkPixbuf']/method[@name='SaveToBufferv']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GdkPixbuf']/method[@name='SaveToCallback']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GdkPixbuf']/method[@name='SaveToCallbackv']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GdkPixbuf']/method[@name='ScaleSimple']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GdkPixbuf']/property[@name='Pixels']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GdkPixbuf']/property" name="readable">true</attr>
<attr path="/api/namespace/object[@cname='GdkPixbuf']/property" name="writeable">true</attr>
<attr path="/api/namespace/object[@cname='GdkPixbuf']/property" name="construct-only">true</attr>
<attr path="/api/namespace/object[@cname='GdkPixbufLoader']/method[@name='GetPixbuf']" name="needs_ref">1</attr>
<attr path="/api/namespace/object[@cname='GdkPixbufLoader']/method[@name='Write']/*/*[@name='buf']" name="array">1</attr>
<attr path="/api/namespace/object[@cname='GdkPixmap']" name="parent">GdkDrawable</attr>
<attr path="/api/namespace/object[@cname='GdkPixmap']/method[@name='CreateFromXpm']/*/*[@name='mask']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GdkPixmap']/method[@name='CreateFromXpmD']/*/*[@name='mask']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GdkPixmap']/method[@name='CreateFromXpmD']/*/*[@name='data']" name="array">1</attr>
<attr path="/api/namespace/object[@cname='GdkPixmap']/method[@name='ColormapCreateFromXpm']/*/*[@name='mask']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GdkPixmap']/method[@name='ColormapCreateFromXpmD']/*/*[@name='mask']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GdkPixmap']/method[@name='ColormapCreateFromXpmD']/*/*[@name='data']" name="array">1</attr>
<attr path="/api/namespace/object[@cname='GdkScreen']/method[@name='GetMonitorGeometry']/*/*[@type='GdkRectangle*']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GdkScreen']/method[@name='GetToplevelWindows']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GdkScreen']/method[@name='Height']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GdkScreen']/method[@name='HeightMm']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GdkScreen']/method[@name='ListVisuals']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GdkScreen']/method[@name='Width']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GdkScreen']/method[@name='WidthMm']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GdkWindow']" name="parent">GdkDrawable</attr>
<attr path="/api/namespace/object[@cname='GdkWindow']/method[@name='AddFilter']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GdkWindow']/method[@name='Destroy']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GdkWindow']/method[@name='GetChildren']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GdkWindow']/method[@name='GetFrameExtents']/*/*[@name='rect']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GdkWindow']/method[@name='GetInternalPaintInfo']/*/*[@type='gint*']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GdkWindow']/method[@name='GetInternalPaintInfo']/*/*[@type='GdkDrawable**']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GdkWindow']/method[@name='GetOrigin']/*/*[@type='gint*']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GdkWindow']/method[@name='GetPointer']/*/*[@type='gint*']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GdkWindow']/method[@name='GetPointer']/*/*[@type='GdkModifierType*']" name="pass_as">out</attr>
<attr path="/api/namespace/object[@cname='GdkWindow']/method[@name='GetToplevels']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GdkWindow']/method[@name='PeekChildren']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GdkWindow']/method[@name='RemoveFilter']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GdkWindow']/method[@name='SetIconList']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GdkWindow']/method[@name='GetUserData']" name="hidden">1</attr>
<attr path="/api/namespace/object[@cname='GdkWindow']/method[@cname='gdk_window_set_user_data']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='GdkAtom']/method[@name='Name']" name="name">GetName</attr>
<attr path="/api/namespace/struct[@cname='GdkEventAny']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='GdkEventButton']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='GdkEventClient']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='GdkEventConfigure']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='GdkEventCrossing']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='GdkEventDND']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='GdkEventExpose']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='GdkEventFocus']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='GdkEventKey']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='GdkEventMotion']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='GdkEventNoExpose']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='GdkEventProperty']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='GdkEventProximity']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='GdkEventScroll']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='GdkEventSelection']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='GdkEventSetting']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='GdkEventVisibility']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='GdkEventWindowState']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='GdkPixdata']/method[@name='Deserialize']/*/*[@name='stream']" name="array">1</attr>
<attr path="/api/namespace/struct[@cname='GdkPixdata']/method[@name='Serialize']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='GdkPixdata']/method[@name='ToCsource']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='GdkPixmapObject']" 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/struct[@cname='GdkPangoAttrEmbossed']/field[@name='Attr']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='GdkPangoAttrStipple']/field[@name='Attr']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='GdkRegion']/field" name="access">private</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/struct[@cname='GdkRegion']/method[@name='Destroy']" name="deprecated">1</attr>
<attr path="/api/namespace/struct[@cname='GdkRegion']/method[@name='GetClipbox']/*/*[@name='rectangle']" name="pass_as">out</attr>
<attr path="/api/namespace/struct[@cname='GdkRegion']/method[@name='GetRectangles']" name="hidden">1</attr>
<attr path="/api/namespace/struct[@cname='GdkRegion']/method[@name='Polygon']/*/*[@name='points']" name="array">1</attr>
<attr path="/api/namespace/struct[@cname='GdkRegion']/method[@name='Polygon']/*/*[@name='npoints']" name="name">n_points</attr>
<attr path="/api/namespace/struct[@cname='GdkRegion']/method[@name='SpansIntersectForeach']/*/*[@name='function']" name="scope">call</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/struct[@cname='GdkRgbCmap']/constructor/*/*[@name='colors']" name="array">1</attr>
<attr path="/api/namespace/struct[@cname='GdkRgbCmap']/field[@name='NColors']" name="writeable">false</attr>
<attr path="/api/namespace/struct[@cname='GdkTimeCoord']/field[@cname='axes']" name="array_len">128</attr>
<attr path="/api/namespace/struct[@cname='GdkWindowObject']" name="hidden">1</attr>
<add-node path="/api"><symbol type="manual" cname="cairo_t" name="Cairo.Graphics"/></add-node>
</metadata>