1 #include <CtrlLib/CtrlLib.h>
2 
3 using namespace Upp;
4 
5 struct App : public TopWindow {
6 	bool numbers_enabled;
7 
MenuApp8 	void Menu(Bar& bar)
9 	{
10 		bar.Add("Enable numbers", [=] { numbers_enabled = !numbers_enabled; })
11 		   .Check(numbers_enabled);
12 		bar.Sub(numbers_enabled, "Numbers", [=](Bar& bar) {
13 			for(int i = 0; i < 10; i++)
14 				bar.Add(~AsString(i), [=] { PromptOK(AsString(i)); });
15 		});
16 		bar.Add("Exit", [=] { Close(); })
17 		   .Key(K_CTRL_E);
18 	}
19 
MainBarApp20 	void MainBar(Bar& bar)
21 	{
22 		bar.Sub("Numbers", THISFN(Menu));
23 		bar.Sub("Items", [=](Bar& bar) {
24 			bar.Add("Item 1", [&] { Exclamation("Item 1 invoked"); });
25 			bar.Add("Item 2", [&] { Exclamation("Item 2 invoked"); });
26 		});
27 	}
28 
29 	MenuBar menu;
30 
31 	typedef App CLASSNAME;
32 
AppApp33 	App()
34 	{
35 		numbers_enabled = false;
36 		AddFrame(menu);
37 		menu.Set(THISFN(MainBar));
38 	}
39 };
40 
41 GUI_APP_MAIN
42 {
43 	App().Run();
44 }
45