Announcing: Perl bindings for LibSoup

classic Classic list List threaded Threaded
20 messages Options
Reply | Threaded
Open this post in threaded view
|

Announcing: Perl bindings for LibSoup

Emmanuel Rodriguez
Hi,

I'm preparing a talk for the French Workshop about Gtk2::WebKit and
after playing with the perl bindings I noticed that the C WebKit API
exposes some LibSoup objects (SoupSession and SoupMessage) and that we
don't have their bindings for Perl. LibChamplain is also based on
LibSoup but its objects where never exposed through the C champlain
API so I was able to avoid the libsoup bindings.

That was until now as I'm planning on using the Libsoup objects for
doing things like resource tracking, therefore I need the Perl
bindings.

I'm starting by implementing the minimum by hand in order to support
my talk hoping that the introspection framework will be mature soon
and will take over my work.

I do have a question: which namespace should I use for the perl bindings?
Soup is a bit too hight level, Gtk2::Soup seems a bit strange as
there's no widget involved in LibSoup (but that's what I picked for
now as I recycled Gtk2::Champlain to bootstrap my work). I was
thinking of leaving Gnome::Soup for the gnome part of the bindings.

For now the tentative project (a starter) is in github [1] with a fork
of Gtk2::WebKit [2] that will suport the library as an optional
dependency (for now the dependency is mandatory).

[1] https://github.com/potyl/Gtk2-Soup
[2] https://github.com/potyl/gtk2-webkit

--
Emmanuel Rodriguez
_______________________________________________
gtk-perl-list mailing list
[hidden email]
http://mail.gnome.org/mailman/listinfo/gtk-perl-list
Reply | Threaded
Open this post in threaded view
|

Re: Announcing: Perl bindings for LibSoup

Grant McLean
On Mon, 2011-05-23 at 09:56 +0200, Emmanuel Rodriguez wrote:
> I do have a question: which namespace should I use for the perl bindings?
> Soup is a bit too hight level, Gtk2::Soup seems a bit strange as
> there's no widget involved in LibSoup (but that's what I picked for
> now as I recycled Gtk2::Champlain to bootstrap my work). I was
> thinking of leaving Gnome::Soup for the gnome part of the bindings.

How about Glib::Soup ?

Cheers
Grant

_______________________________________________
gtk-perl-list mailing list
[hidden email]
http://mail.gnome.org/mailman/listinfo/gtk-perl-list
Reply | Threaded
Open this post in threaded view
|

Re: Announcing: Perl bindings for LibSoup

Emmanuel Rodriguez
On Mon, May 23, 2011 at 11:24, Grant McLean <[hidden email]> wrote:
> On Mon, 2011-05-23 at 09:56 +0200, Emmanuel Rodriguez wrote:
>> I do have a question: which namespace should I use for the perl bindings?
>> Soup is a bit too hight level, Gtk2::Soup seems a bit strange as
>> there's no widget involved in LibSoup (but that's what I picked for
>> now as I recycled Gtk2::Champlain to bootstrap my work). I was
>> thinking of leaving Gnome::Soup for the gnome part of the bindings.
>
> How about Glib::Soup ?

I like it. Thanks.

--
Emmanuel Rodriguez
_______________________________________________
gtk-perl-list mailing list
[hidden email]
http://mail.gnome.org/mailman/listinfo/gtk-perl-list
Reply | Threaded
Open this post in threaded view
|

Re: Announcing: Perl bindings for LibSoup

Torsten Schoenfeld
In reply to this post by Emmanuel Rodriguez
On 23.05.2011 09:56, Emmanuel Rodriguez wrote:
> I'm starting by implementing the minimum by hand in order to support
> my talk hoping that the introspection framework will be mature soon
> and will take over my work.

It seems that Glib::Object::Introspection is already capable of handling
a reasonable portion of libsoup's API.  Attached is a simple HTTP
response printer.

> I do have a question: which namespace should I use for the perl bindings?

As for names: since libsoup seems to be HTTP-centric, maybe HTTP::Soup
or HTTP::LibSoup.

_______________________________________________
gtk-perl-list mailing list
[hidden email]
http://mail.gnome.org/mailman/listinfo/gtk-perl-list

