wxPenRefData();
wxPenRefData(const wxPenRefData& data);
- wxPenRefData(const wxColour& col, int width, int style);
+ wxPenRefData(const wxColour& col, int width, wxPenStyle style);
wxPenRefData(const wxBitmap& stipple, int width);
virtual ~wxPenRefData();
m_join == data.m_join &&
m_cap == data.m_cap &&
m_colour == data.m_colour &&
- (m_style != wxSTIPPLE || m_stipple.IsSameAs(data.m_stipple)) &&
- (m_style != wxUSER_DASH ||
+ (m_style != wxPENSTYLE_STIPPLE || m_stipple.IsSameAs(data.m_stipple)) &&
+ (m_style != wxPENSTYLE_USER_DASH ||
(m_nbDash == data.m_nbDash &&
memcmp(m_dash, data.m_dash, m_nbDash*sizeof(wxDash)) == 0));
}
// accessors and setters
// ---------------------
- wxColour& GetColour() const { return wx_const_cast(wxColour&, m_colour); }
+ wxColour& GetColour() const { return const_cast<wxColour&>(m_colour); }
int GetWidth() const { return m_width; }
- int GetStyle() const { return m_style; }
- int GetJoin() const { return m_join; }
- int GetCap() const { return m_cap; }
+ wxPenStyle GetStyle() const { return m_style; }
+ wxPenJoin GetJoin() const { return m_join; }
+ wxPenCap GetCap() const { return m_cap; }
wxDash* GetDash() const { return m_dash; }
int GetDashCount() const { return m_nbDash; }
- wxBitmap* GetStipple() const { return wx_const_cast(wxBitmap *, &m_stipple); }
+ wxBitmap* GetStipple() const { return const_cast<wxBitmap *>(&m_stipple); }
void SetColour(const wxColour& col) { Free(); m_colour = col; }
void SetWidth(int width) { Free(); m_width = width; }
- void SetStyle(int style) { Free(); m_style = style; }
+ void SetStyle(wxPenStyle style) { Free(); m_style = style; }
void SetStipple(const wxBitmap& stipple)
{
Free();
- m_style = wxSTIPPLE;
+ m_style = wxPENSTYLE_STIPPLE;
m_stipple = stipple;
}
Free();
m_nbDash = nb_dashes;
- m_dash = wx_const_cast(wxDash *, dash);
+ m_dash = const_cast<wxDash *>(dash);
}
- void SetJoin(int join) { Free(); m_join = join; }
- void SetCap(int cap) { Free(); m_cap = cap; }
+ void SetJoin(wxPenJoin join) { Free(); m_join = join; }
+ void SetCap(wxPenCap cap) { Free(); m_cap = cap; }
// HPEN management
}
int m_width;
- int m_style;
- int m_join;
- int m_cap;
+ wxPenStyle m_style;
+ wxPenJoin m_join;
+ wxPenCap m_cap;
wxBitmap m_stipple;
int m_nbDash;
wxDash * m_dash;
wxColour m_colour;
HPEN m_hPen;
- DECLARE_NO_ASSIGN_CLASS(wxPenRefData)
+ wxDECLARE_NO_ASSIGN_CLASS(wxPenRefData);
};
// ============================================================================
{
Init();
- m_style = wxSOLID;
+ m_style = wxPENSTYLE_SOLID;
m_width = 1;
}
m_hPen = 0;
}
-wxPenRefData::wxPenRefData(const wxColour& col, int width, int style)
+wxPenRefData::wxPenRefData(const wxColour& col, int width, wxPenStyle style)
{
Init();
{
Init();
- m_style = wxSTIPPLE;
+ m_style = wxPENSTYLE_STIPPLE;
m_width = width;
m_stipple = stipple;
// wxPenRefData HPEN management
// ----------------------------------------------------------------------------
-#ifdef wxHAVE_EXT_CREATE_PEN
-
-static int ConvertPenStyle(int style)
+static int ConvertPenStyle(wxPenStyle style)
{
switch ( style )
{
- case wxDOT:
- return PS_DOT;
-
- case wxDOT_DASH:
- return PS_DASHDOT;
-
- case wxSHORT_DASH:
- case wxLONG_DASH:
+ case wxPENSTYLE_SHORT_DASH:
+ case wxPENSTYLE_LONG_DASH:
return PS_DASH;
- case wxTRANSPARENT:
+ case wxPENSTYLE_TRANSPARENT:
return PS_NULL;
- case wxUSER_DASH:
- return PS_USERSTYLE;
-
default:
- wxFAIL_MSG( _T("unknown pen style") );
+ wxFAIL_MSG( wxT("unknown pen style") );
// fall through
- case wxSTIPPLE:
- case wxBDIAGONAL_HATCH:
- case wxCROSSDIAG_HATCH:
- case wxFDIAGONAL_HATCH:
- case wxCROSS_HATCH:
- case wxHORIZONTAL_HATCH:
- case wxVERTICAL_HATCH:
- case wxSOLID:
+#ifdef wxHAVE_EXT_CREATE_PEN
+ case wxPENSTYLE_DOT:
+ return PS_DOT;
+
+ case wxPENSTYLE_DOT_DASH:
+ return PS_DASHDOT;
+
+ case wxPENSTYLE_USER_DASH:
+ return PS_USERSTYLE;
+
+ case wxPENSTYLE_STIPPLE:
+ case wxPENSTYLE_BDIAGONAL_HATCH:
+ case wxPENSTYLE_CROSSDIAG_HATCH:
+ case wxPENSTYLE_FDIAGONAL_HATCH:
+ case wxPENSTYLE_CROSS_HATCH:
+ case wxPENSTYLE_HORIZONTAL_HATCH:
+ case wxPENSTYLE_VERTICAL_HATCH:
+ case wxPENSTYLE_SOLID:
+#endif // wxHAVE_EXT_CREATE_PEN
+
return PS_SOLID;
}
}
-static int ConvertJoinStyle(int join)
+#ifdef wxHAVE_EXT_CREATE_PEN
+
+static int ConvertJoinStyle(wxPenJoin join)
{
switch( join )
{
return PS_JOIN_MITER;
default:
- wxFAIL_MSG( _T("unknown pen join style") );
+ wxFAIL_MSG( wxT("unknown pen join style") );
// fall through
case wxJOIN_ROUND:
}
}
-static int ConvertCapStyle(int cap)
+static int ConvertCapStyle(wxPenCap cap)
{
switch ( cap )
{
return PS_ENDCAP_FLAT;
default:
- wxFAIL_MSG( _T("unknown pen cap style") );
+ wxFAIL_MSG( wxT("unknown pen cap style") );
// fall through
case wxCAP_ROUND:
if ( m_hPen )
return false;
- if ( m_style == wxTRANSPARENT )
+ if ( m_style == wxPENSTYLE_TRANSPARENT )
{
m_hPen = (HPEN)::GetStockObject(NULL_PEN);
return true;
// Only NT can display dashed or dotted lines with width > 1
static const int os = wxGetOsVersion();
if ( os != wxOS_WINDOWS_NT &&
- (m_style == wxDOT ||
- m_style == wxLONG_DASH ||
- m_style == wxSHORT_DASH ||
- m_style == wxDOT_DASH ||
- m_style == wxUSER_DASH) &&
+ (m_style == wxPENSTYLE_DOT ||
+ m_style == wxPENSTYLE_LONG_DASH ||
+ m_style == wxPENSTYLE_SHORT_DASH ||
+ m_style == wxPENSTYLE_DOT_DASH ||
+ m_style == wxPENSTYLE_USER_DASH) &&
m_width > 1 )
{
m_width = 1;
// CreatePen()
if ( m_join == wxJOIN_ROUND &&
m_cap == wxCAP_ROUND &&
- m_style != wxUSER_DASH &&
- m_style != wxSTIPPLE &&
- (m_width <= 1 || m_style == wxSOLID) )
+ m_style != wxPENSTYLE_USER_DASH &&
+ m_style != wxPENSTYLE_STIPPLE &&
+ (m_width <= 1 || m_style == wxPENSTYLE_SOLID) )
#endif // !wxHAVE_EXT_CREATE_PEN
{
m_hPen = ::CreatePen(ConvertPenStyle(m_style), m_width, col);
LOGBRUSH lb;
switch( m_style )
{
- case wxSTIPPLE:
+ case wxPENSTYLE_STIPPLE:
lb.lbStyle = BS_PATTERN;
- lb.lbHatch = (LONG)m_stipple.GetHBITMAP();
+ lb.lbHatch = wxPtrToUInt(m_stipple.GetHBITMAP());
break;
- case wxBDIAGONAL_HATCH:
+ case wxPENSTYLE_BDIAGONAL_HATCH:
lb.lbStyle = BS_HATCHED;
lb.lbHatch = HS_BDIAGONAL;
break;
- case wxCROSSDIAG_HATCH:
+ case wxPENSTYLE_CROSSDIAG_HATCH:
lb.lbStyle = BS_HATCHED;
lb.lbHatch = HS_DIAGCROSS;
break;
- case wxFDIAGONAL_HATCH:
+ case wxPENSTYLE_FDIAGONAL_HATCH:
lb.lbStyle = BS_HATCHED;
lb.lbHatch = HS_FDIAGONAL;
break;
- case wxCROSS_HATCH:
+ case wxPENSTYLE_CROSS_HATCH:
lb.lbStyle = BS_HATCHED;
lb.lbHatch = HS_CROSS;
break;
- case wxHORIZONTAL_HATCH:
+ case wxPENSTYLE_HORIZONTAL_HATCH:
lb.lbStyle = BS_HATCHED;
lb.lbHatch = HS_HORIZONTAL;
break;
- case wxVERTICAL_HATCH:
+ case wxPENSTYLE_VERTICAL_HATCH:
lb.lbStyle = BS_HATCHED;
lb.lbHatch = HS_VERTICAL;
break;
default:
lb.lbStyle = BS_SOLID;
-#ifdef __WXDEBUG__
// this should be unnecessary (it's unused) but suppresses the
// Purify messages about uninitialized memory read
lb.lbHatch = 0;
-#endif
break;
}
lb.lbColor = col;
DWORD *dash;
- if ( m_style == wxUSER_DASH && m_nbDash && m_dash )
+ if ( m_style == wxPENSTYLE_USER_DASH && m_nbDash && m_dash )
{
dash = new DWORD[m_nbDash];
int rw = m_width > 1 ? m_width : 1;
WXHPEN wxPenRefData::GetHPEN() const
{
if ( !m_hPen )
- wx_const_cast(wxPenRefData *, this)->Alloc();
+ const_cast<wxPenRefData *>(this)->Alloc();
return (WXHPEN)m_hPen;
}
IMPLEMENT_DYNAMIC_CLASS(wxPen, wxGDIObject)
-wxPen::wxPen(const wxColour& col, int width, int style)
+wxPen::wxPen(const wxColour& col, int width, wxPenStyle style)
{
m_refData = new wxPenRefData(col, width, style);
}
+#if FUTURE_WXWIN_COMPATIBILITY_3_0
+wxPen::wxPen(const wxColour& colour, int width, int style)
+{
+ m_refData = new wxPenRefData(colour, width, (wxPenStyle)style);
+}
+#endif
+
wxPen::wxPen(const wxBitmap& stipple, int width)
{
m_refData = new wxPenRefData(stipple, width);
bool wxPen::operator==(const wxPen& pen) const
{
const wxPenRefData *
- penData = wx_static_cast(const wxPenRefData *, pen.m_refData);
+ penData = static_cast<const wxPenRefData *>(pen.m_refData);
// an invalid pen is only equal to another invalid pen
return m_refData ? penData && *M_PENDATA == *penData : !penData;
return M_PENDATA && !M_PENDATA->HasHPEN();
}
-wxObjectRefData* wxPen::CreateRefData() const
+wxGDIRefData* wxPen::CreateGDIRefData() const
{
return new wxPenRefData;
}
-wxObjectRefData* wxPen::CloneRefData(const wxObjectRefData* data) const
+wxGDIRefData* wxPen::CloneGDIRefData(const wxGDIRefData* data) const
{
- return new wxPenRefData(*wx_static_cast(const wxPenRefData*, data));
+ return new wxPenRefData(*static_cast<const wxPenRefData*>(data));
}
void wxPen::SetColour(const wxColour& col)
M_PENDATA->SetWidth(width);
}
-void wxPen::SetStyle(int style)
+void wxPen::SetStyle(wxPenStyle style)
{
AllocExclusive();
M_PENDATA->SetDashes(nb_dashes, dash);
}
-void wxPen::SetJoin(int join)
+void wxPen::SetJoin(wxPenJoin join)
{
AllocExclusive();
M_PENDATA->SetJoin(join);
}
-void wxPen::SetCap(int cap)
+void wxPen::SetCap(wxPenCap cap)
{
AllocExclusive();
M_PENDATA->SetCap(cap);
}
-wxColour& wxPen::GetColour() const
+wxColour wxPen::GetColour() const
{
- return m_refData ? M_PENDATA->GetColour() : wxNullColour;
+ wxCHECK_MSG( IsOk(), wxNullColour, wxT("invalid pen") );
+
+ return M_PENDATA->GetColour();
}
int wxPen::GetWidth() const
{
- return m_refData ? M_PENDATA->GetWidth() : 0;
+ wxCHECK_MSG( IsOk(), -1, wxT("invalid pen") );
+
+ return M_PENDATA->GetWidth();
}
-int wxPen::GetStyle() const
+wxPenStyle wxPen::GetStyle() const
{
- return m_refData ? M_PENDATA->GetStyle() : 0;
+ wxCHECK_MSG( IsOk(), wxPENSTYLE_INVALID, wxT("invalid pen") );
+
+ return M_PENDATA->GetStyle();
}
-int wxPen::GetJoin() const
+wxPenJoin wxPen::GetJoin() const
{
- return m_refData ? M_PENDATA->GetJoin() : 0;
+ wxCHECK_MSG( IsOk(), wxJOIN_INVALID, wxT("invalid pen") );
+
+ return M_PENDATA->GetJoin();
}
-int wxPen::GetCap() const
+wxPenCap wxPen::GetCap() const
{
- return m_refData ? M_PENDATA->GetCap() : 0;
+ wxCHECK_MSG( IsOk(), wxCAP_INVALID, wxT("invalid pen") );
+
+ return M_PENDATA->GetCap();
}
int wxPen::GetDashes(wxDash** ptr) const
{
- if ( !m_refData )
- {
- *ptr = NULL;
- return 0;
- }
+ wxCHECK_MSG( IsOk(), -1, wxT("invalid pen") );
*ptr = M_PENDATA->GetDash();
return M_PENDATA->GetDashCount();
wxDash* wxPen::GetDash() const
{
+ wxCHECK_MSG( IsOk(), NULL, wxT("invalid pen") );
+
return m_refData ? M_PENDATA->GetDash() : NULL;
}
int wxPen::GetDashCount() const
{
+ wxCHECK_MSG( IsOk(), -1, wxT("invalid pen") );
+
return m_refData ? M_PENDATA->GetDashCount() : 0;
}
wxBitmap* wxPen::GetStipple() const
{
+ wxCHECK_MSG( IsOk(), NULL, wxT("invalid pen") );
+
return m_refData ? M_PENDATA->GetStipple() : NULL;
}