summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Henstridge <james@daa.com.au>2001-07-03 02:52:05 +0000
committerJames Henstridge <jamesh@src.gnome.org>2001-07-03 02:52:05 +0000
commit08789548c7dcf822eae6b21116ed505e1c6b7f42 (patch)
tree281a8a5de01b7d2942642663b21d78c1b9cad428
parentf75d268b4d693a201e7fdbc590f1a30543e5e763 (diff)
downloadpygtk-08789548c7dcf822eae6b21116ed505e1c6b7f42.tar.gz
add pygtk-codegen-2.0 to list of files to be processed.
2001-07-03 James Henstridge <james@daa.com.au> * configure.in (AC_OUTPUT): add pygtk-codegen-2.0 to list of files to be processed. * codegen/codegen.py (register_types): fix typo s/parser/defsparser/ * gtk/Makefile.am ($(srcdir)/gtk.c): register types from pango.defs. * gtk/gtk.override (init): import the PangoContext and PangoLayout classes from the pango module.
-rw-r--r--ChangeLog13
-rw-r--r--Makefile.am7
-rw-r--r--codegen/.cvsignore1
-rw-r--r--codegen/Makefile.am4
-rw-r--r--codegen/codegen.py2
-rw-r--r--configure.in2
-rw-r--r--gtk/Makefile.am31
-rw-r--r--gtk/gtk.override26
8 files changed, 61 insertions, 25 deletions
diff --git a/ChangeLog b/ChangeLog
index 683619d7..1d78604b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,18 @@
2001-07-03 James Henstridge <james@daa.com.au>
+ * configure.in (AC_OUTPUT): add pygtk-codegen-2.0 to list of files
+ to be processed.
+
+ * codegen/codegen.py (register_types): fix typo s/parser/defsparser/
+
+ * gtk/Makefile.am ($(srcdir)/gtk.c): register types from
+ pango.defs.
+
+ * gtk/gtk.override (init): import the PangoContext and PangoLayout
+ classes from the pango module.
+
+2001-07-02 James Henstridge <james@daa.com.au>
+
* pango.defs: add is-constructor-of arguments to some defs, and
add fields to some object and boxed defs.
diff --git a/Makefile.am b/Makefile.am
index f5fef185..5061fcbb 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -30,7 +30,9 @@ pangomodule_la_LIBADD = $(PANGO_LIBS)
$(srcdir)/pango.c: $(srcdir)/pango.defs $(srcdir)/pango.override
-chmod a+w $(srcdir)
cd $(srcdir) \
- && $(PYTHON) codegen/codegen.py -o pango.override -p pypango pango.defs > gen-pango.c \
+ && $(PYTHON) codegen/codegen.py \
+ --override pango.override \
+ --prefix pypango pango.defs > gen-pango.c \
&& cp gen-pango.c pango.c \
&& rm -f gen-pango.c
@@ -41,6 +43,9 @@ noinst_PYTHON = ltihooks.py
dist-hook:
-rm -f $(distdir)/pango.c
+defsdir = $(pkgdatadir)/2.0/defs
+defs_DATA = pango.defs
+
EXTRA_DIST = \
pygtk.spec \
MAPPING \
diff --git a/codegen/.cvsignore b/codegen/.cvsignore
index 9d478f8e..da730506 100644
--- a/codegen/.cvsignore
+++ b/codegen/.cvsignore
@@ -3,4 +3,5 @@ Makefile.in
*.pyc
*.pyo
*.defs
+pygtk-codegen-2.0
diff --git a/codegen/Makefile.am b/codegen/Makefile.am
index 050cf1cd..7f5d88b3 100644
--- a/codegen/Makefile.am
+++ b/codegen/Makefile.am
@@ -1,4 +1,6 @@
+bin_SCRIPTS = pygtk-codegen-2.0
+
codegendir = $(pkgdatadir)/2.0/codegen
codegen_PYTHON = \
@@ -15,4 +17,4 @@ codegen_PYTHON = \
override.py \
scmexpr.py
-EXTRA_DIST = README.defs
+EXTRA_DIST = README.defs pygtk-codegen-2.0.in
diff --git a/codegen/codegen.py b/codegen/codegen.py
index b5f4113c..573246b5 100644
--- a/codegen/codegen.py
+++ b/codegen/codegen.py
@@ -775,7 +775,7 @@ if __name__ == '__main__':
elif opt in ('-p', '--prefix'):
prefix = arg
elif opt in ('-r', '--register'):
- p = parser.DefsParser(arg)
+ p = defsparser.DefsParser(arg)
p.startParsing()
register_types(p)
del p
diff --git a/configure.in b/configure.in
index dd563973..121908a7 100644
--- a/configure.in
+++ b/configure.in
@@ -67,6 +67,6 @@ if test "x$enable_numpy" != xno; then
CPPFLAGS="$save_CPPFLAGS"
fi
-AC_OUTPUT(Makefile codegen/Makefile gtk/Makefile)
+AC_OUTPUT(Makefile codegen/Makefile gtk/Makefile codegen/pygtk-codegen-2.0)
diff --git a/gtk/Makefile.am b/gtk/Makefile.am
index 2522073c..df96cd3f 100644
--- a/gtk/Makefile.am
+++ b/gtk/Makefile.am
@@ -1,6 +1,5 @@
-INCLUDES = -I$(top_srcdir) $(PYTHON_INCLUDES) $(GTK_CFLAGS) \
- $(GDK_IMLIB_CFLAGS) $(LIBGLADE_CFLAGS) $(GTKGL_CFLAGS) -Wall
+INCLUDES = -I$(top_srcdir) $(PYTHON_INCLUDES) $(GTK_CFLAGS) -Wall
pygtkdir = $(pythondir)/gtk
pygtk_PYTHON = __init__.py GTK.py GDK.py
@@ -28,28 +27,18 @@ $(srcdir)/gtk.c: $(srcdir)/gtk.defs $(srcdir)/gdk.defs \
$(srcdir)/gtk-extrafuncs.defs $(srcdir)/gtk.override
-chmod a+w $(srcdir)
cd $(srcdir) \
- && $(PYTHON) ../codegen/codegen.py -o gtk.override -p pygtk gtk.defs > gen-gtk.c \
+ && $(PYTHON) ../codegen/codegen.py \
+ --register ../pango.defs \
+ --override gtk.override \
+ --prefix pygtk gtk.defs > gen-gtk.c \
&& cp gen-gtk.c gtk.c \
&& rm -f gen-gtk.c
-$(srcdir)/libglade.c: $(srcdir)/libglade.defs $(srcdir)/libglade.override
- -chmod a+w $(srcdir)
- cd $(srcdir) \
- && $(PYTHON) ../codegen/codegen.py -r gtk.defs -o libglade.override -p libglade libglade.defs > gen-libglade.c \
- && cp gen-libglade.c libglade.c \
- && rm -f gen-libglade.c
-
-$(srcdir)/gtkgl.c: $(srcdir)/gtkgl.defs $(srcdir)/gtkgl.override
- -chmod a+w $(srcdir)
- cd $(srcdir) \
- && $(PYTHON) ../codegen/codegen.py -r gtk.defs -o gtkgl.override -p pygtkgl gtkgl.defs > gen-gtkgl.c \
- && cp gen-gtkgl.c gtkgl.c \
- && rm -f gen-gtkgl.c
-
-
# a hack so that gtk.c is not included in the final package.
dist-hook:
- -rm -f $(distdir)/gtk.c $(distdir)/libglade.c $(distdir)/gtkgl.c
+ -rm -f $(distdir)/gtk.c
+
+defsdir = $(pkgdatadir)/2.0/defs
+defs_DATA = gtk.defs gtk-extrafuncs.defs gdk.defs
-EXTRA_DIST = gtk.defs gtk-extrafuncs.defs gdk.defs gtk.override \
- libglade.defs libglade.override gtkgl.defs gtkgl.override
+EXTRA_DIST = gtk.defs gtk-extrafuncs.defs gdk.defs gtk.override
diff --git a/gtk/gtk.override b/gtk/gtk.override
index 0e1f1790..149afc92 100644
--- a/gtk/gtk.override
+++ b/gtk/gtk.override
@@ -20,10 +20,19 @@ headers
static PyExtensionClass *_PyGObject_Type;
#define PyGObject_Type (*_PyGObject_Type)
+static PyExtensionClass *_PyPangoContext_Type;
+#define PyPangoContext_Type (*_PyPangoContext_Type)
+static PyExtensionClass *_PyPangoFont_Type;
+#define PyPangoFont_Type (*_PyPangoFont_Type)
+static PyExtensionClass *_PyPangoLayout_Type;
+#define PyPangoLayout_Type (*_PyPangoLayout_Type)
+
%%
init
{
PyObject *pygobject = PyImport_ImportModule("gobject");
+ PyObject *pypango;
+
if (pygobject != NULL) {
PyObject *module_dict = PyModule_GetDict(pygobject);
@@ -33,6 +42,23 @@ init
Py_FatalError("could not import gobject");
return;
}
+ pypango = PyImport_ImportModule("pango");
+ if (pypango != NULL) {
+ PyObject *module_dict = PyModule_GetDict(pypango);
+
+ _PyPangoContext_Type =
+ (PyExtensionClass *)PyDict_GetItemString(module_dict,
+ "PangoContext");
+ _PyPangoFont_Type =
+ (PyExtensionClass *)PyDict_GetItemString(module_dict,
+ "PangoFont");
+ _PyPangoLayout_Type =
+ (PyExtensionClass *)PyDict_GetItemString(module_dict,
+ "PangoLayout");
+ } else {
+ Py_FatalError("could not import pango");
+ return;
+ }
}
%%