// ----------------------------------------------------------------------------
// the (popup) menu title has this special id
-static const int idMenuTitle = -3;
+static const UINT idMenuTitle = (UINT)-3;
// ----------------------------------------------------------------------------
// private functions
// id is the numeric id for normal menu items and HMENU for submenus as
// required by ::AppendMenu() API
- UINT id;
+ UINT_PTR id;
wxMenu *submenu = pItem->GetSubMenu();
if ( submenu != NULL ) {
wxASSERT_MSG( submenu->GetHMenu(), wxT("invalid submenu") );
submenu->SetParent(this);
- id = (UINT)submenu->GetHMenu();
+ id = (UINT_PTR)submenu->GetHMenu();
flags |= MF_POPUP;
}
else {
- id = pItem->GetId();
+ id = pItem->GetMSWId();
}
// if we just appended the title, highlight it
- if ( (int)id == idMenuTitle )
+ if ( id == idMenuTitle )
{
// visually select the menu title
SetDefaultMenuItem(GetHmenu(), id);
if ( !label.empty() )
{
if ( !::InsertMenu(hMenu, 0u, MF_BYPOSITION | MF_STRING,
- (unsigned)idMenuTitle, m_title.wx_str()) ||
+ idMenuTitle, m_title.wx_str()) ||
!::InsertMenu(hMenu, 1u, MF_BYPOSITION, (unsigned)-1, NULL) )
{
wxLogLastError(wxT("InsertMenu"));
#else
if ( !ModifyMenu(hMenu, 0u,
MF_BYPOSITION | MF_STRING,
- (unsigned)idMenuTitle, m_title.wx_str()) )
+ idMenuTitle, m_title.wx_str()) )
{
wxLogLastError(wxT("ModifyMenu"));
}
// put the title string in bold face
if ( !m_title.empty() )
{
- SetDefaultMenuItem(GetHmenu(), (UINT)idMenuTitle);
+ SetDefaultMenuItem(GetHmenu(), idMenuTitle);
}
#endif // Win32
}
// event processing
// ---------------------------------------------------------------------------
-bool wxMenu::MSWCommand(WXUINT WXUNUSED(param), WXWORD id)
+bool wxMenu::MSWCommand(WXUINT WXUNUSED(param), WXWORD id_)
{
+ const int id = (signed short)id_;
+
// ignore commands from the menu title
- if ( id != (WXWORD)idMenuTitle )
+ if ( id != (int)idMenuTitle )
{
// update the check item when it's clicked
wxMenuItem * const item = FindItem(id);
for ( i = 0, it = m_menus.begin(); i < count; i++, it++ )
{
if ( !::AppendMenu((HMENU)m_hMenu, MF_POPUP | MF_STRING,
- (UINT)(*it)->GetHMenu(),
+ (UINT_PTR)(*it)->GetHMenu(),
m_titles[i].wx_str()) )
{
wxLogLastError(wxT("AppendMenu"));
int mswpos = MSWPositionForWxMenu(GetMenu(pos),pos);
- UINT id;
+ UINT_PTR id;
UINT flagsOld = ::GetMenuState((HMENU)m_hMenu, mswpos, MF_BYPOSITION);
if ( flagsOld == 0xFFFFFFFF )
{
{
// HIBYTE contains the number of items in the submenu in this case
flagsOld &= 0xff;
- id = (UINT)::GetSubMenu((HMENU)m_hMenu, mswpos);
+ id = (UINT_PTR)::GetSubMenu((HMENU)m_hMenu, mswpos);
}
else
{
info.fType = MFT_STRING;
info.cch = label.length();
info.dwTypeData = wx_const_cast(wxChar *, label.wx_str());
- if ( !SetMenuItemInfo(GetHmenu(), id, TRUE, & info) )
+ if ( !SetMenuItemInfo(GetHmenu(), id, TRUE, &info) )
{
wxLogLastError(wxT("SetMenuItemInfo"));
}
if ( !::InsertMenu(GetHmenu(), (UINT)mswpos,
MF_BYPOSITION | MF_POPUP | MF_STRING,
- (UINT)GetHmenuOf(menu), title.wx_str()) )
+ (UINT_PTR)GetHmenuOf(menu), title.wx_str()) )
{
wxLogLastError(wxT("InsertMenu"));
}
#else
if ( !::InsertMenu(GetHmenu(), mswpos,
MF_BYPOSITION | MF_POPUP | MF_STRING,
- (UINT)GetHmenuOf(menu), title.wx_str()) )
+ (UINT_PTR)GetHmenuOf(menu), title.wx_str()) )
{
wxLogLastError(wxT("InsertMenu"));
}
}
#else
if ( !::AppendMenu(GetHmenu(), MF_POPUP | MF_STRING,
- (UINT)submenu, title.wx_str()) )
+ (UINT_PTR)submenu, title.wx_str()) )
{
wxLogLastError(wxT("AppendMenu"));
}