Re: Structs in gobject-introspection + Javascript
- From: Dan Winship <danw gnome org>
- To: Owen Taylor <otaylor redhat com>
- Cc: language-bindings gnome org, Colin Walters <walters redhat com>, lucasr gome org, Havoc Pennington <hp pobox com>
- Subject: Re: Structs in gobject-introspection + Javascript
- Date: Mon, 10 Nov 2008 09:07:20 -0500
Owen Taylor wrote:
> set() - assigns a value of another object of the same type to the
> object [3]
>
> So, equivalent to the size-request example above you can do:
>
> widget.connect('size-request',
> function(widget, request) {
> request.set({ width: 100, height: 50 });
> });
Another argument against this API is that presumably this would break if
the user did
request = { width: 100, height: 50 };
instead, which would be pretty non-obvious.
> 7. Any field declared in the introspection information can be read
> as an object property.
>
> 8. Any field in a simple structure can be set by assignment to an
> object property. Fields in non-simple structures cannot be set. {3}
gtk# automatically converts foo_set_bar() methods into writable
properties (when that's appropriate based on the method signature). So
if you had
struct NamedPoint {
int x;
int y;
char *name;
};
void named_point_set_name (NamedPoint *np, const char *name);
then instead of having an np.set_name() method, you'd just have a
writable np.name property that called named_point_set_name() underneath.
This works well and tends to make the APIs look a lot more native and
less badly-mapped-from-C.
-- Dan
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]