git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2048
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
// Finds the item id matching the given string, -1 if not found.
int wxMenu::FindItem (const wxString& itemString) const
{
// 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() )
{
wxString itemLabel = wxStripMenuCodes(itemString);
for ( wxNode *node = m_menuItems.First(); node; node = node->Next() )
{
*itemMenu = NULL;
wxMenuItem *item = NULL;
*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();
{
item = (wxMenuItem *)node->Data();
{
if (itemMenu)
*itemMenu = (wxMenu *)this;
{
if (itemMenu)
*itemMenu = (wxMenu *)this;
}
else if ( item->IsSubMenu() )
{
item = item->GetSubMenu()->FindItemForId(itemId, itemMenu);
}
else if ( item->IsSubMenu() )
{
item = item->GetSubMenu()->FindItemForId(itemId, itemMenu);
+ }
+ else
+ {
+ // don't exit the loop
+ item = NULL;