]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/menucmn.cpp
Committing in .
[wxWidgets.git] / src / common / menucmn.cpp
index b9ecb0cf076453a65546bb5a9cec1eadfe1c7e58..ee97f56614ebd59a67ca01d25b5807f4c70ce96f 100644 (file)
@@ -55,6 +55,25 @@ WX_DEFINE_LIST(wxMenuItemList);
 // wxMenuItem
 // ----------------------------------------------------------------------------
 
+wxMenuItemBase::wxMenuItemBase(wxMenu *parentMenu,
+                               int id,
+                               const wxString& text,
+                               const wxString& help,
+                               wxItemKind kind,
+                               wxMenu *subMenu)
+              : m_text(text),
+                m_help(help)
+{
+    wxASSERT_MSG( parentMenu != NULL, wxT("menuitem should have a menu") );
+
+    m_parentMenu  = parentMenu;
+    m_subMenu     = subMenu;
+    m_isEnabled   = TRUE;
+    m_isChecked   = FALSE;
+    m_id          = id;
+    m_kind        = kind;
+}
+
 wxMenuItemBase::~wxMenuItemBase()
 {
     delete m_subMenu;
@@ -82,11 +101,25 @@ wxAcceleratorEntry *wxGetAccelFromString(const wxString& label)
                 else if ( current == _("shift") )
                     accelFlags |= wxACCEL_SHIFT;
                 else {
-                    wxLogDebug(wxT("Unknown accel modifier: '%s'"),
-                               current.c_str());
+                    // we may have "Ctrl-+", for example, but we still want to
+                    // catch typos like "Crtl-A" so only give the warning if we
+                    // have something before the current '+' or '-', else take
+                    // it as a literal symbol
+                    if ( current.empty() )
+                    {
+                        current += label[n];
+
+                        // skip clearing it below
+                        continue;
+                    }
+                    else
+                    {
+                        wxLogDebug(wxT("Unknown accel modifier: '%s'"),
+                                   current.c_str());
+                    }
                 }
 
-                current.Empty();
+                current.clear();
             }
             else {
                 current += wxTolower(label[n]);