X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7c23a0b01b3fb667ec41fc8271ce1ee5b5aa4e19..f9c165b1d621341bce1edd840ac71590c5d37f62:/include/wx/stubs/pen.h diff --git a/include/wx/stubs/pen.h b/include/wx/stubs/pen.h index 74e961c1d3..4cb73dcb8e 100644 --- a/include/wx/stubs/pen.h +++ b/include/wx/stubs/pen.h @@ -17,8 +17,20 @@ #endif #include "wx/gdiobj.h" +#include "wx/colour.h" +#include "wx/bitmap.h" -typedef WXDWORD wxDash ; +// PORTERS, NB: this typedef is the platform specific type for dashes.. +// change all occurences of XSTUBX in pen.h and pen.cpp to something +// meaningful for your port (eg. wxMSWDash, wxGTKDash) and change the +// type from long to whatever your platform requires. + +typedef long wxXSTUBXDash; + +// wxDash is typedef'd in gdicmn.h and is the type that should be used +// for all public interfaces. Convert parameters to the wxXSTUBXDash +// type for use inside the platform specific methods, and cast them +// back to wxDash again before passing back to the user. -- RL class WXDLLEXPORT wxPen; @@ -27,16 +39,17 @@ class WXDLLEXPORT wxPenRefData: public wxGDIRefData friend class WXDLLEXPORT wxPen; public: wxPenRefData(); + wxPenRefData(const wxPenRefData& data); ~wxPenRefData(); protected: int m_width; int m_style; - int m_join ; - int m_cap ; - wxBitmap m_stipple ; - int m_nbDash ; - wxDash * m_dash ; + int m_join; + int m_cap; + wxBitmap m_stipple; + int m_nbDash; + wxXSTUBXDash *m_dash; wxColour m_colour; /* TODO: implementation WXHPEN m_hPen; @@ -52,10 +65,8 @@ class WXDLLEXPORT wxPen: public wxGDIObject public: wxPen(); wxPen(const wxColour& col, int width, int style); - wxPen(const wxString& col, int width, int style); wxPen(const wxBitmap& stipple, int width); inline wxPen(const wxPen& pen) { Ref(pen); } - inline wxPen(const wxPen* pen) { if (pen) Ref(*pen); } ~wxPen(); inline wxPen& operator = (const wxPen& pen) { if (*this == pen) return (*this); Ref(pen); return *this; } @@ -66,8 +77,7 @@ public: // Override in order to recreate the pen void SetColour(const wxColour& col) ; - void SetColour(const wxString& col) ; - void SetColour(const unsigned char r, const unsigned char g, const unsigned char b) ; + void SetColour(unsigned char r, unsigned char g, unsigned char b) ; void SetWidth(int width) ; void SetStyle(int style) ; @@ -81,11 +91,22 @@ public: inline int GetStyle() const { return (M_PENDATA ? M_PENDATA->m_style : 0); }; inline int GetJoin() const { return (M_PENDATA ? M_PENDATA->m_join : 0); }; inline int GetCap() const { return (M_PENDATA ? M_PENDATA->m_cap : 0); }; - inline int GetDashes(wxDash **ptr) const { - *ptr = (M_PENDATA ? M_PENDATA->m_dash : NULL); return (M_PENDATA ? M_PENDATA->m_nbDash : 0); + inline int GetDashes(wxDash **ptr) const + { + *ptr = (M_PENDATA ? (wxDash*)M_PENDATA->m_dash : (wxDash*)NULL); + return (M_PENDATA ? M_PENDATA->m_nbDash : 0); } - inline wxBitmap *GetStipple() const { return (M_PENDATA ? (& M_PENDATA->m_stipple) : NULL); }; + inline wxBitmap *GetStipple() const { return (M_PENDATA ? (& M_PENDATA->m_stipple) : (wxBitmap*) NULL); }; + +// Implementation + + // Useful helper: create the brush resource + bool RealizeResource(); + + // When setting properties, we must make sure we're not changing + // another object + void Unshare(); }; #endif