diff options
-rw-r--r-- | ChangeLog | 10 | ||||
-rw-r--r-- | Makefile.am | 2 | ||||
-rw-r--r-- | NEWS | 8 | ||||
-rw-r--r-- | configure.in | 2 | ||||
-rw-r--r-- | libglade.py | 5 | ||||
-rw-r--r-- | libglademodule.c | 72 | ||||
-rw-r--r-- | pygtk.spec | 2 |
7 files changed, 97 insertions, 4 deletions
@@ -1,3 +1,13 @@ +1999-09-30 James Henstridge <james@daa.com.au> + + * pygtk.spec: updated spec file. + + * NEWS: added news items + + * configure.in: updated version number. + + * libglademodule.c: don't segfault when a widget name does not exist. + 1999-09-28 James Henstridge <james@daa.com.au> * libglade.py: enable gnome functionality if it is available. diff --git a/Makefile.am b/Makefile.am index 653ae61c..c08bd1c6 100644 --- a/Makefile.am +++ b/Makefile.am @@ -62,7 +62,7 @@ GTKMODULE_DEFS = generate/gtk.defs \ generate/gtkmenus.defs generate/gtkmisc.defs \ generate/gtkranges.defs generate/gtkdnd.defs -$(srcdir)/gtkmodule_defs.c $(srcdir)/gtkmodule_impl.c $(srcdir)/gtkgl_defs.c $(srcdir)/gtkgl_impl.c: $(srcdir)/mkgtk.py $(GENERATE) $(GTKMODULE_DEFS) generate/gtkgl.defs generate/libglade.defs +$(srcdir)/gtkmodule_defs.c $(srcdir)/gtkmodule_impl.c $(srcdir)/gtkgl_defs.c $(srcdir)/gtkgl_impl.c $(srcdir)/libglade_defs.c $(srcdir)/libglade_impl.c: $(srcdir)/mkgtk.py $(GENERATE) $(GTKMODULE_DEFS) generate/gtkgl.defs generate/libglade.defs cd $(srcdir) && $(PYTHON) mkgtk.py @@ -1,3 +1,11 @@ +pygtk-0.6.3: 30-September-1999 + - if the new gnome-python is installed, the libglade module will load + the gnome support. Make sure you remember to import gnome.ui if the + glade file contains any gnome widgets. + - New methods for GdkWindow objects -- lower, _raise (for stacking + order manipulation) and input_get_pointer (for XInput stuff). + - A few other bugs have been fixed as well. See ChangeLog for details. + pygtk-0.6.2: 9-August-1999 - Threading should work correctly with multiple threads accessing GTK (assuming they use threads_enter/leave). Thanks go to Matt diff --git a/configure.in b/configure.in index c1288396..96429696 100644 --- a/configure.in +++ b/configure.in @@ -2,7 +2,7 @@ AC_INIT dnl for gnome-python: -AM_INIT_AUTOMAKE(pygtk, 0.6.2) +AM_INIT_AUTOMAKE(pygtk, 0.6.3) AM_PATH_PYTHON AM_INIT_PYEXEC_MOD diff --git a/libglade.py b/libglade.py index d04f5b51..fa5adfca 100644 --- a/libglade.py +++ b/libglade.py @@ -63,5 +63,8 @@ def get_widget_name(widget): def get_widget_long_name(widget): return _libglade.glade_get_widget_long_name(widget._o) def get_widget_tree(widget): - return GladeXML(_obj=_libglade.glade_get_widget_tree(widget._o)) + xml = _libglade.glade_get_widget_tree(widget._o) + if xml: + return GladeXML(_obj=xml) + return xml diff --git a/libglademodule.c b/libglademodule.c index f461048c..293790b9 100644 --- a/libglademodule.c +++ b/libglademodule.c @@ -128,9 +128,81 @@ static PyObject *_wrap_glade_xml_signal_autoconnect(PyObject *self, PyObject *ar return Py_None; } +static PyObject *_wrap_glade_xml_get_widget(PyObject *self, PyObject *args) { + PyObject *xml; + char *name; + GtkWidget *widget; + + if (!PyArg_ParseTuple(args, "O!s:glade_xml_get_widget", + &PyGtk_Type, &xml, &name)) + return NULL; + widget = glade_xml_get_widget(GLADE_XML(PyGtk_Get(xml)), name); + if (widget) + return PyGtk_New((GtkObject *)widget); + Py_INCREF(Py_None); + return Py_None; +} + +static PyObject *_wrap_glade_xml_get_widget_by_long_name(PyObject *self, PyObject *args) { + PyObject *xml; + char *name; + GtkWidget *widget; + + if (!PyArg_ParseTuple(args, "O!s:glade_xml_get_widget_by_long_name", + &PyGtk_Type, &xml, &name)) + return NULL; + widget = glade_xml_get_widget_by_long_name(GLADE_XML(PyGtk_Get(xml)),name); + if (widget) + return PyGtk_New((GtkObject *)widget); + Py_INCREF(Py_None); + return Py_None; +} + +static PyObject *_wrap_glade_get_widget_name(PyObject *self, PyObject *args) { + PyObject *wid; + const char *name; + + if (!PyArg_ParseTuple(args, "O!:glade_get_widget_name", &PyGtk_Type, &wid)) + return NULL; + if ((name = glade_get_widget_name(GTK_WIDGET(PyGtk_Get(wid)))) != NULL) + return PyString_FromString(name); + Py_INCREF(Py_None); + return Py_None; +} + +static PyObject *_wrap_glade_get_widget_long_name(PyObject *self, PyObject *args) { + PyObject *wid; + const char *name; + + if (!PyArg_ParseTuple(args, "O!:glade_get_widget_long_name", + &PyGtk_Type, &wid)) + return NULL; + if ((name = glade_get_widget_long_name(GTK_WIDGET(PyGtk_Get(wid))))!=NULL) + return PyString_FromString(name); + Py_INCREF(Py_None); + return Py_None; +} + +static PyObject *_wrap_glade_get_widget_tree(PyObject *self, PyObject *args) { + PyObject *wid; + GladeXML *xml; + + if (!PyArg_ParseTuple(args, "O!:glade_get_widget_tree", &PyGtk_Type, &wid)) + return NULL; + if ((xml = glade_get_widget_tree(GTK_WIDGET(PyGtk_Get(wid))))!=NULL) + return PyGtk_New((GtkObject *)xml); + Py_INCREF(Py_None); + return Py_None; +} + static PyMethodDef libgladeMethods[] = { { "glade_xml_signal_connect", _wrap_glade_xml_signal_connect, 1 }, { "glade_xml_signal_autoconnect", _wrap_glade_xml_signal_autoconnect, 1 }, + { "glade_xml_get_widget", _wrap_glade_xml_get_widget, 1 }, + { "glade_xml_get_widget_by_long_name", _wrap_glade_xml_get_widget_by_long_name, 1 }, + { "glade_get_widget_name", _wrap_glade_get_widget_name, 1 }, + { "glade_get_widget_long_name", _wrap_glade_get_widget_long_name, 1 }, + { "glade_get_widget_tree", _wrap_glade_get_widget_tree, 1 }, #include "libglade_defs.c" { NULL, NULL, 0 } }; @@ -1,7 +1,7 @@ %define py_prefix /usr # py_ver should only be 3 characters (1.5.1 == 1.5) %define py_ver 1.5 -%define ver 0.6.2 +%define ver 0.6.3 # you may want to remove some of the sub packages depending on what you # have installed on your system when building this package. |