[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
Re: GtkImageView
- From: "Jeffrey Ratcliffe" <jeffrey ratcliffe gmail com>
- To: muppet <scott asofyet org>
- Cc: gtk2-perl List <gtk-perl-list gnome org>
- Subject: Re: GtkImageView
- Date: Fri, 15 Feb 2008 23:47:09 +0100
On 15/02/2008, muppet <scott asofyet org> wrote:
> It's a struct (data structure), not an enum (enumeration of constant
> values).
Yes, of course it is. Fingers getting ahead of the brain.
> You've marked your newSVGdkPixbufDrawOpts() and SvGdkPixbufDrawOpts()
> functions with the C storage class keyword "static", which means that
> the function is visible only within that C file. Since you need to
> share the functions between two files, remove the static keyword from
> those functions in one file, and remove the definitions altogether
> from the other file.
Ah. Thanks.
> Still another option, more correct but more work, is to register a
> GBoxed wrapper for the structure. Then everything will Just Wonk.
OK. I think I have got the GBoxed wrappers working.
> Torsten recently added to Glib some useful functions for this purpose,
> including gperl_sv_is_hash_ref():
That would be excellent, apart from it being too new to be in any
current distribution.
> Blessing the hash would help you do even more validation, but is not
> strictly necessary. If your user is allowed to supply a plain old
> hash of his own making, then requiring a blessed hash will be
> breakage, but if the user is supposed to use one of your methods to
> create one of these things, then blessing the hash is A Very Good Idea.
If I wanted to bless the hash, I assume I would have to do it in the
SV *
newSVGdkPixbufDrawOpts
function, and therefore above the MODULE, which is pure C, and
ST(0) = sv_newmortal();
sv_setref_pv(ST(0), "Gtk2::Gdk::Pixbuf::Draw::Opts", (void*)RETVAL);
isn't going to work. How do I do it?
Lastly, I am getting
IImageTool.c: In function 'XS_Gtk2__ImageView__Tool_paint_image':
IImageTool.c:96: warning: initialization makes pointer from integer
without a cast
which is
GdkPixbufDrawOpts * opts = SvGdkPixbufDrawOpts (ST(1));
as SvGdkPixbufDrawOpts is defined as a GdkPixbufDrawOpts * in
DrawCache.xs, I assume it is saying that ST(1) isn't SV *. But I don't
see how to fix it.
Regards
Jeff
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]