X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b019151f0b23d0fd97925ae8859bd7d0dfc91b0f..d90bb48e691aef38bfe48c3d7d2a523a4aa7ddd1:/src/gtk1/pen.cpp diff --git a/src/gtk1/pen.cpp b/src/gtk1/pen.cpp index 1e2205e78d..c398c71b58 100644 --- a/src/gtk1/pen.cpp +++ b/src/gtk1/pen.cpp @@ -14,7 +14,7 @@ #include "wx/pen.h" -#include "gdk/gdk.h" +#include //----------------------------------------------------------------------------- // wxPen @@ -24,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() @@ -40,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 ) @@ -49,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; } //----------------------------------------------------------------------------- @@ -59,7 +69,6 @@ IMPLEMENT_DYNAMIC_CLASS(wxPen,wxGDIObject) wxPen::wxPen() { - if (wxThePenList) wxThePenList->AddPen( this ); } wxPen::wxPen( const wxColour &colour, int width, int style ) @@ -68,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; } @@ -106,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(); @@ -136,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, _T("invalid pen") ); + wxCHECK_MSG( Ok(), -1, wxT("invalid pen") ); return M_PENDATA->m_capStyle; } int wxPen::GetJoin() const { - wxCHECK_MSG( Ok(), -1, _T("invalid pen") ); + wxCHECK_MSG( Ok(), -1, wxT("invalid pen") ); return M_PENDATA->m_joinStyle; } int wxPen::GetStyle() const { - wxCHECK_MSG( Ok(), -1, _T("invalid pen") ); + wxCHECK_MSG( Ok(), -1, wxT("invalid pen") ); return M_PENDATA->m_style; } int wxPen::GetWidth() const { - wxCHECK_MSG( Ok(), -1, _T("invalid pen") ); + wxCHECK_MSG( Ok(), -1, wxT("invalid pen") ); return M_PENDATA->m_width; } wxColour &wxPen::GetColour() const { - wxCHECK_MSG( Ok(), wxNullColour, _T("invalid pen") ); + wxCHECK_MSG( Ok(), wxNullColour, wxT("invalid pen") ); return M_PENDATA->m_colour; }