]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/dcclient.cpp
fix crash which happened if you called SetAttr(NULL) followed by SetAttr(attr) (...
[wxWidgets.git] / src / msw / dcclient.cpp
index 96737f424e2dfa50ea5da4adc084b22dc2597008..e97fe01af2b2a691b9c822bcd73d0db792bc2bb2 100644 (file)
@@ -90,7 +90,7 @@ wxWindowDCImpl::wxWindowDCImpl( wxDC *owner ) :
 {
 }
 
-wxWindowDCImpl::wxWindowDCImpl( wxDC *owner, wxWindow *window ) : 
+wxWindowDCImpl::wxWindowDCImpl( wxDC *owner, wxWindow *window ) :
    wxMSWDCImpl( owner )
 {
     wxCHECK_RET( window, _T("invalid window in wxWindowDCImpl") );
@@ -110,7 +110,7 @@ void wxWindowDCImpl::InitDC()
     ::SetBkMode(GetHdc(), TRANSPARENT);
 
     // default bg colour is pne of the window
-    SetBackground(wxBrush(m_window->GetBackgroundColour(), wxSOLID));
+    SetBackground(wxBrush(m_window->GetBackgroundColour(), wxBRUSHSTYLE_SOLID));
 
     // since we are a window dc we need to grab the palette from the window
 #if wxUSE_PALETTE
@@ -169,7 +169,8 @@ void wxClientDCImpl::InitDC()
     }
 
     // clip the DC to avoid overwriting the non client area
-    SetClippingRegion(wxPoint(0,0), m_window->GetClientSize());
+    wxSize size = m_window->GetClientSize();
+    DoSetClippingRegion(0, 0, size.x, size.y);
 #endif // __WXUNIVERSAL__ || __WXWINCE__
 }
 
@@ -329,27 +330,25 @@ class wxPaintDCExImpl: public wxPaintDCImpl
 public:
     wxPaintDCExImpl( wxDC *owner, wxWindow *window, WXHDC dc );
     ~wxPaintDCExImpl();
-    
+
     int m_saveState;
 };
 
 
 IMPLEMENT_ABSTRACT_CLASS(wxPaintDCEx,wxPaintDC)
 
-wxPaintDCEx::wxPaintDCEx( wxWindow *window, WXHDC dc )
+wxPaintDCEx::wxPaintDCEx(wxWindow *window, WXHDC dc)
+           : wxPaintDC(new wxPaintDCExImpl(this, window, dc))
 {
-    m_pimpl = new wxPaintDCExImpl( this, window, dc );
 }
 
-
-
-wxPaintDCExImpl::wxPaintDCExImpl( wxDC *owner, wxWindow *window, WXHDC dc ) :
-    wxPaintDCImpl( owner )
+wxPaintDCExImpl::wxPaintDCExImpl(wxDC *owner, wxWindow *window, WXHDC dc)
+               : wxPaintDCImpl( owner )
 {
         wxCHECK_RET( dc, wxT("wxPaintDCEx requires an existing device context") );
 
         m_saveState = 0;
-        
+
         m_window = window;
 
         wxPaintDCInfo *info = FindInCache();