]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/menu/menu.cpp
Build fix for VC, fixed reading after end of wxChar*, source cleaning.
[wxWidgets.git] / samples / menu / menu.cpp
index 2949b68133ceb9a83bb92104b52cb2affa42a4e8..3a87b4dc188189ff42d717f4afd5deaf940a6e94 100644 (file)
@@ -125,8 +125,7 @@ protected:
     void OnUpdateSubMenuRadio(wxUpdateUIEvent& event);
 
 #if USE_CONTEXT_MENU
-    void OnContextMenu(wxContextMenuEvent& event)
-        { ShowContextMenu(ScreenToClient(event.GetPosition())); }
+    void OnContextMenu(wxContextMenuEvent& event);
 #else
     void OnRightUp(wxMouseEvent& event)
         { ShowContextMenu(event.GetPosition()); }
@@ -416,9 +415,9 @@ MyFrame::MyFrame()
     wxMenu* subMenu = new wxMenu;
     subMenu->Append(Menu_SubMenu_Normal, _T("&Normal submenu item"), _T("Disabled submenu item"));
     subMenu->AppendCheckItem(Menu_SubMenu_Check, _T("&Unchecked submenu item"), _T("Unchecked submenu item"));
-    subMenu->AppendRadioItem(Menu_SubMenu_Radio1, _T("&Radio item 1"), _T("Radio item"));
-    subMenu->AppendRadioItem(Menu_SubMenu_Radio2, _T("&Radio item 2"), _T("Radio item"));
-    subMenu->AppendRadioItem(Menu_SubMenu_Radio3, _T("&Radio item 3"), _T("Radio item"));
+    subMenu->AppendRadioItem(Menu_SubMenu_Radio1, _T("Radio item &1"), _T("Radio item"));
+    subMenu->AppendRadioItem(Menu_SubMenu_Radio2, _T("Radio item &2"), _T("Radio item"));
+    subMenu->AppendRadioItem(Menu_SubMenu_Radio3, _T("Radio item &3"), _T("Radio item"));
 
     menubarMenu->Append(Menu_SubMenu, _T("Submenu"), subMenu);
 
@@ -439,6 +438,8 @@ MyFrame::MyFrame()
     menuMenu->AppendSeparator();
     menuMenu->Append(Menu_Menu_GetInfo, _T("Get menu item in&fo\tAlt-F"),
                      _T("Show the state of the last menu item"));
+    menuMenu->Append(Menu_Menu_SetLabel, _T("Set menu item label\tAlt-L"),
+                     _T("Set the label of a menu item"));
 #if wxUSE_TEXTDLG
     menuMenu->AppendSeparator();
     menuMenu->Append(Menu_Menu_FindItem, _T("Find menu item from label"),
@@ -800,6 +801,7 @@ void MyFrame::OnSetLabelMenuItem(wxCommandEvent& WXUNUSED(event))
                             item->GetLabel(),
                             this
                          );
+        label.Replace( _T("\\t"), _T("\t") );
 
         if ( !label.empty() )
         {
@@ -1000,6 +1002,22 @@ void MyFrame::OnUpdateSubMenuRadio(wxUpdateUIEvent& event)
         event.Check(false);
 }
 
+#if USE_CONTEXT_MENU
+void MyFrame::OnContextMenu(wxContextMenuEvent& event)
+{
+    wxPoint point = event.GetPosition();
+    // If from keyboard
+    if (point.x == -1 && point.y == -1) {
+        wxSize size = GetSize();
+        point.x = size.x / 2;
+        point.y = size.y / 2;
+    } else {
+        point = ScreenToClient(point);
+    }
+    ShowContextMenu(point);
+}
+#endif
+
 void MyFrame::OnSize(wxSizeEvent& WXUNUSED(event))
 {
 #if USE_LOG_WINDOW