1 #include <cppconsui/Button.h>
2 #include <cppconsui/Label.h>
3 #include <cppconsui/MenuWindow.h>
4 #include <cppconsui/Window.h>
9 class TestWindow
: public CppConsUI::Window
{
12 virtual ~TestWindow() override
;
15 CppConsUI::MenuWindow
*menu
;
17 CONSUI_DISABLE_COPY(TestWindow
);
20 TestWindow::TestWindow() : CppConsUI::Window(0, 0, AUTOSIZE
, AUTOSIZE
)
24 addWidget(*(new CppConsUI::Label("Press F10 to quit.")), 1, 1);
26 CppConsUI::Button
*button
= new CppConsUI::Button("Open Menu...");
27 addWidget(*button
, 1, 3);
29 menu
= new CppConsUI::MenuWindow(*button
, AUTOSIZE
, AUTOSIZE
);
30 menu
->setHideOnClose(true);
32 button
->signal_activate
.connect(
33 sigc::hide(sigc::mem_fun(menu
, &CppConsUI::MenuWindow::show
)));
36 "Item 1", sigc::hide(sigc::mem_fun(menu
, &CppConsUI::MenuWindow::hide
)));
38 "Item 2", sigc::hide(sigc::mem_fun(menu
, &CppConsUI::MenuWindow::hide
)));
40 "Item 3", sigc::hide(sigc::mem_fun(menu
, &CppConsUI::MenuWindow::hide
)));
42 "Item 4", sigc::hide(sigc::mem_fun(menu
, &CppConsUI::MenuWindow::hide
)));
43 menu
->appendSeparator();
45 auto submenu
= new CppConsUI::MenuWindow(*button
, AUTOSIZE
, AUTOSIZE
);
47 "Item 1", sigc::hide(sigc::mem_fun(submenu
, &CppConsUI::MenuWindow::hide
)));
49 "Item 2", sigc::hide(sigc::mem_fun(submenu
, &CppConsUI::MenuWindow::hide
)));
51 "Item 3", sigc::hide(sigc::mem_fun(submenu
, &CppConsUI::MenuWindow::hide
)));
53 "Item 3", sigc::hide(sigc::mem_fun(submenu
, &CppConsUI::MenuWindow::hide
)));
54 menu
->appendSubMenu("First submenu", *submenu
);
56 submenu
= new CppConsUI::MenuWindow(*button
, AUTOSIZE
, AUTOSIZE
);
58 "Item 1", sigc::hide(sigc::mem_fun(menu
, &CppConsUI::MenuWindow::hide
)));
60 "Item 2", sigc::hide(sigc::mem_fun(menu
, &CppConsUI::MenuWindow::hide
)));
62 "Item 3", sigc::hide(sigc::mem_fun(menu
, &CppConsUI::MenuWindow::hide
)));
64 "Item 4", sigc::hide(sigc::mem_fun(menu
, &CppConsUI::MenuWindow::hide
)));
65 menu
->appendSubMenu("Second submenu", *submenu
);
68 TestWindow::~TestWindow()
75 // Create the main window.
76 auto win
= new TestWindow
;
80 // vim: set tabstop=2 shiftwidth=2 textwidth=80 expandtab