// license:BSD-3-Clause // copyright-holders:Nicola Salmoria, Aaron Giles, Nathan Woods /*************************************************************************** ui/slotopt.h Internal menu for the slot options. ***************************************************************************/ #ifndef MAME_FRONTEND_UI_SLOTOPT_H #define MAME_FRONTEND_UI_SLOTOPT_H #pragma once #include "ui/menu.h" #include namespace ui { class menu_slot_devices : public menu { public: menu_slot_devices(mame_ui_manager &mui, render_container &container); virtual ~menu_slot_devices() override; private: enum class step_t { NEXT, PREVIOUS }; virtual void populate(float &customtop, float &custombottom) override; virtual void custom_render(void *selectedref, float top, float bottom, float origx1, float origy1, float origx2, float origy2) override; virtual void handle(event const *ev) override; device_slot_interface::slot_option const *get_current_option(device_slot_interface &slot) const; void set_slot_device(device_slot_interface &slot, std::string_view val); void record_current_options(); bool try_refresh_current_options(); void rotate_slot_device(device_slot_interface &slot, step_t step); // variables std::unique_ptr m_config; std::unordered_map m_slot_options; std::string m_current_option_list_slot_tag; std::vector m_current_option_list; std::vector::const_iterator m_current_option_list_iter; }; } // namespace ui #endif /* MAME_FRONTEND_UI_SLOTOPT_H */