=== added file 'libs/pypgm/pgm/pgmgtk.defs' --- libs/pypgm/pgm/pgmgtk.defs 1970-01-01 00:00:00 +0000 +++ libs/pypgm/pgm/pgmgtk.defs 2007-12-17 10:30:01 +0000 @@ -0,0 +1,25 @@ +;; -*- mode: scheme; coding: utf-8 -*- + +; object definitions + +(define-object PgmGtk + (in-module "PgmGtk") + (parent "GtkSocket") + (c-name "PgmGtk") + (gtype-id "PGM_TYPE_GTK") +) + +(define-function pgm_gtk_new + (c-name "pgm_gtk_new") + (is-constructor-of "PgmGtk") + (return-type "GtkWidget*") +) + +(define-method set_viewport + (of-object "PgmGtk") + (c-name "pgm_gtk_set_viewport") + (return-type "gboolean") + (parameters + '("PgmViewport*" "viewport") + ) +) === added file 'libs/pypgm/pgm/pgmgtk.override' --- libs/pypgm/pgm/pgmgtk.override 1970-01-01 00:00:00 +0000 +++ libs/pypgm/pgm/pgmgtk.override 2007-12-17 10:30:01 +0000 @@ -0,0 +1,10 @@ +%% +headers +#define NO_IMPORT_PYGOBJECT +#include "pygobject.h" +#include +#include + +%% +import pgm.Viewport as PyPgmViewport_Type +import gtk.Socket as PyGtkSocket_Type === modified file 'libs/pypgm/pgm/Makefile.am' --- libs/pypgm/pgm/Makefile.am 2007-08-02 18:21:17 +0000 +++ libs/pypgm/pgm/Makefile.am 2007-12-17 10:30:01 +0000 @@ -32,11 +32,38 @@ CLEANFILES = pgm.c +if USE_GTK_WIDGET +pyexec_LTLIBRARIES += _pgmgtkmodule.la + +_pgmgtkmodule_la_LDFLAGS = \ + @PY_PGM_LDFLAGS@ \ + -module -avoid-version \ + -export-symbols-regex init_pgmgtk + +_pgmgtkmodule_la_CFLAGS = \ + @PY_PGM_CFLAGS@ \ + @GTK_CFLAGS@ \ + -I$(top_builddir)/libs + +_pgmgtkmodule_la_LIBADD = \ + @PY_PGM_LIBS@ \ + @GTK_LIBS@ \ + $(top_builddir)/libs/pgm/gtk/libpigment-gtk-@PGM_MAJORMINOR@.la + +_pgmgtkmodule_la_SOURCES = pgmgtkmodule.c + +nodist__pgmgtkmodule_la_SOURCES = pgmgtk.c + +pgmgtk.c: pgmgtk.defs + +EXTRA_DIST += pgmgtk.defs +endif + LIBTOOL=$(top_builddir)/libtool - .defs.c: ($(PYTHON) $(top_srcdir)/libs/codegen/codegen.py \ + --register $(srcdir)/pgm.defs \ --override $(srcdir)/$*.override \ --prefix py$* $(srcdir)/$*.defs) > gen-$*.c \ && cp gen-$*.c $*.c \ === modified file 'libs/pypgm/pgm/__init__.py' --- libs/pypgm/pgm/__init__.py 2007-07-03 17:35:49 +0000 +++ libs/pypgm/pgm/__init__.py 2007-12-17 10:30:01 +0000 @@ -43,3 +43,11 @@ return getattr(module, attr) keysyms = LazyModule('keysyms', locals()) + +try: + # FIXME: this is suboptimal, we load pygtk even if the user doesn't need it. + # Maybe building the module as _gtkmodule.so isn't that bad after all. + import _pgmgtk as gtk + sys.modules['pgm.gtk'] = gtk +except ImportError: + pass