summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--gtk/libglade.defs4
-rw-r--r--gtk/libglade.override38
3 files changed, 48 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index e46b0c4f..b6614701 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
2003-06-05 Johan Dahlin <jdahlin@async.com.br>
+ * 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
+
* gtk/gdk.override (_wrap_gdk_pixbuf_loader_write): Make last
argument optional.
(_wrap_gdk_pixbuf_loader_new_with_type): Make first argument
diff --git a/gtk/libglade.defs b/gtk/libglade.defs
index 03f47386..926fa18e 100644
--- a/gtk/libglade.defs
+++ b/gtk/libglade.defs
@@ -190,3 +190,7 @@
)
)
+(define-function set_custom_widget_callbacks
+ (c-name "glade_set_custom_widget_callbacks")
+ (return-type "none")
+)
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;
+}