Make sandbox menu inherit from newmenu

This commit is contained in:
Kp 2020-12-20 20:39:07 +00:00
parent df1ee5e671
commit 9edbf27300

View file

@ -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) switch (event.type)
{ {
case EVENT_NEWMENU_CHANGED:
break;
case EVENT_NEWMENU_SELECTED: case EVENT_NEWMENU_SELECTED:
{ {
auto &citem = static_cast<const d_select_event &>(event).citem; auto &citem = static_cast<const d_select_event &>(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 return 1; // stay in menu until escape
} }
case EVENT_WINDOW_CLOSE:
{
std::default_delete<sandbox_menu_items>()(items);
break;
}
default: default:
break; break;
} }
@ -2681,8 +2680,8 @@ static int sandbox_menuset(newmenu *, const d_event &event, sandbox_menu_items *
void do_sandbox_menu() void do_sandbox_menu()
{ {
auto items = new sandbox_menu_items; auto menu = window_create<sandbox_menu>(grd_curscreen->sc_canvas);
newmenu_do3(menu_title{nullptr}, menu_subtitle{"Coder's sandbox"}, items->m, sandbox_menuset, items, 0, menu_filename{nullptr}); (void)menu;
} }
} }