X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/12028905135250524409f1e7b9bfa9c55e5ce16b..1824b08894c110797316f6dbd0f6e9464bde7586:/include/wx/gdicmn.h diff --git a/include/wx/gdicmn.h b/include/wx/gdicmn.h index 7976c78ecc..85d5ad6150 100644 --- a/include/wx/gdicmn.h +++ b/include/wx/gdicmn.h @@ -116,7 +116,7 @@ enum wxStockCursor wxCURSOR_DEFAULT, // standard X11 cursor #endif #ifdef __WXMAC__ - wxCURSOR_COPY_ARROW , // MacOS Theme Plus arrow + wxCURSOR_COPY_ARROW , // MacOS Theme Plus arrow #endif #ifdef __X__ // Not yet implemented for Windows @@ -214,7 +214,7 @@ public: // FIXME are these really useful? If they're, we should have += &c as well wxSize operator+(const wxSize& sz) { return wxSize(x + sz.x, y + sz.y); } wxSize operator-(const wxSize& sz) { return wxSize(x - sz.x, y - sz.y); } - + void IncTo(const wxSize& sz) { if ( sz.x > x ) x = sz.x; if ( sz.y > y ) y = sz.y; } void DecTo(const wxSize& sz) @@ -228,6 +228,18 @@ public: int GetWidth() const { return x; } int GetHeight() const { return y; } + bool IsFullySpecified() const { return x != -1 && y != -1; } + + // combine this size with the other one replacing the default (i.e. equal + // to -1) components of this object with those of the other + void SetDefaults(const wxSize& size) + { + if ( x == -1 ) + x = size.x; + if ( y == -1 ) + y = size.y; + } + // compatibility int GetX() const { return x; } int GetY() const { return y; } @@ -273,12 +285,13 @@ public: wxPoint& operator+=(const wxPoint& p) { x += p.x; y += p.y; return *this; } wxPoint& operator-=(const wxPoint& p) { x -= p.x; y -= p.y; return *this; } -}; -#if WXWIN_COMPATIBILITY - #define wxIntPoint wxPoint - #define wxRectangle wxRect -#endif // WXWIN_COMPATIBILITY + wxPoint& operator+=(const wxSize& s) { x += s.GetWidth(); y += s.GetHeight(); return *this; } + wxPoint& operator-=(const wxSize& s) { x -= s.GetWidth(); y -= s.GetHeight(); return *this; } + + wxPoint operator+(const wxSize& s) const { return wxPoint(x + s.GetWidth(), y + s.GetHeight()); } + wxPoint operator-(const wxSize& s) const { return wxPoint(x - s.GetWidth(), y - s.GetHeight()); } +}; // --------------------------------------------------------------------------- // wxRect @@ -316,6 +329,16 @@ public: wxSize GetSize() const { return wxSize(width, height); } void SetSize( const wxSize &s ) { width = s.GetWidth(); height = s.GetHeight(); } + wxPoint GetTopLeft() const { return GetPosition(); } + wxPoint GetLeftTop() const { return GetTopLeft(); } + void SetTopLeft(const wxPoint &p) { SetPosition(p); } + void SetLeftTop(const wxPoint &p) { SetTopLeft(p); } + + wxPoint GetBottomRight() const { return wxPoint(GetRight(), GetBottom()); } + wxPoint GetRightBottom() const { return GetBottomRight(); } + void SetBottomRight(const wxPoint &p) { SetRight(p.x); SetBottom(p.y); } + void SetRightBottom(const wxPoint &p) { SetBottomRight(p); } + int GetLeft() const { return x; } int GetTop() const { return y; } int GetBottom() const { return y + height - 1; } @@ -422,23 +445,31 @@ class WXDLLEXPORT wxColourDatabase { public: wxColourDatabase(); - ~wxColourDatabase() ; + ~wxColourDatabase(); - // Not const because it may add a name to the database - wxColour *FindColour(const wxString& colour) ; - wxColour *FindColourNoAdd(const wxString& colour) const; + // find colour by name or name for the given colour + wxColour Find(const wxString& name) const; wxString FindName(const wxColour& colour) const; - void AddColour(const wxString& name, wxColour* colour); - void Initialize(); + + // add a new colour to the database + void AddColour(const wxString& name, const wxColour& colour); + + // deprecated, use Find() instead + wxDEPRECATED( wxColour *FindColour(const wxString& name) ); + + #ifdef __WXPM__ // PM keeps its own type of colour table long* m_palTable; size_t m_nSize; #endif + private: - wxColour* FindColour(const wxString& colour, bool add); + // load the database with the built in colour values when called for the + // first time, do nothing after this + void Initialize(); - wxStringToColourHashMap* m_map; + wxStringToColourHashMap *m_map; }; class WXDLLEXPORT wxBitmapList : public wxList