head.pl (1K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Announcing: Perl bindings for LibSoup

Emmanuel Rodriguez
On Mon, May 23, 2011 at 23:15, Torsten Schoenfeld <[hidden email]> wrote:

> On 23.05.2011 09:56, Emmanuel Rodriguez wrote:
>>
>> I'm starting by implementing the minimum by hand in order to support
>> my talk hoping that the introspection framework will be mature soon
>> and will take over my work.
>
> It seems that Glib::Object::Introspection is already capable of handling a
> reasonable portion of libsoup's API.  Attached is a simple HTTP response
> printer.
>

Your sample code looks very promising. I'm not able to run any
introspection module on my computer. I tried to compile the latest
perl-Glib-Object-Introspection found on git and the unit tests fail:

PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e"
"test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/00-basic-types.t .. Can't load
'/home/emmanuel/Projects/perl-Glib-Object-Introspection/blib/arch/auto/Glib/Object/Introspection/Introspection.so'
for module Glib::Object::Introspection:
/home/emmanuel/Projects/perl-Glib-Object-Introspection/blib/arch/auto/Glib/Object/Introspection/Introspection.so:
undefined symbol: gperl_hv_take_sv at /usr/lib/perl/5.10/DynaLoader.pm
line 192.
 at ./t/inc/setup.pl line 1
Compilation failed in require at ./t/inc/setup.pl line 1.
BEGIN failed--compilation aborted at ./t/inc/setup.pl line 1.
Compilation failed in require at t/00-basic-types.t line 3.
BEGIN failed--compilation aborted at t/00-basic-types.t line 3.
t/00-basic-types.t .. Dubious, test returned 2 (wstat 512, 0x200)
No subtests run


This is un VM running ubuntu 11.04 with all dependencies taking for
the official ubuntu repos and perl-Glib-Object-Introspection straight
from the git repo.

What should I do in order to have the introspection framework working?


>> I do have a question: which namespace should I use for the perl bindings?
>
> As for names: since libsoup seems to be HTTP-centric, maybe HTTP::Soup or
> HTTP::LibSoup.
Good suggestion, I already rushed into renaming to Glib::Soup. I'll do
it once more :)

--
Emmanuel Rodriguez
_______________________________________________
gtk-perl-list mailing list
[hidden email]
http://mail.gnome.org/mailman/listinfo/gtk-perl-list
Reply | Threaded
Open this post in threaded view
|

Re: Announcing: Perl bindings for LibSoup

Torsten Schoenfeld
On 24.05.2011 09:31, Emmanuel Rodriguez wrote:
> /home/emmanuel/Projects/perl-Glib-Object-Introspection/blib/arch/auto/Glib/Object/Introspection/Introspection.so:
> undefined symbol: gperl_hv_take_sv at /usr/lib/perl/5.10/DynaLoader.pm
> line 192.

Looks like you need Glib from git as well.
_______________________________________________
gtk-perl-list mailing list
[hidden email]
http://mail.gnome.org/mailman/listinfo/gtk-perl-list
Reply | Threaded
Open this post in threaded view
|

Re: Announcing: Perl bindings for LibSoup

Emmanuel Rodriguez
On Tue, May 24, 2011 at 10:13, Torsten Schoenfeld <[hidden email]> wrote:
> On 24.05.2011 09:31, Emmanuel Rodriguez wrote:
>>
>>
>> /home/emmanuel/Projects/perl-Glib-Object-Introspection/blib/arch/auto/Glib/Object/Introspection/Introspection.so:
>> undefined symbol: gperl_hv_take_sv at /usr/lib/perl/5.10/DynaLoader.pm
>> line 192.
>
> Looks like you need Glib from git as well.
Thanks, it works with the most recent version that's in git.

Is it possible to mix Introspection bindings with perl module that has
hand made bindings?
For instance if HTTP::Soup would be written with the introspection
framework and Gtk2::WebKit stay the way it is with hand made bindings.
How can Gtk2::WebKit see the typemaps that correspond to Libsoup
objects?

    my @extra_dependencies;
    my $extra_cflags = "";
    eval {

        require Glib::Object::Introspection;
        Glib::Object::Introspection->import();

        Glib::Object::Introspection->setup (
            basename => 'Soup',
            version => '2.4',
        package => 'HTTP::Soup'
        );

        #push @extra_dependencies, 'Glib::Soup';
        $extra_cflags = " -DGLIB_SOUP_PERL";
        1;
    } or do {
        my $error = $@;
    };

    our $webkit = ExtUtils::Depends->new('Gtk2::WebKit', 'Gtk2',
@extra_dependencies);

