Re: Help on GObject Introspection Annotations

Daniel Espinosa <[email protected]>
Newsgroups gmane.comp.gnome.gtk+.general,gmane.comp.gnome.gtk+.devel.general,gmane.comp.gnome.db
Message-ID <CAHirWtJNM-CRTu206WyQjM-PEv+dqb2JKWHq+yrhHu4BiNRA+Q@mail.gmail.com>
I've added CC to gtk-list and gtk-developers in order to make public
these comments. Hope you make the same in the future.

I'm working to add new objects written in Vala for GDA in  the
libgda-vala branch if you want to see how to implement a library and
Unit Test in a C library and Autotools.

http://git.gnome.org/browse/libgda

2011/12/2 Tal Liron <[email protected]>:
> Thanks, that's good advice. Indeed, the property I am using can also access
> a private field, forcing users to use the property API.
>
> One advantage for me in using the property API is that I'm also using Vala.
> In Vala, implementing properties is ridiculously easy.
>
> I'm hoping in the future GI will support fields better. The project is
> definitely evolving and adding features.
>
> On 12/02/2011 02:32 PM, Daniel Espinosa wrote:
>
> In GdaNumeric, we added accesors to fields in the struct.
>
> I think you have a GObject implementation. Your way is the best: add
> properties to access to fields.
>
> GdaNumeric is a struct with some fields easy to modify directly from
> Python, like the integer ones, but the string one is not handle by
> Python by default because could be very different per case. Then we
> added some API to access to struct members (all), and now this struct
> is considered opaque.
>
> For new implementations I recomend to hide struct definition in the
> *.c and just use in the header:
>
> typedef _MyStruct MyStruct;
>
> This hides internal definition and forces the developer to use the
> API. This way GObject Introspection will always make bindings to
> modify struct fields as expected by the implementator and makes very
> easy to automatically generate GIR files with the required API.
>
> 2011/12/2 Tal Liron <[email protected]>:
>
> Thanks!
>
> I solved it in my software by wrapping fields in properties. That way C code
> can still access the fields directly, while Python can use set_property().
>
> -Tal
>
> On 12/02/2011 01:18 PM, Daniel Espinosa wrote:
>
> No one have sent any response message.
>
> I've added this annotations to GdaNumeric, but GIR and Vala bindings
> make no difference. Both use GdaNumeric, as declared on GDA, as a
> GBoxed and use g_boxed_copy and g_boxed_free functions.
>
> May be this help was added but not implemented jet.
>
> 2011/12/2 Tal Liron <[email protected]>:
>
> Hello Daniel, and sorry for writing to you directly, but I can't find a way
> to respond to an archived message on the mailing list.
>
> Did you ever found a solution to this issue you posted?
>
> https://mail.gnome.org/archives/gtk-list/2011-October/msg00049.html
>
> Thanks!
>
> -Tal
>
>
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.