summaryrefslogtreecommitdiff
path: root/gtk
diff options
context:
space:
mode:
authorMatt Wilson <msw@redhat.com>2002-04-16 19:46:34 +0000
committerMatt Wilson <msw@src.gnome.org>2002-04-16 19:46:34 +0000
commitc20b5285dd406542a2856ff7dab4de36cae94458 (patch)
tree887842becd192636977e8c48a1941d2b7fc7aea2 /gtk
parent7851e3984573888b6acc9cc611fb0d673bdd89e1 (diff)
downloadpygtk-c20b5285dd406542a2856ff7dab4de36cae94458.tar.gz
added wrapper which will allow user to bind a textdomain. Also sets the
2002-04-16 Matt Wilson <msw@redhat.com> * gtk/libglade.override (_wrap_glade_bindtextdomain): added wrapper which will allow user to bind a textdomain. Also sets the codeset to UTF-8 if bind_textdomain_codeset is available. * config.h.in: added HAVE_BIND_TEXTDOMAIN_CODESET * configure.in: check for bind_textdomain_codeset * gtk/libglade.defs (bindtextdomain): added extra function to implement gtk.glade.bindtextdomain * gtk/gtk.override (pygtk_cell_data_func_marshal, _wrap_gtk_tree_view_column_set_cell_data_func): added wrapper for GtkTreeViewColumn.set_cell_data_func from Jonathan Blandford <jrb@redhat.com>
Diffstat (limited to 'gtk')
-rw-r--r--gtk/gtk.override69
-rw-r--r--gtk/libglade.defs10
-rw-r--r--gtk/libglade.override20
3 files changed, 99 insertions, 0 deletions
diff --git a/gtk/gtk.override b/gtk/gtk.override
index 04209a0d..e91d8197 100644
--- a/gtk/gtk.override
+++ b/gtk/gtk.override
@@ -1763,6 +1763,75 @@ _wrap_gtk_tree_view_column_new(PyGObject *self, PyObject*args, PyObject*kwargs)
return 0;
}
%%
+override gtk_tree_view_column_set_cell_data_func kwargs
+static void
+pygtk_cell_data_func_marshal (GtkTreeViewColumn *tree_column,
+ GtkCellRenderer *cell,
+ GtkTreeModel *tree_model,
+ GtkTreeIter *iter, gpointer data)
+{
+ PyGtkCustomNotify *cunote = data;
+ PyObject *retobj;
+ PyObject *pytreecolumn, *pycell, *pytreemodel, *pyiter;
+
+ g_assert (cunote->func);
+
+ pytreecolumn = pygobject_new((GObject *)tree_column);
+ pycell = pygobject_new((GObject *)cell);
+ pytreemodel = pygobject_new((GObject *)tree_model);
+ pyiter = pyg_boxed_new(GTK_TYPE_TREE_ITER, iter,
+ TRUE, TRUE);
+ if (cunote->data)
+ retobj = PyEval_CallFunction(cunote->func, "(OOOOO)",
+ pytreecolumn, pycell,
+ pytreemodel, pyiter, cunote->data);
+ else
+ retobj = PyEval_CallFunction(cunote->func, "(OOOO)",
+ pytreecolumn, pycell,
+ pytreemodel, pyiter, cunote->data);
+
+ if (retobj == NULL) {
+ PyErr_Print();
+ PyErr_Clear();
+ } else
+ Py_DECREF(retobj);
+}
+
+static PyObject *
+_wrap_gtk_tree_view_column_set_cell_data_func (PyGObject *self, PyObject *args,
+ PyObject *kwargs)
+{
+ PyObject *pycell,*pyfunc, *pyarg = NULL;
+ GtkCellRenderer *cell;
+ PyGtkCustomNotify *cunote;
+
+ if (!PyArg_ParseTuple(args, "OO|O:GtkTreeViewColumn.set_cell_data_func",
+ &pycell, &pyfunc, &pyarg))
+ return NULL;
+
+ if (pygobject_check(pycell, &PyGtkCellRenderer_Type))
+ cell = GTK_CELL_RENDERER(pygobject_get(pycell));
+ else {
+ PyErr_SetString(PyExc_TypeError,
+ "first argument must be a GtkCellRenderer");
+ return NULL;
+ }
+
+ cunote = g_new0(PyGtkCustomNotify, 1);
+ cunote->func = pyfunc;
+ cunote->data = pyarg;
+ Py_INCREF(cunote->func);
+ Py_XINCREF(cunote->data);
+
+ gtk_tree_view_column_set_cell_data_func (GTK_TREE_VIEW_COLUMN (self->obj), cell,
+ pygtk_cell_data_func_marshal,
+ cunote,
+ pygtk_custom_destroy_notify);
+
+ Py_INCREF(Py_None);
+ return Py_None;
+}
+%%
override gtk_tree_view_get_path_at_pos kwargs
static PyObject *
_wrap_gtk_tree_view_get_path_at_pos(PyGObject *self, PyObject *args,
diff --git a/gtk/libglade.defs b/gtk/libglade.defs
index ed2ef2b9..0c490e4f 100644
--- a/gtk/libglade.defs
+++ b/gtk/libglade.defs
@@ -177,3 +177,13 @@
)
+;; pylibglade2 extras
+
+(define-function bindtextdomain
+ (c-name "glade_bindtextdomain")
+ (return-type "char*")
+ (parameters
+ '("const-char*" "domainname")
+ '("const-char*" "dirname" (null-ok) (default "NULL"))
+ )
+)
diff --git a/gtk/libglade.override b/gtk/libglade.override
index aa0ef158..fa7abe90 100644
--- a/gtk/libglade.override
+++ b/gtk/libglade.override
@@ -4,6 +4,8 @@ headers
#define NO_IMPORT_PYGOBJECT
#include <pygobject.h>
#include <glade/glade.h>
+#include "config.h"
+#include <libintl.h>
%%
modulename gtk.glade
@@ -138,3 +140,21 @@ _wrap_glade_xml_signal_autoconnect(PyGObject *self, PyObject *args,
Py_INCREF(Py_None);
return Py_None;
}
+%%
+override glade_bindtextdomain kwargs
+static PyObject *
+_wrap_glade_bindtextdomain(PyObject *self, PyObject *args, PyObject *kwargs)
+{
+ static char *kwlist[] = { "domainname", "dirname", NULL };
+ char *domainname, *dirname = NULL, *ret;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs,
+ "s|s:glade.bindtextdomain", kwlist,
+ &domainname, &dirname))
+ return NULL;
+ ret = bindtextdomain(domainname, dirname);
+#ifdef HAVE_BIND_TEXTDOMAIN_CODESET
+ bind_textdomain_codeset(domainname, "UTF-8");
+#endif
+ return PyString_FromString(ret);
+}