]> git.saurik.com Git - wxWidgets.git/blobdiff - src/os2/pen.cpp
Change friendship so that the base implementation class is the friend.
[wxWidgets.git] / src / os2 / pen.cpp
index 58fc0fe2b04ea9e7b404a6988a6d5b91661ab882..77badbd512ec44d2e4de8745851c962ac470fb95 100644 (file)
@@ -19,6 +19,7 @@
 #include "wx/utils.h"
 #include "wx/app.h"
 #include "wx/pen.h"
 #include "wx/utils.h"
 #include "wx/app.h"
 #include "wx/pen.h"
+#include "wx/log.h"
 #endif
 
 #include "wx/os2/private.h"
 #endif
 
 #include "wx/os2/private.h"
@@ -108,6 +109,10 @@ wxPen::wxPen(
         wxThePenList->AddPen(this);
 } // end of wxPen::wxPen
 
         wxThePenList->AddPen(this);
 } // end of wxPen::wxPen
 
+int wx2os2PenStyle(
+  int                               nWxStyle
+);
+
 bool wxPen::RealizeResource()
 {
     BOOL                            bOk;
 bool wxPen::RealizeResource()
 {
     BOOL                            bOk;
@@ -146,7 +151,7 @@ bool wxPen::RealizeResource()
         {
             vError = ::WinGetLastError(vHabmain);
             sError = wxPMErrorToStr(vError);
         {
             vError = ::WinGetLastError(vHabmain);
             sError = wxPMErrorToStr(vError);
-            wxLogError("Unable to set current color table to RGB mode. Error: %s\n", sError);
+            wxLogError("Unable to set current color table to RGB mode. Error: %s\n", sError.c_str());
             return FALSE;
         }
         if (M_PENDATA->m_nStyle == wxTRANSPARENT)
             return FALSE;
         }
         if (M_PENDATA->m_nStyle == wxTRANSPARENT)
@@ -210,10 +215,12 @@ bool wxPen::RealizeResource()
         {
             vError = ::WinGetLastError(vHabmain);
             sError = wxPMErrorToStr(vError);
         {
             vError = ::WinGetLastError(vHabmain);
             sError = wxPMErrorToStr(vError);
-            wxLogError("Can't set Gpi attributes for a LINEBUNDLE. Error: %s\n", sError);
+            wxLogError("Can't set Gpi attributes for a LINEBUNDLE. Error: %s\n", sError.c_str());
             return FALSE;
         }
 
             return FALSE;
         }
 
+        ULONG                           flAttrMask = 0L;
+        ULONG                           flDefMask = 0L;
         switch(M_PENDATA->m_nStyle)
         {
             case wxSTIPPLE:
         switch(M_PENDATA->m_nStyle)
         {
             case wxSTIPPLE:
@@ -224,41 +231,57 @@ bool wxPen::RealizeResource()
                 ::GpiSetPatternSet( M_PENDATA->m_hPen
                                    ,(USHORT)M_PENDATA->m_vStipple.GetId()
                                   );
                 ::GpiSetPatternSet( M_PENDATA->m_hPen
                                    ,(USHORT)M_PENDATA->m_vStipple.GetId()
                                   );
+                flAttrMask = ABB_COLOR | ABB_BACK_COLOR | ABB_MIX_MODE | ABB_BACK_MIX_MODE | ABB_SET | ABB_SYMBOL;
+                flDefMask = ABB_REF_POINT;
                 break;
 
             case wxBDIAGONAL_HATCH:
                 m_vAreaBundle.usSymbol = PATSYM_DIAG3;
                 m_vAreaBundle.usSet = LCID_DEFAULT;
                 break;
 
             case wxBDIAGONAL_HATCH:
                 m_vAreaBundle.usSymbol = PATSYM_DIAG3;
                 m_vAreaBundle.usSet = LCID_DEFAULT;
+                flAttrMask = ABB_COLOR | ABB_BACK_COLOR | ABB_MIX_MODE | ABB_BACK_MIX_MODE | ABB_SYMBOL;
+                flDefMask = ABB_SET | ABB_REF_POINT;
                 break;
 
             case wxCROSSDIAG_HATCH:
                 m_vAreaBundle.usSymbol = PATSYM_DIAGHATCH;
                 m_vAreaBundle.usSet = LCID_DEFAULT;
                 break;
 
             case wxCROSSDIAG_HATCH:
                 m_vAreaBundle.usSymbol = PATSYM_DIAGHATCH;
                 m_vAreaBundle.usSet = LCID_DEFAULT;
+                flAttrMask = ABB_COLOR | ABB_BACK_COLOR | ABB_MIX_MODE | ABB_BACK_MIX_MODE | ABB_SYMBOL;
+                flDefMask = ABB_SET | ABB_REF_POINT;
                 break;
 
             case wxFDIAGONAL_HATCH:
                 m_vAreaBundle.usSymbol = PATSYM_DIAG1;
                 m_vAreaBundle.usSet = LCID_DEFAULT;
                 break;
 
             case wxFDIAGONAL_HATCH:
                 m_vAreaBundle.usSymbol = PATSYM_DIAG1;
                 m_vAreaBundle.usSet = LCID_DEFAULT;
+                flAttrMask = ABB_COLOR | ABB_BACK_COLOR | ABB_MIX_MODE | ABB_BACK_MIX_MODE | ABB_SYMBOL;
+                flDefMask = ABB_SET | ABB_REF_POINT;
                 break;
 
             case wxCROSS_HATCH:
                 m_vAreaBundle.usSymbol = PATSYM_HATCH;
                 m_vAreaBundle.usSet = LCID_DEFAULT;
                 break;
 
             case wxCROSS_HATCH:
                 m_vAreaBundle.usSymbol = PATSYM_HATCH;
                 m_vAreaBundle.usSet = LCID_DEFAULT;
+                flAttrMask = ABB_COLOR | ABB_BACK_COLOR | ABB_MIX_MODE | ABB_BACK_MIX_MODE | ABB_SYMBOL;
+                flDefMask = ABB_SET | ABB_REF_POINT;
                 break;
 
             case wxHORIZONTAL_HATCH:
                 m_vAreaBundle.usSymbol = PATSYM_HORIZ;
                 m_vAreaBundle.usSet = LCID_DEFAULT;
                 break;
 
             case wxHORIZONTAL_HATCH:
                 m_vAreaBundle.usSymbol = PATSYM_HORIZ;
                 m_vAreaBundle.usSet = LCID_DEFAULT;
+                flAttrMask = ABB_COLOR | ABB_BACK_COLOR | ABB_MIX_MODE | ABB_BACK_MIX_MODE | ABB_SYMBOL;
+                flDefMask = ABB_SET | ABB_REF_POINT;
                 break;
 
             case wxVERTICAL_HATCH:
                 m_vAreaBundle.usSymbol = PATSYM_VERT;
                 m_vAreaBundle.usSet = LCID_DEFAULT;
                 break;
 
             case wxVERTICAL_HATCH:
                 m_vAreaBundle.usSymbol = PATSYM_VERT;
                 m_vAreaBundle.usSet = LCID_DEFAULT;
+                flAttrMask = ABB_COLOR | ABB_BACK_COLOR | ABB_MIX_MODE | ABB_BACK_MIX_MODE | ABB_SYMBOL;
+                flDefMask = ABB_SET | ABB_REF_POINT;
                 break;
 
             default:
                 m_vAreaBundle.usSymbol = PATSYM_SOLID;
                 m_vAreaBundle.usSet = LCID_DEFAULT;
                 break;
 
             default:
                 m_vAreaBundle.usSymbol = PATSYM_SOLID;
                 m_vAreaBundle.usSet = LCID_DEFAULT;
+                flAttrMask = ABB_COLOR | ABB_BACK_COLOR | ABB_MIX_MODE | ABB_BACK_MIX_MODE | ABB_SYMBOL;
+                flDefMask = ABB_SET | ABB_REF_POINT;
                 break;
         }
 
                 break;
         }
 
@@ -269,16 +292,15 @@ bool wxPen::RealizeResource()
 
         bOk = ::GpiSetAttrs( M_PENDATA->m_hPen
                             ,PRIM_AREA
 
         bOk = ::GpiSetAttrs( M_PENDATA->m_hPen
                             ,PRIM_AREA
-                            ,ABB_COLOR | ABB_BACK_COLOR | ABB_MIX_MODE | ABB_BACK_MIX_MODE |
-                             ABB_SET | ABB_SYMBOL
-                            ,ABB_REF_POINT
+                            ,flAttrMask
+                            ,flDefMask
                             ,&m_vAreaBundle
                            );
         if (!bOk)
         {
             vError = ::WinGetLastError(vHabmain);
             sError = wxPMErrorToStr(vError);
                             ,&m_vAreaBundle
                            );
         if (!bOk)
         {
             vError = ::WinGetLastError(vHabmain);
             sError = wxPMErrorToStr(vError);
-            wxLogError("Can't set Gpi attributes for an AREABUNDLE. Error: %s\n", sError);
+            wxLogError("Can't set Gpi attributes for an AREABUNDLE. Error: %s\n", sError.c_str());
         }
         return bOk;
     }
         }
         return bOk;
     }