#include "wx/menu.h"
#endif //WX_PRECOMP
-#ifdef __SMARTPHONE__
+#if defined(__SMARTPHONE__) && defined(__WXWINCE__)
#include <windows.h>
#include <ole2.h>
#include "wx/msw/wince/resources.h"
+#include "wx/stockitem.h"
+
wxTopLevelWindowMSW::ButtonMenu::ButtonMenu()
{
m_id = wxID_ANY;
{
m_assigned = true;
m_id = id;
- m_label = label;
+ if(label.empty() && wxIsStockID(id))
+ m_label = wxGetStockLabel(id);
+ else
+ m_label = label;
m_menu = subMenu;
}
wxMenu *wxTopLevelWindowMSW::ButtonMenu::DuplicateMenu(wxMenu *menu)
{
- // This is required in case of converting wxMenuBar to wxMenu in wxFrame::SetMenuBar.
- // All submenus has to be recreated because of new owner.
+ // This is required in case of converting wxMenuBar to wxMenu in wxFrame::SetMenuBar.
+ // All submenus has to be recreated because of new owner.
- wxMenu *duplication = new wxMenu;
+ wxMenu *duplication = new wxMenu;
- if (menu)
- {
+ if (menu)
+ {
wxMenuItemList::compatibility_iterator node = menu->GetMenuItems().GetFirst();
while (node)
- {
- wxMenuItem *item = node->GetData();
- if (item)
- {
- wxMenu *submenu = NULL;
+ {
+ wxMenuItem *item = node->GetData();
+ if (item)
+ {
+ wxMenu *submenu = NULL;
- if(item->IsSubMenu())
- submenu = DuplicateMenu( item->GetSubMenu() );
- else
- submenu = NULL;
+ if(item->IsSubMenu())
+ submenu = DuplicateMenu( item->GetSubMenu() );
+ else
+ submenu = NULL;
- wxMenuItem *new_item = wxMenuItem::New(duplication, item->GetId(), item->GetLabel(), item->GetHelp(), item->GetKind(), submenu);
+ wxMenuItem *new_item = wxMenuItem::New(duplication, item->GetId(), item->GetLabel(), item->GetHelp(), item->GetKind(), submenu);
- if( item->IsCheckable() )
- new_item->Check(item->IsChecked());
+ if( item->IsCheckable() )
+ new_item->Check(item->IsChecked());
- new_item->Enable( item->IsEnabled() );
+ new_item->Enable( item->IsEnabled() );
- duplication->Append(new_item);
- }
+ duplication->Append(new_item);
+ }
node = node->GetNext();
- }
-
- }
+ }
+
+ }
- return duplication;
+ return duplication;
}
void wxMenuToHMenu(wxMenu* in, HMENU hMenu)
button_info.fsState = TBSTATE_ENABLED;
wxStrcpy(buf, button.GetLabel().c_str());
button_info.pszText = buf;
- SendMessage(m_MenuBarHWND, TB_SETBUTTONINFO, menuID, (LPARAM) &button_info);
+ ::SendMessage(m_MenuBarHWND, TB_SETBUTTONINFO, menuID, (LPARAM) &button_info);
if(button.IsMenu())
{
- HMENU hPopupMenu = (HMENU) SendMessage(m_MenuBarHWND, SHCMBM_GETSUBMENU, 0, menuID);
+ HMENU hPopupMenu = (HMENU) ::SendMessage(m_MenuBarHWND, SHCMBM_GETSUBMENU, 0, menuID);
RemoveMenu(hPopupMenu, 0, MF_BYPOSITION);
wxMenuToHMenu(button.GetMenu(), hPopupMenu);
}
return false;
}
-#endif // __SMARTPHONE__
+#endif // __SMARTPHONE__ && __WXWINCE__