The previous code dies as HTTP::Soup is not installed:

 *** Can't load dependency information for HTTP::Soup:
   Can't locate HTTP/Soup/Install/Files.pm in @INC (@INC contains: inc
ext /etc/perl /usr/local/lib/perl/5.10.1 /usr/local/share/perl/5.10.1
/usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10
/usr/share/perl/5.10 /usr/local/lib/site_perl .) at
/usr/share/perl5/ExtUtils/Depends.pm line 170.

If I remove HTTP::Soup from ExtUtils::Depends then I get this error
during the compilation:
[ XS xs/WebKit.xs ]
Error: 'SoupSession *' not in typemap in WebKit.xs, line 41
make: *** [xs/WebKit.c] Error 1

Is there a way to generate the type map through the introspection
framework or should I declare the libsoup type maps in Gtk2::WebKit
module by hand?
--
Emmanuel Rodriguez
_______________________________________________
gtk-perl-list mailing list
[hidden email]
http://mail.gnome.org/mailman/listinfo/gtk-perl-list
Reply | Threaded
Open this post in threaded view
|

Re: Announcing: Perl bindings for LibSoup

Torsten Schoenfeld
On 24.05.2011 22:54, Emmanuel Rodriguez wrote:
> Thanks, it works with the most recent version that's in git.

Good to hear.

> Is it possible to mix Introspection bindings with perl module that has
> hand made bindings?

Good question.  As you mention, the problem will be the lack of typemaps
and converter macros.  But Glib::Object::Introspection uses the normal
Glib mechanisms to convert objects to and from Perl land.  So I think
the easiest way would indeed be to add libsoup typemaps to your XS
module (simply put corresponding entries into your 'maps' file).

But since WebKit also supports gobject-introspection, why not use it
that way as well?  It's still a little rough around the edges, but
here's your browser.pl example ported to use the introspection stuff.

_______________________________________________
gtk-perl-list mailing list
[hidden email]
http://mail.gnome.org/mailman/listinfo/gtk-perl-list

