X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/907789a0f72354f30ec04f79f03a0b7e2a29ac9a..d6538e2c55535a747aec939d0f6659f91bc623d4:/src/gtk1/pen.cpp diff --git a/src/gtk1/pen.cpp b/src/gtk1/pen.cpp index dc2fec60a0..f928f2fe54 100644 --- a/src/gtk1/pen.cpp +++ b/src/gtk1/pen.cpp @@ -4,7 +4,7 @@ // Author: Robert Roebling // Id: $Id$ // Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -14,6 +14,8 @@ #include "wx/pen.h" +#include "gdk/gdk.h" + //----------------------------------------------------------------------------- // wxPen //----------------------------------------------------------------------------- @@ -21,15 +23,17 @@ 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; + wxDash *m_dash; }; wxPenRefData::wxPenRefData() @@ -38,6 +42,8 @@ wxPenRefData::wxPenRefData() m_style = wxSOLID; m_joinStyle = wxJOIN_ROUND; m_capStyle = wxCAP_ROUND; + m_dash = (wxDash*) 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; } //----------------------------------------------------------------------------- @@ -55,7 +67,7 @@ wxPenRefData::wxPenRefData( const wxPenRefData& data ) IMPLEMENT_DYNAMIC_CLASS(wxPen,wxGDIObject) -wxPen::wxPen(void) +wxPen::wxPen() { if (wxThePenList) wxThePenList->AddPen( this ); } @@ -66,7 +78,7 @@ 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 ); } @@ -76,14 +88,6 @@ wxPen::wxPen( const wxPen& pen ) if (wxThePenList) wxThePenList->AddPen( this ); } -wxPen::wxPen( const wxPen* pen ) -{ - UnRef(); - if (pen) Ref( *pen ); - - if (wxThePenList) wxThePenList->AddPen( this ); -} - wxPen::~wxPen() { if (wxThePenList) wxThePenList->RemovePen( this ); @@ -91,19 +95,19 @@ wxPen::~wxPen() wxPen& wxPen::operator = ( const wxPen& pen ) { - if (*this == pen) return (*this); - Ref( pen ); - return *this; + if (*this == pen) return (*this); + Ref( pen ); + return *this; } bool wxPen::operator == ( const wxPen& pen ) { - return m_refData == pen.m_refData; + return m_refData == pen.m_refData; } bool wxPen::operator != ( const wxPen& pen ) { - return m_refData != pen.m_refData; + return m_refData != pen.m_refData; } void wxPen::SetColour( const wxColour &colour ) @@ -112,6 +116,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 = (wxDash *)dash; /* TODO */ +} + void wxPen::SetColour( int red, int green, int blue ) { Unshare(); @@ -142,38 +153,54 @@ void wxPen::SetWidth( int width ) M_PENDATA->m_width = width; } +int wxPen::GetDashes( wxDash **ptr ) const +{ + *ptr = (M_PENDATA ? 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 (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; }