]> git.saurik.com Git - wxWidgets.git/commitdiff
Applied patch [ 1412216 ] non-themed fallback support for other wxNotebook orientation
authorJulian Smart <julian@anthemion.co.uk>
Sat, 11 Feb 2006 15:41:40 +0000 (15:41 +0000)
committerJulian Smart <julian@anthemion.co.uk>
Sat, 11 Feb 2006 15:41:40 +0000 (15:41 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@37490 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

docs/changes.txt
src/msw/notebook.cpp

index 824dbde2688b890106b8080318f0ba702e1e4ae9..53c813b2060e14a2ed5b246babc3a16e988c373c 100644 (file)
@@ -82,13 +82,13 @@ All (GUI):
 - Added wxToolbook (uses a wxToolBar to control pages).
 - Added SetSheetStyle to wxPropertySheetDialog and allowed it to
   behave like a Mac OS X settings dialog.
-- Added <disabled> XRC tag for wxToolBar elements and <bg> for wxToolBar itself
-- Fixed centering of top level windows on secondary displays
-- Implemented wxDisplay::GetFromWindow() for platforms other than MSW
+- Added <disabled> XRC tag for wxToolBar elements and <bg> for wxToolBar itself.
+- Fixed centering of top level windows on secondary displays.
+- Implemented wxDisplay::GetFromWindow() for platforms other than MSW.
 
 wxMSW:
 
-- Fixed crash with ownerdrawn menu items accelerators (Perry Miller)
+- Fixed crash with ownerdrawn menu items accelerators (Perry Miller).
 - wxFileDialog respects absence of wxCHANGE_DIR flag under NT (Brad Anderson).
 - Switching page of a hidden notebook doesn't lose focus (Jamie Gadd).
 - Removed wxImageList *GetImageList(int) const.
@@ -128,6 +128,7 @@ wxMSW:
 - Fixed problem with getting input in universal/unicode build of wxMSW.
 - Link oleacc.lib conditionally.
 - Drag and drop now works inside static boxes.
+- Fall back to unthemed wxNotebook if specified orientation not available.
 
 wxGTK:
 
index 8405625fcc097d4e959b72a6dbffa1bc343e35a4..4792bbef1cdb2f1953be602be30841f7533b82c7 100644 (file)
@@ -275,19 +275,16 @@ bool wxNotebook::Create(wxWindow *parent,
         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
+#if !wxUSE_UXTHEME 
+    // ComCtl32 notebook tabs simply don't work unless they're on top if we have uxtheme, we can
+    // work around it later (after control creation), but if we don't have uxtheme, we have to clear
+    // those styles
     const int verComCtl32 = wxApp::GetComCtl32Version();
     if ( verComCtl32 == 600 )
     {
-        // check if we use themes at all -- if we don't, we're still ok
-#if wxUSE_UXTHEME
-        if ( wxUxThemeEngine::GetIfActive() )
-#endif
-        {
-            style &= ~(wxBK_BOTTOM | wxBK_LEFT | wxBK_RIGHT);
-        }
+        style &= ~(wxNB_BOTTOM | wxNB_LEFT | wxNB_RIGHT);
     }
+#endif //wxUSE_UXTHEME
 
     LPCTSTR className = WC_TABCONTROL;
 
@@ -348,6 +345,22 @@ bool wxNotebook::Create(wxWindow *parent,
         // create backing store
         UpdateBgBrush();
     }
+    
+    // comctl32.dll 6.0 doesn't support non-top tabs with visual styles (the
+    // control is simply not rendered correctly), so we disable themes
+    // if possible, otherwise we simply clear the styles.
+    // It's probably not possible to have UXTHEME without ComCtl32 6 or better, but lets
+    // check it anyway.
+    const int verComCtl32 = wxApp::GetComCtl32Version();
+    if ( verComCtl32 == 600 ) 
+    {
+        // check if we use themes at all -- if we don't, we're still okay
+        if ( wxUxThemeEngine::GetIfActive() && (style & (wxNB_BOTTOM|wxNB_LEFT|wxNB_RIGHT)))
+        {
+            wxUxThemeEngine::GetIfActive()->SetWindowTheme((HWND)this->GetHandle(), L"", L"");
+            SetBackgroundColour(GetThemeBackgroundColour());    //correct the background color for the new non-themed control
+        }
+    }
 #endif // wxUSE_UXTHEME
 
     // Undocumented hack to get flat notebook style