#if wxUSE_ACCEL
+static inline bool CompareAccelString(const wxString& str, const wxChar *accel)
+{
+#if wxUSE_INTL
+ return str == accel || str == wxGetTranslation(accel);
+#else
+ return str == accel;
+#endif
+}
+
// return wxAcceleratorEntry for the given menu string or NULL if none
// specified
wxAcceleratorEntry *wxGetAccelFromString(const wxString& label)
wxString current;
for ( size_t n = (size_t)posTab + 1; n < label.Len(); n++ ) {
if ( (label[n] == '+') || (label[n] == '-') ) {
- if ( current == _("ctrl") )
+ if ( CompareAccelString(current, wxTRANSLATE("ctrl")) )
accelFlags |= wxACCEL_CTRL;
- else if ( current == _("alt") )
+ else if ( CompareAccelString(current, wxTRANSLATE("alt")) )
accelFlags |= wxACCEL_ALT;
- else if ( current == _("shift") )
+ else if ( CompareAccelString(current, wxTRANSLATE("shift")) )
accelFlags |= wxACCEL_SHIFT;
else {
// we may have "Ctrl-+", for example, but we still want to
keyCode = WXK_SPACE;
else if ( current == wxT("TAB") )
keyCode = WXK_TAB;
- else if ( current == wxT("ESC") || current == wxT("ESCAPE") ) {
+ else if ( current == wxT("ESC") || current == wxT("ESCAPE") )
keyCode = WXK_ESCAPE;
else
{
wxCHECK_MSG( item, FALSE, wxT("invalid item in wxMenu::Append()") );
m_items.Append(item);
+ item->SetMenu((wxMenu*)this);
if ( item->IsSubMenu() )
{
AddSubMenu(item->GetSubMenu());
wxCHECK_MSG( node, FALSE, wxT("invalid index in wxMenu::Insert()") );
m_items.Insert(node, item);
+ item->SetMenu((wxMenu*)this);
if ( item->IsSubMenu() )
{
AddSubMenu(item->GetSubMenu());
m_items.DeleteNode(node);
// item isn't attached to anything any more
+ item->SetMenu((wxMenu *)NULL);
wxMenu *submenu = item->GetSubMenu();
if ( submenu )
{
return item;
}
+// find by position
+wxMenuItem* wxMenuBase::FindItemByPosition(size_t position) const
+{
+ wxCHECK_MSG( position < m_items.GetCount(), NULL,
+ _T("wxMenu::FindItemByPosition(): invalid menu index") );
+
+ return m_items.Item( position )->GetData();
+}
+
// ----------------------------------------------------------------------------
// wxMenu helpers used by derived classes
// ----------------------------------------------------------------------------