]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/pen.cpp
Fix for bug #1422217. Menu items with the checked bitmap set need to
[wxWidgets.git] / src / msw / pen.cpp
index 93776357d436854b7f915fff0656351728971731..1ddd61e07f6cfba89a1702e7d434f84ef4953bed 100644 (file)
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        msw/pen.cpp
+// Name:        src/msw/pen.cpp
 // Purpose:     wxPen
 // Author:      Julian Smart
 // Modified by:
@@ -9,10 +9,6 @@
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-#pragma implementation "pen.h"
-#endif
-
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
@@ -22,7 +18,6 @@
 
 #ifndef WX_PRECOMP
 #include <stdio.h>
-#include "wx/setup.h"
 #include "wx/list.h"
 #include "wx/utils.h"
 #include "wx/app.h"
@@ -47,6 +42,7 @@ wxPenRefData::wxPenRefData()
 }
 
 wxPenRefData::wxPenRefData(const wxPenRefData& data)
+             :wxGDIRefData()
 {
     m_style = data.m_style;
     m_width = data.m_width;
@@ -127,11 +123,11 @@ bool wxPen::RealizeResource()
 #if !defined(__WXMICROWIN__) && !defined(__WXWINCE__)
    // Only NT can display dashed or dotted lines with width > 1
    if ( os != wxWINDOWS_NT &&
-           (M_PENDATA->m_style & (wxDOT |
-                                  wxLONG_DASH |
-                                  wxSHORT_DASH |
-                                  wxDOT_DASH |
-                                  wxUSER_DASH)) &&
+           (M_PENDATA->m_style == wxDOT ||
+            M_PENDATA->m_style == wxLONG_DASH ||
+            M_PENDATA->m_style == wxSHORT_DASH ||
+            M_PENDATA->m_style == wxDOT_DASH ||
+            M_PENDATA->m_style == wxUSER_DASH) &&
             M_PENDATA->m_width > 1 )
    {
        M_PENDATA->m_width = 1;
@@ -262,41 +258,41 @@ bool wxPen::RealizeResource()
 
 WXHANDLE wxPen::GetResourceHandle() const
 {
-        if ( !M_PENDATA )
-                return 0;
-        else
-                return (WXHANDLE)M_PENDATA->m_hPen;
+    if ( !M_PENDATA )
+        return 0;
+    else
+        return (WXHANDLE)M_PENDATA->m_hPen;
 }
 
 bool wxPen::FreeResource(bool WXUNUSED(force))
 {
-  if (M_PENDATA && (M_PENDATA->m_hPen != 0))
-  {
-    DeleteObject((HPEN) M_PENDATA->m_hPen);
-    M_PENDATA->m_hPen = 0;
-    return true;
-  }
-  else return false;
+    if (M_PENDATA && (M_PENDATA->m_hPen != 0))
+    {
+        DeleteObject((HPEN) M_PENDATA->m_hPen);
+        M_PENDATA->m_hPen = 0;
+        return true;
+    }
+    else return false;
 }
 
 bool wxPen::IsFree() const
 {
-  return (M_PENDATA && M_PENDATA->m_hPen == 0);
+    return (M_PENDATA && M_PENDATA->m_hPen == 0);
 }
 
 void wxPen::Unshare()
 {
-        // Don't change shared data
-        if (!m_refData)
+    // Don't change shared data
+    if (!m_refData)
     {
-                m_refData = new wxPenRefData();
-        }
+        m_refData = new wxPenRefData();
+    }
     else
     {
-                wxPenRefData* ref = new wxPenRefData(*(wxPenRefData*)m_refData);
-                UnRef();
-                m_refData = ref;
-        }
+        wxPenRefData* ref = new wxPenRefData(*(wxPenRefData*)m_refData);
+        UnRef();
+        m_refData = ref;
+    }
 }
 
 void wxPen::SetColour(const wxColour& col)
@@ -400,4 +396,3 @@ int wx2msPenStyle(int wx_style)
 #endif
     return PS_SOLID;
 }
-