if ( !m_hMenu )
{
- wxFAIL_MSG( _T("failed to create menu bar") );
+ wxFAIL_MSG( wxT("failed to create menu bar") );
return;
}
}
tx = 0;
}
- int desiredW = tw;
- int desiredH = th;
+ int desiredW,
+ desiredH;
if ( toolbar->IsVertical() )
{
+ desiredW = tw;
desiredH = height;
}
else
{
desiredW = width;
+ desiredH = th;
}
- // use the 'real' MSW position here, don't offset relativly to the
+ // use the 'real' MSW position here, don't offset relatively to the
// client area origin
-
- // Optimise such that we don't have to always resize the toolbar
- // when the frame changes, otherwise we'll get a lot of flicker.
- bool heightChanging wxDUMMY_INITIALIZE(true);
- bool widthChanging wxDUMMY_INITIALIZE(true);
-
- if ( toolbar->IsVertical() )
- {
- // It's OK if the current height is greater than what can be shown.
- heightChanging = (desiredH > th) ;
- widthChanging = (desiredW != tw) ;
-
- // The next time around, we may not have to set the size
- if (heightChanging)
- desiredH = desiredH + 200;
- }
- else
- {
- // It's OK if the current width is greater than what can be shown.
- widthChanging = (desiredW > tw) ;
- heightChanging = (desiredH != th) ;
-
- // The next time around, we may not have to set the size
- if (widthChanging)
- desiredW = desiredW + 200;
- }
-
- if (tx != 0 || ty != 0 || widthChanging || heightChanging)
- toolbar->SetSize(x, y, desiredW, desiredH, wxSIZE_NO_ADJUSTMENTS);
+ toolbar->SetSize(x, y, desiredW, desiredH, wxSIZE_NO_ADJUSTMENTS);
}
#endif // !WINCE_WITH_COMMANDBAR
bool wxFrame::HandleCommand(WXWORD id, WXWORD cmd, WXHWND control)
{
#if wxUSE_MENUS
+
+#if defined(WINCE_WITHOUT_COMMANDBAR)
+ if (GetToolBar() && GetToolBar()->FindById(id))
+ return GetToolBar()->MSWCommand(cmd, id);
+#endif
+
// we only need to handle the menu and accelerator commands from the items
// of our menu bar, base wxWindow class already handles the rest
if ( !control && (cmd == 0 /* menu */ || cmd == 1 /* accel */) )
bool
wxFrame::HandleMenuSelect(WXWORD nItem, WXWORD flags, WXHMENU WXUNUSED(hMenu))
{
+ // sign extend to int from unsigned short we get from Windows
+ int item = (signed short)nItem;
+
// WM_MENUSELECT is generated for both normal items and menus, including
// the top level menus of the menu bar, which can't be represented using
- // any valid identifier in wxMenuEvent so use -1 for them
- // the menu highlight events for n
- const int item = flags & (MF_POPUP | MF_SEPARATOR) ? -1 : nItem;
+ // any valid identifier in wxMenuEvent so use an otherwise unused value for
+ // them
+ if ( flags & (MF_POPUP | MF_SEPARATOR) )
+ item = wxID_NONE;
wxMenuEvent event(wxEVT_MENU_HIGHLIGHT, item);
event.SetEventObject(this);
// by default, i.e. if the event wasn't handled above, clear the status bar
// text when an item which can't have any associated help string in wx API
// is selected
- if ( item == -1 )
+ if ( item == wxID_NONE )
DoGiveHelp(wxEmptyString, true);
return false;