01: #include <wx/wx.h>
02:
03: const int ID_SAY_HELLO = 1000;
04: const int ID_SAY_GOODBYE = 1001;
05:
06: /**
07: A frame with a simple menu and a text control.
08: */
09: class MenuFrame : public wxFrame
10: {
11: public:
12: /**
13: Constructs the menu and text control.
14: */
15: MenuFrame();
16: private:
17: wxTextCtrl* text;
18: };
19:
20: /**
21: An application with a frame that has a menu and text control.
22: */
23: class MenuApp : public wxApp
24: {
25: public:
26: /**
27: Constructs the frame.
28: */
29: MenuApp();
30: /**
31: Shows the frame.
32: @return true
33: */
34: virtual bool OnInit();
35: private:
36: MenuFrame* frame;
37: };
38:
39: DECLARE_APP(MenuApp)
40:
41: IMPLEMENT_APP(MenuApp)
42:
43: MenuFrame::MenuFrame()
44: : wxFrame(NULL, -1, "MenuFrame")
45: {
46: text = new wxTextCtrl(this, -1, "",
47: wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE);
48:
49: // initialize menu
50: wxMenu* menu = new wxMenu();
51: menu->Append(ID_SAY_HELLO, "Hello");
52: menu->Append(ID_SAY_GOODBYE, "Goodbye");
53:
54: // add menu to menu bar
55: wxMenuBar* menu_bar = new wxMenuBar();
56: SetMenuBar(menu_bar);
57: menu_bar->Append(menu, "Say");
58: }
59:
60: MenuApp::MenuApp()
61: {
62: frame = new MenuFrame();
63: }
64:
65: bool MenuApp::OnInit()
66: {
67: frame->Show(true);
68: return true;
69: }