browser.pl (645 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Announcing: Perl bindings for LibSoup

Emmanuel Rodriguez
On Wed, May 25, 2011 at 00:14, Torsten Schoenfeld <[hidden email]> wrote:

> On 24.05.2011 22:54, Emmanuel Rodriguez wrote:
>>
>> Thanks, it works with the most recent version that's in git.
>
> Good to hear.
>
>> Is it possible to mix Introspection bindings with perl module that has
>> hand made bindings?
>
> Good question.  As you mention, the problem will be the lack of typemaps and
> converter macros.  But Glib::Object::Introspection uses the normal Glib
> mechanisms to convert objects to and from Perl land.  So I think the easiest
> way would indeed be to add libsoup typemaps to your XS module (simply put
> corresponding entries into your 'maps' file).
Adding the type libsoup maps into the webkit bindings works as expected.

What also works, at least if GObject types are involved, is to
substitute the original object by a GObject in the XS signature. If
the library using introspection is loaded the glib introspection will
be used to construct the right instances. This is a poor man's hack
and I doubt that it will work with boxed types.

>
> But since WebKit also supports gobject-introspection, why not use it that
> way as well?  It's still a little rough around the edges, but here's your
> browser.pl example ported to use the introspection stuff.

The introspection framework really looks nice. Your examples show that
it's very easy to write the bindings for arbitrary C C libraries quite
easily. What's the catch?  ;) Are there bugs or unimplemented parts?
This is too nice to be true.

Is there a way to provide custom made XS methods to an introspection
perl package? For instance, SoupMessageBody is defined as:

typedef struct {
        const char *data;
        goffset     length;
} SoupMessageBody;

And provides no accessor for data or length. Is there a way to
complete the introspection binding with extra XS methods?
If so do you know of an existing cpan package that does this?

--
Emmanuel Rodriguez
_______________________________________________
gtk-perl-list mailing list
[hidden email]
http://mail.gnome.org/mailman/listinfo/gtk-perl-list
Reply | Threaded
Open this post in threaded view
|

Re: Announcing: Perl bindings for LibSoup

Torsten Schoenfeld
On 25.05.2011 23:18, Emmanuel Rodriguez wrote:
>> But since WebKit also supports gobject-introspection, why not use it that
>> way as well?  It's still a little rough around the edges, but here's your
>> browser.pl example ported to use the introspection stuff.
>
> The introspection framework really looks nice. Your examples show that
> it's very easy to write the bindings for arbitrary C C libraries quite
> easily. What's the catch?  ;) Are there bugs or unimplemented parts?
> This is too nice to be true.

Well, all this has been cooking for a while: about six years.  But there
are some rough edges remaining, some in gobject-introspection itself,
many in the Perl bindings.  Nothing insurmountable though.

This is the future of language bindings (in a GNOME context at least).

> Is there a way to provide custom made XS methods to an introspection
> perl package? For instance, SoupMessageBody is defined as:
>
> typedef struct {
> const char *data;
> goffset     length;
> } SoupMessageBody;
>
> And provides no accessor for data or length. Is there a way to
> complete the introspection binding with extra XS methods?
> If so do you know of an existing cpan package that does this?

Adding custom XS methods is no problem: just write them as you normally
would.  But in the case you mention, that's not necessary.
gobject-introspection provides the means to get and set public fields of
boxed types.  I don't remember right now how good the support for that
is in the Perl bindings, however.
_______________________________________________
gtk-perl-list mailing list
[hidden email]
http://mail.gnome.org/mailman/listinfo/gtk-perl-list
Reply | Threaded
Open this post in threaded view
|

Re: Announcing: Perl bindings for LibSoup

Torsten Schoenfeld
In reply to this post by Torsten Schoenfeld
On 25.05.2011 00:14, Torsten Schoenfeld wrote:
> But since WebKit also supports gobject-introspection, why not use it
> that way as well? It's still a little rough around the edges, but here's
> your browser.pl example ported to use the introspection stuff.

I just ground one rough edge with a couple of commits: the support for C
arrays is now more complete.  So you can now say

   Gtk3::init([...]);

without having to specify the length of the list.

Note that Gtk3::init(\@ARGV) will not do what at least I expect.  You
need to use Gtk3::init([$0, @ARGV]).  That's one thing that the manual
bindings took care of automatically.
_______________________________________________
gtk-perl-list mailing list
[hidden email]
http://mail.gnome.org/mailman/listinfo/gtk-perl-list
Reply | Threaded
Open this post in threaded view
|

Re: Announcing: Perl bindings for LibSoup

Emmanuel Rodriguez
In reply to this post by Torsten Schoenfeld
On Wed, May 25, 2011 at 23:51, Torsten Schoenfeld <[hidden email]> wrote:

> On 25.05.2011 23:18, Emmanuel Rodriguez wrote:
>>
>> Is there a way to provide custom made XS methods to an introspection
>> perl package? For instance, SoupMessageBody is defined as:
>>
>> typedef struct {
>>        const char *data;
>>        goffset     length;
>> } SoupMessageBody;
>>
>> And provides no accessor for data or length. Is there a way to
>> complete the introspection binding with extra XS methods?
>> If so do you know of an existing cpan package that does this?
>
> Adding custom XS methods is no problem: just write them as you normally
> would.  But in the case you mention, that's not necessary.
> gobject-introspection provides the means to get and set public fields of
> boxed types.
How do we access public fields of boxed types?
I tried $body->data and $body->get_data without success.

--
Emmanuel Rodriguez
_______________________________________________
gtk-perl-list mailing list
[hidden email]
http://mail.gnome.org/mailman/listinfo/gtk-perl-list
Reply | Threaded
Open this post in threaded view
|

Re: Announcing: Perl bindings for LibSoup

Torsten Schoenfeld
On 06.06.2011 16:19, Emmanuel Rodriguez wrote:
>> Adding custom XS methods is no problem: just write them as you normally
>> would.  But in the case you mention, that's not necessary.
>> gobject-introspection provides the means to get and set public fields of
>> boxed types.
> How do we access public fields of boxed types?
> I tried $body->data and $body->get_data without success.

It seems like I was misremembering this.  While we do support converting
bare structs to and from Perl hashes, we don't support acessing fields
of boxed types yet.  To implement this, we would need to install, for
each boxed type, subs that call into a new pair of XS functions that use
g_field_info_get_field and g_field_info_set_field.
_______________________________________________
gtk-perl-list mailing list
[hidden email]
http://mail.gnome.org/mailman/listinfo/gtk-perl-list
Reply | Threaded
Open this post in threaded view
|

Re: Announcing: Perl bindings for LibSoup

Emmanuel Rodriguez
In reply to this post by Torsten Schoenfeld
On Wed, May 25, 2011 at 00:14, Torsten Schoenfeld <[hidden email]> wrote:
> On 24.05.2011 22:54, Emmanuel Rodriguez wrote:
>>
>
> But since WebKit also supports gobject-introspection, why not use it that
> way as well?  It's still a little rough around the edges, but here's your
> browser.pl example ported to use the introspection stuff.
>

I've been playing a bit with the introspection and with the sample
browser. It does make things easier, that's nice.

One thing that I've not been able to do is to use Cairo with the
introspection framework. For instance if I take your example and load
cairo and I can't use it.

use Cairo;

$view->signal_connect('notify::load-status' => sub {
    my $uri = $view->get_uri or return;
    return unless $view->get_load_status eq 'finished';

    my ($width, $height) = ($view->get_allocated_width,
$view->get_allocated_height);

    # Save a screenshot as Pdf
    my $surface = Cairo::PdfSurface->create("a.pdf", 1.0 * $width, 1.0
* $height);
    my $cr = Cairo::Context->create($surface);
    $view->draw($cr);
});


This code always gives me:

*** unhandled exception in callback:
***   internal problem: GType CairoContext (146796864) has not been
registered with GPerl at
/usr/local/lib/perl/5.10.1/Glib/Object/Introspection.pm line 62.
***  ignoring at
/usr/local/lib/perl/5.10.1/Glib/Object/Introspection.pm line 62.


Is it possible to use Cairo with the introspection framework?

--
Emmanuel Rodriguez
_______________________________________________
gtk-perl-list mailing list
[hidden email]
http://mail.gnome.org/mailman/listinfo/gtk-perl-list
Reply | Threaded
Open this post in threaded view
|

Re: Announcing: Perl bindings for LibSoup

Torsten Schoenfeld
On 22.06.2011 23:05, Emmanuel Rodriguez wrote:
> Is it possible to use Cairo with the introspection framework?

This is not specific to introspection even, but applies to the whole
Glib world.  Try
<http://home.arcor.de/kaffeetisch/tmp/Cairo-GObject-1.000-UNRELEASED.tar.gz>,
which I recently mentioned here but got no response on.
_______________________________________________
gtk-perl-list mailing list
[hidden email]
http://mail.gnome.org/mailman/listinfo/gtk-perl-list
Reply | Threaded
Open this post in threaded view
|

Re: Announcing: Perl bindings for LibSoup

Emmanuel Rodriguez
On Thu, Jun 23, 2011 at 22:47, Torsten Schoenfeld <[hidden email]> wrote:
> On 22.06.2011 23:05, Emmanuel Rodriguez wrote:
>>
>> Is it possible to use Cairo with the introspection framework?
>
> This is not specific to introspection even, but applies to the whole Glib
> world.  Try
> <http://home.arcor.de/kaffeetisch/tmp/Cairo-GObject-1.000-UNRELEASED.tar.gz>,
> which I recently mentioned here but got no response on.

The run time error goes away with that module. This is great!

I do have other errors, but that's because I assume that the widget is
already allocated which is not always true. What's the best way to
detect if a widget is displayed and rendered so I can grab a
screenshot?

Thanks for the help.

--
Emmanuel Rodriguez
_______________________________________________
gtk-perl-list mailing list
[hidden email]
http://mail.gnome.org/mailman/listinfo/gtk-perl-list
Reply | Threaded
Open this post in threaded view
|

Re: Announcing: Perl bindings for LibSoup

Emmanuele Bassi
On 2011-06-24 at 08:24, Emmanuel Rodriguez wrote:

> I do have other errors, but that's because I assume that the widget is
> already allocated which is not always true. What's the best way to
> detect if a widget is displayed and rendered so I can grab a
> screenshot?

connect to the ::map signal.

ciao,
 Emmanuele.

--
W: http://www.emmanuelebassi.name
B: http://blogs.gnome.org/ebassi
_______________________________________________
gtk-perl-list mailing list
[hidden email]
http://mail.gnome.org/mailman/listinfo/gtk-perl-list
Reply | Threaded
Open this post in threaded view
|

Re: Announcing: Perl bindings for LibSoup

Emmanuel Rodriguez
On Fri, Jun 24, 2011 at 11:27, Emmanuele Bassi <[hidden email]> wrote:
> On 2011-06-24 at 08:24, Emmanuel Rodriguez wrote:
>
>> I do have other errors, but that's because I assume that the widget is
>> already allocated which is not always true. What's the best way to
>> detect if a widget is displayed and rendered so I can grab a
>> screenshot?
>
> connect to the ::map signal.

Thanks for the tip.

The bug that I encounter is a bit strange as it turns out that the
widget is already mapped, yet i get the strange error that i pasted
before. The widget in question is a WebKit View which is not a simple
widget.

I think that what happens is that while the widget can be mapped some
internal/embedded widgets are not yet fully prepared as they are
waiting for the network layer to return the data (HTML) that's needed
to render them. I believe that in my case an iframe wasn't rendered
yet (a facebook iframe) since i was running my program without a
network connection. So the facebook iframe couldn't be loaded and
probably one of the widgets needed to render that element wasn't in
the right state yet.

Adding a Glib->idle() callback and performing the Cairo screencapture
there seems to fix the problem. I'm hopping that the idle callback
runs after the libsoup callbacks that webkit as registered for
tracking the network responses in order to update it's widgets.


I would like to thank you all for your help. Thanks to your guidance I
was able to prepare a Gtk2::WebKit talk for the French Perl Workshop
this last week. You can find the slides (en français) and sample code
(in english) in this repo https://github.com/potyl/Webkit

There are random little hacks that show us how to play with webkit in
order to do other things that to render widget in a canvas:
- track resources
- take screenshots (png, pdf, postscript and svg)
- convert S5 presentations into PDF slides
etc

Are you guys aware if there's a way to use Gtk 2 or 3 in a pure
offscreen mode that wouldn't require an X server? I've read that the
clutter folks made some patches to a custom version of webkit that
worked on offscreen mode but I haven't seen them merged.

The closes that I can get to offscreen rendering is to use
Gtk3::OffscreenWindow instead of Gtk2::Window and to start my program
with this wrapper
xvfb-run --server-args="-screen 0 1024x768x24" "$@"

If I don't have DISPLAY set as soon as I call Gtk3::init() my script dies.

--
Emmanuel Rodriguez
_______________________________________________
gtk-perl-list mailing list
[hidden email]
http://mail.gnome.org/mailman/listinfo/gtk-perl-list
Reply | Threaded
Open this post in threaded view
|

Re: Announcing: Perl bindings for LibSoup

Kevin Ryde
Emmanuel Rodriguez <[hidden email]> writes:
>
> xvfb-run --server-args="-screen 0 1024x768x24" "$@"

That'd be about right.

> Gtk3::OffscreenWindow instead of Gtk2::Window

Shouldn't need to change the program.  The only thing that xvfb won't
have is a window manager, if some sloppy code is depending on that (and
which you could start up in it if necessary).  The way it can leave the
screen image in an xwd file might be a cute way to get a full screen
shot.
_______________________________________________
gtk-perl-list mailing list
[hidden email]
http://mail.gnome.org/mailman/listinfo/gtk-perl-list
Reply | Threaded
Open this post in threaded view
|

Re: Announcing: Perl bindings for LibSoup

Torsten Schoenfeld
In reply to this post by Torsten Schoenfeld
On 08.06.2011 22:47, Torsten Schoenfeld wrote:
> It seems like I was misremembering this. While we do support converting
> bare structs to and from Perl hashes, we don't support acessing fields
> of boxed types yet. To implement this, we would need to install, for
> each boxed type, subs that call into a new pair of XS functions that use
> g_field_info_get_field and g_field_info_set_field.

I just committed support for accessing fields of boxed types to
Glib::Object::Introspection.
_______________________________________________
gtk-perl-list mailing list
[hidden email]
http://mail.gnome.org/mailman/listinfo/gtk-perl-list