]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/menu.cpp
corrected serious bug in SetHBITMAP
[wxWidgets.git] / src / msw / menu.cpp
index 8e19e7acb34d49f469a6f1cf13261792ca2712f9..4cca3f9e59dddbd787223bfa0c5b9c887391200b 100644 (file)
@@ -178,7 +178,7 @@ void wxMenu::Append(wxMenuItem *pItem)
                 keyCode = wxToupper(current[0U]);
             }
             else {
                 keyCode = wxToupper(current[0U]);
             }
             else {
-                // it should be a function key
+                // is it a function key?
                 if ( current[0U] == 'f' && isdigit(current[1U]) &&
                      (current.Len() == 2 ||
                      (current.Len() == 3 && isdigit(current[2U]))) ) {
                 if ( current[0U] == 'f' && isdigit(current[1U]) &&
                      (current.Len() == 2 ||
                      (current.Len() == 3 && isdigit(current[2U]))) ) {
@@ -188,8 +188,21 @@ void wxMenu::Append(wxMenuItem *pItem)
                     keyCode = VK_F1 + n - 1;
                 }
                 else {
                     keyCode = VK_F1 + n - 1;
                 }
                 else {
-                    wxLogDebug(wxT("Unrecognized accel key '%s', accel "
-                                  "string ignored."), current.c_str());
+                    // several special cases
+                    current.MakeUpper();
+                    if ( current == wxT("DEL") ) {
+                        keyCode = VK_DELETE;
+                    }
+                    else if ( current == wxT("PGUP") ) {
+                        keyCode = VK_PRIOR;
+                    }
+                    else if ( current == wxT("PGDN") ) {
+                        keyCode = VK_NEXT;
+                    }
+                    else {
+                        wxLogDebug(wxT("Unrecognized accel key '%s', accel "
+                                       "string ignored."), current.c_str());
+                    }
                 }
             }
         }
                 }
             }
         }
@@ -258,7 +271,7 @@ void wxMenu::Append(wxMenuItem *pItem)
     else
     {
 #ifdef __WIN32__
     else
     {
 #ifdef __WIN32__
-        if ( id == idMenuTitle )
+        if ( (int)id == idMenuTitle )
         {
             // visually select the menu title
             MENUITEMINFO mii;
         {
             // visually select the menu title
             MENUITEMINFO mii;
@@ -855,7 +868,7 @@ void wxMenuBar::SetLabelTop(int pos, const wxString& label)
     }
 
     if ( ::ModifyMenu(GetHmenu(), pos, MF_BYPOSITION | MF_STRING | flagsOld,
     }
 
     if ( ::ModifyMenu(GetHmenu(), pos, MF_BYPOSITION | MF_STRING | flagsOld,
-                      id, label) == 0xFFFFFFFF )
+                      id, label) == (int)0xFFFFFFFF )
     {
         wxLogLastError("ModifyMenu");
     }
     {
         wxLogLastError("ModifyMenu");
     }
@@ -1094,7 +1107,7 @@ void wxMenuBar::Attach(wxFrame *frame)
 void wxMenuBar::Detach()
 {
 //    ::DestroyMenu((HMENU)m_hMenu);
 void wxMenuBar::Detach()
 {
 //    ::DestroyMenu((HMENU)m_hMenu);
-    m_hMenu = NULL;
+    m_hMenu = (WXHMENU)NULL;
     m_menuBarFrame = NULL;
 }
 
     m_menuBarFrame = NULL;
 }