]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/notebook.cpp
Patch from OSAF that maintains radio button selection if Realize is recalled.
[wxWidgets.git] / src / msw / notebook.cpp
index 8e25f3895ba6a1914c5a07faafd055d7d1672ec4..dcf8118edc1318b63ad834d95a3d5f57b48ddf83 100644 (file)
@@ -184,6 +184,7 @@ IMPLEMENT_DYNAMIC_CLASS(wxNotebookEvent, wxNotifyEvent)
 // local functions
 // ----------------------------------------------------------------------------
 
+#ifndef __WXWINCE__
 // apparently DrawThemeBackground() modifies the rect passed to it and if we
 // don't call this function there are some drawing artifacts which are only
 // visible with some non default themes; so modify the rect here so that it
@@ -196,6 +197,7 @@ static void AdjustRectForThemeBg(RECT& rc)
     rc.right  += 4;
     rc.bottom += 5;
 }
+#endif
 
 // ============================================================================
 // implementation
@@ -256,6 +258,13 @@ bool wxNotebook::Create(wxWindow *parent,
                         long style,
                         const wxString& name)
 {
+#ifdef __WXWINCE__
+    // Not sure why, but without this style, there is no border
+    // around the notebook tabs.
+    if (style & wxNB_FLAT)
+        style |= wxBORDER_SUNKEN;
+#endif
+    
     // comctl32.dll 6.0 doesn't support non-top tabs with visual styles (the
     // control is simply not rendered correctly), so disable them in this case
     const int verComCtl32 = wxApp::GetComCtl32Version();
@@ -313,15 +322,13 @@ bool wxNotebook::Create(wxWindow *parent,
     if ( !MSWCreateControl(className, wxEmptyString, pos, size) )
         return false;
 
-    if (HasFlag(wxNB_NOPAGETHEME) || (wxSystemOptions::HasOption(wxT("msw.notebook.themed-background")) &&
-                                      wxSystemOptions::GetOptionInt(wxT("msw.notebook.themed-background")) == 0))
+#if wxUSE_UXTHEME
+    if ( HasFlag(wxNB_NOPAGETHEME) ||
+            wxSystemOptions::IsFalse(wxT("msw.notebook.themed-background")) )
     {
-        wxColour col = GetThemeBackgroundColour();
-        if (col.Ok())
-        {
-            SetBackgroundColour(col);
-        }
+        SetBackgroundColour(GetThemeBackgroundColour());
     }
+#endif // wxUSE_UXTHEME
 
     // Undocumented hack to get flat notebook style
     // In fact, we should probably only do this in some
@@ -756,12 +763,12 @@ int wxNotebook::HitTest(const wxPoint& pt, long *flags) const
 
 void wxNotebook::OnSize(wxSizeEvent& event)
 {
-    // update the background brush
 #if wxUSE_UXTHEME
+    // background bitmap size has changed, update the brush using it too
     UpdateBgBrush();
 #endif // wxUSE_UXTHEME
 
-    if (GetPageCount() == 0)
+    if ( GetPageCount() == 0 )
     {
         // Prevents droppings on resize, but does cause some flicker
         // when there are no pages.
@@ -1060,12 +1067,8 @@ wxNotebook::MSWPrintChild(wxWindow *win,
                           WXLPARAM WXUNUSED(lParam))
 {
     // Don't paint the theme for the child if we have a solid background
-    if ( m_hasBgCol ||
-            wxSystemOptions::IsFalse(wxT("msw.notebook.themed-background")) ||
-                HasFlag(wxNB_NOPAGETHEME) )
-    {
+    if ( m_hasBgCol )
         return false;
-    }
 
 
     RECT rc;
@@ -1135,8 +1138,7 @@ wxColour wxNotebook::GetThemeBackgroundColour() const
                                             &themeColor);
             }
 
-            wxColour colour(GetRValue(themeColor), GetGValue(themeColor), GetBValue(themeColor));
-            return colour;
+            return wxRGBToColour(themeColor);
         }
     }
 #endif // wxUSE_UXTHEME