- Freeze() and Thaw() now recursively freeze/thaw the children too.
- Generalized wxScrolledWindow into wxScrolled<T> template that can derive
from any window class, not just wxPanel.
+- Allow having menu separators with ids != wxID_SEPARATOR (Jeff Tupper)
wxGTK:
}
// append a separator to the menu
- wxMenuItem* AppendSeparator() { return Append(wxID_SEPARATOR, wxEmptyString); }
+ wxMenuItem* AppendSeparator() { return Append(wxID_SEPARATOR); }
// append a check item
wxMenuItem* AppendCheckItem(int itemid,
// get/set id
void SetId(int itemid) { m_id = itemid; }
int GetId() const { return m_id; }
- bool IsSeparator() const { return m_id == wxID_SEPARATOR; }
// the item's text (or name)
//
// what kind of menu item we are
wxItemKind GetKind() const { return m_kind; }
void SetKind(wxItemKind kind) { m_kind = kind; }
+ bool IsSeparator() const { return m_kind == wxITEM_SEPARATOR; }
virtual void SetCheckable(bool checkable) { m_kind = checkable ? wxITEM_CHECK : wxITEM_NORMAL; }
bool IsCheckable() const
@param parentMenu
Menu that the menu item belongs to.
@param id
- Identifier for this menu item, or wxID_SEPARATOR to indicate a separator.
+ Identifier for this menu item. May be wxID_SEPARATOR, in which case the
+ given kind is ignored and taken to be wxITEM_SEPARATOR instead.
@param text
Text for the menu item, as shown on the menu. An accelerator
key can be specified using the ampersand " character. In order to embed an
if ( menuId != wxID_SEPARATOR && menuId != -3 /* wxID_TITLE */ )
{
const wxMenuItem * const item = FindItemInMenuBar(menuId);
- if ( item )
+ if ( item && !item->IsSeparator() )
helpString = item->GetHelp();
// notice that it's ok if we don't find the item because it might
wxMenuItemDisarmCallback, (XtPointer) this);
}
}
- else if (GetId() == wxID_SEPARATOR)
+ else if (IsSeparator())
{
; // Nothing
ResetOwnerDrawn();
// switch ownerdraw back on if using a non default margin
- if ( GetId() != wxID_SEPARATOR )
+ if ( !IsSeparator() )
SetMarginWidth(GetMarginWidth());
// tell the owner drawing code to show the accel string as well
{
// fix that RTTI is always getting the correct state (separators cannot be checked, but the call below
// returns true
- if ( GetId() == wxID_SEPARATOR )
+ if ( IsSeparator() )
return false ;
int flag = ::GetMenuState(GetHMenuOf(m_parentMenu), GetMSWId(), MF_BYCOMMAND);