X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b68dc582b8c6dd32ef9f0a4ec91573bd5cc0296a..1af9e5c56dedf2ecd79d4f9186f6a8edb5c72448:/wxPython/src/gdi.i?ds=sidebyside diff --git a/wxPython/src/gdi.i b/wxPython/src/gdi.i index 8d6dbfe7a5..286c696f20 100644 --- a/wxPython/src/gdi.i +++ b/wxPython/src/gdi.i @@ -105,18 +105,60 @@ public: }; +// Declarations of some alternate "constructors" %new wxBitmap* wxEmptyBitmap(int width, int height, int depth=-1); +%new wxBitmap* wxBitmapFromXPMData(PyObject* listOfStrings); +%new wxBitmap* wxBitmapFromIcon(const wxIcon& icon); #ifdef __WXMSW__ %new wxBitmap* wxBitmapFromData(PyObject* data, long type, int width, int height, int depth = 1); #endif -%{ // Alternate 'constructor' + + +%{ // Implementations of some alternate "constructors" + wxBitmap* wxEmptyBitmap(int width, int height, int depth=-1) { return new wxBitmap(width, height, depth); } + static char** ConvertListOfStrings(PyObject* listOfStrings) { + char** cArray = NULL; + int count; + + if (!PyList_Check(listOfStrings)) { + PyErr_SetString(PyExc_TypeError, "Expected a list of strings."); + return NULL; + } + count = PyList_Size(listOfStrings); + cArray = new char*[count]; + + for(int x=0; xFindOrCreateFont(pointSize, family, style, weight, - underline, faceName, encoding); - } - // NO Destructor. - } + wxFont( int pointSize, int family, int style, int weight, + int underline=FALSE, char* faceName = "", + wxFontEncoding encoding=wxFONTENCODING_DEFAULT); + ~wxFont(); bool Ok(); - wxString GetFaceName(); int GetFamily(); #ifdef __WXMSW__ @@ -317,6 +376,18 @@ public: } %} + +class wxFontList { +public: + + void AddFont(wxFont* font); + wxFont * FindOrCreateFont(int point_size, int family, int style, int weight, + bool underline = FALSE, const char* facename = NULL, + wxFontEncoding encoding = wxFONTENCODING_DEFAULT); + void RemoveFont(wxFont *font); +}; + + //---------------------------------------------------------------------- class wxColour { @@ -352,19 +423,28 @@ public: %} -//---------------------------------------------------------------------- - -class wxPen { +class wxColourDatabase { public: - // I'll do it this way to use long-lived objects and not have to - // worry about when python may delete the object. + + wxColour *FindColour(const wxString& colour); + wxString FindName(const wxColour& colour) const; + %addmethods { - wxPen(wxColour* colour, int width=1, int style=wxSOLID) { - return wxThePenList->FindOrCreatePen(*colour, width, style); + void Append(const wxString& name, int red, int green, int blue) { + self->Append(name.c_str(), new wxColour(red, green, blue)); } - // NO Destructor. } +}; + + +//---------------------------------------------------------------------- + + +class wxPen { +public: + wxPen(wxColour& colour, int width=1, int style=wxSOLID); + ~wxPen(); int GetCap(); wxColour& GetColour(); @@ -389,20 +469,23 @@ public: #endif }; + +class wxPenList { +public: + + void AddPen(wxPen* pen); + wxPen* FindOrCreatePen(const wxColour& colour, int width, int style); + void RemovePen(wxPen* pen); +}; + + + //---------------------------------------------------------------------- class wxBrush { 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(const wxColour* colour, int style=wxSOLID) { - return wxTheBrushList->FindOrCreateBrush(*colour, style); - } - // NO Destructor. - } - -// wxBrush(const wxColour& colour, int style=wxSOLID); + wxBrush(const wxColour& colour, int style=wxSOLID); + ~wxBrush(); wxColour& GetColour(); wxBitmap * GetStipple(); @@ -413,6 +496,15 @@ public: void SetStyle(int style); }; + +class wxBrushList { +public: + + void AddBrush(wxBrush *brush); + wxBrush * FindOrCreateBrush(const wxColour& colour, int style); + void RemoveBrush(wxBrush *brush); +}; + //---------------------------------------------------------------------- @@ -594,15 +686,6 @@ public: //--------------------------------------------------------------------------- -#ifdef __WXMSW__ -class wxPrinterDC : public wxDC { -public: - wxPrinterDC(const wxString& driver, const wxString& device, const wxString& output, - bool interactive = TRUE, int orientation = wxPORTRAIT); -}; -#endif - -//--------------------------------------------------------------------------- #ifdef __WXMSW__ class wxMetaFileDC : public wxDC { @@ -668,6 +751,13 @@ extern wxPalette wxNullPalette; extern wxFont wxNullFont; extern wxColour wxNullColour; + +extern wxFontList* wxTheFontList; +extern wxPenList* wxThePenList; +extern wxBrushlist* wxTheBrushList; +extern wxColourDatabase* wxTheColourDatabase; + + %readwrite %{ #endif