Hi,

Here's an update for gtkglarea binding.
OK to commit ?

MCArkan

-- 
Xavier Ordoquy
 "Complexity has nothing to do with intelligence.
  Simplicity does."
             (Larry Bossidy, CEO, Allied Signal)
? pygtk.patch
? pygtk/examples/gl/gtk
? pygtk/gtk/gen-gtkgl-types.c
Index: pygtk/configure.in
===================================================================
RCS file: /cvs/gnome/gnome-python/pygtk/configure.in,v
retrieving revision 1.61
diff -u -r1.61 configure.in
--- pygtk/configure.in  18 Mar 2002 01:42:49 -0000      1.61
+++ pygtk/configure.in  9 Apr 2002 20:36:07 -0000
@@ -13,6 +13,7 @@
 m4_define(atk_required_version,      1.0.0)
 m4_define(gtk_required_version,      2.0.0)
 m4_define(libglade_required_version, 1.99.9)
+m4_define(gtkgl_required_version,    1.99.0)
 
 AC_INIT(pygtk, pygtk_version,
         
[http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-python&component=pygtk])
@@ -92,8 +93,14 @@
 AC_SUBST(LIBGLADE_LIBS)
 AM_CONDITIONAL(BUILD_LIBGLADE, $build_libglade)
 
