diff options
Diffstat (limited to 'src/frontend/mame/ui/ui.h')
-rw-r--r-- | src/frontend/mame/ui/ui.h | 84 |
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) |