::SendMessage(GetHwnd(), TB_SETEXTENDEDSTYLE, 0, TBSTYLE_EX_DRAWDDARROWS);
#endif
+ // Fix a bug on e.g. the Silver theme on WinXP where control backgrounds
+ // are incorrectly drawn, by forcing the background to a specific colour.
+ int majorVersion, minorVersion;
+ wxGetOsVersion(& majorVersion, & minorVersion);
+ if (majorVersion < 6)
+ SetBackgroundColour(GetBackgroundColour());
+
return true;
}
if ( tool->Toggle(false) )
DoToggleTool(tool, false);
- prevButton.fsState &= TBSTATE_CHECKED;
+ prevButton.fsState &= ~TBSTATE_CHECKED;
nodePrev = nodePrev->GetPrevious();
prevIndex--;
}
// Deal with the controls finally
// ------------------------------
- bool hasControls = false;
-
// adjust the controls size to fit nicely in the toolbar
int y = 0;
size_t index = 0;
continue;
}
- hasControls = true;
-
wxControl *control = tool->GetControl();
wxStaticText * const staticText = tool->GetStaticText();
InvalidateBestSize();
UpdateSize();
- // Fix a bug on e.g. the Silver theme on WinXP where control backgrounds
- // are incorrectly drawn, by forcing the background to a specific colour.
- int majorVersion, minorVersion;
- wxGetOsVersion(& majorVersion, & minorVersion);
- if (majorVersion < 6 && hasControls && !UseBgCol())
- SetBackgroundColour(GetBackgroundColour());
-
return true;
}
// message handlers
// ----------------------------------------------------------------------------
-bool wxToolBar::MSWCommand(WXUINT WXUNUSED(cmd), WXWORD id)
+bool wxToolBar::MSWCommand(WXUINT WXUNUSED(cmd), WXWORD id_)
{
- wxToolBarToolBase *tool = FindById((int)id);
+ // cast to signed is important as we compare this id with (signed) ints in
+ // FindById() and without the cast we'd get a positive int from a
+ // "negative" (i.e. > 32767) WORD
+ const int id = (signed short)id_;
+
+ wxToolBarToolBase *tool = FindById(id);
if ( !tool )
return false;
// OnLeftClick() can veto the button state change - for buttons which
// may be toggled only, of couse
- if ( !OnLeftClick((int)id, toggled) && tool->CanBeToggled() )
+ if ( !OnLeftClick(id, toggled) && tool->CanBeToggled() )
{
// revert back
tool->Toggle(!toggled);