diff options
author | James Henstridge <james@daa.com.au> | 2002-11-16 11:41:07 +0000 |
---|---|---|
committer | James Henstridge <jamesh@src.gnome.org> | 2002-11-16 11:41:07 +0000 |
commit | 7bc8cb25fcb8650c58b93faa21505cd4a6790566 (patch) | |
tree | ac46f107458a9454cf7774e572e41726b3169f4f /gtk/gdk.override | |
parent | 6ed4b51887e4d3e1980bd20a7ef37d2cd1453568 (diff) | |
download | pygtk-7bc8cb25fcb8650c58b93faa21505cd4a6790566.tar.gz |
From patch on bug #96950
2002-11-16 James Henstridge <james@daa.com.au>
From patch on bug #96950
* gtk/gdk.override (_wrap_gdk_pixbuf_save): wrapper for
GdkPixbuf.save()
* codegen/argtypes.py (GdkRectanglePtrArg.write_param): handle
GdkRectangle args with (null-ok) set.
* gtk/gtk.defs (gtk.Style.paint_*): allow passing None for area,
widget and detail arguments.
Diffstat (limited to 'gtk/gdk.override')
-rw-r--r-- | gtk/gdk.override | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/gtk/gdk.override b/gtk/gdk.override index b487c65b..17191d7c 100644 --- a/gtk/gdk.override +++ b/gtk/gdk.override @@ -1757,6 +1757,61 @@ _wrap_gdk_pixbuf_get_pixels(PyGObject *self) return PyString_FromStringAndSize(pixels, rowstride*height); } %% +override gdk_pixbuf_save kwargs +static PyObject * +_wrap_gdk_pixbuf_save(PyGObject *self, PyObject *args, + PyObject *kwargs) +{ + static char *kwlist[] = {"filename", "type", "options", NULL}; + gchar *filename, *type, **option_keys = NULL, **option_values = NULL; + PyObject *py_options = NULL; + GError *error = NULL; + + if (!PyArg_ParseTupleAndKeywords(args, kwargs, + "ss|O!:GdkPixbuf.save", kwlist, + &filename, &type, + &PyDict_Type, &py_options)) + return NULL; + + if (py_options != NULL) { + guint len; + gint pos = 0, i = 0; + PyObject *key, *value; + + len = PyDict_Size(py_options); + option_keys = g_new(gchar *, len + 1); + option_values = g_new(gchar *, len + 1); + + while (PyDict_Next(py_options, &pos, &key, &value)) { + if (!PyString_Check(key) || !PyString_Check(value)) { + g_free(option_keys); + g_free(option_values); + PyErr_SetString(PyExc_TypeError, + "keys and values must be strings"); + return NULL; + } + + option_keys[i] = PyString_AsString(key); + option_values[i] = PyString_AsString(value); + i++; + } + + option_keys[len] = NULL; + option_values[len] = NULL; + } + gdk_pixbuf_savev(GDK_PIXBUF(self->obj), filename, type, + option_keys, option_values, &error); + + g_free(option_keys); + g_free(option_values); + + if (pyg_error_check(&error)) + return NULL; + + Py_INCREF(Py_None); + return Py_None; +} +%% override gdk_colormap_alloc_color kwargs static PyObject * _wrap_gdk_colormap_alloc_color(PyGObject *self, PyObject *args, |