]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/pen.cpp
test for __MINGW64__ in the huge files support section
[wxWidgets.git] / src / msw / pen.cpp
index 4eed257800b28a3db285bcf44284c4434bcb6954..ae66559cec4bc90fc536338c4763fc4d5df8c884 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));
     }
@@ -90,7 +90,7 @@ public:
     {
         Free();
 
-        m_style = wxSTIPPLE;
+        m_style = wxPENSTYLE_STIPPLE;
         m_stipple = stipple;
     }
 
@@ -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,11 +210,11 @@ 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:
@@ -222,23 +222,23 @@ static int ConvertPenStyle(wxPenStyle 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;
@@ -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,37 +336,37 @@ 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;
@@ -384,7 +384,7 @@ bool wxPenRefData::Alloc()
        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;
@@ -430,15 +430,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)
 {
@@ -538,38 +540,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( Ok(), wxNullColour, wxT("invalid pen") );
+
+    return M_PENDATA->GetColour();
 }
 
 int wxPen::GetWidth() const
 {
-    return m_refData ? M_PENDATA->GetWidth() : 0;
+    wxCHECK_MSG( Ok(), -1, wxT("invalid pen") );
+
+    return M_PENDATA->GetWidth();
 }
 
 wxPenStyle wxPen::GetStyle() const
 {
-    return m_refData ? M_PENDATA->GetStyle() : 0;
+    wxCHECK_MSG( Ok(), wxPENSTYLE_INVALID, wxT("invalid pen") );
+
+    return M_PENDATA->GetStyle();
 }
 
 wxPenJoin wxPen::GetJoin() const
 {
-    return m_refData ? M_PENDATA->GetJoin() : 0;
+    wxCHECK_MSG( Ok(), wxJOIN_INVALID, wxT("invalid pen") );
+
+    return M_PENDATA->GetJoin();
 }
 
 wxPenCap wxPen::GetCap() const
 {
-    return m_refData ? M_PENDATA->GetCap() : 0;
+    wxCHECK_MSG( Ok(), wxCAP_INVALID, wxT("invalid pen") );
+
+    return M_PENDATA->GetCap();
 }
 
 int wxPen::GetDashes(wxDash** ptr) const
 {
-    if ( !m_refData )
-    {
-        *ptr = NULL;
-        return 0;
-    }
+    wxCHECK_MSG( Ok(), -1, wxT("invalid pen") );
 
     *ptr = M_PENDATA->GetDash();
     return M_PENDATA->GetDashCount();
@@ -577,15 +585,21 @@ int wxPen::GetDashes(wxDash** ptr) const
 
 wxDash* wxPen::GetDash() const
 {
+    wxCHECK_MSG( Ok(), NULL, wxT("invalid pen") );
+
     return m_refData ? M_PENDATA->GetDash() : NULL;
 }
 
 int wxPen::GetDashCount() const
 {
+    wxCHECK_MSG( Ok(), -1, wxT("invalid pen") );
+
     return m_refData ? M_PENDATA->GetDashCount() : 0;
 }
 
 wxBitmap* wxPen::GetStipple() const
 {
+    wxCHECK_MSG( Ok(), NULL, wxT("invalid pen") );
+
     return m_refData ? M_PENDATA->GetStipple() : NULL;
 }