summaryrefslogtreecommitdiffstats
path: root/src/frontend/mame/ui/ui.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/frontend/mame/ui/ui.h')
-rw-r--r--src/frontend/mame/ui/ui.h84
1 files changed, 32 insertions, 52 deletions
diff --git a/src/frontend/mame/ui/ui.h b/src/frontend/mame/ui/ui.h
index 64189344dcb..9f37485e260 100644
--- a/src/frontend/mame/ui/ui.h
+++ b/src/frontend/mame/ui/ui.h
@@ -33,15 +33,39 @@ class machine_info;
CONSTANTS
***************************************************************************/
+/* preferred font height; use ui_get_line_height() to get actual height */
+#define UI_TARGET_FONT_ROWS get_font_rows()
+
+#define UI_TARGET_FONT_HEIGHT (1.0f / (float)UI_TARGET_FONT_ROWS)
#define UI_MAX_FONT_HEIGHT (1.0f / 15.0f)
/* width of lines drawn in the UI */
#define UI_LINE_WIDTH (1.0f / 500.0f)
+/* border between outlines and inner text on left/right and top/bottom sides */
+#define UI_BOX_LR_BORDER (UI_TARGET_FONT_HEIGHT * 0.25f)
+#define UI_BOX_TB_BORDER (UI_TARGET_FONT_HEIGHT * 0.25f)
+
/* handy colors */
#define UI_GREEN_COLOR rgb_t(0xef,0x10,0x60,0x10)
#define UI_YELLOW_COLOR rgb_t(0xef,0x60,0x60,0x10)
#define UI_RED_COLOR rgb_t(0xf0,0x60,0x10,0x10)
+#define UI_BORDER_COLOR decode_ui_color(0)
+#define UI_BACKGROUND_COLOR decode_ui_color(1)
+#define UI_GFXVIEWER_BG_COLOR decode_ui_color(2)
+#define UI_UNAVAILABLE_COLOR decode_ui_color(3)
+#define UI_TEXT_COLOR decode_ui_color(4)
+#define UI_TEXT_BG_COLOR decode_ui_color(5)
+#define UI_SUBITEM_COLOR decode_ui_color(6)
+#define UI_CLONE_COLOR decode_ui_color(7)
+#define UI_SELECTED_COLOR decode_ui_color(8)
+#define UI_SELECTED_BG_COLOR decode_ui_color(9)
+#define UI_MOUSEOVER_COLOR decode_ui_color(10)
+#define UI_MOUSEOVER_BG_COLOR decode_ui_color(11)
+#define UI_MOUSEDOWN_COLOR decode_ui_color(12)
+#define UI_MOUSEDOWN_BG_COLOR decode_ui_color(13)
+#define UI_DIPSW_COLOR decode_ui_color(14)
+#define UI_SLIDER_COLOR decode_ui_color(15)
/* cancel return value for a UI handler */
#define UI_HANDLER_CANCEL ((uint32_t)~0)
@@ -115,49 +139,6 @@ enum class ui_callback_type
VIEWER
};
-// ======================> ui_colors
-
-class ui_colors
-{
-public:
- rgb_t border_color() const { return m_border_color; }
- rgb_t background_color() const { return m_background_color; }
- rgb_t gfxviewer_bg_color() const { return m_gfxviewer_bg_color; }
- rgb_t unavailable_color() const { return m_unavailable_color; }
- rgb_t text_color() const { return m_text_color; }
- rgb_t text_bg_color() const { return m_text_bg_color; }
- rgb_t subitem_color() const { return m_subitem_color; }
- rgb_t clone_color() const { return m_clone_color; }
- rgb_t selected_color() const { return m_selected_color; }
- rgb_t selected_bg_color() const { return m_selected_bg_color; }
- rgb_t mouseover_color() const { return m_mouseover_color; }
- rgb_t mouseover_bg_color() const { return m_mouseover_bg_color; }
- rgb_t mousedown_color() const { return m_mousedown_color; }
- rgb_t mousedown_bg_color() const { return m_mousedown_bg_color; }
- rgb_t dipsw_color() const { return m_dipsw_color; }
- rgb_t slider_color() const { return m_slider_color; }
-
- void refresh(const ui_options &options);
-
-private:
- rgb_t m_border_color;
- rgb_t m_background_color;
- rgb_t m_gfxviewer_bg_color;
- rgb_t m_unavailable_color;
- rgb_t m_text_color;
- rgb_t m_text_bg_color;
- rgb_t m_subitem_color;
- rgb_t m_clone_color;
- rgb_t m_selected_color;
- rgb_t m_selected_bg_color;
- rgb_t m_mouseover_color;
- rgb_t m_mouseover_bg_color;
- rgb_t m_mousedown_color;
- rgb_t m_mousedown_bg_color;
- rgb_t m_dipsw_color;
- rgb_t m_slider_color;
-};
-
// ======================> mame_ui_manager
class mame_ui_manager : public ui_manager, public slider_changed_notifier
@@ -180,7 +161,6 @@ public:
running_machine &machine() const { return m_machine; }
bool single_step() const { return m_single_step; }
ui_options &options() { return m_ui_options; }
- ui_colors &colors() { return m_ui_colors; }
ui::machine_info &machine_info() const { assert(m_machine_info); return *m_machine_info; }
// setters
@@ -235,15 +215,14 @@ public:
void start_save_state();
void start_load_state();
+ // config callbacks
+ void config_load(config_type cfg_type, util::xml::data_node const *parentnode);
+ void config_save(config_type cfg_type, util::xml::data_node *parentnode);
+ void config_apply(void);
+
// slider controls
std::vector<ui::menu_item>& get_slider_list(void);
- // metrics
- float target_font_height() const { return m_target_font_height; }
- float box_lr_border() const { return target_font_height() * 0.25f; }
- float box_tb_border() const { return target_font_height() * 0.25f; }
- void update_target_font_height();
-
// other
void process_natural_keyboard();
ui::text_layout create_layout(render_container &container, float width = 1.0, ui::text_layout::text_justify justify = ui::text_layout::LEFT, ui::text_layout::word_wrapping wrap = ui::text_layout::WORD);
@@ -273,8 +252,6 @@ private:
render_texture * m_mouse_arrow_texture;
bool m_mouse_show;
ui_options m_ui_options;
- ui_colors m_ui_colors;
- float m_target_font_height;
std::unique_ptr<ui::machine_info> m_machine_info;
@@ -327,12 +304,15 @@ private:
#endif
std::vector<std::unique_ptr<slider_state>> m_sliders;
+ std::vector<std::unique_ptr<slider_state>> m_sliders_saved;
};
/***************************************************************************
FUNCTION PROTOTYPES
***************************************************************************/
+rgb_t decode_ui_color(int id, running_machine *machine = nullptr);
+int get_font_rows(running_machine *machine = nullptr);
template <typename Format, typename... Params>
inline void mame_ui_manager::popup_time(int seconds, Format &&fmt, Params &&... args)