// license:BSD-3-Clause // copyright-holders:Maurizio Petrarota,Jeffrey Clark /*************************************************************************** ui/submenu.h UI options menu. ***************************************************************************/ #pragma once #ifndef __UI_SUBMENU_H__ #define __UI_SUBMENU_H__ #include "emuopts.h" #include "ui/menu.h" #if defined(UI_WINDOWS) && !defined(UI_SDL) #include "../osd/windows/winmain.h" #else #include "../osd/modules/lib/osdobj_common.h" #endif //------------------------------------------------- // class ui menu //------------------------------------------------- class ui_submenu : public ui_menu { public: enum option_type { HEAD, SEP, MENU, CMD, EMU, UI, OSD, }; struct option { option_type type; const char *description; const char *name; core_options::entry *entry; core_options (*options); std::vector value; }; ui_submenu(mame_ui_manager &mui, render_container *container, std::vector &suboptions, const game_driver *drv = nullptr, emu_options *options = nullptr); virtual ~ui_submenu(); virtual void populate() override; virtual void handle() override; virtual void custom_render(void *selectedref, float top, float bottom, float x, float y, float x2, float y2) override; private: std::vector