// ----------------------------------------------------------------------------
// the (popup) menu title has this special id
-static const UINT idMenuTitle = (UINT)-3;
+static const int idMenuTitle = wxID_NONE;
// ----------------------------------------------------------------------------
// private functions
}
#endif // __WXWINCE__
-inline bool IsLessThanStdSize(const wxBitmap& bmp)
+inline bool IsGreaterThanStdSize(const wxBitmap& bmp)
{
- // FIXME: these +4 are chosen so that 16*16 bitmaps pass this test with
- // default SM_CXMENUCHECK value but I have no idea what do we really
- // need to use here
- return bmp.GetWidth() < ::GetSystemMetrics(SM_CXMENUCHECK) + 4 &&
- bmp.GetHeight() < ::GetSystemMetrics(SM_CYMENUCHECK) + 4;
+ return bmp.GetWidth() > ::GetSystemMetrics(SM_CXMENUCHECK) ||
+ bmp.GetHeight() > ::GetSystemMetrics(SM_CYMENUCHECK);
}
} // anonymous namespace
// if we have a title, insert it in the beginning of the menu
if ( !m_title.empty() )
{
- Append(idMenuTitle, m_title);
- AppendSeparator();
+ const wxString title = m_title;
+ m_title.clear(); // so that SetTitle() knows there was no title before
+ SetTitle(title);
}
}
const wxBitmap& bmpUnchecked = pItem->GetBitmap(false),
bmpChecked = pItem->GetBitmap(true);
- if ( (bmpUnchecked.Ok() && !IsLessThanStdSize(bmpUnchecked)) ||
- (bmpChecked.Ok() && !IsLessThanStdSize(bmpChecked)) )
+ if ( (bmpUnchecked.Ok() && IsGreaterThanStdSize(bmpUnchecked)) ||
+ (bmpChecked.Ok() && IsGreaterThanStdSize(bmpChecked)) )
{
mustUseOwnerDrawn = true;
}
// if we just appended the title, highlight it
- if ( id == idMenuTitle )
+ if ( id == (UINT_PTR)idMenuTitle )
{
// visually select the menu title
SetDefaultMenuItem(GetHmenu(), id);
if ( !label.empty() )
{
if ( !::InsertMenu(hMenu, 0u, MF_BYPOSITION | MF_STRING,
- idMenuTitle, m_title.wx_str()) ||
+ (UINT_PTR)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,
- idMenuTitle, m_title.wx_str()) )
+ (UINT_PTR)idMenuTitle, m_title.wx_str()) )
{
wxLogLastError(wxT("ModifyMenu"));
}
// put the title string in bold face
if ( !m_title.empty() )
{
- SetDefaultMenuItem(GetHmenu(), idMenuTitle);
+ SetDefaultMenuItem(GetHmenu(), (UINT_PTR)idMenuTitle);
}
#endif // Win32
}
const int id = (signed short)id_;
// ignore commands from the menu title
- if ( id != (int)idMenuTitle )
+ if ( id != idMenuTitle )
{
// update the check item when it's clicked
wxMenuItem * const item = FindItem(id);
return true;
}
-// ---------------------------------------------------------------------------
-// other
-// ---------------------------------------------------------------------------
-
-wxWindow *wxMenu::GetWindow() const
-{
- if ( m_invokingWindow != NULL )
- return m_invokingWindow;
- else if ( GetMenuBar() != NULL)
- return GetMenuBar()->GetFrame();
-
- return NULL;
-}
-
// ---------------------------------------------------------------------------
// Menu Bar
// ---------------------------------------------------------------------------