]> git.saurik.com Git - wxWidgets.git/commitdiff
Additions to help Fonts compile clean and add SetPS impelementation to wxRegion for OS2
authorDavid Webster <Dave.Webster@bhmi.com>
Mon, 18 Dec 2000 20:06:39 +0000 (20:06 +0000)
committerDavid Webster <Dave.Webster@bhmi.com>
Mon, 18 Dec 2000 20:06:39 +0000 (20:06 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8946 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/os2/data.cpp
src/os2/region.cpp

index d588b780f674d2f9f79fe63c1d4ae10fa039ad7f..03f4aabf105a4245db1129e0cb2e48bf2e80911a 100644 (file)
@@ -96,6 +96,7 @@ wxBrush  wxNullBrush;
 wxPalette wxNullPalette;
 wxFont   wxNullFont;
 wxColour wxNullColour;
+wxNativeFontInfo wxNullNativeFontInfo;
 
 // Default window names
 const wxChar *wxButtonNameStr = wxT("button");
index 112fccc32f607e170238cf586a8a965a016e301d..bc036241c21e7694eba45121f8bb8da5ab10fed7 100644 (file)
@@ -555,6 +555,51 @@ WXHRGN wxRegion::GetHRGN() const
     return (WXHRGN) M_REGION;
 }
 
+//
+// Set a new PS, this means we have to recreate the old region in the new
+// PS
+//
+void wxRegion::SetPS(
+  HPS                               hPS
+)
+{
+    RGNRECT                     vRgnData;
+    PRECTL                      pRect = NULL;
+
+    if (::GpiQueryRegionRects( ((wxRegionRefData*)m_refData)->m_hPS
+                              ,((wxRegionRefData*)m_refData)->m_hRegion
+                              ,NULL
+                              ,&vRgnData
+                              ,NULL
+                             ))
+    {
+        pRect = new RECTL[vRgnData.crcReturned];
+        vRgnData.crc = vRgnData.crcReturned;
+        vRgnData.ircStart = 1;
+        if (::GpiQueryRegionRects( ((wxRegionRefData*)m_refData)->m_hPS
+                                  ,((wxRegionRefData*)m_refData)->m_hRegion
+                                  ,NULL
+                                  ,&vRgnData
+                                  ,pRect
+                                 ))
+        {
+            //
+            // First destroy the region out of the old PS
+            // and then create it in the new and set the new to current
+            //
+            ::GpiDestroyRegion( ((wxRegionRefData*)m_refData)->m_hPS
+                               ,M_REGION
+                              );
+            ((wxRegionRefData*)m_refData)->m_hRegion = ::GpiCreateRegion( hPS
+                                                                         ,vRgnData.crcReturned
+                                                                         ,pRect
+                                                                        );
+            ((wxRegionRefData*)m_refData)->m_hPS = hPS;
+        }
+        delete [] pRect;
+    }
+} // end of wxRegion::SetPS
+
 ///////////////////////////////////////////////////////////////////////////////
 //                                                                           //
 //                             wxRegionIterator                              //