]> git.saurik.com Git - wxWidgets.git/commitdiff
No real changes, just change type of MSWGetBgBrush() argument.
authorVadim Zeitlin <vadim@wxwidgets.org>
Fri, 18 Dec 2009 20:49:23 +0000 (20:49 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Fri, 18 Dec 2009 20:49:23 +0000 (20:49 +0000)
Pass wxWindow instead of HWND to it as in most cases we already have wxWindow
for the HWND we have and calling wxFindWinFromHandle() once more is
unnecessary.

This also makes the code of MSWGetBgBrushForChild() slightly simpler.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62932 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/msw/notebook.h
include/wx/msw/window.h
src/msw/control.cpp
src/msw/notebook.cpp
src/msw/statbox.cpp
src/msw/window.cpp

index 969e7321452c8e16145d0800824316fa39d06336..2dfa4337e8951320875c752864bba3072c47360c 100644 (file)
@@ -183,7 +183,7 @@ public:
   }
 
   // return the themed brush for painting our children
-  virtual WXHBRUSH MSWGetBgBrushForChild(WXHDC hDC, WXHWND hWnd);
+  virtual WXHBRUSH MSWGetBgBrushForChild(WXHDC hDC, wxWindow *child);
 
   // draw child background
   virtual bool MSWPrintChild(WXHDC hDC, wxWindow *win);
index c1c4e3555b296950683c894f1a74ce844406bd1e..c4670e733689a610ade7385d52c10878e12ab06f 100644 (file)
@@ -399,17 +399,19 @@ public:
     // background or 0 if this window doesn't impose any particular background
     // on its children
     //
+    // the hDC parameter is the DC background will be drawn on, it can be used
+    // to call SetBrushOrgEx() on it if the returned brush is a bitmap one
+    //
+    // child parameter is never NULL
+    //
     // the base class version returns a solid brush if we have a non default
     // background colour or 0 otherwise
-    virtual WXHBRUSH MSWGetBgBrushForChild(WXHDC hDC, WXHWND hWnd);
+    virtual WXHBRUSH MSWGetBgBrushForChild(WXHDC hDC, wxWindowMSW *child);
 
     // return the background brush to use for painting the given window by
     // quering the parent windows via their MSWGetBgBrushForChild() recursively
-    //
-    // hWndToPaint is normally NULL meaning this window itself, but it can also
-    // be a child of this window which is used by the static box and could be
-    // potentially useful for other transparent controls
-    WXHBRUSH MSWGetBgBrush(WXHDC hDC, WXHWND hWndToPaint = NULL);
+    WXHBRUSH MSWGetBgBrush(WXHDC hDC) { return MSWGetBgBrush(hDC, this); }
+    WXHBRUSH MSWGetBgBrush(WXHDC hDC, wxWindowMSW *child);
 
     // gives the parent the possibility to draw its children background, e.g.
     // this is used by wxNotebook to do it using DrawThemeBackground()
index c573e4a29a4f497e770a5a3a1e7aa5dcab2dccfa..1cc9dce77e25cf1e66285c1b3372e0cc582b0612 100644 (file)
@@ -367,7 +367,8 @@ WXHBRUSH wxControl::DoMSWControlColor(WXHDC pDC, wxColour colBg, WXHWND hWnd)
     WXHBRUSH hbr = 0;
     if ( !colBg.Ok() )
     {
-        hbr = MSWGetBgBrush(pDC, hWnd);
+        if ( wxWindow *win = wxFindWinFromHandle(hWnd) )
+            hbr = MSWGetBgBrush(pDC, win);
 
         // if the control doesn't have any bg colour, foreground colour will be
         // ignored as the return value would be 0 -- so forcefully give it a
index 82304be26939888b013fe7b848d11ecf86160a18..831680858f107f4450e31b0274a04455e428ddc2 100644 (file)
@@ -1248,14 +1248,14 @@ void wxNotebook::UpdateBgBrush()
     }
 }
 
