diff options
author | Gian Mario Tagliaretti <gianmt@src.gnome.org> | 2007-07-26 19:50:35 +0000 |
---|---|---|
committer | Gian Mario Tagliaretti <gianmt@src.gnome.org> | 2007-07-26 19:50:35 +0000 |
commit | b1603f0a1a56e0af6c923bc4a53d000c0fa69c49 (patch) | |
tree | bdbb5910329885922c40b33046a44f4de94336ff /gtk/gtk.override | |
parent | 29f0671d74c1a7b36027da6d5f38d165f873ab5c (diff) | |
download | pygtk-b1603f0a1a56e0af6c923bc4a53d000c0fa69c49.tar.gz |
wrap gtk.ScaleButton constructor and set_icon(), fix a couple of None parameters in defs.
svn path=/trunk/; revision=2861
Diffstat (limited to 'gtk/gtk.override')
-rw-r--r-- | gtk/gtk.override | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/gtk/gtk.override b/gtk/gtk.override index 34f43741..88cb370b 100644 --- a/gtk/gtk.override +++ b/gtk/gtk.override @@ -8273,3 +8273,101 @@ _wrap_gtk_accel_map_foreach_unfiltered(PyObject *self, PyObject *args, PyObject Py_INCREF(Py_None); return Py_None; } +%% +override gtk_scale_button_new kwargs +static int +_wrap_gtk_scale_button_new(PyGObject *self, PyObject *args, PyObject *kwargs) +{ + static char *kwlist[] = { "size", "min", "max", "step", "icons", NULL }; + PyObject *py_size = NULL, *py_icons = NULL; + double min, max, step; + gchar **icons = NULL; + GtkIconSize size; + GtkAdjustment *adj; + int i, len; + + if (!PyArg_ParseTupleAndKeywords(args, kwargs, + "Oddd|O:GtkScaleButton.__init__", kwlist, + &py_size, &min, &max, &step, &py_icons)) + return -1; + + if (pyg_enum_get_value(GTK_TYPE_ICON_SIZE, py_size, (gpointer)&size)) + return -1; + + if (py_icons) { + if (!PySequence_Check(py_icons)) { + PyErr_SetString(PyExc_TypeError, "icons must be a sequence"); + return -1; + } + len = PySequence_Length(py_icons); + icons = g_new(gchar *, len + 1); + for (i = 0; i < len; i++) { + PyObject *item = PySequence_GetItem(py_icons, i); + if (!PyString_Check(item)) { + PyErr_SetString(PyExc_TypeError, "icon must be a string"); + g_free(icons); + return -1; + } + icons[i] = PyString_AsString(item); + Py_DECREF(item); + } + icons[len] = NULL; + } + pygobject_construct(self, "size", size, "icons", icons, NULL); + + g_free(icons); + + if (!self->obj) { + PyErr_SetString(PyExc_RuntimeError, + "could not create gtk.ScaleButton object"); + return -1; + } + + adj = gtk_scale_button_get_adjustment(GTK_SCALE_BUTTON(self->obj)); + g_object_set(adj, "lower", min, "upper", max, "step-increment", step, NULL); + + return 0; +} +%% +new-constructor GTK_TYPE_SCALE_BUTTON +%% +override gtk_scale_button_set_icons kwargs +static PyObject * +_wrap_gtk_scale_button_set_icons(PyGObject *self, PyObject *args, PyObject *kwargs) +{ + static char *kwlist[] = { "icons", NULL }; + PyObject *py_icons; + gchar **icons = NULL; + int i, len; + + if (!PyArg_ParseTupleAndKeywords(args, kwargs, + "O:GtkScaleButton.set_icons", kwlist, + &py_icons)) + return NULL; + + if (!PySequence_Check(py_icons)) { + PyErr_SetString(PyExc_TypeError, "icons must be a sequence"); + return NULL; + } + len = PySequence_Length(py_icons); + icons = g_new(gchar *, len + 1); + for (i = 0; i < len; i++) { + PyObject *item = PySequence_GetItem(py_icons, i); + if (!PyString_Check(item)) { + PyErr_SetString(PyExc_TypeError, "icon must be a string"); + g_free(icons); + return NULL; + } + icons[i] = PyString_AsString(item); + Py_DECREF(item); + } + icons[len] = NULL; + + gtk_scale_button_set_icons(GTK_SCALE_BUTTON(self->obj), + (const gchar **) icons); + + g_free(icons); + + Py_INCREF(Py_None); + return Py_None; +} |