summaryrefslogtreecommitdiffstatshomepage
path: root/src/frontend/mame/ui/dirmenu.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/frontend/mame/ui/dirmenu.cpp')
-rw-r--r--src/frontend/mame/ui/dirmenu.cpp122
1 files changed, 64 insertions, 58 deletions
diff --git a/src/frontend/mame/ui/dirmenu.cpp b/src/frontend/mame/ui/dirmenu.cpp
index 4391ee440d0..48569f713ca 100644
--- a/src/frontend/mame/ui/dirmenu.cpp
+++ b/src/frontend/mame/ui/dirmenu.cpp
@@ -9,15 +9,19 @@
*********************************************************************/
#include "emu.h"
-#include "emuopts.h"
-#include "mame.h"
+
#include "ui/ui.h"
-#include "ui/menu.h"
#include "ui/dirmenu.h"
#include "ui/datfile.h"
#include "ui/utils.h"
#include "ui/optsmenu.h"
+#include "emuopts.h"
+#include "mame.h"
+
+
+namespace ui {
+
static int ADDING = 1;
static int CHANGE = 2;
@@ -68,11 +72,11 @@ static const folders_entry s_folders[] =
// ctor / dtor
//-------------------------------------------------
-ui_menu_directory::ui_menu_directory(mame_ui_manager &mui, render_container *container) : ui_menu(mui, container)
+menu_directory::menu_directory(mame_ui_manager &mui, render_container *container) : menu(mui, container)
{
}
-ui_menu_directory::~ui_menu_directory()
+menu_directory::~menu_directory()
{
ui().save_ui_options();
ui_globals::reset = true;
@@ -83,25 +87,25 @@ ui_menu_directory::~ui_menu_directory()
// handle
//-------------------------------------------------
-void ui_menu_directory::handle()
+void menu_directory::handle()
{
// process the menu
- const ui_menu_event *m_event = process(0);
+ const event *menu_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>(ui(), container, selected));
+ if (menu_event != nullptr && menu_event->itemref != nullptr && menu_event->iptkey == IPT_UI_SELECT)
+ menu::stack_push<menu_display_actual>(ui(), container, selected);
}
//-------------------------------------------------
// populate
//-------------------------------------------------
-void ui_menu_directory::populate()
+void menu_directory::populate()
{
for (auto & elem : s_folders)
item_append(_(elem.name), nullptr, 0, (void *)(FPTR)elem.action);
- item_append(ui_menu_item_type::SEPARATOR);
+ item_append(menu_item_type::SEPARATOR);
customtop = ui().get_line_height() + 3.0f * UI_BOX_TB_BORDER;
}
@@ -109,7 +113,7 @@ void ui_menu_directory::populate()
// perform our special rendering
//-------------------------------------------------
-void ui_menu_directory::custom_render(void *selectedref, float top, float bottom, float origx1, float origy1, float origx2, float origy2)
+void menu_directory::custom_render(void *selectedref, float top, float bottom, float origx1, float origy1, float origx2, float origy2)
{
float width;
@@ -145,12 +149,12 @@ void ui_menu_directory::custom_render(void *selectedref, float top, float bottom
// ctor / dtor
//-------------------------------------------------
-ui_menu_display_actual::ui_menu_display_actual(mame_ui_manager &mui, render_container *container, int ref)
- : ui_menu(mui, container), m_ref(ref)
+menu_display_actual::menu_display_actual(mame_ui_manager &mui, render_container *container, int ref)
+ : menu(mui, container), m_ref(ref)
{
}
-ui_menu_display_actual::~ui_menu_display_actual()
+menu_display_actual::~menu_display_actual()
{
}
@@ -158,20 +162,20 @@ ui_menu_display_actual::~ui_menu_display_actual()
// handle
//-------------------------------------------------
-void ui_menu_display_actual::handle()
+void menu_display_actual::handle()
{
// process the menu
- const ui_menu_event *m_event = process(0);
- if (m_event != nullptr && m_event->itemref != nullptr && m_event->iptkey == IPT_UI_SELECT)
- switch ((FPTR)m_event->itemref)
+ const event *menu_event = process(0);
+ if (menu_event != nullptr && menu_event->itemref != nullptr && menu_event->iptkey == IPT_UI_SELECT)
+ switch ((FPTR)menu_event->itemref)
{
- case REMOVE:
- ui_menu::stack_push(global_alloc_clear<ui_menu_remove_folder>(ui(), container, m_ref));
- break;
+ case REMOVE:
+ menu::stack_push<menu_remove_folder>(ui(), container, m_ref);
+ break;
- case ADD_CHANGE:
- ui_menu::stack_push(global_alloc_clear<ui_menu_add_change_folder>(ui(), container, m_ref));
- break;
+ case ADD_CHANGE:
+ menu::stack_push<menu_add_change_folder>(ui(), container, m_ref);
+ break;
}
}
@@ -179,7 +183,7 @@ void ui_menu_display_actual::handle()
// populate
//-------------------------------------------------
-void ui_menu_display_actual::populate()
+void menu_display_actual::populate()
{
m_tempbuf = string_format(_("Current %1$s Folders"), _(s_folders[m_ref].name));
if (ui().options().exists(s_folders[m_ref].option))
@@ -198,7 +202,7 @@ void ui_menu_display_actual::populate()
if (m_folders.size() > 1)
item_append(_("Remove Folder"), nullptr, 0, (void *)REMOVE);
- item_append(ui_menu_item_type::SEPARATOR);
+ item_append(menu_item_type::SEPARATOR);
customtop = (m_folders.size() + 1) * ui().get_line_height() + 6.0f * UI_BOX_TB_BORDER;
}
@@ -206,7 +210,7 @@ void ui_menu_display_actual::populate()
// perform our special rendering
//-------------------------------------------------
-void ui_menu_display_actual::custom_render(void *selectedref, float top, float bottom, float origx1, float origy1, float origx2, float origy2)
+void menu_display_actual::custom_render(void *selectedref, float top, float bottom, float origx1, float origy1, float origx2, float origy2)
{
float width, maxwidth = origx2 - origx1;
float lineh = ui().get_line_height();
@@ -272,7 +276,7 @@ MENU ADD FOLDER
// ctor / dtor
//-------------------------------------------------
-ui_menu_add_change_folder::ui_menu_add_change_folder(mame_ui_manager &mui, render_container *container, int ref) : ui_menu(mui, container)
+menu_add_change_folder::menu_add_change_folder(mame_ui_manager &mui, render_container *container, int ref) : menu(mui, container)
{
m_ref = ref;
m_change = (s_folders[ref].action == CHANGE);
@@ -293,7 +297,7 @@ ui_menu_add_change_folder::ui_menu_add_change_folder(mame_ui_manager &mui, rende
m_folders.push_back(curpath);
}
-ui_menu_add_change_folder::~ui_menu_add_change_folder()
+menu_add_change_folder::~menu_add_change_folder()
{
}
@@ -301,17 +305,17 @@ ui_menu_add_change_folder::~ui_menu_add_change_folder()
// handle
//-------------------------------------------------
-void ui_menu_add_change_folder::handle()
+void menu_add_change_folder::handle()
{
// process the menu
- const ui_menu_event *m_event = process(0);
+ const event *menu_event = process(0);
- if (m_event != nullptr && m_event->itemref != nullptr)
+ if (menu_event != nullptr && menu_event->itemref != nullptr)
{
- if (m_event->iptkey == IPT_UI_SELECT)
+ if (menu_event->iptkey == IPT_UI_SELECT)
{
- int index = (FPTR)m_event->itemref - 1;
- const ui_menu_item &pitem = item[index];
+ int index = (FPTR)menu_event->itemref - 1;
+ const menu_item &pitem = item[index];
// go up to the parent path
if (!strcmp(pitem.text, ".."))
@@ -338,28 +342,28 @@ void ui_menu_add_change_folder::handle()
// reset the char buffer also in this case
if (m_search[0] != 0)
m_search[0] = '\0';
- reset(UI_MENU_RESET_SELECT_FIRST);
+ reset(reset_options::SELECT_FIRST);
}
- else if (m_event->iptkey == IPT_SPECIAL)
+ else if (menu_event->iptkey == IPT_SPECIAL)
{
int buflen = strlen(m_search);
bool update_selected = FALSE;
// if it's a backspace and we can handle it, do so
- if ((m_event->unichar == 8 || m_event->unichar == 0x7f) && buflen > 0)
+ if ((menu_event->unichar == 8 || menu_event->unichar == 0x7f) && buflen > 0)
{
*(char *)utf8_previous_char(&m_search[buflen]) = 0;
update_selected = TRUE;
}
// if it's any other key and we're not maxed out, update
- else if (m_event->unichar >= ' ' && m_event->unichar < 0x7f)
+ else if (menu_event->unichar >= ' ' && menu_event->unichar < 0x7f)
{
- buflen += utf8_from_uchar(&m_search[buflen], ARRAY_LENGTH(m_search) - buflen, m_event->unichar);
+ buflen += utf8_from_uchar(&m_search[buflen], ARRAY_LENGTH(m_search) - buflen, menu_event->unichar);
m_search[buflen] = 0;
update_selected = TRUE;
}
// Tab key, save current path
- else if (m_event->unichar == 0x09)
+ else if (menu_event->unichar == 0x09)
{
std::string error_string;
if (m_change)
@@ -393,8 +397,8 @@ void ui_menu_add_change_folder::handle()
}
}
- ui_menu::menu_stack->parent->reset(UI_MENU_RESET_SELECT_FIRST);
- ui_menu::stack_pop(machine());
+ reset_parent(reset_options::SELECT_FIRST);
+ menu::stack_pop(machine());
}
// check for entries which matches our search buffer
@@ -443,7 +447,7 @@ void ui_menu_add_change_folder::handle()
top_line = selected - (visible_lines / 2);
}
}
- else if (m_event->iptkey == IPT_UI_CANCEL)
+ else if (menu_event->iptkey == IPT_UI_CANCEL)
{
// reset the char buffer also in this case
if (m_search[0] != 0)
@@ -456,7 +460,7 @@ void ui_menu_add_change_folder::handle()
// populate
//-------------------------------------------------
-void ui_menu_add_change_folder::populate()
+void menu_add_change_folder::populate()
{
// open a path
const char *volume_name = nullptr;
@@ -475,7 +479,7 @@ void ui_menu_add_change_folder::populate()
item_append(dirent->name, "[DIR]", 0, (void *)(FPTR)++folders_count);
}
- item_append(ui_menu_item_type::SEPARATOR);
+ item_append(menu_item_type::SEPARATOR);
// configure the custom rendering
customtop = 2.0f * ui().get_line_height() + 3.0f * UI_BOX_TB_BORDER;
@@ -486,7 +490,7 @@ void ui_menu_add_change_folder::populate()
// perform our special rendering
//-------------------------------------------------
-void ui_menu_add_change_folder::custom_render(void *selectedref, float top, float bottom, float origx1, float origy1, float origx2, float origy2)
+void 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;
std::string tempbuf[2];
@@ -564,7 +568,7 @@ void ui_menu_add_change_folder::custom_render(void *selectedref, float top, floa
// ctor / dtor
//-------------------------------------------------
-ui_menu_remove_folder::ui_menu_remove_folder(mame_ui_manager &mui, render_container *container, int ref) : ui_menu(mui, container)
+menu_remove_folder::menu_remove_folder(mame_ui_manager &mui, render_container *container, int ref) : menu(mui, container)
{
m_ref = ref;
if (mui.options().exists(s_folders[m_ref].option))
@@ -578,7 +582,7 @@ ui_menu_remove_folder::ui_menu_remove_folder(mame_ui_manager &mui, render_contai
m_folders.push_back(curpath);
}
-ui_menu_remove_folder::~ui_menu_remove_folder()
+menu_remove_folder::~menu_remove_folder()
{
}
@@ -586,11 +590,11 @@ ui_menu_remove_folder::~ui_menu_remove_folder()
// handle
//-------------------------------------------------
-void ui_menu_remove_folder::handle()
+void menu_remove_folder::handle()
{
// process the menu
- const ui_menu_event *m_event = process(0);
- if (m_event != nullptr && m_event->itemref != nullptr && m_event->iptkey == IPT_UI_SELECT)
+ const event *menu_event = process(0);
+ if (menu_event != nullptr && menu_event->itemref != nullptr && menu_event->iptkey == IPT_UI_SELECT)
{
std::string tmppath, error_string;
m_folders.erase(m_folders.begin() + selected);
@@ -609,8 +613,8 @@ void ui_menu_remove_folder::handle()
machine().options().mark_changed(s_folders[m_ref].option);
}
- ui_menu::menu_stack->parent->reset(UI_MENU_RESET_REMEMBER_REF);
- ui_menu::stack_pop(machine());
+ reset_parent(reset_options::REMEMBER_REF);
+ menu::stack_pop(machine());
}
}
@@ -618,13 +622,13 @@ void ui_menu_remove_folder::handle()
// populate menu
//-------------------------------------------------
-void ui_menu_remove_folder::populate()
+void menu_remove_folder::populate()
{
int folders_count = 0;
for (auto & elem : m_folders)
item_append(elem.c_str(), nullptr, 0, (void *)(FPTR)++folders_count);
- item_append(ui_menu_item_type::SEPARATOR);
+ item_append(menu_item_type::SEPARATOR);
customtop = ui().get_line_height() + 3.0f * UI_BOX_TB_BORDER;
}
@@ -632,7 +636,7 @@ void ui_menu_remove_folder::populate()
// perform our special rendering
//-------------------------------------------------
-void ui_menu_remove_folder::custom_render(void *selectedref, float top, float bottom, float origx1, float origy1, float origx2, float origy2)
+void menu_remove_folder::custom_render(void *selectedref, float top, float bottom, float origx1, float origy1, float origx2, float origy2)
{
float width;
std::string tempbuf = string_format(_("Remove %1$s Folder"), _(s_folders[m_ref].name));
@@ -660,3 +664,5 @@ void ui_menu_remove_folder::custom_render(void *selectedref, float top, float bo
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);
}
+
+} // namespace ui