]> git.saurik.com Git - wxWidgets.git/commitdiff
added (and documented) msw.xp-tab-ok option
authorVadim Zeitlin <vadim@wxwidgets.org>
Wed, 24 Nov 2004 21:24:09 +0000 (21:24 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Wed, 24 Nov 2004 21:24:09 +0000 (21:24 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@30770 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

docs/latex/wx/sysopt.tex
src/msw/notebook.cpp

index 6ccef0ac21e9c50129fbaee846fbd31c18620aba..d4d610c500ee5d9ddcf16ffae011eec4045514d0 100644 (file)
@@ -15,10 +15,16 @@ These options are currently recognised by wxWidgets:
 In some circumstances the MaskBlt function can be slower than using the fallback code, especially if using
 DC cacheing. By default, MaskBlt will be used where it is implemented by the operating system and driver.
 }
+\twocolitem{msw.xp-tab-ok}{(wxMSW under Windows XP or later only) Some versions
+of Windows XP don't render \helpref{wxNotebook}{wxnotebook} controls with tabs
+not on the top of it correctly, so wxWidgets by default always uses 
+\texttt{wxTOP} style under XP. If you are sure that this problem will not be
+present on your users machines, set this option to a non zero value to enable
+tabs with non default orientation.}
 \twocolitem{mgl.aa-threshold}{(wxMGL only) Set this integer option to point
 size below which fonts are not antialiased. Default: 10.
 }
-\twocolitem{mgl.aa-threshold}{(wxMGL only) Screen refresh rate in Hz.
+\twocolitem{mgl.screen-refresh}{(wxMGL only) Screen refresh rate in Hz.
 Reasonable default is used if not specified.
 }
 \end{twocollist}
@@ -36,6 +42,7 @@ is wxUSE\_SYSTEM\_OPTIONS.
 
 \latexignore{\rtfignore{\wxheading{Members}}}
 
+
 \membersection{wxSystemOptions::wxSystemOptions}\label{wxsystemoptionsctor}
 
 \func{}{wxSystemOptions}{\void}
@@ -43,35 +50,42 @@ is wxUSE\_SYSTEM\_OPTIONS.
 Default constructor. You don't need to create an instance of wxSystemOptions
 since all of its functions are static.
 
+
 \membersection{wxSystemOptions::GetOption}\label{wxsystemoptionsgetoption}
 
 \constfunc{wxString}{GetOption}{\param{const wxString\&}{ name}}
 
 Gets an option. The function is case-insensitive to {\it name}.
 
+Returns empty string if the option hasn't been set.
+
 \wxheading{See also}
 
 \helpref{wxSystemOptions::SetOption}{wxsystemoptionssetoption},\rtfsp
 \helpref{wxSystemOptions::GetOptionInt}{wxsystemoptionsgetoptionint},\rtfsp
 \helpref{wxSystemOptions::HasOption}{wxsystemoptionshasoption}
 
+
 \membersection{wxSystemOptions::GetOptionInt}\label{wxsystemoptionsgetoptionint}
 
 \constfunc{int}{GetOptionInt}{\param{const wxString\&}{ name}}
 
 Gets an option as an integer. The function is case-insensitive to {\it name}.
 
+If the option hasn't been set, this function returns $0$.
+
 \wxheading{See also}
 
 \helpref{wxSystemOptions::SetOption}{wxsystemoptionssetoption},\rtfsp
 \helpref{wxSystemOptions::GetOption}{wxsystemoptionsgetoption},\rtfsp
 \helpref{wxSystemOptions::HasOption}{wxsystemoptionshasoption}
 
+
 \membersection{wxSystemOptions::HasOption}\label{wxsystemoptionshasoption}
 
 \constfunc{bool}{HasOption}{\param{const wxString\&}{ name}}
 
-Returns true if the given option is present. The function is case-insensitive to {\it name}.
+Returns \true if the given option is present. The function is case-insensitive to {\it name}.
 
 \wxheading{See also}
 
@@ -79,6 +93,7 @@ Returns true if the given option is present. The function is case-insensitive to
 \helpref{wxSystemOptions::GetOption}{wxsystemoptionsgetoption},\rtfsp
 \helpref{wxSystemOptions::GetOptionInt}{wxsystemoptionsgetoptionint}
 
+
 \membersection{wxSystemOptions::SetOption}\label{wxsystemoptionssetoption}
 
 \func{void}{SetOption}{\param{const wxString\&}{ name}, \param{const wxString\&}{ value}}
index eef37234b2465b4e709b8305d428ea96a1b789c0..b060534c716803328ece5b8f626bf0020f8be6e3 100644 (file)
@@ -33,6 +33,7 @@
 #include  "wx/event.h"
 #include  "wx/control.h"
 #include  "wx/notebook.h"
+#include  "wx/sysopt.h"
 #include  "wx/app.h"
 
 #include  "wx/msw/private.h"
@@ -243,18 +244,21 @@ bool wxNotebook::Create(wxWindow *parent,
                         long style,
                         const wxString& name)
 {
-    // Does ComCtl32 support non-top tabs?
-    int verComCtl32 = wxApp::GetComCtl32Version();
-    if ( verComCtl32 < 470 || verComCtl32 >= 600 )
+    // some versions of comctl32.dll 6.0 included with Windows XP don't
+    // support non-top tabs (the control is simply not rendered correctly) but
+    // we can't detect which ones, so be pessimistic by default and disable non
+    // top tabs under XP but allow the user to override this by using a special
+    // system option
+    bool nonTopTabsOk = wxSystemOptions::GetOptionInt(_T("msw.xp-tab-ok")) != 0;
+    if ( !nonTopTabsOk )
     {
-        if (style & wxNB_BOTTOM)
-            style &= ~wxNB_BOTTOM;
-
-        if (style & wxNB_LEFT)
-            style &= ~wxNB_LEFT;
+        int verComCtl32 = wxApp::GetComCtl32Version();
+        nonTopTabsOk = verComCtl32 < 470 || verComCtl32 >= 600;
+    }
 
-        if (style & wxNB_RIGHT)
-            style &= ~wxNB_RIGHT;
+    if ( !nonTopTabsOk )
+    {
+        style &= ~(wxNB_BOTTOM | wxNB_LEFT | wxNB_RIGHT);
     }
 
     if ( !CreateControl(parent, id, pos, size, style | wxTAB_TRAVERSAL,