#include "wx/imaglist.h"
#include "wx/msw/dragimag.h"
+#include "wx/msw/uxtheme.h"
// macros to hide the cast ugliness
// --------------------------------
// The vista tree control includes some new code that originally broke the
// multi-selection tree, causing seemingly spurious item selection state changes
// during Shift or Ctrl-click item selection. (To witness the original broken
-// behavior, simply make IsLocked() below always return false). This problem was
+// behaviour, simply make IsLocked() below always return false). This problem was
// solved by using the following class to 'unlock' an item's selection state.
class TreeItemUnlocker
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;
}
// the wrong items are deselected.
// Fortunately, Vista provides a new notification, TVN_ITEMCHANGING
- // that can be used to regulate this incorrect behavior. The
+ // that can be used to regulate this incorrect behaviour. The
// following messages will allow only the unlocked item's selection
// state to change