X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8bbe427f8e5a2078b266e282453595b5a634d35c..4efb5650d15789f9f409b963eb4f9f6de999b51e:/src/gtk/pen.cpp diff --git a/src/gtk/pen.cpp b/src/gtk/pen.cpp index 8402796a46..c398c71b58 100644 --- a/src/gtk/pen.cpp +++ b/src/gtk/pen.cpp @@ -14,6 +14,8 @@ #include "wx/pen.h" +#include + //----------------------------------------------------------------------------- // wxPen //----------------------------------------------------------------------------- @@ -22,14 +24,16 @@ class wxPenRefData: public wxObjectRefData { public: - wxPenRefData(void); - wxPenRefData(const wxPenRefData& data); + wxPenRefData(); + wxPenRefData( const wxPenRefData& data ); int m_width; int m_style; int m_joinStyle; int m_capStyle; wxColour m_colour; + int m_countDashes; + wxGTKDash *m_dash; }; wxPenRefData::wxPenRefData() @@ -38,6 +42,8 @@ wxPenRefData::wxPenRefData() m_style = wxSOLID; m_joinStyle = wxJOIN_ROUND; m_capStyle = wxCAP_ROUND; + m_dash = (wxGTKDash*) NULL; + m_countDashes = 0; } wxPenRefData::wxPenRefData( const wxPenRefData& data ) @@ -47,6 +53,12 @@ wxPenRefData::wxPenRefData( const wxPenRefData& data ) m_joinStyle = data.m_joinStyle; m_capStyle = data.m_capStyle; m_colour = data.m_colour; + m_countDashes = data.m_countDashes; +/* + if (data.m_dash) TODO + m_dash = new +*/ + m_dash = data.m_dash; } //----------------------------------------------------------------------------- @@ -57,7 +69,6 @@ IMPLEMENT_DYNAMIC_CLASS(wxPen,wxGDIObject) wxPen::wxPen() { - if (wxThePenList) wxThePenList->AddPen( this ); } wxPen::wxPen( const wxColour &colour, int width, int style ) @@ -66,34 +77,31 @@ wxPen::wxPen( const wxColour &colour, int width, int style ) M_PENDATA->m_width = width; M_PENDATA->m_style = style; M_PENDATA->m_colour = colour; - - if (wxThePenList) wxThePenList->AddPen( this ); } wxPen::wxPen( const wxPen& pen ) { Ref( pen ); - if (wxThePenList) wxThePenList->AddPen( this ); } wxPen::~wxPen() { - if (wxThePenList) wxThePenList->RemovePen( this ); } wxPen& wxPen::operator = ( const wxPen& pen ) { - if (*this == pen) return (*this); - Ref( pen ); + if ( m_refData != pen.m_refData ) + Ref( pen ); + return *this; } -bool wxPen::operator == ( const wxPen& pen ) +bool wxPen::operator == ( const wxPen& pen ) const { return m_refData == pen.m_refData; } -bool wxPen::operator != ( const wxPen& pen ) +bool wxPen::operator != ( const wxPen& pen ) const { return m_refData != pen.m_refData; } @@ -104,6 +112,13 @@ void wxPen::SetColour( const wxColour &colour ) M_PENDATA->m_colour = colour; } +void wxPen::SetDashes( int number_of_dashes, const wxDash *dash ) +{ + Unshare(); + M_PENDATA->m_countDashes = number_of_dashes; + M_PENDATA->m_dash = (wxGTKDash *)dash; /* TODO */ +} + void wxPen::SetColour( int red, int green, int blue ) { Unshare(); @@ -134,37 +149,53 @@ void wxPen::SetWidth( int width ) M_PENDATA->m_width = width; } +int wxPen::GetDashes( wxDash **ptr ) const +{ + *ptr = (M_PENDATA ? (wxDash*)M_PENDATA->m_dash : (wxDash*) NULL); + return (M_PENDATA ? M_PENDATA->m_countDashes : 0); +} + +int wxPen::GetDashCount() const +{ + return (M_PENDATA->m_countDashes); +} + +wxDash* wxPen::GetDash() const +{ + return (wxDash*)M_PENDATA->m_dash; +} + int wxPen::GetCap() const { - wxCHECK_MSG( Ok(), -1, "invalid pen" ); + wxCHECK_MSG( Ok(), -1, wxT("invalid pen") ); return M_PENDATA->m_capStyle; } int wxPen::GetJoin() const { - wxCHECK_MSG( Ok(), -1, "invalid pen" ); + wxCHECK_MSG( Ok(), -1, wxT("invalid pen") ); return M_PENDATA->m_joinStyle; } int wxPen::GetStyle() const { - wxCHECK_MSG( Ok(), -1, "invalid pen" ); + wxCHECK_MSG( Ok(), -1, wxT("invalid pen") ); return M_PENDATA->m_style; } int wxPen::GetWidth() const { - wxCHECK_MSG( Ok(), -1, "invalid pen" ); + wxCHECK_MSG( Ok(), -1, wxT("invalid pen") ); return M_PENDATA->m_width; } wxColour &wxPen::GetColour() const { - wxCHECK_MSG( Ok(), wxNullColour, "invalid pen" ); + wxCHECK_MSG( Ok(), wxNullColour, wxT("invalid pen") ); return M_PENDATA->m_colour; }