summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--src/frontend/mame/cheat.cpp9
-rw-r--r--src/frontend/mame/cheat.h4
-rw-r--r--src/frontend/mame/clifront.cpp2
-rw-r--r--src/frontend/mame/info.cpp3
-rw-r--r--src/frontend/mame/luaengine.cpp3
-rw-r--r--src/frontend/mame/mame.cpp20
-rw-r--r--src/frontend/mame/mame.h6
-rw-r--r--src/frontend/mame/ui/auditmenu.cpp8
-rw-r--r--src/frontend/mame/ui/auditmenu.h2
-rw-r--r--src/frontend/mame/ui/barcode.cpp8
-rw-r--r--src/frontend/mame/ui/barcode.h2
-rw-r--r--src/frontend/mame/ui/cheatopt.cpp9
-rw-r--r--src/frontend/mame/ui/cheatopt.h4
-rw-r--r--src/frontend/mame/ui/custmenu.cpp52
-rw-r--r--src/frontend/mame/ui/custmenu.h4
-rw-r--r--src/frontend/mame/ui/custui.cpp138
-rw-r--r--src/frontend/mame/ui/custui.h10
-rw-r--r--src/frontend/mame/ui/datfile.cpp8
-rw-r--r--src/frontend/mame/ui/datfile.h5
-rw-r--r--src/frontend/mame/ui/datmenu.cpp54
-rw-r--r--src/frontend/mame/ui/datmenu.h4
-rw-r--r--src/frontend/mame/ui/devctrl.h8
-rw-r--r--src/frontend/mame/ui/devopt.cpp2
-rw-r--r--src/frontend/mame/ui/devopt.h2
-rw-r--r--src/frontend/mame/ui/dirmenu.cpp107
-rw-r--r--src/frontend/mame/ui/dirmenu.h8
-rw-r--r--src/frontend/mame/ui/filemngr.cpp23
-rw-r--r--src/frontend/mame/ui/filemngr.h4
-rw-r--r--src/frontend/mame/ui/filesel.cpp97
-rw-r--r--src/frontend/mame/ui/filesel.h15
-rw-r--r--src/frontend/mame/ui/floppycntrl.cpp8
-rw-r--r--src/frontend/mame/ui/floppycntrl.h2
-rw-r--r--src/frontend/mame/ui/imgcntrl.cpp22
-rw-r--r--src/frontend/mame/ui/imgcntrl.h2
-rw-r--r--src/frontend/mame/ui/info.cpp6
-rw-r--r--src/frontend/mame/ui/info.h4
-rw-r--r--src/frontend/mame/ui/info_pty.cpp4
-rw-r--r--src/frontend/mame/ui/info_pty.h2
-rw-r--r--src/frontend/mame/ui/inifile.cpp18
-rw-r--r--src/frontend/mame/ui/inifile.h8
-rw-r--r--src/frontend/mame/ui/inputmap.cpp26
-rw-r--r--src/frontend/mame/ui/inputmap.h16
-rw-r--r--src/frontend/mame/ui/mainmenu.cpp57
-rw-r--r--src/frontend/mame/ui/mainmenu.h2
-rw-r--r--src/frontend/mame/ui/menu.cpp252
-rw-r--r--src/frontend/mame/ui/menu.h19
-rw-r--r--src/frontend/mame/ui/miscmenu.cpp73
-rw-r--r--src/frontend/mame/ui/miscmenu.h18
-rw-r--r--src/frontend/mame/ui/optsmenu.cpp118
-rw-r--r--src/frontend/mame/ui/optsmenu.h6
-rw-r--r--src/frontend/mame/ui/pluginopt.cpp10
-rw-r--r--src/frontend/mame/ui/pluginopt.h4
-rw-r--r--src/frontend/mame/ui/selector.cpp28
-rw-r--r--src/frontend/mame/ui/selector.h4
-rw-r--r--src/frontend/mame/ui/selgame.cpp203
-rw-r--r--src/frontend/mame/ui/selgame.h4
-rw-r--r--src/frontend/mame/ui/selsoft.cpp149
-rw-r--r--src/frontend/mame/ui/selsoft.h6
-rw-r--r--src/frontend/mame/ui/simpleselgame.cpp42
-rw-r--r--src/frontend/mame/ui/simpleselgame.h4
-rw-r--r--src/frontend/mame/ui/sliders.cpp24
-rw-r--r--src/frontend/mame/ui/sliders.h4
-rw-r--r--src/frontend/mame/ui/slotopt.cpp4
-rw-r--r--src/frontend/mame/ui/slotopt.h2
-rw-r--r--src/frontend/mame/ui/sndmenu.cpp21
-rw-r--r--src/frontend/mame/ui/sndmenu.h2
-rw-r--r--src/frontend/mame/ui/submenu.cpp29
-rw-r--r--src/frontend/mame/ui/submenu.h2
-rw-r--r--src/frontend/mame/ui/swlist.cpp18
-rw-r--r--src/frontend/mame/ui/swlist.h6
-rw-r--r--src/frontend/mame/ui/tapectrl.cpp4
-rw-r--r--src/frontend/mame/ui/tapectrl.h2
-rw-r--r--src/frontend/mame/ui/ui.cpp376
-rw-r--r--src/frontend/mame/ui/ui.h21
-rw-r--r--src/frontend/mame/ui/videoopt.cpp6
-rw-r--r--src/frontend/mame/ui/videoopt.h4
-rw-r--r--src/frontend/mame/ui/viewgfx.cpp128
-rw-r--r--src/frontend/mame/ui/viewgfx.h2
-rw-r--r--src/osd/modules/debugger/debugint.cpp5
79 files changed, 1193 insertions, 1205 deletions
diff --git a/src/frontend/mame/cheat.cpp b/src/frontend/mame/cheat.cpp
index 2c48e8c6375..32dc85df1b6 100644
--- a/src/frontend/mame/cheat.cpp
+++ b/src/frontend/mame/cheat.cpp
@@ -75,6 +75,7 @@
#include "emu.h"
#include "emuopts.h"
#include "xmlfile.h"
+#include "mame.h"
#include "ui/ui.h"
#include "ui/menu.h"
#include "cheat.h"
@@ -1221,17 +1222,17 @@ bool cheat_manager::save_all(const char *filename)
// render text
//-------------------------------------------------
-void cheat_manager::render_text(render_container &container)
+void cheat_manager::render_text(mame_ui_manager &mui, render_container &container)
{
// render any text and free it along the way
for (int linenum = 0; linenum < m_output.size(); linenum++)
if (!m_output[linenum].empty())
{
// output the text
- mame_machine_manager::instance()->ui().draw_text_full(&container, m_output[linenum].c_str(),
- 0.0f, (float)linenum * mame_machine_manager::instance()->ui().get_line_height(), 1.0f,
+ mui.draw_text_full(&container, m_output[linenum].c_str(),
+ 0.0f, (float)linenum * mui.get_line_height(), 1.0f,
m_justify[linenum], WRAP_NEVER, DRAW_OPAQUE,
- ARGB_WHITE, ARGB_BLACK, nullptr, nullptr);
+ rgb_t::white, rgb_t::black, nullptr, nullptr);
}
}
diff --git a/src/frontend/mame/cheat.h b/src/frontend/mame/cheat.h
index dac90e17286..71cb149c62c 100644
--- a/src/frontend/mame/cheat.h
+++ b/src/frontend/mame/cheat.h
@@ -14,7 +14,6 @@
#define __CHEAT_H__
#include "debug/express.h"
-#include "ui/ui.h"
//**************************************************************************
@@ -38,6 +37,7 @@ DECLARE_ENUM_OPERATORS(script_state)
//**************************************************************************
class cheat_manager;
+class mame_ui_manager;
// ======================> number_and_format
@@ -303,7 +303,7 @@ public:
// actions
void reload();
bool save_all(const char *filename);
- void render_text(render_container &container);
+ void render_text(mame_ui_manager &mui, render_container &container);
// output helpers
std::string &get_output_astring(int row, int justify);
diff --git a/src/frontend/mame/clifront.cpp b/src/frontend/mame/clifront.cpp
index 9d81306aa60..e169479f383 100644
--- a/src/frontend/mame/clifront.cpp
+++ b/src/frontend/mame/clifront.cpp
@@ -28,6 +28,8 @@
#include "softlist.h"
#include "ui/moptions.h"
+#include "language.h"
+#include "pluginopts.h"
#include <new>
#include <ctype.h>
diff --git a/src/frontend/mame/info.cpp b/src/frontend/mame/info.cpp
index b23c8296992..fe4b161503c 100644
--- a/src/frontend/mame/info.cpp
+++ b/src/frontend/mame/info.cpp
@@ -9,7 +9,6 @@
***************************************************************************/
#include "emu.h"
-#include "mame.h"
#include "mameopts.h"
#include "machine/ram.h"
#include "sound/samples.h"
@@ -216,7 +215,7 @@ void info_xml_creator::output(FILE *out, bool nodevices)
#endif
"\" mameconfig=\"%d\">\n",
XML_ROOT,
- xml_normalize_string(build_version),
+ xml_normalize_string(emulator_info::get_build_version()),
CONFIG_VERSION
);
diff --git a/src/frontend/mame/luaengine.cpp b/src/frontend/mame/luaengine.cpp
index 72c36e3bd47..fb781811258 100644
--- a/src/frontend/mame/luaengine.cpp
+++ b/src/frontend/mame/luaengine.cpp
@@ -1507,6 +1507,7 @@ int lua_engine::lua_screen::l_draw_text(lua_State *L)
}
const char *msg = luaL_checkstring(L,4);
rgb_t textcolor = UI_TEXT_COLOR;
+ rgb_t bgcolor = UI_TEXT_BG_COLOR;
if (!lua_isnone(L, 5)) {
textcolor = rgb_t(lua_tounsigned(L, 5));
}
@@ -1515,7 +1516,7 @@ int lua_engine::lua_screen::l_draw_text(lua_State *L)
render_container &rc = sc->container();
mame_machine_manager::instance()->ui().draw_text_full(&rc, msg, x, y, (1.0f - x),
justify, WRAP_WORD, DRAW_NORMAL, textcolor,
- UI_TEXT_BG_COLOR, nullptr, nullptr);
+ bgcolor, nullptr, nullptr);
return 0;
}
diff --git a/src/frontend/mame/mame.cpp b/src/frontend/mame/mame.cpp
index c162e5ff12a..83c4a6cf2b7 100644
--- a/src/frontend/mame/mame.cpp
+++ b/src/frontend/mame/mame.cpp
@@ -12,12 +12,14 @@
#include "mame.h"
#include "emuopts.h"
#include "mameopts.h"
+#include "pluginopts.h"
#include "osdepend.h"
#include "validity.h"
#include "clifront.h"
#include "drivenum.h"
#include "luaengine.h"
#include <time.h>
+#include "ui/ui.h"
#include "ui/selgame.h"
#include "ui/simpleselgame.h"
#include "cheat.h"
@@ -272,7 +274,7 @@ ui_manager* mame_machine_manager::create_ui(running_machine& machine)
machine.add_notifier(MACHINE_NOTIFY_RESET, machine_notify_delegate(FUNC(mame_machine_manager::reset), this));
// start the inifile manager
- m_inifile = std::make_unique<inifile_manager>(machine);
+ m_inifile = std::make_unique<inifile_manager>(machine, m_ui->options());
m_ui->set_startup_text("Initializing...", true);
@@ -280,10 +282,10 @@ ui_manager* mame_machine_manager::create_ui(running_machine& machine)
m_autoboot_timer = machine.scheduler().timer_alloc(timer_expired_delegate(FUNC(mame_machine_manager::autoboot_callback), this));
// start datfile manager
- m_datfile = std::make_unique<datfile_manager>(machine);
+ m_datfile = std::make_unique<datfile_manager>(machine, m_ui->options());
// start favorite manager
- m_favorite = std::make_unique<favorite_manager>(machine);
+ m_favorite = std::make_unique<favorite_manager>(machine, m_ui->options());
return m_ui.get();
}
@@ -308,12 +310,12 @@ const char * emulator_info::get_build_version() { return build_version; }
void emulator_info::display_ui_chooser(running_machine& machine)
{
// force the UI to show the game select screen
- if (strcmp(machine.options().ui(), "simple") == 0) {
- ui_simple_menu_select_game::force_game_select(machine, &machine.render().ui_container());
- }
- else {
- ui_menu_select_game::force_game_select(machine, &machine.render().ui_container());
- }
+ mame_ui_manager &mui = mame_machine_manager::instance()->ui();
+ render_container *container = &machine.render().ui_container();
+ if (strcmp(machine.options().ui(), "simple") == 0)
+ ui_simple_menu_select_game::force_game_select(mui, container);
+ else
+ ui_menu_select_game::force_game_select(mui, container);
}
int emulator_info::start_frontend(emu_options &options, osd_interface &osd, int argc, char *argv[])
diff --git a/src/frontend/mame/mame.h b/src/frontend/mame/mame.h
index 8cf1a29d50b..d17b324171d 100644
--- a/src/frontend/mame/mame.h
+++ b/src/frontend/mame/mame.h
@@ -12,11 +12,7 @@
#ifndef __MAME_H__
#define __MAME_H__
-#include "emu.h"
-#include <time.h>
-#include "pluginopts.h"
-#include "ui/ui.h"
-
+class plugin_options;
class osd_interface;
//**************************************************************************
diff --git a/src/frontend/mame/ui/auditmenu.cpp b/src/frontend/mame/ui/auditmenu.cpp
index 43da259cdc7..3ced1d2fd3e 100644
--- a/src/frontend/mame/ui/auditmenu.cpp
+++ b/src/frontend/mame/ui/auditmenu.cpp
@@ -84,8 +84,8 @@ bool sorted_game_list(const game_driver *x, const game_driver *y)
// ctor / dtor
//-------------------------------------------------
-ui_menu_audit::ui_menu_audit(running_machine &machine, render_container *container, vptr_game &availablesorted, vptr_game &unavailablesorted, int _audit_mode)
- : ui_menu(machine, container)
+ui_menu_audit::ui_menu_audit(mame_ui_manager &mui, render_container *container, vptr_game &availablesorted, vptr_game &unavailablesorted, int _audit_mode)
+ : ui_menu(mui, container)
, m_availablesorted(availablesorted)
, m_unavailablesorted(unavailablesorted)
, m_audit_mode(_audit_mode)
@@ -112,7 +112,7 @@ void ui_menu_audit::handle()
if (m_first)
{
- mame_machine_manager::instance()->ui().draw_text_box(container, _("Audit in progress..."), JUSTIFY_CENTER, 0.5f, 0.5f, UI_GREEN_COLOR);
+ ui().draw_text_box(container, _("Audit in progress..."), JUSTIFY_CENTER, 0.5f, 0.5f, UI_GREEN_COLOR);
m_first = false;
return;
}
@@ -177,7 +177,7 @@ void ui_menu_audit::populate()
void ui_menu_audit::save_available_machines()
{
// attempt to open the output file
- emu_file file(mame_machine_manager::instance()->ui().options().ui_path(), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS);
+ emu_file file(ui().options().ui_path(), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS);
if (file.open(emulator_info::get_configname(), "_avail.ini") == osd_file::error::NONE)
{
// generate header
diff --git a/src/frontend/mame/ui/auditmenu.h b/src/frontend/mame/ui/auditmenu.h
index b63bbb6507b..6d7b6a9cbcd 100644
--- a/src/frontend/mame/ui/auditmenu.h
+++ b/src/frontend/mame/ui/auditmenu.h
@@ -21,7 +21,7 @@ using vptr_game = std::vector<const game_driver *>;
class ui_menu_audit : public ui_menu
{
public:
- ui_menu_audit(running_machine &machine, render_container *container, vptr_game &availablesorted, vptr_game &unavailablesorted, int audit_mode);
+ ui_menu_audit(mame_ui_manager &mui, render_container *container, vptr_game &availablesorted, vptr_game &unavailablesorted, int audit_mode);
virtual ~ui_menu_audit();
virtual void populate() override;
virtual void handle() override;
diff --git a/src/frontend/mame/ui/barcode.cpp b/src/frontend/mame/ui/barcode.cpp
index 10dec5bde11..449341755d7 100644
--- a/src/frontend/mame/ui/barcode.cpp
+++ b/src/frontend/mame/ui/barcode.cpp
@@ -30,8 +30,8 @@
// ctor
//-------------------------------------------------
-ui_menu_barcode_reader::ui_menu_barcode_reader(running_machine &machine, render_container *container, barcode_reader_device *device)
- : ui_menu_device_control<barcode_reader_device>(machine, container, device)
+ui_menu_barcode_reader::ui_menu_barcode_reader(mame_ui_manager &mui, render_container *container, barcode_reader_device *device)
+ : ui_menu_device_control<barcode_reader_device>(mui, container, device)
{
}
@@ -75,7 +75,7 @@ void ui_menu_barcode_reader::populate()
item_append(ui_menu_item_type::SEPARATOR);
item_append(_("Enter Code"), nullptr, 0, ITEMREF_ENTER_BARCODE);
- customtop = mame_machine_manager::instance()->ui().get_line_height() + 3.0f * UI_BOX_TB_BORDER;
+ customtop = ui().get_line_height() + 3.0f * UI_BOX_TB_BORDER;
}
}
@@ -115,7 +115,7 @@ void ui_menu_barcode_reader::handle()
std::string tmp_file(m_barcode_buffer);
//printf("code %s\n", m_barcode_buffer);
if (!current_device()->is_valid(tmp_file.length()))
- mame_machine_manager::instance()->ui().popup_time(5, "%s", _("Barcode length invalid!"));
+ ui().popup_time(5, "%s", _("Barcode length invalid!"));
else
{
current_device()->write_code(tmp_file.c_str(), tmp_file.length());
diff --git a/src/frontend/mame/ui/barcode.h b/src/frontend/mame/ui/barcode.h
index 5a3dbff634e..f0f584e8cce 100644
--- a/src/frontend/mame/ui/barcode.h
+++ b/src/frontend/mame/ui/barcode.h
@@ -18,7 +18,7 @@
class ui_menu_barcode_reader : public ui_menu_device_control<barcode_reader_device> {
public:
- ui_menu_barcode_reader(running_machine &machine, render_container *container, barcode_reader_device *device);
+ ui_menu_barcode_reader(mame_ui_manager &mui, render_container *container, barcode_reader_device *device);
virtual ~ui_menu_barcode_reader();
virtual void populate() override;
virtual void handle() override;
diff --git a/src/frontend/mame/ui/cheatopt.cpp b/src/frontend/mame/ui/cheatopt.cpp
index 18fe17f93e4..ae6a4e9c508 100644
--- a/src/frontend/mame/ui/cheatopt.cpp
+++ b/src/frontend/mame/ui/cheatopt.cpp
@@ -10,6 +10,7 @@
#include "emu.h"
#include "cheat.h"
+#include "mame.h"
#include "ui/ui.h"
#include "ui/menu.h"
@@ -93,7 +94,7 @@ void ui_menu_cheat::handle()
/* handle autofire menu */
if (menu_event->itemref == ITEMREF_CHEATS_AUTOFIRE_SETTINGS && menu_event->iptkey == IPT_UI_SELECT)
{
- ui_menu::stack_push(global_alloc_clear<ui_menu_autofire>(machine(), container));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_autofire>(ui(), container));
}
/* if things changed, update */
@@ -107,7 +108,7 @@ void ui_menu_cheat::handle()
menu_cheat_populate - populate the cheat menu
-------------------------------------------------*/
-ui_menu_cheat::ui_menu_cheat(running_machine &machine, render_container *container) : ui_menu(machine, container)
+ui_menu_cheat::ui_menu_cheat(mame_ui_manager &mui, render_container *container) : ui_menu(mui, container)
{
}
@@ -156,9 +157,9 @@ ui_menu_cheat::~ui_menu_cheat()
menu
-------------------------------------------------*/
-ui_menu_autofire::ui_menu_autofire(running_machine &machine, render_container *container) : ui_menu(machine, container), last_toggle(false)
+ui_menu_autofire::ui_menu_autofire(mame_ui_manager &mui, render_container *container) : ui_menu(mui, container), last_toggle(false)
{
- const screen_device *screen = machine.first_screen();
+ const screen_device *screen = mui.machine().first_screen();
if (screen == nullptr)
{
diff --git a/src/frontend/mame/ui/cheatopt.h b/src/frontend/mame/ui/cheatopt.h
index a9321df7304..3087dc6217d 100644
--- a/src/frontend/mame/ui/cheatopt.h
+++ b/src/frontend/mame/ui/cheatopt.h
@@ -21,7 +21,7 @@
class ui_menu_cheat : public ui_menu {
public:
- ui_menu_cheat(running_machine &machine, render_container *container);
+ ui_menu_cheat(mame_ui_manager &mui, render_container *container);
virtual ~ui_menu_cheat();
virtual void populate() override;
virtual void handle() override;
@@ -35,7 +35,7 @@ public:
class ui_menu_autofire : public ui_menu {
public:
- ui_menu_autofire(running_machine &machine, render_container *container);
+ ui_menu_autofire(mame_ui_manager &mui, render_container *container);
virtual ~ui_menu_autofire();
virtual void populate() override;
virtual void handle() override;
diff --git a/src/frontend/mame/ui/custmenu.cpp b/src/frontend/mame/ui/custmenu.cpp
index 618b16285cd..d44206ef6c8 100644
--- a/src/frontend/mame/ui/custmenu.cpp
+++ b/src/frontend/mame/ui/custmenu.cpp
@@ -22,8 +22,8 @@
//-------------------------------------------------
// ctor / dtor
//-------------------------------------------------
-ui_menu_custom_filter::ui_menu_custom_filter(running_machine &machine, render_container *container, bool _single_menu)
- : ui_menu(machine, container)
+ui_menu_custom_filter::ui_menu_custom_filter(mame_ui_manager &mui, render_container *container, bool _single_menu)
+ : ui_menu(mui, container)
, m_single_menu(_single_menu)
, m_added(false)
{
@@ -104,7 +104,7 @@ void ui_menu_custom_filter::handle()
else
s_sel[index] = main_filters::text[index];
- ui_menu::stack_push(global_alloc_clear<ui_menu_selector>(machine(), container, s_sel, custfltr::other[pos]));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_selector>(ui(), container, s_sel, custfltr::other[pos]));
}
}
else if ((FPTR)m_event->itemref >= YEAR_FILTER && (FPTR)m_event->itemref < YEAR_FILTER + MAX_CUST_FILTER)
@@ -121,7 +121,7 @@ void ui_menu_custom_filter::handle()
changed = true;
}
else if (m_event->iptkey == IPT_UI_SELECT)
- ui_menu::stack_push(global_alloc_clear<ui_menu_selector>(machine(), container, c_year::ui, custfltr::year[pos]));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_selector>(ui(), container, c_year::ui, custfltr::year[pos]));
}
else if ((FPTR)m_event->itemref >= MNFCT_FILTER && (FPTR)m_event->itemref < MNFCT_FILTER + MAX_CUST_FILTER)
{
@@ -137,7 +137,7 @@ void ui_menu_custom_filter::handle()
changed = true;
}
else if (m_event->iptkey == IPT_UI_SELECT)
- ui_menu::stack_push(global_alloc_clear<ui_menu_selector>(machine(), container, c_mnfct::ui, custfltr::mnfct[pos]));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_selector>(ui(), container, c_mnfct::ui, custfltr::mnfct[pos]));
}
}
@@ -196,7 +196,7 @@ void ui_menu_custom_filter::populate()
item_append(_("Add filter"), nullptr, 0, (void *)(FPTR)ADD_FILTER);
item_append(ui_menu_item_type::SEPARATOR);
- customtop = mame_machine_manager::instance()->ui().get_line_height() + 3.0f * UI_BOX_TB_BORDER;
+ customtop = ui().get_line_height() + 3.0f * UI_BOX_TB_BORDER;
}
//-------------------------------------------------
@@ -205,11 +205,10 @@ void ui_menu_custom_filter::populate()
void ui_menu_custom_filter::custom_render(void *selectedref, float top, float bottom, float origx1, float origy1, float origx2, float origy2)
{
float width;
- mame_ui_manager &mui = mame_machine_manager::instance()->ui();
// get the size of the text
- mui.draw_text_full(container, _("Select custom filters:"), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_NEVER,
- DRAW_NONE, ARGB_WHITE, ARGB_BLACK, &width, nullptr);
+ ui().draw_text_full(container, _("Select custom filters:"), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_NEVER,
+ DRAW_NONE, rgb_t::white, rgb_t::black, &width, nullptr);
width += (2.0f * UI_BOX_LR_BORDER) + 0.01f;
float maxwidth = MAX(width, origx2 - origx1);
@@ -220,7 +219,7 @@ void ui_menu_custom_filter::custom_render(void *selectedref, float top, float bo
float y2 = origy1 - UI_BOX_TB_BORDER;
// draw a box
- mui.draw_outlined_box(container, x1, y1, x2, y2, UI_GREEN_COLOR);
+ ui().draw_outlined_box(container, x1, y1, x2, y2, UI_GREEN_COLOR);
// take off the borders
x1 += UI_BOX_LR_BORDER;
@@ -228,7 +227,7 @@ void ui_menu_custom_filter::custom_render(void *selectedref, float top, float bo
y1 += UI_BOX_TB_BORDER;
// draw the text within it
- mui.draw_text_full(container, _("Select custom filters:"), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_NEVER,
+ ui().draw_text_full(container, _("Select custom filters:"), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_NEVER,
DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr);
}
@@ -239,7 +238,7 @@ void ui_menu_custom_filter::custom_render(void *selectedref, float top, float bo
void ui_menu_custom_filter::save_custom_filters()
{
// attempt to open the output file
- emu_file file(mame_machine_manager::instance()->ui().options().ui_path(), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS);
+ emu_file file(ui().options().ui_path(), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS);
if (file.open("custom_", emulator_info::get_configname(), "_filter.ini") == osd_file::error::NONE)
{
// generate custom filters info
@@ -266,8 +265,8 @@ void ui_menu_custom_filter::save_custom_filters()
//-------------------------------------------------
// ctor / dtor
//-------------------------------------------------
-ui_menu_swcustom_filter::ui_menu_swcustom_filter(running_machine &machine, render_container *container, const game_driver *_driver, s_filter &_filter) :
- ui_menu(machine, container)
+ui_menu_swcustom_filter::ui_menu_swcustom_filter(mame_ui_manager &mui, render_container *container, const game_driver *_driver, s_filter &_filter) :
+ ui_menu(mui, container)
, m_added(false)
, m_filter(_filter)
, m_driver(_driver)
@@ -344,7 +343,7 @@ void ui_menu_swcustom_filter::handle()
else
s_sel[index] = sw_filters::text[index];
- ui_menu::stack_push(global_alloc_clear<ui_menu_selector>(machine(), container, s_sel, sw_custfltr::other[pos]));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_selector>(ui(), container, s_sel, sw_custfltr::other[pos]));
}
}
else if ((FPTR)m_event->itemref >= YEAR_FILTER && (FPTR)m_event->itemref < YEAR_FILTER + MAX_CUST_FILTER)
@@ -361,7 +360,7 @@ void ui_menu_swcustom_filter::handle()
changed = true;
}
else if (m_event->iptkey == IPT_UI_SELECT)
- ui_menu::stack_push(global_alloc_clear<ui_menu_selector>(machine(), container, m_filter.year.ui, sw_custfltr::year[pos]));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_selector>(ui(), container, m_filter.year.ui, sw_custfltr::year[pos]));
}
else if ((FPTR)m_event->itemref >= TYPE_FILTER && (FPTR)m_event->itemref < TYPE_FILTER + MAX_CUST_FILTER)
{
@@ -377,7 +376,7 @@ void ui_menu_swcustom_filter::handle()
changed = true;
}
else if (m_event->iptkey == IPT_UI_SELECT)
- ui_menu::stack_push(global_alloc_clear<ui_menu_selector>(machine(), container, m_filter.type.ui, sw_custfltr::type[pos]));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_selector>(ui(), container, m_filter.type.ui, sw_custfltr::type[pos]));
}
else if ((FPTR)m_event->itemref >= MNFCT_FILTER && (FPTR)m_event->itemref < MNFCT_FILTER + MAX_CUST_FILTER)
{
@@ -393,7 +392,7 @@ void ui_menu_swcustom_filter::handle()
changed = true;
}
else if (m_event->iptkey == IPT_UI_SELECT)
- ui_menu::stack_push(global_alloc_clear<ui_menu_selector>(machine(), container, m_filter.publisher.ui, sw_custfltr::mnfct[pos]));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_selector>(ui(), container, m_filter.publisher.ui, sw_custfltr::mnfct[pos]));
}
else if ((FPTR)m_event->itemref >= REGION_FILTER && (FPTR)m_event->itemref < REGION_FILTER + MAX_CUST_FILTER)
{
@@ -409,7 +408,7 @@ void ui_menu_swcustom_filter::handle()
changed = true;
}
else if (m_event->iptkey == IPT_UI_SELECT)
- ui_menu::stack_push(global_alloc_clear<ui_menu_selector>(machine(), container, m_filter.region.ui, sw_custfltr::region[pos]));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_selector>(ui(), container, m_filter.region.ui, sw_custfltr::region[pos]));
}
else if ((FPTR)m_event->itemref >= LIST_FILTER && (FPTR)m_event->itemref < LIST_FILTER + MAX_CUST_FILTER)
{
@@ -425,7 +424,7 @@ void ui_menu_swcustom_filter::handle()
changed = true;
}
else if (m_event->iptkey == IPT_UI_SELECT)
- ui_menu::stack_push(global_alloc_clear<ui_menu_selector>(machine(), container, m_filter.swlist.description, sw_custfltr::list[pos]));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_selector>(ui(), container, m_filter.swlist.description, sw_custfltr::list[pos]));
}
}
@@ -512,7 +511,7 @@ void ui_menu_swcustom_filter::populate()
item_append(ui_menu_item_type::SEPARATOR);
- customtop = mame_machine_manager::instance()->ui().get_line_height() + 3.0f * UI_BOX_TB_BORDER;
+ customtop = ui().get_line_height() + 3.0f * UI_BOX_TB_BORDER;
}
//-------------------------------------------------
@@ -521,11 +520,10 @@ void ui_menu_swcustom_filter::populate()
void ui_menu_swcustom_filter::custom_render(void *selectedref, float top, float bottom, float origx1, float origy1, float origx2, float origy2)
{
float width;
- mame_ui_manager &mui = mame_machine_manager::instance()->ui();
// get the size of the text
- mui.draw_text_full(container, _("Select custom filters:"), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_NEVER,
- DRAW_NONE, ARGB_WHITE, ARGB_BLACK, &width, nullptr);
+ ui().draw_text_full(container, _("Select custom filters:"), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_NEVER,
+ DRAW_NONE, rgb_t::white, rgb_t::black, &width, nullptr);
width += (2.0f * UI_BOX_LR_BORDER) + 0.01f;
float maxwidth = MAX(width, origx2 - origx1);
@@ -536,7 +534,7 @@ void ui_menu_swcustom_filter::custom_render(void *selectedref, float top, float
float y2 = origy1 - UI_BOX_TB_BORDER;
// draw a box
- mui.draw_outlined_box(container, x1, y1, x2, y2, UI_GREEN_COLOR);
+ ui().draw_outlined_box(container, x1, y1, x2, y2, UI_GREEN_COLOR);
// take off the borders
x1 += UI_BOX_LR_BORDER;
@@ -544,7 +542,7 @@ void ui_menu_swcustom_filter::custom_render(void *selectedref, float top, float
y1 += UI_BOX_TB_BORDER;
// draw the text within it
- mui.draw_text_full(container, _("Select custom filters:"), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_NEVER,
+ ui().draw_text_full(container, _("Select custom filters:"), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_NEVER,
DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr);
}
@@ -555,7 +553,7 @@ void ui_menu_swcustom_filter::custom_render(void *selectedref, float top, float
void ui_menu_swcustom_filter::save_sw_custom_filters()
{
// attempt to open the output file
- emu_file file(mame_machine_manager::instance()->ui().options().ui_path(), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS);
+ emu_file file(ui().options().ui_path(), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS);
if (file.open("custom_", m_driver->name, "_filter.ini") == osd_file::error::NONE)
{
// generate custom filters info
diff --git a/src/frontend/mame/ui/custmenu.h b/src/frontend/mame/ui/custmenu.h
index 338344dcddd..c0c4508d7fe 100644
--- a/src/frontend/mame/ui/custmenu.h
+++ b/src/frontend/mame/ui/custmenu.h
@@ -73,7 +73,7 @@ struct s_filter
class ui_menu_swcustom_filter : public ui_menu
{
public:
- ui_menu_swcustom_filter(running_machine &machine, render_container *container, const game_driver *_driver, s_filter &_filter);
+ ui_menu_swcustom_filter(mame_ui_manager &mui, render_container *container, const game_driver *_driver, s_filter &_filter);
virtual ~ui_menu_swcustom_filter();
virtual void populate() override;
virtual void handle() override;
@@ -106,7 +106,7 @@ private:
class ui_menu_custom_filter : public ui_menu
{
public:
- ui_menu_custom_filter(running_machine &machine, render_container *container, bool _single_menu = false);
+ ui_menu_custom_filter(mame_ui_manager &mui, render_container *container, bool _single_menu = false);
virtual ~ui_menu_custom_filter();
virtual void populate() override;
virtual void handle() override;
diff --git a/src/frontend/mame/ui/custui.cpp b/src/frontend/mame/ui/custui.cpp
index 78818f33cf8..5f79508d404 100644
--- a/src/frontend/mame/ui/custui.cpp
+++ b/src/frontend/mame/ui/custui.cpp
@@ -27,11 +27,11 @@ const char *const ui_menu_custom_ui::hide_status[] = {
// ctor
//-------------------------------------------------
-ui_menu_custom_ui::ui_menu_custom_ui(running_machine &machine, render_container *container) : ui_menu(machine, container)
+ui_menu_custom_ui::ui_menu_custom_ui(mame_ui_manager &mui, render_container *container) : ui_menu(mui, container)
{
// load languages
- file_enumerator path(machine.options().language_path());
- const char *lang = machine.options().language();
+ file_enumerator path(mui.machine().options().language_path());
+ const char *lang = mui.machine().options().language();
const osd_directory_entry *dirent;
int cnt = 0;
while ((dirent = path.next()) != nullptr)
@@ -54,7 +54,7 @@ ui_menu_custom_ui::ui_menu_custom_ui(running_machine &machine, render_container
ui_menu_custom_ui::~ui_menu_custom_ui()
{
std::string error_string;
- mame_machine_manager::instance()->ui().options().set_value(OPTION_HIDE_PANELS, ui_globals::panels_status, OPTION_PRIORITY_CMDLINE, error_string);
+ ui().options().set_value(OPTION_HIDE_PANELS, ui_globals::panels_status, OPTION_PRIORITY_CMDLINE, error_string);
if (!m_lang.empty())
{
machine().options().set_value(OPTION_LANGUAGE, m_lang[m_currlang].c_str(), OPTION_PRIORITY_CMDLINE, error_string);
@@ -81,11 +81,11 @@ void ui_menu_custom_ui::handle()
{
case FONT_MENU:
if (m_event->iptkey == IPT_UI_SELECT)
- ui_menu::stack_push(global_alloc_clear<ui_menu_font_ui>(machine(), container));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_font_ui>(ui(), container));
break;
case COLORS_MENU:
if (m_event->iptkey == IPT_UI_SELECT)
- ui_menu::stack_push(global_alloc_clear<ui_menu_colors_ui>(machine(), container));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_colors_ui>(ui(), container));
break;
case HIDE_MENU:
{
@@ -101,7 +101,7 @@ void ui_menu_custom_ui::handle()
for (int index = 0; index < total; ++index)
s_sel[index] = _(hide_status[index]);
- ui_menu::stack_push(global_alloc_clear<ui_menu_selector>(machine(), container, s_sel, ui_globals::panels_status));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_selector>(ui(), container, s_sel, ui_globals::panels_status));
}
break;
}
@@ -119,7 +119,7 @@ void ui_menu_custom_ui::handle()
for (int index = 0; index < total; ++index)
s_sel[index] = m_lang[index];
- ui_menu::stack_push(global_alloc_clear<ui_menu_selector>(machine(), container, s_sel, m_currlang));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_selector>(ui(), container, s_sel, m_currlang));
}
break;
}
@@ -150,7 +150,7 @@ void ui_menu_custom_ui::populate()
item_append(_("Show side panels"), _(hide_status[ui_globals::panels_status]), arrow_flags, (void *)(FPTR)HIDE_MENU);
item_append(ui_menu_item_type::SEPARATOR);
- customtop = mame_machine_manager::instance()->ui().get_line_height() + 3.0f * UI_BOX_TB_BORDER;
+ customtop = ui().get_line_height() + 3.0f * UI_BOX_TB_BORDER;
}
//-------------------------------------------------
@@ -160,10 +160,9 @@ void ui_menu_custom_ui::populate()
void ui_menu_custom_ui::custom_render(void *selectedref, float top, float bottom, float origx1, float origy1, float origx2, float origy2)
{
float width;
- mame_ui_manager &mui = mame_machine_manager::instance()->ui();
- mui.draw_text_full(container, _("Custom UI Settings"), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_TRUNCATE,
- DRAW_NONE, ARGB_WHITE, ARGB_BLACK, &width, nullptr);
+ ui().draw_text_full(container, _("Custom UI Settings"), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_TRUNCATE,
+ DRAW_NONE, rgb_t::white, rgb_t::black, &width, nullptr);
width += 2 * UI_BOX_LR_BORDER;
float maxwidth = MAX(origx2 - origx1, width);
@@ -174,7 +173,7 @@ void ui_menu_custom_ui::custom_render(void *selectedref, float top, float bottom
float y2 = origy1 - UI_BOX_TB_BORDER;
// draw a box
- mui.draw_outlined_box(container, x1, y1, x2, y2, UI_GREEN_COLOR);
+ ui().draw_outlined_box(container, x1, y1, x2, y2, UI_GREEN_COLOR);
// take off the borders
x1 += UI_BOX_LR_BORDER;
@@ -182,7 +181,7 @@ void ui_menu_custom_ui::custom_render(void *selectedref, float top, float bottom
y1 += UI_BOX_TB_BORDER;
// draw the text within it
- mui.draw_text_full(container, _("Custom UI Settings"), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_TRUNCATE,
+ ui().draw_text_full(container, _("Custom UI Settings"), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_TRUNCATE,
DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr);
}
@@ -190,10 +189,10 @@ void ui_menu_custom_ui::custom_render(void *selectedref, float top, float bottom
// ctor
//-------------------------------------------------
-ui_menu_font_ui::ui_menu_font_ui(running_machine &machine, render_container *container) : ui_menu(machine, container)
+ui_menu_font_ui::ui_menu_font_ui(mame_ui_manager &mui, render_container *container) : ui_menu(mui, container)
{
- ui_options &moptions = mame_machine_manager::instance()->ui().options();
- std::string name(machine.options().ui_font());
+ ui_options &moptions = mui.options();
+ std::string name(mui.machine().options().ui_font());
list();
#ifdef UI_WINDOWS
@@ -250,7 +249,7 @@ void ui_menu_font_ui::list()
ui_menu_font_ui::~ui_menu_font_ui()
{
std::string error_string;
- ui_options &moptions = mame_machine_manager::instance()->ui().options();
+ ui_options &moptions = ui().options();
std::string name(m_fonts[m_actual].first);
#ifdef UI_WINDOWS
@@ -311,7 +310,7 @@ void ui_menu_font_ui::handle()
std::vector<std::string> display_names;
display_names.reserve(m_fonts.size());
for (auto const &font : m_fonts) display_names.emplace_back(font.second);
- ui_menu::stack_push(global_alloc_clear<ui_menu_selector>(machine(), container, std::move(display_names), m_actual));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_selector>(ui(), container, std::move(display_names), m_actual));
changed = true;
}
break;
@@ -364,7 +363,7 @@ void ui_menu_font_ui::populate()
item_append(ui_menu_item_type::SEPARATOR);
- custombottom = customtop = mame_machine_manager::instance()->ui().get_line_height() + 3.0f * UI_BOX_TB_BORDER;
+ custombottom = customtop = ui().get_line_height() + 3.0f * UI_BOX_TB_BORDER;
}
//-------------------------------------------------
@@ -374,13 +373,12 @@ void ui_menu_font_ui::populate()
void ui_menu_font_ui::custom_render(void *selectedref, float top, float bottom, float origx1, float origy1, float origx2, float origy2)
{
float width;
- mame_ui_manager &mui = mame_machine_manager::instance()->ui();
// top text
std::string topbuf(_("UI Fonts Settings"));
- mui.draw_text_full(container, topbuf.c_str(), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_TRUNCATE,
- DRAW_NONE, ARGB_WHITE, ARGB_BLACK, &width, nullptr);
+ ui().draw_text_full(container, topbuf.c_str(), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_TRUNCATE,
+ DRAW_NONE, rgb_t::white, rgb_t::black, &width, nullptr);
width += 2 * UI_BOX_LR_BORDER;
float maxwidth = MAX(origx2 - origx1, width);
@@ -391,7 +389,7 @@ void ui_menu_font_ui::custom_render(void *selectedref, float top, float bottom,
float y2 = origy1 - UI_BOX_TB_BORDER;
// draw a box
- mui.draw_outlined_box(container, x1, y1, x2, y2, UI_GREEN_COLOR);
+ ui().draw_outlined_box(container, x1, y1, x2, y2, UI_GREEN_COLOR);
// take off the borders
x1 += UI_BOX_LR_BORDER;
@@ -399,15 +397,15 @@ void ui_menu_font_ui::custom_render(void *selectedref, float top, float bottom,
y1 += UI_BOX_TB_BORDER;
// draw the text within it
- mui.draw_text_full(container, topbuf.c_str(), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_TRUNCATE,
+ ui().draw_text_full(container, topbuf.c_str(), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_TRUNCATE,
DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr);
if ((FPTR)selectedref == INFOS_SIZE)
{
topbuf = _("Sample text - Lorem ipsum dolor sit amet, consectetur adipiscing elit.");
- mui.draw_text_full(container, topbuf.c_str(), 0.0f, 0.0f, 1.0f, JUSTIFY_LEFT, WRAP_NEVER,
- DRAW_NONE, ARGB_WHITE, ARGB_BLACK, &width, nullptr, m_info_size);
+ ui().draw_text_full(container, topbuf.c_str(), 0.0f, 0.0f, 1.0f, JUSTIFY_LEFT, WRAP_NEVER,
+ DRAW_NONE, rgb_t::white, rgb_t::black, &width, nullptr, m_info_size);
width += 2 * UI_BOX_LR_BORDER;
maxwidth = MAX(origx2 - origx1, width);
@@ -418,7 +416,7 @@ void ui_menu_font_ui::custom_render(void *selectedref, float top, float bottom,
y2 = origy2 + bottom;
// draw a box
- mui.draw_outlined_box(container, x1, y1, x2, y2, UI_GREEN_COLOR);
+ ui().draw_outlined_box(container, x1, y1, x2, y2, UI_GREEN_COLOR);
// take off the borders
x1 += UI_BOX_LR_BORDER;
@@ -426,7 +424,7 @@ void ui_menu_font_ui::custom_render(void *selectedref, float top, float bottom,
y1 += UI_BOX_TB_BORDER;
// draw the text within it
- mui.draw_text_full(container, topbuf.c_str(), x1, y1, x2 - x1, JUSTIFY_LEFT, WRAP_NEVER,
+ ui().draw_text_full(container, topbuf.c_str(), x1, y1, x2 - x1, JUSTIFY_LEFT, WRAP_NEVER,
DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr, m_info_size);
}
}
@@ -436,7 +434,7 @@ void ui_menu_font_ui::custom_render(void *selectedref, float top, float bottom,
//-------------------------------------------------
#define SET_COLOR_UI(var, opt) var[M##opt].color = opt; var[M##opt].option = OPTION_##opt
-ui_menu_colors_ui::ui_menu_colors_ui(running_machine &machine, render_container *container) : ui_menu(machine, container)
+ui_menu_colors_ui::ui_menu_colors_ui(mame_ui_manager &mui, render_container *container) : ui_menu(mui, container)
{
SET_COLOR_UI(m_color_table, UI_BACKGROUND_COLOR);
SET_COLOR_UI(m_color_table, UI_BORDER_COLOR);
@@ -466,7 +464,7 @@ ui_menu_colors_ui::~ui_menu_colors_ui()
for (int index = 1; index < MUI_RESTORE; index++)
{
dec_color = string_format("%x", (UINT32)m_color_table[index].color);
- mame_machine_manager::instance()->ui().options().set_value(m_color_table[index].option, dec_color.c_str(), OPTION_PRIORITY_CMDLINE, error_string);
+ ui().options().set_value(m_color_table[index].option, dec_color.c_str(), OPTION_PRIORITY_CMDLINE, error_string);
}
}
@@ -484,7 +482,7 @@ void ui_menu_colors_ui::handle()
if (m_event != nullptr && m_event->itemref != nullptr && m_event->iptkey == IPT_UI_SELECT)
{
if ((FPTR)m_event->itemref != MUI_RESTORE)
- ui_menu::stack_push(global_alloc_clear<ui_menu_rgb_ui>(machine(), container, &m_color_table[(FPTR)m_event->itemref].color, item[selected].text));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_rgb_ui>(ui(), container, &m_color_table[(FPTR)m_event->itemref].color, item[selected].text));
else
{
changed = true;
@@ -522,7 +520,7 @@ void ui_menu_colors_ui::populate()
item_append(ui_menu_item_type::SEPARATOR);
item_append(_("Restore originals colors"), nullptr, 0, (void *)(FPTR)MUI_RESTORE);
- custombottom = customtop = mame_machine_manager::instance()->ui().get_line_height() + 3.0f * UI_BOX_TB_BORDER;
+ custombottom = customtop = ui().get_line_height() + 3.0f * UI_BOX_TB_BORDER;
}
//-------------------------------------------------
@@ -532,14 +530,13 @@ void ui_menu_colors_ui::populate()
void ui_menu_colors_ui::custom_render(void *selectedref, float top, float bottom, float origx1, float origy1, float origx2, float origy2)
{
float width, maxwidth = origx2 - origx1;
- mame_ui_manager &mui = mame_machine_manager::instance()->ui();
- float line_height = mui.get_line_height();
+ float line_height = ui().get_line_height();
// top text
std::string topbuf(_("UI Colors Settings"));
- mui.draw_text_full(container, topbuf.c_str(), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_NEVER,
- DRAW_NONE, ARGB_WHITE, ARGB_BLACK, &width, nullptr);
+ ui().draw_text_full(container, topbuf.c_str(), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_NEVER,
+ DRAW_NONE, rgb_t::white, rgb_t::black, &width, nullptr);
width += 2 * UI_BOX_LR_BORDER;
maxwidth = MAX(maxwidth, width);
@@ -550,7 +547,7 @@ void ui_menu_colors_ui::custom_render(void *selectedref, float top, float bottom
float y2 = origy1 - UI_BOX_TB_BORDER;
// draw a box
- mui.draw_outlined_box(container, x1, y1, x2, y2, UI_GREEN_COLOR);
+ ui().draw_outlined_box(container, x1, y1, x2, y2, UI_GREEN_COLOR);
// take off the borders
x1 += UI_BOX_LR_BORDER;
@@ -558,7 +555,7 @@ void ui_menu_colors_ui::custom_render(void *selectedref, float top, float bottom
y1 += UI_BOX_TB_BORDER;
// draw the text within it
- mui.draw_text_full(container, topbuf.c_str(), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_NEVER,
+ ui().draw_text_full(container, topbuf.c_str(), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_NEVER,
DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr);
// bottom text
@@ -566,8 +563,8 @@ void ui_menu_colors_ui::custom_render(void *selectedref, float top, float bottom
std::string ui_select_text = machine().input().seq_name(machine().ioport().type_seq(IPT_UI_SELECT, 0, SEQ_TYPE_STANDARD));
topbuf = string_format(_("Double click or press %1$s to change the color value"), ui_select_text);
- mui.draw_text_full(container, topbuf.c_str(), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_NEVER,
- DRAW_NONE, ARGB_WHITE, ARGB_BLACK, &width, nullptr);
+ ui().draw_text_full(container, topbuf.c_str(), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_NEVER,
+ DRAW_NONE, rgb_t::white, rgb_t::black, &width, nullptr);
width += 2 * UI_BOX_LR_BORDER;
maxwidth = MAX(maxwidth, width);
@@ -578,7 +575,7 @@ void ui_menu_colors_ui::custom_render(void *selectedref, float top, float bottom
y2 = origy2 + bottom;
// draw a box
- mui.draw_outlined_box(container, x1, y1, x2, y2, UI_RED_COLOR);
+ ui().draw_outlined_box(container, x1, y1, x2, y2, UI_RED_COLOR);
// take off the borders
x1 += UI_BOX_LR_BORDER;
@@ -586,14 +583,14 @@ void ui_menu_colors_ui::custom_render(void *selectedref, float top, float bottom
y1 += UI_BOX_TB_BORDER;
// draw the text within it
- mui.draw_text_full(container, topbuf.c_str(), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_NEVER,
+ ui().draw_text_full(container, topbuf.c_str(), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_NEVER,
DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr);
// compute maxwidth
topbuf = _("Menu Preview");
- mui.draw_text_full(container, topbuf.c_str(), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_NEVER,
- DRAW_NONE, ARGB_WHITE, ARGB_BLACK, &width, nullptr);
+ ui().draw_text_full(container, topbuf.c_str(), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_NEVER,
+ DRAW_NONE, rgb_t::white, rgb_t::black, &width, nullptr);
maxwidth = width + 2.0f * UI_BOX_LR_BORDER;
std::string sampletxt[5];
@@ -606,8 +603,8 @@ void ui_menu_colors_ui::custom_render(void *selectedref, float top, float bottom
for (auto & elem: sampletxt)
{
- mui.draw_text_full(container, elem.c_str(), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_NEVER,
- DRAW_NONE, ARGB_WHITE, ARGB_BLACK, &width, nullptr);
+ ui().draw_text_full(container, elem.c_str(), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_NEVER,
+ DRAW_NONE, rgb_t::white, rgb_t::black, &width, nullptr);
width += 2 * UI_BOX_LR_BORDER;
maxwidth = MAX(maxwidth, width);
}
@@ -619,7 +616,7 @@ void ui_menu_colors_ui::custom_render(void *selectedref, float top, float bottom
y2 = y1 + bottom - UI_BOX_TB_BORDER;
// draw a box
- mui.draw_outlined_box(container, x1, y1, x2, y2, UI_GREEN_COLOR);
+ ui().draw_outlined_box(container, x1, y1, x2, y2, UI_GREEN_COLOR);
// take off the borders
x1 += UI_BOX_LR_BORDER;
@@ -628,7 +625,7 @@ void ui_menu_colors_ui::custom_render(void *selectedref, float top, float bottom
y2 -= UI_BOX_TB_BORDER;
// draw the text within it
- mui.draw_text_full(container, topbuf.c_str(), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_NEVER,
+ ui().draw_text_full(container, topbuf.c_str(), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_NEVER,
DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr);
// compute our bounds for menu preview
@@ -638,7 +635,7 @@ void ui_menu_colors_ui::custom_render(void *selectedref, float top, float bottom
y2 = y1 + 5.0f * line_height + 2.0f * UI_BOX_TB_BORDER;
// draw a box
- mui.draw_outlined_box(container, x1, y1, x2, y2, m_color_table[MUI_BACKGROUND_COLOR].color);
+ ui().draw_outlined_box(container, x1, y1, x2, y2, m_color_table[MUI_BACKGROUND_COLOR].color);
// take off the borders
x1 += UI_BOX_LR_BORDER;
@@ -646,29 +643,29 @@ void ui_menu_colors_ui::custom_render(void *selectedref, float top, float bottom
y1 += UI_BOX_TB_BORDER;
// draw normal text
- mui.draw_text_full(container, sampletxt[0].c_str(), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_NEVER,
+ ui().draw_text_full(container, sampletxt[0].c_str(), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_NEVER,
DRAW_NORMAL, m_color_table[MUI_TEXT_COLOR].color, m_color_table[MUI_TEXT_BG_COLOR].color, nullptr, nullptr);
y1 += line_height;
// draw subitem text
- mui.draw_text_full(container, sampletxt[1].c_str(), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_NEVER,
+ ui().draw_text_full(container, sampletxt[1].c_str(), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_NEVER,
DRAW_NORMAL, m_color_table[MUI_SUBITEM_COLOR].color, m_color_table[MUI_TEXT_BG_COLOR].color, nullptr, nullptr);
y1 += line_height;
// draw selected text
highlight(container, x1, y1, x2, y1 + line_height, m_color_table[MUI_SELECTED_BG_COLOR].color);
- mui.draw_text_full(container, sampletxt[2].c_str(), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_NEVER,
+ ui().draw_text_full(container, sampletxt[2].c_str(), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_NEVER,
DRAW_NORMAL, m_color_table[MUI_SELECTED_COLOR].color, m_color_table[MUI_SELECTED_BG_COLOR].color, nullptr, nullptr);
y1 += line_height;
// draw mouse over text
highlight(container, x1, y1, x2, y1 + line_height, m_color_table[MUI_MOUSEOVER_BG_COLOR].color);
- mui.draw_text_full(container, sampletxt[3].c_str(), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_NEVER,
+ ui().draw_text_full(container, sampletxt[3].c_str(), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_NEVER,
DRAW_NORMAL, m_color_table[MUI_MOUSEOVER_COLOR].color, m_color_table[MUI_MOUSEOVER_BG_COLOR].color, nullptr, nullptr);
y1 += line_height;
// draw clone text
- mui.draw_text_full(container, sampletxt[4].c_str(), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_NEVER,
+ ui().draw_text_full(container, sampletxt[4].c_str(), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_NEVER,
DRAW_NORMAL, m_color_table[MUI_CLONE_COLOR].color, m_color_table[MUI_TEXT_BG_COLOR].color, nullptr, nullptr);
}
@@ -688,7 +685,7 @@ void ui_menu_colors_ui::restore_colors()
// ctor
//-------------------------------------------------
-ui_menu_rgb_ui::ui_menu_rgb_ui(running_machine &machine, render_container *container, rgb_t *_color, std::string _title) : ui_menu(machine, container)
+ui_menu_rgb_ui::ui_menu_rgb_ui(mame_ui_manager &mui, render_container *container, rgb_t *_color, std::string _title) : ui_menu(mui, container)
{
m_color = _color;
m_key_active = false;
@@ -811,7 +808,7 @@ void ui_menu_rgb_ui::handle()
case PALETTE_CHOOSE:
if (m_event->iptkey == IPT_UI_SELECT)
- ui_menu::stack_push(global_alloc_clear<ui_menu_palette_sel>(machine(), container, *m_color));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_palette_sel>(ui(), container, *m_color));
break;
}
}
@@ -866,7 +863,7 @@ void ui_menu_rgb_ui::populate()
item_append(_("Choose from palette"), nullptr, 0, (void *)(FPTR)PALETTE_CHOOSE);
item_append(ui_menu_item_type::SEPARATOR);
- custombottom = customtop = mame_machine_manager::instance()->ui().get_line_height() + 3.0f * UI_BOX_TB_BORDER;
+ custombottom = customtop = ui().get_line_height() + 3.0f * UI_BOX_TB_BORDER;
}
//-------------------------------------------------
@@ -876,12 +873,11 @@ void ui_menu_rgb_ui::populate()
void ui_menu_rgb_ui::custom_render(void *selectedref, float top, float bottom, float origx1, float origy1, float origx2, float origy2)
{
float width, maxwidth = origx2 - origx1;
- mame_ui_manager &mui = mame_machine_manager::instance()->ui();
// top text
std::string topbuf = std::string(m_title).append(_(" - ARGB Settings"));
- mui.draw_text_full(container, topbuf.c_str(), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_NEVER,
- DRAW_NONE, ARGB_WHITE, ARGB_BLACK, &width, nullptr);
+ ui().draw_text_full(container, topbuf.c_str(), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_NEVER,
+ DRAW_NONE, rgb_t::white, rgb_t::black, &width, nullptr);
width += 2 * UI_BOX_LR_BORDER;
maxwidth = MAX(maxwidth, width);
@@ -892,7 +888,7 @@ void ui_menu_rgb_ui::custom_render(void *selectedref, float top, float bottom, f
float y2 = origy1 - UI_BOX_TB_BORDER;
// draw a box
- mui.draw_outlined_box(container, x1, y1, x2, y2, UI_GREEN_COLOR);
+ ui().draw_outlined_box(container, x1, y1, x2, y2, UI_GREEN_COLOR);
// take off the borders
x1 += UI_BOX_LR_BORDER;
@@ -900,13 +896,13 @@ void ui_menu_rgb_ui::custom_render(void *selectedref, float top, float bottom, f
y1 += UI_BOX_TB_BORDER;
// draw the text within it
- mui.draw_text_full(container, topbuf.c_str(), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_NEVER,
+ ui().draw_text_full(container, topbuf.c_str(), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_NEVER,
DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr);
std::string sampletxt(_("Color preview ="));
maxwidth = origx2 - origx1;
- mui.draw_text_full(container, sampletxt.c_str(), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_NEVER,
- DRAW_NONE, ARGB_WHITE, ARGB_BLACK, &width, nullptr);
+ ui().draw_text_full(container, sampletxt.c_str(), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_NEVER,
+ DRAW_NONE, rgb_t::white, rgb_t::black, &width, nullptr);
width += 2 * UI_BOX_LR_BORDER;
maxwidth = MAX(maxwidth, width);
@@ -917,7 +913,7 @@ void ui_menu_rgb_ui::custom_render(void *selectedref, float top, float bottom, f
y2 = origy2 + bottom;
// draw a box
- mui.draw_outlined_box(container, x1, y1, x2, y2, UI_RED_COLOR);
+ ui().draw_outlined_box(container, x1, y1, x2, y2, UI_RED_COLOR);
// take off the borders
x1 += UI_BOX_LR_BORDER;
@@ -925,15 +921,15 @@ void ui_menu_rgb_ui::custom_render(void *selectedref, float top, float bottom, f
y1 += UI_BOX_TB_BORDER;
// draw the normal text
- mui.draw_text_full(container, sampletxt.c_str(), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_NEVER,
- DRAW_NORMAL, ARGB_WHITE, ARGB_BLACK, nullptr, nullptr);
+ ui().draw_text_full(container, sampletxt.c_str(), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_NEVER,
+ DRAW_NORMAL, rgb_t::white, rgb_t::black, nullptr, nullptr);
float t_x2 = x1 - UI_BOX_LR_BORDER + maxwidth;
x1 = x2 + 2.0f * UI_BOX_LR_BORDER;
x2 = t_x2;
y1 -= UI_BOX_TB_BORDER;
- mui.draw_outlined_box(container, x1, y1, x2, y2, *m_color);
+ ui().draw_outlined_box(container, x1, y1, x2, y2, *m_color);
}
@@ -1015,8 +1011,8 @@ ui_menu_palette_sel::palcolor ui_menu_palette_sel::m_palette[] = {
// ctor
//-------------------------------------------------
-ui_menu_palette_sel::ui_menu_palette_sel(running_machine &machine, render_container *container, rgb_t &_color)
- : ui_menu(machine, container), m_original(_color)
+ui_menu_palette_sel::ui_menu_palette_sel(mame_ui_manager &mui, render_container *container, rgb_t &_color)
+ : ui_menu(mui, container), m_original(_color)
{
}
diff --git a/src/frontend/mame/ui/custui.h b/src/frontend/mame/ui/custui.h
index 0aeffca9c5b..ec271485f6c 100644
--- a/src/frontend/mame/ui/custui.h
+++ b/src/frontend/mame/ui/custui.h
@@ -20,7 +20,7 @@
class ui_menu_custom_ui : public ui_menu
{
public:
- ui_menu_custom_ui(running_machine &machine, render_container *container);
+ ui_menu_custom_ui(mame_ui_manager &mui, render_container *container);
virtual ~ui_menu_custom_ui();
virtual void populate() override;
virtual void handle() override;
@@ -46,7 +46,7 @@ private:
class ui_menu_font_ui : public ui_menu
{
public:
- ui_menu_font_ui(running_machine &machine, render_container *container);
+ ui_menu_font_ui(mame_ui_manager &mui, render_container *container);
virtual ~ui_menu_font_ui();
virtual void populate() override;
virtual void handle() override;
@@ -81,7 +81,7 @@ private:
class ui_menu_colors_ui : public ui_menu
{
public:
- ui_menu_colors_ui(running_machine &machine, render_container *container);
+ ui_menu_colors_ui(mame_ui_manager &mui, render_container *container);
virtual ~ui_menu_colors_ui();
virtual void populate() override;
virtual void handle() override;
@@ -126,7 +126,7 @@ private:
class ui_menu_rgb_ui : public ui_menu
{
public:
- ui_menu_rgb_ui(running_machine &machine, render_container *container, rgb_t *_color, std::string _title);
+ ui_menu_rgb_ui(mame_ui_manager &mui, render_container *container, rgb_t *_color, std::string _title);
virtual ~ui_menu_rgb_ui();
virtual void populate() override;
virtual void handle() override;
@@ -158,7 +158,7 @@ private:
class ui_menu_palette_sel : public ui_menu
{
public:
- ui_menu_palette_sel(running_machine &machine, render_container *container, rgb_t &_color);
+ ui_menu_palette_sel(mame_ui_manager &mui, render_container *container, rgb_t &_color);
virtual ~ui_menu_palette_sel();
virtual void populate() override;
virtual void handle() override;
diff --git a/src/frontend/mame/ui/datfile.cpp b/src/frontend/mame/ui/datfile.cpp
index 2264a421b9e..921784de75c 100644
--- a/src/frontend/mame/ui/datfile.cpp
+++ b/src/frontend/mame/ui/datfile.cpp
@@ -10,7 +10,7 @@
#include "emu.h"
#include "drivenum.h"
-#include "ui/ui.h"
+#include "ui/moptions.h"
#include "ui/datfile.h"
#include "ui/utils.h"
@@ -58,9 +58,9 @@ bool datfile_manager::first_run = true;
//-------------------------------------------------
// ctor
//-------------------------------------------------
-datfile_manager::datfile_manager(running_machine &machine) : m_machine(machine)
+datfile_manager::datfile_manager(running_machine &machine, ui_options &moptions) : m_machine(machine), m_options(moptions)
{
- if (mame_machine_manager::instance()->ui().options().enabled_dats() && first_run)
+ if (m_options.enabled_dats() && first_run)
{
first_run = false;
if (parseopen("mameinfo.dat"))
@@ -577,7 +577,7 @@ bool datfile_manager::parseopen(const char *filename)
// MAME core file parsing functions fail in recognizing UNICODE chars in UTF-8 without BOM,
// so it's better and faster use standard C fileio functions.
- emu_file file(mame_machine_manager::instance()->ui().options().history_path(), OPEN_FLAG_READ);
+ emu_file file(m_options.history_path(), OPEN_FLAG_READ);
if (file.open(filename) != osd_file::error::NONE)
return false;
diff --git a/src/frontend/mame/ui/datfile.h b/src/frontend/mame/ui/datfile.h
index 27bb8094704..dca01570375 100644
--- a/src/frontend/mame/ui/datfile.h
+++ b/src/frontend/mame/ui/datfile.h
@@ -13,6 +13,8 @@
#ifndef __UI_DATFILE_H__
#define __UI_DATFILE_H__
+class ui_options;
+
//-------------------------------------------------
// Datafile Manager
//-------------------------------------------------
@@ -20,7 +22,7 @@ class datfile_manager
{
public:
// construction/destruction
- datfile_manager(running_machine &machine);
+ datfile_manager(running_machine &machine, ui_options &moptions);
// getters
running_machine &machine() const { return m_machine; }
@@ -86,6 +88,7 @@ private:
// internal state
running_machine &m_machine; // reference to our machine
+ ui_options &m_options;
std::string m_fullpath;
static std::string m_history_rev, m_mame_rev, m_mess_rev, m_sysinfo_rev, m_story_rev, m_ginit_rev;
FILE *fp = nullptr;
diff --git a/src/frontend/mame/ui/datmenu.cpp b/src/frontend/mame/ui/datmenu.cpp
index 188e938acff..7c6d8079780 100644
--- a/src/frontend/mame/ui/datmenu.cpp
+++ b/src/frontend/mame/ui/datmenu.cpp
@@ -9,6 +9,7 @@
*********************************************************************/
#include "emu.h"
+#include "mame.h"
#include "ui/ui.h"
#include "ui/menu.h"
#include "rendfont.h"
@@ -21,14 +22,14 @@
// ctor / dtor
//-------------------------------------------------
-ui_menu_dats_view::ui_menu_dats_view(running_machine &machine, render_container *container, const game_driver *driver)
- : ui_menu(machine, container)
+ui_menu_dats_view::ui_menu_dats_view(mame_ui_manager &mui, render_container *container, const game_driver *driver)
+ : ui_menu(mui, container)
, m_actual(0)
- , m_driver((driver == nullptr) ? &machine.system() : driver)
+ , m_driver((driver == nullptr) ? &mui.machine().system() : driver)
, m_issoft(false)
{
- for (device_image_interface &image : image_interface_iterator(machine.root_device()))
+ for (device_image_interface &image : image_interface_iterator(mui.machine().root_device()))
{
if (image.filename())
{
@@ -46,10 +47,10 @@ ui_menu_dats_view::ui_menu_dats_view(running_machine &machine, render_container
// ctor
//-------------------------------------------------
-ui_menu_dats_view::ui_menu_dats_view(running_machine &machine, render_container *container, ui_software_info *swinfo, const game_driver *driver)
- : ui_menu(machine, container)
+ui_menu_dats_view::ui_menu_dats_view(mame_ui_manager &mui, render_container *container, ui_software_info *swinfo, const game_driver *driver)
+ : ui_menu(mui, container)
, m_actual(0)
- , m_driver((driver == nullptr) ? &machine.system() : driver)
+ , m_driver((driver == nullptr) ? &mui.machine().system() : driver)
, m_swinfo(swinfo)
, m_list(swinfo->listname)
, m_short(swinfo->shortname)
@@ -108,8 +109,8 @@ void ui_menu_dats_view::populate()
(m_issoft == true) ? get_data_sw() : get_data();
item_append(MENU_SEPARATOR_ITEM, nullptr, (MENU_FLAG_UI_DATS | MENU_FLAG_LEFT_ARROW | MENU_FLAG_RIGHT_ARROW), nullptr);
- customtop = 2.0f * mame_machine_manager::instance()->ui().get_line_height() + 4.0f * UI_BOX_TB_BORDER;
- custombottom = mame_machine_manager::instance()->ui().get_line_height() + 3.0f * UI_BOX_TB_BORDER;
+ customtop = 2.0f * ui().get_line_height() + 4.0f * UI_BOX_TB_BORDER;
+ custombottom = ui().get_line_height() + 3.0f * UI_BOX_TB_BORDER;
if (!paused)
machine().resume();
@@ -121,13 +122,12 @@ void ui_menu_dats_view::populate()
void ui_menu_dats_view::custom_render(void *selectedref, float top, float bottom, float origx1, float origy1, float origx2, float origy2)
{
- mame_ui_manager &mui = mame_machine_manager::instance()->ui();
float maxwidth = origx2 - origx1;
float width;
std::string driver = (m_issoft == true) ? m_swinfo->longname : m_driver->description;
- mui.draw_text_full(container, driver.c_str(), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_TRUNCATE,
- DRAW_NONE, ARGB_WHITE, ARGB_BLACK, &width, nullptr);
+ ui().draw_text_full(container, driver.c_str(), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_TRUNCATE,
+ DRAW_NONE, rgb_t::white, rgb_t::black, &width, nullptr);
width += 2 * UI_BOX_LR_BORDER;
maxwidth = MAX(maxwidth, width);
@@ -135,24 +135,24 @@ void ui_menu_dats_view::custom_render(void *selectedref, float top, float bottom
float x1 = 0.5f - 0.5f * maxwidth;
float x2 = x1 + maxwidth;
float y1 = origy1 - top;
- float y2 = origy1 - 2.0f * UI_BOX_TB_BORDER - mui.get_line_height();
+ float y2 = origy1 - 2.0f * UI_BOX_TB_BORDER - ui().get_line_height();
// draw a box
- mui.draw_outlined_box(container, x1, y1, x2, y2, UI_GREEN_COLOR);
+ ui().draw_outlined_box(container, x1, y1, x2, y2, UI_GREEN_COLOR);
// take off the borders
x1 += UI_BOX_LR_BORDER;
x2 -= UI_BOX_LR_BORDER;
y1 += UI_BOX_TB_BORDER;
- mui.draw_text_full(container, driver.c_str(), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_NEVER,
+ ui().draw_text_full(container, driver.c_str(), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_NEVER,
DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr);
maxwidth = 0;
for (auto & elem : m_items_list)
{
- mui.draw_text_full(container, elem.label.c_str(), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_NEVER,
- DRAW_NONE, ARGB_WHITE, ARGB_BLACK, &width, nullptr);
+ ui().draw_text_full(container, elem.label.c_str(), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_NEVER,
+ DRAW_NONE, rgb_t::white, rgb_t::black, &width, nullptr);
maxwidth += width;
}
@@ -162,10 +162,10 @@ void ui_menu_dats_view::custom_render(void *selectedref, float top, float bottom
x1 -= UI_BOX_LR_BORDER;
x2 += UI_BOX_LR_BORDER;
y1 = y2 + UI_BOX_TB_BORDER;
- y2 += mui.get_line_height() + 2.0f * UI_BOX_TB_BORDER;
+ y2 += ui().get_line_height() + 2.0f * UI_BOX_TB_BORDER;
// draw a box
- mui.draw_outlined_box(container, x1, y1, x2, y2, UI_BACKGROUND_COLOR);
+ ui().draw_outlined_box(container, x1, y1, x2, y2, UI_BACKGROUND_COLOR);
// take off the borders
x2 -= UI_BOX_LR_BORDER;
@@ -178,13 +178,13 @@ void ui_menu_dats_view::custom_render(void *selectedref, float top, float bottom
x1 += space;
rgb_t fcolor = (m_actual == x) ? rgb_t(0xff, 0xff, 0xff, 0x00) : UI_TEXT_COLOR;
rgb_t bcolor = (m_actual == x) ? rgb_t(0xff, 0xff, 0xff, 0xff) : UI_TEXT_BG_COLOR;
- mui.draw_text_full(container, elem.label.c_str(), x1, y1, 1.0f, JUSTIFY_LEFT, WRAP_NEVER, DRAW_NONE, fcolor, bcolor, &width, nullptr);
+ ui().draw_text_full(container, elem.label.c_str(), x1, y1, 1.0f, JUSTIFY_LEFT, WRAP_NEVER, DRAW_NONE, fcolor, bcolor, &width, nullptr);
if (bcolor != UI_TEXT_BG_COLOR)
- mui.draw_textured_box(container, x1 - (space / 2), y1, x1 + width + (space / 2), y2, bcolor, rgb_t(255, 43, 43, 43),
+ ui().draw_textured_box(container, x1 - (space / 2), y1, x1 + width + (space / 2), y2, bcolor, rgb_t(255, 43, 43, 43),
hilight_main_texture, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA) | PRIMFLAG_TEXWRAP(TRUE));
- mui.draw_text_full(container, elem.label.c_str(), x1, y1, 1.0f, JUSTIFY_LEFT, WRAP_NEVER, DRAW_NORMAL, fcolor, bcolor, &width, nullptr);
+ ui().draw_text_full(container, elem.label.c_str(), x1, y1, 1.0f, JUSTIFY_LEFT, WRAP_NEVER, DRAW_NORMAL, fcolor, bcolor, &width, nullptr);
x1 += width + space;
++x;
}
@@ -192,7 +192,7 @@ void ui_menu_dats_view::custom_render(void *selectedref, float top, float bottom
// bottom
std::string revision;
revision.assign(_("Revision: ")).append(m_items_list[m_actual].revision);
- mui.draw_text_full(container, revision.c_str(), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_TRUNCATE, DRAW_NONE, ARGB_WHITE, ARGB_BLACK, &width, nullptr);
+ ui().draw_text_full(container, revision.c_str(), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_TRUNCATE, DRAW_NONE, rgb_t::white, rgb_t::black, &width, nullptr);
width += 2 * UI_BOX_LR_BORDER;
maxwidth = MAX(origx2 - origx1, width);
@@ -203,7 +203,7 @@ void ui_menu_dats_view::custom_render(void *selectedref, float top, float bottom
y2 = origy2 + bottom;
// draw a box
- mui.draw_outlined_box(container, x1, y1, x2, y2, UI_GREEN_COLOR);
+ ui().draw_outlined_box(container, x1, y1, x2, y2, UI_GREEN_COLOR);
// take off the borders
x1 += UI_BOX_LR_BORDER;
@@ -211,7 +211,7 @@ void ui_menu_dats_view::custom_render(void *selectedref, float top, float bottom
y1 += UI_BOX_TB_BORDER;
// draw the text within it
- mui.draw_text_full(container, revision.c_str(), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_TRUNCATE,
+ ui().draw_text_full(container, revision.c_str(), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_TRUNCATE,
DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr);
}
@@ -244,7 +244,7 @@ void ui_menu_dats_view::get_data()
else
mame_machine_manager::instance()->datfile().load_data_info(m_driver, buffer, m_items_list[m_actual].option);
- int lines = mame_machine_manager::instance()->ui().wrap_text(container, buffer.c_str(), 0.0f, 0.0f, 1.0f - (4.0f * UI_BOX_LR_BORDER), xstart, xend);
+ int lines = ui().wrap_text(container, buffer.c_str(), 0.0f, 0.0f, 1.0f - (4.0f * UI_BOX_LR_BORDER), xstart, xend);
for (int x = 0; x < lines; ++x)
{
std::string tempbuf(buffer.substr(xstart[x], xend[x] - xstart[x]));
@@ -267,7 +267,7 @@ void ui_menu_dats_view::get_data_sw()
mame_machine_manager::instance()->datfile().load_software_info(m_swinfo->listname, buffer, m_swinfo->shortname, m_swinfo->parentname);
}
- int lines = mame_machine_manager::instance()->ui().wrap_text(container, buffer.c_str(), 0.0f, 0.0f, 1.0f - (4.0f * UI_BOX_LR_BORDER), xstart, xend);
+ int lines = ui().wrap_text(container, buffer.c_str(), 0.0f, 0.0f, 1.0f - (4.0f * UI_BOX_LR_BORDER), xstart, xend);
for (int x = 0; x < lines; ++x)
{
std::string tempbuf(buffer.substr(xstart[x], xend[x] - xstart[x]));
diff --git a/src/frontend/mame/ui/datmenu.h b/src/frontend/mame/ui/datmenu.h
index 10de3894816..4592bca5b4b 100644
--- a/src/frontend/mame/ui/datmenu.h
+++ b/src/frontend/mame/ui/datmenu.h
@@ -23,8 +23,8 @@ struct ui_software_info;
class ui_menu_dats_view : public ui_menu
{
public:
- ui_menu_dats_view(running_machine &machine, render_container *container, ui_software_info *swinfo, const game_driver *driver = nullptr);
- ui_menu_dats_view(running_machine &machine, render_container *container, const game_driver *driver = nullptr);
+ ui_menu_dats_view(mame_ui_manager &mui, render_container *container, ui_software_info *swinfo, const game_driver *driver = nullptr);
+ ui_menu_dats_view(mame_ui_manager &mui, render_container *container, const game_driver *driver = nullptr);
virtual ~ui_menu_dats_view();
virtual void populate() override;
virtual void handle() override;
diff --git a/src/frontend/mame/ui/devctrl.h b/src/frontend/mame/ui/devctrl.h
index 44cdb6d8ede..252981da1bd 100644
--- a/src/frontend/mame/ui/devctrl.h
+++ b/src/frontend/mame/ui/devctrl.h
@@ -27,7 +27,7 @@ template<class _DeviceType>
class ui_menu_device_control : public ui_menu
{
public:
- ui_menu_device_control(running_machine &machine, render_container *container, _DeviceType *device);
+ ui_menu_device_control(mame_ui_manager &mui, render_container *container, _DeviceType *device);
protected:
_DeviceType *current_device() { return m_device; }
@@ -53,10 +53,10 @@ private:
//-------------------------------------------------
template<class _DeviceType>
-ui_menu_device_control<_DeviceType>::ui_menu_device_control(running_machine &machine, render_container *container, _DeviceType *device)
- : ui_menu(machine, container)
+ui_menu_device_control<_DeviceType>::ui_menu_device_control(mame_ui_manager &mui, render_container *container, _DeviceType *device)
+ : ui_menu(mui, container)
{
- iterator iter(machine.root_device());
+ iterator iter(mui.machine().root_device());
m_count = iter.count();
m_device = device ? device : iter.first();
}
diff --git a/src/frontend/mame/ui/devopt.cpp b/src/frontend/mame/ui/devopt.cpp
index de145a41b4a..3ebc5974506 100644
--- a/src/frontend/mame/ui/devopt.cpp
+++ b/src/frontend/mame/ui/devopt.cpp
@@ -18,7 +18,7 @@
menu
-------------------------------------------------*/
-ui_menu_device_config::ui_menu_device_config(running_machine &machine, render_container *container, device_slot_interface *slot, device_slot_option *option) : ui_menu(machine, container)
+ui_menu_device_config::ui_menu_device_config(mame_ui_manager &mui, render_container *container, device_slot_interface *slot, device_slot_option *option) : ui_menu(mui, container)
{
m_option = option;
m_owner = slot;
diff --git a/src/frontend/mame/ui/devopt.h b/src/frontend/mame/ui/devopt.h
index 56916aebb54..57233b4d216 100644
--- a/src/frontend/mame/ui/devopt.h
+++ b/src/frontend/mame/ui/devopt.h
@@ -15,7 +15,7 @@
class ui_menu_device_config : public ui_menu {
public:
- ui_menu_device_config(running_machine &machine, render_container *container, device_slot_interface *slot, device_slot_option *option);
+ ui_menu_device_config(mame_ui_manager &mui, render_container *container, device_slot_interface *slot, device_slot_option *option);
virtual ~ui_menu_device_config();
virtual void populate() override;
virtual void handle() override;
diff --git a/src/frontend/mame/ui/dirmenu.cpp b/src/frontend/mame/ui/dirmenu.cpp
index 9ec3205f134..4391ee440d0 100644
--- a/src/frontend/mame/ui/dirmenu.cpp
+++ b/src/frontend/mame/ui/dirmenu.cpp
@@ -10,6 +10,7 @@
#include "emu.h"
#include "emuopts.h"
+#include "mame.h"
#include "ui/ui.h"
#include "ui/menu.h"
#include "ui/dirmenu.h"
@@ -67,13 +68,13 @@ static const folders_entry s_folders[] =
// ctor / dtor
//-------------------------------------------------
-ui_menu_directory::ui_menu_directory(running_machine &machine, render_container *container) : ui_menu(machine, container)
+ui_menu_directory::ui_menu_directory(mame_ui_manager &mui, render_container *container) : ui_menu(mui, container)
{
}
ui_menu_directory::~ui_menu_directory()
{
- save_ui_options(machine());
+ ui().save_ui_options();
ui_globals::reset = true;
mame_machine_manager::instance()->datfile().reset_run();
}
@@ -88,7 +89,7 @@ void ui_menu_directory::handle()
const ui_menu_event *m_event = process(0);
if (m_event != nullptr && m_event->itemref != nullptr && m_event->iptkey == IPT_UI_SELECT)
- ui_menu::stack_push(global_alloc_clear<ui_menu_display_actual>(machine(), container, selected));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_display_actual>(ui(), container, selected));
}
//-------------------------------------------------
@@ -101,7 +102,7 @@ void ui_menu_directory::populate()
item_append(_(elem.name), nullptr, 0, (void *)(FPTR)elem.action);
item_append(ui_menu_item_type::SEPARATOR);
- customtop = mame_machine_manager::instance()->ui().get_line_height() + 3.0f * UI_BOX_TB_BORDER;
+ customtop = ui().get_line_height() + 3.0f * UI_BOX_TB_BORDER;
}
//-------------------------------------------------
@@ -111,11 +112,10 @@ void ui_menu_directory::populate()
void ui_menu_directory::custom_render(void *selectedref, float top, float bottom, float origx1, float origy1, float origx2, float origy2)
{
float width;
- mame_ui_manager &mui = mame_machine_manager::instance()->ui();
// get the size of the text
- mui.draw_text_full(container, _("Folders Setup"), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_TRUNCATE,
- DRAW_NONE, ARGB_WHITE, ARGB_BLACK, &width, nullptr);
+ ui().draw_text_full(container, _("Folders Setup"), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_TRUNCATE,
+ DRAW_NONE, rgb_t::white, rgb_t::black, &width, nullptr);
width += (2.0f * UI_BOX_LR_BORDER) + 0.01f;
float maxwidth = MAX(width, origx2 - origx1);
@@ -126,7 +126,7 @@ void ui_menu_directory::custom_render(void *selectedref, float top, float bottom
float y2 = origy1 - UI_BOX_TB_BORDER;
// draw a box
- mui.draw_outlined_box(container, x1, y1, x2, y2, UI_GREEN_COLOR);
+ ui().draw_outlined_box(container, x1, y1, x2, y2, UI_GREEN_COLOR);
// take off the borders
x1 += UI_BOX_LR_BORDER;
@@ -134,7 +134,7 @@ void ui_menu_directory::custom_render(void *selectedref, float top, float bottom
y1 += UI_BOX_TB_BORDER;
// draw the text within it
- mui.draw_text_full(container, _("Folders Setup"), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_TRUNCATE,
+ ui().draw_text_full(container, _("Folders Setup"), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_TRUNCATE,
DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr);
}
@@ -145,8 +145,8 @@ void ui_menu_directory::custom_render(void *selectedref, float top, float bottom
// ctor / dtor
//-------------------------------------------------
-ui_menu_display_actual::ui_menu_display_actual(running_machine &machine, render_container *container, int ref)
- : ui_menu(machine, container), m_ref(ref)
+ui_menu_display_actual::ui_menu_display_actual(mame_ui_manager &mui, render_container *container, int ref)
+ : ui_menu(mui, container), m_ref(ref)
{
}
@@ -166,11 +166,11 @@ void ui_menu_display_actual::handle()
switch ((FPTR)m_event->itemref)
{
case REMOVE:
- ui_menu::stack_push(global_alloc_clear<ui_menu_remove_folder>(machine(), container, m_ref));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_remove_folder>(ui(), container, m_ref));
break;
case ADD_CHANGE:
- ui_menu::stack_push(global_alloc_clear<ui_menu_add_change_folder>(machine(), container, m_ref));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_add_change_folder>(ui(), container, m_ref));
break;
}
}
@@ -182,8 +182,8 @@ void ui_menu_display_actual::handle()
void ui_menu_display_actual::populate()
{
m_tempbuf = string_format(_("Current %1$s Folders"), _(s_folders[m_ref].name));
- if (mame_machine_manager::instance()->ui().options().exists(s_folders[m_ref].option))
- m_searchpath.assign(mame_machine_manager::instance()->ui().options().value(s_folders[m_ref].option));
+ if (ui().options().exists(s_folders[m_ref].option))
+ m_searchpath.assign(ui().options().value(s_folders[m_ref].option));
else
m_searchpath.assign(machine().options().value(s_folders[m_ref].option));
@@ -199,7 +199,7 @@ void ui_menu_display_actual::populate()
item_append(_("Remove Folder"), nullptr, 0, (void *)REMOVE);
item_append(ui_menu_item_type::SEPARATOR);
- customtop = (m_folders.size() + 1) * mame_machine_manager::instance()->ui().get_line_height() + 6.0f * UI_BOX_TB_BORDER;
+ customtop = (m_folders.size() + 1) * ui().get_line_height() + 6.0f * UI_BOX_TB_BORDER;
}
//-------------------------------------------------
@@ -209,18 +209,17 @@ void ui_menu_display_actual::populate()
void ui_menu_display_actual::custom_render(void *selectedref, float top, float bottom, float origx1, float origy1, float origx2, float origy2)
{
float width, maxwidth = origx2 - origx1;
- mame_ui_manager &mui = mame_machine_manager::instance()->ui();
- float lineh = mui.get_line_height();
+ float lineh = ui().get_line_height();
for (auto & elem : m_folders)
{
- mui.draw_text_full(container, elem.c_str(), 0.0f, 0.0f, 1.0f, JUSTIFY_LEFT, WRAP_TRUNCATE, DRAW_NONE, ARGB_WHITE, ARGB_BLACK, &width, nullptr);
+ ui().draw_text_full(container, elem.c_str(), 0.0f, 0.0f, 1.0f, JUSTIFY_LEFT, WRAP_TRUNCATE, DRAW_NONE, rgb_t::white, rgb_t::black, &width, nullptr);
width += (2.0f * UI_BOX_LR_BORDER) + 0.01f;
maxwidth = MAX(maxwidth, width);
}
// get the size of the text
- mui.draw_text_full(container, m_tempbuf.c_str(), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_TRUNCATE, DRAW_NONE, ARGB_WHITE, ARGB_BLACK, &width, nullptr);
+ ui().draw_text_full(container, m_tempbuf.c_str(), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_TRUNCATE, DRAW_NONE, rgb_t::white, rgb_t::black, &width, nullptr);
width += (2.0f * UI_BOX_LR_BORDER) + 0.01f;
maxwidth = MAX(width, maxwidth);
@@ -231,7 +230,7 @@ void ui_menu_display_actual::custom_render(void *selectedref, float top, float b
float y2 = y1 + lineh + 2.0f * UI_BOX_TB_BORDER;
// draw a box
- mui.draw_outlined_box(container, x1, y1, x2, y2, UI_GREEN_COLOR);
+ ui().draw_outlined_box(container, x1, y1, x2, y2, UI_GREEN_COLOR);
// take off the borders
x1 += UI_BOX_LR_BORDER;
@@ -239,7 +238,7 @@ void ui_menu_display_actual::custom_render(void *selectedref, float top, float b
y1 += UI_BOX_TB_BORDER;
// draw the text within it
- mui.draw_text_full(container, m_tempbuf.c_str(), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_TRUNCATE,
+ ui().draw_text_full(container, m_tempbuf.c_str(), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_TRUNCATE,
DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr);
// compute our bounds
@@ -249,7 +248,7 @@ void ui_menu_display_actual::custom_render(void *selectedref, float top, float b
y2 = origy1 - UI_BOX_TB_BORDER;
// draw a box
- mui.draw_outlined_box(container, x1, y1, x2, y2, UI_BACKGROUND_COLOR);
+ ui().draw_outlined_box(container, x1, y1, x2, y2, UI_BACKGROUND_COLOR);
// take off the borders
x1 += UI_BOX_LR_BORDER;
@@ -259,7 +258,7 @@ void ui_menu_display_actual::custom_render(void *selectedref, float top, float b
// draw the text within it
for (auto & elem : m_folders)
{
- mui.draw_text_full(container, elem.c_str(), x1, y1, x2 - x1, JUSTIFY_LEFT, WRAP_TRUNCATE,
+ ui().draw_text_full(container, elem.c_str(), x1, y1, x2 - x1, JUSTIFY_LEFT, WRAP_TRUNCATE,
DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr);
y1 += lineh;
}
@@ -273,7 +272,7 @@ MENU ADD FOLDER
// ctor / dtor
//-------------------------------------------------
-ui_menu_add_change_folder::ui_menu_add_change_folder(running_machine &machine, render_container *container, int ref) : ui_menu(machine, container)
+ui_menu_add_change_folder::ui_menu_add_change_folder(mame_ui_manager &mui, render_container *container, int ref) : ui_menu(mui, container)
{
m_ref = ref;
m_change = (s_folders[ref].action == CHANGE);
@@ -283,10 +282,10 @@ ui_menu_add_change_folder::ui_menu_add_change_folder(running_machine &machine, r
osd_get_full_path(m_current_path, ".");
std::string searchpath;
- if (mame_machine_manager::instance()->ui().options().exists(s_folders[m_ref].option))
- searchpath = mame_machine_manager::instance()->ui().options().value(s_folders[m_ref].option);
+ if (mui.options().exists(s_folders[m_ref].option))
+ searchpath = mui.options().value(s_folders[m_ref].option);
else
- searchpath = machine.options().value(s_folders[m_ref].option);
+ searchpath = mui.machine().options().value(s_folders[m_ref].option);
path_iterator path(searchpath.c_str());
std::string curpath;
@@ -365,8 +364,8 @@ void ui_menu_add_change_folder::handle()
std::string error_string;
if (m_change)
{
- if (mame_machine_manager::instance()->ui().options().exists(s_folders[m_ref].option))
- mame_machine_manager::instance()->ui().options().set_value(s_folders[m_ref].option, m_current_path.c_str(), OPTION_PRIORITY_CMDLINE, error_string);
+ if (ui().options().exists(s_folders[m_ref].option))
+ ui().options().set_value(s_folders[m_ref].option, m_current_path.c_str(), OPTION_PRIORITY_CMDLINE, error_string);
else if (strcmp(machine().options().value(s_folders[m_ref].option), m_current_path.c_str()) != 0)
{
machine().options().set_value(s_folders[m_ref].option, m_current_path.c_str(), OPTION_PRIORITY_CMDLINE, error_string);
@@ -385,8 +384,8 @@ void ui_menu_add_change_folder::handle()
tmppath.append(";");
}
- if (mame_machine_manager::instance()->ui().options().exists(s_folders[m_ref].option))
- mame_machine_manager::instance()->ui().options().set_value(s_folders[m_ref].option, tmppath.c_str(), OPTION_PRIORITY_CMDLINE, error_string);
+ if (ui().options().exists(s_folders[m_ref].option))
+ ui().options().set_value(s_folders[m_ref].option, tmppath.c_str(), OPTION_PRIORITY_CMDLINE, error_string);
else if (strcmp(machine().options().value(s_folders[m_ref].option), tmppath.c_str()) != 0)
{
machine().options().set_value(s_folders[m_ref].option, tmppath.c_str(), OPTION_PRIORITY_CMDLINE, error_string);
@@ -479,8 +478,8 @@ void ui_menu_add_change_folder::populate()
item_append(ui_menu_item_type::SEPARATOR);
// configure the custom rendering
- customtop = 2.0f * mame_machine_manager::instance()->ui().get_line_height() + 3.0f * UI_BOX_TB_BORDER;
- custombottom = 1.0f * mame_machine_manager::instance()->ui().get_line_height() + 3.0f * UI_BOX_TB_BORDER;
+ customtop = 2.0f * ui().get_line_height() + 3.0f * UI_BOX_TB_BORDER;
+ custombottom = 1.0f * ui().get_line_height() + 3.0f * UI_BOX_TB_BORDER;
}
//-------------------------------------------------
@@ -490,7 +489,6 @@ void ui_menu_add_change_folder::populate()
void ui_menu_add_change_folder::custom_render(void *selectedref, float top, float bottom, float origx1, float origy1, float origx2, float origy2)
{
float width, maxwidth = origx2 - origx1;
- mame_ui_manager &mui = mame_machine_manager::instance()->ui();
std::string tempbuf[2];
tempbuf[0] = string_format(
(m_change)
@@ -503,8 +501,8 @@ void ui_menu_add_change_folder::custom_render(void *selectedref, float top, floa
// get the size of the text
for (auto & elem : tempbuf)
{
- mui.draw_text_full(container, elem.c_str(), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_NEVER,
- DRAW_NONE, ARGB_WHITE, ARGB_BLACK, &width, nullptr);
+ ui().draw_text_full(container, elem.c_str(), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_NEVER,
+ DRAW_NONE, rgb_t::white, rgb_t::black, &width, nullptr);
width += (2.0f * UI_BOX_LR_BORDER) + 0.01f;
maxwidth = MAX(width, maxwidth);
}
@@ -516,7 +514,7 @@ void ui_menu_add_change_folder::custom_render(void *selectedref, float top, floa
float y2 = origy1 - UI_BOX_TB_BORDER;
// draw a box
- mui.draw_outlined_box(container, x1, y1, x2, y2, UI_GREEN_COLOR);
+ ui().draw_outlined_box(container, x1, y1, x2, y2, UI_GREEN_COLOR);
// take off the borders
x1 += UI_BOX_LR_BORDER;
@@ -526,16 +524,16 @@ void ui_menu_add_change_folder::custom_render(void *selectedref, float top, floa
// draw the text within it
for (auto & elem : tempbuf)
{
- mui.draw_text_full(container, elem.c_str(), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_NEVER,
+ ui().draw_text_full(container, elem.c_str(), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_NEVER,
DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr);
- y1 = y1 + mui.get_line_height();
+ y1 = y1 + ui().get_line_height();
}
// bottom text
tempbuf[0] = _("Press TAB to set");
- mui.draw_text_full(container, tempbuf[0].c_str(), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_TRUNCATE,
- DRAW_NONE, ARGB_WHITE, ARGB_BLACK, &width, nullptr);
+ ui().draw_text_full(container, tempbuf[0].c_str(), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_TRUNCATE,
+ DRAW_NONE, rgb_t::white, rgb_t::black, &width, nullptr);
width += 2 * UI_BOX_LR_BORDER;
maxwidth = MAX(maxwidth, width);
@@ -546,7 +544,7 @@ void ui_menu_add_change_folder::custom_render(void *selectedref, float top, floa
y2 = origy2 + bottom;
// draw a box
- mui.draw_outlined_box(container, x1, y1, x2, y2, UI_RED_COLOR);
+ ui().draw_outlined_box(container, x1, y1, x2, y2, UI_RED_COLOR);
// take off the borders
x1 += UI_BOX_LR_BORDER;
@@ -554,7 +552,7 @@ void ui_menu_add_change_folder::custom_render(void *selectedref, float top, floa
y1 += UI_BOX_TB_BORDER;
// draw the text within it
- mui.draw_text_full(container, tempbuf[0].c_str(), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_TRUNCATE,
+ ui().draw_text_full(container, tempbuf[0].c_str(), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_TRUNCATE,
DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr);
}
@@ -566,13 +564,13 @@ void ui_menu_add_change_folder::custom_render(void *selectedref, float top, floa
// ctor / dtor
//-------------------------------------------------
-ui_menu_remove_folder::ui_menu_remove_folder(running_machine &machine, render_container *container, int ref) : ui_menu(machine, container)
+ui_menu_remove_folder::ui_menu_remove_folder(mame_ui_manager &mui, render_container *container, int ref) : ui_menu(mui, container)
{
m_ref = ref;
- if (mame_machine_manager::instance()->ui().options().exists(s_folders[m_ref].option))
- m_searchpath.assign(mame_machine_manager::instance()->ui().options().value(s_folders[m_ref].option));
+ if (mui.options().exists(s_folders[m_ref].option))
+ m_searchpath.assign(mui.options().value(s_folders[m_ref].option));
else
- m_searchpath.assign(machine.options().value(s_folders[m_ref].option));
+ m_searchpath.assign(mui.machine().options().value(s_folders[m_ref].option));
path_iterator path(m_searchpath.c_str());
std::string curpath;
@@ -603,8 +601,8 @@ void ui_menu_remove_folder::handle()
tmppath.append(";");
}
- if (mame_machine_manager::instance()->ui().options().exists(s_folders[m_ref].option))
- mame_machine_manager::instance()->ui().options().set_value(s_folders[m_ref].option, tmppath.c_str(), OPTION_PRIORITY_CMDLINE, error_string);
+ if (ui().options().exists(s_folders[m_ref].option))
+ ui().options().set_value(s_folders[m_ref].option, tmppath.c_str(), OPTION_PRIORITY_CMDLINE, error_string);
else if (strcmp(machine().options().value(s_folders[m_ref].option),tmppath.c_str())!=0)
{
machine().options().set_value(s_folders[m_ref].option, tmppath.c_str(), OPTION_PRIORITY_CMDLINE, error_string);
@@ -627,7 +625,7 @@ void ui_menu_remove_folder::populate()
item_append(elem.c_str(), nullptr, 0, (void *)(FPTR)++folders_count);
item_append(ui_menu_item_type::SEPARATOR);
- customtop = mame_machine_manager::instance()->ui().get_line_height() + 3.0f * UI_BOX_TB_BORDER;
+ customtop = ui().get_line_height() + 3.0f * UI_BOX_TB_BORDER;
}
//-------------------------------------------------
@@ -637,11 +635,10 @@ void ui_menu_remove_folder::populate()
void ui_menu_remove_folder::custom_render(void *selectedref, float top, float bottom, float origx1, float origy1, float origx2, float origy2)
{
float width;
- mame_ui_manager &mui = mame_machine_manager::instance()->ui();
std::string tempbuf = string_format(_("Remove %1$s Folder"), _(s_folders[m_ref].name));
// get the size of the text
- mui.draw_text_full(container, tempbuf.c_str(), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_NEVER, DRAW_NONE, ARGB_WHITE, ARGB_BLACK, &width, nullptr);
+ ui().draw_text_full(container, tempbuf.c_str(), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_NEVER, DRAW_NONE, rgb_t::white, rgb_t::black, &width, nullptr);
width += (2.0f * UI_BOX_LR_BORDER) + 0.01f;
float maxwidth = MAX(width, origx2 - origx1);
@@ -652,7 +649,7 @@ void ui_menu_remove_folder::custom_render(void *selectedref, float top, float bo
float y2 = origy1 - UI_BOX_TB_BORDER;
// draw a box
- mui.draw_outlined_box(container, x1, y1, x2, y2, UI_GREEN_COLOR);
+ ui().draw_outlined_box(container, x1, y1, x2, y2, UI_GREEN_COLOR);
// take off the borders
x1 += UI_BOX_LR_BORDER;
@@ -660,6 +657,6 @@ void ui_menu_remove_folder::custom_render(void *selectedref, float top, float bo
y1 += UI_BOX_TB_BORDER;
// draw the text within it
- mui.draw_text_full(container, tempbuf.c_str(), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_NEVER, DRAW_NORMAL,
+ ui().draw_text_full(container, tempbuf.c_str(), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_NEVER, DRAW_NORMAL,
UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr);
}
diff --git a/src/frontend/mame/ui/dirmenu.h b/src/frontend/mame/ui/dirmenu.h
index 6b68764b258..223776e44d1 100644
--- a/src/frontend/mame/ui/dirmenu.h
+++ b/src/frontend/mame/ui/dirmenu.h
@@ -20,7 +20,7 @@
class ui_menu_directory : public ui_menu
{
public:
- ui_menu_directory(running_machine &machine, render_container *container);
+ ui_menu_directory(mame_ui_manager &mui, render_container *container);
virtual ~ui_menu_directory();
virtual void populate() override;
virtual void handle() override;
@@ -34,7 +34,7 @@ public:
class ui_menu_display_actual : public ui_menu
{
public:
- ui_menu_display_actual(running_machine &machine, render_container *container, int selectedref);
+ ui_menu_display_actual(mame_ui_manager &mui, render_container *container, int selectedref);
virtual ~ui_menu_display_actual();
virtual void populate() override;
virtual void handle() override;
@@ -59,7 +59,7 @@ private:
class ui_menu_remove_folder : public ui_menu
{
public:
- ui_menu_remove_folder(running_machine &machine, render_container *container, int ref);
+ ui_menu_remove_folder(mame_ui_manager &mui, render_container *container, int ref);
virtual ~ui_menu_remove_folder();
virtual void populate() override;
virtual void handle() override;
@@ -78,7 +78,7 @@ private:
class ui_menu_add_change_folder : public ui_menu
{
public:
- ui_menu_add_change_folder(running_machine &machine, render_container *container, int ref);
+ ui_menu_add_change_folder(mame_ui_manager &mui, render_container *container, int ref);
virtual ~ui_menu_add_change_folder();
virtual void populate() override;
virtual void handle() override;
diff --git a/src/frontend/mame/ui/filemngr.cpp b/src/frontend/mame/ui/filemngr.cpp
index a0400e234bb..f1069a17d67 100644
--- a/src/frontend/mame/ui/filemngr.cpp
+++ b/src/frontend/mame/ui/filemngr.cpp
@@ -30,7 +30,7 @@
// ctor
//-------------------------------------------------
-ui_menu_file_manager::ui_menu_file_manager(running_machine &machine, render_container *container, const char *warnings) : ui_menu(machine, container), selected_device(nullptr)
+ui_menu_file_manager::ui_menu_file_manager(mame_ui_manager &mui, render_container *container, const char *warnings) : ui_menu(mui, container), selected_device(nullptr)
{
// This warning string is used when accessing from the force_file_manager call, i.e.
// when the file manager is loaded top front in the case of mandatory image devices
@@ -62,8 +62,7 @@ void ui_menu_file_manager::custom_render(void *selectedref, float top, float bot
// access the path
path = selected_device ? selected_device->filename() : nullptr;
- extra_text_render(container, top, bottom,
- origx1, origy1, origx2, origy2, nullptr, path);
+ extra_text_render(top, bottom, origx1, origy1, origx2, origy2, nullptr, path);
}
@@ -156,7 +155,7 @@ void ui_menu_file_manager::populate()
item_append(ui_menu_item_type::SEPARATOR);
item_append("Reset", nullptr, 0, (void *)1);
- custombottom = mame_machine_manager::instance()->ui().get_line_height() + 3.0f * UI_BOX_TB_BORDER;
+ custombottom = ui().get_line_height() + 3.0f * UI_BOX_TB_BORDER;
}
@@ -185,11 +184,11 @@ void ui_menu_file_manager::handle()
floppy_image_device *floppy_device = dynamic_cast<floppy_image_device *>(selected_device);
if (floppy_device != nullptr)
{
- ui_menu::stack_push(global_alloc_clear<ui_menu_control_floppy_image>(machine(), container, floppy_device));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_control_floppy_image>(ui(), container, floppy_device));
}
else
{
- ui_menu::stack_push(global_alloc_clear<ui_menu_control_device_image>(machine(), container, selected_device));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_control_device_image>(ui(), container, selected_device));
}
// reset the existing menu
reset(UI_MENU_RESET_REMEMBER_POSITION);
@@ -199,20 +198,20 @@ void ui_menu_file_manager::handle()
}
// force file manager menu
-void ui_menu_file_manager::force_file_manager(running_machine &machine, render_container *container, const char *warnings)
+void ui_menu_file_manager::force_file_manager(mame_ui_manager &mui, render_container *container, const char *warnings)
{
// reset the menu stack
- ui_menu::stack_reset(machine);
+ ui_menu::stack_reset(mui.machine());
// add the quit entry followed by the game select entry
- ui_menu *quit = global_alloc_clear<ui_menu_quit_game>(machine, container);
+ ui_menu *quit = global_alloc_clear<ui_menu_quit_game>(mui, container);
quit->set_special_main_menu(true);
ui_menu::stack_push(quit);
- ui_menu::stack_push(global_alloc_clear<ui_menu_file_manager>(machine, container, warnings));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_file_manager>(mui, container, warnings));
// force the menus on
- mame_machine_manager::instance()->ui().show_menu();
+ mui.show_menu();
// make sure MAME is paused
- machine.pause();
+ mui.machine().pause();
}
diff --git a/src/frontend/mame/ui/filemngr.h b/src/frontend/mame/ui/filemngr.h
index 38c4e068281..74c1c6dcacf 100644
--- a/src/frontend/mame/ui/filemngr.h
+++ b/src/frontend/mame/ui/filemngr.h
@@ -19,9 +19,9 @@ public:
std::string current_file;
device_image_interface *selected_device;
- static void force_file_manager(running_machine &machine, render_container *container, const char *warnings);
+ static void force_file_manager(mame_ui_manager &mui, render_container *container, const char *warnings);
- ui_menu_file_manager(running_machine &machine, render_container *container, const char *warnings);
+ ui_menu_file_manager(mame_ui_manager &mui, render_container *container, const char *warnings);
virtual ~ui_menu_file_manager();
virtual void populate() override;
virtual void handle() override;
diff --git a/src/frontend/mame/ui/filesel.cpp b/src/frontend/mame/ui/filesel.cpp
index 24d65757a10..c9c22010d55 100644
--- a/src/frontend/mame/ui/filesel.cpp
+++ b/src/frontend/mame/ui/filesel.cpp
@@ -65,67 +65,6 @@ static void input_character(char *buffer, size_t buffer_length, unicode_char uni
}
}
-//-------------------------------------------------
-// extra_text_draw_box - generically adds header
-// or footer text
-//-------------------------------------------------
-
-static void extra_text_draw_box(render_container *container, float origx1, float origx2, float origy, float yspan, const char *text, int direction)
-{
- float text_width, text_height;
- float width, maxwidth;
- float x1, y1, x2, y2, temp;
-
- // get the size of the text
- mame_machine_manager::instance()->ui().draw_text_full(container,text, 0.0f, 0.0f, 1.0f, JUSTIFY_LEFT, WRAP_WORD,
- DRAW_NONE, ARGB_WHITE, ARGB_BLACK, &text_width, &text_height);
- width = text_width + (2 * UI_BOX_LR_BORDER);
- maxwidth = MAX(width, origx2 - origx1);
-
- // compute our bounds
- x1 = 0.5f - 0.5f * maxwidth;
- x2 = x1 + maxwidth;
- y1 = origy + (yspan * direction);
- y2 = origy + (UI_BOX_TB_BORDER * direction);
-
- if (y1 > y2)
- {
- temp = y1;
- y1 = y2;
- y2 = temp;
- }
-
- // draw a box
- mame_machine_manager::instance()->ui().draw_outlined_box(container,x1, y1, x2, y2, UI_BACKGROUND_COLOR);
-
- // take off the borders
- x1 += UI_BOX_LR_BORDER;
- y1 += UI_BOX_TB_BORDER;
-
- // draw the text within it
- mame_machine_manager::instance()->ui().draw_text_full(container,text, x1, y1, text_width, JUSTIFY_LEFT, WRAP_WORD,
- DRAW_NORMAL, ARGB_WHITE, ARGB_BLACK, nullptr, nullptr);
-}
-
-
-//-------------------------------------------------
-// extra_text_render - generically adds header
-// and footer text
-//-------------------------------------------------
-
-void extra_text_render(render_container *container, float top, float bottom,
- float origx1, float origy1, float origx2, float origy2,
- const char *header, const char *footer)
-{
- header = ((header != nullptr) && (header[0] != '\0')) ? header : nullptr;
- footer = ((footer != nullptr) && (footer[0] != '\0')) ? footer : nullptr;
-
- if (header != nullptr)
- extra_text_draw_box(container, origx1, origx2, origy1, top, header, -1);
- if (footer != nullptr)
- extra_text_draw_box(container, origx1, origx2, origy2, bottom, footer, +1);
-}
-
/***************************************************************************
CONFIRM SAVE AS MENU
@@ -135,8 +74,8 @@ void extra_text_render(render_container *container, float top, float bottom,
// ctor
//-------------------------------------------------
-ui_menu_confirm_save_as::ui_menu_confirm_save_as(running_machine &machine, render_container *container, bool *yes)
- : ui_menu(machine, container)
+ui_menu_confirm_save_as::ui_menu_confirm_save_as(mame_ui_manager &mui, render_container *container, bool *yes)
+ : ui_menu(mui, container)
{
m_yes = yes;
*m_yes = false;
@@ -217,8 +156,8 @@ static int is_valid_filename_char(unicode_char unichar)
// ctor
//-------------------------------------------------
-ui_menu_file_create::ui_menu_file_create(running_machine &machine, render_container *container, device_image_interface *image, std::string &current_directory, std::string &current_file, bool *ok)
- : ui_menu(machine, container),
+ui_menu_file_create::ui_menu_file_create(mame_ui_manager &mui, render_container *container, device_image_interface *image, std::string &current_directory, std::string &current_file, bool *ok)
+ : ui_menu(mui, container),
m_current_directory(current_directory),
m_current_file(current_file),
m_current_format(nullptr)
@@ -246,7 +185,7 @@ ui_menu_file_create::~ui_menu_file_create()
void ui_menu_file_create::custom_render(void *selectedref, float top, float bottom, float origx1, float origy1, float origx2, float origy2)
{
- extra_text_render(container, top, bottom, origx1, origy1, origx2, origy2,
+ extra_text_render(top, bottom, origx1, origy1, origx2, origy2,
m_current_directory.c_str(),
nullptr);
}
@@ -286,7 +225,7 @@ void ui_menu_file_create::populate()
item_append(ui_menu_item_type::SEPARATOR);
item_append(_("Create"), nullptr, 0, ITEMREF_CREATE);
- customtop = mame_machine_manager::instance()->ui().get_line_height() + 3.0f * UI_BOX_TB_BORDER;
+ customtop = ui().get_line_height() + 3.0f * UI_BOX_TB_BORDER;
}
@@ -315,7 +254,7 @@ void ui_menu_file_create::handle()
ui_menu::stack_pop(machine());
}
else
- mame_machine_manager::instance()->ui().popup_time(1, "%s", _("Please enter a file extension too"));
+ ui().popup_time(1, "%s", _("Please enter a file extension too"));
}
break;
@@ -345,8 +284,8 @@ void ui_menu_file_create::handle()
// ctor
//-------------------------------------------------
-ui_menu_file_selector::ui_menu_file_selector(running_machine &machine, render_container *container, device_image_interface *image, std::string &current_directory, std::string &current_file, bool has_empty, bool has_softlist, bool has_create, int *result)
- : ui_menu(machine, container),
+ui_menu_file_selector::ui_menu_file_selector(mame_ui_manager &mui, render_container *container, device_image_interface *image, std::string &current_directory, std::string &current_file, bool has_empty, bool has_softlist, bool has_create, int *result)
+ : ui_menu(mui, container),
m_current_directory(current_directory),
m_current_file(current_file),
m_entrylist(nullptr)
@@ -374,7 +313,7 @@ ui_menu_file_selector::~ui_menu_file_selector()
void ui_menu_file_selector::custom_render(void *selectedref, float top, float bottom, float origx1, float origy1, float origx2, float origy2)
{
- extra_text_render(container, top, bottom,
+ extra_text_render(top, bottom,
origx1, origy1, origx2, origy2,
m_current_directory.c_str(),
nullptr);
@@ -612,7 +551,7 @@ void ui_menu_file_selector::populate()
set_selection((void *) selected_entry);
// set up custom render proc
- customtop = mame_machine_manager::instance()->ui().get_line_height() + 3.0f * UI_BOX_TB_BORDER;
+ customtop = ui().get_line_height() + 3.0f * UI_BOX_TB_BORDER;
if (directory != nullptr)
util::zippath_closedir(directory);
@@ -664,7 +603,7 @@ void ui_menu_file_selector::handle()
if (err != osd_file::error::NONE)
{
// this path is problematic; present the user with an error and bail
- mame_machine_manager::instance()->ui().popup_time(1, "Error accessing %s", entry->fullpath);
+ ui().popup_time(1, "Error accessing %s", entry->fullpath);
break;
}
m_current_directory.assign(entry->fullpath);
@@ -695,7 +634,7 @@ void ui_menu_file_selector::handle()
update_selected = TRUE;
if (ARRAY_LENGTH(m_filename_buffer) > 0)
- mame_machine_manager::instance()->ui().popup_time(ERROR_MESSAGE_TIME, "%s", m_filename_buffer);
+ ui().popup_time(ERROR_MESSAGE_TIME, "%s", m_filename_buffer);
}
// if it's any other key and we're not maxed out, update
else if (event->unichar >= ' ' && event->unichar < 0x7f)
@@ -705,7 +644,7 @@ void ui_menu_file_selector::handle()
update_selected = TRUE;
if (ARRAY_LENGTH(m_filename_buffer) > 0)
- mame_machine_manager::instance()->ui().popup_time(ERROR_MESSAGE_TIME, "%s", m_filename_buffer);
+ ui().popup_time(ERROR_MESSAGE_TIME, "%s", m_filename_buffer);
}
if (update_selected)
@@ -778,8 +717,8 @@ void ui_menu_file_selector::handle()
// ctor
//-------------------------------------------------
-ui_menu_select_format::ui_menu_select_format(running_machine &machine, render_container *container, floppy_image_format_t **formats, int ext_match, int total_usable, int *result)
- : ui_menu(machine, container)
+ui_menu_select_format::ui_menu_select_format(mame_ui_manager &mui, render_container *container, floppy_image_format_t **formats, int ext_match, int total_usable, int *result)
+ : ui_menu(mui, container)
{
m_formats = formats;
m_ext_match = ext_match;
@@ -839,9 +778,9 @@ void ui_menu_select_format::handle()
// ctor
//-------------------------------------------------
-ui_menu_select_rw::ui_menu_select_rw(running_machine &machine, render_container *container,
+ui_menu_select_rw::ui_menu_select_rw(mame_ui_manager &mui, render_container *container,
bool can_in_place, int *result)
- : ui_menu(machine, container)
+ : ui_menu(mui, container)
{
m_can_in_place = can_in_place;
m_result = result;
diff --git a/src/frontend/mame/ui/filesel.h b/src/frontend/mame/ui/filesel.h
index c7e113e463b..decf940253f 100644
--- a/src/frontend/mame/ui/filesel.h
+++ b/src/frontend/mame/ui/filesel.h
@@ -18,7 +18,7 @@
class ui_menu_confirm_save_as : public ui_menu
{
public:
- ui_menu_confirm_save_as(running_machine &machine, render_container *container, bool *yes);
+ ui_menu_confirm_save_as(mame_ui_manager &mui, render_container *container, bool *yes);
virtual ~ui_menu_confirm_save_as();
virtual void populate() override;
virtual void handle() override;
@@ -33,7 +33,7 @@ private:
class ui_menu_file_create : public ui_menu
{
public:
- ui_menu_file_create(running_machine &machine, render_container *container, device_image_interface *image, std::string &current_directory, std::string &current_file, bool *ok);
+ ui_menu_file_create(mame_ui_manager &mui, render_container *container, device_image_interface *image, std::string &current_directory, std::string &current_file, bool *ok);
virtual ~ui_menu_file_create();
virtual void populate() override;
virtual void handle() override;
@@ -57,7 +57,7 @@ class ui_menu_file_selector : public ui_menu
{
public:
enum { R_EMPTY, R_SOFTLIST, R_CREATE, R_FILE };
- ui_menu_file_selector(running_machine &machine, render_container *container, device_image_interface *image, std::string &current_directory, std::string &current_file, bool has_empty, bool has_softlist, bool has_create, int *result);
+ ui_menu_file_selector(mame_ui_manager &mui, render_container *container, device_image_interface *image, std::string &current_directory, std::string &current_file, bool has_empty, bool has_softlist, bool has_create, int *result);
virtual ~ui_menu_file_selector();
virtual void populate() override;
virtual void handle() override;
@@ -107,7 +107,7 @@ private:
class ui_menu_select_format : public ui_menu
{
public:
- ui_menu_select_format(running_machine &machine, render_container *container,
+ ui_menu_select_format(mame_ui_manager &mui, render_container *container,
class floppy_image_format_t **formats, int ext_match, int total_usable, int *result);
virtual ~ui_menu_select_format();
virtual void populate() override;
@@ -128,7 +128,7 @@ class ui_menu_select_rw : public ui_menu
{
public:
enum { READONLY, READWRITE, WRITE_OTHER, WRITE_DIFF };
- ui_menu_select_rw(running_machine &machine, render_container *container,
+ ui_menu_select_rw(mame_ui_manager &mui, render_container *container,
bool can_in_place, int *result);
virtual ~ui_menu_select_rw();
virtual void populate() override;
@@ -140,9 +140,4 @@ private:
int * m_result;
};
-// helper
-void extra_text_render(render_container *container, float top, float bottom,
- float origx1, float origy1, float origx2, float origy2,
- const char *header, const char *footer);
-
#endif /* __UI_FILESEL_H__ */
diff --git a/src/frontend/mame/ui/floppycntrl.cpp b/src/frontend/mame/ui/floppycntrl.cpp
index 05a4e03c825..665eaebb50c 100644
--- a/src/frontend/mame/ui/floppycntrl.cpp
+++ b/src/frontend/mame/ui/floppycntrl.cpp
@@ -17,7 +17,7 @@
IMPLEMENTATION
***************************************************************************/
-ui_menu_control_floppy_image::ui_menu_control_floppy_image(running_machine &machine, render_container *container, device_image_interface *_image) : ui_menu_control_device_image(machine, container, _image)
+ui_menu_control_floppy_image::ui_menu_control_floppy_image(mame_ui_manager &mui, render_container *container, device_image_interface *_image) : ui_menu_control_device_image(mui, container, _image)
{
floppy_image_device *fd = static_cast<floppy_image_device *>(image);
const floppy_image_format_t *fif_list = fd->get_formats();
@@ -91,7 +91,7 @@ void ui_menu_control_floppy_image::hook_load(std::string filename, bool softlist
can_in_place = false;
}
submenu_result = -1;
- ui_menu::stack_push(global_alloc_clear<ui_menu_select_rw>(machine(), container, can_in_place, &submenu_result));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_select_rw>(ui(), container, can_in_place, &submenu_result));
state = SELECT_RW;
}
@@ -117,7 +117,7 @@ void ui_menu_control_floppy_image::handle()
format_array[total_usable++] = i;
}
submenu_result = -1;
- ui_menu::stack_push(global_alloc_clear<ui_menu_select_format>(machine(), container, format_array, ext_match, total_usable, &submenu_result));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_select_format>(ui(), container, format_array, ext_match, total_usable, &submenu_result));
state = SELECT_FORMAT;
break;
@@ -154,7 +154,7 @@ void ui_menu_control_floppy_image::handle()
break;
case ui_menu_select_rw::WRITE_OTHER:
- ui_menu::stack_push(global_alloc_clear<ui_menu_file_create>(machine(), container, image, current_directory, current_file, &create_ok));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_file_create>(ui(), container, image, current_directory, current_file, &create_ok));
state = CHECK_CREATE;
break;
diff --git a/src/frontend/mame/ui/floppycntrl.h b/src/frontend/mame/ui/floppycntrl.h
index 08ac1e85d68..2f4f93eeaea 100644
--- a/src/frontend/mame/ui/floppycntrl.h
+++ b/src/frontend/mame/ui/floppycntrl.h
@@ -16,7 +16,7 @@
class ui_menu_control_floppy_image : public ui_menu_control_device_image {
public:
- ui_menu_control_floppy_image(running_machine &machine, render_container *container, device_image_interface *image);
+ ui_menu_control_floppy_image(mame_ui_manager &ui, render_container *container, device_image_interface *image);
virtual ~ui_menu_control_floppy_image();
virtual void handle() override;
diff --git a/src/frontend/mame/ui/imgcntrl.cpp b/src/frontend/mame/ui/imgcntrl.cpp
index c8b46afd23f..bf83c7c21d0 100644
--- a/src/frontend/mame/ui/imgcntrl.cpp
+++ b/src/frontend/mame/ui/imgcntrl.cpp
@@ -29,8 +29,8 @@
// ctor
//-------------------------------------------------
-ui_menu_control_device_image::ui_menu_control_device_image(running_machine &machine, render_container *container, device_image_interface *_image)
- : ui_menu(machine, container),
+ui_menu_control_device_image::ui_menu_control_device_image(mame_ui_manager &mui, render_container *container, device_image_interface *_image)
+ : ui_menu(mui, container),
submenu_result(0),
create_ok(false),
create_confirmed(false)
@@ -38,7 +38,7 @@ ui_menu_control_device_image::ui_menu_control_device_image(running_machine &mach
image = _image;
if (image->software_list_name())
- sld = software_list_device::find_by_name(machine.config(), image->software_list_name());
+ sld = software_list_device::find_by_name(mui.machine().config(), image->software_list_name());
else
sld = nullptr;
swi = image->software_entry();
@@ -110,7 +110,7 @@ void ui_menu_control_device_image::test_create(bool &can_create, bool &need_conf
case ENTTYPE_DIR:
/* a directory exists here - we can't save over it */
- mame_machine_manager::instance()->ui().popup_time(5, "%s", _("Cannot save over directory"));
+ ui().popup_time(5, "%s", _("Cannot save over directory"));
can_create = false;
need_confirm = false;
break;
@@ -187,20 +187,20 @@ void ui_menu_control_device_image::handle()
util::zippath_closedir(directory);
}
submenu_result = -1;
- ui_menu::stack_push(global_alloc_clear<ui_menu_file_selector>(machine(), container, image, current_directory, current_file, true, image->image_interface()!=nullptr, can_create, &submenu_result));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_file_selector>(ui(), container, image, current_directory, current_file, true, image->image_interface()!=nullptr, can_create, &submenu_result));
state = SELECT_FILE;
break;
}
case START_SOFTLIST:
sld = nullptr;
- ui_menu::stack_push(global_alloc_clear<ui_menu_software>(machine(), container, image->image_interface(), &sld));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_software>(ui(), container, image->image_interface(), &sld));
state = SELECT_SOFTLIST;
break;
case START_OTHER_PART: {
submenu_result = -1;
- ui_menu::stack_push(global_alloc_clear<ui_menu_software_parts>(machine(), container, swi, swp->interface(), &swp, true, &submenu_result));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_software_parts>(ui(), container, swi, swp->interface(), &swp, true, &submenu_result));
state = SELECT_OTHER_PART;
break;
}
@@ -211,7 +211,7 @@ void ui_menu_control_device_image::handle()
break;
}
software_info_name = "";
- ui_menu::stack_push(global_alloc_clear<ui_menu_software_list>(machine(), container, sld, image->image_interface(), software_info_name));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_software_list>(ui(), container, sld, image->image_interface(), software_info_name));
state = SELECT_PARTLIST;
break;
@@ -223,7 +223,7 @@ void ui_menu_control_device_image::handle()
{
submenu_result = -1;
swp = nullptr;
- ui_menu::stack_push(global_alloc_clear<ui_menu_software_parts>(machine(), container, swi, image->image_interface(), &swp, false, &submenu_result));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_software_parts>(ui(), container, swi, image->image_interface(), &swp, false, &submenu_result));
state = SELECT_ONE_PART;
}
else
@@ -287,7 +287,7 @@ void ui_menu_control_device_image::handle()
break;
case ui_menu_file_selector::R_CREATE:
- ui_menu::stack_push(global_alloc_clear<ui_menu_file_create>(machine(), container, image, current_directory, current_file, &create_ok));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_file_create>(ui(), container, image, current_directory, current_file, &create_ok));
state = CHECK_CREATE;
break;
@@ -307,7 +307,7 @@ void ui_menu_control_device_image::handle()
test_create(can_create, need_confirm);
if(can_create) {
if(need_confirm) {
- ui_menu::stack_push(global_alloc_clear<ui_menu_confirm_save_as>(machine(), container, &create_confirmed));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_confirm_save_as>(ui(), container, &create_confirmed));
state = CREATE_CONFIRM;
} else {
state = DO_CREATE;
diff --git a/src/frontend/mame/ui/imgcntrl.h b/src/frontend/mame/ui/imgcntrl.h
index 669098a4306..9af104a45f6 100644
--- a/src/frontend/mame/ui/imgcntrl.h
+++ b/src/frontend/mame/ui/imgcntrl.h
@@ -17,7 +17,7 @@
class ui_menu_control_device_image : public ui_menu {
public:
- ui_menu_control_device_image(running_machine &machine, render_container *container, device_image_interface *image);
+ ui_menu_control_device_image(mame_ui_manager &mui, render_container *container, device_image_interface *image);
virtual ~ui_menu_control_device_image();
virtual void populate() override;
virtual void handle() override;
diff --git a/src/frontend/mame/ui/info.cpp b/src/frontend/mame/ui/info.cpp
index 966d0ca0a33..f524413fd88 100644
--- a/src/frontend/mame/ui/info.cpp
+++ b/src/frontend/mame/ui/info.cpp
@@ -19,7 +19,7 @@
menu
-------------------------------------------------*/
-ui_menu_game_info::ui_menu_game_info(running_machine &machine, render_container *container) : ui_menu(machine, container)
+ui_menu_game_info::ui_menu_game_info(mame_ui_manager &mui, render_container *container) : ui_menu(mui, container)
{
}
@@ -30,7 +30,7 @@ ui_menu_game_info::~ui_menu_game_info()
void ui_menu_game_info::populate()
{
std::string tempstring;
- item_append(mame_machine_manager::instance()->ui().game_info_astring(tempstring).c_str(), nullptr, MENU_FLAG_MULTILINE, nullptr);
+ item_append(ui().game_info_astring(tempstring).c_str(), nullptr, MENU_FLAG_MULTILINE, nullptr);
}
void ui_menu_game_info::handle()
@@ -45,7 +45,7 @@ void ui_menu_game_info::handle()
menu
-------------------------------------------------*/
-ui_menu_image_info::ui_menu_image_info(running_machine &machine, render_container *container) : ui_menu(machine, container)
+ui_menu_image_info::ui_menu_image_info(mame_ui_manager &mui, render_container *container) : ui_menu(mui, container)
{
}
diff --git a/src/frontend/mame/ui/info.h b/src/frontend/mame/ui/info.h
index a9459b25340..2815f839cd4 100644
--- a/src/frontend/mame/ui/info.h
+++ b/src/frontend/mame/ui/info.h
@@ -15,7 +15,7 @@
class ui_menu_game_info : public ui_menu {
public:
- ui_menu_game_info(running_machine &machine, render_container *container);
+ ui_menu_game_info(mame_ui_manager &mui, render_container *container);
virtual ~ui_menu_game_info();
virtual void populate() override;
virtual void handle() override;
@@ -25,7 +25,7 @@ public:
class ui_menu_image_info : public ui_menu
{
public:
- ui_menu_image_info(running_machine &machine, render_container *container);
+ ui_menu_image_info(mame_ui_manager &mui, render_container *container);
virtual ~ui_menu_image_info();
virtual void populate() override;
virtual void handle() override;
diff --git a/src/frontend/mame/ui/info_pty.cpp b/src/frontend/mame/ui/info_pty.cpp
index 267f8b1c5b9..e87776306e1 100644
--- a/src/frontend/mame/ui/info_pty.cpp
+++ b/src/frontend/mame/ui/info_pty.cpp
@@ -12,8 +12,8 @@
#include "ui/menu.h"
#include "ui/info_pty.h"
-ui_menu_pty_info::ui_menu_pty_info(running_machine &machine, render_container *container) :
- ui_menu(machine, container)
+ui_menu_pty_info::ui_menu_pty_info(mame_ui_manager &mui, render_container *container) :
+ ui_menu(mui, container)
{
}
diff --git a/src/frontend/mame/ui/info_pty.h b/src/frontend/mame/ui/info_pty.h
index 584652211a6..d5ccc43054b 100644
--- a/src/frontend/mame/ui/info_pty.h
+++ b/src/frontend/mame/ui/info_pty.h
@@ -15,7 +15,7 @@
class ui_menu_pty_info : public ui_menu {
public:
- ui_menu_pty_info(running_machine &machine, render_container *container);
+ ui_menu_pty_info(mame_ui_manager &mui, render_container *container);
virtual ~ui_menu_pty_info();
virtual void populate() override;
virtual void handle() override;
diff --git a/src/frontend/mame/ui/inifile.cpp b/src/frontend/mame/ui/inifile.cpp
index 5e3871a0137..f176073786d 100644
--- a/src/frontend/mame/ui/inifile.cpp
+++ b/src/frontend/mame/ui/inifile.cpp
@@ -9,7 +9,7 @@
***************************************************************************/
#include "emu.h"
-#include "ui/ui.h"
+#include "ui/moptions.h"
#include "ui/inifile.h"
#include "softlist.h"
#include "drivenum.h"
@@ -24,8 +24,8 @@ UINT16 inifile_manager::c_file = 0;
// ctor
//-------------------------------------------------
-inifile_manager::inifile_manager(running_machine &machine)
- : m_machine(machine)
+inifile_manager::inifile_manager(running_machine &machine, ui_options &moptions)
+ : m_machine(machine), m_options(moptions)
{
ini_index.clear();
directory_scan();
@@ -38,7 +38,7 @@ inifile_manager::inifile_manager(running_machine &machine)
void inifile_manager::directory_scan()
{
// open extra INIs folder
- file_enumerator path(mame_machine_manager::instance()->ui().options().extraini_path());
+ file_enumerator path(m_options.extraini_path());
const osd_directory_entry *dir;
// loop into folder's file
@@ -151,7 +151,7 @@ bool inifile_manager::parseopen(const char *filename)
// MAME core file parsing functions fail in recognizing UNICODE chars in UTF-8 without BOM,
// so it's better and faster use standard C fileio functions.
- emu_file file(mame_machine_manager::instance()->ui().options().extraini_path(), OPEN_FLAG_READ);
+ emu_file file(m_options.extraini_path(), OPEN_FLAG_READ);
if (file.open(filename) != osd_file::error::NONE)
return false;
@@ -172,8 +172,8 @@ bool inifile_manager::parseopen(const char *filename)
// ctor
//-------------------------------------------------
-favorite_manager::favorite_manager(running_machine &machine)
- : m_machine(machine)
+favorite_manager::favorite_manager(running_machine &machine, ui_options &moptions)
+ : m_machine(machine), m_options(moptions)
{
m_current = -1;
parse_favorite();
@@ -357,7 +357,7 @@ bool favorite_manager::isgame_favorite(ui_software_info &swinfo)
void favorite_manager::parse_favorite()
{
- emu_file file(mame_machine_manager::instance()->ui().options().ui_path(), OPEN_FLAG_READ);
+ emu_file file(m_options.ui_path(), OPEN_FLAG_READ);
if (file.open(favorite_filename) == osd_file::error::NONE)
{
char readbuf[1024];
@@ -416,7 +416,7 @@ void favorite_manager::parse_favorite()
void favorite_manager::save_favorite_games()
{
// attempt to open the output file
- emu_file file(mame_machine_manager::instance()->ui().options().ui_path(), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS);
+ emu_file file(m_options.ui_path(), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS);
if (file.open(favorite_filename) == osd_file::error::NONE)
{
if (m_list.empty())
diff --git a/src/frontend/mame/ui/inifile.h b/src/frontend/mame/ui/inifile.h
index ecc755290a6..b8ba87addae 100644
--- a/src/frontend/mame/ui/inifile.h
+++ b/src/frontend/mame/ui/inifile.h
@@ -19,11 +19,13 @@
// INIFILE MANAGER
//-------------------------------------------------
+class ui_options;
+
class inifile_manager
{
public:
// construction/destruction
- inifile_manager(running_machine &machine);
+ inifile_manager(running_machine &machine, ui_options &moptions);
// getters
running_machine &machine() const { return m_machine; }
@@ -64,6 +66,7 @@ private:
// internal state
running_machine &m_machine; // reference to our machine
+ ui_options &m_options;
std::string m_fullpath;
FILE *fp = nullptr;
};
@@ -76,7 +79,7 @@ class favorite_manager
{
public:
// construction/destruction
- favorite_manager(running_machine &machine);
+ favorite_manager(running_machine &machine, ui_options &moptions);
// favorite indices
std::vector<ui_software_info> m_list;
@@ -112,6 +115,7 @@ private:
// internal state
running_machine &m_machine; // reference to our machine
+ ui_options &m_options;
};
#endif /* __UI_INIFILE_H__ */
diff --git a/src/frontend/mame/ui/inputmap.cpp b/src/frontend/mame/ui/inputmap.cpp
index d43725b8eb6..919b21b4063 100644
--- a/src/frontend/mame/ui/inputmap.cpp
+++ b/src/frontend/mame/ui/inputmap.cpp
@@ -40,7 +40,7 @@
input groups menu
-------------------------------------------------*/
-ui_menu_input_groups::ui_menu_input_groups(running_machine &machine, render_container *container) : ui_menu(machine, container)
+ui_menu_input_groups::ui_menu_input_groups(mame_ui_manager &mui, render_container *container) : ui_menu(mui, container)
{
}
@@ -73,7 +73,7 @@ void ui_menu_input_groups::handle()
/* process the menu */
const ui_menu_event *menu_event = process(0);
if (menu_event != nullptr && menu_event->iptkey == IPT_UI_SELECT)
- ui_menu::stack_push(global_alloc_clear<ui_menu_input_general>(machine(), container, int((long long)(menu_event->itemref)-1)));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_input_general>(ui(), container, int((long long)(menu_event->itemref)-1)));
}
@@ -83,7 +83,7 @@ void ui_menu_input_groups::handle()
input menu
-------------------------------------------------*/
-ui_menu_input_general::ui_menu_input_general(running_machine &machine, render_container *container, int _group) : ui_menu_input(machine, container)
+ui_menu_input_general::ui_menu_input_general(mame_ui_manager &mui, render_container *container, int _group) : ui_menu_input(mui, container)
{
group = _group;
}
@@ -146,7 +146,7 @@ ui_menu_input_general::~ui_menu_input_general()
input menu
-------------------------------------------------*/
-ui_menu_input_specific::ui_menu_input_specific(running_machine &machine, render_container *container) : ui_menu_input(machine, container)
+ui_menu_input_specific::ui_menu_input_specific(mame_ui_manager &mui, render_container *container) : ui_menu_input(mui, container)
{
}
@@ -224,7 +224,7 @@ ui_menu_input_specific::~ui_menu_input_specific()
/*-------------------------------------------------
menu_input - display a menu for inputs
-------------------------------------------------*/
-ui_menu_input::ui_menu_input(running_machine &machine, render_container *container) : ui_menu(machine, container), last_sortorder(0), record_next(false)
+ui_menu_input::ui_menu_input(mame_ui_manager &mui, render_container *container) : ui_menu(mui, container), last_sortorder(0), record_next(false)
{
pollingitem = nullptr;
pollingref = nullptr;
@@ -447,7 +447,7 @@ void ui_menu_input::populate_and_sort(input_item_data *itemlist)
switches menu
-------------------------------------------------*/
-ui_menu_settings_dip_switches::ui_menu_settings_dip_switches(running_machine &machine, render_container *container) : ui_menu_settings(machine, container, IPT_DIPSWITCH)
+ui_menu_settings_dip_switches::ui_menu_settings_dip_switches(mame_ui_manager &mui, render_container *container) : ui_menu_settings(mui, container, IPT_DIPSWITCH)
{
}
@@ -460,7 +460,7 @@ ui_menu_settings_dip_switches::~ui_menu_settings_dip_switches()
driver config menu
-------------------------------------------------*/
-ui_menu_settings_driver_config::ui_menu_settings_driver_config(running_machine &machine, render_container *container) : ui_menu_settings(machine, container, IPT_CONFIG)
+ui_menu_settings_driver_config::ui_menu_settings_driver_config(mame_ui_manager &mui, render_container *container) : ui_menu_settings(mui, container, IPT_CONFIG)
{
}
@@ -530,7 +530,7 @@ void ui_menu_settings::handle()
switches menus
-------------------------------------------------*/
-ui_menu_settings::ui_menu_settings(running_machine &machine, render_container *container, UINT32 _type) : ui_menu(machine, container), diplist(nullptr), dipcount(0)
+ui_menu_settings::ui_menu_settings(mame_ui_manager &mui, render_container *container, UINT32 _type) : ui_menu(mui, container), diplist(nullptr), dipcount(0)
{
type = _type;
}
@@ -642,7 +642,7 @@ void ui_menu_settings_dip_switches::custom_render(void *selectedref, float top,
y2 = y1 + bottom;
// draw extra menu area
- mame_machine_manager::instance()->ui().draw_outlined_box(container, x1, y1, x2, y2, UI_BACKGROUND_COLOR);
+ ui().draw_outlined_box(container, x1, y1, x2, y2, UI_BACKGROUND_COLOR);
y1 += (float)DIP_SWITCH_SPACING;
// iterate over DIP switches
@@ -688,11 +688,11 @@ void ui_menu_settings_dip_switches::custom_render_one(float x1, float y1, float
x1 += (x2 - x1 - numtoggles * switch_field_width) / 2;
/* draw the dip switch name */
- mame_machine_manager::instance()->ui().draw_text_full( container,
+ ui().draw_text_full( container,
dip->name,
0,
y1 + (DIP_SWITCH_HEIGHT - UI_TARGET_FONT_HEIGHT) / 2,
- x1 - mame_machine_manager::instance()->ui().get_string_width(" "),
+ x1 - ui().get_string_width(" "),
JUSTIFY_RIGHT,
WRAP_NEVER,
DRAW_NORMAL,
@@ -712,7 +712,7 @@ void ui_menu_settings_dip_switches::custom_render_one(float x1, float y1, float
float innerx1;
/* first outline the switch */
- mame_machine_manager::instance()->ui().draw_outlined_box(container, x1, y1, x1 + switch_field_width, y2, UI_BACKGROUND_COLOR);
+ ui().draw_outlined_box(container, x1, y1, x1 + switch_field_width, y2, UI_BACKGROUND_COLOR);
/* compute x1/x2 for the inner filled in switch */
innerx1 = x1 + (switch_field_width - switch_width) / 2;
@@ -805,7 +805,7 @@ void ui_menu_analog::handle()
settings menu
-------------------------------------------------*/
-ui_menu_analog::ui_menu_analog(running_machine &machine, render_container *container) : ui_menu(machine, container)
+ui_menu_analog::ui_menu_analog(mame_ui_manager &mui, render_container *container) : ui_menu(mui, container)
{
}
diff --git a/src/frontend/mame/ui/inputmap.h b/src/frontend/mame/ui/inputmap.h
index f49df47b892..508b0a4dd02 100644
--- a/src/frontend/mame/ui/inputmap.h
+++ b/src/frontend/mame/ui/inputmap.h
@@ -15,7 +15,7 @@
class ui_menu_input_groups : public ui_menu {
public:
- ui_menu_input_groups(running_machine &machine, render_container *container);
+ ui_menu_input_groups(mame_ui_manager &mui, render_container *container);
virtual ~ui_menu_input_groups();
virtual void populate() override;
virtual void handle() override;
@@ -23,7 +23,7 @@ public:
class ui_menu_input : public ui_menu {
public:
- ui_menu_input(running_machine &machine, render_container *container);
+ ui_menu_input(mame_ui_manager &mui, render_container *container);
virtual ~ui_menu_input();
virtual void handle() override;
@@ -68,7 +68,7 @@ private:
class ui_menu_input_general : public ui_menu_input {
public:
- ui_menu_input_general(running_machine &machine, render_container *container, int group);
+ ui_menu_input_general(mame_ui_manager &mui, render_container *container, int group);
virtual ~ui_menu_input_general();
virtual void populate() override;
@@ -79,7 +79,7 @@ protected:
class ui_menu_input_specific : public ui_menu_input {
public:
- ui_menu_input_specific(running_machine &machine, render_container *container);
+ ui_menu_input_specific(mame_ui_manager &mui, render_container *container);
virtual ~ui_menu_input_specific();
virtual void populate() override;
@@ -89,7 +89,7 @@ protected:
class ui_menu_settings : public ui_menu {
public:
- ui_menu_settings(running_machine &machine, render_container *container, UINT32 type);
+ ui_menu_settings(mame_ui_manager &mui, render_container *container, UINT32 type);
virtual ~ui_menu_settings();
virtual void populate() override;
virtual void handle() override;
@@ -110,7 +110,7 @@ protected:
class ui_menu_settings_dip_switches : public ui_menu_settings {
public:
- ui_menu_settings_dip_switches(running_machine &machine, render_container *container);
+ ui_menu_settings_dip_switches(mame_ui_manager &mui, render_container *container);
virtual ~ui_menu_settings_dip_switches();
virtual void custom_render(void *selectedref, float top, float bottom, float x, float y, float x2, float y2) override;
@@ -120,13 +120,13 @@ private:
class ui_menu_settings_driver_config : public ui_menu_settings {
public:
- ui_menu_settings_driver_config(running_machine &machine, render_container *container);
+ ui_menu_settings_driver_config(mame_ui_manager &mui, render_container *container);
virtual ~ui_menu_settings_driver_config();
};
class ui_menu_analog : public ui_menu {
public:
- ui_menu_analog(running_machine &machine, render_container *container);
+ ui_menu_analog(mame_ui_manager &mui, render_container *container);
virtual ~ui_menu_analog();
virtual void populate() override;
virtual void handle() override;
diff --git a/src/frontend/mame/ui/mainmenu.cpp b/src/frontend/mame/ui/mainmenu.cpp
index acb318b3b41..dc861a96b0b 100644
--- a/src/frontend/mame/ui/mainmenu.cpp
+++ b/src/frontend/mame/ui/mainmenu.cpp
@@ -11,6 +11,7 @@
#include "emu.h"
#include "crsshair.h"
#include "emuopts.h"
+#include "mame.h"
#include "ui/menu.h"
#include "ui/filemngr.h"
#include "ui/barcode.h"
@@ -42,7 +43,7 @@
ui_menu_main constructor - populate the main menu
-------------------------------------------------*/
-ui_menu_main::ui_menu_main(running_machine &machine, render_container *container) : ui_menu(machine, container)
+ui_menu_main::ui_menu_main(mame_ui_manager &mui, render_container *container) : ui_menu(mui, container)
{
}
@@ -127,7 +128,7 @@ void ui_menu_main::populate()
item_append(_("Plugin Options"), nullptr, 0, (void *)PLUGINS);
// add dats menu
- if (mame_machine_manager::instance()->ui().options().enabled_dats() && mame_machine_manager::instance()->datfile().has_data())
+ if (ui().options().enabled_dats() && mame_machine_manager::instance()->datfile().has_data())
item_append(_("External DAT View"), nullptr, 0, (void *)EXTERNAL_DATS);
item_append(ui_menu_item_type::SEPARATOR);
@@ -161,103 +162,103 @@ void ui_menu_main::handle()
if (menu_event != nullptr && menu_event->iptkey == IPT_UI_SELECT) {
switch((long long)(menu_event->itemref)) {
case INPUT_GROUPS:
- ui_menu::stack_push(global_alloc_clear<ui_menu_input_groups>(machine(), container));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_input_groups>(ui(), container));
break;
case INPUT_SPECIFIC:
- ui_menu::stack_push(global_alloc_clear<ui_menu_input_specific>(machine(), container));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_input_specific>(ui(), container));
break;
case SETTINGS_DIP_SWITCHES:
- ui_menu::stack_push(global_alloc_clear<ui_menu_settings_dip_switches>(machine(), container));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_settings_dip_switches>(ui(), container));
break;
case SETTINGS_DRIVER_CONFIG:
- ui_menu::stack_push(global_alloc_clear<ui_menu_settings_driver_config>(machine(), container));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_settings_driver_config>(ui(), container));
break;
case ANALOG:
- ui_menu::stack_push(global_alloc_clear<ui_menu_analog>(machine(), container));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_analog>(ui(), container));
break;
case BOOKKEEPING:
- ui_menu::stack_push(global_alloc_clear<ui_menu_bookkeeping>(machine(), container));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_bookkeeping>(ui(), container));
break;
case GAME_INFO:
- ui_menu::stack_push(global_alloc_clear<ui_menu_game_info>(machine(), container));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_game_info>(ui(), container));
break;
case IMAGE_MENU_IMAGE_INFO:
- ui_menu::stack_push(global_alloc_clear<ui_menu_image_info>(machine(), container));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_image_info>(ui(), container));
break;
case IMAGE_MENU_FILE_MANAGER:
- ui_menu::stack_push(global_alloc_clear<ui_menu_file_manager>(machine(), container, nullptr));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_file_manager>(ui(), container, nullptr));
break;
case TAPE_CONTROL:
- ui_menu::stack_push(global_alloc_clear<ui_menu_tape_control>(machine(), container, nullptr));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_tape_control>(ui(), container, nullptr));
break;
case PTY_INFO:
- ui_menu::stack_push(global_alloc_clear<ui_menu_pty_info>(machine(), container));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_pty_info>(ui(), container));
break;
case SLOT_DEVICES:
- ui_menu::stack_push(global_alloc_clear<ui_menu_slot_devices>(machine(), container));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_slot_devices>(ui(), container));
break;
case NETWORK_DEVICES:
- ui_menu::stack_push(global_alloc_clear<ui_menu_network_devices>(machine(), container));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_network_devices>(ui(), container));
break;
case KEYBOARD_MODE:
- ui_menu::stack_push(global_alloc_clear<ui_menu_keyboard_mode>(machine(), container));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_keyboard_mode>(ui(), container));
break;
case SLIDERS:
- ui_menu::stack_push(global_alloc_clear<ui_menu_sliders>(machine(), container, false));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_sliders>(ui(), container, false));
break;
case VIDEO_TARGETS:
- ui_menu::stack_push(global_alloc_clear<ui_menu_video_targets>(machine(), container));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_video_targets>(ui(), container));
break;
case VIDEO_OPTIONS:
- ui_menu::stack_push(global_alloc_clear<ui_menu_video_options>(machine(), container, machine().render().first_target()));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_video_options>(ui(), container, machine().render().first_target()));
break;
case CROSSHAIR:
- ui_menu::stack_push(global_alloc_clear<ui_menu_crosshair>(machine(), container));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_crosshair>(ui(), container));
break;
case CHEAT:
- ui_menu::stack_push(global_alloc_clear<ui_menu_cheat>(machine(), container));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_cheat>(ui(), container));
break;
case PLUGINS:
- ui_menu::stack_push(global_alloc_clear<ui_menu_plugin>(machine(), container));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_plugin>(ui(), container));
break;
case SELECT_GAME:
if (strcmp(machine().options().ui(),"simple")==0) {
- ui_menu::stack_push(global_alloc_clear<ui_simple_menu_select_game>(machine(), container, nullptr));
+ ui_menu::stack_push(global_alloc_clear<ui_simple_menu_select_game>(ui(), container, nullptr));
} else {
- ui_menu::stack_push(global_alloc_clear<ui_menu_select_game>(machine(), container, nullptr));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_select_game>(ui(), container, nullptr));
}
break;
case BIOS_SELECTION:
- ui_menu::stack_push(global_alloc_clear<ui_menu_bios_selection>(machine(), container));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_bios_selection>(ui(), container));
break;
case BARCODE_READ:
- ui_menu::stack_push(global_alloc_clear<ui_menu_barcode_reader>(machine(), container, nullptr));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_barcode_reader>(ui(), container, nullptr));
break;
case EXTERNAL_DATS:
- ui_menu::stack_push(global_alloc_clear<ui_menu_dats_view>(machine(), container));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_dats_view>(ui(), container));
break;
case ADD_FAVORITE:
@@ -272,7 +273,7 @@ void ui_menu_main::handle()
case QUIT_GAME:
ui_menu::stack_pop(machine());
- mame_machine_manager::instance()->ui().request_quit();
+ ui().request_quit();
break;
default:
diff --git a/src/frontend/mame/ui/mainmenu.h b/src/frontend/mame/ui/mainmenu.h
index 4333101e694..dc565f0256e 100644
--- a/src/frontend/mame/ui/mainmenu.h
+++ b/src/frontend/mame/ui/mainmenu.h
@@ -15,7 +15,7 @@
class ui_menu_main : public ui_menu {
public:
- ui_menu_main(running_machine &machine, render_container *container);
+ ui_menu_main(mame_ui_manager &mui, render_container *container);
virtual ~ui_menu_main();
virtual void populate() override;
virtual void handle() override;
diff --git a/src/frontend/mame/ui/menu.cpp b/src/frontend/mame/ui/menu.cpp
index c26d22562aa..e1aae6b98e7 100644
--- a/src/frontend/mame/ui/menu.cpp
+++ b/src/frontend/mame/ui/menu.cpp
@@ -11,6 +11,7 @@
#include "emu.h"
#include "rendutil.h"
#include "cheat.h"
+#include "mame.h"
#include "uiinput.h"
#include "ui/ui.h"
#include "ui/menu.h"
@@ -130,7 +131,7 @@ inline bool ui_menu::exclusive_input_pressed(int key, int repeat)
// init - initialize the menu system
//-------------------------------------------------
-void ui_menu::init(running_machine &machine)
+void ui_menu::init(running_machine &machine, ui_options &mopt)
{
// initialize the menu stack
ui_menu::stack_reset(machine);
@@ -151,7 +152,7 @@ void ui_menu::init(running_machine &machine)
arrow_texture = machine.render().texture_alloc(render_triangle);
// initialize ui
- init_ui(machine);
+ init_ui(machine, mopt);
// add an exit callback to free memory
machine.add_notifier(MACHINE_NOTIFY_EXIT, machine_notify_delegate(FUNC(ui_menu::exit), &machine));
@@ -197,7 +198,7 @@ void ui_menu::exit(running_machine &machine)
// ui_menu - menu constructor
//-------------------------------------------------
-ui_menu::ui_menu(running_machine &machine, render_container *_container) : m_machine(machine)
+ui_menu::ui_menu(mame_ui_manager &mui, render_container *_container) : m_ui(mui)
{
m_special_main_menu = false;
container = _container;
@@ -489,16 +490,16 @@ void ui_menu::set_selection(void *selected_itemref)
void ui_menu::draw(UINT32 flags, float origx0, float origy0)
{
// first draw the FPS counter
- if (mame_machine_manager::instance()->ui().show_fps_counter())
+ if (ui().show_fps_counter())
{
- mame_machine_manager::instance()->ui().draw_text_full(container, machine().video().speed_text().c_str(), 0.0f, 0.0f, 1.0f,
- JUSTIFY_RIGHT, WRAP_WORD, DRAW_OPAQUE, ARGB_WHITE, ARGB_BLACK, nullptr, nullptr);
+ ui().draw_text_full(container, machine().video().speed_text().c_str(), 0.0f, 0.0f, 1.0f,
+ JUSTIFY_RIGHT, WRAP_WORD, DRAW_OPAQUE, rgb_t::white, rgb_t::black, nullptr, nullptr);
}
bool customonly = (flags & UI_MENU_PROCESS_CUSTOM_ONLY);
bool noimage = (flags & UI_MENU_PROCESS_NOIMAGE);
bool noinput = (flags & UI_MENU_PROCESS_NOINPUT);
- float line_height = mame_machine_manager::instance()->ui().get_line_height();
+ float line_height = ui().get_line_height();
float lr_arrow_width = 0.4f * line_height * machine().render().ui_aspect();
float ud_arrow_width = line_height * machine().render().ui_aspect();
float gutter_width = lr_arrow_width * 1.3f;
@@ -508,8 +509,8 @@ void ui_menu::draw(UINT32 flags, float origx0, float origy0)
bool mouse_hit, mouse_button;
float mouse_x = -1, mouse_y = -1;
- if (mame_machine_manager::instance()->ui().options().use_background_image() && &machine().system() == &GAME_NAME(___empty) && bgrnd_bitmap->valid() && !noimage)
- container->add_quad(0.0f, 0.0f, 1.0f, 1.0f, ARGB_WHITE, bgrnd_texture, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
+ if (ui().options().use_background_image() && &machine().system() == &GAME_NAME(___empty) && bgrnd_bitmap->valid() && !noimage)
+ container->add_quad(0.0f, 0.0f, 1.0f, 1.0f, rgb_t::white, bgrnd_texture, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
// compute the width and height of the full menu
float visible_width = 0;
@@ -520,11 +521,11 @@ void ui_menu::draw(UINT32 flags, float origx0, float origy0)
float total_width;
// compute width of left hand side
- total_width = gutter_width + mame_machine_manager::instance()->ui().get_string_width(pitem.text) + gutter_width;
+ total_width = gutter_width + ui().get_string_width(pitem.text) + gutter_width;
// add in width of right hand side
if (pitem.subtext)
- total_width += 2.0f * gutter_width + mame_machine_manager::instance()->ui().get_string_width(pitem.subtext);
+ total_width += 2.0f * gutter_width + ui().get_string_width(pitem.subtext);
// track the maximum
if (total_width > visible_width)
@@ -598,7 +599,7 @@ void ui_menu::draw(UINT32 flags, float origx0, float origy0)
float x2 = visible_left + visible_width + UI_BOX_LR_BORDER;
float y2 = visible_top + visible_main_menu_height + UI_BOX_TB_BORDER;
if (!customonly)
- mame_machine_manager::instance()->ui().draw_outlined_box(container, x1, y1, x2, y2, UI_BACKGROUND_COLOR);
+ ui().draw_outlined_box(container, x1, y1, x2, y2, UI_BACKGROUND_COLOR);
if (top_line < 0 || selected == 0)
top_line = 0;
@@ -718,11 +719,11 @@ void ui_menu::draw(UINT32 flags, float origx0, float origy0)
{
if (pitem.flags & MENU_FLAG_UI_HEADING)
{
- float heading_width = mame_machine_manager::instance()->ui().get_string_width(itemtext);
+ float heading_width = ui().get_string_width(itemtext);
container->add_line(visible_left, line_y + 0.5f * line_height, visible_left + ((visible_width - heading_width) / 2) - UI_BOX_LR_BORDER, line_y + 0.5f * line_height, UI_LINE_WIDTH, UI_BORDER_COLOR, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
container->add_line(visible_left + visible_width - ((visible_width - heading_width) / 2) + UI_BOX_LR_BORDER, line_y + 0.5f * line_height, visible_left + visible_width, line_y + 0.5f * line_height, UI_LINE_WIDTH, UI_BORDER_COLOR, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
}
- mame_machine_manager::instance()->ui().draw_text_full(container, itemtext, effective_left, line_y, effective_width,
+ ui().draw_text_full(container, itemtext, effective_left, line_y, effective_width,
JUSTIFY_CENTER, WRAP_TRUNCATE, DRAW_NORMAL, fgcolor, bgcolor, nullptr, nullptr);
}
@@ -734,14 +735,14 @@ void ui_menu::draw(UINT32 flags, float origx0, float origy0)
float item_width, subitem_width;
// draw the left-side text
- mame_machine_manager::instance()->ui().draw_text_full(container, itemtext, effective_left, line_y, effective_width,
+ ui().draw_text_full(container, itemtext, effective_left, line_y, effective_width,
JUSTIFY_LEFT, WRAP_TRUNCATE, DRAW_NORMAL, fgcolor, bgcolor, &item_width, nullptr);
// give 2 spaces worth of padding
item_width += 2.0f * gutter_width;
// if the subitem doesn't fit here, display dots
- if (mame_machine_manager::instance()->ui().get_string_width(subitem_text) > effective_width - item_width)
+ if (ui().get_string_width(subitem_text) > effective_width - item_width)
{
subitem_text = "...";
if (itemnum == selected)
@@ -759,7 +760,7 @@ void ui_menu::draw(UINT32 flags, float origx0, float origy0)
fgcolor2 = rgb_t(0xff,0xff,0xff,0x00);
// draw the subitem right-justified
- mame_machine_manager::instance()->ui().draw_text_full(container, subitem_text, effective_left + item_width, line_y, effective_width - item_width,
+ ui().draw_text_full(container, subitem_text, effective_left + item_width, line_y, effective_width - item_width,
JUSTIFY_RIGHT, WRAP_TRUNCATE, DRAW_NORMAL, subitem_invert ? fgcolor3 : fgcolor2, bgcolor, &subitem_width, nullptr);
// apply arrows
@@ -798,8 +799,8 @@ void ui_menu::draw(UINT32 flags, float origx0, float origy0)
float target_x, target_y;
// compute the multi-line target width/height
- mame_machine_manager::instance()->ui().draw_text_full(container, pitem.subtext, 0, 0, visible_width * 0.75f,
- JUSTIFY_RIGHT, WRAP_WORD, DRAW_NONE, ARGB_WHITE, ARGB_BLACK, &target_width, &target_height);
+ ui().draw_text_full(container, pitem.subtext, 0, 0, visible_width * 0.75f,
+ JUSTIFY_RIGHT, WRAP_WORD, DRAW_NONE, rgb_t::white, rgb_t::black, &target_width, &target_height);
// determine the target location
target_x = visible_left + visible_width - target_width - UI_BOX_LR_BORDER;
@@ -808,12 +809,12 @@ void ui_menu::draw(UINT32 flags, float origx0, float origy0)
target_y = line_y - target_height - UI_BOX_TB_BORDER;
// add a box around that
- mame_machine_manager::instance()->ui().draw_outlined_box(container, target_x - UI_BOX_LR_BORDER,
+ ui().draw_outlined_box(container, target_x - UI_BOX_LR_BORDER,
target_y - UI_BOX_TB_BORDER,
target_x + target_width + UI_BOX_LR_BORDER,
target_y + target_height + UI_BOX_TB_BORDER,
subitem_invert ? UI_SELECTED_BG_COLOR : UI_BACKGROUND_COLOR);
- mame_machine_manager::instance()->ui().draw_text_full(container, pitem.subtext, target_x, target_y, target_width,
+ ui().draw_text_full(container, pitem.subtext, target_x, target_y, target_width,
JUSTIFY_RIGHT, WRAP_WORD, DRAW_NORMAL, UI_SELECTED_COLOR, UI_SELECTED_BG_COLOR, nullptr, nullptr);
}
@@ -835,21 +836,21 @@ void ui_menu::draw_text_box()
{
const char *text = item[0].text;
const char *backtext = item[1].text;
- float line_height = mame_machine_manager::instance()->ui().get_line_height();
+ float line_height = ui().get_line_height();
float lr_arrow_width = 0.4f * line_height * machine().render().ui_aspect();
float gutter_width = lr_arrow_width;
float target_width, target_height, prior_width;
float target_x, target_y;
// compute the multi-line target width/height
- mame_machine_manager::instance()->ui().draw_text_full(container, text, 0, 0, 1.0f - 2.0f * UI_BOX_LR_BORDER - 2.0f * gutter_width,
- JUSTIFY_LEFT, WRAP_WORD, DRAW_NONE, ARGB_WHITE, ARGB_BLACK, &target_width, &target_height);
+ ui().draw_text_full(container, text, 0, 0, 1.0f - 2.0f * UI_BOX_LR_BORDER - 2.0f * gutter_width,
+ JUSTIFY_LEFT, WRAP_WORD, DRAW_NONE, rgb_t::white, rgb_t::black, &target_width, &target_height);
target_height += 2.0f * line_height;
if (target_height > 1.0f - 2.0f * UI_BOX_TB_BORDER)
target_height = floorf((1.0f - 2.0f * UI_BOX_TB_BORDER) / line_height) * line_height;
// maximum against "return to prior menu" text
- prior_width = mame_machine_manager::instance()->ui().get_string_width(backtext) + 2.0f * gutter_width;
+ prior_width = ui().get_string_width(backtext) + 2.0f * gutter_width;
target_width = MAX(target_width, prior_width);
// determine the target location
@@ -867,12 +868,12 @@ void ui_menu::draw_text_box()
target_y = 1.0f - UI_BOX_TB_BORDER - target_height;
// add a box around that
- mame_machine_manager::instance()->ui().draw_outlined_box(container, target_x - UI_BOX_LR_BORDER - gutter_width,
+ ui().draw_outlined_box(container, target_x - UI_BOX_LR_BORDER - gutter_width,
target_y - UI_BOX_TB_BORDER,
target_x + target_width + gutter_width + UI_BOX_LR_BORDER,
target_y + target_height + UI_BOX_TB_BORDER,
(item[0].flags & MENU_FLAG_REDTEXT) ? UI_RED_COLOR : UI_BACKGROUND_COLOR);
- mame_machine_manager::instance()->ui().draw_text_full(container, text, target_x, target_y, target_width,
+ ui().draw_text_full(container, text, target_x, target_y, target_width,
JUSTIFY_LEFT, WRAP_WORD, DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr);
// draw the "return to prior menu" text with a hilight behind it
@@ -882,7 +883,7 @@ void ui_menu::draw_text_box()
target_x + target_width - 0.5f * UI_LINE_WIDTH,
target_y + target_height,
UI_SELECTED_BG_COLOR);
- mame_machine_manager::instance()->ui().draw_text_full(container, backtext, target_x, target_y + target_height - line_height, target_width,
+ ui().draw_text_full(container, backtext, target_x, target_y + target_height - line_height, target_width,
JUSTIFY_CENTER, WRAP_TRUNCATE, DRAW_NORMAL, UI_SELECTED_COLOR, UI_SELECTED_BG_COLOR, nullptr, nullptr);
// artificially set the hover to the last item so a double-click exits
@@ -1261,21 +1262,21 @@ void ui_menu::do_handle()
// and calls the menu handler
//-------------------------------------------------
-UINT32 ui_menu::ui_handler(running_machine &machine, render_container *container, UINT32 state)
+UINT32 ui_menu::ui_handler(mame_ui_manager &mui, render_container *container, UINT32 state)
{
// if we have no menus stacked up, start with the main menu
if (menu_stack == nullptr)
- stack_push(global_alloc_clear<ui_menu_main>(machine, container));
+ stack_push(global_alloc_clear<ui_menu_main>(mui, container));
// update the menu state
if (menu_stack != nullptr)
menu_stack->do_handle();
// clear up anything pending to be released
- clear_free_list(machine);
+ clear_free_list(mui.machine());
// if the menus are to be hidden, return a cancel here
- if (mame_machine_manager::instance()->ui().is_menu_active() && ((machine.ui_input().pressed(IPT_UI_CONFIGURE) && !stack_has_special_main_menu()) || menu_stack == nullptr))
+ if (mui.is_menu_active() && ((mui.machine().ui_input().pressed(IPT_UI_CONFIGURE) && !stack_has_special_main_menu()) || menu_stack == nullptr))
return UI_HANDLER_CANCEL;
return 0;
@@ -1363,7 +1364,7 @@ void ui_menu::draw_arrow(render_container *container, float x0, float y0, float
// init - initialize the ui menu system
//-------------------------------------------------
-void ui_menu::init_ui(running_machine &machine)
+void ui_menu::init_ui(running_machine &machine, ui_options &mopt)
{
render_manager &mrender = machine.render();
// create a texture for hilighting items in main menu
@@ -1408,7 +1409,6 @@ void ui_menu::init_ui(running_machine &machine)
bgrnd_bitmap = std::make_unique<bitmap_argb32>(0, 0);
bgrnd_texture = mrender.texture_alloc(render_texture::hq_scale);
- ui_options &mopt = mame_machine_manager::instance()->ui().options();
if (mopt.use_background_image() && &machine.system() == &GAME_NAME(___empty))
{
emu_file backgroundfile(".", OPEN_FLAG_READ);
@@ -1462,7 +1462,7 @@ void ui_menu::init_ui(running_machine &machine)
void ui_menu::draw_select_game(UINT32 flags)
{
bool noinput = (flags & UI_MENU_PROCESS_NOINPUT);
- float line_height = mame_machine_manager::instance()->ui().get_line_height();
+ float line_height = ui().get_line_height();
float ud_arrow_width = line_height * machine().render().ui_aspect();
float gutter_width = 0.52f * ud_arrow_width;
mouse_x = -1, mouse_y = -1;
@@ -1472,11 +1472,10 @@ void ui_menu::draw_select_game(UINT32 flags)
float primary_width = visible_width;
bool is_swlist = ((item[0].flags & MENU_FLAG_UI_SWLIST) != 0);
bool is_favorites = ((item[0].flags & MENU_FLAG_UI_FAVORITE) != 0);
- mame_ui_manager &mui = mame_machine_manager::instance()->ui();
// draw background image if available
- if (mame_machine_manager::instance()->ui().options().use_background_image() && bgrnd_bitmap->valid())
- container->add_quad(0.0f, 0.0f, 1.0f, 1.0f, ARGB_WHITE, bgrnd_texture, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
+ if (ui().options().use_background_image() && bgrnd_bitmap->valid())
+ container->add_quad(0.0f, 0.0f, 1.0f, 1.0f, rgb_t::white, bgrnd_texture, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
hover = item.size() + 1;
visible_items = (is_swlist) ? item.size() - 2 : item.size() - 2 - skip_main_items;
@@ -1525,7 +1524,7 @@ void ui_menu::draw_select_game(UINT32 flags)
x1 = visible_left - UI_BOX_LR_BORDER;
x2 = visible_left + visible_width + UI_BOX_LR_BORDER;
float line = visible_top + (float)(visible_lines * line_height);
- mui.draw_outlined_box(container, x1, y1, x2, y2, UI_BACKGROUND_COLOR);
+ ui().draw_outlined_box(container, x1, y1, x2, y2, UI_BACKGROUND_COLOR);
if (visible_items < visible_lines)
visible_lines = visible_items;
@@ -1566,7 +1565,7 @@ void ui_menu::draw_select_game(UINT32 flags)
fgcolor = rgb_t(0xff, 0xff, 0xff, 0x00);
bgcolor = rgb_t(0xff, 0xff, 0xff, 0xff);
fgcolor3 = rgb_t(0xff, 0xcc, 0xcc, 0x00);
- mui.draw_textured_box(container, line_x0 + 0.01f, line_y0, line_x1 - 0.01f, line_y1, bgcolor, rgb_t(255, 43, 43, 43),
+ ui().draw_textured_box(container, line_x0 + 0.01f, line_y0, line_x1 - 0.01f, line_y1, bgcolor, rgb_t(255, 43, 43, 43),
hilight_main_texture, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA) | PRIMFLAG_TEXWRAP(TRUE));
}
// else if the mouse is over this item, draw with a different background
@@ -1580,7 +1579,7 @@ void ui_menu::draw_select_game(UINT32 flags)
{
fgcolor = fgcolor3 = UI_MOUSEOVER_COLOR;
bgcolor = UI_MOUSEOVER_BG_COLOR;
- mui.draw_textured_box(container, line_x0 + 0.01f, line_y0, line_x1 - 0.01f, line_y1, bgcolor, rgb_t(255, 43, 43, 43),
+ ui().draw_textured_box(container, line_x0 + 0.01f, line_y0, line_x1 - 0.01f, line_y1, bgcolor, rgb_t(255, 43, 43, 43),
hilight_main_texture, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA) | PRIMFLAG_TEXWRAP(TRUE));
}
@@ -1625,7 +1624,7 @@ void ui_menu::draw_select_game(UINT32 flags)
space = ud_arrow_width * 1.5f;
}
- mui.draw_text_full(container, itemtext, effective_left + space, line_y, effective_width - space, JUSTIFY_LEFT, WRAP_TRUNCATE,
+ ui().draw_text_full(container, itemtext, effective_left + space, line_y, effective_width - space, JUSTIFY_LEFT, WRAP_TRUNCATE,
DRAW_NORMAL, item_invert ? fgcolor3 : fgcolor, bgcolor, nullptr, nullptr);
}
else
@@ -1635,16 +1634,16 @@ void ui_menu::draw_select_game(UINT32 flags)
float item_width, subitem_width;
// compute right space for subitem
- mui.draw_text_full(container, subitem_text, effective_left, line_y, mame_machine_manager::instance()->ui().get_string_width(pitem.subtext),
+ ui().draw_text_full(container, subitem_text, effective_left, line_y, ui().get_string_width(pitem.subtext),
JUSTIFY_RIGHT, WRAP_NEVER, DRAW_NONE, item_invert ? fgcolor3 : fgcolor, bgcolor, &subitem_width, nullptr);
subitem_width += gutter_width;
// draw the item left-justified
- mui.draw_text_full(container, itemtext, effective_left, line_y, effective_width - subitem_width,
+ ui().draw_text_full(container, itemtext, effective_left, line_y, effective_width - subitem_width,
JUSTIFY_LEFT, WRAP_TRUNCATE, DRAW_NORMAL, item_invert ? fgcolor3 : fgcolor, bgcolor, &item_width, nullptr);
// draw the subitem right-justified
- mui.draw_text_full(container, subitem_text, effective_left + item_width, line_y, effective_width - item_width,
+ ui().draw_text_full(container, subitem_text, effective_left + item_width, line_y, effective_width - item_width,
JUSTIFY_RIGHT, WRAP_NEVER, DRAW_NORMAL, item_invert ? fgcolor3 : fgcolor, bgcolor, nullptr, nullptr);
}
}
@@ -1668,7 +1667,7 @@ void ui_menu::draw_select_game(UINT32 flags)
{
fgcolor = rgb_t(0xff, 0xff, 0xff, 0x00);
bgcolor = rgb_t(0xff, 0xff, 0xff, 0xff);
- mui.draw_textured_box(container, line_x0 + 0.01f, line_y0, line_x1 - 0.01f, line_y1, bgcolor, rgb_t(255, 43, 43, 43),
+ ui().draw_textured_box(container, line_x0 + 0.01f, line_y0, line_x1 - 0.01f, line_y1, bgcolor, rgb_t(255, 43, 43, 43),
hilight_main_texture, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA) | PRIMFLAG_TEXWRAP(TRUE));
}
// else if the mouse is over this item, draw with a different background
@@ -1683,7 +1682,7 @@ void ui_menu::draw_select_game(UINT32 flags)
container->add_line(visible_left, line + 0.5f * line_height, visible_left + visible_width, line + 0.5f * line_height,
UI_LINE_WIDTH, UI_TEXT_COLOR, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
else
- mui.draw_text_full(container, itemtext, effective_left, line, effective_width, JUSTIFY_CENTER, WRAP_TRUNCATE,
+ ui().draw_text_full(container, itemtext, effective_left, line, effective_width, JUSTIFY_CENTER, WRAP_TRUNCATE,
DRAW_NORMAL, fgcolor, bgcolor, nullptr, nullptr);
line += line_height;
}
@@ -1737,7 +1736,7 @@ void ui_menu::get_title_search(std::string &snaptext, std::string &searchstr)
else
{
ui_options moptions;
- searchstr = mame_machine_manager::instance()->ui().options().value(arts_info[ui_globals::curimage_view].path);
+ searchstr = ui().options().value(arts_info[ui_globals::curimage_view].path);
addpath = moptions.value(arts_info[ui_globals::curimage_view].path);
}
@@ -2178,12 +2177,11 @@ void ui_menu::handle_main_events(UINT32 flags)
float ui_menu::draw_right_box_title(float x1, float y1, float x2, float y2)
{
- mame_ui_manager &mui = mame_machine_manager::instance()->ui();
- float line_height = mui.get_line_height();
+ float line_height = ui().get_line_height();
float midl = (x2 - x1) * 0.5f;
// add outlined box for options
- mui.draw_outlined_box(container, x1, y1, x2, y2, UI_BACKGROUND_COLOR);
+ ui().draw_outlined_box(container, x1, y1, x2, y2, UI_BACKGROUND_COLOR);
// add separator line
container->add_line(x1 + midl, y1, x1 + midl, y1 + line_height, UI_LINE_WIDTH, UI_BORDER_COLOR, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
@@ -2196,7 +2194,7 @@ float ui_menu::draw_right_box_title(float x1, float y1, float x2, float y2)
float text_size = 1.0f;
for (auto & elem : buffer)
{
- float textlen = mui.get_string_width(elem.c_str()) + 0.01f;
+ float textlen = ui().get_string_width(elem.c_str()) + 0.01f;
float tmp_size = (textlen > midl) ? (midl / textlen) : 1.0f;
text_size = MIN(text_size, tmp_size);
}
@@ -2228,14 +2226,14 @@ float ui_menu::draw_right_box_title(float x1, float y1, float x2, float y2)
{
fgcolor = rgb_t(0xff, 0xff, 0xff, 0x00);
bgcolor = rgb_t(0xff, 0xff, 0xff, 0xff);
- mui.draw_textured_box(container, x1 + UI_LINE_WIDTH, y1 + UI_LINE_WIDTH, x1 + midl - UI_LINE_WIDTH, y1 + line_height,
+ ui().draw_textured_box(container, x1 + UI_LINE_WIDTH, y1 + UI_LINE_WIDTH, x1 + midl - UI_LINE_WIDTH, y1 + line_height,
bgcolor, rgb_t(255, 43, 43, 43), hilight_main_texture, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA) | PRIMFLAG_TEXWRAP(TRUE));
}
else if (bgcolor == UI_MOUSEOVER_BG_COLOR)
container->add_rect(x1 + UI_LINE_WIDTH, y1 + UI_LINE_WIDTH, x1 + midl - UI_LINE_WIDTH, y1 + line_height,
bgcolor, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA) | PRIMFLAG_TEXWRAP(TRUE));
- mui.draw_text_full(container, buffer[cells].c_str(), x1 + UI_LINE_WIDTH, y1, midl - UI_LINE_WIDTH,
+ ui().draw_text_full(container, buffer[cells].c_str(), x1 + UI_LINE_WIDTH, y1, midl - UI_LINE_WIDTH,
JUSTIFY_CENTER, WRAP_NEVER, DRAW_NORMAL, fgcolor, bgcolor, nullptr, nullptr, text_size);
x1 += midl;
}
@@ -2249,8 +2247,7 @@ float ui_menu::draw_right_box_title(float x1, float y1, float x2, float y2)
std::string ui_menu::arts_render_common(float origx1, float origy1, float origx2, float origy2)
{
- mame_ui_manager &mui = mame_machine_manager::instance()->ui();
- float line_height = mui.get_line_height();
+ float line_height = ui().get_line_height();
std::string snaptext, searchstr;
float title_size = 0.0f;
float txt_lenght = 0.0f;
@@ -2261,8 +2258,8 @@ std::string ui_menu::arts_render_common(float origx1, float origy1, float origx2
// apply title to right panel
for (int x = FIRST_VIEW; x < LAST_VIEW; x++)
{
- mui.draw_text_full(container, _(arts_info[x].title), origx1, origy1, origx2 - origx1, JUSTIFY_CENTER,
- WRAP_TRUNCATE, DRAW_NONE, ARGB_WHITE, ARGB_BLACK, &txt_lenght, nullptr);
+ ui().draw_text_full(container, _(arts_info[x].title), origx1, origy1, origx2 - origx1, JUSTIFY_CENTER,
+ WRAP_TRUNCATE, DRAW_NONE, rgb_t::white, rgb_t::black, &txt_lenght, nullptr);
txt_lenght += 0.01f;
title_size = MAX(txt_lenght, title_size);
}
@@ -2277,10 +2274,10 @@ std::string ui_menu::arts_render_common(float origx1, float origy1, float origx2
title_size *= tmp_size;
if (bgcolor != UI_TEXT_BG_COLOR)
- mui.draw_textured_box(container, origx1 + ((middle - title_size) * 0.5f), origy1, origx1 + ((middle + title_size) * 0.5f),
+ ui().draw_textured_box(container, origx1 + ((middle - title_size) * 0.5f), origy1, origx1 + ((middle + title_size) * 0.5f),
origy1 + line_height, bgcolor, rgb_t(255, 43, 43, 43), hilight_main_texture, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA) | PRIMFLAG_TEXWRAP(TRUE));
- mui.draw_text_full(container, snaptext.c_str(), origx1, origy1, origx2 - origx1, JUSTIFY_CENTER, WRAP_TRUNCATE,
+ ui().draw_text_full(container, snaptext.c_str(), origx1, origy1, origx2 - origx1, JUSTIFY_CENTER, WRAP_TRUNCATE,
DRAW_NORMAL, fgcolor, bgcolor, nullptr, nullptr, tmp_size);
draw_common_arrow(origx1, origy1, origx2, origy2, ui_globals::curimage_view, FIRST_VIEW, LAST_VIEW, title_size);
@@ -2294,9 +2291,9 @@ std::string ui_menu::arts_render_common(float origx1, float origy1, float origx2
void ui_menu::draw_star(float x0, float y0)
{
- float y1 = y0 + mame_machine_manager::instance()->ui().get_line_height();
- float x1 = x0 + mame_machine_manager::instance()->ui().get_line_height() * container->manager().ui_aspect();
- container->add_quad(x0, y0, x1, y1, ARGB_WHITE, star_texture, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA) | PRIMFLAG_PACKABLE);
+ float y1 = y0 + ui().get_line_height();
+ float x1 = x0 + ui().get_line_height() * container->manager().ui_aspect();
+ container->add_quad(x0, y0, x1, y1, rgb_t::white, star_texture, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA) | PRIMFLAG_PACKABLE);
}
//-------------------------------------------------
@@ -2305,9 +2302,8 @@ void ui_menu::draw_star(float x0, float y0)
void ui_menu::draw_toolbar(float x1, float y1, float x2, float y2, bool software)
{
- mame_ui_manager &mui = mame_machine_manager::instance()->ui();
// draw a box
- mui.draw_outlined_box(container, x1, y1, x2, y2, rgb_t(0xEF, 0x12, 0x47, 0x7B));
+ ui().draw_outlined_box(container, x1, y1, x2, y2, rgb_t(0xEF, 0x12, 0x47, 0x7B));
// take off the borders
x1 += UI_BOX_LR_BORDER;
@@ -2340,9 +2336,9 @@ void ui_menu::draw_toolbar(float x1, float y1, float x2, float y2, bool software
if (mouse_hit && x1 <= mouse_x && x2 > mouse_x && y1 <= mouse_y && y2 > mouse_y)
{
hover = HOVER_B_FAV + z;
- color = ARGB_WHITE;
- float ypos = y2 + mame_machine_manager::instance()->ui().get_line_height() + 2.0f * UI_BOX_TB_BORDER;
- mui.draw_text_box(container, _(hover_msg[z]), JUSTIFY_CENTER, 0.5f, ypos, UI_BACKGROUND_COLOR);
+ color = rgb_t::white;
+ float ypos = y2 + ui().get_line_height() + 2.0f * UI_BOX_TB_BORDER;
+ ui().draw_text_box(container, _(hover_msg[z]), JUSTIFY_CENTER, 0.5f, ypos, UI_BACKGROUND_COLOR);
}
container->add_quad(x1, y1, x2, y2, color, t_texture[z], PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
@@ -2360,7 +2356,7 @@ void ui_menu::draw_toolbar(float x1, float y1, float x2, float y2, bool software
void ui_menu::arts_render_images(bitmap_argb32 *tmp_bitmap, float origx1, float origy1, float origx2, float origy2, bool software)
{
bool no_available = false;
- float line_height = mame_machine_manager::instance()->ui().get_line_height();
+ float line_height = ui().get_line_height();
// if it fails, use the default image
if (!tmp_bitmap->valid())
@@ -2393,7 +2389,7 @@ void ui_menu::arts_render_images(bitmap_argb32 *tmp_bitmap, float origx1, float
int dest_yPixel = tmp_bitmap->height();
// force 4:3 ratio min
- if (mame_machine_manager::instance()->ui().options().forced_4x3_snapshot() && ratioI < 0.75f && ui_globals::curimage_view == SNAPSHOT_VIEW)
+ if (ui().options().forced_4x3_snapshot() && ratioI < 0.75f && ui_globals::curimage_view == SNAPSHOT_VIEW)
{
// smaller ratio will ensure that the image fits in the view
dest_yPixel = tmp_bitmap->width() * 0.75f;
@@ -2403,7 +2399,7 @@ void ui_menu::arts_render_images(bitmap_argb32 *tmp_bitmap, float origx1, float
dest_yPixel *= ratio;
}
// resize the bitmap if necessary
- else if (ratioW < 1 || ratioH < 1 || (mame_machine_manager::instance()->ui().options().enlarge_snaps() && !no_available))
+ else if (ratioW < 1 || ratioH < 1 || (ui().options().enlarge_snaps() && !no_available))
{
// smaller ratio will ensure that the image fits in the view
float ratio = MIN(ratioW, ratioH);
@@ -2447,7 +2443,7 @@ void ui_menu::arts_render_images(bitmap_argb32 *tmp_bitmap, float origx1, float
void ui_menu::draw_common_arrow(float origx1, float origy1, float origx2, float origy2, int current, int dmin, int dmax, float title_size)
{
- float line_height = mame_machine_manager::instance()->ui().get_line_height();
+ float line_height = ui().get_line_height();
float lr_arrow_width = 0.4f * line_height * machine().render().ui_aspect();
float gutter_width = lr_arrow_width * 1.3f;
@@ -2468,14 +2464,14 @@ void ui_menu::draw_common_arrow(float origx1, float origy1, float origx2, float
// set hover
if (mouse_hit && ar_x0 <= mouse_x && ar_x1 > mouse_x && ar_y0 <= mouse_y && ar_y1 > mouse_y && current != dmax)
{
- mame_machine_manager::instance()->ui().draw_textured_box(container, ar_x0 + 0.01f, ar_y0, ar_x1 - 0.01f, ar_y1, UI_MOUSEOVER_BG_COLOR, rgb_t(255, 43, 43, 43),
+ ui().draw_textured_box(container, ar_x0 + 0.01f, ar_y0, ar_x1 - 0.01f, ar_y1, UI_MOUSEOVER_BG_COLOR, rgb_t(255, 43, 43, 43),
hilight_main_texture, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA) | PRIMFLAG_TEXWRAP(TRUE));
hover = HOVER_UI_RIGHT;
fgcolor_right = UI_MOUSEOVER_COLOR;
}
else if (mouse_hit && al_x0 <= mouse_x && al_x1 > mouse_x && al_y0 <= mouse_y && al_y1 > mouse_y && current != dmin)
{
- mame_machine_manager::instance()->ui().draw_textured_box(container, al_x0 + 0.01f, al_y0, al_x1 - 0.01f, al_y1, UI_MOUSEOVER_BG_COLOR, rgb_t(255, 43, 43, 43),
+ ui().draw_textured_box(container, al_x0 + 0.01f, al_y0, al_x1 - 0.01f, al_y1, UI_MOUSEOVER_BG_COLOR, rgb_t(255, 43, 43, 43),
hilight_main_texture, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA) | PRIMFLAG_TEXWRAP(TRUE));
hover = HOVER_UI_LEFT;
fgcolor_left = UI_MOUSEOVER_COLOR;
@@ -2500,8 +2496,8 @@ void ui_menu::draw_common_arrow(float origx1, float origy1, float origx2, float
void ui_menu::draw_icon(int linenum, void *selectedref, float x0, float y0)
{
static const game_driver *olddriver[MAX_ICONS_RENDER] = { nullptr };
- float x1 = x0 + mame_machine_manager::instance()->ui().get_line_height() * container->manager().ui_aspect(container);
- float y1 = y0 + mame_machine_manager::instance()->ui().get_line_height();
+ float x1 = x0 + ui().get_line_height() * container->manager().ui_aspect(container);
+ float y1 = y0 + ui().get_line_height();
const game_driver *driver = (const game_driver *)selectedref;
if (olddriver[linenum] != driver || ui_globals::redraw_icon)
@@ -2518,9 +2514,9 @@ void ui_menu::draw_icon(int linenum, void *selectedref, float x0, float y0)
}
// get search path
- path_iterator path(mame_machine_manager::instance()->ui().options().icons_directory());
+ path_iterator path(ui().options().icons_directory());
std::string curpath;
- std::string searchstr(mame_machine_manager::instance()->ui().options().icons_directory());
+ std::string searchstr(ui().options().icons_directory());
// iterate over path and add path for zipped formats
while (path.next(curpath))
@@ -2595,7 +2591,7 @@ void ui_menu::draw_icon(int linenum, void *selectedref, float x0, float y0)
}
if (icons_bitmap[linenum] != nullptr && icons_bitmap[linenum]->valid())
- container->add_quad(x0, y0, x1, y1, ARGB_WHITE, icons_texture[linenum], PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
+ container->add_quad(x0, y0, x1, y1, rgb_t::white, icons_texture[linenum], PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
}
//-------------------------------------------------
@@ -2609,7 +2605,7 @@ void ui_menu::info_arrow(int ub, float origx1, float origx2, float oy1, float li
if (mouse_hit && origx1 <= mouse_x && origx2 > mouse_x && oy1 <= mouse_y && oy1 + (line_height * text_size) > mouse_y)
{
- mame_machine_manager::instance()->ui().draw_textured_box(container, origx1 + 0.01f, oy1, origx2 - 0.01f, oy1 + (line_height * text_size), UI_MOUSEOVER_BG_COLOR,
+ ui().draw_textured_box(container, origx1 + 0.01f, oy1, origx2 - 0.01f, oy1 + (line_height * text_size), UI_MOUSEOVER_BG_COLOR,
rgb_t(255, 43, 43, 43), hilight_main_texture, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA) | PRIMFLAG_TEXWRAP(TRUE));
hover = (!ub) ? HOVER_DAT_UP : HOVER_DAT_DOWN;
fgcolor = UI_MOUSEOVER_COLOR;
@@ -2625,15 +2621,14 @@ void ui_menu::info_arrow(int ub, float origx1, float origx2, float oy1, float li
void ui_menu::draw_palette_menu()
{
- mame_ui_manager &mui = mame_machine_manager::instance()->ui();
- float line_height = mui.get_line_height();
+ float line_height = ui().get_line_height();
float lr_arrow_width = 0.4f * line_height * machine().render().ui_aspect();
float ud_arrow_width = line_height * machine().render().ui_aspect();
float gutter_width = lr_arrow_width * 1.3f;
int itemnum, linenum;
- if (mame_machine_manager::instance()->ui().options().use_background_image() && machine().options().system() == nullptr && bgrnd_bitmap->valid())
- container->add_quad(0.0f, 0.0f, 1.0f, 1.0f, ARGB_WHITE, bgrnd_texture, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
+ if (ui().options().use_background_image() && machine().options().system() == nullptr && bgrnd_bitmap->valid())
+ container->add_quad(0.0f, 0.0f, 1.0f, 1.0f, rgb_t::white, bgrnd_texture, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
// compute the width and height of the full menu
float visible_width = 0;
@@ -2643,11 +2638,11 @@ void ui_menu::draw_palette_menu()
const ui_menu_item &pitem = item[itemnum];
// compute width of left hand side
- float total_width = gutter_width + mui.get_string_width(pitem.text) + gutter_width;
+ float total_width = gutter_width + ui().get_string_width(pitem.text) + gutter_width;
// add in width of right hand side
if (pitem.subtext)
- total_width += 2.0f * gutter_width + mui.get_string_width(pitem.subtext);
+ total_width += 2.0f * gutter_width + ui().get_string_width(pitem.subtext);
// track the maximum
if (total_width > visible_width)
@@ -2687,7 +2682,7 @@ void ui_menu::draw_palette_menu()
float y1 = visible_top - UI_BOX_TB_BORDER;
float x2 = visible_left + visible_width + UI_BOX_LR_BORDER;
float y2 = visible_top + visible_main_menu_height + UI_BOX_TB_BORDER;
- mui.draw_outlined_box(container, x1, y1, x2, y2, UI_BACKGROUND_COLOR);
+ ui().draw_outlined_box(container, x1, y1, x2, y2, UI_BACKGROUND_COLOR);
// determine the first visible line based on the current selection
int top_line = selected - visible_lines / 2;
@@ -2780,7 +2775,7 @@ void ui_menu::draw_palette_menu()
// if we don't have a subitem, just draw the string centered
else if (pitem.subtext == nullptr)
- mui.draw_text_full(container, itemtext, effective_left, line_y, effective_width,
+ ui().draw_text_full(container, itemtext, effective_left, line_y, effective_width,
JUSTIFY_CENTER, WRAP_TRUNCATE, DRAW_NORMAL, fgcolor, bgcolor, nullptr, nullptr);
// otherwise, draw the item on the left and the subitem text on the right
@@ -2790,13 +2785,13 @@ void ui_menu::draw_palette_menu()
rgb_t color = rgb_t((UINT32)strtoul(subitem_text, nullptr, 16));
// draw the left-side text
- mui.draw_text_full(container, itemtext, effective_left, line_y, effective_width,
+ ui().draw_text_full(container, itemtext, effective_left, line_y, effective_width,
JUSTIFY_LEFT, WRAP_TRUNCATE, DRAW_NORMAL, fgcolor, bgcolor, nullptr, nullptr);
// give 2 spaces worth of padding
- float subitem_width = mui.get_string_width("FF00FF00");
+ float subitem_width = ui().get_string_width("FF00FF00");
- mui.draw_outlined_box(container, effective_left + effective_width - subitem_width, line_y0,
+ ui().draw_outlined_box(container, effective_left + effective_width - subitem_width, line_y0,
effective_left + effective_width, line_y1, color);
}
}
@@ -2814,17 +2809,16 @@ void ui_menu::draw_palette_menu()
void ui_menu::draw_dats_menu()
{
- float line_height = mame_machine_manager::instance()->ui().get_line_height();
+ float line_height = ui().get_line_height();
float ud_arrow_width = line_height * machine().render().ui_aspect();
float gutter_width = 0.52f * line_height * machine().render().ui_aspect();
mouse_x = -1, mouse_y = -1;
float visible_width = 1.0f - 2.0f * UI_BOX_LR_BORDER;
float visible_left = (1.0f - visible_width) * 0.5f;
- mame_ui_manager &mui = mame_machine_manager::instance()->ui();
// draw background image if available
- if (mame_machine_manager::instance()->ui().options().use_background_image() && bgrnd_bitmap->valid())
- container->add_quad(0.0f, 0.0f, 1.0f, 1.0f, ARGB_WHITE, bgrnd_texture, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
+ if (ui().options().use_background_image() && bgrnd_bitmap->valid())
+ container->add_quad(0.0f, 0.0f, 1.0f, 1.0f, rgb_t::white, bgrnd_texture, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
hover = item.size() + 1;
visible_items = item.size() - 2;
@@ -2857,7 +2851,7 @@ void ui_menu::draw_dats_menu()
float y2 = visible_top + visible_main_menu_height + UI_BOX_TB_BORDER + extra_height;
float line = visible_top + (float)(visible_lines * line_height);
- mui.draw_outlined_box(container, x1, y1, x2, y2, UI_BACKGROUND_COLOR);
+ ui().draw_outlined_box(container, x1, y1, x2, y2, UI_BACKGROUND_COLOR);
if (visible_items < visible_lines)
visible_lines = visible_items;
@@ -2917,7 +2911,7 @@ void ui_menu::draw_dats_menu()
// draw dats text
else if (pitem.subtext == nullptr)
{
- mui.draw_text_full(container, itemtext, effective_left, line_y, effective_width, JUSTIFY_LEFT, WRAP_NEVER,
+ ui().draw_text_full(container, itemtext, effective_left, line_y, effective_width, JUSTIFY_LEFT, WRAP_NEVER,
DRAW_NORMAL, fgcolor, bgcolor, nullptr, nullptr);
}
}
@@ -2942,7 +2936,7 @@ void ui_menu::draw_dats_menu()
else
{
highlight(container, line_x0, line_y0, line_x1, line_y1, bgcolor);
- mui.draw_text_full(container, itemtext, effective_left, line, effective_width, JUSTIFY_CENTER, WRAP_TRUNCATE,
+ ui().draw_text_full(container, itemtext, effective_left, line, effective_width, JUSTIFY_CENTER, WRAP_TRUNCATE,
DRAW_NORMAL, fgcolor, bgcolor, nullptr, nullptr);
}
line += line_height;
@@ -2960,3 +2954,65 @@ void ui_menu::set_pressed()
(m_repeat == 0) ? m_repeat = osd_ticks() + osd_ticks_per_second() / 2 : m_repeat = osd_ticks() + osd_ticks_per_second() / 4;
m_pressed = true;
}
+
+
+//-------------------------------------------------
+// extra_text_draw_box - generically adds header
+// or footer text
+//-------------------------------------------------
+
+void ui_menu::extra_text_draw_box(float origx1, float origx2, float origy, float yspan, const char *text, int direction)
+{
+ float text_width, text_height;
+ float width, maxwidth;
+ float x1, y1, x2, y2, temp;
+
+ // get the size of the text
+ ui().draw_text_full(container,text, 0.0f, 0.0f, 1.0f, JUSTIFY_LEFT, WRAP_WORD,
+ DRAW_NONE, rgb_t::white, rgb_t::black, &text_width, &text_height);
+ width = text_width + (2 * UI_BOX_LR_BORDER);
+ maxwidth = MAX(width, origx2 - origx1);
+
+ // compute our bounds
+ x1 = 0.5f - 0.5f * maxwidth;
+ x2 = x1 + maxwidth;
+ y1 = origy + (yspan * direction);
+ y2 = origy + (UI_BOX_TB_BORDER * direction);
+
+ if (y1 > y2)
+ {
+ temp = y1;
+ y1 = y2;
+ y2 = temp;
+ }
+
+ // draw a box
+ ui().draw_outlined_box(container,x1, y1, x2, y2, UI_BACKGROUND_COLOR);
+
+ // take off the borders
+ x1 += UI_BOX_LR_BORDER;
+ y1 += UI_BOX_TB_BORDER;
+
+ // draw the text within it
+ ui().draw_text_full(container,text, x1, y1, text_width, JUSTIFY_LEFT, WRAP_WORD,
+ DRAW_NORMAL, rgb_t::white, rgb_t::black, nullptr, nullptr);
+}
+
+
+//-------------------------------------------------
+// extra_text_render - generically adds header
+// and footer text
+//-------------------------------------------------
+
+void ui_menu::extra_text_render(float top, float bottom,
+ float origx1, float origy1, float origx2, float origy2,
+ const char *header, const char *footer)
+{
+ header = ((header != nullptr) && (header[0] != '\0')) ? header : nullptr;
+ footer = ((footer != nullptr) && (footer[0] != '\0')) ? footer : nullptr;
+
+ if (header != nullptr)
+ extra_text_draw_box(origx1, origx2, origy1, top, header, -1);
+ if (footer != nullptr)
+ extra_text_draw_box(origx1, origx2, origy2, bottom, footer, +1);
+}
diff --git a/src/frontend/mame/ui/menu.h b/src/frontend/mame/ui/menu.h
index 39458546397..831815295cf 100644
--- a/src/frontend/mame/ui/menu.h
+++ b/src/frontend/mame/ui/menu.h
@@ -15,7 +15,7 @@
#include "render.h"
#include "language.h"
-#include "ui/uimain.h"
+#include "ui/ui.h"
/***************************************************************************
@@ -77,10 +77,11 @@ struct ui_menu_pool
class ui_menu
{
public:
- ui_menu(running_machine &machine, render_container *container);
+ ui_menu(mame_ui_manager &mui, render_container *container);
virtual ~ui_menu();
- running_machine &machine() const { return m_machine; }
+ mame_ui_manager &ui() const { return m_ui; }
+ running_machine &machine() const { return m_ui.machine(); }
render_container *container; // render_container we render to
ui_menu_event menu_event; // the UI menu_event that occurred
@@ -126,7 +127,7 @@ public:
void set_special_main_menu(bool disable);
// Global initialization
- static void init(running_machine &machine);
+ static void init(running_machine &machine, ui_options &mopt);
static void exit(running_machine &machine);
// reset the menus, clearing everything
@@ -148,7 +149,7 @@ public:
static void draw_arrow(render_container *container, float x0, float y0, float x1, float y1, rgb_t fgcolor, UINT32 orientation);
// master handler
- static UINT32 ui_handler(running_machine &machine, render_container *container, UINT32 state);
+ static UINT32 ui_handler(mame_ui_manager &mui, render_container *container, UINT32 state);
// Used by sliders
void validate_selection(int scandir);
@@ -171,7 +172,7 @@ private:
static render_texture *hilight_texture, *arrow_texture;
bool m_special_main_menu;
- running_machine &m_machine; // machine we are attached to
+ mame_ui_manager &m_ui; // UI we are attached to
void draw(UINT32 flags, float x0 = 0.0f, float y0 = 0.0f);
void draw_text_box();
@@ -217,7 +218,7 @@ public:
void draw_star(float x0, float y0);
// Global initialization
- static void init_ui(running_machine &machine);
+ static void init_ui(running_machine &machine, ui_options &mopt);
// get arrows status
template <typename _T1, typename _T2, typename _T3>
@@ -248,6 +249,9 @@ protected:
std::string arts_render_common(float origx1, float origy1, float origx2, float origy2);
void arts_render_images(bitmap_argb32 *bitmap, float origx1, float origy1, float origx2, float origy2, bool software);
+ // draw header and footer text
+ void extra_text_render(float top, float bottom, float origx1, float origy1, float origx2, float origy2, const char *header, const char *footer);
+
int visible_lines; // main box visible lines
int right_visible_lines; // right box lines
@@ -292,6 +296,7 @@ private:
void handle_main_events(UINT32 flags);
void draw_icon(int linenum, void *selectedref, float x1, float y1);
+ void extra_text_draw_box(float origx1, float origx2, float origy, float yspan, const char *text, int direction);
};
#endif // __UI_MENU_H__
diff --git a/src/frontend/mame/ui/miscmenu.cpp b/src/frontend/mame/ui/miscmenu.cpp
index 38a2d944533..7f54d997ebd 100644
--- a/src/frontend/mame/ui/miscmenu.cpp
+++ b/src/frontend/mame/ui/miscmenu.cpp
@@ -12,6 +12,7 @@
#include "mame.h"
#include "osdnet.h"
#include "mameopts.h"
+#include "pluginopts.h"
#include "drivenum.h"
#include "uiinput.h"
@@ -30,13 +31,13 @@
ui_menu_keyboard_mode - menu that
-------------------------------------------------*/
-ui_menu_keyboard_mode::ui_menu_keyboard_mode(running_machine &machine, render_container *container) : ui_menu(machine, container)
+ui_menu_keyboard_mode::ui_menu_keyboard_mode(mame_ui_manager &mui, render_container *container) : ui_menu(mui, container)
{
}
void ui_menu_keyboard_mode::populate()
{
- bool natural = mame_machine_manager::instance()->ui().use_natural_keyboard();
+ bool natural = ui().use_natural_keyboard();
item_append(_("Keyboard Mode:"), natural ? _("Natural") : _("Emulated"), natural ? MENU_FLAG_LEFT_ARROW : MENU_FLAG_RIGHT_ARROW, nullptr);
}
@@ -46,7 +47,7 @@ ui_menu_keyboard_mode::~ui_menu_keyboard_mode()
void ui_menu_keyboard_mode::handle()
{
- bool natural = mame_machine_manager::instance()->ui().use_natural_keyboard();
+ bool natural = ui().use_natural_keyboard();
/* process the menu */
const ui_menu_event *menu_event = process(0);
@@ -55,7 +56,7 @@ void ui_menu_keyboard_mode::handle()
{
if (menu_event->iptkey == IPT_UI_LEFT || menu_event->iptkey == IPT_UI_RIGHT)
{
- mame_machine_manager::instance()->ui().set_use_natural_keyboard(natural ^ true);
+ ui().set_use_natural_keyboard(natural ^ true);
reset(UI_MENU_RESET_REMEMBER_REF);
}
}
@@ -67,7 +68,7 @@ void ui_menu_keyboard_mode::handle()
bios selection menu
-------------------------------------------------*/
-ui_menu_bios_selection::ui_menu_bios_selection(running_machine &machine, render_container *container) : ui_menu(machine, container)
+ui_menu_bios_selection::ui_menu_bios_selection(mame_ui_manager &mui, render_container *container) : ui_menu(mui, container)
{
}
@@ -140,7 +141,7 @@ void ui_menu_bios_selection::handle()
-ui_menu_network_devices::ui_menu_network_devices(running_machine &machine, render_container *container) : ui_menu(machine, container)
+ui_menu_network_devices::ui_menu_network_devices(mame_ui_manager &mui, render_container *container) : ui_menu(mui, container)
{
}
@@ -223,7 +224,7 @@ void ui_menu_bookkeeping::handle()
menu_bookkeeping - handle the bookkeeping
information menu
-------------------------------------------------*/
-ui_menu_bookkeeping::ui_menu_bookkeeping(running_machine &machine, render_container *container) : ui_menu(machine, container)
+ui_menu_bookkeeping::ui_menu_bookkeeping(mame_ui_manager &mui, render_container *container) : ui_menu(mui, container)
{
}
@@ -372,7 +373,7 @@ void ui_menu_crosshair::handle()
crosshair settings menu
-------------------------------------------------*/
-ui_menu_crosshair::ui_menu_crosshair(running_machine &machine, render_container *container) : ui_menu(machine, container)
+ui_menu_crosshair::ui_menu_crosshair(mame_ui_manager &mui, render_container *container) : ui_menu(mui, container)
{
}
@@ -534,7 +535,7 @@ ui_menu_crosshair::~ui_menu_crosshair()
quitting the game
-------------------------------------------------*/
-ui_menu_quit_game::ui_menu_quit_game(running_machine &machine, render_container *container) : ui_menu(machine, container)
+ui_menu_quit_game::ui_menu_quit_game(mame_ui_manager &mui, render_container *container) : ui_menu(mui, container)
{
}
@@ -559,8 +560,8 @@ void ui_menu_quit_game::handle()
// ctor / dtor
//-------------------------------------------------
-ui_menu_export::ui_menu_export(running_machine &machine, render_container *container, std::vector<const game_driver *> drvlist)
- : ui_menu(machine, container), m_list(drvlist)
+ui_menu_export::ui_menu_export(mame_ui_manager &mui, render_container *container, std::vector<const game_driver *> drvlist)
+ : ui_menu(mui, container), m_list(drvlist)
{
}
@@ -587,7 +588,7 @@ void ui_menu_export::handle()
if (m_event->iptkey == IPT_UI_SELECT)
{
std::string filename("exported");
- emu_file infile(mame_machine_manager::instance()->ui().options().ui_path(), OPEN_FLAG_READ);
+ emu_file infile(ui().options().ui_path(), OPEN_FLAG_READ);
if (infile.open(filename.c_str(), ".xml") == osd_file::error::NONE)
for (int seq = 0; ; ++seq)
{
@@ -600,7 +601,7 @@ void ui_menu_export::handle()
}
// attempt to open the output file
- emu_file file(mame_machine_manager::instance()->ui().options().ui_path(), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS);
+ emu_file file(ui().options().ui_path(), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS);
if (file.open(filename.c_str(), ".xml") == osd_file::error::NONE)
{
FILE *pfile;
@@ -627,7 +628,7 @@ void ui_menu_export::handle()
if (m_event->iptkey == IPT_UI_SELECT)
{
std::string filename("exported");
- emu_file infile(mame_machine_manager::instance()->ui().options().ui_path(), OPEN_FLAG_READ);
+ emu_file infile(ui().options().ui_path(), OPEN_FLAG_READ);
if (infile.open(filename.c_str(), ".txt") == osd_file::error::NONE)
for (int seq = 0; ; ++seq)
{
@@ -640,7 +641,7 @@ void ui_menu_export::handle()
}
// attempt to open the output file
- emu_file file(mame_machine_manager::instance()->ui().options().ui_path(), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS);
+ emu_file file(ui().options().ui_path(), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS);
if (file.open(filename.c_str(), ".txt") == osd_file::error::NONE)
{
// print the header
@@ -685,10 +686,10 @@ void ui_menu_export::populate()
// ctor / dtor
//-------------------------------------------------
-ui_menu_machine_configure::ui_menu_machine_configure(running_machine &machine, render_container *container, const game_driver *prev, float _x0, float _y0)
- : ui_menu(machine, container)
+ui_menu_machine_configure::ui_menu_machine_configure(mame_ui_manager &mui, render_container *container, const game_driver *prev, float _x0, float _y0)
+ : ui_menu(mui, container)
, m_drv(prev)
- , m_opts(machine.options())
+ , m_opts(mui.machine().options())
, x0(_x0)
, y0(_y0)
, m_curbios(0)
@@ -727,7 +728,7 @@ void ui_menu_machine_configure::handle()
{
std::string inistring = m_opts.output_ini();
file.puts(inistring.c_str());
- mame_machine_manager::instance()->ui().popup_time(2, "%s", _("\n Configuration saved \n\n"));
+ ui().popup_time(2, "%s", _("\n Configuration saved \n\n"));
}
break;
}
@@ -742,15 +743,15 @@ void ui_menu_machine_configure::handle()
break;
case CONTROLLER:
if (m_event->iptkey == IPT_UI_SELECT)
- ui_menu::stack_push(global_alloc_clear<ui_submenu>(machine(), container, control_submenu_options, m_drv, &m_opts));
+ ui_menu::stack_push(global_alloc_clear<ui_submenu>(ui(), container, control_submenu_options, m_drv, &m_opts));
break;
case VIDEO:
if (m_event->iptkey == IPT_UI_SELECT)
- ui_menu::stack_push(global_alloc_clear<ui_submenu>(machine(), container, video_submenu_options, m_drv, &m_opts));
+ ui_menu::stack_push(global_alloc_clear<ui_submenu>(ui(), container, video_submenu_options, m_drv, &m_opts));
break;
case ADVANCED:
if (m_event->iptkey == IPT_UI_SELECT)
- ui_menu::stack_push(global_alloc_clear<ui_submenu>(machine(), container, advanced_submenu_options, m_drv, &m_opts));
+ ui_menu::stack_push(global_alloc_clear<ui_submenu>(ui(), container, advanced_submenu_options, m_drv, &m_opts));
break;
default:
break;
@@ -797,7 +798,7 @@ void ui_menu_machine_configure::populate()
item_append(ui_menu_item_type::SEPARATOR);
item_append(_("Save machine configuration"), nullptr, 0, (void *)(FPTR)SAVE);
item_append(ui_menu_item_type::SEPARATOR);
- customtop = 2.0f * mame_machine_manager::instance()->ui().get_line_height() + 3.0f * UI_BOX_TB_BORDER;
+ customtop = 2.0f * ui().get_line_height() + 3.0f * UI_BOX_TB_BORDER;
}
//-------------------------------------------------
@@ -807,7 +808,6 @@ void ui_menu_machine_configure::populate()
void ui_menu_machine_configure::custom_render(void *selectedref, float top, float bottom, float origx1, float origy1, float origx2, float origy2)
{
float width;
- mame_ui_manager &mui = mame_machine_manager::instance()->ui();
std::string text[2];
float maxwidth = origx2 - origx1;
@@ -816,8 +816,8 @@ void ui_menu_machine_configure::custom_render(void *selectedref, float top, floa
for (auto & elem : text)
{
- mui.draw_text_full(container, elem.c_str(), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_TRUNCATE,
- DRAW_NONE, ARGB_WHITE, ARGB_BLACK, &width, nullptr);
+ ui().draw_text_full(container, elem.c_str(), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_TRUNCATE,
+ DRAW_NONE, rgb_t::white, rgb_t::black, &width, nullptr);
width += 2 * UI_BOX_LR_BORDER;
maxwidth = MAX(maxwidth, width);
}
@@ -830,7 +830,7 @@ void ui_menu_machine_configure::custom_render(void *selectedref, float top, floa
float y2 = origy1 - UI_BOX_TB_BORDER;
// draw a box
- mui.draw_outlined_box(container, x1, y1, x2, y2, UI_GREEN_COLOR);
+ ui().draw_outlined_box(container, x1, y1, x2, y2, UI_GREEN_COLOR);
// take off the borders
x1 += UI_BOX_LR_BORDER;
@@ -840,9 +840,9 @@ void ui_menu_machine_configure::custom_render(void *selectedref, float top, floa
// draw the text within it
for (auto & elem : text)
{
- mui.draw_text_full(container, elem.c_str(), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_TRUNCATE,
+ ui().draw_text_full(container, elem.c_str(), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_TRUNCATE,
DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr);
- y1 += mui.get_line_height();
+ y1 += ui().get_line_height();
}
}
@@ -889,8 +889,8 @@ void ui_menu_machine_configure::setup_bios()
// ctor / dtor
//-------------------------------------------------
-ui_menu_plugins_configure::ui_menu_plugins_configure(running_machine &machine, render_container *container)
- : ui_menu(machine, container)
+ui_menu_plugins_configure::ui_menu_plugins_configure(mame_ui_manager &mui, render_container *container)
+ : ui_menu(mui, container)
{
}
@@ -946,7 +946,7 @@ void ui_menu_plugins_configure::populate()
}
}
item_append(ui_menu_item_type::SEPARATOR);
- customtop = mame_machine_manager::instance()->ui().get_line_height() + (3.0f * UI_BOX_TB_BORDER);
+ customtop = ui().get_line_height() + (3.0f * UI_BOX_TB_BORDER);
}
//-------------------------------------------------
@@ -956,10 +956,9 @@ void ui_menu_plugins_configure::populate()
void ui_menu_plugins_configure::custom_render(void *selectedref, float top, float bottom, float origx1, float origy1, float origx2, float origy2)
{
float width;
- mame_ui_manager &mui = mame_machine_manager::instance()->ui();
- mui.draw_text_full(container, _("Plugins"), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_TRUNCATE,
- DRAW_NONE, ARGB_WHITE, ARGB_BLACK, &width, nullptr);
+ ui().draw_text_full(container, _("Plugins"), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_TRUNCATE,
+ DRAW_NONE, rgb_t::white, rgb_t::black, &width, nullptr);
width += 2 * UI_BOX_LR_BORDER;
float maxwidth = MAX(origx2 - origx1, width);
@@ -970,7 +969,7 @@ void ui_menu_plugins_configure::custom_render(void *selectedref, float top, floa
float y2 = origy1 - UI_BOX_TB_BORDER;
// draw a box
- mui.draw_outlined_box(container, x1, y1, x2, y2, UI_GREEN_COLOR);
+ ui().draw_outlined_box(container, x1, y1, x2, y2, UI_GREEN_COLOR);
// take off the borders
x1 += UI_BOX_LR_BORDER;
@@ -978,6 +977,6 @@ void ui_menu_plugins_configure::custom_render(void *selectedref, float top, floa
y1 += UI_BOX_TB_BORDER;
// draw the text within it
- mui.draw_text_full(container, _("Plugins"), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_TRUNCATE,
+ ui().draw_text_full(container, _("Plugins"), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_TRUNCATE,
DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr);
}
diff --git a/src/frontend/mame/ui/miscmenu.h b/src/frontend/mame/ui/miscmenu.h
index 18f22c49d54..286e5f30912 100644
--- a/src/frontend/mame/ui/miscmenu.h
+++ b/src/frontend/mame/ui/miscmenu.h
@@ -20,7 +20,7 @@ using s_bios = std::vector<std::pair<std::string, int>>;
class ui_menu_keyboard_mode : public ui_menu {
public:
- ui_menu_keyboard_mode(running_machine &machine, render_container *container);
+ ui_menu_keyboard_mode(mame_ui_manager &mui, render_container *container);
virtual ~ui_menu_keyboard_mode();
virtual void populate() override;
virtual void handle() override;
@@ -28,7 +28,7 @@ public:
class ui_menu_network_devices : public ui_menu {
public:
- ui_menu_network_devices(running_machine &machine, render_container *container);
+ ui_menu_network_devices(mame_ui_manager &mui, render_container *container);
virtual ~ui_menu_network_devices();
virtual void populate() override;
virtual void handle() override;
@@ -36,7 +36,7 @@ public:
class ui_menu_bookkeeping : public ui_menu {
public:
- ui_menu_bookkeeping(running_machine &machine, render_container *container);
+ ui_menu_bookkeeping(mame_ui_manager &mui, render_container *container);
virtual ~ui_menu_bookkeeping();
virtual void populate() override;
virtual void handle() override;
@@ -47,7 +47,7 @@ private:
class ui_menu_crosshair : public ui_menu {
public:
- ui_menu_crosshair(running_machine &machine, render_container *container);
+ ui_menu_crosshair(mame_ui_manager &mui, render_container *container);
virtual ~ui_menu_crosshair();
virtual void populate() override;
virtual void handle() override;
@@ -73,7 +73,7 @@ private:
class ui_menu_quit_game : public ui_menu {
public:
- ui_menu_quit_game(running_machine &machine, render_container *container);
+ ui_menu_quit_game(mame_ui_manager &mui, render_container *container);
virtual ~ui_menu_quit_game();
virtual void populate() override;
virtual void handle() override;
@@ -81,7 +81,7 @@ public:
class ui_menu_bios_selection : public ui_menu {
public:
- ui_menu_bios_selection(running_machine &machine, render_container *container);
+ ui_menu_bios_selection(mame_ui_manager &mui, render_container *container);
virtual ~ui_menu_bios_selection();
virtual void populate() override;
virtual void handle() override;
@@ -95,7 +95,7 @@ public:
class ui_menu_export : public ui_menu
{
public:
- ui_menu_export(running_machine &machine, render_container *container, std::vector<const game_driver*> list);
+ ui_menu_export(mame_ui_manager &mui, render_container *container, std::vector<const game_driver*> list);
virtual ~ui_menu_export();
virtual void populate() override;
virtual void handle() override;
@@ -111,7 +111,7 @@ private:
class ui_menu_machine_configure : public ui_menu
{
public:
- ui_menu_machine_configure(running_machine &machine, render_container *container, const game_driver *prev, float x0 = 0.0f, float y0 = 0.0f);
+ ui_menu_machine_configure(mame_ui_manager &mui, render_container *container, const game_driver *prev, float x0 = 0.0f, float y0 = 0.0f);
virtual ~ui_menu_machine_configure();
virtual void populate() override;
virtual void handle() override;
@@ -144,7 +144,7 @@ private:
class ui_menu_plugins_configure : public ui_menu
{
public:
- ui_menu_plugins_configure(running_machine &machine, render_container *container);
+ ui_menu_plugins_configure(mame_ui_manager &mui, render_container *container);
virtual ~ui_menu_plugins_configure();
virtual void populate() override;
virtual void handle() override;
diff --git a/src/frontend/mame/ui/optsmenu.cpp b/src/frontend/mame/ui/optsmenu.cpp
index 3dbebd3a896..5c9009e7604 100644
--- a/src/frontend/mame/ui/optsmenu.cpp
+++ b/src/frontend/mame/ui/optsmenu.cpp
@@ -9,6 +9,7 @@
*********************************************************************/
#include "emu.h"
+#include "mame.h"
#include "mameopts.h"
#include "ui/ui.h"
#include "ui/menu.h"
@@ -27,7 +28,7 @@
// ctor
//-------------------------------------------------
-ui_menu_game_options::ui_menu_game_options(running_machine &machine, render_container *container) : ui_menu(machine, container)
+ui_menu_game_options::ui_menu_game_options(mame_ui_manager &mui, render_container *container) : ui_menu(mui, container)
{
m_main = main_filters::actual;
}
@@ -41,7 +42,7 @@ ui_menu_game_options::~ui_menu_game_options()
main_filters::actual = m_main;
if (ui_menu::menu_stack != nullptr)
ui_menu::menu_stack->reset(UI_MENU_RESET_SELECT_FIRST);
- save_ui_options(machine());
+ ui().save_ui_options();
ui_globals::switch_image = true;
}
@@ -82,7 +83,7 @@ void ui_menu_game_options::handle()
for (int index = 0; index < total; ++index)
s_sel[index] = main_filters::text[index];
- ui_menu::stack_push(global_alloc_clear<ui_menu_selector>(machine(), container, s_sel, m_main));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_selector>(ui(), container, s_sel, m_main));
}
break;
}
@@ -107,7 +108,7 @@ void ui_menu_game_options::handle()
for (size_t index = 0; index < total; ++index)
s_sel[index] = ifile.get_file(index);
- ui_menu::stack_push(global_alloc_clear<ui_menu_selector>(machine(), container, s_sel, ifile.cur_file(), SELECTOR_INIFILE));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_selector>(ui(), container, s_sel, ifile.cur_file(), SELECTOR_INIFILE));
}
break;
}
@@ -131,7 +132,7 @@ void ui_menu_game_options::handle()
for (int index = 0; index < total; ++index)
s_sel[index] = ifile.get_category(index);
- ui_menu::stack_push(global_alloc_clear<ui_menu_selector>(machine(), container, s_sel, ifile.cur_cat(), SELECTOR_CATEGORY));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_selector>(ui(), container, s_sel, ifile.cur_cat(), SELECTOR_CATEGORY));
}
break;
}
@@ -142,7 +143,7 @@ void ui_menu_game_options::handle()
changed = true;
}
else if (m_event->iptkey == IPT_UI_SELECT)
- ui_menu::stack_push(global_alloc_clear<ui_menu_selector>(machine(), container, c_mnfct::ui, c_mnfct::actual));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_selector>(ui(), container, c_mnfct::ui, c_mnfct::actual));
break;
case YEAR_CAT_FILTER:
@@ -152,60 +153,60 @@ void ui_menu_game_options::handle()
changed = true;
}
else if (m_event->iptkey == IPT_UI_SELECT)
- ui_menu::stack_push(global_alloc_clear<ui_menu_selector>(machine(), container, c_year::ui, c_year::actual));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_selector>(ui(), container, c_year::ui, c_year::actual));
break;
case CONF_DIR:
if (m_event->iptkey == IPT_UI_SELECT)
- ui_menu::stack_push(global_alloc_clear<ui_menu_directory>(machine(), container));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_directory>(ui(), container));
break;
case MISC_MENU:
if (m_event->iptkey == IPT_UI_SELECT)
{
- ui_menu::stack_push(global_alloc_clear<ui_submenu>(machine(), container, misc_submenu_options));
+ ui_menu::stack_push(global_alloc_clear<ui_submenu>(ui(), container, misc_submenu_options));
ui_globals::reset = true;
}
break;
case SOUND_MENU:
if (m_event->iptkey == IPT_UI_SELECT)
{
- ui_menu::stack_push(global_alloc_clear<ui_menu_sound_options>(machine(), container));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_sound_options>(ui(), container));
ui_globals::reset = true;
}
break;
case DISPLAY_MENU:
if (m_event->iptkey == IPT_UI_SELECT)
{
- ui_menu::stack_push(global_alloc_clear<ui_submenu>(machine(), container, video_submenu_options));
+ ui_menu::stack_push(global_alloc_clear<ui_submenu>(ui(), container, video_submenu_options));
ui_globals::reset = true;
}
break;
case CUSTOM_MENU:
if (m_event->iptkey == IPT_UI_SELECT)
- ui_menu::stack_push(global_alloc_clear<ui_menu_custom_ui>(machine(), container));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_custom_ui>(ui(), container));
break;
case CONTROLLER_MENU:
if (m_event->iptkey == IPT_UI_SELECT)
- ui_menu::stack_push(global_alloc_clear<ui_submenu>(machine(), container, control_submenu_options));
+ ui_menu::stack_push(global_alloc_clear<ui_submenu>(ui(), container, control_submenu_options));
break;
case CGI_MENU:
if (m_event->iptkey == IPT_UI_SELECT)
- ui_menu::stack_push(global_alloc_clear<ui_menu_input_groups>(machine(), container));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_input_groups>(ui(), container));
break;
case CUSTOM_FILTER:
if (m_event->iptkey == IPT_UI_SELECT)
- ui_menu::stack_push(global_alloc_clear<ui_menu_custom_filter>(machine(), container));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_custom_filter>(ui(), container));
break;
case ADVANCED_MENU:
if (m_event->iptkey == IPT_UI_SELECT)
{
- ui_menu::stack_push(global_alloc_clear<ui_submenu>(machine(), container, advanced_submenu_options));
+ ui_menu::stack_push(global_alloc_clear<ui_submenu>(ui(), container, advanced_submenu_options));
ui_globals::reset = true;
}
break;
case SAVE_CONFIG:
if (m_event->iptkey == IPT_UI_SELECT)
- save_main_option(machine());
+ ui().save_main_option();
break;
}
@@ -282,8 +283,8 @@ void ui_menu_game_options::populate()
item_append(ui_menu_item_type::SEPARATOR);
item_append(_("Save Configuration"), nullptr, 0, (void *)(FPTR)SAVE_CONFIG);
- custombottom = 2.0f * mame_machine_manager::instance()->ui().get_line_height() + 3.0f * UI_BOX_TB_BORDER;
- customtop = mame_machine_manager::instance()->ui().get_line_height() + 3.0f * UI_BOX_TB_BORDER;
+ custombottom = 2.0f * ui().get_line_height() + 3.0f * UI_BOX_TB_BORDER;
+ customtop = ui().get_line_height() + 3.0f * UI_BOX_TB_BORDER;
}
//-------------------------------------------------
@@ -293,9 +294,8 @@ void ui_menu_game_options::populate()
void ui_menu_game_options::custom_render(void *selectedref, float top, float bottom, float origx1, float origy1, float origx2, float origy2)
{
float width;
- mame_ui_manager &mui = mame_machine_manager::instance()->ui();
- mui.draw_text_full(container, _("Settings"), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_TRUNCATE,
- DRAW_NONE, ARGB_WHITE, ARGB_BLACK, &width, nullptr);
+ ui().draw_text_full(container, _("Settings"), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_TRUNCATE,
+ DRAW_NONE, rgb_t::white, rgb_t::black, &width, nullptr);
width += 2 * UI_BOX_LR_BORDER;
float maxwidth = MAX(origx2 - origx1, width);
@@ -306,7 +306,7 @@ void ui_menu_game_options::custom_render(void *selectedref, float top, float bot
float y2 = origy1 - UI_BOX_TB_BORDER;
// draw a box
- mui.draw_outlined_box(container, x1, y1, x2, y2, UI_GREEN_COLOR);
+ ui().draw_outlined_box(container, x1, y1, x2, y2, UI_GREEN_COLOR);
// take off the borders
x1 += UI_BOX_LR_BORDER;
@@ -314,76 +314,6 @@ void ui_menu_game_options::custom_render(void *selectedref, float top, float bot
y1 += UI_BOX_TB_BORDER;
// draw the text within it
- mui.draw_text_full(container, _("Settings"), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_TRUNCATE,
+ ui().draw_text_full(container, _("Settings"), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_TRUNCATE,
DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr);
}
-
-//-------------------------------------------------
-// save ui options
-//-------------------------------------------------
-
-void save_ui_options(running_machine &machine)
-{
- // attempt to open the output file
- emu_file file(machine.options().ini_path(), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS);
- if (file.open("ui.ini") == osd_file::error::NONE)
- {
- // generate the updated INI
- std::string initext = mame_machine_manager::instance()->ui().options().output_ini();
- file.puts(initext.c_str());
- file.close();
- }
- else
- machine.popmessage(_("**Error saving ui.ini**"));
-}
-
-//-------------------------------------------------
-// save main option
-//-------------------------------------------------
-
-void save_main_option(running_machine &machine)
-{
- // parse the file
- std::string error;
- emu_options options(machine.options()); // This way we make sure that all OSD parts are in
- std::string error_string;
-
- // attempt to open the main ini file
- {
- emu_file file(machine.options().ini_path(), OPEN_FLAG_READ);
- if (file.open(emulator_info::get_configname(), ".ini") == osd_file::error::NONE)
- {
- bool result = options.parse_ini_file((util::core_file&)file, OPTION_PRIORITY_MAME_INI, OPTION_PRIORITY_DRIVER_INI, error);
- if (!result)
- {
- osd_printf_error("**Error loading %s.ini**", emulator_info::get_configname());
- return;
- }
- }
- }
-
- for (emu_options::entry &f_entry : machine.options())
- {
- if (f_entry.is_changed())
- {
- options.set_value(f_entry.name(), f_entry.value(), OPTION_PRIORITY_CMDLINE, error_string);
- }
- }
-
- // attempt to open the output file
- {
- emu_file file(machine.options().ini_path(), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS);
- if (file.open(emulator_info::get_configname(), ".ini") == osd_file::error::NONE)
- {
- // generate the updated INI
- std::string initext = options.output_ini();
- file.puts(initext.c_str());
- file.close();
- }
- else {
- machine.popmessage(_("**Error saving %s.ini**"), emulator_info::get_configname());
- return;
- }
- }
- mame_machine_manager::instance()->ui().popup_time(3, "%s", _("\n Configuration saved \n\n"));
-}
diff --git a/src/frontend/mame/ui/optsmenu.h b/src/frontend/mame/ui/optsmenu.h
index f6b4243afa0..9a87918f8f6 100644
--- a/src/frontend/mame/ui/optsmenu.h
+++ b/src/frontend/mame/ui/optsmenu.h
@@ -16,7 +16,7 @@
class ui_menu_game_options : public ui_menu
{
public:
- ui_menu_game_options(running_machine &machine, render_container *container);
+ ui_menu_game_options(mame_ui_manager &mui, render_container *container);
virtual ~ui_menu_game_options();
virtual void populate() override;
virtual void handle() override;
@@ -46,8 +46,4 @@ private:
};
};
-// save options to file
-void save_ui_options(running_machine &machine);
-void save_main_option(running_machine &machine);
-
#endif /* __UI_OPTSMENU_H__ */
diff --git a/src/frontend/mame/ui/pluginopt.cpp b/src/frontend/mame/ui/pluginopt.cpp
index ec6d0a4f25d..a8fd53475a8 100644
--- a/src/frontend/mame/ui/pluginopt.cpp
+++ b/src/frontend/mame/ui/pluginopt.cpp
@@ -21,12 +21,12 @@ void ui_menu_plugin::handle()
if (menu_event != nullptr && menu_event->itemref != nullptr)
{
if (menu_event->iptkey == IPT_UI_SELECT)
- ui_menu::stack_push(global_alloc_clear<ui_menu_plugin_opt>(machine(), container, (char *)menu_event->itemref));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_plugin_opt>(ui(), container, (char *)menu_event->itemref));
}
}
-ui_menu_plugin::ui_menu_plugin(running_machine &machine, render_container *container) :
- ui_menu(machine, container),
+ui_menu_plugin::ui_menu_plugin(mame_ui_manager &mui, render_container *container) :
+ ui_menu(mui, container),
m_plugins(mame_machine_manager::instance()->lua()->get_menu())
{
}
@@ -42,8 +42,8 @@ ui_menu_plugin::~ui_menu_plugin()
{
}
-ui_menu_plugin_opt::ui_menu_plugin_opt(running_machine &machine, render_container *container, char *menu) :
- ui_menu(machine, container),
+ui_menu_plugin_opt::ui_menu_plugin_opt(mame_ui_manager &mui, render_container *container, char *menu) :
+ ui_menu(mui, container),
m_menu(menu)
{
}
diff --git a/src/frontend/mame/ui/pluginopt.h b/src/frontend/mame/ui/pluginopt.h
index 9d529e93749..53f67bad810 100644
--- a/src/frontend/mame/ui/pluginopt.h
+++ b/src/frontend/mame/ui/pluginopt.h
@@ -18,7 +18,7 @@
class ui_menu_plugin : public ui_menu {
public:
- ui_menu_plugin(running_machine &machine, render_container *container);
+ ui_menu_plugin(mame_ui_manager &mui, render_container *container);
virtual ~ui_menu_plugin();
virtual void populate() override;
virtual void handle() override;
@@ -28,7 +28,7 @@ private:
class ui_menu_plugin_opt : public ui_menu {
public:
- ui_menu_plugin_opt(running_machine &machine, render_container *container, char *menu);
+ ui_menu_plugin_opt(mame_ui_manager &mui, render_container *container, char *menu);
virtual ~ui_menu_plugin_opt();
virtual void populate() override;
virtual void handle() override;
diff --git a/src/frontend/mame/ui/selector.cpp b/src/frontend/mame/ui/selector.cpp
index 4f06bd961f4..34b911f2ddf 100644
--- a/src/frontend/mame/ui/selector.cpp
+++ b/src/frontend/mame/ui/selector.cpp
@@ -9,6 +9,7 @@
*********************************************************************/
#include "emu.h"
+#include "mame.h"
#include "ui/ui.h"
#include "ui/menu.h"
#include "ui/selector.h"
@@ -18,8 +19,8 @@
// ctor / dtor
//-------------------------------------------------
-ui_menu_selector::ui_menu_selector(running_machine &machine, render_container *container, std::vector<std::string> const &s_sel, UINT16 &s_actual, int category, int _hover)
- : ui_menu(machine, container)
+ui_menu_selector::ui_menu_selector(mame_ui_manager &mui, render_container *container, std::vector<std::string> const &s_sel, UINT16 &s_actual, int category, int _hover)
+ : ui_menu(mui, container)
, m_selector(s_actual)
, m_category(category)
, m_hover(_hover)
@@ -30,8 +31,8 @@ ui_menu_selector::ui_menu_selector(running_machine &machine, render_container *c
m_searchlist[0] = nullptr;
}
-ui_menu_selector::ui_menu_selector(running_machine &machine, render_container *container, std::vector<std::string> &&s_sel, UINT16 &s_actual, int category, int _hover)
- : ui_menu(machine, container)
+ui_menu_selector::ui_menu_selector(mame_ui_manager &mui, render_container *container, std::vector<std::string> &&s_sel, UINT16 &s_actual, int category, int _hover)
+ : ui_menu(mui, container)
, m_selector(s_actual)
, m_category(category)
, m_hover(_hover)
@@ -150,7 +151,7 @@ void ui_menu_selector::populate()
}
item_append(ui_menu_item_type::SEPARATOR);
- customtop = custombottom = mame_machine_manager::instance()->ui().get_line_height() + 3.0f * UI_BOX_TB_BORDER;
+ customtop = custombottom = ui().get_line_height() + 3.0f * UI_BOX_TB_BORDER;
m_first_pass = false;
}
@@ -161,12 +162,11 @@ void ui_menu_selector::populate()
void ui_menu_selector::custom_render(void *selectedref, float top, float bottom, float origx1, float origy1, float origx2, float origy2)
{
float width;
- mame_ui_manager &mui = mame_machine_manager::instance()->ui();
std::string tempbuf = std::string(_("Selection List - Search: ")).append(m_search).append("_");
// get the size of the text
- mui.draw_text_full(container, tempbuf.c_str(), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_TRUNCATE,
- DRAW_NONE, ARGB_WHITE, ARGB_BLACK, &width, nullptr);
+ ui().draw_text_full(container, tempbuf.c_str(), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_TRUNCATE,
+ DRAW_NONE, rgb_t::white, rgb_t::black, &width, nullptr);
width += (2.0f * UI_BOX_LR_BORDER) + 0.01f;
float maxwidth = MAX(width, origx2 - origx1);
@@ -177,7 +177,7 @@ void ui_menu_selector::custom_render(void *selectedref, float top, float bottom,
float y2 = origy1 - UI_BOX_TB_BORDER;
// draw a box
- mui.draw_outlined_box(container, x1, y1, x2, y2, UI_GREEN_COLOR);
+ ui().draw_outlined_box(container, x1, y1, x2, y2, UI_GREEN_COLOR);
// take off the borders
x1 += UI_BOX_LR_BORDER;
@@ -185,7 +185,7 @@ void ui_menu_selector::custom_render(void *selectedref, float top, float bottom,
y1 += UI_BOX_TB_BORDER;
// draw the text within it
- mui.draw_text_full(container, tempbuf.c_str(), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_TRUNCATE,
+ ui().draw_text_full(container, tempbuf.c_str(), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_TRUNCATE,
DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr);
// bottom text
@@ -193,8 +193,8 @@ void ui_menu_selector::custom_render(void *selectedref, float top, float bottom,
std::string ui_select_text = machine().input().seq_name(machine().ioport().type_seq(IPT_UI_SELECT, 0, SEQ_TYPE_STANDARD));
tempbuf = string_format(_("Double click or press %1$s to select"), ui_select_text);
- mui.draw_text_full(container, tempbuf.c_str(), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_NEVER,
- DRAW_NONE, ARGB_WHITE, ARGB_BLACK, &width, nullptr);
+ ui().draw_text_full(container, tempbuf.c_str(), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_NEVER,
+ DRAW_NONE, rgb_t::white, rgb_t::black, &width, nullptr);
width += 2 * UI_BOX_LR_BORDER;
maxwidth = MAX(maxwidth, width);
@@ -205,7 +205,7 @@ void ui_menu_selector::custom_render(void *selectedref, float top, float bottom,
y2 = origy2 + bottom;
// draw a box
- mui.draw_outlined_box(container, x1, y1, x2, y2, UI_RED_COLOR);
+ ui().draw_outlined_box(container, x1, y1, x2, y2, UI_RED_COLOR);
// take off the borders
x1 += UI_BOX_LR_BORDER;
@@ -213,7 +213,7 @@ void ui_menu_selector::custom_render(void *selectedref, float top, float bottom,
y1 += UI_BOX_TB_BORDER;
// draw the text within it
- mui.draw_text_full(container, tempbuf.c_str(), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_NEVER,
+ ui().draw_text_full(container, tempbuf.c_str(), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_NEVER,
DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr);
}
diff --git a/src/frontend/mame/ui/selector.h b/src/frontend/mame/ui/selector.h
index 6809729396d..28e09b6325a 100644
--- a/src/frontend/mame/ui/selector.h
+++ b/src/frontend/mame/ui/selector.h
@@ -28,8 +28,8 @@ enum
class ui_menu_selector : public ui_menu
{
public:
- ui_menu_selector(running_machine &machine, render_container *container, std::vector<std::string> const &_sel, UINT16 &_actual, int _category = 0, int _hover = 0);
- ui_menu_selector(running_machine &machine, render_container *container, std::vector<std::string> &&_sel, UINT16 &_actual, int _category = 0, int _hover = 0);
+ ui_menu_selector(mame_ui_manager &mui, render_container *container, std::vector<std::string> const &_sel, UINT16 &_actual, int _category = 0, int _hover = 0);
+ ui_menu_selector(mame_ui_manager &mui, render_container *container, std::vector<std::string> &&_sel, UINT16 &_actual, int _category = 0, int _hover = 0);
virtual ~ui_menu_selector();
virtual void populate() override;
virtual void handle() override;
diff --git a/src/frontend/mame/ui/selgame.cpp b/src/frontend/mame/ui/selgame.cpp
index 25411715817..dbce4652514 100644
--- a/src/frontend/mame/ui/selgame.cpp
+++ b/src/frontend/mame/ui/selgame.cpp
@@ -50,12 +50,12 @@ int ui_menu_select_game::m_isabios = 0;
// ctor
//-------------------------------------------------
-ui_menu_select_game::ui_menu_select_game(running_machine &machine, render_container *container, const char *gamename) : ui_menu(machine, container)
+ui_menu_select_game::ui_menu_select_game(mame_ui_manager &mui, render_container *container, const char *gamename) : ui_menu(mui, container)
{
m_focus = focused_menu::main;
highlight = 0;
std::string error_string, last_filter, sub_filter;
- ui_options &moptions = mame_machine_manager::instance()->ui().options();
+ ui_options &moptions = mui.options();
// load drivers cache
init_sorted_list();
@@ -122,8 +122,8 @@ ui_menu_select_game::ui_menu_select_game(running_machine &machine, render_contai
if (!moptions.remember_last())
reselect_last::reset();
- machine.options().set_value(OPTION_SNAPNAME, "%g/%i", OPTION_PRIORITY_CMDLINE, error_string);
- machine.options().set_value(OPTION_SOFTWARENAME, "", OPTION_PRIORITY_CMDLINE, error_string);
+ mui.machine().options().set_value(OPTION_SNAPNAME, "%g/%i", OPTION_PRIORITY_CMDLINE, error_string);
+ mui.machine().options().set_value(OPTION_SOFTWARENAME, "", OPTION_PRIORITY_CMDLINE, error_string);
ui_globals::curimage_view = FIRST_VIEW;
ui_globals::curdats_view = UI_FIRST_LOAD;
@@ -142,7 +142,7 @@ ui_menu_select_game::~ui_menu_select_game()
std::string error_string, last_driver;
const game_driver *driver = nullptr;
ui_software_info *swinfo = nullptr;
- ui_options &mopt = mame_machine_manager::instance()->ui().options();
+ ui_options &mopt = ui().options();
if (isfavorite())
swinfo = (selected >= 0 && selected < item.size()) ? (ui_software_info *)item[selected].ref : nullptr;
else
@@ -163,7 +163,7 @@ ui_menu_select_game::~ui_menu_select_game()
mopt.set_value(OPTION_LAST_USED_FILTER, filter.c_str(), OPTION_PRIORITY_CMDLINE, error_string);
mopt.set_value(OPTION_LAST_USED_MACHINE, last_driver.c_str(), OPTION_PRIORITY_CMDLINE, error_string);
mopt.set_value(OPTION_HIDE_PANELS, ui_globals::panels_status, OPTION_PRIORITY_CMDLINE, error_string);
- save_ui_options(machine());
+ ui().save_ui_options();
}
//-------------------------------------------------
@@ -176,7 +176,7 @@ void ui_menu_select_game::handle()
m_prev_selected = item[0].ref;
bool check_filter = false;
- bool enabled_dats = mame_machine_manager::instance()->ui().options().enabled_dats();
+ bool enabled_dats = ui().options().enabled_dats();
// if i have to load datfile, performe an hard reset
if (ui_globals::reset)
@@ -191,7 +191,7 @@ void ui_menu_select_game::handle()
if (reselect_last::get())
{
const game_driver *driver = (const game_driver *)item[selected].ref;
- ui_menu::stack_push(global_alloc_clear<ui_menu_select_software>(machine(), container, driver));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_select_software>(ui(), container, driver));
return;
}
@@ -231,7 +231,7 @@ void ui_menu_select_game::handle()
else if (m_event->iptkey == IPT_CUSTOM)
{
if (!isfavorite())
- ui_menu::stack_push(global_alloc_clear<ui_menu_machine_configure>(machine(), container, (const game_driver *)m_prev_selected, m_event->mouse.x0, m_event->mouse.y0));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_machine_configure>(ui(), container, (const game_driver *)m_prev_selected, m_event->mouse.x0, m_event->mouse.y0));
}
// handle UI_LEFT
@@ -348,7 +348,7 @@ void ui_menu_select_game::handle()
{
const game_driver *driver = (const game_driver *)m_event->itemref;
if ((FPTR)driver > skip_main_items && mame_machine_manager::instance()->datfile().has_data(driver))
- ui_menu::stack_push(global_alloc_clear<ui_menu_dats_view>(machine(), container, driver));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_dats_view>(ui(), container, driver));
}
else
{
@@ -358,9 +358,9 @@ void ui_menu_select_game::handle()
if ((FPTR)ui_swinfo > skip_main_items)
{
if (ui_swinfo->startempty == 1 && mdat.has_history(ui_swinfo->driver))
- ui_menu::stack_push(global_alloc_clear<ui_menu_dats_view>(machine(), container, ui_swinfo->driver));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_dats_view>(ui(), container, ui_swinfo->driver));
else if (mdat.has_software(ui_swinfo->listname, ui_swinfo->shortname, ui_swinfo->parentname) || !ui_swinfo->usage.empty())
- ui_menu::stack_push(global_alloc_clear<ui_menu_dats_view>(machine(), container, ui_swinfo));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_dats_view>(ui(), container, ui_swinfo));
}
}
}
@@ -373,15 +373,16 @@ void ui_menu_select_game::handle()
const game_driver *driver = (const game_driver *)m_event->itemref;
if ((FPTR)driver > skip_main_items)
{
- if (!mame_machine_manager::instance()->favorite().isgame_favorite(driver))
+ favorite_manager &mfav = mame_machine_manager::instance()->favorite();
+ if (!mfav.isgame_favorite(driver))
{
- mame_machine_manager::instance()->favorite().add_favorite_game(driver);
+ mfav.add_favorite_game(driver);
machine().popmessage(_("%s\n added to favorites list."), driver->description);
}
else
{
- mame_machine_manager::instance()->favorite().remove_favorite_game();
+ mfav.remove_favorite_game();
machine().popmessage(_("%s\n removed from favorites list."), driver->description);
}
}
@@ -404,11 +405,11 @@ void ui_menu_select_game::handle()
// handle UI_AUDIT_FAST
else if (m_event->iptkey == IPT_UI_AUDIT_FAST && !m_unavailsortedlist.empty())
- ui_menu::stack_push(global_alloc_clear<ui_menu_audit>(machine(), container, m_availsortedlist, m_unavailsortedlist, 1));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_audit>(ui(), container, m_availsortedlist, m_unavailsortedlist, 1));
// handle UI_AUDIT_ALL
else if (m_event->iptkey == IPT_UI_AUDIT_ALL)
- ui_menu::stack_push(global_alloc_clear<ui_menu_audit>(machine(), container, m_availsortedlist, m_unavailsortedlist, 2));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_audit>(ui(), container, m_availsortedlist, m_unavailsortedlist, 2));
// typed characters append to the buffer
else if (m_event->iptkey == IPT_SPECIAL)
@@ -453,7 +454,7 @@ void ui_menu_select_game::handle()
// if we're in an error state, overlay an error message
if (ui_error)
- mame_machine_manager::instance()->ui().draw_text_box(container, _("The selected machine is missing one or more required ROM or CHD images. "
+ ui().draw_text_box(container, _("The selected machine is missing one or more required ROM or CHD images. "
"Please select a different machine.\n\nPress any key to continue."), JUSTIFY_CENTER, 0.5f, 0.5f, UI_RED_COLOR);
// handle filters selection from key shortcuts
@@ -463,17 +464,17 @@ void ui_menu_select_game::handle()
if (l_hover == FILTER_CATEGORY)
{
main_filters::actual = l_hover;
- ui_menu::stack_push(global_alloc_clear<ui_menu_game_options>(machine(), container));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_game_options>(ui(), container));
}
else if (l_hover == FILTER_CUSTOM)
{
main_filters::actual = l_hover;
- ui_menu::stack_push(global_alloc_clear<ui_menu_custom_filter>(machine(), container, true));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_custom_filter>(ui(), container, true));
}
else if (l_hover == FILTER_MANUFACTURER)
- ui_menu::stack_push(global_alloc_clear<ui_menu_selector>(machine(), container, c_mnfct::ui, c_mnfct::actual, SELECTOR_GAME, l_hover));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_selector>(ui(), container, c_mnfct::ui, c_mnfct::actual, SELECTOR_GAME, l_hover));
else if (l_hover == FILTER_YEAR)
- ui_menu::stack_push(global_alloc_clear<ui_menu_selector>(machine(), container, c_year::ui, c_year::actual, SELECTOR_GAME, l_hover));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_selector>(ui(), container, c_year::ui, c_year::actual, SELECTOR_GAME, l_hover));
else
{
if (l_hover >= FILTER_ALL)
@@ -604,8 +605,8 @@ void ui_menu_select_game::populate()
skip_main_items = 0;
// configure the custom rendering
- customtop = 3.0f * mame_machine_manager::instance()->ui().get_line_height() + 5.0f * UI_BOX_TB_BORDER;
- custombottom = 5.0f * mame_machine_manager::instance()->ui().get_line_height() + 3.0f * UI_BOX_TB_BORDER;
+ customtop = 3.0f * ui().get_line_height() + 5.0f * UI_BOX_TB_BORDER;
+ custombottom = 5.0f * ui().get_line_height() + 3.0f * UI_BOX_TB_BORDER;
// reselect prior game launched, if any
if (old_item_selected != -1)
@@ -750,8 +751,8 @@ void ui_menu_select_game::custom_render(void *selectedref, float top, float bott
std::string tempbuf[5];
rgb_t color = UI_BACKGROUND_COLOR;
bool isstar = false;
- mame_ui_manager &mui = mame_machine_manager::instance()->ui();
- float tbarspace = mui.get_line_height();
+ inifile_manager &inifile = mame_machine_manager::instance()->inifile();
+ float tbarspace = ui().get_line_height();
float text_size = 1.0f;
tempbuf[0] = string_format(_("%1$s %2$s ( %3$d / %4$d machines (%5$d BIOS) )"),
@@ -762,12 +763,12 @@ void ui_menu_select_game::custom_render(void *selectedref, float top, float bott
m_isabios);
std::string filtered;
- if (main_filters::actual == FILTER_CATEGORY && mame_machine_manager::instance()->inifile().total() > 0)
+ if (main_filters::actual == FILTER_CATEGORY && inifile.total() > 0)
{
filtered = string_format(_("%1$s (%2$s - %3$s) - "),
main_filters::text[main_filters::actual],
- mame_machine_manager::instance()->inifile().get_file(),
- mame_machine_manager::instance()->inifile().get_category());
+ inifile.get_file(),
+ inifile.get_category());
}
else if (main_filters::actual == FILTER_MANUFACTURER)
{
@@ -791,8 +792,8 @@ void ui_menu_select_game::custom_render(void *selectedref, float top, float bott
// get the size of the text
for (int line = 0; line < 2; ++line)
{
- mui.draw_text_full(container, tempbuf[line].c_str(), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_NEVER,
- DRAW_NONE, ARGB_WHITE, ARGB_BLACK, &width, nullptr);
+ ui().draw_text_full(container, tempbuf[line].c_str(), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_NEVER,
+ DRAW_NONE, rgb_t::white, rgb_t::black, &width, nullptr);
width += 2 * UI_BOX_LR_BORDER;
maxwidth = MAX(width, maxwidth);
}
@@ -810,7 +811,7 @@ void ui_menu_select_game::custom_render(void *selectedref, float top, float bott
float y2 = origy1 - 3.0f * UI_BOX_TB_BORDER - tbarspace;
// draw a box
- mui.draw_outlined_box(container, x1, y1, x2, y2, UI_BACKGROUND_COLOR);
+ ui().draw_outlined_box(container, x1, y1, x2, y2, UI_BACKGROUND_COLOR);
// take off the borders
x1 += UI_BOX_LR_BORDER;
@@ -820,9 +821,9 @@ void ui_menu_select_game::custom_render(void *selectedref, float top, float bott
// draw the text within it
for (int line = 0; line < 2; ++line)
{
- mui.draw_text_full(container, tempbuf[line].c_str(), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_NEVER,
+ ui().draw_text_full(container, tempbuf[line].c_str(), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_NEVER,
DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr, text_size);
- y1 += mui.get_line_height();
+ y1 += ui().get_line_height();
}
// determine the text to render below
@@ -945,8 +946,8 @@ void ui_menu_select_game::custom_render(void *selectedref, float top, float bott
for (auto & elem : tempbuf)
{
- mui.draw_text_full(container, elem.c_str(), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_NEVER,
- DRAW_NONE, ARGB_WHITE, ARGB_BLACK, &width, nullptr);
+ ui().draw_text_full(container, elem.c_str(), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_NEVER,
+ DRAW_NONE, rgb_t::white, rgb_t::black, &width, nullptr);
width += 2 * UI_BOX_LR_BORDER;
maxwidth = MAX(maxwidth, width);
}
@@ -964,7 +965,7 @@ void ui_menu_select_game::custom_render(void *selectedref, float top, float bott
y2 = origy2 + bottom;
// draw a box
- mui.draw_outlined_box(container, x1, y1, x2, y2, color);
+ ui().draw_outlined_box(container, x1, y1, x2, y2, color);
// take off the borders
x1 += UI_BOX_LR_BORDER;
@@ -978,9 +979,9 @@ void ui_menu_select_game::custom_render(void *selectedref, float top, float bott
// draw all lines
for (auto & elem : tempbuf)
{
- mui.draw_text_full(container, elem.c_str(), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_NEVER,
+ ui().draw_text_full(container, elem.c_str(), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_NEVER,
DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr, text_size);
- y1 += mui.get_line_height();
+ y1 += ui().get_line_height();
}
}
@@ -989,22 +990,22 @@ void ui_menu_select_game::custom_render(void *selectedref, float top, float bott
// and inescapable
//-------------------------------------------------
-void ui_menu_select_game::force_game_select(running_machine &machine, render_container *container)
+void ui_menu_select_game::force_game_select(mame_ui_manager &mui, render_container *container)
{
// reset the menu stack
- ui_menu::stack_reset(machine);
+ ui_menu::stack_reset(mui.machine());
// add the quit entry followed by the game select entry
- ui_menu *quit = global_alloc_clear<ui_menu_quit_game>(machine, container);
+ ui_menu *quit = global_alloc_clear<ui_menu_quit_game>(mui, container);
quit->set_special_main_menu(true);
ui_menu::stack_push(quit);
- ui_menu::stack_push(global_alloc_clear<ui_menu_select_game>(machine, container, nullptr));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_select_game>(mui, container, nullptr));
// force the menus on
- mame_machine_manager::instance()->ui().show_menu();
+ mui.show_menu();
// make sure MAME is paused
- machine.pause();
+ mui.machine().pause();
}
//-------------------------------------------------
@@ -1017,13 +1018,13 @@ void ui_menu_select_game::inkey_select(const ui_menu_event *m_event)
// special case for configure options
if ((FPTR)driver == CONF_OPTS)
- ui_menu::stack_push(global_alloc_clear<ui_menu_game_options>(machine(), container));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_game_options>(ui(), container));
// special case for configure machine
else if ((FPTR)driver == CONF_MACHINE)
{
if (m_prev_selected != nullptr)
- ui_menu::stack_push(global_alloc_clear<ui_menu_machine_configure>(machine(), container, (const game_driver *)m_prev_selected));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_machine_configure>(ui(), container, (const game_driver *)m_prev_selected));
else
return;
}
@@ -1031,7 +1032,7 @@ void ui_menu_select_game::inkey_select(const ui_menu_event *m_event)
// special case for configure plugins
else if ((FPTR)driver == CONF_PLUGINS)
{
- ui_menu::stack_push(global_alloc_clear<ui_menu_plugins_configure>(machine(), container));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_plugins_configure>(ui(), container));
}
// anything else is a driver
else
@@ -1050,14 +1051,14 @@ void ui_menu_select_game::inkey_select(const ui_menu_event *m_event)
for (software_list_device &swlistdev : software_list_device_iterator(enumerator.config().root_device()))
if (!swlistdev.get_info().empty())
{
- ui_menu::stack_push(global_alloc_clear<ui_menu_select_software>(machine(), container, driver));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_select_software>(ui(), container, driver));
return;
}
}
s_bios biosname;
- if (!mame_machine_manager::instance()->ui().options().skip_bios_menu() && has_multiple_bios(driver, biosname))
- ui_menu::stack_push(global_alloc_clear<ui_bios_selection>(machine(), container, biosname, (void *)driver, false, false));
+ if (!ui().options().skip_bios_menu() && has_multiple_bios(driver, biosname))
+ ui_menu::stack_push(global_alloc_clear<ui_bios_selection>(ui(), container, biosname, (void *)driver, false, false));
else
{
reselect_last::driver = driver->name;
@@ -1084,11 +1085,11 @@ void ui_menu_select_game::inkey_select(const ui_menu_event *m_event)
void ui_menu_select_game::inkey_select_favorite(const ui_menu_event *m_event)
{
ui_software_info *ui_swinfo = (ui_software_info *)m_event->itemref;
- ui_options &mopt = mame_machine_manager::instance()->ui().options();
+ ui_options &mopt = ui().options();
// special case for configure options
if ((FPTR)ui_swinfo == CONF_OPTS)
- ui_menu::stack_push(global_alloc_clear<ui_menu_game_options>(machine(), container));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_game_options>(ui(), container));
/* special case for configure machine TODO
else if ((FPTR)ui_swinfo == CONF_MACHINE)
{
@@ -1096,7 +1097,7 @@ void ui_menu_select_game::inkey_select_favorite(const ui_menu_event *m_event)
{
ui_software_info *swinfo = (ui_software_info *)m_prev_selected;
if (swinfo->startempty == 1)
- ui_menu::stack_push(global_alloc_clear<ui_menu_machine_configure>(machine(), container, swinfo->driver));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_machine_configure>(ui(), container, swinfo->driver));
}
else
return;
@@ -1104,7 +1105,7 @@ void ui_menu_select_game::inkey_select_favorite(const ui_menu_event *m_event)
// special case for configure plugins
else if ((FPTR)ui_swinfo == CONF_PLUGINS)
{
- ui_menu::stack_push(global_alloc_clear<ui_menu_plugins_configure>(machine(), container));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_plugins_configure>(ui(), container));
}
else if (ui_swinfo->startempty == 1)
{
@@ -1119,7 +1120,7 @@ void ui_menu_select_game::inkey_select_favorite(const ui_menu_event *m_event)
{
s_bios biosname;
if (!mopt.skip_bios_menu() && has_multiple_bios(ui_swinfo->driver, biosname))
- ui_menu::stack_push(global_alloc_clear<ui_bios_selection>(machine(), container, biosname, (void *)ui_swinfo->driver, false, false));
+ ui_menu::stack_push(global_alloc_clear<ui_bios_selection>(ui(), container, biosname, (void *)ui_swinfo->driver, false, false));
else
{
reselect_last::driver = ui_swinfo->driver->name;
@@ -1153,7 +1154,7 @@ void ui_menu_select_game::inkey_select_favorite(const ui_menu_event *m_event)
s_bios biosname;
if (!mopt.skip_bios_menu() && has_multiple_bios(ui_swinfo->driver, biosname))
{
- ui_menu::stack_push(global_alloc_clear<ui_bios_selection>(machine(), container, biosname, (void *)ui_swinfo, true, false));
+ ui_menu::stack_push(global_alloc_clear<ui_bios_selection>(ui(), container, biosname, (void *)ui_swinfo, true, false));
return;
}
else if (!mopt.skip_parts_menu() && swinfo->has_multiple_parts(ui_swinfo->interface.c_str()))
@@ -1169,7 +1170,7 @@ void ui_menu_select_game::inkey_select_favorite(const ui_menu_event *m_event)
parts.emplace(swpart.name(), menu_part_name);
}
}
- ui_menu::stack_push(global_alloc_clear<ui_software_parts>(machine(), container, parts, ui_swinfo));
+ ui_menu::stack_push(global_alloc_clear<ui_software_parts>(ui(), container, parts, ui_swinfo));
return;
}
@@ -1589,7 +1590,7 @@ void ui_menu_select_game::general_info(const game_driver *driver, std::string &b
util::stream_format(str, _("Requires CHD: %1$s\n"), found ? _("Yes") : _("No"));
// audit the game first to see if we're going to work
- if (mame_machine_manager::instance()->ui().options().info_audit())
+ if (ui().options().info_audit())
{
driver_enumerator enumerator(machine().options(), *driver);
enumerator.next();
@@ -1630,7 +1631,7 @@ void ui_menu_select_game::inkey_export()
{
list = m_displaylist;
}
- ui_menu::stack_push(global_alloc_clear<ui_menu_export>(machine(), container, list));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_export>(ui(), container, list));
}
//-------------------------------------------------
@@ -1669,7 +1670,7 @@ void ui_menu_select_game::init_sorted_list()
bool ui_menu_select_game::load_available_machines()
{
// try to load available drivers from file
- emu_file file(mame_machine_manager::instance()->ui().options().ui_path(), OPEN_FLAG_READ);
+ emu_file file(ui().options().ui_path(), OPEN_FLAG_READ);
if (file.open(emulator_info::get_configname(), "_avail.ini") != osd_file::error::NONE)
return false;
@@ -1721,7 +1722,7 @@ bool ui_menu_select_game::load_available_machines()
void ui_menu_select_game::load_custom_filters()
{
// attempt to open the output file
- emu_file file(mame_machine_manager::instance()->ui().options().ui_path(), OPEN_FLAG_READ);
+ emu_file file(ui().options().ui_path(), OPEN_FLAG_READ);
if (file.open("custom_", emulator_info::get_configname(), "_filter.ini") == osd_file::error::NONE)
{
char buffer[MAX_CHAR_INFO];
@@ -1780,14 +1781,13 @@ void ui_menu_select_game::load_custom_filters()
float ui_menu_select_game::draw_left_panel(float x1, float y1, float x2, float y2)
{
- mame_ui_manager &mui = mame_machine_manager::instance()->ui();
- float line_height = mui.get_line_height();
+ float line_height = ui().get_line_height();
if (ui_globals::panels_status == SHOW_PANELS || ui_globals::panels_status == HIDE_RIGHT_PANEL)
{
float origy1 = y1;
float origy2 = y2;
- float text_size = mame_machine_manager::instance()->ui().options().infos_size();
+ float text_size = ui().options().infos_size();
float line_height_max = line_height * text_size;
float left_width = 0.0f;
int text_lenght = main_filters::length;
@@ -1803,13 +1803,13 @@ float ui_menu_select_game::draw_left_panel(float x1, float y1, float x2, float y
line_height_max = line_height * text_size;
}
- float text_sign = mui.get_string_width("_# ", text_size);
+ float text_sign = ui().get_string_width("_# ", text_size);
for (int x = 0; x < text_lenght; ++x)
{
float total_width;
// compute width of left hand side
- total_width = mui.get_string_width(text[x], text_size);
+ total_width = ui().get_string_width(text[x], text_size);
total_width += text_sign;
// track the maximum
@@ -1818,7 +1818,7 @@ float ui_menu_select_game::draw_left_panel(float x1, float y1, float x2, float y
}
x2 = x1 + left_width + 2.0f * UI_BOX_LR_BORDER;
- mui.draw_outlined_box(container, x1, y1, x2, y2, UI_BACKGROUND_COLOR);
+ ui().draw_outlined_box(container, x1, y1, x2, y2, UI_BACKGROUND_COLOR);
// take off the borders
x1 += UI_BOX_LR_BORDER;
@@ -1844,7 +1844,7 @@ float ui_menu_select_game::draw_left_panel(float x1, float y1, float x2, float y
{
fgcolor = rgb_t(0xff, 0xff, 0xff, 0x00);
bgcolor = rgb_t(0xff, 0xff, 0xff, 0xff);
- mui.draw_textured_box(container, x1, y1, x2, y1 + line_height_max, bgcolor, rgb_t(255, 43, 43, 43),
+ ui().draw_textured_box(container, x1, y1, x2, y1 + line_height_max, bgcolor, rgb_t(255, 43, 43, 43),
hilight_main_texture, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA) | PRIMFLAG_TEXWRAP(TRUE));
}
@@ -1878,7 +1878,7 @@ float ui_menu_select_game::draw_left_panel(float x1, float y1, float x2, float y
convert_command_glyph(str);
}
- mui.draw_text_full(container, str.c_str(), x1t, y1, x2 - x1, JUSTIFY_LEFT, WRAP_NEVER,
+ ui().draw_text_full(container, str.c_str(), x1t, y1, x2 - x1, JUSTIFY_LEFT, WRAP_NEVER,
DRAW_NORMAL, fgcolor, bgcolor, nullptr, nullptr, text_size);
y1 += line_height_max;
}
@@ -1897,7 +1897,7 @@ float ui_menu_select_game::draw_left_panel(float x1, float y1, float x2, float y
float ar_x1 = ar_x0 + lr_arrow_width;
float ar_y1 = 0.5f * (y2 + y1) + 0.9f * space;
- mui.draw_outlined_box(container, x1, y1, x2, y2, rgb_t(0xEF, 0x12, 0x47, 0x7B));
+ ui().draw_outlined_box(container, x1, y1, x2, y2, rgb_t(0xEF, 0x12, 0x47, 0x7B));
if (mouse_hit && x1 <= mouse_x && x2 > mouse_x && y1 <= mouse_y && y2 > mouse_y)
{
@@ -1920,7 +1920,7 @@ float ui_menu_select_game::draw_left_panel(float x1, float y1, float x2, float y
float ar_x1 = ar_x0 + lr_arrow_width;
float ar_y1 = 0.5f * (y2 + y1) + 0.9f * space;
- mui.draw_outlined_box(container, x1, y1, x2, y2, rgb_t(0xEF, 0x12, 0x47, 0x7B));
+ ui().draw_outlined_box(container, x1, y1, x2, y2, rgb_t(0xEF, 0x12, 0x47, 0x7B));
if (mouse_hit && x1 <= mouse_x && x2 > mouse_x && y1 <= mouse_y && y2 > mouse_y)
{
@@ -1939,12 +1939,11 @@ float ui_menu_select_game::draw_left_panel(float x1, float y1, float x2, float y
void ui_menu_select_game::infos_render(void *selectedref, float origx1, float origy1, float origx2, float origy2)
{
- mame_ui_manager &mui = mame_machine_manager::instance()->ui();
- float line_height = mui.get_line_height();
+ float line_height = ui().get_line_height();
static std::string buffer;
std::vector<int> xstart;
std::vector<int> xend;
- float text_size = mame_machine_manager::instance()->ui().options().infos_size();
+ float text_size = ui().options().infos_size();
const game_driver *driver = nullptr;
ui_software_info *soft = nullptr;
bool is_favorites = ((item[0].flags & MENU_FLAG_UI_FAVORITE) != 0);
@@ -1988,7 +1987,7 @@ void ui_menu_select_game::infos_render(void *selectedref, float origx1, float or
for (int x = UI_FIRST_LOAD; x < UI_LAST_LOAD; ++x)
{
- mui.draw_text_full(container, _(dats_info[x]), origx1, origy1, origx2 - origx1, JUSTIFY_CENTER,
+ ui().draw_text_full(container, _(dats_info[x]), origx1, origy1, origx2 - origx1, JUSTIFY_CENTER,
WRAP_NEVER, DRAW_NONE, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, &txt_length, nullptr);
txt_length += 0.01f;
title_size = (std::max)(txt_length, title_size);
@@ -2010,10 +2009,10 @@ void ui_menu_select_game::infos_render(void *selectedref, float origx1, float or
title_size *= tmp_size;
if (bgcolor != UI_TEXT_BG_COLOR)
- mui.draw_textured_box(container, origx1 + ((middle - title_size) * 0.5f), origy1, origx1 + ((middle + title_size) * 0.5f),
+ ui().draw_textured_box(container, origx1 + ((middle - title_size) * 0.5f), origy1, origx1 + ((middle + title_size) * 0.5f),
origy1 + line_height, bgcolor, rgb_t(255, 43, 43, 43), hilight_main_texture, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA) | PRIMFLAG_TEXWRAP(TRUE));
- mui.draw_text_full(container, snaptext.c_str(), origx1, origy1, origx2 - origx1, JUSTIFY_CENTER,
+ ui().draw_text_full(container, snaptext.c_str(), origx1, origy1, origx2 - origx1, JUSTIFY_CENTER,
WRAP_NEVER, DRAW_NORMAL, fgcolor, bgcolor, nullptr, nullptr, tmp_size);
draw_common_arrow(origx1, origy1, origx2, origy2, ui_globals::curdats_view, UI_FIRST_LOAD, UI_LAST_LOAD, title_size);
@@ -2050,14 +2049,14 @@ void ui_menu_select_game::infos_render(void *selectedref, float origx1, float or
if (buffer.empty())
{
- mui.draw_text_full(container, _("No Infos Available"), origx1, (origy2 + origy1) * 0.5f, origx2 - origx1, JUSTIFY_CENTER,
+ ui().draw_text_full(container, _("No Infos Available"), origx1, (origy2 + origy1) * 0.5f, origx2 - origx1, JUSTIFY_CENTER,
WRAP_WORD, DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr);
return;
}
else if (ui_globals::curdats_view != UI_STORY_LOAD && ui_globals::curdats_view != UI_COMMAND_LOAD)
- totallines = mui.wrap_text(container, buffer.c_str(), origx1, origy1, origx2 - origx1 - (2.0f * gutter_width), xstart, xend, text_size);
+ totallines = ui().wrap_text(container, buffer.c_str(), origx1, origy1, origx2 - origx1 - (2.0f * gutter_width), xstart, xend, text_size);
else
- totallines = mui.wrap_text(container, buffer.c_str(), 0.0f, 0.0f, 1.0f - (2.0f * gutter_width), xstart, xend, text_size);
+ totallines = ui().wrap_text(container, buffer.c_str(), 0.0f, 0.0f, 1.0f - (2.0f * gutter_width), xstart, xend, text_size);
int r_visible_lines = floor((origy2 - oy1) / (line_height * text_size));
if (totallines < r_visible_lines)
@@ -2083,13 +2082,13 @@ void ui_menu_select_game::infos_render(void *selectedref, float origx1, float or
else if (ui_globals::curdats_view == UI_STORY_LOAD)
{
// check size
- float textlen = mui.get_string_width(tempbuf.c_str(), text_size);
+ float textlen = ui().get_string_width(tempbuf.c_str(), text_size);
float tmp_size2 = (textlen > sc) ? text_size * (sc / textlen) : text_size;
size_t last_underscore = tempbuf.find_last_of("_");
if (last_underscore == std::string::npos)
{
- mui.draw_text_full(container, tempbuf.c_str(), origx1, oy1, origx2 - origx1, JUSTIFY_CENTER,
+ ui().draw_text_full(container, tempbuf.c_str(), origx1, oy1, origx2 - origx1, JUSTIFY_CENTER,
WRAP_TRUNCATE, DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr, tmp_size2);
}
else
@@ -2100,10 +2099,10 @@ void ui_menu_select_game::infos_render(void *selectedref, float origx1, float or
std::string first_part(tempbuf.substr(0, tempbuf.find("___")));
float item_width;
- mui.draw_text_full(container, first_part.c_str(), effective_left, oy1, effective_width,
+ ui().draw_text_full(container, first_part.c_str(), effective_left, oy1, effective_width,
JUSTIFY_LEFT, WRAP_TRUNCATE, DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, &item_width, nullptr, tmp_size2);
- mui.draw_text_full(container, last_part.c_str(), effective_left + item_width, oy1,
+ ui().draw_text_full(container, last_part.c_str(), effective_left + item_width, oy1,
origx2 - origx1 - 2.0f * gutter_width - item_width, JUSTIFY_RIGHT, WRAP_TRUNCATE,
DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr, tmp_size2);
}
@@ -2113,7 +2112,7 @@ void ui_menu_select_game::infos_render(void *selectedref, float origx1, float or
else if (ui_globals::curdats_view == UI_COMMAND_LOAD || ui_globals::curdats_view == UI_GENERAL_LOAD)
{
// check size
- float textlen = mui.get_string_width(tempbuf.c_str(), text_size);
+ float textlen = ui().get_string_width(tempbuf.c_str(), text_size);
float tmp_size3 = (textlen > sc) ? text_size * (sc / textlen) : text_size;
int first_dspace = (ui_globals::curdats_view == UI_COMMAND_LOAD) ? tempbuf.find(" ") : tempbuf.find(":");
@@ -2124,18 +2123,18 @@ void ui_menu_select_game::infos_render(void *selectedref, float origx1, float or
std::string first_part(tempbuf.substr(0, first_dspace));
std::string last_part(tempbuf.substr(first_dspace + 1));
strtrimspace(last_part);
- mui.draw_text_full(container, first_part.c_str(), effective_left, oy1, effective_width, JUSTIFY_LEFT,
+ ui().draw_text_full(container, first_part.c_str(), effective_left, oy1, effective_width, JUSTIFY_LEFT,
WRAP_TRUNCATE, DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr, tmp_size3);
- mui.draw_text_full(container, last_part.c_str(), effective_left, oy1, origx2 - origx1 - 2.0f * gutter_width,
+ ui().draw_text_full(container, last_part.c_str(), effective_left, oy1, origx2 - origx1 - 2.0f * gutter_width,
JUSTIFY_RIGHT, WRAP_TRUNCATE, DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr, tmp_size3);
}
else
- mui.draw_text_full(container, tempbuf.c_str(), origx1 + gutter_width, oy1, origx2 - origx1, JUSTIFY_LEFT,
+ ui().draw_text_full(container, tempbuf.c_str(), origx1 + gutter_width, oy1, origx2 - origx1, JUSTIFY_LEFT,
WRAP_TRUNCATE, DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr, tmp_size3);
}
else
- mui.draw_text_full(container, tempbuf.c_str(), origx1 + gutter_width, oy1, origx2 - origx1, JUSTIFY_LEFT,
+ ui().draw_text_full(container, tempbuf.c_str(), origx1 + gutter_width, oy1, origx2 - origx1, JUSTIFY_LEFT,
WRAP_TRUNCATE, DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr, text_size);
oy1 += (line_height * text_size);
@@ -2153,7 +2152,7 @@ void ui_menu_select_game::infos_render(void *selectedref, float origx1, float or
// apply title to right panel
if (soft->usage.empty())
{
- mui.draw_text_full(container, _("History"), origx1, origy1, origx2 - origx1, JUSTIFY_CENTER, WRAP_TRUNCATE,
+ ui().draw_text_full(container, _("History"), origx1, origy1, origx2 - origx1, JUSTIFY_CENTER, WRAP_TRUNCATE,
DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr);
ui_globals::cur_sw_dats_view = 0;
}
@@ -2167,7 +2166,7 @@ void ui_menu_select_game::infos_render(void *selectedref, float origx1, float or
for (auto & elem: t_text)
{
- mui.draw_text_full(container, elem.c_str(), origx1, origy1, origx2 - origx1, JUSTIFY_CENTER, WRAP_TRUNCATE,
+ ui().draw_text_full(container, elem.c_str(), origx1, origy1, origx2 - origx1, JUSTIFY_CENTER, WRAP_TRUNCATE,
DRAW_NONE, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, &txt_length, nullptr);
txt_length += 0.01f;
title_size = (std::max)(txt_length, title_size);
@@ -2184,10 +2183,10 @@ void ui_menu_select_game::infos_render(void *selectedref, float origx1, float or
float middle = origx2 - origx1;
if (bgcolor != UI_TEXT_BG_COLOR)
- mui.draw_textured_box(container, origx1 + ((middle - title_size) * 0.5f), origy1, origx1 + ((middle + title_size) * 0.5f),
+ ui().draw_textured_box(container, origx1 + ((middle - title_size) * 0.5f), origy1, origx1 + ((middle + title_size) * 0.5f),
origy1 + line_height, bgcolor, rgb_t(255, 43, 43, 43), hilight_main_texture, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA) | PRIMFLAG_TEXWRAP(TRUE));
- mui.draw_text_full(container, t_text[ui_globals::cur_sw_dats_view].c_str(), origx1, origy1, origx2 - origx1,
+ ui().draw_text_full(container, t_text[ui_globals::cur_sw_dats_view].c_str(), origx1, origy1, origx2 - origx1,
JUSTIFY_CENTER, WRAP_TRUNCATE, DRAW_NORMAL, fgcolor, bgcolor, nullptr, nullptr);
draw_common_arrow(origx1, origy1, origx2, origy2, ui_globals::cur_sw_dats_view, 0, 1, title_size);
@@ -2211,12 +2210,12 @@ void ui_menu_select_game::infos_render(void *selectedref, float origx1, float or
if (buffer.empty())
{
- mui.draw_text_full(container, _("No Infos Available"), origx1, (origy2 + origy1) * 0.5f, origx2 - origx1, JUSTIFY_CENTER,
+ ui().draw_text_full(container, _("No Infos Available"), origx1, (origy2 + origy1) * 0.5f, origx2 - origx1, JUSTIFY_CENTER,
WRAP_WORD, DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr);
return;
}
else
- totallines = mui.wrap_text(container, buffer.c_str(), origx1, origy1, origx2 - origx1 - (2.0f * gutter_width), xstart, xend, text_size);
+ totallines = ui().wrap_text(container, buffer.c_str(), origx1, origy1, origx2 - origx1 - (2.0f * gutter_width), xstart, xend, text_size);
int r_visible_lines = floor((origy2 - oy1) / (line_height * text_size));
if (totallines < r_visible_lines)
@@ -2238,7 +2237,7 @@ void ui_menu_select_game::infos_render(void *selectedref, float origx1, float or
else if (r == r_visible_lines - 1 && itemline != totallines - 1)
info_arrow(1, origx1, origx2, oy1, line_height, text_size, ud_arrow_width);
else
- mui.draw_text_full(container, tempbuf.c_str(), origx1 + gutter_width, oy1, origx2 - origx1, JUSTIFY_LEFT,
+ ui().draw_text_full(container, tempbuf.c_str(), origx1 + gutter_width, oy1, origx2 - origx1, JUSTIFY_LEFT,
WRAP_TRUNCATE, DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr, text_size);
oy1 += (line_height * text_size);
}
@@ -2254,7 +2253,6 @@ void ui_menu_select_game::infos_render(void *selectedref, float origx1, float or
void ui_menu_select_game::draw_right_panel(void *selectedref, float origx1, float origy1, float origx2, float origy2)
{
- mame_ui_manager &mui = mame_machine_manager::instance()->ui();
rgb_t fgcolor = UI_TEXT_COLOR;
bool hide = (ui_globals::panels_status == HIDE_RIGHT_PANEL || ui_globals::panels_status == HIDE_BOTH);
float x2 = (hide) ? origx2 : origx1 + 2.0f * UI_BOX_LR_BORDER;
@@ -2267,7 +2265,7 @@ void ui_menu_select_game::draw_right_panel(void *selectedref, float origx1, floa
float ar_x1 = ar_x0 + lr_arrow_width;
float ar_y1 = 0.5f * (origy2 + origy1) + 0.9f * space;
- mui.draw_outlined_box(container, origx1, origy1, origx2, origy2, rgb_t(0xEF, 0x12, 0x47, 0x7B));
+ ui().draw_outlined_box(container, origx1, origy1, origx2, origy2, rgb_t(0xEF, 0x12, 0x47, 0x7B));
if (mouse_hit && origx1 <= mouse_x && x2 > mouse_x && origy1 <= mouse_y && origy2 > mouse_y)
{
@@ -2297,8 +2295,7 @@ void ui_menu_select_game::draw_right_panel(void *selectedref, float origx1, floa
void ui_menu_select_game::arts_render(void *selectedref, float origx1, float origy1, float origx2, float origy2)
{
- mame_ui_manager &mui = mame_machine_manager::instance()->ui();
- float line_height = mui.get_line_height();
+ float line_height = ui().get_line_height();
bool is_favorites = ((item[0].flags & MENU_FLAG_UI_FAVORITE) != 0);
static ui_software_info *oldsoft = nullptr;
static const game_driver *olddriver = nullptr;
@@ -2398,7 +2395,7 @@ void ui_menu_select_game::arts_render(void *selectedref, float origx1, float ori
float y2 = origy2 - UI_BOX_TB_BORDER - line_height;
// apply texture
- container->add_quad( x1, y1, x2, y2, ARGB_WHITE, snapx_texture, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
+ container->add_quad( x1, y1, x2, y2, rgb_t::white, snapx_texture, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
}
}
else if (soft != nullptr)
@@ -2487,7 +2484,7 @@ void ui_menu_select_game::arts_render(void *selectedref, float origx1, float ori
float y2 = origy2 - UI_BOX_TB_BORDER - line_height;
// apply texture
- container->add_quad(x1, y1, x2, y2, ARGB_WHITE, snapx_texture, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
+ container->add_quad(x1, y1, x2, y2, rgb_t::white, snapx_texture, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
}
}
}
diff --git a/src/frontend/mame/ui/selgame.h b/src/frontend/mame/ui/selgame.h
index 225e9c2cf3a..7ad48e537df 100644
--- a/src/frontend/mame/ui/selgame.h
+++ b/src/frontend/mame/ui/selgame.h
@@ -18,14 +18,14 @@
class ui_menu_select_game : public ui_menu
{
public:
- ui_menu_select_game(running_machine &machine, render_container *container, const char *gamename);
+ ui_menu_select_game(mame_ui_manager &mui, render_container *container, const char *gamename);
virtual ~ui_menu_select_game();
virtual void populate() override;
virtual void handle() override;
virtual void custom_render(void *selectedref, float top, float bottom, float x, float y, float x2, float y2) override;
// force game select menu
- static void force_game_select(running_machine &machine, render_container *container);
+ static void force_game_select(mame_ui_manager &mui, render_container *container);
virtual bool menu_has_search_active() override { return (m_search[0] != 0); }
diff --git a/src/frontend/mame/ui/selsoft.cpp b/src/frontend/mame/ui/selsoft.cpp
index 1d8a6483c5c..1c0c1460211 100644
--- a/src/frontend/mame/ui/selsoft.cpp
+++ b/src/frontend/mame/ui/selsoft.cpp
@@ -121,7 +121,7 @@ bool has_multiple_bios(const game_driver *driver, s_bios &biosname)
// ctor
//-------------------------------------------------
-ui_menu_select_software::ui_menu_select_software(running_machine &machine, render_container *container, const game_driver *driver) : ui_menu(machine, container)
+ui_menu_select_software::ui_menu_select_software(mame_ui_manager &mui, render_container *container, const game_driver *driver) : ui_menu(mui, container)
{
if (reselect_last::get())
reselect_last::set(false);
@@ -138,7 +138,7 @@ ui_menu_select_software::ui_menu_select_software(running_machine &machine, rende
ui_globals::cur_sw_dats_view = UI_FIRST_LOAD;
std::string error_string;
- machine.options().set_value(OPTION_SOFTWARENAME, "", OPTION_PRIORITY_CMDLINE, error_string);
+ mui.machine().options().set_value(OPTION_SOFTWARENAME, "", OPTION_PRIORITY_CMDLINE, error_string);
}
//-------------------------------------------------
@@ -243,15 +243,15 @@ void ui_menu_select_software::handle()
}
// handle UI_DATS
- else if (m_event->iptkey == IPT_UI_DATS && mame_machine_manager::instance()->ui().options().enabled_dats())
+ else if (m_event->iptkey == IPT_UI_DATS && ui().options().enabled_dats())
{
ui_software_info *ui_swinfo = (ui_software_info *)m_event->itemref;
datfile_manager &mdat = mame_machine_manager::instance()->datfile();
if (ui_swinfo->startempty == 1 && mdat.has_history(ui_swinfo->driver))
- ui_menu::stack_push(global_alloc_clear<ui_menu_dats_view>(machine(), container, ui_swinfo->driver));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_dats_view>(ui(), container, ui_swinfo->driver));
else if (mdat.has_software(ui_swinfo->listname, ui_swinfo->shortname, ui_swinfo->parentname) || !ui_swinfo->usage.empty())
- ui_menu::stack_push(global_alloc_clear<ui_menu_dats_view>(machine(), container, ui_swinfo));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_dats_view>(ui(), container, ui_swinfo));
}
// handle UI_LEFT_PANEL
@@ -276,16 +276,17 @@ void ui_menu_select_software::handle()
if ((FPTR)swinfo > 2)
{
- if (!mame_machine_manager::instance()->favorite().isgame_favorite(*swinfo))
+ favorite_manager &mfav = mame_machine_manager::instance()->favorite();
+ if (!mfav.isgame_favorite(*swinfo))
{
- mame_machine_manager::instance()->favorite().add_favorite_game(*swinfo);
+ mfav.add_favorite_game(*swinfo);
machine().popmessage(_("%s\n added to favorites list."), swinfo->longname.c_str());
}
else
{
machine().popmessage(_("%s\n removed from favorites list."), swinfo->longname.c_str());
- mame_machine_manager::instance()->favorite().remove_favorite_game();
+ mfav.remove_favorite_game();
}
}
}
@@ -378,7 +379,7 @@ void ui_menu_select_software::handle()
// if we're in an error state, overlay an error message
if (ui_error)
- mame_machine_manager::instance()->ui().draw_text_box(container, _("The selected software is missing one or more required files. "
+ ui().draw_text_box(container, _("The selected software is missing one or more required files. "
"Please select a different software.\n\nPress any key to continue."),
JUSTIFY_CENTER, 0.5f, 0.5f, UI_RED_COLOR);
@@ -389,28 +390,28 @@ void ui_menu_select_software::handle()
switch (l_sw_hover)
{
case UI_SW_REGION:
- ui_menu::stack_push(global_alloc_clear<ui_menu_selector>(machine(), container, m_filter.region.ui,
+ ui_menu::stack_push(global_alloc_clear<ui_menu_selector>(ui(), container, m_filter.region.ui,
m_filter.region.actual, SELECTOR_SOFTWARE, l_sw_hover));
break;
case UI_SW_YEARS:
- ui_menu::stack_push(global_alloc_clear<ui_menu_selector>(machine(), container, m_filter.year.ui,
+ ui_menu::stack_push(global_alloc_clear<ui_menu_selector>(ui(), container, m_filter.year.ui,
m_filter.year.actual, SELECTOR_SOFTWARE, l_sw_hover));
break;
case UI_SW_LIST:
- ui_menu::stack_push(global_alloc_clear<ui_menu_selector>(machine(), container, m_filter.swlist.description,
+ ui_menu::stack_push(global_alloc_clear<ui_menu_selector>(ui(), container, m_filter.swlist.description,
m_filter.swlist.actual, SELECTOR_SOFTWARE, l_sw_hover));
break;
case UI_SW_TYPE:
- ui_menu::stack_push(global_alloc_clear<ui_menu_selector>(machine(), container, m_filter.type.ui,
+ ui_menu::stack_push(global_alloc_clear<ui_menu_selector>(ui(), container, m_filter.type.ui,
m_filter.type.actual, SELECTOR_SOFTWARE, l_sw_hover));
break;
case UI_SW_PUBLISHERS:
- ui_menu::stack_push(global_alloc_clear<ui_menu_selector>(machine(), container, m_filter.publisher.ui,
+ ui_menu::stack_push(global_alloc_clear<ui_menu_selector>(ui(), container, m_filter.publisher.ui,
m_filter.publisher.actual, SELECTOR_SOFTWARE, l_sw_hover));
break;
case UI_SW_CUSTOM:
sw_filters::actual = l_sw_hover;
- ui_menu::stack_push(global_alloc_clear<ui_menu_swcustom_filter>(machine(), container, m_driver, m_filter));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_swcustom_filter>(ui(), container, m_driver, m_filter));
break;
default:
sw_filters::actual = l_sw_hover;
@@ -506,8 +507,8 @@ void ui_menu_select_software::populate()
item_append(MENU_SEPARATOR_ITEM, nullptr, flags_ui, nullptr);
// configure the custom rendering
- customtop = 4.0f * mame_machine_manager::instance()->ui().get_line_height() + 5.0f * UI_BOX_TB_BORDER;
- custombottom = 5.0f * mame_machine_manager::instance()->ui().get_line_height() + 4.0f * UI_BOX_TB_BORDER;
+ customtop = 4.0f * ui().get_line_height() + 5.0f * UI_BOX_TB_BORDER;
+ custombottom = 5.0f * ui().get_line_height() + 4.0f * UI_BOX_TB_BORDER;
if (old_software != -1)
{
@@ -668,12 +669,11 @@ void ui_menu_select_software::custom_render(void *selectedref, float top, float
{
ui_software_info *swinfo = (selectedref != nullptr) ? (ui_software_info *)selectedref : ((m_prev_selected != nullptr) ? (ui_software_info *)m_prev_selected : nullptr);
const game_driver *driver = nullptr;
- mame_ui_manager &mui = mame_machine_manager::instance()->ui();
float width;
std::string tempbuf[5], filtered;
rgb_t color = UI_BACKGROUND_COLOR;
bool isstar = false;
- float tbarspace = mui.get_line_height();
+ float tbarspace = ui().get_line_height();
float text_size = 1.0f;
// determine the text for the header
@@ -699,8 +699,8 @@ void ui_menu_select_software::custom_render(void *selectedref, float top, float
for (int line = 0; line < 3; ++line)
{
- mui.draw_text_full(container, tempbuf[line].c_str(), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_NEVER,
- DRAW_NONE, ARGB_WHITE, ARGB_BLACK, &width, nullptr);
+ ui().draw_text_full(container, tempbuf[line].c_str(), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_NEVER,
+ DRAW_NONE, rgb_t::white, rgb_t::black, &width, nullptr);
width += 2 * UI_BOX_LR_BORDER;
maxwidth = MAX(width, maxwidth);
}
@@ -718,7 +718,7 @@ void ui_menu_select_software::custom_render(void *selectedref, float top, float
float y2 = origy1 - 3.0f * UI_BOX_TB_BORDER - tbarspace;
// draw a box
- mui.draw_outlined_box(container, x1, y1, x2, y2, UI_BACKGROUND_COLOR);
+ ui().draw_outlined_box(container, x1, y1, x2, y2, UI_BACKGROUND_COLOR);
// take off the borders
x1 += UI_BOX_LR_BORDER;
@@ -728,9 +728,9 @@ void ui_menu_select_software::custom_render(void *selectedref, float top, float
// draw the text within it
for (int line = 0; line < 3; ++line)
{
- mui.draw_text_full(container, tempbuf[line].c_str(), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_NEVER,
+ ui().draw_text_full(container, tempbuf[line].c_str(), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_NEVER,
DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr, text_size);
- y1 += mui.get_line_height();
+ y1 += ui().get_line_height();
}
// determine the text to render below
@@ -850,8 +850,8 @@ void ui_menu_select_software::custom_render(void *selectedref, float top, float
for (auto & elem : tempbuf)
{
- mui.draw_text_full(container, elem.c_str(), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_NEVER,
- DRAW_NONE, ARGB_WHITE, ARGB_BLACK, &width, nullptr);
+ ui().draw_text_full(container, elem.c_str(), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_NEVER,
+ DRAW_NONE, rgb_t::white, rgb_t::black, &width, nullptr);
width += 2 * UI_BOX_LR_BORDER;
maxwidth = MAX(maxwidth, width);
}
@@ -869,7 +869,7 @@ void ui_menu_select_software::custom_render(void *selectedref, float top, float
y2 = origy2 + bottom;
// draw a box
- mui.draw_outlined_box(container, x1, y1, x2, y2, color);
+ ui().draw_outlined_box(container, x1, y1, x2, y2, color);
// take off the borders
x1 += UI_BOX_LR_BORDER;
@@ -883,9 +883,9 @@ void ui_menu_select_software::custom_render(void *selectedref, float top, float
// draw all lines
for (auto & elem : tempbuf)
{
- mui.draw_text_full(container, elem.c_str(), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_NEVER,
+ ui().draw_text_full(container, elem.c_str(), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_NEVER,
DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr, text_size);
- y1 += mame_machine_manager::instance()->ui().get_line_height();
+ y1 += ui().get_line_height();
}
}
@@ -896,13 +896,13 @@ void ui_menu_select_software::custom_render(void *selectedref, float top, float
void ui_menu_select_software::inkey_select(const ui_menu_event *m_event)
{
ui_software_info *ui_swinfo = (ui_software_info *)m_event->itemref;
- ui_options &mopt = mame_machine_manager::instance()->ui().options();
+ ui_options &mopt = ui().options();
if (ui_swinfo->startempty == 1)
{
s_bios biosname;
if (!mopt.skip_bios_menu() && has_multiple_bios(ui_swinfo->driver, biosname))
- ui_menu::stack_push(global_alloc_clear<ui_bios_selection>(machine(), container, biosname, (void *)ui_swinfo->driver, false, true));
+ ui_menu::stack_push(global_alloc_clear<ui_bios_selection>(ui(), container, biosname, (void *)ui_swinfo->driver, false, true));
else
{
reselect_last::driver = ui_swinfo->driver->name;
@@ -931,7 +931,7 @@ void ui_menu_select_software::inkey_select(const ui_menu_event *m_event)
s_bios biosname;
if (!mopt.skip_bios_menu() && has_multiple_bios(ui_swinfo->driver, biosname))
{
- ui_menu::stack_push(global_alloc_clear<ui_bios_selection>(machine(), container, biosname, (void *)ui_swinfo, true, false));
+ ui_menu::stack_push(global_alloc_clear<ui_bios_selection>(ui(), container, biosname, (void *)ui_swinfo, true, false));
return;
}
else if (!mopt.skip_parts_menu() && swinfo->has_multiple_parts(ui_swinfo->interface.c_str()))
@@ -947,7 +947,7 @@ void ui_menu_select_software::inkey_select(const ui_menu_event *m_event)
parts.emplace(swpart.name(), menu_part_name);
}
}
- ui_menu::stack_push(global_alloc_clear<ui_software_parts>(machine(), container, parts, ui_swinfo));
+ ui_menu::stack_push(global_alloc_clear<ui_software_parts>(ui(), container, parts, ui_swinfo));
return;
}
std::string error_string;
@@ -1060,7 +1060,7 @@ void ui_menu_select_software::inkey_configure(const ui_menu_event *m_event)
void ui_menu_select_software::load_sw_custom_filters()
{
// attempt to open the output file
- emu_file file(mame_machine_manager::instance()->ui().options().ui_path(), OPEN_FLAG_READ);
+ emu_file file(ui().options().ui_path(), OPEN_FLAG_READ);
if (file.open("custom_", m_driver->name, "_filter.ini") == osd_file::error::NONE)
{
char buffer[MAX_CHAR_INFO];
@@ -1390,14 +1390,12 @@ void ui_menu_select_software::build_custom()
float ui_menu_select_software::draw_left_panel(float x1, float y1, float x2, float y2)
{
- mame_ui_manager &mui = mame_machine_manager::instance()->ui();
-
if (ui_globals::panels_status == SHOW_PANELS || ui_globals::panels_status == HIDE_RIGHT_PANEL)
{
float origy1 = y1;
float origy2 = y2;
float text_size = 0.75f;
- float l_height = mui.get_line_height();
+ float l_height = ui().get_line_height();
float line_height = l_height * text_size;
float left_width = 0.0f;
int text_lenght = sw_filters::length;
@@ -1413,13 +1411,13 @@ float ui_menu_select_software::draw_left_panel(float x1, float y1, float x2, flo
line_height = l_height * text_size;
}
- float text_sign = mui.get_string_width("_# ", text_size);
+ float text_sign = ui().get_string_width("_# ", text_size);
for (int x = 0; x < text_lenght; ++x)
{
float total_width;
// compute width of left hand side
- total_width = mui.get_string_width(text[x], text_size);
+ total_width = ui().get_string_width(text[x], text_size);
total_width += text_sign;
// track the maximum
@@ -1428,7 +1426,7 @@ float ui_menu_select_software::draw_left_panel(float x1, float y1, float x2, flo
}
x2 = x1 + left_width + 2.0f * UI_BOX_LR_BORDER;
- mui.draw_outlined_box(container, x1, y1, x2, y2, UI_BACKGROUND_COLOR);
+ ui().draw_outlined_box(container, x1, y1, x2, y2, UI_BACKGROUND_COLOR);
// take off the borders
x1 += UI_BOX_LR_BORDER;
@@ -1456,7 +1454,7 @@ float ui_menu_select_software::draw_left_panel(float x1, float y1, float x2, flo
}
if (bgcolor != UI_TEXT_BG_COLOR)
- mui.draw_textured_box(container, x1, y1, x2, y1 + line_height, bgcolor, rgb_t(255, 43, 43, 43),
+ ui().draw_textured_box(container, x1, y1, x2, y1 + line_height, bgcolor, rgb_t(255, 43, 43, 43),
hilight_main_texture, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA) | PRIMFLAG_TEXWRAP(TRUE));
float x1t = x1 + text_sign;
@@ -1489,7 +1487,7 @@ float ui_menu_select_software::draw_left_panel(float x1, float y1, float x2, flo
convert_command_glyph(str);
}
- mui.draw_text_full(container, str.c_str(), x1t, y1, x2 - x1, JUSTIFY_LEFT, WRAP_NEVER,
+ ui().draw_text_full(container, str.c_str(), x1t, y1, x2 - x1, JUSTIFY_LEFT, WRAP_NEVER,
DRAW_NORMAL, fgcolor, bgcolor, nullptr, nullptr, text_size);
y1 += line_height;
}
@@ -1508,7 +1506,7 @@ float ui_menu_select_software::draw_left_panel(float x1, float y1, float x2, flo
float ar_x1 = ar_x0 + lr_arrow_width;
float ar_y1 = 0.5f * (y2 + y1) + 0.9f * space;
- mui.draw_outlined_box(container, x1, y1, x2, y2, rgb_t(0xEF, 0x12, 0x47, 0x7B));
+ ui().draw_outlined_box(container, x1, y1, x2, y2, rgb_t(0xEF, 0x12, 0x47, 0x7B));
if (mouse_hit && x1 <= mouse_x && x2 > mouse_x && y1 <= mouse_y && y2 > mouse_y)
{
@@ -1531,7 +1529,7 @@ float ui_menu_select_software::draw_left_panel(float x1, float y1, float x2, flo
float ar_x1 = ar_x0 + lr_arrow_width;
float ar_y1 = 0.5f * (y2 + y1) + 0.9f * space;
- mui.draw_outlined_box(container, x1, y1, x2, y2, rgb_t(0xEF, 0x12, 0x47, 0x7B));
+ ui().draw_outlined_box(container, x1, y1, x2, y2, rgb_t(0xEF, 0x12, 0x47, 0x7B));
if (mouse_hit && x1 <= mouse_x && x2 > mouse_x && y1 <= mouse_y && y2 > mouse_y)
{
@@ -1550,12 +1548,11 @@ float ui_menu_select_software::draw_left_panel(float x1, float y1, float x2, flo
void ui_menu_select_software::infos_render(void *selectedref, float origx1, float origy1, float origx2, float origy2)
{
- mame_ui_manager &mui = mame_machine_manager::instance()->ui();
- float line_height = mui.get_line_height();
+ float line_height = ui().get_line_height();
static std::string buffer;
std::vector<int> xstart;
std::vector<int> xend;
- float text_size = mame_machine_manager::instance()->ui().options().infos_size();
+ float text_size = ui().options().infos_size();
ui_software_info *soft = (selectedref != nullptr) ? (ui_software_info *)selectedref : ((m_prev_selected != nullptr) ? (ui_software_info *)m_prev_selected : nullptr);
static ui_software_info *oldsoft = nullptr;
static int old_sw_view = -1;
@@ -1569,7 +1566,7 @@ void ui_menu_select_software::infos_render(void *selectedref, float origx1, floa
{
float title_size = 0.0f;
- mui.draw_text_full(container, _("History"), origx1, origy1, origx2 - origx1, JUSTIFY_CENTER, WRAP_TRUNCATE,
+ ui().draw_text_full(container, _("History"), origx1, origy1, origx2 - origx1, JUSTIFY_CENTER, WRAP_TRUNCATE,
DRAW_NONE, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, &title_size, nullptr);
title_size += 0.01f;
@@ -1584,10 +1581,10 @@ void ui_menu_select_software::infos_render(void *selectedref, float origx1, floa
float middle = origx2 - origx1;
if (bgcolor != UI_TEXT_BG_COLOR)
- mui.draw_textured_box(container, origx1 + ((middle - title_size) * 0.5f), origy1, origx1 + ((middle + title_size) * 0.5f),
+ ui().draw_textured_box(container, origx1 + ((middle - title_size) * 0.5f), origy1, origx1 + ((middle + title_size) * 0.5f),
origy1 + line_height, bgcolor, rgb_t(255, 43, 43, 43), hilight_main_texture, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA) | PRIMFLAG_TEXWRAP(TRUE));
- mui.draw_text_full(container, _("History"), origx1, origy1, origx2 - origx1, JUSTIFY_CENTER, WRAP_NEVER,
+ ui().draw_text_full(container, _("History"), origx1, origy1, origx2 - origx1, JUSTIFY_CENTER, WRAP_NEVER,
DRAW_NORMAL, fgcolor, bgcolor, nullptr, nullptr);
ui_globals::cur_sw_dats_view = 0;
}
@@ -1601,7 +1598,7 @@ void ui_menu_select_software::infos_render(void *selectedref, float origx1, floa
for (auto & elem : t_text)
{
- mui.draw_text_full(container, elem.c_str(), origx1, origy1, origx2 - origx1, JUSTIFY_CENTER, WRAP_NEVER,
+ ui().draw_text_full(container, elem.c_str(), origx1, origy1, origx2 - origx1, JUSTIFY_CENTER, WRAP_NEVER,
DRAW_NONE, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, &txt_lenght, nullptr);
txt_lenght += 0.01f;
title_size = MAX(txt_lenght, title_size);
@@ -1623,10 +1620,10 @@ void ui_menu_select_software::infos_render(void *selectedref, float origx1, floa
title_size *= tmp_size;
if (bgcolor != UI_TEXT_BG_COLOR)
- mui.draw_textured_box(container, origx1 + ((middle - title_size) * 0.5f), origy1, origx1 + ((middle + title_size) * 0.5f),
+ ui().draw_textured_box(container, origx1 + ((middle - title_size) * 0.5f), origy1, origx1 + ((middle + title_size) * 0.5f),
origy1 + line_height, bgcolor, rgb_t(255, 43, 43, 43), hilight_main_texture, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA) | PRIMFLAG_TEXWRAP(TRUE));
- mui.draw_text_full(container, t_text[ui_globals::cur_sw_dats_view].c_str(), origx1, origy1, origx2 - origx1,
+ ui().draw_text_full(container, t_text[ui_globals::cur_sw_dats_view].c_str(), origx1, origy1, origx2 - origx1,
JUSTIFY_CENTER, WRAP_NEVER, DRAW_NORMAL, fgcolor, bgcolor, nullptr, nullptr, tmp_size);
draw_common_arrow(origx1, origy1, origx2, origy2, ui_globals::cur_sw_dats_view, 0, 1, title_size);
@@ -1650,12 +1647,12 @@ void ui_menu_select_software::infos_render(void *selectedref, float origx1, floa
if (buffer.empty())
{
- mui.draw_text_full(container, _("No Infos Available"), origx1, (origy2 + origy1) * 0.5f, origx2 - origx1, JUSTIFY_CENTER,
+ ui().draw_text_full(container, _("No Infos Available"), origx1, (origy2 + origy1) * 0.5f, origx2 - origx1, JUSTIFY_CENTER,
WRAP_WORD, DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr);
return;
}
else
- totallines = mui.wrap_text(container, buffer.c_str(), origx1, origy1, origx2 - origx1 - (2.0f * gutter_width), xstart, xend, text_size);
+ totallines = ui().wrap_text(container, buffer.c_str(), origx1, origy1, origx2 - origx1 - (2.0f * gutter_width), xstart, xend, text_size);
int r_visible_lines = floor((origy2 - oy1) / (line_height * text_size));
if (totallines < r_visible_lines)
@@ -1678,7 +1675,7 @@ void ui_menu_select_software::infos_render(void *selectedref, float origx1, floa
else if (r == r_visible_lines - 1 && itemline != totallines - 1)
info_arrow(1, origx1, origx2, oy1, line_height, text_size, ud_arrow_width);
else
- mui.draw_text_full(container, tempbuf.c_str(), origx1 + gutter_width, oy1, origx2 - origx1,
+ ui().draw_text_full(container, tempbuf.c_str(), origx1 + gutter_width, oy1, origx2 - origx1,
JUSTIFY_LEFT, WRAP_TRUNCATE, DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR,
nullptr, nullptr, text_size);
oy1 += (line_height * text_size);
@@ -1694,8 +1691,7 @@ void ui_menu_select_software::infos_render(void *selectedref, float origx1, floa
void ui_menu_select_software::arts_render(void *selectedref, float origx1, float origy1, float origx2, float origy2)
{
- mame_ui_manager &mui = mame_machine_manager::instance()->ui();
- float line_height = mui.get_line_height();
+ float line_height = ui().get_line_height();
static ui_software_info *oldsoft = nullptr;
static const game_driver *olddriver = nullptr;
const game_driver *driver = nullptr;
@@ -1785,7 +1781,7 @@ void ui_menu_select_software::arts_render(void *selectedref, float origx1, float
float y2 = origy2 - UI_BOX_TB_BORDER - line_height;
// apply texture
- container->add_quad( x1, y1, x2, y2, ARGB_WHITE, snapx_texture, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
+ container->add_quad( x1, y1, x2, y2, rgb_t::white, snapx_texture, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
}
}
else if (soft != nullptr)
@@ -1873,14 +1869,13 @@ void ui_menu_select_software::arts_render(void *selectedref, float origx1, float
float y2 = origy2 - UI_BOX_TB_BORDER - line_height;
// apply texture
- container->add_quad(x1, y1, x2, y2, ARGB_WHITE, snapx_texture, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
+ container->add_quad(x1, y1, x2, y2, rgb_t::white, snapx_texture, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
}
}
}
void ui_menu_select_software::draw_right_panel(void *selectedref, float origx1, float origy1, float origx2, float origy2)
{
- mame_ui_manager &mui = mame_machine_manager::instance()->ui();
rgb_t fgcolor = UI_TEXT_COLOR;
bool hide = (ui_globals::panels_status == HIDE_RIGHT_PANEL || ui_globals::panels_status == HIDE_BOTH);
float x2 = (hide) ? origx2 : origx1 + 2.0f * UI_BOX_LR_BORDER;
@@ -1893,7 +1888,7 @@ void ui_menu_select_software::draw_right_panel(void *selectedref, float origx1,
float ar_x1 = ar_x0 + lr_arrow_width;
float ar_y1 = 0.5f * (origy2 + origy1) + 0.9f * space;
- mui.draw_outlined_box(container, origx1, origy1, origx2, origy2, rgb_t(0xEF, 0x12, 0x47, 0x7B));
+ ui().draw_outlined_box(container, origx1, origy1, origx2, origy2, rgb_t(0xEF, 0x12, 0x47, 0x7B));
if (mouse_hit && origx1 <= mouse_x && x2 > mouse_x && origy1 <= mouse_y && origy2 > mouse_y)
{
@@ -1921,7 +1916,7 @@ void ui_menu_select_software::draw_right_panel(void *selectedref, float origx1,
// ctor
//-------------------------------------------------
-ui_software_parts::ui_software_parts(running_machine &machine, render_container *container, s_parts parts, ui_software_info *ui_info) : ui_menu(machine, container)
+ui_software_parts::ui_software_parts(mame_ui_manager &mui, render_container *container, s_parts parts, ui_software_info *ui_info) : ui_menu(mui, container)
{
m_parts = parts;
m_uiinfo = ui_info;
@@ -1945,7 +1940,7 @@ void ui_software_parts::populate()
item_append(elem.first.c_str(), elem.second.c_str(), 0, (void *)&elem);
item_append(ui_menu_item_type::SEPARATOR);
- customtop = mame_machine_manager::instance()->ui().get_line_height() + (3.0f * UI_BOX_TB_BORDER);
+ customtop = ui().get_line_height() + (3.0f * UI_BOX_TB_BORDER);
}
//-------------------------------------------------
@@ -1985,9 +1980,8 @@ void ui_software_parts::handle()
void ui_software_parts::custom_render(void *selectedref, float top, float bottom, float origx1, float origy1, float origx2, float origy2)
{
float width;
- mame_ui_manager &mui = mame_machine_manager::instance()->ui();
- mui.draw_text_full(container, _("Software part selection:"), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_TRUNCATE,
- DRAW_NONE, ARGB_WHITE, ARGB_BLACK, &width, nullptr);
+ ui().draw_text_full(container, _("Software part selection:"), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_TRUNCATE,
+ DRAW_NONE, rgb_t::white, rgb_t::black, &width, nullptr);
width += 2 * UI_BOX_LR_BORDER;
float maxwidth = MAX(origx2 - origx1, width);
@@ -1998,7 +1992,7 @@ void ui_software_parts::custom_render(void *selectedref, float top, float bottom
float y2 = origy1 - UI_BOX_TB_BORDER;
// draw a box
- mui.draw_outlined_box(container, x1, y1, x2, y2, UI_GREEN_COLOR);
+ ui().draw_outlined_box(container, x1, y1, x2, y2, UI_GREEN_COLOR);
// take off the borders
x1 += UI_BOX_LR_BORDER;
@@ -2006,7 +2000,7 @@ void ui_software_parts::custom_render(void *selectedref, float top, float bottom
y1 += UI_BOX_TB_BORDER;
// draw the text within it
- mui.draw_text_full(container, _("Software part selection:"), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_TRUNCATE,
+ ui().draw_text_full(container, _("Software part selection:"), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_TRUNCATE,
DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr);
}
@@ -2014,7 +2008,7 @@ void ui_software_parts::custom_render(void *selectedref, float top, float bottom
// ctor
//-------------------------------------------------
-ui_bios_selection::ui_bios_selection(running_machine &machine, render_container *container, s_bios biosname, void *_driver, bool _software, bool _inlist) : ui_menu(machine, container)
+ui_bios_selection::ui_bios_selection(mame_ui_manager &mui, render_container *container, s_bios biosname, void *_driver, bool _software, bool _inlist) : ui_menu(mui, container)
{
m_bios = biosname;
m_driver = _driver;
@@ -2040,7 +2034,7 @@ void ui_bios_selection::populate()
item_append(elem.first.c_str(), nullptr, 0, (void *)&elem.first);
item_append(ui_menu_item_type::SEPARATOR);
- customtop = mame_machine_manager::instance()->ui().get_line_height() + (3.0f * UI_BOX_TB_BORDER);
+ customtop = ui().get_line_height() + (3.0f * UI_BOX_TB_BORDER);
}
//-------------------------------------------------
@@ -2084,7 +2078,7 @@ void ui_bios_selection::handle()
drivlist.next();
software_list_device *swlist = software_list_device::find_by_name(drivlist.config(), ui_swinfo->listname.c_str());
software_info *swinfo = swlist->find(ui_swinfo->shortname.c_str());
- if (!mame_machine_manager::instance()->ui().options().skip_parts_menu() && swinfo->has_multiple_parts(ui_swinfo->interface.c_str()))
+ if (!ui().options().skip_parts_menu() && swinfo->has_multiple_parts(ui_swinfo->interface.c_str()))
{
s_parts parts;
for (const software_part &swpart : swinfo->parts())
@@ -2097,7 +2091,7 @@ void ui_bios_selection::handle()
parts.emplace(swpart.name(), menu_part_name);
}
}
- ui_menu::stack_push(global_alloc_clear<ui_software_parts>(machine(), container, parts, ui_swinfo));
+ ui_menu::stack_push(global_alloc_clear<ui_software_parts>(ui(), container, parts, ui_swinfo));
return;
}
std::string error_string;
@@ -2123,9 +2117,8 @@ void ui_bios_selection::handle()
void ui_bios_selection::custom_render(void *selectedref, float top, float bottom, float origx1, float origy1, float origx2, float origy2)
{
float width;
- mame_ui_manager &mui = mame_machine_manager::instance()->ui();
- mui.draw_text_full(container, _("Bios selection:"), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_TRUNCATE,
- DRAW_NONE, ARGB_WHITE, ARGB_BLACK, &width, nullptr);
+ ui().draw_text_full(container, _("Bios selection:"), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_TRUNCATE,
+ DRAW_NONE, rgb_t::white, rgb_t::black, &width, nullptr);
width += 2 * UI_BOX_LR_BORDER;
float maxwidth = MAX(origx2 - origx1, width);
@@ -2136,7 +2129,7 @@ void ui_bios_selection::custom_render(void *selectedref, float top, float bottom
float y2 = origy1 - UI_BOX_TB_BORDER;
// draw a box
- mui.draw_outlined_box(container, x1, y1, x2, y2, UI_GREEN_COLOR);
+ ui().draw_outlined_box(container, x1, y1, x2, y2, UI_GREEN_COLOR);
// take off the borders
x1 += UI_BOX_LR_BORDER;
@@ -2144,6 +2137,6 @@ void ui_bios_selection::custom_render(void *selectedref, float top, float bottom
y1 += UI_BOX_TB_BORDER;
// draw the text within it
- mui.draw_text_full(container, _("Bios selection:"), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_TRUNCATE,
+ ui().draw_text_full(container, _("Bios selection:"), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_TRUNCATE,
DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr);
}
diff --git a/src/frontend/mame/ui/selsoft.h b/src/frontend/mame/ui/selsoft.h
index 64ce0ac4cdb..e65adc277d9 100644
--- a/src/frontend/mame/ui/selsoft.h
+++ b/src/frontend/mame/ui/selsoft.h
@@ -21,7 +21,7 @@ using s_parts = std::unordered_map<std::string, std::string>;
class ui_menu_select_software : public ui_menu
{
public:
- ui_menu_select_software(running_machine &machine, render_container *container, const game_driver *driver);
+ ui_menu_select_software(mame_ui_manager &mui, render_container *container, const game_driver *driver);
virtual ~ui_menu_select_software();
virtual void populate() override;
virtual void handle() override;
@@ -65,7 +65,7 @@ private:
class ui_software_parts : public ui_menu
{
public:
- ui_software_parts(running_machine &machine, render_container *container, s_parts parts, ui_software_info *ui_info);
+ ui_software_parts(mame_ui_manager &mui, render_container *container, s_parts parts, ui_software_info *ui_info);
virtual ~ui_software_parts();
virtual void populate() override;
virtual void handle() override;
@@ -79,7 +79,7 @@ private:
class ui_bios_selection : public ui_menu
{
public:
- ui_bios_selection(running_machine &machine, render_container *container, s_bios biosname, void *driver, bool software, bool inlist);
+ ui_bios_selection(mame_ui_manager &mui, render_container *container, s_bios biosname, void *driver, bool software, bool inlist);
virtual ~ui_bios_selection();
virtual void populate() override;
virtual void handle() override;
diff --git a/src/frontend/mame/ui/simpleselgame.cpp b/src/frontend/mame/ui/simpleselgame.cpp
index dce3a395712..6225d1e8467 100644
--- a/src/frontend/mame/ui/simpleselgame.cpp
+++ b/src/frontend/mame/ui/simpleselgame.cpp
@@ -26,7 +26,7 @@
// ctor
//-------------------------------------------------
-ui_simple_menu_select_game::ui_simple_menu_select_game(running_machine &machine, render_container *container, const char *gamename) : ui_menu(machine, container), m_driverlist(driver_list::total() + 1)
+ui_simple_menu_select_game::ui_simple_menu_select_game(mame_ui_manager &mui, render_container *container, const char *gamename) : ui_menu(mui, container), m_driverlist(driver_list::total() + 1)
{
build_driver_list();
if(gamename)
@@ -129,7 +129,7 @@ void ui_simple_menu_select_game::handle()
// if we're in an error state, overlay an error message
if (m_error)
- mame_machine_manager::instance()->ui().draw_text_box(container,
+ ui().draw_text_box(container,
"The selected game is missing one or more required ROM or CHD images. "
"Please select a different game.\n\nPress any key to continue.",
JUSTIFY_CENTER, 0.5f, 0.5f, UI_RED_COLOR);
@@ -146,7 +146,7 @@ void ui_simple_menu_select_game::inkey_select(const ui_menu_event *menu_event)
// special case for configure inputs
if ((FPTR)driver == 1)
- ui_menu::stack_push(global_alloc_clear<ui_menu_game_options>(machine(), container));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_game_options>(ui(), container));
// anything else is a driver
else
{
@@ -268,8 +268,8 @@ void ui_simple_menu_select_game::populate()
}
// configure the custom rendering
- customtop = mame_machine_manager::instance()->ui().get_line_height() + 3.0f * UI_BOX_TB_BORDER;
- custombottom = 4.0f * mame_machine_manager::instance()->ui().get_line_height() + 3.0f * UI_BOX_TB_BORDER;
+ customtop = ui().get_line_height() + 3.0f * UI_BOX_TB_BORDER;
+ custombottom = 4.0f * ui().get_line_height() + 3.0f * UI_BOX_TB_BORDER;
}
@@ -293,8 +293,8 @@ void ui_simple_menu_select_game::custom_render(void *selectedref, float top, flo
tempbuf[0] = _("Type name or select: (random)");
// get the size of the text
- mame_machine_manager::instance()->ui().draw_text_full(container, tempbuf[0].c_str(), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_TRUNCATE,
- DRAW_NONE, ARGB_WHITE, ARGB_BLACK, &width, nullptr);
+ ui().draw_text_full(container, tempbuf[0].c_str(), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_TRUNCATE,
+ DRAW_NONE, rgb_t::white, rgb_t::black, &width, nullptr);
width += 2 * UI_BOX_LR_BORDER;
maxwidth = MAX(width, origx2 - origx1);
@@ -305,7 +305,7 @@ void ui_simple_menu_select_game::custom_render(void *selectedref, float top, flo
y2 = origy1 - UI_BOX_TB_BORDER;
// draw a box
- mame_machine_manager::instance()->ui().draw_outlined_box(container, x1, y1, x2, y2, UI_BACKGROUND_COLOR);
+ ui().draw_outlined_box(container, x1, y1, x2, y2, UI_BACKGROUND_COLOR);
// take off the borders
x1 += UI_BOX_LR_BORDER;
@@ -313,7 +313,7 @@ void ui_simple_menu_select_game::custom_render(void *selectedref, float top, flo
y1 += UI_BOX_TB_BORDER;
// draw the text within it
- mame_machine_manager::instance()->ui().draw_text_full(container, tempbuf[0].c_str(), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_TRUNCATE,
+ ui().draw_text_full(container, tempbuf[0].c_str(), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_TRUNCATE,
DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr);
// determine the text to render below
@@ -383,8 +383,8 @@ void ui_simple_menu_select_game::custom_render(void *selectedref, float top, flo
maxwidth = origx2 - origx1;
for (line = 0; line < 4; line++)
{
- mame_machine_manager::instance()->ui().draw_text_full(container, tempbuf[line].c_str(), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_TRUNCATE,
- DRAW_NONE, ARGB_WHITE, ARGB_BLACK, &width, nullptr);
+ ui().draw_text_full(container, tempbuf[line].c_str(), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_TRUNCATE,
+ DRAW_NONE, rgb_t::white, rgb_t::black, &width, nullptr);
width += 2 * UI_BOX_LR_BORDER;
maxwidth = MAX(maxwidth, width);
}
@@ -403,7 +403,7 @@ void ui_simple_menu_select_game::custom_render(void *selectedref, float top, flo
color = UI_YELLOW_COLOR;
if (driver != nullptr && (driver->flags & (MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION)) != 0)
color = UI_RED_COLOR;
- mame_machine_manager::instance()->ui().draw_outlined_box(container, x1, y1, x2, y2, color);
+ ui().draw_outlined_box(container, x1, y1, x2, y2, color);
// take off the borders
x1 += UI_BOX_LR_BORDER;
@@ -413,9 +413,9 @@ void ui_simple_menu_select_game::custom_render(void *selectedref, float top, flo
// draw all lines
for (line = 0; line < 4; line++)
{
- mame_machine_manager::instance()->ui().draw_text_full(container, tempbuf[line].c_str(), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_TRUNCATE,
+ ui().draw_text_full(container, tempbuf[line].c_str(), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_TRUNCATE,
DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr);
- y1 += mame_machine_manager::instance()->ui().get_line_height();
+ y1 += ui().get_line_height();
}
}
@@ -425,22 +425,22 @@ void ui_simple_menu_select_game::custom_render(void *selectedref, float top, flo
// select menu to be visible and inescapable
//-------------------------------------------------
-void ui_simple_menu_select_game::force_game_select(running_machine &machine, render_container *container)
+void ui_simple_menu_select_game::force_game_select(mame_ui_manager &mui, render_container *container)
{
- char *gamename = (char *)machine.options().system_name();
+ char *gamename = (char *)mui.machine().options().system_name();
// reset the menu stack
- ui_menu::stack_reset(machine);
+ ui_menu::stack_reset(mui.machine());
// add the quit entry followed by the game select entry
- ui_menu *quit = global_alloc_clear<ui_menu_quit_game>(machine, container);
+ ui_menu *quit = global_alloc_clear<ui_menu_quit_game>(mui, container);
quit->set_special_main_menu(true);
ui_menu::stack_push(quit);
- ui_menu::stack_push(global_alloc_clear<ui_simple_menu_select_game>(machine, container, gamename));
+ ui_menu::stack_push(global_alloc_clear<ui_simple_menu_select_game>(mui, container, gamename));
// force the menus on
- mame_machine_manager::instance()->ui().show_menu();
+ mui.show_menu();
// make sure MAME is paused
- machine.pause();
+ mui.machine().pause();
}
diff --git a/src/frontend/mame/ui/simpleselgame.h b/src/frontend/mame/ui/simpleselgame.h
index 2106fc54638..7ab68394e95 100644
--- a/src/frontend/mame/ui/simpleselgame.h
+++ b/src/frontend/mame/ui/simpleselgame.h
@@ -19,14 +19,14 @@ class driver_enumerator;
class ui_simple_menu_select_game : public ui_menu {
public:
- ui_simple_menu_select_game(running_machine &machine, render_container *container, const char *gamename);
+ ui_simple_menu_select_game(mame_ui_manager &mui, render_container *container, const char *gamename);
virtual ~ui_simple_menu_select_game();
virtual void populate() override;
virtual void handle() override;
virtual void custom_render(void *selectedref, float top, float bottom, float x, float y, float x2, float y2) override;
// force game select menu
- static void force_game_select(running_machine &machine, render_container *container);
+ static void force_game_select(mame_ui_manager &mui, render_container *container);
virtual bool menu_has_search_active() override { return (m_search[0] != 0); }
private:
diff --git a/src/frontend/mame/ui/sliders.cpp b/src/frontend/mame/ui/sliders.cpp
index 75d40c2ace3..c742a13c8e9 100644
--- a/src/frontend/mame/ui/sliders.cpp
+++ b/src/frontend/mame/ui/sliders.cpp
@@ -16,7 +16,7 @@
#include "ui/sliders.h"
-ui_menu_sliders::ui_menu_sliders(running_machine &machine, render_container *container, bool menuless_mode) : ui_menu(machine, container)
+ui_menu_sliders::ui_menu_sliders(mame_ui_manager &mui, render_container *container, bool menuless_mode) : ui_menu(mui, container)
{
m_menuless_mode = m_hidden = menuless_mode;
}
@@ -139,7 +139,7 @@ void ui_menu_sliders::populate()
std::string tempstring;
/* add UI sliders */
- std::vector<ui_menu_item> ui_sliders = mame_machine_manager::instance()->ui().get_slider_list();
+ std::vector<ui_menu_item> ui_sliders = ui().get_slider_list();
for (ui_menu_item item : ui_sliders)
{
if (item.type == ui_menu_item_type::SLIDER)
@@ -182,7 +182,7 @@ void ui_menu_sliders::populate()
}
}
- custombottom = 2.0f * mame_machine_manager::instance()->ui().get_line_height() + 2.0f * UI_BOX_TB_BORDER;
+ custombottom = 2.0f * ui().get_line_height() + 2.0f * UI_BOX_TB_BORDER;
}
/*-------------------------------------------------
@@ -196,7 +196,7 @@ void ui_menu_sliders::custom_render(void *selectedref, float top, float bottom,
if (curslider != nullptr)
{
float bar_left, bar_area_top, bar_width, bar_area_height, bar_top, bar_bottom, default_x, current_x;
- float line_height = mame_machine_manager::instance()->ui().get_line_height();
+ float line_height = ui().get_line_height();
float percentage, default_percentage;
std::string tempstring;
float text_height;
@@ -219,12 +219,12 @@ void ui_menu_sliders::custom_render(void *selectedref, float top, float bottom,
x2 = 1.0f - UI_BOX_LR_BORDER;
/* draw extra menu area */
- mame_machine_manager::instance()->ui().draw_outlined_box(container, x1, y1, x2, y2, UI_BACKGROUND_COLOR);
+ ui().draw_outlined_box(container, x1, y1, x2, y2, UI_BACKGROUND_COLOR);
y1 += UI_BOX_TB_BORDER;
/* determine the text height */
- mame_machine_manager::instance()->ui().draw_text_full(container, tempstring.c_str(), 0, 0, x2 - x1 - 2.0f * UI_BOX_LR_BORDER,
- JUSTIFY_CENTER, WRAP_TRUNCATE, DRAW_NONE, ARGB_WHITE, ARGB_BLACK, nullptr, &text_height);
+ ui().draw_text_full(container, tempstring.c_str(), 0, 0, x2 - x1 - 2.0f * UI_BOX_LR_BORDER,
+ JUSTIFY_CENTER, WRAP_TRUNCATE, DRAW_NONE, rgb_t::white, rgb_t::black, nullptr, &text_height);
/* draw the thermometer */
bar_left = x1 + UI_BOX_LR_BORDER;
@@ -250,7 +250,7 @@ void ui_menu_sliders::custom_render(void *selectedref, float top, float bottom,
container->add_line(default_x, bar_bottom, default_x, bar_area_top + bar_area_height, UI_LINE_WIDTH, UI_BORDER_COLOR, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
/* draw the actual text */
- mame_machine_manager::instance()->ui().draw_text_full(container, tempstring.c_str(), x1 + UI_BOX_LR_BORDER, y1 + line_height, x2 - x1 - 2.0f * UI_BOX_LR_BORDER,
+ ui().draw_text_full(container, tempstring.c_str(), x1 + UI_BOX_LR_BORDER, y1 + line_height, x2 - x1 - 2.0f * UI_BOX_LR_BORDER,
JUSTIFY_CENTER, WRAP_WORD, DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, &text_height);
}
}
@@ -262,20 +262,20 @@ void ui_menu_sliders::custom_render(void *selectedref, float top, float bottom,
standard menu handler
-------------------------------------------------*/
-UINT32 ui_menu_sliders::ui_handler(running_machine &machine, render_container *container, UINT32 state)
+UINT32 ui_menu_sliders::ui_handler(mame_ui_manager &mui, render_container *container, UINT32 state)
{
UINT32 result;
/* if this is the first call, push the sliders menu */
if (state)
- ui_menu::stack_push(global_alloc_clear<ui_menu_sliders>(machine, container, true));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_sliders>(mui, container, true));
/* handle standard menus */
- result = ui_menu::ui_handler(machine, container, state);
+ result = ui_menu::ui_handler(mui, container, state);
/* if we are cancelled, pop the sliders menu */
if (result == UI_HANDLER_CANCEL)
- ui_menu::stack_pop(machine);
+ ui_menu::stack_pop(mui.machine());
ui_menu_sliders *uim = dynamic_cast<ui_menu_sliders *>(menu_stack);
return uim && uim->m_menuless_mode ? 0 : UI_HANDLER_CANCEL;
diff --git a/src/frontend/mame/ui/sliders.h b/src/frontend/mame/ui/sliders.h
index f420b094cbe..eea36538384 100644
--- a/src/frontend/mame/ui/sliders.h
+++ b/src/frontend/mame/ui/sliders.h
@@ -17,14 +17,14 @@
class ui_menu_sliders : public ui_menu {
public:
- ui_menu_sliders(running_machine &machine, render_container *container, bool menuless_mode = false);
+ ui_menu_sliders(mame_ui_manager &mui, render_container *container, bool menuless_mode = false);
virtual ~ui_menu_sliders();
virtual void populate() override;
virtual void handle() override;
virtual void custom_render(void *selectedref, float top, float bottom, float x, float y, float x2, float y2) override;
- static UINT32 ui_handler(running_machine &machine, render_container *container, UINT32 state);
+ static UINT32 ui_handler(mame_ui_manager &mui, render_container *container, UINT32 state);
private:
enum {
diff --git a/src/frontend/mame/ui/slotopt.cpp b/src/frontend/mame/ui/slotopt.cpp
index 9b6afa92132..5908ffb4fa6 100644
--- a/src/frontend/mame/ui/slotopt.cpp
+++ b/src/frontend/mame/ui/slotopt.cpp
@@ -145,7 +145,7 @@ void ui_menu_slot_devices::set_slot_device(device_slot_interface &slot, const ch
slot device menu
-------------------------------------------------*/
-ui_menu_slot_devices::ui_menu_slot_devices(running_machine &machine, render_container *container) : ui_menu(machine, container)
+ui_menu_slot_devices::ui_menu_slot_devices(mame_ui_manager &mui, render_container *container) : ui_menu(mui, container)
{
}
@@ -204,7 +204,7 @@ void ui_menu_slot_devices::handle()
device_slot_interface *slot = (device_slot_interface *)menu_event->itemref;
device_slot_option *option = slot_get_current_option(*slot);
if (option)
- ui_menu::stack_push(global_alloc_clear<ui_menu_device_config>(machine(), container, slot, option));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_device_config>(ui(), container, slot, option));
}
}
}
diff --git a/src/frontend/mame/ui/slotopt.h b/src/frontend/mame/ui/slotopt.h
index b297a5c7e9b..190d310a49c 100644
--- a/src/frontend/mame/ui/slotopt.h
+++ b/src/frontend/mame/ui/slotopt.h
@@ -15,7 +15,7 @@
class ui_menu_slot_devices : public ui_menu {
public:
- ui_menu_slot_devices(running_machine &machine, render_container *container);
+ ui_menu_slot_devices(mame_ui_manager &mui, render_container *container);
virtual ~ui_menu_slot_devices();
virtual void populate() override;
virtual void handle() override;
diff --git a/src/frontend/mame/ui/sndmenu.cpp b/src/frontend/mame/ui/sndmenu.cpp
index 58362585dc2..79a654b29cf 100644
--- a/src/frontend/mame/ui/sndmenu.cpp
+++ b/src/frontend/mame/ui/sndmenu.cpp
@@ -21,13 +21,13 @@ const int ui_menu_sound_options::m_sound_rate[] = { 11025, 22050, 44100, 48000 }
// ctor
//-------------------------------------------------
-ui_menu_sound_options::ui_menu_sound_options(running_machine &machine, render_container *container) : ui_menu(machine, container)
+ui_menu_sound_options::ui_menu_sound_options(mame_ui_manager &mui, render_container *container) : ui_menu(mui, container)
{
- osd_options &options = downcast<osd_options &>(machine.options());
+ osd_options &options = downcast<osd_options &>(mui.machine().options());
- m_sample_rate = machine.options().sample_rate();
+ m_sample_rate = mui.machine().options().sample_rate();
m_sound = (strcmp(options.sound(), OSDOPTVAL_NONE) && strcmp(options.sound(), "0"));
- m_samples = machine.options().samples();
+ m_samples = mui.machine().options().samples();
int total = ARRAY_LENGTH(m_sound_rate);
@@ -101,7 +101,7 @@ void ui_menu_sound_options::handle()
for (int index = 0; index < total; index++)
s_sel[index] = std::to_string(m_sound_rate[index]);
- ui_menu::stack_push(global_alloc_clear<ui_menu_selector>(machine(), container, s_sel, m_cur_rates));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_selector>(ui(), container, s_sel, m_cur_rates));
}
break;
@@ -135,7 +135,7 @@ void ui_menu_sound_options::populate()
item_append(_("Use External Samples"), m_samples ? _("On") : _("Off"), m_samples ? MENU_FLAG_RIGHT_ARROW : MENU_FLAG_LEFT_ARROW, (void *)(FPTR)ENABLE_SAMPLES);
item_append(ui_menu_item_type::SEPARATOR);
- customtop = mame_machine_manager::instance()->ui().get_line_height() + (3.0f * UI_BOX_TB_BORDER);
+ customtop = ui().get_line_height() + (3.0f * UI_BOX_TB_BORDER);
}
//-------------------------------------------------
@@ -145,9 +145,8 @@ void ui_menu_sound_options::populate()
void ui_menu_sound_options::custom_render(void *selectedref, float top, float bottom, float origx1, float origy1, float origx2, float origy2)
{
float width;
- mame_ui_manager &mui = mame_machine_manager::instance()->ui();
- mui.draw_text_full(container, _("Sound Options"), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_TRUNCATE,
- DRAW_NONE, ARGB_WHITE, ARGB_BLACK, &width, nullptr);
+ ui().draw_text_full(container, _("Sound Options"), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_TRUNCATE,
+ DRAW_NONE, rgb_t::white, rgb_t::black, &width, nullptr);
width += 2 * UI_BOX_LR_BORDER;
float maxwidth = MAX(origx2 - origx1, width);
@@ -158,7 +157,7 @@ void ui_menu_sound_options::custom_render(void *selectedref, float top, float bo
float y2 = origy1 - UI_BOX_TB_BORDER;
// draw a box
- mui.draw_outlined_box(container, x1, y1, x2, y2, UI_GREEN_COLOR);
+ ui().draw_outlined_box(container, x1, y1, x2, y2, UI_GREEN_COLOR);
// take off the borders
x1 += UI_BOX_LR_BORDER;
@@ -166,6 +165,6 @@ void ui_menu_sound_options::custom_render(void *selectedref, float top, float bo
y1 += UI_BOX_TB_BORDER;
// draw the text within it
- mui.draw_text_full(container, _("Sound Options"), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_TRUNCATE,
+ ui().draw_text_full(container, _("Sound Options"), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_TRUNCATE,
DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr);
}
diff --git a/src/frontend/mame/ui/sndmenu.h b/src/frontend/mame/ui/sndmenu.h
index 24bb0a79277..8c6a2aef1eb 100644
--- a/src/frontend/mame/ui/sndmenu.h
+++ b/src/frontend/mame/ui/sndmenu.h
@@ -19,7 +19,7 @@
class ui_menu_sound_options : public ui_menu
{
public:
- ui_menu_sound_options(running_machine &machine, render_container *container);
+ ui_menu_sound_options(mame_ui_manager &mui, render_container *container);
virtual ~ui_menu_sound_options();
virtual void populate() override;
virtual void handle() override;
diff --git a/src/frontend/mame/ui/submenu.cpp b/src/frontend/mame/ui/submenu.cpp
index 2d5984606eb..2537ef55a2d 100644
--- a/src/frontend/mame/ui/submenu.cpp
+++ b/src/frontend/mame/ui/submenu.cpp
@@ -18,14 +18,14 @@
// ctor / dtor
//-------------------------------------------------
-ui_submenu::ui_submenu(running_machine &machine, render_container *container, std::vector<ui_submenu::option> &suboptions, const game_driver *drv, emu_options *options)
- : ui_menu(machine, container)
+ui_submenu::ui_submenu(mame_ui_manager &mui, render_container *container, std::vector<ui_submenu::option> &suboptions, const game_driver *drv, emu_options *options)
+ : ui_menu(mui, container)
, m_options(suboptions)
, m_driver(drv)
{
core_options *opts = nullptr;
if (m_driver == nullptr)
- opts = dynamic_cast<core_options*>(&machine.options());
+ opts = dynamic_cast<core_options*>(&mui.machine().options());
else
opts = dynamic_cast<core_options*>(options);
@@ -84,8 +84,8 @@ ui_submenu::ui_submenu(running_machine &machine, render_container *container, st
}
break;
case ui_submenu::UI:
- sm_option.entry = mame_machine_manager::instance()->ui().options().get_entry(sm_option.name);
- sm_option.options = dynamic_cast<core_options*>(&mame_machine_manager::instance()->ui().options());
+ sm_option.entry = mui.options().get_entry(sm_option.name);
+ sm_option.options = dynamic_cast<core_options*>(&mui.options());
break;
default:
break;
@@ -298,7 +298,7 @@ void ui_submenu::populate()
}
item_append(ui_menu_item_type::SEPARATOR);
- custombottom = customtop = mame_machine_manager::instance()->ui().get_line_height() + (3.0f * UI_BOX_TB_BORDER);
+ custombottom = customtop = ui().get_line_height() + (3.0f * UI_BOX_TB_BORDER);
}
//-------------------------------------------------
@@ -308,10 +308,9 @@ void ui_submenu::populate()
void ui_submenu::custom_render(void *selectedref, float top, float bottom, float origx1, float origy1, float origx2, float origy2)
{
float width;
- mame_ui_manager &mui = mame_machine_manager::instance()->ui();
- mui.draw_text_full(container, _(m_options[0].description), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_TRUNCATE,
- DRAW_NONE, ARGB_WHITE, ARGB_BLACK, &width, nullptr);
+ ui().draw_text_full(container, _(m_options[0].description), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_TRUNCATE,
+ DRAW_NONE, rgb_t::white, rgb_t::black, &width, nullptr);
width += 2 * UI_BOX_LR_BORDER;
float maxwidth = MAX(origx2 - origx1, width);
@@ -322,7 +321,7 @@ void ui_submenu::custom_render(void *selectedref, float top, float bottom, float
float y2 = origy1 - UI_BOX_TB_BORDER;
// draw a box
- mui.draw_outlined_box(container, x1, y1, x2, y2, UI_GREEN_COLOR);
+ ui().draw_outlined_box(container, x1, y1, x2, y2, UI_GREEN_COLOR);
// take off the borders
x1 += UI_BOX_LR_BORDER;
@@ -330,7 +329,7 @@ void ui_submenu::custom_render(void *selectedref, float top, float bottom, float
y1 += UI_BOX_TB_BORDER;
// draw the text within it
- mui.draw_text_full(container, _(m_options[0].description), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_TRUNCATE,
+ ui().draw_text_full(container, _(m_options[0].description), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_TRUNCATE,
DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr);
if (selectedref != nullptr)
@@ -338,8 +337,8 @@ void ui_submenu::custom_render(void *selectedref, float top, float bottom, float
ui_submenu::option *selected_sm_option = (ui_submenu::option *)selectedref;
if (selected_sm_option->entry != nullptr)
{
- mui.draw_text_full(container, selected_sm_option->entry->description(), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_TRUNCATE,
- DRAW_NONE, ARGB_WHITE, ARGB_BLACK, &width, nullptr);
+ ui().draw_text_full(container, selected_sm_option->entry->description(), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_TRUNCATE,
+ DRAW_NONE, rgb_t::white, rgb_t::black, &width, nullptr);
width += 2 * UI_BOX_LR_BORDER;
maxwidth = MAX(origx2 - origx1, width);
@@ -351,7 +350,7 @@ void ui_submenu::custom_render(void *selectedref, float top, float bottom, float
y2 = origy2 + bottom;
// draw a box
- mui.draw_outlined_box(container, x1, y1, x2, y2, UI_RED_COLOR);
+ ui().draw_outlined_box(container, x1, y1, x2, y2, UI_RED_COLOR);
// take off the borders
x1 += UI_BOX_LR_BORDER;
@@ -359,7 +358,7 @@ void ui_submenu::custom_render(void *selectedref, float top, float bottom, float
y1 += UI_BOX_TB_BORDER;
// draw the text within it
- mui.draw_text_full(container, selected_sm_option->entry->description(), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_NEVER,
+ ui().draw_text_full(container, selected_sm_option->entry->description(), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_NEVER,
DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr);
}
}
diff --git a/src/frontend/mame/ui/submenu.h b/src/frontend/mame/ui/submenu.h
index 8168ab4bb7a..7cedeea6110 100644
--- a/src/frontend/mame/ui/submenu.h
+++ b/src/frontend/mame/ui/submenu.h
@@ -46,7 +46,7 @@ public:
std::vector<std::string> value;
};
- ui_submenu(running_machine &machine, render_container *container, std::vector<ui_submenu::option> &suboptions, const game_driver *drv = nullptr, emu_options *options = nullptr);
+ ui_submenu(mame_ui_manager &mui, render_container *container, std::vector<ui_submenu::option> &suboptions, const game_driver *drv = nullptr, emu_options *options = nullptr);
virtual ~ui_submenu();
virtual void populate() override;
virtual void handle() override;
diff --git a/src/frontend/mame/ui/swlist.cpp b/src/frontend/mame/ui/swlist.cpp
index 915c11239b9..b6dfc318a28 100644
--- a/src/frontend/mame/ui/swlist.cpp
+++ b/src/frontend/mame/ui/swlist.cpp
@@ -31,8 +31,8 @@
// ctor
//-------------------------------------------------
-ui_menu_software_parts::ui_menu_software_parts(running_machine &machine, render_container *container, const software_info *info, const char *interface, const software_part **part, bool other_opt, int *result)
- : ui_menu(machine, container)
+ui_menu_software_parts::ui_menu_software_parts(mame_ui_manager &mui, render_container *container, const software_info *info, const char *interface, const software_part **part, bool other_opt, int *result)
+ : ui_menu(mui, container)
{
m_info = info;
m_interface = interface;
@@ -121,8 +121,8 @@ void ui_menu_software_parts::handle()
// ctor
//-------------------------------------------------
-ui_menu_software_list::ui_menu_software_list(running_machine &machine, render_container *container, software_list_device *swlist, const char *interface, std::string &result)
- : ui_menu(machine, container), m_result(result)
+ui_menu_software_list::ui_menu_software_list(mame_ui_manager &mui, render_container *container, software_list_device *swlist, const char *interface, std::string &result)
+ : ui_menu(mui, container), m_result(result)
{
m_swlist = swlist;
m_interface = interface;
@@ -286,7 +286,7 @@ void ui_menu_software_list::handle()
update_selected = true;
if (ARRAY_LENGTH(m_filename_buffer) > 0)
- mame_machine_manager::instance()->ui().popup_time(ERROR_MESSAGE_TIME, "%s", m_filename_buffer);
+ ui().popup_time(ERROR_MESSAGE_TIME, "%s", m_filename_buffer);
}
// if it's any other key and we're not maxed out, update
else if (event->unichar >= ' ' && event->unichar < 0x7f)
@@ -296,7 +296,7 @@ void ui_menu_software_list::handle()
update_selected = true;
if (ARRAY_LENGTH(m_filename_buffer) > 0)
- mame_machine_manager::instance()->ui().popup_time(ERROR_MESSAGE_TIME, "%s", m_filename_buffer);
+ ui().popup_time(ERROR_MESSAGE_TIME, "%s", m_filename_buffer);
}
if (update_selected)
@@ -382,8 +382,8 @@ void ui_menu_software_list::handle()
// ctor
//-------------------------------------------------
-ui_menu_software::ui_menu_software(running_machine &machine, render_container *container, const char *interface, software_list_device **result)
- : ui_menu(machine, container)
+ui_menu_software::ui_menu_software(mame_ui_manager &mui, render_container *container, const char *interface, software_list_device **result)
+ : ui_menu(mui, container)
{
m_interface = interface;
m_result = result;
@@ -451,7 +451,7 @@ void ui_menu_software::handle()
const ui_menu_event *event = process(0);
if (event != nullptr && event->iptkey == IPT_UI_SELECT) {
- // ui_menu::stack_push(global_alloc_clear<ui_menu_software_list>(machine(), container, (software_list_config *)event->itemref, image));
+ // ui_menu::stack_push(global_alloc_clear<ui_menu_software_list>(ui(), container, (software_list_config *)event->itemref, image));
*m_result = (software_list_device *)event->itemref;
ui_menu::stack_pop(machine());
}
diff --git a/src/frontend/mame/ui/swlist.h b/src/frontend/mame/ui/swlist.h
index 253eeb6e7c8..bf8b650ea15 100644
--- a/src/frontend/mame/ui/swlist.h
+++ b/src/frontend/mame/ui/swlist.h
@@ -16,7 +16,7 @@
class ui_menu_software_parts : public ui_menu {
public:
enum { T_EMPTY, T_FMGR, T_SWLIST, T_ENTRY };
- ui_menu_software_parts(running_machine &machine, render_container *container, const software_info *info, const char *interface, const software_part **part, bool other_opt, int *result);
+ ui_menu_software_parts(mame_ui_manager &mui, render_container *container, const software_info *info, const char *interface, const software_part **part, bool other_opt, int *result);
virtual ~ui_menu_software_parts();
virtual void populate() override;
virtual void handle() override;
@@ -40,7 +40,7 @@ private:
class ui_menu_software_list : public ui_menu {
public:
- ui_menu_software_list(running_machine &machine, render_container *container, software_list_device *swlist, const char *interface, std::string &result);
+ ui_menu_software_list(mame_ui_manager &mui, render_container *container, software_list_device *swlist, const char *interface, std::string &result);
virtual ~ui_menu_software_list();
virtual void populate() override;
virtual void handle() override;
@@ -71,7 +71,7 @@ private:
class ui_menu_software : public ui_menu {
public:
- ui_menu_software(running_machine &machine, render_container *container, const char *interface, software_list_device **result);
+ ui_menu_software(mame_ui_manager &mui, render_container *container, const char *interface, software_list_device **result);
virtual ~ui_menu_software();
virtual void populate() override;
virtual void handle() override;
diff --git a/src/frontend/mame/ui/tapectrl.cpp b/src/frontend/mame/ui/tapectrl.cpp
index 510d0eb3fb3..4159b2d88f4 100644
--- a/src/frontend/mame/ui/tapectrl.cpp
+++ b/src/frontend/mame/ui/tapectrl.cpp
@@ -34,8 +34,8 @@
// ctor
//-------------------------------------------------
-ui_menu_tape_control::ui_menu_tape_control(running_machine &machine, render_container *container, cassette_image_device *device)
- : ui_menu_device_control<cassette_image_device>(machine, container, device)
+ui_menu_tape_control::ui_menu_tape_control(mame_ui_manager &mui, render_container *container, cassette_image_device *device)
+ : ui_menu_device_control<cassette_image_device>(mui, container, device)
{
}
diff --git a/src/frontend/mame/ui/tapectrl.h b/src/frontend/mame/ui/tapectrl.h
index 9cfa1316a99..816b2ad2b4d 100644
--- a/src/frontend/mame/ui/tapectrl.h
+++ b/src/frontend/mame/ui/tapectrl.h
@@ -18,7 +18,7 @@
class ui_menu_tape_control : public ui_menu_device_control<cassette_image_device> {
public:
- ui_menu_tape_control(running_machine &machine, render_container *container, cassette_image_device *device);
+ ui_menu_tape_control(mame_ui_manager &mui, render_container *container, cassette_image_device *device);
virtual ~ui_menu_tape_control();
virtual void populate() override;
virtual void handle() override;
diff --git a/src/frontend/mame/ui/ui.cpp b/src/frontend/mame/ui/ui.cpp
index c075c884d1b..7a702f78546 100644
--- a/src/frontend/mame/ui/ui.cpp
+++ b/src/frontend/mame/ui/ui.cpp
@@ -163,24 +163,6 @@ static INT32 slider_crossoffset(running_machine &machine, void *arg, int id, std
***************************************************************************/
//-------------------------------------------------
-// load ui options
-//-------------------------------------------------
-
-static void load_ui_options(running_machine &machine)
-{
- // parse the file
- std::string error;
- // attempt to open the output file
- emu_file file(machine.options().ini_path(), OPEN_FLAG_READ);
- if (file.open("ui.ini") == osd_file::error::NONE)
- {
- bool result = mame_machine_manager::instance()->ui().options().parse_ini_file((util::core_file&)file, OPTION_PRIORITY_MAME_INI, OPTION_PRIORITY_DRIVER_INI, error);
- if (!result)
- osd_printf_error("**Error loading ui.ini**");
- }
-}
-
-//-------------------------------------------------
// is_breakable_char - is a given unicode
// character a possible line break?
//-------------------------------------------------
@@ -284,9 +266,9 @@ mame_ui_manager::mame_ui_manager(running_machine &machine)
void mame_ui_manager::init()
{
- load_ui_options(machine());
+ load_ui_options();
// initialize the other UI bits
- ui_menu::init(machine());
+ ui_menu::init(machine(), options());
ui_gfx_init(machine());
get_font_rows(&machine());
@@ -415,7 +397,7 @@ void mame_ui_manager::display_startup_screens(bool first_time)
{
std::string warning;
warning.assign(_("This driver requires images to be loaded in the following device(s): ")).append(messagebox_text.substr(0, messagebox_text.length() - 2));
- ui_menu_file_manager::force_file_manager(machine(), &machine().render().ui_container(), warning.c_str());
+ ui_menu_file_manager::force_file_manager(*this, &machine().render().ui_container(), warning.c_str());
}
break;
}
@@ -490,12 +472,12 @@ void mame_ui_manager::update_and_render(render_container *container)
if (machine().phase() >= MACHINE_PHASE_RESET)
{
mame_machine_manager::instance()->lua()->on_frame_done();
- mame_machine_manager::instance()->cheat().render_text(*container);
+ mame_machine_manager::instance()->cheat().render_text(*this, *container);
}
// call the current UI handler
assert(m_handler_callback != nullptr);
- m_handler_param = (*m_handler_callback)(machine(), container, m_handler_param);
+ m_handler_param = (*m_handler_callback)(*this, container, m_handler_param);
// display any popup messages
if (osd_ticks() < m_popup_text_end)
@@ -515,7 +497,7 @@ void mame_ui_manager::update_and_render(render_container *container)
float mouse_y=-1,mouse_x=-1;
if (mouse_target->map_point_container(mouse_target_x, mouse_target_y, *container, mouse_x, mouse_y))
{
- const float cursor_size = 0.6 * mame_machine_manager::instance()->ui().get_line_height();
+ const float cursor_size = 0.6 * get_line_height();
container->add_quad(mouse_x, mouse_y, mouse_x + cursor_size*container->manager().ui_aspect(container), mouse_y + cursor_size, UI_TEXT_COLOR, m_mouse_arrow_texture, PRIMFLAG_ANTIALIAS(1) | PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
}
}
@@ -1285,9 +1267,9 @@ std::string &mame_ui_manager::game_info_astring(std::string &str)
// messagebox_text string but handles no input
//-------------------------------------------------
-UINT32 mame_ui_manager::handler_messagebox(running_machine &machine, render_container *container, UINT32 state)
+UINT32 mame_ui_manager::handler_messagebox(mame_ui_manager &mui, render_container *container, UINT32 state)
{
- mame_machine_manager::instance()->ui().draw_text_box(container, messagebox_text.c_str(), JUSTIFY_LEFT, 0.5f, 0.5f, messagebox_backcolor);
+ mui.draw_text_box(container, messagebox_text.c_str(), JUSTIFY_LEFT, 0.5f, 0.5f, messagebox_backcolor);
return 0;
}
@@ -1298,20 +1280,20 @@ UINT32 mame_ui_manager::handler_messagebox(running_machine &machine, render_cont
// any keypress
//-------------------------------------------------
-UINT32 mame_ui_manager::handler_messagebox_anykey(running_machine &machine, render_container *container, UINT32 state)
+UINT32 mame_ui_manager::handler_messagebox_anykey(mame_ui_manager &mui, render_container *container, UINT32 state)
{
// draw a standard message window
- mame_machine_manager::instance()->ui().draw_text_box(container, messagebox_text.c_str(), JUSTIFY_LEFT, 0.5f, 0.5f, messagebox_backcolor);
+ mui.draw_text_box(container, messagebox_text.c_str(), JUSTIFY_LEFT, 0.5f, 0.5f, messagebox_backcolor);
// if the user cancels, exit out completely
- if (machine.ui_input().pressed(IPT_UI_CANCEL))
+ if (mui.machine().ui_input().pressed(IPT_UI_CANCEL))
{
- machine.schedule_exit();
+ mui.machine().schedule_exit();
state = UI_HANDLER_CANCEL;
}
// if any key is pressed, just exit
- else if (machine.input().poll_switches() != INPUT_CODE_INVALID)
+ else if (mui.machine().input().poll_switches() != INPUT_CODE_INVALID)
state = UI_HANDLER_CANCEL;
return state;
@@ -1384,7 +1366,7 @@ void mame_ui_manager::increase_frameskip()
machine().video().set_frameskip(newframeskip);
// display the FPS counter for 2 seconds
- mame_machine_manager::instance()->ui().show_fps_temp(2.0);
+ show_fps_temp(2.0);
}
@@ -1401,7 +1383,7 @@ void mame_ui_manager::decrease_frameskip()
machine().video().set_frameskip(newframeskip);
// display the FPS counter for 2 seconds
- mame_machine_manager::instance()->ui().show_fps_temp(2.0);
+ show_fps_temp(2.0);
}
@@ -1512,61 +1494,62 @@ void mame_ui_manager::image_display(const device_type &type, device_image_interf
// of the standard keypresses
//-------------------------------------------------
-UINT32 mame_ui_manager::handler_ingame(running_machine &machine, render_container *container, UINT32 state)
+UINT32 mame_ui_manager::handler_ingame(mame_ui_manager &mui, render_container *container, UINT32 state)
{
- bool is_paused = machine.paused();
+ bool is_paused = mui.machine().paused();
// first draw the FPS counter
- if (mame_machine_manager::instance()->ui().show_fps_counter())
+ if (mui.show_fps_counter())
{
- mame_machine_manager::instance()->ui().draw_text_full(container, machine.video().speed_text().c_str(), 0.0f, 0.0f, 1.0f,
- JUSTIFY_RIGHT, WRAP_WORD, DRAW_OPAQUE, ARGB_WHITE, ARGB_BLACK, nullptr, nullptr);
+ mui.draw_text_full(container, mui.machine().video().speed_text().c_str(), 0.0f, 0.0f, 1.0f,
+ JUSTIFY_RIGHT, WRAP_WORD, DRAW_OPAQUE, rgb_t::white, rgb_t::black, nullptr, nullptr);
}
// Show the duration of current part (intro or gameplay or extra)
- if (mame_machine_manager::instance()->ui().show_timecode_counter()) {
+ if (mui.show_timecode_counter()) {
std::string tempstring;
- mame_machine_manager::instance()->ui().draw_text_full(container, machine.video().timecode_text(tempstring).c_str(), 0.0f, 0.0f, 1.0f,
- JUSTIFY_RIGHT, WRAP_WORD, DRAW_OPAQUE, rgb_t(0xf0,0xf0,0x10,0x10), ARGB_BLACK, nullptr, nullptr);
+ mui.draw_text_full(container, mui.machine().video().timecode_text(tempstring).c_str(), 0.0f, 0.0f, 1.0f,
+ JUSTIFY_RIGHT, WRAP_WORD, DRAW_OPAQUE, rgb_t(0xf0,0xf0,0x10,0x10), rgb_t::black, nullptr, nullptr);
}
// Show the total time elapsed for the video preview (all parts intro, gameplay, extras)
- if (mame_machine_manager::instance()->ui().show_timecode_total()) {
+ if (mui.show_timecode_total()) {
std::string tempstring;
- mame_machine_manager::instance()->ui().draw_text_full(container, machine.video().timecode_total_text(tempstring).c_str(), 0.0f, 0.0f, 1.0f,
- JUSTIFY_LEFT, WRAP_WORD, DRAW_OPAQUE, rgb_t(0xf0,0x10,0xf0,0x10), ARGB_BLACK, nullptr, nullptr);
+ mui.draw_text_full(container, mui.machine().video().timecode_total_text(tempstring).c_str(), 0.0f, 0.0f, 1.0f,
+ JUSTIFY_LEFT, WRAP_WORD, DRAW_OPAQUE, rgb_t(0xf0,0x10,0xf0,0x10), rgb_t::black, nullptr, nullptr);
}
// draw the profiler if visible
- if (mame_machine_manager::instance()->ui().show_profiler())
+ if (mui.show_profiler())
{
- const char *text = g_profiler.text(machine);
- mame_machine_manager::instance()->ui().draw_text_full(container, text, 0.0f, 0.0f, 1.0f, JUSTIFY_LEFT, WRAP_WORD, DRAW_OPAQUE, ARGB_WHITE, ARGB_BLACK, nullptr, nullptr);
+ const char *text = g_profiler.text(mui.machine());
+ mui.draw_text_full(container, text, 0.0f, 0.0f, 1.0f, JUSTIFY_LEFT, WRAP_WORD, DRAW_OPAQUE, rgb_t::white, rgb_t::black, nullptr, nullptr);
}
// if we're single-stepping, pause now
- if (mame_machine_manager::instance()->ui().single_step())
+ if (mui.single_step())
{
- machine.pause();
- mame_machine_manager::instance()->ui().set_single_step(false);
+ mui.machine().pause();
+ mui.set_single_step(false);
}
// determine if we should disable the rest of the UI
- bool ui_disabled = (machine.ioport().has_keyboard() && !machine.ui_active());
+ bool has_keyboard = mui.machine().ioport().has_keyboard();
+ bool ui_disabled = (has_keyboard && !mui.machine().ui_active());
// is ScrLk UI toggling applicable here?
- if (machine.ioport().has_keyboard())
+ if (has_keyboard)
{
// are we toggling the UI with ScrLk?
- if (machine.ui_input().pressed(IPT_UI_TOGGLE_UI))
+ if (mui.machine().ui_input().pressed(IPT_UI_TOGGLE_UI))
{
// toggle the UI
- machine.set_ui_active(!machine.ui_active());
+ mui.machine().set_ui_active(!mui.machine().ui_active());
// display a popup indicating the new status
- if (machine.ui_active())
+ if (mui.machine().ui_active())
{
- mame_machine_manager::instance()->ui().popup_time(2, "%s\n%s\n%s\n%s\n%s\n%s\n",
+ mui.popup_time(2, "%s\n%s\n%s\n%s\n%s\n%s\n",
_("Keyboard Emulation Status"),
"-------------------------",
_("Mode: PARTIAL Emulation"),
@@ -1576,7 +1559,7 @@ UINT32 mame_ui_manager::handler_ingame(running_machine &machine, render_containe
}
else
{
- mame_machine_manager::instance()->ui().popup_time(2, "%s\n%s\n%s\n%s\n%s\n%s\n",
+ mui.popup_time(2, "%s\n%s\n%s\n%s\n%s\n%s\n",
_("Keyboard Emulation Status"),
"-------------------------",
_("Mode: FULL Emulation"),
@@ -1588,64 +1571,64 @@ UINT32 mame_ui_manager::handler_ingame(running_machine &machine, render_containe
}
// is the natural keyboard enabled?
- if (mame_machine_manager::instance()->ui().use_natural_keyboard() && (machine.phase() == MACHINE_PHASE_RUNNING))
- mame_machine_manager::instance()->ui().process_natural_keyboard();
+ if (mui.use_natural_keyboard() && (mui.machine().phase() == MACHINE_PHASE_RUNNING))
+ mui.process_natural_keyboard();
if (!ui_disabled)
{
// paste command
- if (machine.ui_input().pressed(IPT_UI_PASTE))
- mame_machine_manager::instance()->ui().paste();
+ if (mui.machine().ui_input().pressed(IPT_UI_PASTE))
+ mui.paste();
}
- mame_machine_manager::instance()->ui().image_handler_ingame();
+ mui.image_handler_ingame();
// handle a save input timecode request
- if (machine.ui_input().pressed(IPT_UI_TIMECODE))
- machine.video().save_input_timecode();
+ if (mui.machine().ui_input().pressed(IPT_UI_TIMECODE))
+ mui.machine().video().save_input_timecode();
if (ui_disabled) return ui_disabled;
- if (machine.ui_input().pressed(IPT_UI_CANCEL))
+ if (mui.machine().ui_input().pressed(IPT_UI_CANCEL))
{
- mame_machine_manager::instance()->ui().request_quit();
+ mui.request_quit();
return 0;
}
// turn on menus if requested
- if (machine.ui_input().pressed(IPT_UI_CONFIGURE))
- return mame_machine_manager::instance()->ui().set_handler(ui_menu::ui_handler, 0);
+ if (mui.machine().ui_input().pressed(IPT_UI_CONFIGURE))
+ return mui.set_handler(ui_menu::ui_handler, 0);
// if the on-screen display isn't up and the user has toggled it, turn it on
- if ((machine.debug_flags & DEBUG_FLAG_ENABLED) == 0 && machine.ui_input().pressed(IPT_UI_ON_SCREEN_DISPLAY))
- return mame_machine_manager::instance()->ui().set_handler(ui_menu_sliders::ui_handler, 1);
+ if ((mui.machine().debug_flags & DEBUG_FLAG_ENABLED) == 0 && mui.machine().ui_input().pressed(IPT_UI_ON_SCREEN_DISPLAY))
+ return mui.set_handler(ui_menu_sliders::ui_handler, 1);
// handle a reset request
- if (machine.ui_input().pressed(IPT_UI_RESET_MACHINE))
- machine.schedule_hard_reset();
- if (machine.ui_input().pressed(IPT_UI_SOFT_RESET))
- machine.schedule_soft_reset();
+ if (mui.machine().ui_input().pressed(IPT_UI_RESET_MACHINE))
+ mui.machine().schedule_hard_reset();
+ if (mui.machine().ui_input().pressed(IPT_UI_SOFT_RESET))
+ mui.machine().schedule_soft_reset();
// handle a request to display graphics/palette
- if (machine.ui_input().pressed(IPT_UI_SHOW_GFX))
+ if (mui.machine().ui_input().pressed(IPT_UI_SHOW_GFX))
{
if (!is_paused)
- machine.pause();
- return mame_machine_manager::instance()->ui().set_handler(ui_gfx_ui_handler, is_paused);
+ mui.machine().pause();
+ return mui.set_handler(ui_gfx_ui_handler, is_paused);
}
// handle a tape control key
- if (machine.ui_input().pressed(IPT_UI_TAPE_START))
+ if (mui.machine().ui_input().pressed(IPT_UI_TAPE_START))
{
- for (cassette_image_device &cass : cassette_device_iterator(machine.root_device()))
+ for (cassette_image_device &cass : cassette_device_iterator(mui.machine().root_device()))
{
cass.change_state(CASSETTE_PLAY, CASSETTE_MASK_UISTATE);
return 0;
}
}
- if (machine.ui_input().pressed(IPT_UI_TAPE_STOP))
+ if (mui.machine().ui_input().pressed(IPT_UI_TAPE_STOP))
{
- for (cassette_image_device &cass : cassette_device_iterator(machine.root_device()))
+ for (cassette_image_device &cass : cassette_device_iterator(mui.machine().root_device()))
{
cass.change_state(CASSETTE_STOPPED, CASSETTE_MASK_UISTATE);
return 0;
@@ -1653,87 +1636,87 @@ UINT32 mame_ui_manager::handler_ingame(running_machine &machine, render_containe
}
// handle a save state request
- if (machine.ui_input().pressed(IPT_UI_SAVE_STATE))
+ if (mui.machine().ui_input().pressed(IPT_UI_SAVE_STATE))
{
- machine.pause();
- mame_machine_manager::instance()->ui().m_load_save_hold = true;
- return mame_machine_manager::instance()->ui().set_handler(handler_load_save, LOADSAVE_SAVE);
+ mui.machine().pause();
+ mui.m_load_save_hold = true;
+ return mui.set_handler(handler_load_save, LOADSAVE_SAVE);
}
// handle a load state request
- if (machine.ui_input().pressed(IPT_UI_LOAD_STATE))
+ if (mui.machine().ui_input().pressed(IPT_UI_LOAD_STATE))
{
- machine.pause();
- mame_machine_manager::instance()->ui().m_load_save_hold = true;
- return mame_machine_manager::instance()->ui().set_handler(handler_load_save, LOADSAVE_LOAD);
+ mui.machine().pause();
+ mui.m_load_save_hold = true;
+ return mui.set_handler(handler_load_save, LOADSAVE_LOAD);
}
// handle a save snapshot request
- if (machine.ui_input().pressed(IPT_UI_SNAPSHOT))
- machine.video().save_active_screen_snapshots();
+ if (mui.machine().ui_input().pressed(IPT_UI_SNAPSHOT))
+ mui.machine().video().save_active_screen_snapshots();
// toggle pause
- if (machine.ui_input().pressed(IPT_UI_PAUSE))
- machine.toggle_pause();
+ if (mui.machine().ui_input().pressed(IPT_UI_PAUSE))
+ mui.machine().toggle_pause();
// pause single step
- if (machine.ui_input().pressed(IPT_UI_PAUSE_SINGLE))
+ if (mui.machine().ui_input().pressed(IPT_UI_PAUSE_SINGLE))
{
- mame_machine_manager::instance()->ui().set_single_step(true);
- machine.resume();
+ mui.set_single_step(true);
+ mui.machine().resume();
}
// handle a toggle cheats request
- if (machine.ui_input().pressed(IPT_UI_TOGGLE_CHEAT))
+ if (mui.machine().ui_input().pressed(IPT_UI_TOGGLE_CHEAT))
mame_machine_manager::instance()->cheat().set_enable(!mame_machine_manager::instance()->cheat().enabled());
// toggle movie recording
- if (machine.ui_input().pressed(IPT_UI_RECORD_MOVIE))
- machine.video().toggle_record_movie();
+ if (mui.machine().ui_input().pressed(IPT_UI_RECORD_MOVIE))
+ mui.machine().video().toggle_record_movie();
// toggle profiler display
- if (machine.ui_input().pressed(IPT_UI_SHOW_PROFILER))
- mame_machine_manager::instance()->ui().set_show_profiler(!mame_machine_manager::instance()->ui().show_profiler());
+ if (mui.machine().ui_input().pressed(IPT_UI_SHOW_PROFILER))
+ mui.set_show_profiler(!mui.show_profiler());
// toggle FPS display
- if (machine.ui_input().pressed(IPT_UI_SHOW_FPS))
- mame_machine_manager::instance()->ui().set_show_fps(!mame_machine_manager::instance()->ui().show_fps());
+ if (mui.machine().ui_input().pressed(IPT_UI_SHOW_FPS))
+ mui.set_show_fps(!mui.show_fps());
// increment frameskip?
- if (machine.ui_input().pressed(IPT_UI_FRAMESKIP_INC))
- mame_machine_manager::instance()->ui().increase_frameskip();
+ if (mui.machine().ui_input().pressed(IPT_UI_FRAMESKIP_INC))
+ mui.increase_frameskip();
// decrement frameskip?
- if (machine.ui_input().pressed(IPT_UI_FRAMESKIP_DEC))
- mame_machine_manager::instance()->ui().decrease_frameskip();
+ if (mui.machine().ui_input().pressed(IPT_UI_FRAMESKIP_DEC))
+ mui.decrease_frameskip();
// toggle throttle?
- if (machine.ui_input().pressed(IPT_UI_THROTTLE))
- machine.video().toggle_throttle();
+ if (mui.machine().ui_input().pressed(IPT_UI_THROTTLE))
+ mui.machine().video().toggle_throttle();
// toggle autofire
- if (machine.ui_input().pressed(IPT_UI_TOGGLE_AUTOFIRE))
+ if (mui.machine().ui_input().pressed(IPT_UI_TOGGLE_AUTOFIRE))
{
- if (!machine.options().cheat())
+ if (!mui.machine().options().cheat())
{
- machine.popmessage(_("Autofire can't be enabled"));
+ mui.machine().popmessage(_("Autofire can't be enabled"));
}
else
{
- bool autofire_toggle = machine.ioport().get_autofire_toggle();
- machine.ioport().set_autofire_toggle(!autofire_toggle);
- machine.popmessage("Autofire %s", autofire_toggle ? _("Enabled") : _("Disabled"));
+ bool autofire_toggle = mui.machine().ioport().get_autofire_toggle();
+ mui.machine().ioport().set_autofire_toggle(!autofire_toggle);
+ mui.machine().popmessage("Autofire %s", autofire_toggle ? _("Enabled") : _("Disabled"));
}
}
// check for fast forward
- if (machine.ioport().type_pressed(IPT_UI_FAST_FORWARD))
+ if (mui.machine().ioport().type_pressed(IPT_UI_FAST_FORWARD))
{
- machine.video().set_fastforward(true);
- mame_machine_manager::instance()->ui().show_fps_temp(0.5);
+ mui.machine().video().set_fastforward(true);
+ mui.show_fps_temp(0.5);
}
else
- machine.video().set_fastforward(false);
+ mui.machine().video().set_fastforward(false);
return 0;
}
@@ -1744,7 +1727,7 @@ UINT32 mame_ui_manager::handler_ingame(running_machine &machine, render_containe
// specifying a game to save or load
//-------------------------------------------------
-UINT32 mame_ui_manager::handler_load_save(running_machine &machine, render_container *container, UINT32 state)
+UINT32 mame_ui_manager::handler_load_save(mame_ui_manager &mui, render_container *container, UINT32 state)
{
char filename[20];
char file = 0;
@@ -1755,52 +1738,52 @@ UINT32 mame_ui_manager::handler_load_save(running_machine &machine, render_conta
// okay, we're waiting for a key to select a slot; display a message
if (state == LOADSAVE_SAVE)
- mame_machine_manager::instance()->ui().draw_message_window(container, _("Select position to save to"));
+ mui.draw_message_window(container, _("Select position to save to"));
else
- mame_machine_manager::instance()->ui().draw_message_window(container, _("Select position to load from"));
+ mui.draw_message_window(container, _("Select position to load from"));
// if load/save state sequence is still being pressed, do not read the filename yet
- if (mame_machine_manager::instance()->ui().m_load_save_hold) {
+ if (mui.m_load_save_hold) {
bool seq_in_progress = false;
const input_seq &load_save_seq = state == LOADSAVE_SAVE ?
- machine.ioport().type_seq(IPT_UI_SAVE_STATE) :
- machine.ioport().type_seq(IPT_UI_LOAD_STATE);
+ mui.machine().ioport().type_seq(IPT_UI_SAVE_STATE) :
+ mui.machine().ioport().type_seq(IPT_UI_LOAD_STATE);
for (int i = 0; i < load_save_seq.length(); i++)
- if (machine.input().code_pressed_once(load_save_seq[i]))
+ if (mui.machine().input().code_pressed_once(load_save_seq[i]))
seq_in_progress = true;
if (seq_in_progress)
return state;
else
- mame_machine_manager::instance()->ui().m_load_save_hold = false;
+ mui.m_load_save_hold = false;
}
// check for cancel key
- if (machine.ui_input().pressed(IPT_UI_CANCEL))
+ if (mui.machine().ui_input().pressed(IPT_UI_CANCEL))
{
// display a popup indicating things were cancelled
if (state == LOADSAVE_SAVE)
- machine.popmessage(_("Save cancelled"));
+ mui.machine().popmessage(_("Save cancelled"));
else
- machine.popmessage(_("Load cancelled"));
+ mui.machine().popmessage(_("Load cancelled"));
// reset the state
- machine.resume();
+ mui.machine().resume();
return UI_HANDLER_CANCEL;
}
// check for A-Z or 0-9
for (input_item_id id = ITEM_ID_A; id <= ITEM_ID_Z; ++id)
- if (machine.input().code_pressed_once(input_code(DEVICE_CLASS_KEYBOARD, 0, ITEM_CLASS_SWITCH, ITEM_MODIFIER_NONE, id)))
+ if (mui.machine().input().code_pressed_once(input_code(DEVICE_CLASS_KEYBOARD, 0, ITEM_CLASS_SWITCH, ITEM_MODIFIER_NONE, id)))
file = id - ITEM_ID_A + 'a';
if (file == 0)
for (input_item_id id = ITEM_ID_0; id <= ITEM_ID_9; ++id)
- if (machine.input().code_pressed_once(input_code(DEVICE_CLASS_KEYBOARD, 0, ITEM_CLASS_SWITCH, ITEM_MODIFIER_NONE, id)))
+ if (mui.machine().input().code_pressed_once(input_code(DEVICE_CLASS_KEYBOARD, 0, ITEM_CLASS_SWITCH, ITEM_MODIFIER_NONE, id)))
file = id - ITEM_ID_0 + '0';
if (file == 0)
for (input_item_id id = ITEM_ID_0_PAD; id <= ITEM_ID_9_PAD; ++id)
- if (machine.input().code_pressed_once(input_code(DEVICE_CLASS_KEYBOARD, 0, ITEM_CLASS_SWITCH, ITEM_MODIFIER_NONE, id)))
+ if (mui.machine().input().code_pressed_once(input_code(DEVICE_CLASS_KEYBOARD, 0, ITEM_CLASS_SWITCH, ITEM_MODIFIER_NONE, id)))
file = id - ITEM_ID_0_PAD + '0';
if (file == 0)
{
@@ -1808,7 +1791,7 @@ UINT32 mame_ui_manager::handler_load_save(running_machine &machine, render_conta
for (int joy_index = 0; joy_index <= MAX_SAVED_STATE_JOYSTICK; joy_index++)
for (input_item_id id = ITEM_ID_BUTTON1; id <= ITEM_ID_BUTTON32; ++id)
- if (machine.input().code_pressed_once(input_code(DEVICE_CLASS_JOYSTICK, joy_index, ITEM_CLASS_SWITCH, ITEM_MODIFIER_NONE, id)))
+ if (mui.machine().input().code_pressed_once(input_code(DEVICE_CLASS_JOYSTICK, joy_index, ITEM_CLASS_SWITCH, ITEM_MODIFIER_NONE, id)))
{
snprintf(filename, sizeof(filename), "joy%i-%i", joy_index, id - ITEM_ID_BUTTON1 + 1);
found = true;
@@ -1826,20 +1809,20 @@ UINT32 mame_ui_manager::handler_load_save(running_machine &machine, render_conta
// display a popup indicating that the save will proceed
if (state == LOADSAVE_SAVE)
{
- machine.popmessage(_("Save to position %s"), filename);
- machine.schedule_save(filename);
+ mui.machine().popmessage(_("Save to position %s"), filename);
+ mui.machine().schedule_save(filename);
}
else
{
- machine.popmessage(_("Load from position %s"), filename);
- machine.schedule_load(filename);
+ mui.machine().popmessage(_("Load from position %s"), filename);
+ mui.machine().schedule_load(filename);
}
// avoid handling the name of the save state slot as a seperate input
- machine.ui_input().mark_all_as_pressed();
+ mui.machine().ui_input().mark_all_as_pressed();
// remove the pause and reset the state
- machine.resume();
+ mui.machine().resume();
return UI_HANDLER_CANCEL;
}
@@ -1862,13 +1845,13 @@ void mame_ui_manager::request_quit()
// confirming quit emulation
//-------------------------------------------------
-UINT32 mame_ui_manager::handler_confirm_quit(running_machine &machine, render_container *container, UINT32 state)
+UINT32 mame_ui_manager::handler_confirm_quit(mame_ui_manager &mui, render_container *container, UINT32 state)
{
// get the text for 'UI Select'
- std::string ui_select_text = machine.input().seq_name(machine.ioport().type_seq(IPT_UI_SELECT, 0, SEQ_TYPE_STANDARD));
+ std::string ui_select_text = mui.machine().input().seq_name(mui.machine().ioport().type_seq(IPT_UI_SELECT, 0, SEQ_TYPE_STANDARD));
// get the text for 'UI Cancel'
- std::string ui_cancel_text = machine.input().seq_name(machine.ioport().type_seq(IPT_UI_CANCEL, 0, SEQ_TYPE_STANDARD));
+ std::string ui_cancel_text = mui.machine().input().seq_name(mui.machine().ioport().type_seq(IPT_UI_CANCEL, 0, SEQ_TYPE_STANDARD));
// assemble the quit message
std::string quit_message = string_format(_("Are you sure you want to quit?\n\n"
@@ -1877,17 +1860,17 @@ UINT32 mame_ui_manager::handler_confirm_quit(running_machine &machine, render_co
ui_select_text,
ui_cancel_text);
- mame_machine_manager::instance()->ui().draw_text_box(container, quit_message.c_str(), JUSTIFY_CENTER, 0.5f, 0.5f, UI_RED_COLOR);
- machine.pause();
+ mui.draw_text_box(container, quit_message.c_str(), JUSTIFY_CENTER, 0.5f, 0.5f, UI_RED_COLOR);
+ mui.machine().pause();
// if the user press ENTER, quit the game
- if (machine.ui_input().pressed(IPT_UI_SELECT))
- machine.schedule_exit();
+ if (mui.machine().ui_input().pressed(IPT_UI_SELECT))
+ mui.machine().schedule_exit();
// if the user press ESC, just continue
- else if (machine.ui_input().pressed(IPT_UI_CANCEL))
+ else if (mui.machine().ui_input().pressed(IPT_UI_CANCEL))
{
- machine.resume();
+ mui.machine().resume();
state = UI_HANDLER_CANCEL;
}
@@ -2736,3 +2719,96 @@ void mame_ui_manager::popup_time_string(int seconds, std::string message)
// set a timer
m_popup_text_end = osd_ticks() + osd_ticks_per_second() * seconds;
}
+
+
+/***************************************************************************
+ LOADING AND SAVING OPTIONS
+***************************************************************************/
+
+//-------------------------------------------------
+// load ui options
+//-------------------------------------------------
+
+void mame_ui_manager::load_ui_options()
+{
+ // parse the file
+ std::string error;
+ // attempt to open the output file
+ emu_file file(machine().options().ini_path(), OPEN_FLAG_READ);
+ if (file.open("ui.ini") == osd_file::error::NONE)
+ {
+ bool result = options().parse_ini_file((util::core_file&)file, OPTION_PRIORITY_MAME_INI, OPTION_PRIORITY_DRIVER_INI, error);
+ if (!result)
+ osd_printf_error("**Error loading ui.ini**");
+ }
+}
+
+//-------------------------------------------------
+// save ui options
+//-------------------------------------------------
+
+void mame_ui_manager::save_ui_options()
+{
+ // attempt to open the output file
+ emu_file file(machine().options().ini_path(), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS);
+ if (file.open("ui.ini") == osd_file::error::NONE)
+ {
+ // generate the updated INI
+ std::string initext = options().output_ini();
+ file.puts(initext.c_str());
+ file.close();
+ }
+ else
+ machine().popmessage(_("**Error saving ui.ini**"));
+}
+
+//-------------------------------------------------
+// save main option
+//-------------------------------------------------
+
+void mame_ui_manager::save_main_option()
+{
+ // parse the file
+ std::string error;
+ emu_options options(machine().options()); // This way we make sure that all OSD parts are in
+ std::string error_string;
+
+ // attempt to open the main ini file
+ {
+ emu_file file(machine().options().ini_path(), OPEN_FLAG_READ);
+ if (file.open(emulator_info::get_configname(), ".ini") == osd_file::error::NONE)
+ {
+ bool result = options.parse_ini_file((util::core_file&)file, OPTION_PRIORITY_MAME_INI, OPTION_PRIORITY_DRIVER_INI, error);
+ if (!result)
+ {
+ osd_printf_error("**Error loading %s.ini**", emulator_info::get_configname());
+ return;
+ }
+ }
+ }
+
+ for (emu_options::entry &f_entry : machine().options())
+ {
+ if (f_entry.is_changed())
+ {
+ options.set_value(f_entry.name(), f_entry.value(), OPTION_PRIORITY_CMDLINE, error_string);
+ }
+ }
+
+ // attempt to open the output file
+ {
+ emu_file file(machine().options().ini_path(), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS);
+ if (file.open(emulator_info::get_configname(), ".ini") == osd_file::error::NONE)
+ {
+ // generate the updated INI
+ std::string initext = options.output_ini();
+ file.puts(initext.c_str());
+ file.close();
+ }
+ else {
+ machine().popmessage(_("**Error saving %s.ini**"), emulator_info::get_configname());
+ return;
+ }
+ }
+ popup_time(3, "%s", _("\n Configuration saved \n\n"));
+}
diff --git a/src/frontend/mame/ui/ui.h b/src/frontend/mame/ui/ui.h
index b45d20c6e63..bb218cb6266 100644
--- a/src/frontend/mame/ui/ui.h
+++ b/src/frontend/mame/ui/ui.h
@@ -17,7 +17,6 @@
#include "render.h"
#include "moptions.h"
-#include "mame.h"
#include "language.h"
#include "ui/uimain.h"
@@ -41,8 +40,6 @@ class ui_menu_item;
#define UI_BOX_TB_BORDER (UI_TARGET_FONT_HEIGHT * 0.25f)
/* handy colors */
-#define ARGB_WHITE rgb_t(0xff,0xff,0xff,0xff)
-#define ARGB_BLACK rgb_t(0xff,0x00,0x00,0x00)
#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)
@@ -95,7 +92,8 @@ enum
TYPE DEFINITIONS
***************************************************************************/
-typedef UINT32 (*ui_callback)(running_machine &, render_container *, UINT32);
+class mame_ui_manager;
+typedef UINT32 (*ui_callback)(mame_ui_manager &, render_container *, UINT32);
// ======================> mame_ui_manager
@@ -133,6 +131,11 @@ public:
void draw_text_box(render_container *container, const char *text, int justify, float xpos, float ypos, rgb_t backcolor);
void draw_message_window(render_container *container, const char *text);
+ // load/save options to file
+ void load_ui_options();
+ void save_ui_options();
+ void save_main_option();
+
template <typename Format, typename... Params> void popup_time(int seconds, Format &&fmt, Params &&... args);
void show_fps_temp(double seconds);
void set_show_fps(bool show);
@@ -196,11 +199,11 @@ private:
std::string &warnings_string(std::string &buffer);
// UI handlers
- static UINT32 handler_messagebox(running_machine &machine, render_container *container, UINT32 state);
- static UINT32 handler_messagebox_anykey(running_machine &machine, render_container *container, UINT32 state);
- static UINT32 handler_ingame(running_machine &machine, render_container *container, UINT32 state);
- static UINT32 handler_load_save(running_machine &machine, render_container *container, UINT32 state);
- static UINT32 handler_confirm_quit(running_machine &machine, render_container *container, UINT32 state);
+ static UINT32 handler_messagebox(mame_ui_manager &mui, render_container *container, UINT32 state);
+ static UINT32 handler_messagebox_anykey(mame_ui_manager &mui, render_container *container, UINT32 state);
+ static UINT32 handler_ingame(mame_ui_manager &mui, render_container *container, UINT32 state);
+ static UINT32 handler_load_save(mame_ui_manager &mui, render_container *container, UINT32 state);
+ static UINT32 handler_confirm_quit(mame_ui_manager &mui, render_container *container, UINT32 state);
// private methods
void exit();
diff --git a/src/frontend/mame/ui/videoopt.cpp b/src/frontend/mame/ui/videoopt.cpp
index f0f54a20702..a88fef2343c 100644
--- a/src/frontend/mame/ui/videoopt.cpp
+++ b/src/frontend/mame/ui/videoopt.cpp
@@ -24,7 +24,7 @@ void ui_menu_video_targets::handle()
/* process the menu */
const ui_menu_event *menu_event = process(0);
if (menu_event != nullptr && menu_event->iptkey == IPT_UI_SELECT)
- ui_menu::stack_push(global_alloc_clear<ui_menu_video_options>(machine(), container, static_cast<render_target *>(menu_event->itemref)));
+ ui_menu::stack_push(global_alloc_clear<ui_menu_video_options>(ui(), container, static_cast<render_target *>(menu_event->itemref)));
}
@@ -33,7 +33,7 @@ void ui_menu_video_targets::handle()
video targets menu
-------------------------------------------------*/
-ui_menu_video_targets::ui_menu_video_targets(running_machine &machine, render_container *container) : ui_menu(machine, container)
+ui_menu_video_targets::ui_menu_video_targets(mame_ui_manager &mui, render_container *container) : ui_menu(mui, container)
{
}
@@ -164,7 +164,7 @@ void ui_menu_video_options::handle()
video options menu
-------------------------------------------------*/
-ui_menu_video_options::ui_menu_video_options(running_machine &machine, render_container *container, render_target *_target) : ui_menu(machine, container)
+ui_menu_video_options::ui_menu_video_options(mame_ui_manager &mui, render_container *container, render_target *_target) : ui_menu(mui, container)
{
target = _target;
}
diff --git a/src/frontend/mame/ui/videoopt.h b/src/frontend/mame/ui/videoopt.h
index 802f1295c08..02db8e61838 100644
--- a/src/frontend/mame/ui/videoopt.h
+++ b/src/frontend/mame/ui/videoopt.h
@@ -16,7 +16,7 @@
class ui_menu_video_targets : public ui_menu {
public:
- ui_menu_video_targets(running_machine &machine, render_container *container);
+ ui_menu_video_targets(mame_ui_manager &mui, render_container *container);
virtual ~ui_menu_video_targets();
virtual void populate() override;
virtual void handle() override;
@@ -24,7 +24,7 @@ public:
class ui_menu_video_options : public ui_menu {
public:
- ui_menu_video_options(running_machine &machine, render_container *container, render_target *target);
+ ui_menu_video_options(mame_ui_manager &mui, render_container *container, render_target *target);
virtual ~ui_menu_video_options();
virtual void populate() override;
virtual void handle() override;
diff --git a/src/frontend/mame/ui/viewgfx.cpp b/src/frontend/mame/ui/viewgfx.cpp
index 94949210dfc..67cc2990ab5 100644
--- a/src/frontend/mame/ui/viewgfx.cpp
+++ b/src/frontend/mame/ui/viewgfx.cpp
@@ -111,18 +111,18 @@ static void ui_gfx_exit(running_machine &machine);
// palette handling
static void palette_set_device(running_machine &machine, ui_gfx_state &state);
static void palette_handle_keys(running_machine &machine, ui_gfx_state &state);
-static void palette_handler(running_machine &machine, render_container *container, ui_gfx_state &state);
+static void palette_handler(mame_ui_manager &mui, render_container *container, ui_gfx_state &state);
// graphics set handling
static void gfxset_handle_keys(running_machine &machine, ui_gfx_state &state, int xcells, int ycells);
static void gfxset_draw_item(running_machine &machine, gfx_element &gfx, int index, bitmap_rgb32 &bitmap, int dstx, int dsty, int color, int rotate);
static void gfxset_update_bitmap(running_machine &machine, ui_gfx_state &state, int xcells, int ycells, gfx_element &gfx);
-static void gfxset_handler(running_machine &machine, render_container *container, ui_gfx_state &state);
+static void gfxset_handler(mame_ui_manager &mui, render_container *container, ui_gfx_state &state);
// tilemap handling
static void tilemap_handle_keys(running_machine &machine, ui_gfx_state &state, int viswidth, int visheight);
static void tilemap_update_bitmap(running_machine &machine, ui_gfx_state &state, int width, int height);
-static void tilemap_handler(running_machine &machine, render_container *container, ui_gfx_state &state);
+static void tilemap_handler(mame_ui_manager &mui, render_container *container, ui_gfx_state &state);
@@ -240,16 +240,16 @@ bool ui_gfx_is_relevant(running_machine &machine)
// ui_gfx_ui_handler - primary UI handler
//-------------------------------------------------
-UINT32 ui_gfx_ui_handler(running_machine &machine, render_container *container, UINT32 uistate)
+UINT32 ui_gfx_ui_handler(mame_ui_manager &mui, render_container *container, UINT32 uistate)
{
ui_gfx_state &state = ui_gfx;
// if we have nothing, implicitly cancel
- if (!ui_gfx_is_relevant(machine))
+ if (!ui_gfx_is_relevant(mui.machine()))
goto cancel;
// if we're not paused, mark the bitmap dirty
- if (!machine.paused())
+ if (!mui.machine().paused())
state.bitmap_dirty = true;
// switch off the state to display something
@@ -260,7 +260,7 @@ again:
// if we have a palette, display it
if (state.palette.devcount > 0)
{
- palette_handler(machine, container, state);
+ palette_handler(mui, container, state);
break;
}
@@ -271,7 +271,7 @@ again:
// if we have graphics sets, display them
if (state.gfxset.devcount > 0)
{
- gfxset_handler(machine, container, state);
+ gfxset_handler(mui, container, state);
break;
}
@@ -280,9 +280,9 @@ again:
case UI_GFX_TILEMAP:
// if we have tilemaps, display them
- if (machine.tilemap().count() > 0)
+ if (mui.machine().tilemap().count() > 0)
{
- tilemap_handler(machine, container, state);
+ tilemap_handler(mui, container, state);
break;
}
@@ -291,28 +291,28 @@ again:
}
// handle keys
- if (machine.ui_input().pressed(IPT_UI_SELECT))
+ if (mui.machine().ui_input().pressed(IPT_UI_SELECT))
{
state.mode = (state.mode + 1) % 3;
state.bitmap_dirty = true;
}
- if (machine.ui_input().pressed(IPT_UI_PAUSE))
+ if (mui.machine().ui_input().pressed(IPT_UI_PAUSE))
{
- if (machine.paused())
- machine.resume();
+ if (mui.machine().paused())
+ mui.machine().resume();
else
- machine.pause();
+ mui.machine().pause();
}
- if (machine.ui_input().pressed(IPT_UI_CANCEL) || machine.ui_input().pressed(IPT_UI_SHOW_GFX))
+ if (mui.machine().ui_input().pressed(IPT_UI_CANCEL) || mui.machine().ui_input().pressed(IPT_UI_SHOW_GFX))
goto cancel;
return uistate;
cancel:
if (!uistate)
- machine.resume();
+ mui.machine().resume();
state.bitmap_dirty = true;
return UI_HANDLER_CANCEL;
}
@@ -340,13 +340,13 @@ static void palette_set_device(running_machine &machine, ui_gfx_state &state)
// viewer
//-------------------------------------------------
-static void palette_handler(running_machine &machine, render_container *container, ui_gfx_state &state)
+static void palette_handler(mame_ui_manager &mui, render_container *container, ui_gfx_state &state)
{
palette_device *palette = state.palette.device;
int total = state.palette.which ? palette->indirect_entries() : palette->entries();
const rgb_t *raw_color = palette->palette()->entry_list_raw();
- render_font *ui_font = mame_machine_manager::instance()->ui().get_font();
+ render_font *ui_font = mui.get_font();
float cellwidth, cellheight;
float chwidth, chheight;
float titlewidth;
@@ -357,8 +357,8 @@ static void palette_handler(running_machine &machine, render_container *containe
char title[100];
// add a half character padding for the box
- chheight = mame_machine_manager::instance()->ui().get_line_height();
- chwidth = ui_font->char_width(chheight, machine.render().ui_aspect(), '0');
+ chheight = mui.get_line_height();
+ chwidth = ui_font->char_width(chheight, mui.machine().render().ui_aspect(), '0');
boxbounds.x0 = 0.0f + 0.5f * chwidth;
boxbounds.x1 = 1.0f - 0.5f * chwidth;
boxbounds.y0 = 0.0f + 0.5f * chheight;
@@ -380,21 +380,21 @@ static void palette_handler(running_machine &machine, render_container *containe
// figure out the title and expand the outer box to fit
const char *suffix = palette->indirect_entries() == 0 ? "" : state.palette.which ? _(" COLORS") : _(" PENS");
sprintf(title, "'%s'%s", palette->tag(), suffix);
- titlewidth = ui_font->string_width(chheight, machine.render().ui_aspect(), title);
+ titlewidth = ui_font->string_width(chheight, mui.machine().render().ui_aspect(), title);
x0 = 0.0f;
if (boxbounds.x1 - boxbounds.x0 < titlewidth + chwidth)
x0 = boxbounds.x0 - (0.5f - 0.5f * (titlewidth + chwidth));
// go ahead and draw the outer box now
- mame_machine_manager::instance()->ui().draw_outlined_box(container, boxbounds.x0 - x0, boxbounds.y0, boxbounds.x1 + x0, boxbounds.y1, UI_GFXVIEWER_BG_COLOR);
+ mui.draw_outlined_box(container, boxbounds.x0 - x0, boxbounds.y0, boxbounds.x1 + x0, boxbounds.y1, UI_GFXVIEWER_BG_COLOR);
// draw the title
x0 = 0.5f - 0.5f * titlewidth;
y0 = boxbounds.y0 + 0.5f * chheight;
for (x = 0; title[x] != 0; x++)
{
- container->add_char(x0, y0, chheight, machine.render().ui_aspect(), ARGB_WHITE, *ui_font, title[x]);
- x0 += ui_font->char_width(chheight, machine.render().ui_aspect(), title[x]);
+ container->add_char(x0, y0, chheight, mui.machine().render().ui_aspect(), rgb_t::white, *ui_font, title[x]);
+ x0 += ui_font->char_width(chheight, mui.machine().render().ui_aspect(), title[x]);
}
// compute the cell size
@@ -407,12 +407,12 @@ static void palette_handler(running_machine &machine, render_container *containe
{
x0 = boxbounds.x0 + 6.0f * chwidth + (float)x * cellwidth;
y0 = boxbounds.y0 + 2.0f * chheight;
- container->add_char(x0 + 0.5f * (cellwidth - chwidth), y0, chheight, machine.render().ui_aspect(), ARGB_WHITE, *ui_font, "0123456789ABCDEF"[x & 0xf]);
+ container->add_char(x0 + 0.5f * (cellwidth - chwidth), y0, chheight, mui.machine().render().ui_aspect(), rgb_t::white, *ui_font, "0123456789ABCDEF"[x & 0xf]);
// if we're skipping, draw a point between the character and the box to indicate which
// one it's referring to
if (skip != 0)
- container->add_point(x0 + 0.5f * cellwidth, 0.5f * (y0 + chheight + cellboxbounds.y0), UI_LINE_WIDTH, ARGB_WHITE, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
+ container->add_point(x0 + 0.5f * cellwidth, 0.5f * (y0 + chheight + cellboxbounds.y0), UI_LINE_WIDTH, rgb_t::white, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
}
// draw the side column headers
@@ -429,14 +429,14 @@ static void palette_handler(running_machine &machine, render_container *containe
x0 = boxbounds.x0 + 5.5f * chwidth;
y0 = boxbounds.y0 + 3.5f * chheight + (float)y * cellheight;
if (skip != 0)
- container->add_point(0.5f * (x0 + cellboxbounds.x0), y0 + 0.5f * cellheight, UI_LINE_WIDTH, ARGB_WHITE, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
+ container->add_point(0.5f * (x0 + cellboxbounds.x0), y0 + 0.5f * cellheight, UI_LINE_WIDTH, rgb_t::white, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
// draw the row header
sprintf(buffer, "%5X", state.palette.offset + y * state.palette.columns);
for (x = 4; x >= 0; x--)
{
- x0 -= ui_font->char_width(chheight, machine.render().ui_aspect(), buffer[x]);
- container->add_char(x0, y0 + 0.5f * (cellheight - chheight), chheight, machine.render().ui_aspect(), ARGB_WHITE, *ui_font, buffer[x]);
+ x0 -= ui_font->char_width(chheight, mui.machine().render().ui_aspect(), buffer[x]);
+ container->add_char(x0, y0 + 0.5f * (cellheight - chheight), chheight, mui.machine().render().ui_aspect(), rgb_t::white, *ui_font, buffer[x]);
}
}
@@ -455,7 +455,7 @@ static void palette_handler(running_machine &machine, render_container *containe
}
// handle keys
- palette_handle_keys(machine, state);
+ palette_handle_keys(mui.machine(), state);
}
@@ -547,9 +547,9 @@ static void palette_handle_keys(running_machine &machine, ui_gfx_state &state)
// viewer
//-------------------------------------------------
-static void gfxset_handler(running_machine &machine, render_container *container, ui_gfx_state &state)
+static void gfxset_handler(mame_ui_manager &mui, render_container *container, ui_gfx_state &state)
{
- render_font *ui_font = mame_machine_manager::instance()->ui().get_font();
+ render_font *ui_font = mui.get_font();
int dev = state.gfxset.devindex;
int set = state.gfxset.set;
ui_gfx_info &info = state.gfxdev[dev];
@@ -564,8 +564,8 @@ static void gfxset_handler(running_machine &machine, render_container *container
render_bounds cellboxbounds;
render_bounds boxbounds;
int cellboxwidth, cellboxheight;
- int targwidth = machine.render().ui_target().width();
- int targheight = machine.render().ui_target().height();
+ int targwidth = mui.machine().render().ui_target().width();
+ int targheight = mui.machine().render().ui_target().height();
int cellxpix, cellypix;
int xcells, ycells;
int pixelscale = 0;
@@ -573,8 +573,8 @@ static void gfxset_handler(running_machine &machine, render_container *container
char title[100];
// add a half character padding for the box
- chheight = mame_machine_manager::instance()->ui().get_line_height();
- chwidth = ui_font->char_width(chheight, machine.render().ui_aspect(), '0');
+ chheight = mui.get_line_height();
+ chwidth = ui_font->char_width(chheight, mui.machine().render().ui_aspect(), '0');
boxbounds.x0 = 0.0f + 0.5f * chwidth;
boxbounds.x1 = 1.0f - 0.5f * chwidth;
boxbounds.y0 = 0.0f + 0.5f * chheight;
@@ -643,21 +643,21 @@ static void gfxset_handler(running_machine &machine, render_container *container
set, info.setcount - 1,
gfx.width(), gfx.height(),
info.color[set]);
- titlewidth = ui_font->string_width(chheight, machine.render().ui_aspect(), title);
+ titlewidth = ui_font->string_width(chheight, mui.machine().render().ui_aspect(), title);
x0 = 0.0f;
if (boxbounds.x1 - boxbounds.x0 < titlewidth + chwidth)
x0 = boxbounds.x0 - (0.5f - 0.5f * (titlewidth + chwidth));
// go ahead and draw the outer box now
- mame_machine_manager::instance()->ui().draw_outlined_box(container, boxbounds.x0 - x0, boxbounds.y0, boxbounds.x1 + x0, boxbounds.y1, UI_GFXVIEWER_BG_COLOR);
+ mui.draw_outlined_box(container, boxbounds.x0 - x0, boxbounds.y0, boxbounds.x1 + x0, boxbounds.y1, UI_GFXVIEWER_BG_COLOR);
// draw the title
x0 = 0.5f - 0.5f * titlewidth;
y0 = boxbounds.y0 + 0.5f * chheight;
for (x = 0; title[x] != 0; x++)
{
- container->add_char(x0, y0, chheight, machine.render().ui_aspect(), ARGB_WHITE, *ui_font, title[x]);
- x0 += ui_font->char_width(chheight, machine.render().ui_aspect(), title[x]);
+ container->add_char(x0, y0, chheight, mui.machine().render().ui_aspect(), rgb_t::white, *ui_font, title[x]);
+ x0 += ui_font->char_width(chheight, mui.machine().render().ui_aspect(), title[x]);
}
// draw the top column headers
@@ -666,12 +666,12 @@ static void gfxset_handler(running_machine &machine, render_container *container
{
x0 = boxbounds.x0 + 6.0f * chwidth + (float)x * cellwidth;
y0 = boxbounds.y0 + 2.0f * chheight;
- container->add_char(x0 + 0.5f * (cellwidth - chwidth), y0, chheight, machine.render().ui_aspect(), ARGB_WHITE, *ui_font, "0123456789ABCDEF"[x & 0xf]);
+ container->add_char(x0 + 0.5f * (cellwidth - chwidth), y0, chheight, mui.machine().render().ui_aspect(), rgb_t::white, *ui_font, "0123456789ABCDEF"[x & 0xf]);
// if we're skipping, draw a point between the character and the box to indicate which
// one it's referring to
if (skip != 0)
- container->add_point(x0 + 0.5f * cellwidth, 0.5f * (y0 + chheight + boxbounds.y0 + 3.5f * chheight), UI_LINE_WIDTH, ARGB_WHITE, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
+ container->add_point(x0 + 0.5f * cellwidth, 0.5f * (y0 + chheight + boxbounds.y0 + 3.5f * chheight), UI_LINE_WIDTH, rgb_t::white, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
}
// draw the side column headers
@@ -688,28 +688,28 @@ static void gfxset_handler(running_machine &machine, render_container *container
x0 = boxbounds.x0 + 5.5f * chwidth;
y0 = boxbounds.y0 + 3.5f * chheight + (float)y * cellheight;
if (skip != 0)
- container->add_point(0.5f * (x0 + boxbounds.x0 + 6.0f * chwidth), y0 + 0.5f * cellheight, UI_LINE_WIDTH, ARGB_WHITE, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
+ container->add_point(0.5f * (x0 + boxbounds.x0 + 6.0f * chwidth), y0 + 0.5f * cellheight, UI_LINE_WIDTH, rgb_t::white, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
// draw the row header
sprintf(buffer, "%5X", info.offset[set] + y * xcells);
for (x = 4; x >= 0; x--)
{
- x0 -= ui_font->char_width(chheight, machine.render().ui_aspect(), buffer[x]);
- container->add_char(x0, y0 + 0.5f * (cellheight - chheight), chheight, machine.render().ui_aspect(), ARGB_WHITE, *ui_font, buffer[x]);
+ x0 -= ui_font->char_width(chheight, mui.machine().render().ui_aspect(), buffer[x]);
+ container->add_char(x0, y0 + 0.5f * (cellheight - chheight), chheight, mui.machine().render().ui_aspect(), rgb_t::white, *ui_font, buffer[x]);
}
}
// update the bitmap
- gfxset_update_bitmap(machine, state, xcells, ycells, gfx);
+ gfxset_update_bitmap(mui.machine(), state, xcells, ycells, gfx);
// add the final quad
container->add_quad(boxbounds.x0 + 6.0f * chwidth, boxbounds.y0 + 3.5f * chheight,
boxbounds.x0 + 6.0f * chwidth + (float)cellboxwidth / (float)targwidth,
boxbounds.y0 + 3.5f * chheight + (float)cellboxheight / (float)targheight,
- ARGB_WHITE, state.texture, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
+ rgb_t::white, state.texture, PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
// handle keyboard navigation before drawing
- gfxset_handle_keys(machine, state, xcells, ycells);
+ gfxset_handle_keys(mui.machine(), state, xcells, ycells);
}
@@ -947,14 +947,14 @@ static void gfxset_draw_item(running_machine &machine, gfx_element &gfx, int ind
// viewer
//-------------------------------------------------
-static void tilemap_handler(running_machine &machine, render_container *container, ui_gfx_state &state)
+static void tilemap_handler(mame_ui_manager &mui, render_container *container, ui_gfx_state &state)
{
- render_font *ui_font = mame_machine_manager::instance()->ui().get_font();
+ render_font *ui_font = mui.get_font();
float chwidth, chheight;
render_bounds mapboxbounds;
render_bounds boxbounds;
- int targwidth = machine.render().ui_target().width();
- int targheight = machine.render().ui_target().height();
+ int targwidth = mui.machine().render().ui_target().width();
+ int targheight = mui.machine().render().ui_target().height();
float titlewidth;
float x0, y0;
int mapboxwidth, mapboxheight;
@@ -964,15 +964,15 @@ static void tilemap_handler(running_machine &machine, render_container *containe
char title[100];
// get the size of the tilemap itself
- tilemap_t *tilemap = machine.tilemap().find(state.tilemap.which);
+ tilemap_t *tilemap = mui.machine().tilemap().find(state.tilemap.which);
mapwidth = tilemap->width();
mapheight = tilemap->height();
if (state.tilemap.rotate & ORIENTATION_SWAP_XY)
{ UINT32 temp = mapwidth; mapwidth = mapheight; mapheight = temp; }
// add a half character padding for the box
- chheight = mame_machine_manager::instance()->ui().get_line_height();
- chwidth = ui_font->char_width(chheight, machine.render().ui_aspect(), '0');
+ chheight = mui.get_line_height();
+ chwidth = ui_font->char_width(chheight, mui.machine().render().ui_aspect(), '0');
boxbounds.x0 = 0.0f + 0.5f * chwidth;
boxbounds.x1 = 1.0f - 0.5f * chwidth;
boxbounds.y0 = 0.0f + 0.5f * chheight;
@@ -1018,8 +1018,8 @@ static void tilemap_handler(running_machine &machine, render_container *containe
boxbounds.y1 = mapboxbounds.y1 + 0.5f * chheight;
// figure out the title and expand the outer box to fit
- sprintf(title, "TILEMAP %d/%d %dx%d OFFS %d,%d", state.tilemap.which, machine.tilemap().count() - 1, mapwidth, mapheight, state.tilemap.xoffs, state.tilemap.yoffs);
- titlewidth = ui_font->string_width(chheight, machine.render().ui_aspect(), title);
+ sprintf(title, "TILEMAP %d/%d %dx%d OFFS %d,%d", state.tilemap.which, mui.machine().tilemap().count() - 1, mapwidth, mapheight, state.tilemap.xoffs, state.tilemap.yoffs);
+ titlewidth = ui_font->string_width(chheight, mui.machine().render().ui_aspect(), title);
if (boxbounds.x1 - boxbounds.x0 < titlewidth + chwidth)
{
boxbounds.x0 = 0.5f - 0.5f * (titlewidth + chwidth);
@@ -1027,28 +1027,28 @@ static void tilemap_handler(running_machine &machine, render_container *containe
}
// go ahead and draw the outer box now
- mame_machine_manager::instance()->ui().draw_outlined_box(container, boxbounds.x0, boxbounds.y0, boxbounds.x1, boxbounds.y1, UI_GFXVIEWER_BG_COLOR);
+ mui.draw_outlined_box(container, boxbounds.x0, boxbounds.y0, boxbounds.x1, boxbounds.y1, UI_GFXVIEWER_BG_COLOR);
// draw the title
x0 = 0.5f - 0.5f * titlewidth;
y0 = boxbounds.y0 + 0.5f * chheight;
for (x = 0; title[x] != 0; x++)
{
- container->add_char(x0, y0, chheight, machine.render().ui_aspect(), ARGB_WHITE, *ui_font, title[x]);
- x0 += ui_font->char_width(chheight, machine.render().ui_aspect(), title[x]);
+ container->add_char(x0, y0, chheight, mui.machine().render().ui_aspect(), rgb_t::white, *ui_font, title[x]);
+ x0 += ui_font->char_width(chheight, mui.machine().render().ui_aspect(), title[x]);
}
// update the bitmap
- tilemap_update_bitmap(machine, state, mapboxwidth / pixelscale, mapboxheight / pixelscale);
+ tilemap_update_bitmap(mui.machine(), state, mapboxwidth / pixelscale, mapboxheight / pixelscale);
// add the final quad
container->add_quad(mapboxbounds.x0, mapboxbounds.y0,
mapboxbounds.x1, mapboxbounds.y1,
- ARGB_WHITE, state.texture,
+ rgb_t::white, state.texture,
PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA) | PRIMFLAG_TEXORIENT(state.tilemap.rotate));
// handle keyboard input
- tilemap_handle_keys(machine, state, mapboxwidth, mapboxheight);
+ tilemap_handle_keys(mui.machine(), state, mapboxwidth, mapboxheight);
}
diff --git a/src/frontend/mame/ui/viewgfx.h b/src/frontend/mame/ui/viewgfx.h
index 16c257476f0..88906163d88 100644
--- a/src/frontend/mame/ui/viewgfx.h
+++ b/src/frontend/mame/ui/viewgfx.h
@@ -26,7 +26,7 @@ void ui_gfx_init(running_machine &machine);
bool ui_gfx_is_relevant(running_machine &machine);
// master handler
-UINT32 ui_gfx_ui_handler(running_machine &machine, render_container *container, UINT32 state);
+UINT32 ui_gfx_ui_handler(mame_ui_manager &mui, render_container *container, UINT32 state);
#endif /* __UI_VIEWGFX_H__ */
diff --git a/src/osd/modules/debugger/debugint.cpp b/src/osd/modules/debugger/debugint.cpp
index b894f84f1a0..57041498681 100644
--- a/src/osd/modules/debugger/debugint.cpp
+++ b/src/osd/modules/debugger/debugint.cpp
@@ -9,6 +9,7 @@
*********************************************************************/
#include "emu.h"
+#include "mame.h"
#include "ui/ui.h"
#include "ui/menu.h"
#include "rendfont.h"
@@ -1310,7 +1311,7 @@ static void render_editor(DView_edit *editor)
class ui_menu_debug : public ui_menu {
public:
- ui_menu_debug(running_machine &machine, render_container *container) : ui_menu(machine, container) {}
+ ui_menu_debug(mame_ui_manager &mui, render_container *container) : ui_menu(mui, container) {}
virtual ~ui_menu_debug() {}
virtual void populate() override {}
virtual void handle() override {}
@@ -1327,7 +1328,7 @@ static void CreateMainMenu(running_machine &machine)
menu_sel = menu->get_selection();
global_free( menu);
}
- menu = global_alloc_clear<ui_menu_debug>(machine, &machine.render().ui_container());
+ menu = global_alloc_clear<ui_menu_debug>(mame_machine_manager::instance()->ui(), &machine.render().ui_container());
switch (focus_view->type)
{