Returns the integer identifier corresponding to a listbox, choice or
radiobox selection (only if the event was a selection, not a deselection),
or a boolean value representing the value of a checkbox.
+
+ For a menu item, this method returns -1 if the item is not checkable or
+ a boolean value (true or false) for checkable items indicating the new
+ state of the item.
*/
int GetInt() const;
// use the new value
commandEvent.SetInt(item->IsChecked());
}
+ else // Uncheckable item.
+ {
+ commandEvent.SetInt(-1);
+ }
return HandleWindowEvent(commandEvent);
}
// ignore commands from the menu title
if ( id != idMenuTitle )
{
+ // Default value for uncheckable items.
+ int checked = -1;
+
// update the check item when it's clicked
wxMenuItem * const item = FindItem(id);
if ( item && item->IsCheckable() )
+ {
item->Toggle();
- // get the status of the menu item: note that it has been just changed
- // by Toggle() above so here we already get the new state of the item
- //
- // Also notice that we must pass unsigned id_ and not sign-extended id
- // to ::GetMenuState() as this is what it expects.
- UINT menuState = ::GetMenuState(GetHmenu(), id_, MF_BYCOMMAND);
- SendEvent(id, menuState & MF_CHECKED ? 1 : 0);
+ // Get the status of the menu item: note that it has been just changed
+ // by Toggle() above so here we already get the new state of the item.
+ //
+ // Also notice that we must pass unsigned id_ and not sign-extended id
+ // to ::GetMenuState() as this is what it expects.
+ UINT menuState = ::GetMenuState(GetHmenu(), id_, MF_BYCOMMAND);
+ checked = (menuState & MF_CHECKED) != 0;
+ }
+
+ SendEvent(id, checked);
}
return true;