diff options
author | Johan Dahlin <zilch@src.gnome.org> | 2005-03-16 13:45:36 +0000 |
---|---|---|
committer | Johan Dahlin <zilch@src.gnome.org> | 2005-03-16 13:45:36 +0000 |
commit | 2dde95168226f4ea3893ed83ea786f25684191b3 (patch) | |
tree | b81adf3cf50c2f42e645bd08fa150468cc5a015b | |
parent | 063c04b0851097bf2a96f097a27e5b1a3825267a (diff) | |
download | pygtk-2-4.tar.gz |
Allow argument to RadioButtion.set_radio_group to be empty, fixes #170514pygtk-2-4
* gtk/gtk.override: Allow argument to RadioButtion.set_radio_group
to be empty, fixes #170514 (Lorenzo Gil Sanchez)
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | gtk/gtk.override | 45 |
2 files changed, 22 insertions, 28 deletions
@@ -1,3 +1,8 @@ +2005-03-16 Johan Dahlin <jdahlin@async.com.br> + + * gtk/gtk.override: Allow argument to RadioButtion.set_radio_group + to be empty, fixes #170514 (Lorenzo Gil Sanchez) + 2005-03-14 Lorenzo Gil Sanchez <lgs@sicem.biz> * gobject/pygparamspec.c (pyg_param_spec_getattr): in case the enum diff --git a/gtk/gtk.override b/gtk/gtk.override index 8980b646..51cf0ac6 100644 --- a/gtk/gtk.override +++ b/gtk/gtk.override @@ -1412,26 +1412,6 @@ _wrap_gtk_radio_button_get_group(PyGObject *self) { return py_list; } %% -override gtk_radio_button_set_group kwargs -static PyObject * -_wrap_gtk_radio_button_set_group(PyGObject *self, PyObject *args, - PyObject *kwargs) { - static char *kwlist[] = { "group", NULL }; - PyObject *py_group; - GSList *list; - GtkRadioButton *group; - - if (!PyArg_ParseTupleAndKeywords(args,kwargs,"O!:GtkRadioButton.set_group", - kwlist, &PyGtkRadioButton_Type, - &py_group)) - return NULL; - group = GTK_RADIO_BUTTON(pygobject_get(py_group)); - list = gtk_radio_button_get_group(group); - gtk_radio_button_set_group(GTK_RADIO_BUTTON(self->obj), list); - Py_INCREF(Py_None); - return Py_None; -} -%% override gtk_list_item_new kwargs static int _wrap_gtk_list_item_new(PyGObject *self, PyObject *args, PyObject *kwargs) @@ -3507,17 +3487,26 @@ _wrap_gtk_radio_button_set_group(PyGObject *self, PyObject *args, GSList *list; GtkRadioButton *group; - if (!PyArg_ParseTupleAndKeywords(args,kwargs,"O!:GtkRadioButton.set_group", - kwlist, &PyGtkRadioButton_Type, - &py_group)) - return NULL; - group = GTK_RADIO_BUTTON(pygobject_get(py_group)); - list = gtk_radio_button_get_group(group); - if (list == gtk_radio_button_get_group(GTK_RADIO_BUTTON(self->obj))) { - PyErr_SetString(PyExc_ValueError, "radio button already in group"); + if (!PyArg_ParseTupleAndKeywords(args,kwargs,"O:GtkRadioButton.set_group", + kwlist, &py_group)) return NULL; + + if (pygobject_check(py_group, &PyGtkRadioButton_Type)) { + group = GTK_RADIO_BUTTON(pygobject_get(py_group)); + list = gtk_radio_button_get_group(group); + if (list == gtk_radio_button_get_group(GTK_RADIO_BUTTON(self->obj))) { + PyErr_SetString(PyExc_ValueError, "radio button already in group"); + return NULL; + } + } else if (py_group == Py_None) { + list = NULL; + } else { + PyErr_SetString(PyExc_TypeError, "group must be a RadioGroup or None"); + return NULL; } + gtk_radio_button_set_group(GTK_RADIO_BUTTON(self->obj), list); + Py_INCREF(Py_None); return Py_None; } |