rendered paste body=== 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 <pgm/pgm.h>
+#include <pgm/gtk/pgmgtk.h>
+
+%%
+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