]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/pen.cpp
Add wxGrid::Render() for drawing the grid to any wxDC.
[wxWidgets.git] / src / msw / pen.cpp
index 4eed257800b28a3db285bcf44284c4434bcb6954..518e4d91e0d60dd4692995c1ed59a29708ead66f 100644 (file)
@@ -64,8 +64,8 @@ public:
                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));
     }
@@ -74,14 +74,14 @@ public:
     // 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; }
     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; }
@@ -90,7 +90,7 @@ public:
     {
         Free();
 
-        m_style = wxSTIPPLE;
+        m_style = wxPENSTYLE_STIPPLE;
         m_stipple = stipple;
     }
 
@@ -99,7 +99,7 @@ public:
         Free();
 
         m_nbDash = nb_dashes;
-        m_dash = wx_const_cast(wxDash *, dash);
+        m_dash = const_cast<wxDash *>(dash);
     }
 
     void SetJoin(wxPenJoin join) { Free(); m_join = join; }
@@ -144,7 +144,7 @@ private:
     wxColour      m_colour;
     HPEN          m_hPen;
 
-    DECLARE_NO_ASSIGN_CLASS(wxPenRefData)
+    wxDECLARE_NO_ASSIGN_CLASS(wxPenRefData);
 };
 
 // ============================================================================
@@ -159,7 +159,7 @@ wxPenRefData::wxPenRefData()
 {
     Init();
 
-    m_style = wxSOLID;
+    m_style = wxPENSTYLE_SOLID;
     m_width = 1;
 }
 
@@ -190,7 +190,7 @@ wxPenRefData::wxPenRefData(const wxBitmap& stipple, int width)
 {
     Init();
 
-    m_style = wxSTIPPLE;
+    m_style = wxPENSTYLE_STIPPLE;
     m_width = width;
 
     m_stipple = stipple;
@@ -210,35 +210,35 @@ static int ConvertPenStyle(wxPenStyle style)
 {
     switch ( style )
     {
-        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;
 
         default:
-            wxFAIL_MSG( _T("unknown pen style") );
+            wxFAIL_MSG( wxT("unknown pen style") );
             // fall through
 
 #ifdef wxHAVE_EXT_CREATE_PEN
-        case wxDOT:
+        case wxPENSTYLE_DOT:
             return PS_DOT;
 
-        case wxDOT_DASH:
+        case wxPENSTYLE_DOT_DASH:
             return PS_DASHDOT;
 
-        case wxUSER_DASH:
+        case wxPENSTYLE_USER_DASH:
             return PS_USERSTYLE;
 
-        case wxSTIPPLE:
-        case wxBDIAGONAL_HATCH:
-        case wxCROSSDIAG_HATCH:
-        case wxFDIAGONAL_HATCH:
-        case wxCROSS_HATCH:
-        case wxHORIZONTAL_HATCH:
-        case wxVERTICAL_HATCH:
-        case wxSOLID:
+        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;
@@ -258,7 +258,7 @@ static int ConvertJoinStyle(wxPenJoin 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:
@@ -277,7 +277,7 @@ static int ConvertCapStyle(wxPenCap 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:
@@ -292,7 +292,7 @@ bool wxPenRefData::Alloc()
    if ( m_hPen )
        return false;
 
-   if ( m_style == wxTRANSPARENT )
+   if ( m_style == wxPENSTYLE_TRANSPARENT )
    {
        m_hPen = (HPEN)::GetStockObject(NULL_PEN);
        return true;
@@ -304,11 +304,11 @@ bool wxPenRefData::Alloc()
    // 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;
@@ -318,9 +318,9 @@ bool wxPenRefData::Alloc()
    // 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);
@@ -336,55 +336,53 @@ bool wxPenRefData::Alloc()
        LOGBRUSH lb;
        switch( m_style )
        {
-           case wxSTIPPLE:
+           case wxPENSTYLE_STIPPLE:
                lb.lbStyle = BS_PATTERN;
                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;
@@ -419,7 +417,7 @@ bool wxPenRefData::Free()
 WXHPEN wxPenRefData::GetHPEN() const
 {
     if ( !m_hPen )
-        wx_const_cast(wxPenRefData *, this)->Alloc();
+        const_cast<wxPenRefData *>(this)->Alloc();
 
     return (WXHPEN)m_hPen;
 }
@@ -430,15 +428,17 @@ WXHPEN wxPenRefData::GetHPEN() const
 
 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);
 }
 
-wxPen::wxPen(const wxColour& colour, int width, wxBrushStyle style)
+#if FUTURE_WXWIN_COMPATIBILITY_3_0
+wxPen::wxPen(const wxColour& colour, int width, int style)
 {
-    m_refData = new wxPenRefData(col, width, (wxPenStyle)style);
+    m_refData = new wxPenRefData(colour, width, (wxPenStyle)style);
 }
+#endif
 
 wxPen::wxPen(const wxBitmap& stipple, int width)
 {
@@ -448,7 +448,7 @@ wxPen::wxPen(const wxBitmap& stipple, int 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;
@@ -481,7 +481,7 @@ wxGDIRefData* wxPen::CreateGDIRefData() 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)
@@ -538,38 +538,44 @@ void wxPen::SetCap(wxPenCap cap)
     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();
 }
 
 wxPenStyle wxPen::GetStyle() const
 {
-    return m_refData ? M_PENDATA->GetStyle() : 0;
+    wxCHECK_MSG( IsOk(), wxPENSTYLE_INVALID, wxT("invalid pen") );
+
+    return M_PENDATA->GetStyle();
 }
 
 wxPenJoin wxPen::GetJoin() const
 {
-    return m_refData ? M_PENDATA->GetJoin() : 0;
+    wxCHECK_MSG( IsOk(), wxJOIN_INVALID, wxT("invalid pen") );
+
+    return M_PENDATA->GetJoin();
 }
 
 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();
@@ -577,15 +583,21 @@ int wxPen::GetDashes(wxDash** ptr) const
 
 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;
 }