X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/23bed520417f9946f01bbcf2f18c26a7bc3cb2a7..91c536df157aa500e832ff9e8541839d2e07f6b4:/wxPython/src/gdi.i diff --git a/wxPython/src/gdi.i b/wxPython/src/gdi.i index 697de042fa..032a3b2947 100644 --- a/wxPython/src/gdi.i +++ b/wxPython/src/gdi.i @@ -20,6 +20,7 @@ #include #include #include +#include %} //---------------------------------------------------------------------- @@ -32,6 +33,11 @@ %import misc.i +//--------------------------------------------------------------------------- +%{ + // Put some wx default wxChar* values into wxStrings. + static const wxString wxPyEmptyString(wxT("")); +%} //--------------------------------------------------------------------------- class wxGDIObject : public wxObject { @@ -51,12 +57,12 @@ public: class wxBitmap : public wxGDIObject { public: - wxBitmap(const wxString& name, wxBitmapType type=wxBITMAP_TYPE_BMP); + wxBitmap(const wxString& name, wxBitmapType type=wxBITMAP_TYPE_ANY); ~wxBitmap(); wxPalette* GetPalette(); wxMask* GetMask(); - bool LoadFile(const wxString& name, wxBitmapType type=wxBITMAP_TYPE_BMP); + bool LoadFile(const wxString& name, wxBitmapType type=wxBITMAP_TYPE_ANY); bool SaveFile(const wxString& name, wxBitmapType type, wxPalette* palette = NULL); void SetMask(wxMask* mask); #ifdef __WXMSW__ @@ -234,6 +240,7 @@ public: // Declarations of some alternate "constructors" %new wxIcon* wxEmptyIcon(); %new wxIcon* wxIconFromXPMData(PyObject* listOfStrings); +%new wxIcon* wxIconFromBitmap(const wxBitmap& bmp); %{ // Implementations of some alternate "constructors" wxIcon* wxEmptyIcon() { @@ -251,6 +258,12 @@ public: delete [] cArray; return icon; } + + wxIcon* wxIconFromBitmap(const wxBitmap& bmp) { + wxIcon* icon = new wxIcon(); + icon->CopyFromBitmap(bmp); + return icon; + } %} //--------------------------------------------------------------------------- @@ -474,7 +487,7 @@ public: // that can be used it wxFont ctor otherwise return FALSE //bool GetAltForEncoding(wxFontEncoding encoding, // wxFontEncoding *alt_encoding, - // const wxString& facename = wxEmptyString, + // const wxString& facename = wxPyEmptyString, // bool interactive = TRUE); @@ -483,7 +496,7 @@ public: // returns None. %addmethods { PyObject* GetAltForEncoding(wxFontEncoding encoding, - const wxString& facename = wxEmptyString, + const wxString& facename = wxPyEmptyString, bool interactive = TRUE) { wxFontEncoding alt_enc; if (self->GetAltForEncoding(encoding, &alt_enc, facename, interactive)) @@ -499,7 +512,7 @@ public: // checks whether given encoding is available in given face or not. // If no facename is given, bool IsEncodingAvailable(wxFontEncoding encoding, - const wxString& facename = wxEmptyString); + const wxString& facename = wxPyEmptyString); // returns the encoding for the given charset (in the form of RFC 2046) or // wxFONTENCODING_SYSTEM if couldn't decode it @@ -534,7 +547,7 @@ public: void SetConfigPath(const wxString& prefix); // return default config path - static const wxChar *GetDefaultConfigPath(); + static wxString GetDefaultConfigPath(); }; @@ -543,7 +556,7 @@ public: class wxFont : public wxGDIObject { public: wxFont( int pointSize, int family, int style, int weight, - int underline=FALSE, char* faceName = "", + int underline=FALSE, const wxString& faceName = wxPyEmptyString, wxFontEncoding encoding=wxFONTENCODING_DEFAULT); %name(wxFontFromNativeInfo)wxFont(const wxNativeFontInfo& info); @@ -591,7 +604,7 @@ public: void AddFont(wxFont* font); wxFont * FindOrCreateFont(int point_size, int family, int style, int weight, - bool underline = FALSE, const char* facename = NULL, + bool underline = FALSE, const wxString& facename = wxPyEmptyString, wxFontEncoding encoding = wxFONTENCODING_DEFAULT); void RemoveFont(wxFont *font); @@ -643,6 +656,25 @@ public: %addmethods { void Append(const wxString& name, int red, int green, int blue) { + // first see if the name is already there + wxString cName = name; + cName.MakeUpper(); + wxString cName2 = cName; + if ( !cName2.Replace(wxT("GRAY"), wxT("GREY")) ) + cName2.clear(); + + wxNode *node = self->First(); + while ( node ) { + const wxChar *key = node->GetKeyString(); + if ( cName == key || cName2 == key ) { + wxColour* c = (wxColour *)node->Data(); + c->Set(red, green, blue); + return; + } + node = node->Next(); + } + + // otherwise append the new colour self->Append(name.c_str(), new wxColour(red, green, blue)); } } @@ -1113,6 +1145,26 @@ public: %} +//--------------------------------------------------------------------------- + +class wxBufferedDC : public wxMemoryDC { +public: + // Construct a wxBufferedDC using a user supplied buffer. + wxBufferedDC( wxDC *dc, const wxBitmap &buffer ); + + // Construct a wxBufferedDC with an internal buffer of 'area' + // (where area is usually something like the size of the window + // being buffered) + %name(wxBufferedDCInternalBuffer)wxBufferedDC( wxDC *dc, const wxSize &area ); +}; + + +class wxBufferedPaintDC : public wxBufferedDC +{ +public: + wxBufferedPaintDC( wxWindow *window, const wxBitmap &buffer = wxNullBitmap ); +}; + //--------------------------------------------------------------------------- class wxScreenDC : public wxDC { @@ -1156,7 +1208,7 @@ public: class wxMetaFile : public wxObject { public: - wxMetaFile(const wxString& filename = wxEmptyString); + wxMetaFile(const wxString& filename = wxPyEmptyString); ~wxMetaFile(); bool Ok(); @@ -1176,9 +1228,9 @@ public: class wxMetaFileDC : public wxDC { public: - wxMetaFileDC(const wxString& filename = wxEmptyString, + wxMetaFileDC(const wxString& filename = wxPyEmptyString, int width = 0, int height = 0, - const wxString& description = wxEmptyString); + const wxString& description = wxPyEmptyString); wxMetaFile* Close(); }; @@ -1248,7 +1300,9 @@ public: ~wxRegion(); void Clear(); +#ifndef __WXMAC__ bool Offset(wxCoord x, wxCoord y); +#endif wxRegionContain Contains(long x, long y); %name(ContainsPoint)wxRegionContain Contains(const wxPoint& pt);