-WXHBRUSH wxNotebook::MSWGetBgBrushForChild(WXHDC hDC, WXHWND hWnd)
+WXHBRUSH wxNotebook::MSWGetBgBrushForChild(WXHDC hDC, wxWindow *child)
 {
     if ( m_hbrBackground )
     {
         // before drawing with the background brush, we need to position it
         // correctly
         RECT rc;
-        ::GetWindowRect((HWND)hWnd, &rc);
+        ::GetWindowRect(GetHwndOf(child), &rc);
 
         ::MapWindowPoints(NULL, GetHwnd(), (POINT *)&rc, 1);
 
@@ -1267,7 +1267,7 @@ WXHBRUSH wxNotebook::MSWGetBgBrushForChild(WXHDC hDC, WXHWND hWnd)
         return m_hbrBackground;
     }
 
-    return wxNotebookBase::MSWGetBgBrushForChild(hDC, hWnd);
+    return wxNotebookBase::MSWGetBgBrushForChild(hDC, child);
 }
 
 bool wxNotebook::MSWPrintChild(WXHDC hDC, wxWindow *child)
index 18abded0440ba9160111de6177d57f246037d2a9..0a5b78abd29f011495f93c4486d82dc799fd4061 100644 (file)
@@ -365,7 +365,7 @@ void wxStaticBox::PaintBackground(wxDC& dc, const RECT& rc)
     //     see http://groups.google.com/groups?selm=4252E932.3080801%40able.es
     wxWindow *parent = GetParent();
     wxMSWDCImpl *impl = (wxMSWDCImpl*) dc.GetImpl();
-    HBRUSH hbr = (HBRUSH)parent->MSWGetBgBrush(impl->GetHDC(), GetHWND());
+    HBRUSH hbr = (HBRUSH)parent->MSWGetBgBrush(impl->GetHDC(), this);
 
     // if there is no special brush for painting this control, just use the
     // solid background colour
index be4d7d01d26fd6babf11eade82b562613f7cc406..c95309f8aaaa613b345ed9eb25e6e7e8a838c761 100644 (file)
@@ -4816,7 +4816,7 @@ bool wxWindowMSW::DoEraseBackground(WXHDC hDC)
 }
 
 WXHBRUSH
-wxWindowMSW::MSWGetBgBrushForChild(WXHDC WXUNUSED(hDC), WXHWND hWnd)
+wxWindowMSW::MSWGetBgBrushForChild(WXHDC WXUNUSED(hDC), wxWindowMSW *child)
 {
     if ( m_hasBgCol )
     {
@@ -4828,11 +4828,10 @@ wxWindowMSW::MSWGetBgBrushForChild(WXHDC WXUNUSED(hDC), WXHWND hWnd)
         //     children because it would look wrong if a child of non
         //     transparent child would show our bg colour when the child itself
         //     does not
-        wxWindow *win = wxFindWinFromHandle(hWnd);
-        if ( win == this ||
+        if ( child == this ||
                 m_inheritBgCol ||
-                    (win && win->HasTransparentBackground() &&
-                        win->GetParent() == this) )
+                    (child->HasTransparentBackground() &&
+                        child->GetParent() == this) )
         {
             // draw children with the same colour as the parent
             wxBrush *
@@ -4845,14 +4844,11 @@ wxWindowMSW::MSWGetBgBrushForChild(WXHDC WXUNUSED(hDC), WXHWND hWnd)
     return 0;
 }
 
-WXHBRUSH wxWindowMSW::MSWGetBgBrush(WXHDC hDC, WXHWND hWndToPaint)
+WXHBRUSH wxWindowMSW::MSWGetBgBrush(WXHDC hDC, wxWindowMSW *child)
 {
-    if ( !hWndToPaint )
-        hWndToPaint = GetHWND();
-
     for ( wxWindowMSW *win = this; win; win = win->GetParent() )
     {
-        WXHBRUSH hBrush = win->MSWGetBgBrushForChild(hDC, hWndToPaint);
+        WXHBRUSH hBrush = win->MSWGetBgBrushForChild(hDC, child);
         if ( hBrush )
             return hBrush;