X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/5bff6bb8eace63d3841c1eb6d36230647c854f76..7ece89c6b10b74d90534afcffc61522a8f394d8c:/utils/wxPython/src/gdi.i?ds=sidebyside diff --git a/utils/wxPython/src/gdi.i b/utils/wxPython/src/gdi.i index 3a7eee039f..353c478c54 100644 --- a/utils/wxPython/src/gdi.i +++ b/utils/wxPython/src/gdi.i @@ -86,7 +86,7 @@ public: %new wxBitmap* wxEmptyBitmap(int width, int height, int depth=-1); #ifdef __WXMSW__ -%new wxBitmap* wxBitmapFromData(char* data, long type, +%new wxBitmap* wxBitmapFromData(PyObject* data, long type, int width, int height, int depth = 1); #endif @@ -96,9 +96,14 @@ public: } #ifdef __WXMSW__ - wxBitmap* wxBitmapFromData(char* data, long type, + wxBitmap* wxBitmapFromData(PyObject* data, long type, int width, int height, int depth = 1) { - return new wxBitmap((void*)data, type, width, height, depth); + if (! PyString_Check(data)) { + PyErr_SetString(PyExc_TypeError, "Expected string object"); + return NULL; + } + + return new wxBitmap((void*)PyString_AsString(data), type, width, height, depth); } #endif %} @@ -301,6 +306,10 @@ public: return rv; } } + %pragma(python) addtoclass = "asTuple = Get" + %pragma(python) addtoclass = "def __str__(self): return str(self.asTuple())" + %pragma(python) addtoclass = "def __repr__(self): return str(self.asTuple())" + }; %new wxColour* wxNamedColour(const wxString& colorName); @@ -346,7 +355,7 @@ public: // **** This one needs to return a list of ints (wxDash) int GetDashes(wxDash **dashes); - void SetDashes(int LCOUNT, wxDash* LIST); + void SetDashes(int LCOUNT, wxDash* choices); #ifdef __WXMSW__ wxBitmap* GetStipple(); @@ -361,12 +370,14 @@ public: // I'll do it this way to use long-lived objects and not have to // worry about when python may delete the object. %addmethods { - wxBrush(wxColour* colour, int style=wxSOLID) { + wxBrush(const wxColour* colour, int style=wxSOLID) { return wxTheBrushList->FindOrCreateBrush(*colour, style); } // NO Destructor. } +// wxBrush(const wxColour& colour, int style=wxSOLID); + wxColour& GetColour(); wxBitmap * GetStipple(); int GetStyle(); @@ -408,14 +419,14 @@ public: void DrawEllipticArc(long x, long y, long width, long height, long start, long end); void DrawIcon(const wxIcon& icon, long x, long y); void DrawLine(long x1, long y1, long x2, long y2); - void DrawLines(int LCOUNT, wxPoint* LIST, long xoffset=0, long yoffset=0); - void DrawPolygon(int LCOUNT, wxPoint* LIST, long xoffset=0, long yoffset=0, + void DrawLines(int PCOUNT, wxPoint* points, long xoffset=0, long yoffset=0); + void DrawPolygon(int PCOUNT, wxPoint* points, long xoffset=0, long yoffset=0, int fill_style=wxODDEVEN_RULE); void DrawPoint(long x, long y); void DrawRectangle(long x, long y, long width, long height); void DrawRotatedText(const wxString& text, wxCoord x, wxCoord y, double angle); void DrawRoundedRectangle(long x, long y, long width, long height, long radius=20); - void DrawSpline(int LCOUNT, wxPoint* LIST); + void DrawSpline(int PCOUNT, wxPoint* points); void DrawText(const wxString& text, long x, long y); void EndDoc(); void EndDrawing(); @@ -429,6 +440,7 @@ public: long *OUTPUT, long *OUTPUT); wxFont& GetFont(); int GetLogicalFunction(); + void GetLogicalScale(double *OUTPUT, double *OUTPUT); int GetMapMode(); bool GetOptimization(); wxPen& GetPen(); @@ -441,12 +453,14 @@ public: } %name(GetSizeTuple)void GetSize(int* OUTPUT, int* OUTPUT); wxSize GetSize(); + wxSize GetSizeMM(); wxColour& GetTextBackground(); void GetTextExtent(const wxString& string, long *OUTPUT, long *OUTPUT); %name(GetFullTextExtent)void GetTextExtent(const wxString& string, long *OUTPUT, long *OUTPUT, long *OUTPUT, long* OUTPUT, const wxFont* font = NULL); wxColour& GetTextForeground(); + void GetUserScale(double *OUTPUT, double *OUTPUT); long LogicalToDeviceX(long x); long LogicalToDeviceXRel(long x); long LogicalToDeviceY(long y); @@ -464,6 +478,7 @@ public: void SetBrush(const wxBrush& brush); void SetFont(const wxFont& font); void SetLogicalFunction(int function); + void SetLogicalScale(double x, double y); void SetMapMode(int mode); void SetOptimization(bool optimize); void SetPen(const wxPen& pen); @@ -474,26 +489,20 @@ public: void StartPage(); -// Don't need this one anymore as wxWindows has one... -// %addmethods { -// // This one is my own creation... -// void DrawBitmap(wxBitmap& bitmap, long x, long y, bool swapPalette=TRUE) { -// wxMemoryDC* memDC = new wxMemoryDC; -// memDC->SelectObject(bitmap); -// #ifdef __WXMSW__ -// if (swapPalette) -// self->SetPalette(*bitmap.GetPalette()); -// #endif -// self->Blit(x, y, bitmap.GetWidth(), bitmap.GetHeight(), memDC, -// 0, 0, self->GetLogicalFunction()); -// memDC->SelectObject(wxNullBitmap); -// delete memDC; -// } -// } void DrawBitmap(const wxBitmap& bitmap, long x, long y, int useMask = FALSE); + bool CanDrawBitmap(); + bool CanGetTextExtent(); + int GetDepth(); + wxSize GetPPI(); + + void GetLogicalOrigin(int *OUTPUT, int *OUTPUT); + void SetLogicalOrigin(int x, int y); + void GetDeviceOrigin(int *OUTPUT, int *OUTPUT); + void SetAxisOrientation(bool xLeftRight, bool yBottomUp); + }; @@ -520,8 +529,8 @@ class wxScreenDC : public wxDC { public: wxScreenDC(); - bool StartDrawingOnTop(wxWindow* window); - %name(StartDrawingOnTopRect) bool StartDrawingOnTop(wxRect* rect = NULL); + %name(StartDrawingOnTopWin) bool StartDrawingOnTop(wxWindow* window); + bool StartDrawingOnTop(wxRect* rect = NULL); bool EndDrawingOnTop(); }; @@ -640,7 +649,7 @@ extern wxColour wxNullColour; class wxPalette { public: - wxPalette(int LCOUNT, byte* LIST, byte* LIST, byte* LIST); + wxPalette(int LCOUNT, byte* choices, byte* choices, byte* choices); ~wxPalette(); int GetPixel(byte red, byte green, byte blue);