]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mgl/pen.cpp
Sizing fixes for generic control.
[wxWidgets.git] / src / mgl / pen.cpp
index bc20908091ee573f7ff5fe4a0ea5ca65d8a38806..45820afcacb297ca14c21354c970736962f10b3b 100644 (file)
@@ -18,9 +18,9 @@
 
 #ifndef WX_PRECOMP
     #include "wx/bitmap.h"
+    #include "wx/colour.h"
 #endif
 
-#include "wx/colour.h"
 #include "wx/mgl/private.h"
 
 //-----------------------------------------------------------------------------
@@ -33,6 +33,21 @@ class wxPenRefData: public wxObjectRefData
         wxPenRefData();
         wxPenRefData(const wxPenRefData& data);
 
+    bool operator==(const wxPenRefData& data) const
+    {
+        // we intentionally don't compare m_hPen fields here
+        return m_style == data.m_style &&
+               m_width == data.m_width &&
+               m_pixPattern == data.m_pixPattern &&
+               m_capStyle == data.m_capStyle &&
+               m_joinStyle == data.m_joinStyle &&
+               m_colour == data.m_colour &&
+               (m_style != wxSTIPPLE || m_stipple.IsSameAs(data.m_stipple)) &&
+               (m_style != wxUSER_DASH ||
+                (m_dash == data.m_dash &&
+                    memcmp(m_dash, data.m_dash, m_countDashes*sizeof(wxDash)) == 0));
+    }
+
         int            m_width;
         int            m_style;
         wxColour       m_colour;
@@ -109,7 +124,11 @@ wxPen::wxPen(const wxBitmap& stipple, int width)
 
 bool wxPen::operator == (const wxPen& pen) const
 {
-    return m_refData == pen.m_refData;
+    if (m_refData == pen.m_refData) return true;
+
+    if (!m_refData || !pen.m_refData) return false;
+
+    return ( *(wxPenRefData*)m_refData == *(wxPenRefData*)pen.m_refData );
 }
 
 bool wxPen::operator != (const wxPen& pen) const
@@ -237,7 +256,7 @@ void* wxPen::GetPixPattern() const
 }
 
 
-bool wxPen::Ok() const
+bool wxPen::IsOk() const
 {
     return (m_refData != NULL);
 }