[Gtk-sharp-list] serialization support
Lee Mallabone
gnome@fonicmonkey.net
12 Apr 2003 20:16:09 +0100
--=-TYW0KnLv2Pqb5GDJvxoJ
Content-Type: text/plain
Content-Transfer-Encoding: 7bit
On Sat, 2003-04-12 at 16:44, Gonzalo Paniagua Javier wrote:
> Well, first someone should modify the generator to handle <implements>
> so we can tell it to implement ISerializable.
After glancing at the code, it seems the generator already handles
<implements> for C types, so I suspect it just needs a tweak to allow C#
type names in the <implements> child nodes?
However, it looks like the metadata handler will also need altering,
right? At the moment, there don't appear to be any manual uses of
<implements> in the *.metadata files...
> Take a look at gtk+/gdk-pixbuf/gdk-pixdata.c. It contains C functions to
> serialize and deserialize a pixbuf.
Unfortunately the C# wrapped versions are broken as it stands. I've
attached a patch that corrects the signatures for those methods...
Mike, okay to commit?
> Then implement GetObjectData and a protected .ctor the creates the
> pixbuf from the data stored in GetObjectData.
Looking at this now... I suspect it's going to be a real pain to test.
Thanks for the tips.
Regards,
Lee.
--=-TYW0KnLv2Pqb5GDJvxoJ
Content-Disposition: attachment; filename=pixdata-metadata.diff
Content-Type: text/x-patch; name=pixdata-metadata.diff; charset=ANSI_X3.4-1968
Content-Transfer-Encoding: 7bit
Index: api/gdk-api.xml
===================================================================
RCS file: /cvs/public/gtk-sharp/api/gdk-api.xml,v
retrieving revision 1.16
diff -u -r1.16 gdk-api.xml
--- api/gdk-api.xml 4 Apr 2003 07:24:02 -0000 1.16
+++ api/gdk-api.xml 12 Apr 2003 17:10:11 -0000
@@ -2903,7 +2903,7 @@
<return-type type="gboolean"/>
<parameters>
<parameter type="guint" name="stream_length"/>
- <parameter type="const-guint8*" name="stream"/>
+ <parameter type="const-guint8*" name="stream" array="true"/>
<parameter type="GError**" name="error"/>
</parameters>
</method>
@@ -2914,7 +2914,7 @@
<parameter type="gboolean" name="use_rle"/>
</parameters>
</method>
- <method name="Serialize" cname="gdk_pixdata_serialize">
+ <method name="Serialize" cname="gdk_pixdata_serialize" hidden="1">
<return-type type="guint8*"/>
<parameters>
<parameter type="guint*" name="stream_length_p"/>
Index: sources/Gdk.metadata
===================================================================
RCS file: /cvs/public/gtk-sharp/sources/Gdk.metadata,v
retrieving revision 1.14
diff -u -r1.14 Gdk.metadata
--- sources/Gdk.metadata 4 Apr 2003 07:24:02 -0000 1.14
+++ sources/Gdk.metadata 12 Apr 2003 17:10:11 -0000
@@ -118,6 +118,31 @@
</data>
</rule>
+<rule>
+ <class name="GdkPixdata">
+ <method>Serialize</method>
+ </class>
+ <data>
+ <attribute target="method">
+ <name>hidden</name>
+ <value>1</value>
+ </attribute>
+ </data>
+</rule>
+
+<rule>
+ <class name="GdkPixdata">
+ <method>Deserialize</method>
+ </class>
+ <data>
+ <attribute target="param">
+ <filter level="name">stream</filter>
+ <name>array</name>
+ <value>true</value>
+ </attribute>
+ </data>
+</rule>
+
<!-- ref parameters -->
<rule>
<class name="GdkColor">
--=-TYW0KnLv2Pqb5GDJvxoJ
Content-Disposition: attachment; filename=Pixdata.custom
Content-Type: text/plain; name=Pixdata.custom; charset=ANSI_X3.4-1968
Content-Transfer-Encoding: 7bit
[DllImport("libgdk_pixbuf-2.0-0.dll")]
static extern byte[] gdk_pixdata_serialize(ref Gdk.Pixdata raw, out uint stream_length_p);
/// <summary> Serialize Method </summary>
/// <remarks> To be completed </remarks>
public byte[] Serialize(out uint stream_length_p) {
return gdk_pixdata_serialize(ref this, out stream_length_p);
}
--=-TYW0KnLv2Pqb5GDJvxoJ--