diff options
author | Matt Wilson <msw@redhat.com> | 2002-04-16 19:46:34 +0000 |
---|---|---|
committer | Matt Wilson <msw@src.gnome.org> | 2002-04-16 19:46:34 +0000 |
commit | c20b5285dd406542a2856ff7dab4de36cae94458 (patch) | |
tree | 887842becd192636977e8c48a1941d2b7fc7aea2 /gtk | |
parent | 7851e3984573888b6acc9cc611fb0d673bdd89e1 (diff) | |
download | pygtk-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.override | 69 | ||||
-rw-r--r-- | gtk/libglade.defs | 10 | ||||
-rw-r--r-- | gtk/libglade.override | 20 |
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); +} |