summaryrefslogtreecommitdiffstatshomepage
path: root/src/frontend/mame/ui/analogipt.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/frontend/mame/ui/analogipt.h')
-rw-r--r--src/frontend/mame/ui/analogipt.h77
1 files changed, 77 insertions, 0 deletions
diff --git a/src/frontend/mame/ui/analogipt.h b/src/frontend/mame/ui/analogipt.h
new file mode 100644
index 00000000000..b71cc095cc0
--- /dev/null
+++ b/src/frontend/mame/ui/analogipt.h
@@ -0,0 +1,77 @@
+// license:BSD-3-Clause
+// copyright-holders:Nicola Salmoria, Aaron Giles, Nathan Woods
+/***************************************************************************
+
+ 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 <functional>
+#include <vector>
+
+
+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);
+
+ std::reference_wrapper<ioport_field> field;
+ int type;
+ int min, max;
+ int cur;
+ int defvalue;
+ };
+
+ struct field_data
+ {
+ field_data(ioport_field &f);
+
+ std::reference_wrapper<ioport_field> field;
+ float range;
+ };
+
+ using item_data_vector = std::vector<item_data>;
+ using field_data_vector = std::vector<field_data>;
+
+ 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