[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
Re: GtkImageView
- From: "Jeffrey Ratcliffe" <jeffrey ratcliffe gmail com>
- To: "Torsten Schoenfeld" <kaffeetisch gmx de>
- Cc: gtk-perl-list gnome org
- Subject: Re: GtkImageView
- Date: Tue, 18 Dec 2007 13:05:08 +0100
On 17/12/2007, Torsten Schoenfeld <kaffeetisch gmx de> wrote:
> Sounds like a good idea. Can you take a stab at it? The formulations
> might make more sense to newcomers if they're written by someone who
> just recently learned about them.
Your explanations were excellent, so I'll copy them almost verbatim.
In the "MORE COOL CODE TRICKS" section, I would have:
GdkEvent
gtk2-perl does not have separate typemaps for every event type. There
is just one for GdkEvent which looks at the event's type at run-time
to decide how to represent it.
So, when binding a new widget, use GdkEvent* for the type of the
argument and insert casts to the specific event required by the widget
(e.g. GdkEventButton*) where needed. The xsub for
gtk_window_activate_key in Gtk2/xs/GtkWindow.xs might serve as an
example.
Structs
Unfortunately, there's no automatic way to convert raw structs to Perl
land. These are, however, best represented as hash references with a
key for each member. For an example of this kind of thing, take a look
at the way GtkStockItem is handled in Gtk2/xs/GtkStock.xs.
Once you have the converters newSVStructName and SVStructName, you can
take this one step further by installing a custom typemap for them:
"StructName * T_GPERL_GENERIC_WRAPPER" in a typemap file installed via
ExtUtils::Depends->add_typemaps in Makefile.PL -- like Gtk2 does for
gtk.typemap, for example.
> You're trying to use a GdkRectangle where a GdkRectangle* is wanted. I
> think this should work:
Thanks, Torsten and Muppet. I briefly had the same but discarded it
when I got the error message:
IImageTool.xs: In function `SvDrawSettings':
IImageTool.xs:62: warning: dereferencing `void *' pointer
IImageTool.xs:62: error: void value not ignored as it ought to be
if (svp) settings->zoom_rect = *SvGdkRectangle (*svp);
Which leaves me pretty much in the dark.
> By the way, why 'DrawSettings' instead of 'GdkPixbufDrawOpts'?
The most recent release has 'DrawSettings', but this has been replaced
in SVN with 'GdkPixbufDrawOpts'. This had me confused for a bit.
Sorry I don't seem to be quite as quick on the uptake as I should...
Jeff
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]