]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/mdi/mdi.cpp
implement wxTreeCtrl::GetFocusedItem() for wxMSW too (see #10859)
[wxWidgets.git] / samples / mdi / mdi.cpp
index e4b581a2c42a6882c79b13dc8c047d1c57c0b65b..18669832603017e1592f2074a1580178085703d9 100644 (file)
@@ -135,22 +135,8 @@ MyFrame::MyFrame()
 
     // Make a menubar
 #if wxUSE_MENUS
-    wxMenu *file_menu = new wxMenu;
-
-    file_menu->Append(wxID_NEW, "&New window\tCtrl-N", "Create a new child window");
-    file_menu->AppendCheckItem(MDI_FULLSCREEN, "Show &fullscreen\tCtrl-F");
-    file_menu->Append(wxID_EXIT, "&Exit\tAlt-X", "Quit the program");
-
-    wxMenu *help_menu = new wxMenu;
-    help_menu->Append(wxID_ABOUT, "&About\tF1");
-
-    wxMenuBar *menu_bar = new wxMenuBar;
-
-    menu_bar->Append(file_menu, "&File");
-    menu_bar->Append(help_menu, "&Help");
-
     // Associate the menu bar with the frame
-    SetMenuBar(menu_bar);
+    SetMenuBar(CreateMainMenubar());
 
 
     // This shows that the standard window menu may be customized:
@@ -216,6 +202,27 @@ MyFrame::~MyFrame()
     Disconnect(wxEVT_SIZE, wxSizeEventHandler(MyFrame::OnSize));
 }
 
+#if wxUSE_MENUS
+/* static */
+wxMenuBar *MyFrame::CreateMainMenubar()
+{
+    wxMenu *menuFile = new wxMenu;
+
+    menuFile->Append(wxID_NEW, "&New window\tCtrl-N", "Create a new child window");
+    menuFile->AppendCheckItem(MDI_FULLSCREEN, "Show &full screen\tCtrl-F");
+    menuFile->Append(wxID_EXIT, "&Exit\tAlt-X", "Quit the program");
+
+    wxMenu *menuHelp = new wxMenu;
+    menuHelp->Append(wxID_ABOUT, "&About\tF1");
+
+    wxMenuBar *mbar = new wxMenuBar;
+    mbar->Append(menuFile, "&File");
+    mbar->Append(menuHelp, "&Help");
+
+    return mbar;
+}
+#endif // wxUSE_MENUS
+
 void MyFrame::OnClose(wxCloseEvent& event)
 {
     unsigned numChildren = MyChild::GetChildrenCount();
@@ -412,43 +419,32 @@ MyChild::MyChild(wxMDIParentFrame *parent)
 
     const bool canBeResized = !IsAlwaysMaximized();
 
-    // create our menubar: it will be shown instead of the main frame one when
+    // create our menu bar: it will be shown instead of the main frame one when
     // we're active
 #if wxUSE_MENUS
-    // Make a menubar
-    wxMenu *file_menu = new wxMenu;
-
-    file_menu->Append(wxID_NEW, "&New window\tCtrl-N");
-    file_menu->Append(wxID_CLOSE, "&Close child\tCtrl-W", "Close this window");
-    file_menu->AppendCheckItem(MDI_FULLSCREEN, "Show &fullscreen\tCtrl-F");
-    file_menu->Append(wxID_EXIT, "&Exit\tAlt-X", "Quit the program");
+    wxMenuBar *mbar = MyFrame::CreateMainMenubar();
+    mbar->GetMenu(0)->Insert(1, wxID_CLOSE, "&Close child\tCtrl-W",
+                             "Close this window");
 
-    wxMenu *option_menu = new wxMenu;
+    wxMenu *menuChild = new wxMenu;
 
-    option_menu->Append(MDI_REFRESH, "&Refresh picture");
-    option_menu->Append(MDI_CHANGE_TITLE, "Change &title...\tCtrl-T");
+    menuChild->Append(MDI_REFRESH, "&Refresh picture");
+    menuChild->Append(MDI_CHANGE_TITLE, "Change &title...\tCtrl-T");
     if ( canBeResized )
     {
-        option_menu->AppendSeparator();
-        option_menu->Append(MDI_CHANGE_POSITION, "Move frame\tCtrl-M");
-        option_menu->Append(MDI_CHANGE_SIZE, "Resize frame\tCtrl-S");
+        menuChild->AppendSeparator();
+        menuChild->Append(MDI_CHANGE_POSITION, "Move frame\tCtrl-M");
+        menuChild->Append(MDI_CHANGE_SIZE, "Resize frame\tCtrl-S");
     }
 #if wxUSE_CLIPBOARD
-    option_menu->AppendSeparator();
-    option_menu->Append(wxID_PASTE, "Copy text from clipboard\tCtrl-V");
+    menuChild->AppendSeparator();
+    menuChild->Append(wxID_PASTE, "Copy text from clipboard\tCtrl-V");
 #endif // wxUSE_CLIPBOARD
 
-    wxMenu *help_menu = new wxMenu;
-    help_menu->Append(wxID_ABOUT, "&About");
-
-    wxMenuBar *menu_bar = new wxMenuBar;
-
-    menu_bar->Append(file_menu, "&File");
-    menu_bar->Append(option_menu, "&Child");
-    menu_bar->Append(help_menu, "&Help");
+    mbar->Insert(1, menuChild, "&Child");
 
     // Associate the menu bar with the frame
-    SetMenuBar(menu_bar);
+    SetMenuBar(mbar);
 #endif // wxUSE_MENUS
 
     // this should work for MDI frames as well as for normal ones, provided