Re: Structures thought question
Torsten Schoenfeld <[email protected]> Sat, 15 Nov 2008 13:38:24 +0100
| Newsgroups | gmane.comp.gnome.language-bindings |
|---|---|
| Message-ID | <[email protected]> |
I'm going to comment from the Perl point of view, and I can't say anything about the clutter functions since I haven't dealt with them yet. Owen Taylor wrote: > void gdk_region_union (GdkRegion *source1, > const GdkRegion *source2); As it stands, this is a GdkRegion method that modifies the invocant, so source1 wouldn't appear in the argument list and thus doesn't need any annotation; source2 would be 'in'. $source1->union ($source2); # modifies $source1 > void gdk_region_get_clipbox (const GdkRegion *region, > GdkRectangle *rectangle); GdkRegion method with invocant region; rectangle would be 'out'. my $rectangle = $region->get_clipbox (); > void gtk_text_buffer_insert (GtkTextBuffer *buffer, > GtkTextIter *iter, > const gchar *text, > gint len); GtkTextBuffer method with invocant buffer; iter is 'in', text is 'in'. We would avoid wrapping the len parameter and simply deduce it from the passed in Perl string (which knows how long it is). Can we express this kind of relation in the typelib, i.e. can we express that a string argument is actually represented by two arguments: the pointer and a length? $buffer->insert ($iter, $text); > gboolean gdk_colormap_alloc_color (GdkColormap *colormap, > GdkColor *color, > gboolean writeable, > gboolean best_match); GdkColormap with invocant colormap. color, which is modified by gdk_colormap_alloc_color, is wrapped as a simple 'in' argument in the current Perl bindings. This is possible because we wrap GdkColors as opaque references; so changes to the underlying struct propagate directly to changes of the Perl variable. If we wrapped GdkColors by converting them to and from normal Perl structures like a hash or an array, color would have to be 'inout'. $colormap->alloc_color ($color, $writeable, $best_match); _______________________________________________ language-bindings mailing list [email protected] http://mail.gnome.org/mailman/listinfo/language-bindings