// license:BSD-3-Clause // copyright-holders:Nicola Salmoria, Aaron Giles, Nathan Woods, Vas Crabb /*************************************************************************** ui/analogipt.h Analog inputs menu. ***************************************************************************/ #ifndef MAME_FRONTEND_UI_ANALOGIPT_H #define MAME_FRONTEND_UI_ANALOGIPT_H #pragma once #include "ui/menu.h" #include #include namespace ui { class menu_analog : public menu { public: menu_analog(mame_ui_manager &mui, render_container &container); virtual ~menu_analog() override; protected: virtual void custom_render(void *selectedref, float top, float bottom, float x, float y, float x2, float y2) override; private: enum { ANALOG_ITEM_KEYSPEED = 0, ANALOG_ITEM_CENTERSPEED, ANALOG_ITEM_REVERSE, ANALOG_ITEM_SENSITIVITY, ANALOG_ITEM_COUNT }; struct item_data { item_data(ioport_field &f, int t) noexcept; std::reference_wrapper field; int type; int min, max; int cur; int defvalue; }; struct field_data { field_data(ioport_field &f) noexcept; std::reference_wrapper field; float range; float neutral; float origin; bool show_neutral; }; using item_data_vector = std::vector; using field_data_vector = std::vector; virtual void populate(float &customtop, float &custombottom) override; virtual void handle() override; void find_fields(); item_data_vector m_item_data; field_data_vector m_field_data; unsigned m_visible_fields; }; } // namespace ui #endif // MAME_FRONTEND_UI_ANALOGIPT_H