diff options
| author | James Henstridge <james@daa.com.au> | 2003-01-31 01:57:26 +0000 |
|---|---|---|
| committer | James Henstridge <jamesh@src.gnome.org> | 2003-01-31 01:57:26 +0000 |
| commit | c409ec85b0997294d6f281151fbacaa7ef9947a9 (patch) | |
| tree | 12ac9d5c312aaeb97b7de914db68b6f1baba035d | |
| parent | 8d5cfd9d1d28ad4dff8c3ec4c6bb6e0fe8203408 (diff) | |
| download | pygtk-c409ec85b0997294d6f281151fbacaa7ef9947a9.tar.gz | |
add implementation. (_wrap_gdk_draw_rgb_32_image): add implementation.
2003-01-31 James Henstridge <james@daa.com.au>
* gtk/gdk.override (_wrap_gdk_draw_rgb_image): add implementation.
(_wrap_gdk_draw_rgb_32_image): add implementation.
(_wrap_gdk_draw_gray_image): add
(_wrap_gdk_draw_rgb_image, _wrap_gdk_draw_rgb_32_image): add xdith
and ydith optional arguments, providing the functionality of the
_dithalign variants.
| -rw-r--r-- | ChangeLog | 9 | ||||
| -rw-r--r-- | gtk/gdk.override | 162 |
2 files changed, 140 insertions, 31 deletions
@@ -1,3 +1,12 @@ +2003-01-31 James Henstridge <james@daa.com.au> + + * gtk/gdk.override (_wrap_gdk_draw_rgb_image): add implementation. + (_wrap_gdk_draw_rgb_32_image): add implementation. + (_wrap_gdk_draw_gray_image): add + (_wrap_gdk_draw_rgb_image, _wrap_gdk_draw_rgb_32_image): add xdith + and ydith optional arguments, providing the functionality of the + _dithalign variants. + 2003-01-30 Jon Trowbridge <trow@ximian.com> * gtk/gdk.override: Only call import_array if we HAVE_NUMPY. diff --git a/gtk/gdk.override b/gtk/gdk.override index 57f90c68..2f1c52e8 100644 --- a/gtk/gdk.override +++ b/gtk/gdk.override @@ -148,13 +148,9 @@ _wrap_gdk_draw_polygon(PyGObject *self, PyObject *args, PyObject *kwargs) GdkPoint *points; if (!PyArg_ParseTupleAndKeywords(args, kwargs, - "OiO:GdkDrawable.draw_polygon", - kwlist, &gc, &filled, &py_points)) + "O!iO:GdkDrawable.draw_polygon", kwlist, + &PyGdkGC_Type, &gc, &filled, &py_points)) return NULL; - if (!pygobject_check(gc, &PyGdkGC_Type)) { - PyErr_SetString(PyExc_TypeError, "gc must be a GdkGC"); - return NULL; - } if (!PySequence_Check(py_points)) { PyErr_SetString(PyExc_TypeError, "points must be a sequence"); return NULL; @@ -189,18 +185,14 @@ _wrap_gdk_draw_text(PyGObject *self, PyObject *args, PyObject *kwargs) int x, y, len; char *text; if (!PyArg_ParseTupleAndKeywords(args, kwargs, - "OOiis#:GdkDrawable.draw_text", - kwlist, &font, - &gc, &x, &y, &text, &len)) + "OO!iis#:GdkDrawable.draw_text", kwlist, + &font, &PyGdkGC_Type, &gc, + &x, &y, &text, &len)) return NULL; if (!pyg_boxed_check(font, GDK_TYPE_FONT)) { PyErr_SetString(PyExc_TypeError, "font must be a GdkFont"); return NULL; } - if (!pygobject_check(gc, &PyGdkGC_Type)) { - PyErr_SetString(PyExc_TypeError, "gc must be a GdkGC"); - return NULL; - } gdk_draw_text(GDK_DRAWABLE(self->obj), pyg_boxed_get(font, GdkFont), GDK_GC(gc->obj), x, y, text, len); Py_INCREF(Py_None); @@ -218,13 +210,9 @@ _wrap_gdk_draw_points(PyGObject *self, PyObject *args, PyObject *kwargs) GdkPoint *points; if (!PyArg_ParseTupleAndKeywords(args, kwargs, - "OO:GdkDrawable.draw_points", - kwlist, &gc, &py_points)) + "O!O:GdkDrawable.draw_points", kwlist, + &PyGdkGC_Type, &gc, &py_points)) return NULL; - if (!pygobject_check(gc, &PyGdkGC_Type)) { - PyErr_SetString(PyExc_TypeError, "gc must be a GdkGC"); - return NULL; - } if (!PySequence_Check(py_points)) { PyErr_SetString(PyExc_TypeError, "points must be a sequence"); return NULL; @@ -259,13 +247,9 @@ _wrap_gdk_draw_segments(PyGObject *self, PyObject *args, PyObject *kwargs) GdkSegment *segs; if (!PyArg_ParseTupleAndKeywords(args, kwargs, - "OO:GdkDrawable.draw_segments", - kwlist, &gc, &py_segs)) + "O!O:GdkDrawable.draw_segments", kwlist, + &PyGdkGC_Type, &gc, &py_segs)) return NULL; - if (!pygobject_check(gc, &PyGdkGC_Type)) { - PyErr_SetString(PyExc_TypeError, "gc must be a GdkGC"); - return NULL; - } if (!PySequence_Check(py_segs)) { PyErr_SetString(PyExc_TypeError, "segs must be a sequence"); return NULL; @@ -300,13 +284,10 @@ _wrap_gdk_draw_lines(PyGObject *self, PyObject *args, PyObject *kwargs) gint npoints, i; GdkPoint *points; - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "OO:GdkDrawable.draw_lines", - kwlist, &gc, &py_points)) - return NULL; - if (!pygobject_check(gc, &PyGdkGC_Type)) { - PyErr_SetString(PyExc_TypeError, "gc must be a GdkGC"); + if (!PyArg_ParseTupleAndKeywords(args, kwargs, + "O!O:GdkDrawable.draw_lines", kwlist, + &PyGdkGC_Type, &gc, &py_points)) return NULL; - } if (!PySequence_Check(py_points)) { PyErr_SetString(PyExc_TypeError, "points must be a sequence"); return NULL; @@ -330,6 +311,125 @@ _wrap_gdk_draw_lines(PyGObject *self, PyObject *args, PyObject *kwargs) return Py_None; } %% +override gdk_draw_rgb_image kwargs +static PyObject * +_wrap_gdk_draw_rgb_image(PyGObject *self, PyObject *args, PyObject *kwargs) +{ + static char *kwlist[] = { "gc", "x", "y", "width", "height", "dith", + "rgb_buf", "rowstride", "xdith", "ydith", NULL }; + PyGObject *gc; + PyObject *py_dith; + gint x, y, width, height, rowstride = -1, xdith = 0, ydith = 0, len; + GdkRgbDither dith; + guchar *rgb_buf; + + if (!PyArg_ParseTupleAndKeywords(args, kwargs, + "O!iiiiOs#|iii:GdkDrawable.draw_rgb_image", + kwlist, &PyGdkGC_Type, &gc, &x, &y, + &width, &height, &py_dith, + &rgb_buf, &len, &rowstride, + &xdith, &ydith)) + return NULL; + + if (pyg_enum_get_value(GDK_TYPE_RGB_DITHER, py_dith, (gint *)&dith)) + return NULL; + if (!(width > 0 && height > 0)) { + PyErr_SetString(PyExc_ValueError, + "height and width must be greater than zero"); + return NULL; + } + if (rowstride == -1) rowstride = width * 3; + if (len < rowstride * (height - 1) + width*3) { + PyErr_SetString(PyExc_IndexError, "rgb_buf is not large enough"); + return NULL; + } + gdk_draw_rgb_image_dithalign(GDK_DRAWABLE(self->obj), GDK_GC(gc->obj), + x, y, width, height, dith, rgb_buf, + rowstride, xdith, ydith); + Py_INCREF(Py_None); + return Py_None; +} +%% +ignore gdk_draw_rgb_image_dithalign +%% +override gdk_draw_rgb_32_image kwargs +static PyObject * +_wrap_gdk_draw_rgb_32_image(PyGObject *self, PyObject *args, PyObject *kwargs) +{ + static char *kwlist[] = { "gc", "x", "y", "width", "height", "dith", + "rgb_buf", "rowstride", "xdith", "ydith", NULL }; + PyGObject *gc; + PyObject *py_dith; + gint x, y, width, height, rowstride = -1, xdith = 0, ydith = 0, len; + GdkRgbDither dith; + guchar *rgb_buf; + + if (!PyArg_ParseTupleAndKeywords(args, kwargs, + "O!iiiiOs#|iii:GdkDrawable.draw_rgb_32_image", + kwlist, &PyGdkGC_Type, &gc, &x, &y, + &width, &height, &py_dith, + &rgb_buf, &len, &rowstride, + &xdith, &ydith)) + return NULL; + + if (pyg_enum_get_value(GDK_TYPE_RGB_DITHER, py_dith, (gint *)&dith)) + return NULL; + if (!(width > 0 && height > 0)) { + PyErr_SetString(PyExc_ValueError, + "height and width must be greater than zero"); + return NULL; + } + if (rowstride == -1) rowstride = width * 4; + if (len < rowstride * (height - 1) + width*4) { + PyErr_SetString(PyExc_IndexError, "rgb_buf is not large enough"); + return NULL; + } + gdk_draw_rgb_32_image_dithalign(GDK_DRAWABLE(self->obj), GDK_GC(gc->obj), + x, y, width, height, dith, rgb_buf, + rowstride, xdith, ydith); + Py_INCREF(Py_None); + return Py_None; +} +%% +ignore gdk_draw_rgb_32_image_dithalign +%% +override gdk_draw_gray_image kwargs +static PyObject * +_wrap_gdk_draw_gray_image(PyGObject *self, PyObject *args, PyObject *kwargs) +{ + static char *kwlist[] = { "gc", "x", "y", "width", "height", "dith", + "buf", "rowstride", NULL }; + PyGObject *gc; + PyObject *py_dith; + gint x, y, width, height, rowstride = -1, len; + GdkRgbDither dith; + guchar *buf; + + if (!PyArg_ParseTupleAndKeywords(args, kwargs, + "O!iiiiOs#|i:GdkDrawable.draw_gray_image", + kwlist, &PyGdkGC_Type, &gc, &x, &y, + &width, &height, &py_dith, + &buf, &len, &rowstride)) + return NULL; + + if (pyg_enum_get_value(GDK_TYPE_RGB_DITHER, py_dith, (gint *)&dith)) + return NULL; + if (!(width > 0 && height > 0)) { + PyErr_SetString(PyExc_ValueError, + "height and width must be greater than zero"); + return NULL; + } + if (rowstride == -1) rowstride = width; + if (len < rowstride * (height - 1) + width) { + PyErr_SetString(PyExc_IndexError, "buf is not large enough"); + return NULL; + } + gdk_draw_gray_image(GDK_DRAWABLE(self->obj), GDK_GC(gc->obj), x, y, + width, height, dith, buf, rowstride); + Py_INCREF(Py_None); + return Py_None; +} +%% ignore gdk_color_copy gdk_color_free gdk_color_hash gdk_color_equal |
