Temporary fix for inconsistent menu item margins (see Quit item in ownerdraw sample)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@44068 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
de387fc99c
commit
99a7bebb65
@ -400,6 +400,28 @@ bool wxMenu::DoInsertOrAppend(wxMenuItem *pItem, size_t pos)
|
||||
pos += 2; // for the title itself and its separator
|
||||
|
||||
BOOL ok = false;
|
||||
|
||||
#if wxUSE_OWNER_DRAWN
|
||||
// Currently, mixing owner-drawn and non-owner-drawn items results in
|
||||
// inconsistent margins, so we force this to be owner-drawn if any other
|
||||
// items already are. Later we might want to use a boolean in the wxMenu
|
||||
// to avoid search. Also we might make this fix unnecessary by getting the correct
|
||||
// margin using NONCLIENTMETRICS.
|
||||
if ( !pItem->IsOwnerDrawn() )
|
||||
{
|
||||
// Check if any other items are ownerdrawn, and make ownerdrawn if so
|
||||
wxMenuItemList::compatibility_iterator node = GetMenuItems().GetFirst();
|
||||
while (node)
|
||||
{
|
||||
if (node->GetData()->IsOwnerDrawn())
|
||||
{
|
||||
pItem->SetOwnerDrawn(true);
|
||||
break;
|
||||
}
|
||||
node = node->GetNext();
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
// check if we have something more than a simple text item
|
||||
#if wxUSE_OWNER_DRAWN
|
||||
|
Loading…
Reference in New Issue
Block a user