summaryrefslogtreecommitdiff
path: root/gtk/libglade.override
diff options
context:
space:
mode:
authorJohan Dahlin <zilch@src.gnome.org>2003-06-06 00:50:58 +0000
committerJohan Dahlin <zilch@src.gnome.org>2003-06-06 00:50:58 +0000
commit10c8f3e48f69d65b4bad171a929b98b3e2a9c1c1 (patch)
tree0bb25d870e8e240833c13a3e1002c43a05beb5f3 /gtk/libglade.override
parent3c10e815f75627bcea8d85ffa075732018ed0a9c (diff)
downloadpygtk-10c8f3e48f69d65b4bad171a929b98b3e2a9c1c1.tar.gz
Added
* gtk/libglade.defs (set_custom_widget_callbacks): Added * gtk/libglade.override (_wrap_glade_set_custom_widget_callbacks) (_wrap_glade_set_custom_widget_callbacks): Impl. Patch by Ross Burton. Fixes #113271
Diffstat (limited to 'gtk/libglade.override')
-rw-r--r--gtk/libglade.override38
1 files changed, 38 insertions, 0 deletions
diff --git a/gtk/libglade.override b/gtk/libglade.override
index 406ea69b..a45a32c0 100644
--- a/gtk/libglade.override
+++ b/gtk/libglade.override
@@ -228,4 +228,42 @@ _wrap_glade_textdomain(PyObject *self, PyObject *args, PyObject *kwargs)
}
return PyString_FromString(ret);
}
+%%
+override glade_set_custom_widget_callbacks kwargs
+static GtkWidget * custom_widget_handler (GladeXML *xml,
+ gchar *func_name, gchar *name,
+ gchar *string1, gchar *string2,
+ gint int1, gint int2, gpointer user_data)
+{
+ PyObject *handler_dict = user_data;
+ PyObject *tuple;
+ tuple = PyMapping_GetItemString(handler_dict, (gchar *)func_name);
+ if (!tuple) {
+ PyErr_Clear();
+ tuple = PyObject_GetAttrString(handler_dict, (gchar *)func_name);
+ if (!tuple) {
+ PyErr_Clear();
+ return NULL;
+ }
+ }
+ if (PyCallable_Check(tuple)) {
+ PyObject *ret;
+ ret = PyObject_CallFunction(tuple, NULL);
+ return GTK_WIDGET (pygobject_get (ret));
+ }
+ return NULL;
+}
+static PyObject *
+_wrap_glade_set_custom_widget_callbacks(PyObject *self, PyObject *args, PyObject *kwargs)
+{
+ static char *kwlist[] = { "dict", NULL };
+ PyObject *object;
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs,
+ "O:GladeXML.set_custom_widget_callbacks", kwlist,
+ &object))
+ return NULL;
+ glade_set_custom_handler((GladeXMLCustomWidgetHandler)custom_widget_handler, object);
+ Py_INCREF(Py_None);
+ return Py_None;
+}