From caaf1092b8c9ddbe42345ec26e91518648d2e38b Mon Sep 17 00:00:00 2001 From: cxl Date: Mon, 6 Jun 2016 16:55:41 +0000 Subject: [PATCH] .reference git-svn-id: svn://ultimatepp.org/upp/trunk@9904 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- reference/Menu/Menu.upp | 2 +- reference/Menu/init | 4 ++++ reference/Menu/menu.cpp | 22 ++++++++-------------- 3 files changed, 13 insertions(+), 15 deletions(-) create mode 100644 reference/Menu/init diff --git a/reference/Menu/Menu.upp b/reference/Menu/Menu.upp index 402bd3f1e..97ae5fc13 100644 --- a/reference/Menu/Menu.upp +++ b/reference/Menu/Menu.upp @@ -1,4 +1,4 @@ -description "Using MenuBar"; +description "Using MenuBar\377"; uses CtrlLib; diff --git a/reference/Menu/init b/reference/Menu/init new file mode 100644 index 000000000..f0b987d19 --- /dev/null +++ b/reference/Menu/init @@ -0,0 +1,4 @@ +#ifndef _Menu_icpp_init_stub +#define _Menu_icpp_init_stub +#include "CtrlLib/init" +#endif diff --git a/reference/Menu/menu.cpp b/reference/Menu/menu.cpp index da00cb9ce..ab6abe5c1 100644 --- a/reference/Menu/menu.cpp +++ b/reference/Menu/menu.cpp @@ -10,34 +10,28 @@ struct App : public TopWindow { Close(); } - void EnableNumbers() - { - numbers_enabled = !numbers_enabled; - } - - void ShowNumber(int n) - { - PromptOK(AsString(n)); - } - void SubMenu(Bar& bar) { for(int i = 0; i < 10; i++) - bar.Add(AsString(i), THISBACK1(ShowNumber, i)); + bar.Add(~AsString(i), [=] { PromptOK(AsString(i)); }); } void Menu(Bar& bar) { - bar.Add("Enable numbers", THISBACK(EnableNumbers)) + bar.Add("Enable numbers", [=] { numbers_enabled = !numbers_enabled; }) .Check(numbers_enabled); bar.Add(numbers_enabled, "Numbers", THISBACK(SubMenu)); - bar.Add("Exit", THISBACK(Exit)) + bar.Add("Exit", [=] { Exit(); }) .Key(K_CTRL_E); } void MainBar(Bar& bar) { - bar.Add("Menu", THISBACK(Menu)); + bar.Add("Numbers", THISBACK(Menu)); + bar.Sub("Items", [=](Bar& bar) { + bar.Add("Item 1", [&] { Exclamation("Item 1 invoked"); }); + bar.Add("Item 2", [&] { Exclamation("Item 2 invoked"); }); + }); } MenuBar menu;