[pygtk] pygtk wrapper generation
Lauro
lauromoura at gmail.com
Wed May 23 07:47:15 WST 2007
On 5/22/07, Glenn Pierce <glennpierce at gmail.com> wrote:
> Hi I am trying to generate a wrapper for gtkimageviewer and I am following
> Ross Burton's excellent tutorial.
>
> I have created the def file and my override file looks like
>
> /* -*- Mode: C; c-basic-offset: 4 -*- */
> %%
> headers
> #include <Python.h>
>
> #include "pygobject.h"
> #include "gtk_image_viewer.h"
> %%
> modulename imageviewer
> %%
> import gtk.Widget as PyGtkWidget_Type
> import gtk.gdk.Pixbuf as PyGdkPixbuf_Type
> import gtk.Adjustment as PyGtkAdjustment_Type
> %%
> ignore-glob
> *_get_type
> %%
>
> However, When I try to generate the wrapper using pygtk-codegen-2.0
> It wapper code does not contains my headers or the import statements.
> The output I get from pygtk-codegen-2.0 is below.
> My def file, override file and Makefile are located at
> http://193.61.195.247:82/imageviewer.tar.gz
>
Believe or not, your override file was in DOS format. I used "set
fileformat=unix" on VIm and it worked.
> Could it be that the Coverage of the methods is only 86% ?
>
> pygtk-codegen-2.0 --prefix imageviewer \
> --register `pkg-config --variable=defsdir pygtk-2.0`/gdk-types.defs
> \
> --register `pkg-config --variable=defsdir pygtk-2.0`/gtk-types.defs
> \
> --override imageviewer.override \
> imageviewer.defs > imageviewer.c
> Warning: generating old-style constructor for:gtk_image_viewer_new
> Could not write method GtkImageViewer.get_scale: No ArgType for double*
> Could not write method GtkImageViewer.get_transform: No ArgType for double*
> Could not write method
> GtkImageViewer.img_coord_to_canv_coord: No ArgType for
> double*
> Could not write method
> GtkImageViewer.canv_coord_to_img_coord: No ArgType for
> double*
> Could not write method GtkImageViewer.set_transfer_map: No
> ArgType for guint8*
> Warning: Constructor for GtkImageViewer needs to be updated to new API
> See
> http://live.gnome.org/PyGTK_2fWhatsNew28#update-constructors
> ***INFO*** The coverage of global functions is 100.00% (2/2)
> ***INFO*** The coverage of methods is 86.11% (31/36)
> ***INFO*** There are no declared virtual proxies.
> ***INFO*** There are no declared virtual accessors.
> ***INFO*** There are no declared interface proxies.
>
> Any help would be great.
>
AFAIK, codegen doesn't handle pointers to ints and doubles, GLists,
etc. . So these functions need to be implemented in the override file.
--
Lauro ("lmoura" on Freenode)
CIn/UFPE
http://lauro.wordpress.com
More information about the pygtk
mailing list