From 9edbf27300cd90e6becb1c72483940a2a72d64ca Mon Sep 17 00:00:00 2001 From: Kp Date: Sun, 20 Dec 2020 20:39:07 +0000 Subject: [PATCH] Make sandbox menu inherit from newmenu --- similar/main/menu.cpp | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/similar/main/menu.cpp b/similar/main/menu.cpp index 7476fa043..89a9e0239 100644 --- a/similar/main/menu.cpp +++ b/similar/main/menu.cpp @@ -2645,13 +2645,19 @@ public: } }; -static int sandbox_menuset(newmenu *, const d_event &event, sandbox_menu_items *items) +struct sandbox_menu : sandbox_menu_items, newmenu +{ + sandbox_menu(grs_canvas &src) : + newmenu(menu_title{nullptr}, menu_subtitle{"Coder's sandbox"}, menu_filename{nullptr}, tiny_mode_flag::normal, tab_processing_flag::ignore, adjusted_citem::create(m, 0), src) + { + } + virtual int subfunction_handler(const d_event &event) override; +}; + +int sandbox_menu::subfunction_handler(const d_event &event) { switch (event.type) { - case EVENT_NEWMENU_CHANGED: - break; - case EVENT_NEWMENU_SELECTED: { auto &citem = static_cast(event).citem; @@ -2666,13 +2672,6 @@ static int sandbox_menuset(newmenu *, const d_event &event, sandbox_menu_items * } return 1; // stay in menu until escape } - - case EVENT_WINDOW_CLOSE: - { - std::default_delete()(items); - break; - } - default: break; } @@ -2681,8 +2680,8 @@ static int sandbox_menuset(newmenu *, const d_event &event, sandbox_menu_items * void do_sandbox_menu() { - auto items = new sandbox_menu_items; - newmenu_do3(menu_title{nullptr}, menu_subtitle{"Coder's sandbox"}, items->m, sandbox_menuset, items, 0, menu_filename{nullptr}); + auto menu = window_create(grd_curscreen->sc_canvas); + (void)menu; } }