]> git.saurik.com Git - wxWidgets.git/commitdiff
cleanups after SciTech commit :-(
authorVadim Zeitlin <vadim@wxwidgets.org>
Fri, 8 Feb 2002 00:18:10 +0000 (00:18 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Fri, 8 Feb 2002 00:18:10 +0000 (00:18 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@14063 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/dc.h
include/wx/msw/dc.h
include/wx/msw/private.h
include/wx/window.h
src/common/wincmn.cpp
src/msw/dc.cpp
src/msw/window.cpp

index 58bb8ab0cda025e5f027a27e855081b3948dd7fd..8366a5c4794aeb3e202777b2c6a6e9bb666de543 100644 (file)
@@ -227,7 +227,7 @@ public:
     void DrawCircle(wxCoord x, wxCoord y, wxCoord radius)
         { DoDrawEllipse(x - radius, y - radius, 2*radius, 2*radius); }
     void DrawCircle(const wxPoint& pt, wxCoord radius)
-        { DoDrawEllipse(pt.x, pt.y, radius); }
+        { DrawCircle(pt.x, pt.y, radius); }
 
     void DrawEllipse(wxCoord x, wxCoord y, wxCoord width, wxCoord height)
         { DoDrawEllipse(x, y, width, height); }
@@ -743,7 +743,7 @@ protected:
 
 #if wxUSE_PALETTE
     wxPalette         m_palette;
-    bool              m_custompalette;
+    bool              m_hasCustomPalette;
 #endif // wxUSE_PALETTE
 
 private:
index 682bdb16b255f1f5c4a54a61ac996208c52f1fdd..f28ffedd8d82f52c44258e1f7bf375220651fc24 100644 (file)
@@ -102,13 +102,15 @@ public:
     virtual void SelectOldObjects(WXHDC dc);
 
     wxWindow *GetWindow() const { return m_canvas; }
-    void SetWindow(wxWindow *win) {
+    void SetWindow(wxWindow *win)
+    {
         m_canvas = win;
+
 #if wxUSE_PALETTE
         // if we have palettes use the correct one for this window
         InitializePalette();
-#endif
-        }
+#endif // wxUSE_PALETTE
+    }
 
     WXHDC GetHDC() const { return m_hDC; }
     void SetHDC(WXHDC dc, bool bOwnsDC = FALSE)
@@ -195,10 +197,12 @@ protected:
     // (tell windows to translate pixel from other palettes to our custom one
     // and vice versa)
     // Realize tells it to also reset the system palette to this one.
-    void DoSelectPalette(bool realize = false);
+    void DoSelectPalette(bool realize = FALSE);
+
     // Find out what palette our parent window has, then select it into the dc
     void InitializePalette();
-#endif
+#endif // wxUSE_PALETTE
+
     // common part of DoDrawText() and DoDrawRotatedText()
     void DrawAnyText(const wxString& text, wxCoord x, wxCoord y);
 
index 14f3b2a2eaa23277a3f84ce6ae20e162a5eafbb1..23aaba1766f26b9e2c65bcfbe623a19fa484403b 100644 (file)
@@ -396,7 +396,7 @@ private:
 #define GetHfontOf(font)        ((HFONT)(font).GetHFONT())
 
 #define GetHpalette()           ((HPALETTE)GetHPALETTE())
-#define GetHpaletteOf(pal)      ((HPALETTE)(pal)->GetHPALETTE())
+#define GetHpaletteOf(pal)      ((HPALETTE)(pal).GetHPALETTE())
 
 #define GetHrgn()               ((HRGN)GetHRGN())
 #define GetHrgnOf(rgn)          ((HRGN)(rgn).GetHRGN())
index 1e4736b97b7e6fbb2ab20aaf0de5658b01ec2b57..6d6edb28f37291045bacb55eb5b3b4b98b6c3b2d 100644 (file)
@@ -770,15 +770,16 @@ public:
         // Store the palette used by DCs in wxWindow so that the dcs can share
         // a palette. And we can respond to palette messages.
     wxPalette GetPalette() const { return m_palette; }
+
         // When palette is changed tell the DC to set the system palette to the
         // new one.
-    void SetPalette(wxPalette &pal) {
-                       m_custompalette=true;
-                       m_palette=pal;
-            wxWindowDC d((wxWindow *) this);
-                       d.SetPalette(pal);
-                       }
-    bool HasCustomPalette() { return m_custompalette; }
+    void SetPalette(const wxPalette& pal);
+
+        // return true if we have a specific palette
+    bool HasCustomPalette() const { return m_hasCustomPalette; }
+
+        // return the first parent window with a custom palette or NULL
+    wxWindow *GetAncestorWithCustomPalette() const;
 #endif // wxUSE_PALETTE
 
 protected:
@@ -866,8 +867,8 @@ protected:
 
 #ifdef wxUSE_PALETTE
     wxPalette            m_palette;
-    bool                 m_custompalette;
-#endif
+    bool                 m_hasCustomPalette;
+#endif // wxUSE_PALETTE
 
 protected:
 
index 83253625efabc394d73b78426e2b9a21b18085db..2f540c96cdfe5215e990460549c5d01a6d3cee1d 100644 (file)
@@ -168,7 +168,7 @@ void wxWindowBase::InitBase()
 #endif // wxUSE_CARET
 
 #if wxUSE_PALETTE
-    m_custompalette = false;
+    m_hasCustomPalette = FALSE;
 #endif // wxUSE_PALETTE
 
     // Whether we're using the current theme for this window (wxGTK only for now)
@@ -733,6 +733,31 @@ bool wxWindowBase::SetFont(const wxFont& font)
     return TRUE;
 }
 
+#if wxUSE_PALETTE
+
+void wxWindowBase::SetPalette(const wxPalette& pal)
+{
+    m_hasCustomPalette = TRUE;
+    m_palette = pal;
+
+    // VZ: can anyone explain me what do we do here?
+    wxWindowDC d((wxWindow *) this);
+    d.SetPalette(pal);
+}
+
+wxWindow *wxWindowBase::GetAncestorWithCustomPalette() const
+{
+    wxWindow *win = (wxWindow *)this;
+    while ( win && !win->HasCustomPalette() )
+    {
+        win = win->GetParent();
+    }
+
+    return win;
+}
+
+#endif // wxUSE_PALETTE
+
 #if wxUSE_CARET
 void wxWindowBase::SetCaret(wxCaret *caret)
 {
index 05445fae717820f4f8006c509390011d2a4311e1..0a75fced54be38aa24f82bd810bfb889e74a8edb 100644 (file)
@@ -940,7 +940,7 @@ void wxDC::DoDrawBitmap( const wxBitmap &bmp, wxCoord x, wxCoord y, bool useMask
             wxPalette *pal = bmp.GetPalette();
             if ( pal && ::GetDeviceCaps(cdc,BITSPIXEL) <= 8 )
             {
-                oldPal = ::SelectPalette(hdcMem, GetHpaletteOf(pal), FALSE);
+                oldPal = ::SelectPalette(hdcMem, GetHpaletteOf(*pal), FALSE);
                 ::RealizePalette(hdcMem);
             }
 #endif // wxUSE_PALETTE
@@ -995,7 +995,7 @@ void wxDC::DoDrawBitmap( const wxBitmap &bmp, wxCoord x, wxCoord y, bool useMask
         wxPalette *pal = bmp.GetPalette();
         if ( pal && ::GetDeviceCaps(cdc,BITSPIXEL) <= 8 )
         {
-            oldPal = ::SelectPalette(memdc, GetHpaletteOf(pal), FALSE);
+            oldPal = ::SelectPalette(memdc, GetHpaletteOf(*pal), FALSE);
             ::RealizePalette(memdc);
         }
 #endif // wxUSE_PALETTE
@@ -1157,44 +1157,47 @@ void wxDC::DoSelectPalette(bool realize)
         m_oldPalette = 0;
     }
 
-    if (m_palette.Ok() && m_palette.GetHPALETTE())
+    if ( m_palette.Ok() )
     {
-        HPALETTE oldPal = ::SelectPalette(GetHdc(), (HPALETTE) m_palette.GetHPALETTE(), FALSE);
+        HPALETTE oldPal = ::SelectPalette(GetHdc(),
+                                          GetHpaletteOf(m_palette),
+                                          FALSE);
         if (!m_oldPalette)
             m_oldPalette = (WXHPALETTE) oldPal;
 
         if (realize)
             ::RealizePalette(GetHdc());
     }
-
-
 }
 
 void wxDC::SetPalette(const wxPalette& palette)
 {
-    if (palette.Ok()) {
+    if ( palette.Ok() )
+    {
         m_palette = palette;
-        DoSelectPalette(true);
-        }
+        DoSelectPalette(TRUE);
+    }
 }
 
 void wxDC::InitializePalette()
 {
-    if (wxDisplayDepth() <= 8) {
+    if ( wxDisplayDepth() <= 8 )
+    {
         // look for any window or parent that has a custom palette. If any has
         // one then we need to use it in drawing operations
-        wxWindow *win = m_canvas;
-        while (!win->HasCustomPalette() && win->GetParent()) win = win->GetParent();
-        if (win->HasCustomPalette()) {
+        wxWindow *win = m_canvas->GetAncestorWithCustomPalette();
+
+        m_hasCustomPalette = win && win->HasCustomPalette();
+        if ( m_hasCustomPalette )
+        {
             m_palette = win->GetPalette();
-            m_custompalette = true;
+
             // turn on MSW translation for this palette
             DoSelectPalette();
-            }
-        else
-            m_custompalette = false;
         }
+    }
 }
+
 #endif // wxUSE_PALETTE
 
 void wxDC::SetFont(const wxFont& the_font)
index b47f269cfd1770a7aeeb5b7451c3ceaf64cc2205..0613d376591f66c1a6f8d5299d906f8d361a095c 100644 (file)
@@ -3349,30 +3349,38 @@ WXHBRUSH wxWindowMSW::OnCtlColor(WXHDC WXUNUSED(hDC),
 bool wxWindowMSW::HandlePaletteChanged(WXHWND hWndPalChange)
 {
 #if wxUSE_PALETTE
-        // same as below except we don't respond to our own messages
-        if (hWndPalChange != GetHWND()) {
+    // same as below except we don't respond to our own messages
+    if ( hWndPalChange != GetHWND() )
+    {
         // check to see if we our our parents have a custom palette
         wxWindow *win = this;
-        while (!win->HasCustomPalette() && win->GetParent()) win = win->GetParent();
-        if (win->HasCustomPalette()) {
-            /* realize the palette to see whether redrawing is needed */
-            HDC hdc = GetDC((HWND) hWndPalChange);
-            win->m_palette.SetHPALETTE( (WXHPALETTE)
-                ::SelectPalette(hdc, (HPALETTE) win->m_palette.GetHPALETTE(), false) );
+        while ( win && !win->HasCustomPalette() )
+        {
+            win = win->GetParent();
+        }
+
+        if ( win && win->HasCustomPalette() )
+        {
+            // realize the palette to see whether redrawing is needed
+            HDC hdc = ::GetDC((HWND) hWndPalChange);
+            win->m_palette.SetHPALETTE((WXHPALETTE)
+                    ::SelectPalette(hdc, GetHpaletteOf(win->m_palette), FALSE));
 
             int result = ::RealizePalette(hdc);
-            /* restore the palette (before releasing the DC) */
-            win->m_palette.SetHPALETTE( (WXHPALETTE)
-                ::SelectPalette(hdc, (HPALETTE) win->m_palette.GetHPALETTE(), true) );
-            RealizePalette(hdc);
-            ReleaseDC((HWND) hWndPalChange, hdc);
-            /* now check for the need to redraw */
+
+            // restore the palette (before releasing the DC)
+            win->m_palette.SetHPALETTE((WXHPALETTE)
+                    ::SelectPalette(hdc, GetHpaletteOf(win->m_palette), FALSE));
+            ::RealizePalette(hdc);
+            ::ReleaseDC((HWND) hWndPalChange, hdc);
+
+            // now check for the need to redraw
             if (result > 0)
                 InvalidateRect((HWND) hWndPalChange, NULL, TRUE);
-            }
-
         }
-#endif
+
+    }
+#endif // wxUSE_PALETTE
 
     wxPaletteChangedEvent event(GetId());
     event.SetEventObject(this);
@@ -3392,19 +3400,19 @@ bool wxWindowMSW::HandleQueryNewPalette()
         /* realize the palette to see whether redrawing is needed */
         HDC hdc = GetDC((HWND) GetHWND());
         win->m_palette.SetHPALETTE( (WXHPALETTE)
-             ::SelectPalette(hdc, (HPALETTE) win->m_palette.GetHPALETTE(), false) );
+             ::SelectPalette(hdc, (HPALETTE) win->m_palette.GetHPALETTE(), FALSE) );
 
         int result = ::RealizePalette(hdc);
         /* restore the palette (before releasing the DC) */
         win->m_palette.SetHPALETTE( (WXHPALETTE)
-             ::SelectPalette(hdc, (HPALETTE) win->m_palette.GetHPALETTE(), true) );
+             ::SelectPalette(hdc, (HPALETTE) win->m_palette.GetHPALETTE(), TRUE) );
         ::RealizePalette(hdc);
         ::ReleaseDC((HWND) GetHWND(), hdc);
         /* now check for the need to redraw */
         if (result > 0)
             ::InvalidateRect((HWND) GetHWND(), NULL, TRUE);
         }
-#endif
+#endif // wxUSE_PALETTE
 
     wxQueryNewPaletteEvent event(GetId());
     event.SetEventObject(this);