summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog10
-rw-r--r--Makefile.am2
-rw-r--r--NEWS8
-rw-r--r--configure.in2
-rw-r--r--libglade.py5
-rw-r--r--libglademodule.c72
-rw-r--r--pygtk.spec2
7 files changed, 97 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 8ae9c9a8..fcfa8948 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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
diff --git a/NEWS b/NEWS
index 47b704b8..bf491685 100644
--- a/NEWS
+++ b/NEWS
@@ -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 }
};
diff --git a/pygtk.spec b/pygtk.spec
index 25ddb622..bc3f4e61 100644
--- a/pygtk.spec
+++ b/pygtk.spec
@@ -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.