// Finds the item id matching the given string, -1 if not found.
int wxMenu::FindItem (const wxString& itemString) const
{
- // FIXME fixed size buffer
wxString itemLabel = wxStripMenuCodes(itemString);
for ( wxNode *node = m_menuItems.First(); node; node = node->Next() )
{
*itemMenu = NULL;
wxMenuItem *item = NULL;
- for ( wxNode *node = m_menuItems.First(); node; node = node->Next() )
+ for ( wxNode *node = m_menuItems.First(); node && !item; node = node->Next() )
{
item = (wxMenuItem *)node->Data();
{
if (itemMenu)
*itemMenu = (wxMenu *)this;
- break;
}
else if ( item->IsSubMenu() )
{
item = item->GetSubMenu()->FindItemForId(itemId, itemMenu);
- if ( item )
- break;
+ }
+ else
+ {
+ // don't exit the loop
+ item = NULL;
}
}