]> git.saurik.com Git - wxWidgets.git/commitdiff
Use Explorer style for wxTreeCtrl with wxTR_TWIST_BUTTONS in wxMSW.
authorVadim Zeitlin <vadim@wxwidgets.org>
Sun, 6 Feb 2011 01:00:48 +0000 (01:00 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Sun, 6 Feb 2011 01:00:48 +0000 (01:00 +0000)
The tree control style used by Explorer uses rotating triangles instead of the
standard "+/-" buttons and so seems to correspond relatively well to this
style. And this provides a possibility to have a more standard-looking tree
controls in wxWidgets programs.

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

interface/wx/treectrl.h
src/msw/treectrl.cpp

index d41d5d4336e7ef2428b9515483c6f7f6d772e298..6b3513650bd0d84562b55221af9f2bb6cdcfaba5 100644 (file)
         For convenience to document that no buttons are to be drawn.
     @style{wxTR_HAS_BUTTONS}
         Use this style to show + and - buttons to the left of parent items.
         For convenience to document that no buttons are to be drawn.
     @style{wxTR_HAS_BUTTONS}
         Use this style to show + and - buttons to the left of parent items.
+    @style{wxTR_TWIST_BUTTONS}
+        Selects alternative style of @c +/@c - buttons and shows rotating
+        ("twisting") arrows instead. Currently this style is only implemented
+        under Microsoft Windows Vista and later Windows versions and is ignored
+        under the other platforms. Notice that under Vista this style results
+        in the same appearance as used by the tree control in Explorer and
+        other built-in programs and so using it may be preferable to the
+        default style.
     @style{wxTR_NO_LINES}
         Use this style to hide vertical level connectors.
     @style{wxTR_FULL_ROW_HIGHLIGHT}
     @style{wxTR_NO_LINES}
         Use this style to hide vertical level connectors.
     @style{wxTR_FULL_ROW_HIGHLIGHT}
index 4fd9657d16d5814f2ef7d31fa24819e95cb36230..326e1544699aa308032ad237697d871cb71e1633 100644 (file)
@@ -42,6 +42,7 @@
 
 #include "wx/imaglist.h"
 #include "wx/msw/dragimag.h"
 
 #include "wx/imaglist.h"
 #include "wx/msw/dragimag.h"
+#include "wx/msw/uxtheme.h"
 
 // macros to hide the cast ugliness
 // --------------------------------
 
 // macros to hide the cast ugliness
 // --------------------------------
@@ -741,6 +742,20 @@ bool wxTreeCtrl::Create(wxWindow *parent,
 
     wxSetCCUnicodeFormat(GetHwnd());
 
 
     wxSetCCUnicodeFormat(GetHwnd());
 
+    if ( m_windowStyle & wxTR_TWIST_BUTTONS )
+    {
+        // Under Vista and later Explorer uses rotating ("twist") buttons
+        // instead of the default "+/-" ones so apply its theme to the tree
+        // control to implement this style.
+        if ( wxGetWinVersion() >= wxWinVersion_Vista )
+        {
+            if ( wxUxThemeEngine *theme = wxUxThemeEngine::GetIfActive() )
+            {
+                theme->SetWindowTheme(GetHwnd(), L"EXPLORER", NULL);
+            }
+        }
+    }
+
     return true;
 }
 
     return true;
 }