]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/menucmn.cpp
When saving the editable state, use the real state (m_editable)
[wxWidgets.git] / src / common / menucmn.cpp
index ee97f56614ebd59a67ca01d25b5807f4c70ce96f..5574a19cbb086de28941fffd9ce3845113b88bf2 100644 (file)
@@ -6,7 +6,7 @@
 // Created:     26.10.99
 // RCS-ID:      $Id$
 // Copyright:   (c) wxWindows team
-// Licence:     wxWindows license
+// Licence:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
 
 // ============================================================================
@@ -132,7 +132,13 @@ wxAcceleratorEntry *wxGetAccelFromString(const wxString& label)
         else {
             if ( current.Len() == 1 ) {
                 // it's a letter
-                keyCode = wxToupper(current[0U]);
+                keyCode = current[0U];
+
+                // Only call wxToupper if control, alt, or shift is held down,
+                // otherwise lower case accelerators won't work.
+                if (accelFlags != wxACCEL_NORMAL) {
+                    keyCode = wxToupper(keyCode);
+                }
             }
             else {
                 // is it a function key?
@@ -159,14 +165,39 @@ wxAcceleratorEntry *wxGetAccelFromString(const wxString& label)
                     else if ( current == wxT("INSERT") ) {
                         keyCode = WXK_INSERT;
                     }
-#if 0
+                    else if ( current == wxT("ENTER") || current == wxT("RETURN") ) {
+                        keyCode = WXK_RETURN;
+                    }
                     else if ( current == wxT("PGUP") ) {
-                        keyCode = VK_PRIOR;
+                        keyCode = WXK_PRIOR;
                     }
                     else if ( current == wxT("PGDN") ) {
-                        keyCode = VK_NEXT;
+                        keyCode = WXK_NEXT;
+                    }
+                    else if ( current == wxT("LEFT") ) {
+                        keyCode = WXK_LEFT;
+                    }
+                    else if ( current == wxT("RIGHT") ) {
+                        keyCode = WXK_RIGHT;
+                    }
+                    else if ( current == wxT("UP") ) {
+                        keyCode = WXK_UP;
+                    }
+                    else if ( current == wxT("DOWN") ) {
+                        keyCode = WXK_DOWN;
+                    }
+                    else if ( current == wxT("HOME") ) {
+                        keyCode = WXK_HOME;
+                    }
+                    else if ( current == wxT("END") ) {
+                        keyCode = WXK_END;
+                    }
+                    else if ( current == wxT("SPACE") ) {
+                        keyCode = WXK_SPACE;
+                    }
+                    else if ( current == wxT("TAB") ) {
+                        keyCode = WXK_TAB;
                     }
-#endif
                     else
                     {
                         wxLogDebug(wxT("Unrecognized accel key '%s', accel string ignored."),
@@ -789,7 +820,7 @@ int wxMenuBarBase::FindMenu(const wxString& title) const
              (wxMenuItem::GetLabelFromText(title2) == label) )
         {
             // found
-            return (int)i; 
+            return (int)i;
         }
     }