diff options
author | Johan Dahlin <zilch@src.gnome.org> | 2003-06-06 00:09:47 +0000 |
---|---|---|
committer | Johan Dahlin <zilch@src.gnome.org> | 2003-06-06 00:09:47 +0000 |
commit | 16b425f89526b4eda653d75c1a9a461444dd1adc (patch) | |
tree | be66756b5897de88369d6aeaef831bf1b49750a3 /gtk/gtkclist.override | |
parent | 80e0750d929fcaac005ed159046b056247facfcf (diff) | |
download | pygtk-16b425f89526b4eda653d75c1a9a461444dd1adc.tar.gz |
New files, splitted out from gtk.override
* gtk/gtk*.override: New files, splitted out from gtk.override
* gtk/Makefile.am (EXTRA_DIST): Add *.override here
* codegen/override.py (Overrides.__parse_override): Added
"include" keyword, to be able to include files in override files
Diffstat (limited to 'gtk/gtkclist.override')
-rw-r--r-- | gtk/gtkclist.override | 334 |
1 files changed, 334 insertions, 0 deletions
diff --git a/gtk/gtkclist.override b/gtk/gtkclist.override new file mode 100644 index 00000000..2a1da295 --- /dev/null +++ b/gtk/gtkclist.override @@ -0,0 +1,334 @@ +%% +ignore + gtk_clist_new + gtk_clist_set_row_data_full +%% +override gtk_clist_new_with_titles kwargs +static int +_wrap_gtk_clist_new_with_titles(PyGObject *self, PyObject *args, + PyObject *kwargs) +{ + static char *kwlist[] = { "count", "titles", NULL }; + int count = 1, i; + PyObject *py_list = NULL; + + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|iO:GtkCList.__init__", + kwlist, &count, &py_list)) + return -1; + if (py_list) { + gchar **list; + + if (!PySequence_Check(py_list)) { + PyErr_SetString(PyExc_TypeError,"2nd argument not a sequence"); + return -1; + } + if (PySequence_Length(py_list) < count) { + PyErr_SetString(PyExc_TypeError, "sequence not long enough"); + return -1; + } + list = g_new(gchar *, count); + for (i = 0; i < count; i++) { + PyObject *item = PySequence_GetItem(py_list, i); + + Py_DECREF(item); /* PySequence_GetItem INCREF's */ + if (!PyString_Check(item) && !PyUnicode_Check(item)) { + PyErr_SetString(PyExc_TypeError, + "sequence item not a string or unicode object"); + g_free(list); + return -1; + } + list[i] = PyString_AsString(item); + } + self->obj = (GObject *)gtk_clist_new_with_titles(count, list); + g_free(list); + } else + self->obj = (GObject *)gtk_clist_new(count); + if (!self->obj) { + PyErr_SetString(PyExc_RuntimeError,"could not create GtkCList object"); + return -1; + } + pygobject_register_wrapper((PyObject *)self); + return 0; +} +%% +override gtk_clist_get_text kwargs +static PyObject * +_wrap_gtk_clist_get_text(PyGObject *self, PyObject *args, PyObject *kwargs) +{ + static char *kwlist[] = { "row", "column", NULL }; + int r, c; + char *text = NULL; + + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "ii:GtkCList.get_text", + kwlist, &r, &c)) + return NULL; + if (!gtk_clist_get_text(GTK_CLIST(self->obj), r, c, &text) || text==NULL) { + PyErr_SetString(PyExc_ValueError, "can't get text value"); + return NULL; + } + return PyString_FromString(text); +} +%% +override gtk_clist_get_pixmap kwargs +static PyObject * +_wrap_gtk_clist_get_pixmap(PyGObject *self, PyObject *args, PyObject*kwargs) +{ + static char *kwlist[] = { "row", "column", NULL }; + int r, c; + GdkPixmap *pixmap; + GdkBitmap *mask; + + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "ii:GtkCList.get_pixmap", + kwlist, &r, &c)) + return NULL; + if (!gtk_clist_get_pixmap(GTK_CLIST(self->obj), r, c, + &pixmap, &mask)) { + PyErr_SetString(PyExc_ValueError, "can't get pixmap value"); + return NULL; + } + return Py_BuildValue("(NN)", pygobject_new((GObject *)pixmap), + pygobject_new((GObject *)mask)); +} +%% +override gtk_clist_get_pixtext kwargs +static PyObject * +_wrap_gtk_clist_get_pixtext(PyGObject *self, PyObject *args, PyObject*kwargs) +{ + static char *kwlist[] = { "row", "column", NULL }; + int r, c; + gchar *text; + guint8 spacing; + GdkPixmap *pixmap; + GdkBitmap *mask; + + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "ii:GtkCList.get_pixtext", + kwlist, &r, &c)) + return NULL; + if (!gtk_clist_get_pixtext(GTK_CLIST(self->obj), r, c, + &text, &spacing, &pixmap, &mask)) { + PyErr_SetString(PyExc_ValueError, "can't get pixtext value"); + return NULL; + } + return Py_BuildValue("(ziNN)", text, (gint)spacing, + pygobject_new((GObject *)pixmap), + pygobject_new((GObject *)mask)); +} +%% +override gtk_clist_prepend kwargs +static PyObject * +_wrap_gtk_clist_prepend(PyGObject *self, PyObject *args, PyObject *kwargs) +{ + static char *kwlist[] = { "text", NULL }; + int col, i; + PyObject *py_list; + gchar **list; + + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O:GtkCList.prepend", + kwlist, &py_list)) + return NULL; + if (!PySequence_Check(py_list)) { + PyErr_SetString(PyExc_TypeError, "argument not a sequence"); + return NULL; + } + col = GTK_CLIST(self->obj)->columns; + if (PySequence_Length(py_list) < col) { + PyErr_SetString(PyExc_TypeError, "sequnce too short"); + return NULL; + } + list = g_new(gchar *, col); + for (i = 0; i < col; i++) { + PyObject *item = PySequence_GetItem(py_list, i); + + Py_DECREF(item); + if (!PyString_Check(item) && !PyUnicode_Check(item)) { + PyErr_SetString(PyExc_TypeError, + "sequence item not a string or unicode object"); + g_free(list); + return NULL; + } + list[i] = PyString_AsString(item); + } + i = gtk_clist_prepend(GTK_CLIST(self->obj), list); + g_free(list); + return PyInt_FromLong(i); +} +%% +override gtk_clist_append kwargs +static PyObject * +_wrap_gtk_clist_append(PyGObject *self, PyObject *args, PyObject *kwargs) +{ + static char *kwlist[] = { "text", NULL }; + int col, i; + PyObject *py_list; + gchar **list; + + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O:GtkCList.append", + kwlist, &py_list)) + return NULL; + if (!PySequence_Check(py_list)) { + PyErr_SetString(PyExc_TypeError, "argument not a sequence"); + return NULL; + } + col = GTK_CLIST(self->obj)->columns; + if (PySequence_Length(py_list) < col) { + PyErr_SetString(PyExc_TypeError, "sequnce too short"); + return NULL; + } + list = g_new(gchar *, col); + for (i = 0; i < col; i++) { + PyObject *item = PySequence_GetItem(py_list, i); + + Py_DECREF(item); + if (!PyString_Check(item) && !PyUnicode_Check(item)) { + PyErr_SetString(PyExc_TypeError, + "sequence item not a string or unicode object"); + g_free(list); + return NULL; + } + list[i] = PyString_AsString(item); + } + i = gtk_clist_append(GTK_CLIST(self->obj), list); + g_free(list); + return PyInt_FromLong(i); +} +%% +override gtk_clist_insert kwargs +static PyObject * +_wrap_gtk_clist_insert(PyGObject *self, PyObject *args, PyObject *kwargs) +{ + static char *kwlist[] = { "row", "text", NULL }; + int col, row, i; + PyObject *py_list; + gchar **list; + + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "iO:GtkCList.insert", + kwlist, &row, &py_list)) + return NULL; + if (!PySequence_Check(py_list)) { + PyErr_SetString(PyExc_TypeError, "argument not a sequence"); + return NULL; + } + col = GTK_CLIST(self->obj)->columns; + if (PySequence_Length(py_list) < col) { + PyErr_SetString(PyExc_TypeError, "sequnce too short"); + return NULL; + } + list = g_new(gchar *, col); + for (i = 0; i < col; i++) { + PyObject *item = PySequence_GetItem(py_list, i); + + Py_DECREF(item); + if (!PyString_Check(item) && !PyUnicode_Check(item)) { + PyErr_SetString(PyExc_TypeError, + "sequence item not a string or unicode object"); + g_free(list); + return NULL; + } + list[i] = PyString_AsString(item); + } + i = gtk_clist_insert(GTK_CLIST(self->obj), row, list); + g_free(list); + return PyInt_FromLong(i); +} +%% +override gtk_clist_set_row_data kwargs +static PyObject * +_wrap_gtk_clist_set_row_data(PyGObject *self, PyObject *args, + PyObject *kwargs) +{ + static char *kwlist[] = { "row", "data", NULL }; + int row; + PyObject *data; + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "iO:GtkCList.set_row_data", + kwlist, &row, &data)) + return NULL; + Py_INCREF(data); + gtk_clist_set_row_data_full(GTK_CLIST(self->obj), row, data, + (GtkDestroyNotify)pyg_destroy_notify); + Py_INCREF(Py_None); + return Py_None; +} +%% +override gtk_clist_get_row_data kwargs +static PyObject * +_wrap_gtk_clist_get_row_data(PyGObject *self, PyObject *args, + PyObject *kwargs) +{ + static char *kwlist[] = { "row", NULL }; + PyObject *ret; + int row; + + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "i:GtkCList.get_row_data", + kwlist, &row)) + return NULL; + ret = gtk_clist_get_row_data(GTK_CLIST(self->obj), row); + if (!ret) ret = Py_None; + Py_INCREF(ret); + return ret; +} +%% +override gtk_clist_find_row_from_data kwargs +static PyObject * +_wrap_gtk_clist_find_row_from_data(PyGObject *self, PyObject *args, + PyObject *kwargs) +{ + static char *kwlist[] = { "data", NULL }; + PyObject *data; + + if (!PyArg_ParseTupleAndKeywords(args, kwargs, + "O:GtkCList.find_row_from_data", kwlist, + &data)) + return NULL; + return PyInt_FromLong(gtk_clist_find_row_from_data( + GTK_CLIST(self->obj), data)); +} +%% +override gtk_clist_get_selection_info kwargs +static PyObject * +_wrap_gtk_clist_get_selection_info(PyGObject *self, PyObject *args, + PyObject *kwargs) +{ + static char *kwlist[] = { "x", "y", NULL }; + gint x, y, row, column; + + if (!PyArg_ParseTupleAndKeywords(args, kwargs, + "ii:GtkCList.get_selection_info", kwlist, + &x, &y)) + return NULL; + if (gtk_clist_get_selection_info(GTK_CLIST(self->obj), x, y, + &row, &column)) + return Py_BuildValue("(ii)", row, column); + else { + Py_INCREF(Py_None); + return Py_None; + } +} +%% +override-attr GtkCList.selection +static PyObject * +_wrap_gtk_clist__get_selection(PyGObject *self, void *closure) +{ + guint row; + GList *selection; + PyObject *py_int, *ret = PyList_New(0); + + if (ret == NULL) + return NULL; + + for (selection = GTK_CLIST(self->obj)->selection; selection != NULL; + selection = selection->next) { + row = GPOINTER_TO_UINT(selection->data); + + py_int = PyInt_FromLong(row); + + if (!py_int) { + Py_DECREF(ret); + return NULL; + } + + PyList_Append(ret, py_int); + Py_DECREF(py_int); + } + return ret; + +} |