X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d3bfec747ddf7b27e6f41f0117cd5cd6755fe021..b9ac87bc5cbe46227195e32c44e25831f8206e3c:/wxPython/src/msw/gdi.cpp?ds=inline diff --git a/wxPython/src/msw/gdi.cpp b/wxPython/src/msw/gdi.cpp index ea26ff17ff..94f27d89b8 100644 --- a/wxPython/src/msw/gdi.cpp +++ b/wxPython/src/msw/gdi.cpp @@ -136,8 +136,11 @@ static PyObject* t_output_helper(PyObject* target, PyObject* o) { } - wxBitmap* wxBitmapFromBits(char* bits, int width, int height, int depth = 1 ) { - return new wxBitmap(bits, width, height, depth); + wxBitmap* wxBitmapFromBits(PyObject* bits, int width, int height, int depth = 1 ) { + char* buf; + int length; + PyString_AsStringAndSize(bits, &buf, &length); + return new wxBitmap(buf, width, height, depth); } @@ -370,16 +373,20 @@ static PyObject *_wrap_wxBitmapFromIcon(PyObject *self, PyObject *args, PyObject static PyObject *_wrap_wxBitmapFromBits(PyObject *self, PyObject *args, PyObject *kwargs) { PyObject * _resultobj; wxBitmap * _result; - char * _arg0; + PyObject * _arg0; int _arg1; int _arg2; int _arg3 = (int ) 1; + PyObject * _obj0 = 0; char *_kwnames[] = { "bits","width","height","depth", NULL }; char _ptemp[128]; self = self; - if(!PyArg_ParseTupleAndKeywords(args,kwargs,"sii|i:wxBitmapFromBits",_kwnames,&_arg0,&_arg1,&_arg2,&_arg3)) + if(!PyArg_ParseTupleAndKeywords(args,kwargs,"Oii|i:wxBitmapFromBits",_kwnames,&_obj0,&_arg1,&_arg2,&_arg3)) return NULL; +{ + _arg0 = _obj0; +} { PyThreadState* __tstate = wxPyBeginAllowThreads(); _result = (wxBitmap *)wxBitmapFromBits(_arg0,_arg1,_arg2,_arg3); @@ -4236,6 +4243,45 @@ static PyObject *_wrap_wxPen_SetDashes(PyObject *self, PyObject *args, PyObject return _resultobj; } +static PyObject * wxPen_GetDashes(wxPen *self) { + wxDash* dashes; + int count = self->GetDashes(&dashes); + wxPyBeginBlockThreads(); + PyObject* retval = PyList_New(0); + for (int x=0; xGetStipple()) static PyObject *_wrap_wxPen_GetStipple(PyObject *self, PyObject *args, PyObject *kwargs) { PyObject * _resultobj; @@ -5839,6 +5885,42 @@ static PyObject *_wrap_wxDC_DrawRectangle(PyObject *self, PyObject *args, PyObje return _resultobj; } +#define wxDC_DrawRectangleRect(_swigobj,_swigarg0) (_swigobj->DrawRectangle(_swigarg0)) +static PyObject *_wrap_wxDC_DrawRectangleRect(PyObject *self, PyObject *args, PyObject *kwargs) { + PyObject * _resultobj; + wxDC * _arg0; + wxRect * _arg1; + PyObject * _argo0 = 0; + wxRect temp; + PyObject * _obj1 = 0; + char *_kwnames[] = { "self","rect", NULL }; + + self = self; + if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxDC_DrawRectangleRect",_kwnames,&_argo0,&_obj1)) + return NULL; + if (_argo0) { + if (_argo0 == Py_None) { _arg0 = NULL; } + else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxDC_p")) { + PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_DrawRectangleRect. Expected _wxDC_p."); + return NULL; + } + } +{ + _arg1 = &temp; + if (! wxRect_helper(_obj1, &_arg1)) + return NULL; +} +{ + PyThreadState* __tstate = wxPyBeginAllowThreads(); + wxDC_DrawRectangleRect(_arg0,*_arg1); + + wxPyEndAllowThreads(__tstate); + if (PyErr_Occurred()) return NULL; +} Py_INCREF(Py_None); + _resultobj = Py_None; + return _resultobj; +} + #define wxDC_DrawRotatedText(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3) (_swigobj->DrawRotatedText(_swigarg0,_swigarg1,_swigarg2,_swigarg3)) static PyObject *_wrap_wxDC_DrawRotatedText(PyObject *self, PyObject *args, PyObject *kwargs) { PyObject * _resultobj; @@ -6087,6 +6169,7 @@ static PyObject *_wrap_wxDC_EndPage(PyObject *self, PyObject *args, PyObject *kw #define wxDC_FloodFill(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3) (_swigobj->FloodFill(_swigarg0,_swigarg1,_swigarg2,_swigarg3)) static PyObject *_wrap_wxDC_FloodFill(PyObject *self, PyObject *args, PyObject *kwargs) { PyObject * _resultobj; + bool _result; wxDC * _arg0; long _arg1; long _arg2; @@ -6114,12 +6197,11 @@ static PyObject *_wrap_wxDC_FloodFill(PyObject *self, PyObject *args, PyObject * } { PyThreadState* __tstate = wxPyBeginAllowThreads(); - wxDC_FloodFill(_arg0,_arg1,_arg2,*_arg3,_arg4); + _result = (bool )wxDC_FloodFill(_arg0,_arg1,_arg2,*_arg3,_arg4); wxPyEndAllowThreads(__tstate); if (PyErr_Occurred()) return NULL; -} Py_INCREF(Py_None); - _resultobj = Py_None; +} _resultobj = Py_BuildValue("i",_result); return _resultobj; } @@ -7324,6 +7406,42 @@ static PyObject *_wrap_wxDC_SetClippingRegionAsRegion(PyObject *self, PyObject * return _resultobj; } +#define wxDC_SetClippingRect(_swigobj,_swigarg0) (_swigobj->SetClippingRegion(_swigarg0)) +static PyObject *_wrap_wxDC_SetClippingRect(PyObject *self, PyObject *args, PyObject *kwargs) { + PyObject * _resultobj; + wxDC * _arg0; + wxRect * _arg1; + PyObject * _argo0 = 0; + wxRect temp; + PyObject * _obj1 = 0; + char *_kwnames[] = { "self","rect", NULL }; + + self = self; + if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxDC_SetClippingRect",_kwnames,&_argo0,&_obj1)) + return NULL; + if (_argo0) { + if (_argo0 == Py_None) { _arg0 = NULL; } + else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxDC_p")) { + PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_SetClippingRect. Expected _wxDC_p."); + return NULL; + } + } +{ + _arg1 = &temp; + if (! wxRect_helper(_obj1, &_arg1)) + return NULL; +} +{ + PyThreadState* __tstate = wxPyBeginAllowThreads(); + wxDC_SetClippingRect(_arg0,*_arg1); + + wxPyEndAllowThreads(__tstate); + if (PyErr_Occurred()) return NULL; +} Py_INCREF(Py_None); + _resultobj = Py_None; + return _resultobj; +} + #define wxDC_SetPalette(_swigobj,_swigarg0) (_swigobj->SetPalette(_swigarg0)) static PyObject *_wrap_wxDC_SetPalette(PyObject *self, PyObject *args, PyObject *kwargs) { PyObject * _resultobj; @@ -8228,6 +8346,8 @@ static PyObject *_wrap_wxDC_GetHDC(PyObject *self, PyObject *args, PyObject *kwa } static PyObject * wxDC__DrawPointList(wxDC *self,PyObject * pyPoints,PyObject * pyPens) { + wxPyBeginBlockThreads(); + bool isFastSeq = PyList_Check(pyPoints) || PyTuple_Check(pyPoints); bool isFastPens = PyList_Check(pyPens) || PyTuple_Check(pyPens); int numObjs = 0; @@ -8236,6 +8356,7 @@ static PyObject * wxDC__DrawPointList(wxDC *self,PyObject * pyPoints,PyObject * PyObject* obj; int x1, y1; int i = 0; + PyObject* retval; if (!PySequence_Check(pyPoints)) { goto err0; @@ -8278,6 +8399,13 @@ static PyObject * wxDC__DrawPointList(wxDC *self,PyObject * pyPoints,PyObject * Py_DECREF(obj); goto err0; } + if (PyErr_Occurred()) { + retval = NULL; + if (!isFastPens) + Py_DECREF(obj); + goto exit; + } + // Now draw the point self->DrawPoint(x1, y1); @@ -8287,14 +8415,21 @@ static PyObject * wxDC__DrawPointList(wxDC *self,PyObject * pyPoints,PyObject * } Py_INCREF(Py_None); - return Py_None; + retval = Py_None; + goto exit; err1: PyErr_SetString(PyExc_TypeError, "Expected a sequence of wxPens"); - return NULL; + retval = NULL; + goto exit; err0: PyErr_SetString(PyExc_TypeError, "Expected a sequence of (x,y) sequences."); - return NULL; + retval = NULL; + goto exit; + + exit: + wxPyEndBlockThreads(); + return retval; } static PyObject *_wrap_wxDC__DrawPointList(PyObject *self, PyObject *args, PyObject *kwargs) { PyObject * _resultobj; @@ -8336,6 +8471,8 @@ static PyObject *_wrap_wxDC__DrawPointList(PyObject *self, PyObject *args, PyObj } static PyObject * wxDC__DrawLineList(wxDC *self,PyObject * pyLines,PyObject * pyPens) { + wxPyBeginBlockThreads(); + bool isFastSeq = PyList_Check(pyLines) || PyTuple_Check(pyLines); bool isFastPens = PyList_Check(pyPens) || PyTuple_Check(pyPens); int numObjs = 0; @@ -8344,6 +8481,7 @@ static PyObject * wxDC__DrawLineList(wxDC *self,PyObject * pyLines,PyObject * py PyObject* obj; int x1, y1, x2, y2; int i = 0; + PyObject* retval; if (!PySequence_Check(pyLines)) { goto err0; @@ -8386,6 +8524,12 @@ static PyObject * wxDC__DrawLineList(wxDC *self,PyObject * pyLines,PyObject * py Py_DECREF(obj); goto err0; } + if (PyErr_Occurred()) { + retval = NULL; + if (!isFastPens) + Py_DECREF(obj); + goto exit; + } // Now draw the line self->DrawLine(x1, y1, x2, y2); @@ -8395,14 +8539,22 @@ static PyObject * wxDC__DrawLineList(wxDC *self,PyObject * pyLines,PyObject * py } Py_INCREF(Py_None); - return Py_None; + retval = Py_None; + goto exit; err1: PyErr_SetString(PyExc_TypeError, "Expected a sequence of wxPens"); - return NULL; + retval = NULL; + goto exit; + err0: PyErr_SetString(PyExc_TypeError, "Expected a sequence of (x1,y1, x2,y2) sequences."); - return NULL; + retval = NULL; + goto exit; + + exit: + wxPyEndBlockThreads(); + return retval; } static PyObject *_wrap_wxDC__DrawLineList(PyObject *self, PyObject *args, PyObject *kwargs) { PyObject * _resultobj; @@ -10086,6 +10238,50 @@ static PyObject *_wrap_new_wxRegion(PyObject *self, PyObject *args, PyObject *kw return _resultobj; } +#define new_wxRegionFromPoints(_swigarg0,_swigarg1,_swigarg2) (new wxRegion(_swigarg0,_swigarg1,_swigarg2)) +static PyObject *_wrap_new_wxRegionFromPoints(PyObject *self, PyObject *args, PyObject *kwargs) { + PyObject * _resultobj; + wxRegion * _result; + int _arg0; + wxPoint * _arg1; + int _arg2 = (int ) wxWINDING_RULE; + int NPOINTS; + PyObject * _obj1 = 0; + char *_kwnames[] = { "points","fillStyle", NULL }; + char _ptemp[128]; + + self = self; + if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O|i:new_wxRegionFromPoints",_kwnames,&_obj1,&_arg2)) + return NULL; + if (_obj1) +{ + _arg1 = wxPoint_LIST_helper(_obj1, &NPOINTS); + if (_arg1 == NULL) { + return NULL; + } +} +{ + _arg0 = NPOINTS; +} +{ + PyThreadState* __tstate = wxPyBeginAllowThreads(); + _result = (wxRegion *)new_wxRegionFromPoints(_arg0,_arg1,_arg2); + + wxPyEndAllowThreads(__tstate); + if (PyErr_Occurred()) return NULL; +} if (_result) { + SWIG_MakePtr(_ptemp, (char *) _result,"_wxRegion_p"); + _resultobj = Py_BuildValue("s",_ptemp); + } else { + Py_INCREF(Py_None); + _resultobj = Py_None; + } +{ + delete [] _arg1; +} + return _resultobj; +} + #define delete_wxRegion(_swigobj) (delete _swigobj) static PyObject *_wrap_delete_wxRegion(PyObject *self, PyObject *args, PyObject *kwargs) { PyObject * _resultobj; @@ -11173,6 +11369,7 @@ static PyMethodDef gdicMethods[] = { { "wxRegion_Offset", (PyCFunction) _wrap_wxRegion_Offset, METH_VARARGS | METH_KEYWORDS }, { "wxRegion_Clear", (PyCFunction) _wrap_wxRegion_Clear, METH_VARARGS | METH_KEYWORDS }, { "delete_wxRegion", (PyCFunction) _wrap_delete_wxRegion, METH_VARARGS | METH_KEYWORDS }, + { "new_wxRegionFromPoints", (PyCFunction) _wrap_new_wxRegionFromPoints, METH_VARARGS | METH_KEYWORDS }, { "new_wxRegion", (PyCFunction) _wrap_new_wxRegion, METH_VARARGS | METH_KEYWORDS }, { "wxImageList_GetSize", (PyCFunction) _wrap_wxImageList_GetSize, METH_VARARGS | METH_KEYWORDS }, { "wxImageList_RemoveAll", (PyCFunction) _wrap_wxImageList_RemoveAll, METH_VARARGS | METH_KEYWORDS }, @@ -11241,6 +11438,7 @@ static PyMethodDef gdicMethods[] = { { "wxDC_SetFont", (PyCFunction) _wrap_wxDC_SetFont, METH_VARARGS | METH_KEYWORDS }, { "wxDC_SetBrush", (PyCFunction) _wrap_wxDC_SetBrush, METH_VARARGS | METH_KEYWORDS }, { "wxDC_SetPalette", (PyCFunction) _wrap_wxDC_SetPalette, METH_VARARGS | METH_KEYWORDS }, + { "wxDC_SetClippingRect", (PyCFunction) _wrap_wxDC_SetClippingRect, METH_VARARGS | METH_KEYWORDS }, { "wxDC_SetClippingRegionAsRegion", (PyCFunction) _wrap_wxDC_SetClippingRegionAsRegion, METH_VARARGS | METH_KEYWORDS }, { "wxDC_SetClippingRegion", (PyCFunction) _wrap_wxDC_SetClippingRegion, METH_VARARGS | METH_KEYWORDS }, { "wxDC_SetBackgroundMode", (PyCFunction) _wrap_wxDC_SetBackgroundMode, METH_VARARGS | METH_KEYWORDS }, @@ -11283,6 +11481,7 @@ static PyMethodDef gdicMethods[] = { { "wxDC_DrawSpline", (PyCFunction) _wrap_wxDC_DrawSpline, METH_VARARGS | METH_KEYWORDS }, { "wxDC_DrawRoundedRectangle", (PyCFunction) _wrap_wxDC_DrawRoundedRectangle, METH_VARARGS | METH_KEYWORDS }, { "wxDC_DrawRotatedText", (PyCFunction) _wrap_wxDC_DrawRotatedText, METH_VARARGS | METH_KEYWORDS }, + { "wxDC_DrawRectangleRect", (PyCFunction) _wrap_wxDC_DrawRectangleRect, METH_VARARGS | METH_KEYWORDS }, { "wxDC_DrawRectangle", (PyCFunction) _wrap_wxDC_DrawRectangle, METH_VARARGS | METH_KEYWORDS }, { "wxDC_DrawPoint", (PyCFunction) _wrap_wxDC_DrawPoint, METH_VARARGS | METH_KEYWORDS }, { "wxDC_DrawPolygon", (PyCFunction) _wrap_wxDC_DrawPolygon, METH_VARARGS | METH_KEYWORDS }, @@ -11327,6 +11526,7 @@ static PyMethodDef gdicMethods[] = { { "new_wxPyPen", (PyCFunction) _wrap_new_wxPyPen, METH_VARARGS | METH_KEYWORDS }, { "wxPen_SetStipple", (PyCFunction) _wrap_wxPen_SetStipple, METH_VARARGS | METH_KEYWORDS }, { "wxPen_GetStipple", (PyCFunction) _wrap_wxPen_GetStipple, METH_VARARGS | METH_KEYWORDS }, + { "wxPen_GetDashes", (PyCFunction) _wrap_wxPen_GetDashes, METH_VARARGS | METH_KEYWORDS }, { "wxPen_SetDashes", (PyCFunction) _wrap_wxPen_SetDashes, METH_VARARGS | METH_KEYWORDS }, { "wxPen_SetWidth", (PyCFunction) _wrap_wxPen_SetWidth, METH_VARARGS | METH_KEYWORDS }, { "wxPen_SetStyle", (PyCFunction) _wrap_wxPen_SetStyle, METH_VARARGS | METH_KEYWORDS },