-dnl AM_PATH_GTKGL(build_gtkgl=true, build_gtkgl=false)
-dnl AM_CONDITIONAL(BUILD_GTKGL, $build_gtkgl)
+dnl gtkgl
+build_gtkgl=false
+PKG_CHECK_MODULES(GTKGL, gtkgl-2.0 >= gtkgl_required_version,
+  build_gtkgl=true,
+  build_gtkgl=false)
+AC_SUBST(GTKGL_CFLAGS)
+AC_SUBST(GTKGL_LIBS)
+AM_CONDITIONAL(BUILD_GTKGL, $build_gtkgl)
 
 
 AC_ARG_ENABLE(numpy,
Index: pygtk/examples/gl/cone.py
===================================================================
RCS file: /cvs/gnome/gnome-python/pygtk/examples/gl/cone.py,v
retrieving revision 1.1
diff -u -r1.1 cone.py
--- pygtk/examples/gl/cone.py   18 Jul 1999 09:45:10 -0000      1.1
+++ pygtk/examples/gl/cone.py   9 Apr 2002 20:36:08 -0000
@@ -1,5 +1,7 @@
+#!/usr/bin/env python2.2
+
 import gtk
-import gtkgl
+from gtk import gtkgl
 
 from OpenGL.GL import *
 from OpenGL.GLU import *
@@ -52,36 +54,36 @@
                glDepthFunc(GL_LESS)
                glEnable(GL_DEPTH_TEST)
 
-if not gtkgl.query():
-       print "OpenGL not supported.  Bye."
-       raise SystemExit
+#if not gtkgl.query():
+#      print "OpenGL not supported.  Bye."
+#      raise SystemExit
 
-win = gtk.GtkWindow()
+win = gtk.Window()
 win.connect("destroy", gtk.mainquit)
 win.set_title("Cone")
 
-table = gtk.GtkTable(2, 3)
+table = gtk.Table(2, 3)
 table.set_border_width(5)
 table.set_col_spacings(5)
 table.set_row_spacings(5)
 win.add(table)
 table.show()
 
-vadj = gtk.GtkAdjustment(250, 0, 360, 5, 5, 0)
-vscale = gtk.GtkVScale(vadj)
+vadj = gtk.Adjustment(250, 0, 360, 5, 5, 0)
+vscale = gtk.VScale(vadj)
 table.attach(vscale, 1,2, 0,1, xoptions=gtk.FILL)
 vscale.show()
 
-hadj = gtk.GtkAdjustment(0, 0, 360, 5, 5, 0)
-hscale = gtk.GtkHScale(hadj)
+hadj = gtk.Adjustment(0, 0, 360, 5, 5, 0)
+hscale = gtk.HScale(hadj)
 table.attach(hscale, 0,1, 1,2, yoptions=gtk.FILL)
 hscale.show()
 
 vadj.connect("value_changed", vchanged)
 hadj.connect("value_changed", hchanged)
 
-glarea = gtkgl.GtkGLArea((gtkgl.RGBA, gtkgl.DOUBLEBUFFER, gtkgl.DEPTH_SIZE, 1))
-glarea.size(300, 300)
+glarea = gtkgl.GLArea((gtkgl.RGBA, gtkgl.DOUBLEBUFFER, gtkgl.DEPTH_SIZE, 1))
+glarea.set_size_request(300, 300)
 
 glarea.connect("realize", realise)
 glarea.connect("expose_event", redraw)
Index: pygtk/examples/gl/dots.py
===================================================================
RCS file: /cvs/gnome/gnome-python/pygtk/examples/gl/dots.py,v
retrieving revision 1.1
diff -u -r1.1 dots.py
--- pygtk/examples/gl/dots.py   18 Jul 1999 09:45:10 -0000      1.1
+++ pygtk/examples/gl/dots.py   9 Apr 2002 20:36:08 -0000
@@ -10,7 +10,7 @@
 from OpenGL.GL import *
 
 import gtk
-import gtkgl
+from gtk import gtkgl
 
 MY_LIST=1
 NUMDOTS = 500
@@ -96,13 +96,13 @@
 
 def main():
        global glarea, timer_id
-       win = gtk.GtkWindow()
+       win = gtk.Window()
        win.set_title("GL Dots")
        win.connect("destroy", gtk.mainquit)
        
-       glarea = gtkgl.GtkGLArea((gtkgl.RGBA, gtkgl.DOUBLEBUFFER))
-       glarea.add_events(gtk.GDK.BUTTON_PRESS_MASK)
-       glarea.size(300, 300)
+       glarea = gtkgl.GLArea((gtkgl.RGBA, gtkgl.DOUBLEBUFFER))
+       glarea.add_events(gtk.gdk.BUTTON_PRESS_MASK)
+       glarea.set_size_request(300, 300)
 
        setup_viewport()
        glarea.connect_after("size_allocate", reshape)
@@ -118,12 +118,12 @@
        gtk.mainloop()
        glarea.destroy()
 
-if gtkgl.query():
-       print "Use the mouse buttons to control some of the dots."
+#if gtkgl.query():
+#      print "Use the mouse buttons to control some of the dots."
 
-       main()
-else:
-       print "Your X server does not support GLX"
+main()
+#else:
+#      print "Your X server does not support GLX"
 
 
 
Index: pygtk/examples/gl/gears.py
===================================================================
RCS file: /cvs/gnome/gnome-python/pygtk/examples/gl/gears.py,v
retrieving revision 1.1
diff -u -r1.1 gears.py
--- pygtk/examples/gl/gears.py  18 Jul 1999 09:45:10 -0000      1.1
+++ pygtk/examples/gl/gears.py  9 Apr 2002 20:36:08 -0000
@@ -1,11 +1,11 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2.2
 
 # A translation of the gears demo that comes with mesa, modified to use
 # a few GtkHScale widgets for the rotation, rather than the keyboard.
 
 from OpenGL.GL import *
-import gtk
-import gtkgl
+import gobject, gtk
+from gtk import gtkgl
 
 import math
 
@@ -244,21 +244,20 @@
 
        glEnable( GL_NORMALIZE )
 
+#if not gtkgl.query():
+#      print "OpenGL not supported.  Bye."
+#      raise SystemExit
 
-if not gtkgl.query():
-       print "OpenGL not supported.  Bye."
-       raise SystemExit
-
-win = gtk.GtkWindow()
+win = gobject.new(gtk.Window,
+                 title='Gears')
 win.connect("destroy", gtk.mainquit)
-win.set_title("Gears")
 
-table = gtk.GtkTable(4, 2)
+table = gtk.Table(4, 2)
 win.add(table)
 table.show()
 
-glarea = gtkgl.GtkGLArea((gtkgl.RGBA, gtkgl.DEPTH_SIZE, 1, gtkgl.DOUBLEBUFFER))
-glarea.size(300, 300)
+glarea = gtkgl.GLArea((gtkgl.RGBA, gtkgl.DEPTH_SIZE, 1, gtkgl.DOUBLEBUFFER))
+glarea.set_size_request(300, 300)
 
 glarea.connect("realize", init)
 glarea.connect("size_allocate", reshape)
@@ -272,14 +271,14 @@
 for row, label, start, cb in ((1,'X Rotation', view_rotx, xchange),
                              (2,'Y Rotation', view_roty, ychange),
                              (3,'Z Rotation', view_rotz, zchange)):
-       l = gtk.GtkLabel(label)
+       l = gtk.Label(label)
        table.attach(l, 0,1, row,row+1, xoptions=0, yoptions=gtk.FILL)
        l.show()
 
-       adj = gtk.GtkAdjustment(start, 0, 360, 5, 5, 0)
+       adj = gtk.Adjustment(start, 0, 360, 5, 5, 0)
        adj.connect("value_changed", cb)
 
-       scale = gtk.GtkHScale(adj)
+       scale = gtk.HScale(adj)
        table.attach(scale, 1,2, row,row+1, yoptions=gtk.FILL)
        scale.show()
 
Index: pygtk/gtk/Makefile.am
===================================================================
RCS file: /cvs/gnome/gnome-python/pygtk/gtk/Makefile.am,v
retrieving revision 1.25
diff -u -r1.25 Makefile.am
--- pygtk/gtk/Makefile.am       13 Jan 2002 21:58:39 -0000      1.25
+++ pygtk/gtk/Makefile.am       9 Apr 2002 20:36:09 -0000
@@ -56,6 +56,22 @@
 defs_DATA += libglade.defs
 EXTRA_DIST += libglade.override
 
+# gtkgl module
+if BUILD_GTKGL
+gtkglmodule_la = gtkglmodule.la
+endif
+pygtkexec_LTLIBRARIES += $(gtkglmodule_la)
+gtkglmodule_la_CFLAGS = $(GTKGL_CFLAGS)
+gtkglmodule_la_LDFLAGS = -module -avoid-version \
+                        -export-symbols-regex initlibgtkgl
+gtkglmodule_la_LIBADD = $(GTKGL_LIBS)
+gtkglmodule_la_SOURCES = gtkglmodule.c
+libgtkgl.c: $(COMMONDEFS) gtkgl.override
+nodist_gtkglmodule_la_SOURCES = gtkgl.c
+CLEANFILES += gtkgl.c
+defs_DATA += gtkgl.defs
+EXTRA_DIST += gtkgl.override
+
 .defs.c:
        (cd $(srcdir) \
         && $(PYTHON) ../codegen/codegen.py \
@@ -67,4 +83,3 @@
            --prefix py$* $*.defs) > gen-$*.c \
        && cp gen-$*.c $*.c \
        && rm -f gen-$*.c
-
Index: pygtk/gtk/gtkgl.defs
===================================================================
RCS file: /cvs/gnome/gnome-python/pygtk/gtk/gtkgl.defs,v
retrieving revision 1.2
diff -u -r1.2 gtkgl.defs
--- pygtk/gtk/gtkgl.defs        26 Jun 2000 14:14:48 -0000      1.2
+++ pygtk/gtk/gtkgl.defs        9 Apr 2002 20:36:09 -0000
@@ -1,198 +1,199 @@
 ;; -*- scheme -*-
+
 ; object definitions ...
-(object GLArea
-  (in-module Gtk)
-  (parent DrawingArea (Gtk))
-  (c-name GtkGLArea)
+(define-object GLArea
+  (in-module "Gtk")
+  (parent "GtkDrawingArea")
+  (c-name "GtkGLArea")
+  (gtype-id "GTK_TYPE_GL_AREA")
 )
 
 ;; Enumerations and flags ...
 
+;; From /opt/gnome2/include/gtkgl-2.0/gtkgl/gdkgl.h
 
-;; From /usr/include/gtkgl/gdkgl.h
-
-(function query
-  (c-name gdk_gl_query)
-  (return-type gint)
+(define-function gdk_gl_get_info
+  (c-name "gdk_gl_get_info")
+  (return-type "gchar*")
 )
 
-(function get_info
-  (c-name gdk_gl_get_info)
-  (return-type gchar*)
+(define-function gdk_gl_choose_visual
+  (c-name "gdk_gl_choose_visual")
+  (return-type "GdkVisual*")
+  (parameters
+    '("int*" "attrlist")
+  )
 )
 
-(function choose_visual
-  (c-name gdk_gl_choose_visual)
-  (return-type GdkVisual*)
-  (parameter (type-and-name int* attrlist))
+(define-function gdk_gl_get_config
+  (c-name "gdk_gl_get_config")
+  (return-type "int")
+  (parameters
+    '("GdkVisual*" "visual")
+    '("int" "attrib")
+  )
 )
 
-(function get_config
-  (c-name gdk_gl_get_config)
-  (return-type int)
-  (parameter (type-and-name GdkVisual* visual))
-  (parameter (type-and-name int attrib))
+(define-function gdk_gl_context_new
+  (c-name "gdk_gl_context_new")
+  (return-type "GdkGLContext*")
+  (parameters
+    '("GdkVisual*" "visual")
+  )
 )
 
-(function gdk_gl_context_new
-  (c-name gdk_gl_context_new)
-  (return-type GdkGLContext*)
-  (parameter (type-and-name GdkVisual* visual))
+(define-function gdk_gl_context_share_new
+  (c-name "gdk_gl_context_share_new")
+  (return-type "GdkGLContext*")
+  (parameters
+    '("GdkVisual*" "visual")
+    '("GdkGLContext*" "sharelist")
+    '("gint" "direct")
+  )
 )
 
-(function gdk_gl_context_share_new
-  (c-name gdk_gl_context_share_new)
-  (return-type GdkGLContext*)
-  (parameter (type-and-name GdkVisual* visual))
-  (parameter (type-and-name GdkGLContext* sharelist))
-  (parameter (type-and-name gint direct))
+(define-function gdk_gl_context_attrlist_share_new
+  (c-name "gdk_gl_context_attrlist_share_new")
+  (return-type "GdkGLContext*")
+  (parameters
+    '("int*" "attrlist")
+    '("GdkGLContext*" "sharelist")
+    '("gint" "direct")
+  )
 )
 
-(function gdk_gl_context_attrlist_share_new
-  (c-name gdk_gl_context_attrlist_share_new)
-  (return-type GdkGLContext*)
-  (parameter (type-and-name int* attrlist))
-  (parameter (type-and-name GdkGLContext* sharelist))
-  (parameter (type-and-name gint direct))
+(define-method ref
+  (of-object "GdkGLContext")
+  (c-name "gdk_gl_context_ref")
+  (return-type "GdkGLContext*")
 )
 
-(method ref
-  (of-object GLContext (Gdk))
-  (c-name gdk_gl_context_ref)
-  (return-type GdkGLContext*)
+(define-method unref
+  (of-object "GdkGLContext")
+  (c-name "gdk_gl_context_unref")
+  (return-type "none")
 )
 
-(method unref
-  (of-object GLContext (Gdk))
-  (c-name gdk_gl_context_unref)
-  (return-type none)
+(define-function gdk_gl_make_current
+  (c-name "gdk_gl_make_current")
+  (return-type "gint")
+  (parameters
+    '("GdkDrawable*" "drawable")
+    '("GdkGLContext*" "context")
+  )
 )
 
-(function gdk_gl_make_current
-  (c-name gdk_gl_make_current)
-  (return-type gint)
-  (parameter (type-and-name GdkDrawable* drawable))
-  (parameter (type-and-name GdkGLContext* context))
+(define-function gdk_gl_swap_buffers
+  (c-name "gdk_gl_swap_buffers")
+  (return-type "none")
+  (parameters
+    '("GdkDrawable*" "drawable")
+  )
 )
 
-(function gdk_gl_swap_buffers
-  (c-name gdk_gl_swap_buffers)
-  (return-type none)
-  (parameter (type-and-name GdkDrawable* drawable))
+(define-function gdk_gl_wait_gdk
+  (c-name "gdk_gl_wait_gdk")
+  (return-type "none")
 )
 
-(function wait_gdk
-  (c-name gdk_gl_wait_gdk)
-  (return-type none)
+(define-function gdk_gl_wait_gl
+  (c-name "gdk_gl_wait_gl")
+  (return-type "none")
 )
 
-(function wait_gl
-  (c-name gdk_gl_wait_gl)
-  (return-type none)
+(define-function gdk_gl_pixmap_new
+  (c-name "gdk_gl_pixmap_new")
+  (return-type "GdkGLPixmap*")
+  (parameters
+    '("GdkVisual*" "visual")
+    '("GdkPixmap*" "pixmap")
+  )
 )
 
-(function gdk_gl_pixmap_new
-  (c-name gdk_gl_pixmap_new)
-  (return-type GdkGLPixmap*)
-  (parameter (type-and-name GdkVisual* visual))
-  (parameter (type-and-name GdkPixmap* pixmap))
+(define-method ref
+  (of-object "GdkGLPixmap")
+  (c-name "gdk_gl_pixmap_ref")
+  (return-type "GdkGLPixmap*")
 )
 
-(method ref
-  (of-object GLPixmap (Gdk))
-  (c-name gdk_gl_pixmap_ref)
-  (return-type GdkGLPixmap*)
+(define-method unref
+  (of-object "GdkGLPixmap")
+  (c-name "gdk_gl_pixmap_unref")
+  (return-type "none")
 )
 
-(method unref
-  (of-object GLPixmap (Gdk))
-  (c-name gdk_gl_pixmap_unref)
-  (return-type none)
+(define-method make_current
+  (of-object "GdkGLPixmap")
+  (c-name "gdk_gl_pixmap_make_current")
+  (return-type "gint")
+  (parameters
+    '("GdkGLContext*" "context")
+  )
 )
 
-(method make_current
-  (of-object GLPixmap (Gdk))
-  (c-name gdk_gl_pixmap_make_current)
-  (return-type gint)
-  (parameter (type-and-name GdkGLContext* context))
+(define-function gdk_gl_use_gdk_font
+  (c-name "gdk_gl_use_gdk_font")
+  (return-type "none")
+  (parameters
+    '("GdkFont*" "font")
+    '("int" "first")
+    '("int" "count")
+    '("int" "list_base")
+  )
 )
 
-(function use_gdk_font
-  (c-name gdk_gl_use_gdk_font)
-  (return-type none)
-  (parameter (type-and-name GdkFont* font))
-  (parameter (type-and-name int first))
-  (parameter (type-and-name int count))
-  (parameter (type-and-name int list_base))
-)
 
 
+;; From /opt/gnome2/include/gtkgl-2.0/gtkgl/gtkglarea.h
 
-;; From /usr/include/gtkgl/gtkglarea.h
-
-(function gtk_gl_area_get_type
-  (c-name gtk_gl_area_get_type)
-  (return-type GtkType)
+(define-function gtk_gl_area_get_type
+  (c-name "gtk_gl_area_get_type")
+  (return-type "GtkType")
 )
 
-(function gtk_gl_area_new
-  (c-name gtk_gl_area_new)
-  (is-constructor-of GtkGLArea)
-  (return-type GtkWidget*)
-  (parameter (type-and-name int* attrList))
+(define-function gtk_gl_area_new
+  (c-name "gtk_gl_area_new")
+  (return-type "GtkWidget*")
+  (parameters
+    '("int*" "attrList")
+  )
 )
 
-(function gtk_gl_area_share_new
-  (c-name gtk_gl_area_share_new)
+(define-function gtk_gl_area_share_new
+  (c-name "gtk_gl_area_share_new")
   (is-constructor-of GtkGLArea)
-  (return-type GtkWidget*)
-  (parameter (type-and-name int* attrList))
-  (parameter (type-and-name GtkGLArea* share))
-)
-
-(method new_vargs
-  (of-object GLArea (Gtk))
-  (c-name gtk_gl_area_new_vargs)
-  (return-type GtkWidget*)
-  (varargs t)
-)
-
-(method make_current
-  (of-object GLArea (Gtk))
-  (c-name gtk_gl_area_make_current)
-  (return-type gint)
-)
-
-(method begingl
-  (of-object GLArea (Gtk))
-  (c-name gtk_gl_area_begingl)
-  (return-type gint)
-)
-
-(method endgl
-  (of-object GLArea (Gtk))
-  (c-name gtk_gl_area_endgl)
-  (return-type none)
-)
-
-(method swapbuffers
-  (of-object GLArea (Gtk))
-  (c-name gtk_gl_area_swapbuffers)
-  (return-type none)
-)
-
-(method swap_buffers
-  (of-object GLArea (Gtk))
-  (c-name gtk_gl_area_swap_buffers)
-  (return-type none)
-)
-
-(method size
-  (of-object GLArea (Gtk))
-  (c-name gtk_gl_area_size)
-  (return-type none)
-  (parameter (type-and-name gint width))
-  (parameter (type-and-name gint height))
+  (return-type "GtkWidget*")
+  (parameters
+    '("int*" "attrList")
+    '("GtkGLArea*" "share")
+  )
+)
+
+(define-method new_vargs
+  (of-object "GtkGLArea")
+  (c-name "gtk_gl_area_new_vargs")
+  (return-type "GtkWidget*")
+  (parameters
+  )
+  (varargs #t)
+)
+
+(define-method make_current
+  (of-object "GtkGLArea")
+  (c-name "gtk_gl_area_make_current")
+  (return-type "gint")
+)
+
+(define-method endgl
+  (of-object "GtkGLArea")
+  (c-name "gtk_gl_area_endgl")
+  (return-type "none")
+)
+
+(define-method swap_buffers
+  (of-object "GtkGLArea")
+  (c-name "gtk_gl_area_swap_buffers")
+  (return-type "none")
 )
 
 
Index: pygtk/gtk/gtkgl.override
===================================================================
RCS file: /cvs/gnome/gnome-python/pygtk/gtk/gtkgl.override,v
retrieving revision 1.4
diff -u -r1.4 gtkgl.override
--- pygtk/gtk/gtkgl.override    22 Jan 2002 08:45:38 -0000      1.4
+++ pygtk/gtk/gtkgl.override    9 Apr 2002 20:36:09 -0000
@@ -1,29 +1,19 @@
 /* -*- Mode: C; c-basic-offset: 4 -*- */
 %%
 headers
-#define NO_IMPORT_PYGTK
+#define NO_IMPORT_PYGOBJECT
+#include "pygobject.h"
 #include "pygtk.h"
 
 #include <gtkgl/gtkglarea.h>
-
-static PyExtensionClass *_PyGtkDrawingArea_Type;
-#define PyGtkDrawingArea_Type (*_PyGtkDrawingArea_Type)
+#include <gtk/gtk.h>
 
 %%
-init
-{
-    PyObject *pygtk = PyImport_ImportModule("gtk._gtk");
-    if (pygtk != NULL) {
-       PyObject *module_dict = PyModule_GetDict(pygtk);
-
-       _PyGtkDrawingArea_Type =
-           (PyExtensionClass *)PyDict_GetItemString(module_dict,
-                                                    "GtkDrawingArea");
-    } else {
-       Py_FatalError("could not import gtk._gtk");
-       return;
-    }
-}
+modulename gtkgl
+%%
+import gobject.GObject as PyGObject_Type
+import gtk.gdk.Visual as PyGdkVisual_Type
+import gtk.DrawingArea as PyGtkDrawingArea_Type
 %%
 ignore
   gtk_gl_area_get_type
@@ -48,7 +38,7 @@
 %%
 override gtk_gl_area_share_new kwargs
 static PyObject *
-_wrap_gtk_gl_area_share_new(PyGtk_Object *self, PyObject *args,
+_wrap_gtk_gl_area_share_new(PyGObject *self, PyObject *args,
                            PyObject *kwargs)
 {
     char *kwlist[] = { "attr_list", "share", NULL };
@@ -59,10 +49,10 @@
 
     if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|O:GtkGLArea.__init__",
                                     kwlist, &py_attr_list, &py_share))
-       return NULL;
+       return -1;
     if (!PySequence_Check(py_attr_list)) {
        PyErr_SetString(PyExc_TypeError, "attr_list must be a sequence");
-       return NULL;
+       return -1;
     }
     len = PySequence_Length(py_attr_list);
     attr_list = g_new(gint, len+1);
@@ -73,31 +63,35 @@
        if (!PyInt_Check(item)) {
            g_free(attr_list);
            PyErr_SetString(PyExc_TypeError, "attr_list items must be ints");
-           return NULL;
+           return -1;
        }
        attr_list[i] = PyInt_AsLong(item);
     }
     attr_list[len] = GDK_GL_NONE; /* sentinel */
-    if (PyGtk_Check(py_share, &PyGtkGLArea_Type))
-       share = GTK_GL_AREA(PyGtk_Get(py_share));
-    else if (py_share != Py_None) {
+
+    if (!pygobject_check(py_share, &PyGtkGLArea_Type)) {
+       if ( pygobject_get(py_share) != NULL )
+           share = GTK_GL_AREA(pygobject_get(py_share));
+    } else if (py_share != Py_None) {
        PyErr_SetString(PyExc_TypeError, "share must be a GtkGLArea or None");
-       return NULL;
+       return -1;
     }
-    self->obj = (GtkObject *)gtk_gl_area_share_new(attr_list, share);
+
+    pygobject_get(self) = (GObject *)gtk_gl_area_share_new(attr_list, share);
     if (!self->obj) {
        PyErr_SetString(PyExc_RuntimeError,
                        "could not create GtkGLArea object");
-       return NULL;
+       return -1;
     }
-    pyg_register_wrapper((PyObject *)self);
-    Py_INCREF(Py_None);
-    return Py_None;
+    pygobject_register_wrapper((PyObject *)self);
+    //Py_INCREF(Py_None);
+    //return Py_None;
+    return 0;
 }
 %%
 override gdk_gl_wait_gdk noargs
 static PyObject *
-_wrap_gdk_gl_wait_gdk(PyObject *self)
+_wrap_gdk_gl_wait_gdk(PyGObject *self)
 {
     pyg_unblock_threads();
     gdk_gl_wait_gdk();
@@ -108,7 +102,7 @@
 %%
 override gdk_gl_wait_gl noargs
 static PyObject *
-_wrap_gdk_gl_wait_gl(PyObject *self)
+_wrap_gdk_gl_wait_gl(PyGObject *self)
 {
     pyg_unblock_threads();
     gdk_gl_wait_gl();
Index: pygtk/gtk/gtkglmodule.c
===================================================================
RCS file: /cvs/gnome/gnome-python/pygtk/gtk/gtkglmodule.c,v
retrieving revision 1.2
diff -u -r1.2 gtkglmodule.c
--- pygtk/gtk/gtkglmodule.c     26 Jun 2000 14:14:48 -0000      1.2
+++ pygtk/gtk/gtkglmodule.c     9 Apr 2002 20:36:09 -0000
@@ -3,7 +3,8 @@
 #  include "config.h"
 #endif
 #include <Python.h>
-#include <pygtk.h>
+//#include <pygtk.h>
+#include <pygobject.h>
 
 #include <gtkgl/gtkglarea.h>
 
@@ -11,14 +12,15 @@
 extern PyMethodDef pygtkgl_functions[];
 
 DL_EXPORT(void)
-initgl(void)
+initgtkgl(void)
 {
     PyObject *m, *d, *c;
 
-    m = Py_InitModule("gl", pygtkgl_functions);
-    d = PyModule_GetDict(m);
+    init_pygobject();
+    //init_pygtk();
 
-    init_pygtk();
+    m = Py_InitModule("gtkgl", pygtkgl_functions);
+    d = PyModule_GetDict(m);
 
     pygtkgl_register_classes(d);
 

Reply via email to