Revert "C++ comments for some parts."

This reverts commit 19c4764090.
This commit is contained in:
Vas Crabb 2016-07-05 11:16:05 +10:00
parent 09b6b311ff
commit 2c9dfd77ba
32 changed files with 697 additions and 617 deletions

View File

@ -22,8 +22,8 @@
//**************************************************************************
// hashes to use for validation
#define AUDIT_VALIDATE_FAST "R" // CRC only
#define AUDIT_VALIDATE_FULL "RS" // CRC + SHA1
#define AUDIT_VALIDATE_FAST "R" /* CRC only */
#define AUDIT_VALIDATE_FULL "RS" /* CRC + SHA1 */
@ -111,15 +111,15 @@ public:
private:
// internal state
audit_record * m_next;
media_type m_type; // type of item that was audited
audit_status m_status; // status of audit on this item
audit_substatus m_substatus; // finer-detail status
const char * m_name; // name of item
UINT64 m_explength; // expected length of item
UINT64 m_length; // actual length of item
hash_collection m_exphashes; // expected hash data
hash_collection m_hashes; // actual hash information
device_t * m_shared_device; // device that shares the rom
media_type m_type; /* type of item that was audited */
audit_status m_status; /* status of audit on this item */
audit_substatus m_substatus; /* finer-detail status */
const char * m_name; /* name of item */
UINT64 m_explength; /* expected length of item */
UINT64 m_length; /* actual length of item */
hash_collection m_exphashes; /* expected hash data */
hash_collection m_hashes; /* actual hash information */
device_t * m_shared_device; /* device that shares the rom */
};

View File

@ -1260,7 +1260,7 @@ void cli_frontend::output_single_softlist(FILE *out, software_list_device &swlis
for (feature_list_item &flist : part.featurelist())
fprintf(out, "\t\t\t\t<feature name=\"%s\" value=\"%s\" />\n", flist.name(), xml_normalize_string(flist.value()));
// TODO: display rom region information
/* TODO: display rom region information */
for (const rom_entry *region = part.romdata(); region; region = rom_next_region(region))
{
int is_disk = ROMREGION_ISDISKDATA(region);
@ -1279,7 +1279,7 @@ void cli_frontend::output_single_softlist(FILE *out, software_list_device &swlis
else
fprintf( out, "\t\t\t\t\t<disk name=\"%s\"", xml_normalize_string(ROM_GETNAME(rom)) );
// dump checksum information only if there is a known dump
/* dump checksum information only if there is a known dump */
hash_collection hashes(ROM_GETHASHDATA(rom));
if ( !hashes.flag(hash_collection::FLAG_NO_DUMP) )
fprintf( out, " %s", hashes.attribute_string().c_str() );

View File

@ -103,12 +103,12 @@ std::vector<std::string> split(const std::string &text, char sep)
std::vector<std::string> tokens;
std::size_t start = 0, end = 0;
while ((end = text.find(sep, start)) != std::string::npos) {
auto temp = text.substr(start, end - start);
if (!temp.empty()) tokens.push_back(temp);
std::string temp = text.substr(start, end - start);
if (temp != "") tokens.push_back(temp);
start = end + 1;
}
auto temp = text.substr(start);
if (!temp.empty()) tokens.push_back(temp);
std::string temp = text.substr(start);
if (temp != "") tokens.push_back(temp);
return tokens;
}

View File

@ -52,7 +52,7 @@ public:
virtual void ui_initialize(running_machine& machine) override;
// execute as configured by the OPTION_SYSTEMNAME option on the specified options
/* execute as configured by the OPTION_SYSTEMNAME option on the specified options */
int execute();
void start_luaengine();
void schedule_new_driver(const game_driver &driver);

View File

@ -26,8 +26,8 @@ inline int cs_stricmp(const char *s1, const char *s2)
{
for (;;)
{
auto c1 = tolower(*s1++);
auto c2 = tolower(*s2++);
int c1 = tolower(*s1++);
int c2 = tolower(*s2++);
if (c1 == 0 || c1 != c2)
return c1 - c2;
}
@ -35,8 +35,8 @@ inline int cs_stricmp(const char *s1, const char *s2)
bool sorted_game_list(const game_driver *x, const game_driver *y)
{
auto clonex = (x->parent[0] != '0');
auto cloney = (y->parent[0] != '0');
bool clonex = (x->parent[0] != '0');
bool cloney = (y->parent[0] != '0');
if (!clonex && !cloney)
return (cs_stricmp(x->description, y->description) < 0);
@ -120,13 +120,13 @@ void menu_audit::handle()
if (m_audit_mode == 1)
{
auto iter = m_unavailablesorted.begin();
vptr_game::iterator iter = m_unavailablesorted.begin();
while (iter != m_unavailablesorted.end())
{
driver_enumerator enumerator(machine().options(), (*iter)->name);
enumerator.next();
media_auditor auditor(enumerator);
auto summary = auditor.audit_media(AUDIT_VALIDATE_FAST);
media_auditor::summary summary = auditor.audit_media(AUDIT_VALIDATE_FAST);
// if everything looks good, include the driver
if (summary == media_auditor::CORRECT || summary == media_auditor::BEST_AVAILABLE || summary == media_auditor::NONE_NEEDED)
@ -144,7 +144,7 @@ void menu_audit::handle()
media_auditor auditor(enumerator);
while (enumerator.next())
{
auto summary = auditor.audit_media(AUDIT_VALIDATE_FAST);
media_auditor::summary summary = auditor.audit_media(AUDIT_VALIDATE_FAST);
// if everything looks good, include the driver
if (summary == media_auditor::CORRECT || summary == media_auditor::BEST_AVAILABLE || summary == media_auditor::NONE_NEEDED)
@ -188,16 +188,16 @@ void menu_audit::save_available_machines()
util::stream_format(buffer, "%d\n", m_unavailablesorted.size());
// generate available list
for (auto & e : m_availablesorted)
for (size_t x = 0; x < m_availablesorted.size(); ++x)
{
auto find = driver_list::find(e->name);
int find = driver_list::find(m_availablesorted[x]->name);
util::stream_format(buffer, "%d\n", find);
}
// generate unavailable list
for (auto & e : m_unavailablesorted)
for (size_t x = 0; x < m_unavailablesorted.size(); ++x)
{
auto find = driver_list::find(e->name);
int find = driver_list::find(m_unavailablesorted[x]->name);
util::stream_format(buffer, "%d\n", find);
}
file.puts(buffer.str().c_str());

View File

@ -66,7 +66,9 @@ void menu_barcode_reader::populate()
new_barcode = buffer.c_str();
}
else
{
new_barcode = m_barcode_buffer;
}
item_append(_("New Barcode:"), new_barcode, 0, ITEMREF_NEW_BARCODE);
@ -90,7 +92,7 @@ void menu_barcode_reader::handle()
populate();
// process the menu
auto event = process(PROCESS_LR_REPEAT);
const event *event = process(PROCESS_LR_REPEAT);
// process the event
if (event)

View File

@ -36,19 +36,19 @@ namespace ui {
void menu_cheat::handle()
{
// process the menu
auto menu_event = process(PROCESS_LR_REPEAT);
/* process the menu */
const event *menu_event = process(PROCESS_LR_REPEAT);
// handle events
/* handle events */
if (menu_event != nullptr && menu_event->itemref != nullptr)
{
auto changed = false;
bool changed = false;
// clear cheat comment on any movement or keypress
/* clear cheat comment on any movement or keypress */
machine().popmessage();
// handle reset all + reset all cheats for reload all option
/* handle reset all + reset all cheats for reload all option */
if ((menu_event->itemref == ITEMREF_CHEATS_RESET_ALL || menu_event->itemref == ITEMREF_CHEATS_RELOAD_ALL) && menu_event->iptkey == IPT_UI_SELECT)
{
for (auto &curcheat : mame_machine_manager::instance()->cheat().entries())
@ -56,34 +56,34 @@ void menu_cheat::handle()
changed = true;
}
// handle individual cheats
/* handle individual cheats */
else if (menu_event->itemref >= ITEMREF_CHEATS_FIRST_ITEM)
{
auto curcheat = reinterpret_cast<cheat_entry *>(menu_event->itemref);
cheat_entry *curcheat = reinterpret_cast<cheat_entry *>(menu_event->itemref);
const char *string;
switch (menu_event->iptkey)
{
// if selected, activate a oneshot
/* if selected, activate a oneshot */
case IPT_UI_SELECT:
changed = curcheat->activate();
break;
// if cleared, reset to default value
/* if cleared, reset to default value */
case IPT_UI_CLEAR:
changed = curcheat->select_default_state();
break;
// left decrements
/* left decrements */
case IPT_UI_LEFT:
changed = curcheat->select_previous_state();
break;
// right increments
/* right increments */
case IPT_UI_RIGHT:
changed = curcheat->select_next_state();
break;
// bring up display comment if one exists
/* bring up display comment if one exists */
case IPT_UI_DISPLAY_COMMENT:
case IPT_UI_UP:
case IPT_UI_DOWN:
@ -94,22 +94,24 @@ void menu_cheat::handle()
}
}
// handle reload all
/* handle reload all */
if (menu_event->itemref == ITEMREF_CHEATS_RELOAD_ALL && menu_event->iptkey == IPT_UI_SELECT)
{
// re-init cheat engine and thus reload cheats/cheats have already been turned off by here
/* re-init cheat engine and thus reload cheats/cheats have already been turned off by here */
mame_machine_manager::instance()->cheat().reload();
// display the reloaded cheats
/* display the reloaded cheats */
reset(reset_options::REMEMBER_REF);
machine().popmessage(_("All cheats reloaded"));
}
// handle autofire menu
/* handle autofire menu */
if (menu_event->itemref == ITEMREF_CHEATS_AUTOFIRE_SETTINGS && menu_event->iptkey == IPT_UI_SELECT)
{
menu::stack_push<menu_autofire>(ui(), container);
}
// if things changed, update
/* if things changed, update */
if (changed)
reset(reset_options::REMEMBER_REF);
}
@ -120,26 +122,26 @@ void menu_cheat::handle()
menu_cheat_populate - populate the cheat menu
-------------------------------------------------*/
menu_cheat::menu_cheat(mame_ui_manager &mui, render_container *container)
: menu(mui, container)
menu_cheat::menu_cheat(mame_ui_manager &mui, render_container *container) : menu(mui, container)
{
}
void menu_cheat::populate()
{
/* iterate over cheats */
std::string text;
std::string subtext;
// add the autofire menu
item_append(_("Autofire Settings"), "", 0, (void *)ITEMREF_CHEATS_AUTOFIRE_SETTINGS);
// add a separator
/* add a separator */
item_append(menu_item_type::SEPARATOR);
// add other cheats
if (!mame_machine_manager::instance()->cheat().entries().empty()) {
for (auto &curcheat : mame_machine_manager::instance()->cheat().entries())
{
std::string text;
std::string subtext;
UINT32 flags;
curcheat->menu_text(text, subtext, flags);
if (text == MENU_SEPARATOR_ITEM)
@ -148,13 +150,13 @@ void menu_cheat::populate()
item_append(text, subtext, flags, curcheat.get());
}
// add a separator
/* add a separator */
item_append(menu_item_type::SEPARATOR);
// add a reset all option
/* add a reset all option */
item_append(_("Reset All"), "", 0, (void *)ITEMREF_CHEATS_RESET_ALL);
// add a reload all cheats option
/* add a reload all cheats option */
item_append(_("Reload All"), "", 0, (void *)ITEMREF_CHEATS_RELOAD_ALL);
}
}
@ -163,17 +165,27 @@ menu_cheat::~menu_cheat()
{
}
/*-------------------------------------------------
menu_autofire - handle the autofire settings
menu
-------------------------------------------------*/
menu_autofire::menu_autofire(mame_ui_manager &mui, render_container *container)
: menu(mui, container)
, last_toggle(false)
menu_autofire::menu_autofire(mame_ui_manager &mui, render_container *container) : menu(mui, container), last_toggle(false)
{
auto screen = mui.machine().first_screen();
refresh = (screen == nullptr) ? 60.0 : ATTOSECONDS_TO_HZ(screen->refresh_attoseconds());
const screen_device *screen = mui.machine().first_screen();
if (screen == nullptr)
{
refresh = 60.0;
}
else
{
refresh = ATTOSECONDS_TO_HZ(screen->refresh_attoseconds());
}
}
menu_autofire::~menu_autofire()
@ -183,12 +195,12 @@ menu_autofire::~menu_autofire()
void menu_autofire::handle()
{
ioport_field *field;
auto changed = false;
bool changed = false;
// process the menu
auto menu_event = process(0);
/* process the menu */
const event *menu_event = process(0);
// handle events
/* handle events */
if (menu_event != nullptr && menu_event->itemref != nullptr)
{
// menu item is changed using left/right keys only
@ -197,14 +209,14 @@ void menu_autofire::handle()
if (menu_event->itemref == ITEMREF_AUTOFIRE_STATUS)
{
// toggle autofire status
auto autofire_toggle = machine().ioport().get_autofire_toggle(); // (menu_event->iptkey == IPT_UI_LEFT);
bool autofire_toggle = machine().ioport().get_autofire_toggle(); // (menu_event->iptkey == IPT_UI_LEFT);
machine().ioport().set_autofire_toggle(!autofire_toggle);
changed = true;
}
else if (menu_event->itemref == ITEMREF_AUTOFIRE_DELAY)
{
// change autofire frequency
auto autofire_delay = machine().ioport().get_autofire_delay();
int autofire_delay = machine().ioport().get_autofire_delay();
if (menu_event->iptkey == IPT_UI_LEFT)
{
autofire_delay--;
@ -235,11 +247,15 @@ void menu_autofire::handle()
// if toggle settings changed, redraw menu to reflect new options
if (!changed)
{
changed = (last_toggle != machine().ioport().get_autofire_toggle());
}
// if something changed, rebuild the menu
/* if something changed, rebuild the menu */
if (changed)
{
reset(reset_options::REMEMBER_REF);
}
}
@ -252,16 +268,16 @@ void menu_autofire::populate()
{
char temp_text[64];
// add autofire toggle item
auto autofire_toggle = machine().ioport().get_autofire_toggle();
/* add autofire toggle item */
bool autofire_toggle = machine().ioport().get_autofire_toggle();
item_append(_("Autofire Status"), (autofire_toggle ? _("Disabled") : _("Enabled")),
(autofire_toggle ? FLAG_RIGHT_ARROW : FLAG_LEFT_ARROW), (void *)ITEMREF_AUTOFIRE_STATUS);
// iterate over the input ports and add autofire toggle items
/* iterate over the input ports and add autofire toggle items */
int menu_items = 0;
for (auto &port : machine().ioport().ports())
{
auto is_first_button = true;
bool is_first_button = true;
for (ioport_field &field : port.second->fields())
{
if (field.type() >= IPT_BUTTON1 && field.type() <= IPT_BUTTON16)
@ -272,11 +288,11 @@ void menu_autofire::populate()
if (is_first_button)
{
// add a separator for each player
/* add a separator for each player */
item_append(menu_item_type::SEPARATOR);
is_first_button = false;
}
// add an autofire item
/* add an autofire item */
if (!autofire_toggle)
{
// item is enabled and can be switched to values on/off
@ -293,26 +309,29 @@ void menu_autofire::populate()
}
}
// add text item if no buttons found
/* add text item if no buttons found */
if (menu_items==0)
{
item_append(menu_item_type::SEPARATOR);
item_append(_("No buttons found on this machine!"), "", FLAG_DISABLE, nullptr);
}
// add a separator
/* add a separator */
item_append(menu_item_type::SEPARATOR);
// add autofire delay item
auto value = machine().ioport().get_autofire_delay();
/* add autofire delay item */
int value = machine().ioport().get_autofire_delay();
snprintf(temp_text, ARRAY_LENGTH(temp_text), "%d = %.2f Hz", value, (float)refresh/value);
if (!autofire_toggle)
{
item_append(_("Autofire Delay"), temp_text, FLAG_LEFT_ARROW | FLAG_RIGHT_ARROW, (void *)ITEMREF_AUTOFIRE_DELAY);
}
else
{
item_append(_("Autofire Delay"), temp_text, FLAG_DISABLE | FLAG_INVERT, nullptr);
}
// add a separator
/* add a separator */
item_append(menu_item_type::SEPARATOR);
last_toggle = autofire_toggle;

View File

@ -25,7 +25,9 @@ namespace ui {
// ctor / dtor
//-------------------------------------------------
menu_custom_filter::menu_custom_filter(mame_ui_manager &mui, render_container *container, bool _single_menu)
: menu(mui, container), m_single_menu(_single_menu), m_added(false)
: menu(mui, container)
, m_single_menu(_single_menu)
, m_added(false)
{
}
@ -41,11 +43,11 @@ menu_custom_filter::~menu_custom_filter()
//-------------------------------------------------
void menu_custom_filter::handle()
{
auto changed = false;
bool changed = false;
m_added = false;
// process the menu
auto menu_event = process(PROCESS_LR_REPEAT);
const event *menu_event = process(PROCESS_LR_REPEAT);
if (menu_event != nullptr && menu_event->itemref != nullptr)
{
switch ((FPTR)menu_event->itemref)
@ -61,7 +63,8 @@ void menu_custom_filter::handle()
case ADD_FILTER:
if (menu_event->iptkey == IPT_UI_SELECT)
{
custfltr::other[++custfltr::numother] = FILTER_UNAVAILABLE + 1;
custfltr::numother++;
custfltr::other[custfltr::numother] = FILTER_UNAVAILABLE + 1;
m_added = true;
}
break;
@ -69,7 +72,8 @@ void menu_custom_filter::handle()
case REMOVE_FILTER:
if (menu_event->iptkey == IPT_UI_SELECT)
{
custfltr::other[custfltr::numother--] = FILTER_UNAVAILABLE + 1;
custfltr::other[custfltr::numother] = FILTER_UNAVAILABLE + 1;
custfltr::numother--;
changed = true;
}
break;
@ -77,7 +81,7 @@ void menu_custom_filter::handle()
if ((FPTR)menu_event->itemref >= OTHER_FILTER && (FPTR)menu_event->itemref < OTHER_FILTER + MAX_CUST_FILTER)
{
auto pos = (int)((FPTR)menu_event->itemref - OTHER_FILTER);
int pos = (int)((FPTR)menu_event->itemref - OTHER_FILTER);
if (menu_event->iptkey == IPT_UI_LEFT && custfltr::other[pos] > FILTER_UNAVAILABLE + 1)
{
custfltr::other[pos]--;
@ -94,7 +98,7 @@ void menu_custom_filter::handle()
}
else if (menu_event->iptkey == IPT_UI_SELECT)
{
auto total = main_filters::length;
size_t total = main_filters::length;
std::vector<std::string> s_sel(total);
for (size_t index = 0; index < total; ++index)
if (index <= FILTER_UNAVAILABLE || index == FILTER_CATEGORY || index == FILTER_FAVORITE || index == FILTER_CUSTOM)
@ -102,12 +106,12 @@ void menu_custom_filter::handle()
else
s_sel[index] = main_filters::text[index];
menu::stack_push<menu_selector>(ui(), container, std::move(s_sel), custfltr::other[pos]);
menu::stack_push<menu_selector>(ui(), container, s_sel, custfltr::other[pos]);
}
}
else if ((FPTR)menu_event->itemref >= YEAR_FILTER && (FPTR)menu_event->itemref < YEAR_FILTER + MAX_CUST_FILTER)
{
auto pos = (int)((FPTR)menu_event->itemref - YEAR_FILTER);
int pos = (int)((FPTR)menu_event->itemref - YEAR_FILTER);
if (menu_event->iptkey == IPT_UI_LEFT && custfltr::year[pos] > 0)
{
custfltr::year[pos]--;
@ -123,7 +127,7 @@ void menu_custom_filter::handle()
}
else if ((FPTR)menu_event->itemref >= MNFCT_FILTER && (FPTR)menu_event->itemref < MNFCT_FILTER + MAX_CUST_FILTER)
{
auto pos = (int)((FPTR)menu_event->itemref - MNFCT_FILTER);
int pos = (int)((FPTR)menu_event->itemref - MNFCT_FILTER);
if (menu_event->iptkey == IPT_UI_LEFT && custfltr::mnfct[pos] > 0)
{
custfltr::mnfct[pos]--;
@ -151,11 +155,11 @@ void menu_custom_filter::handle()
void menu_custom_filter::populate()
{
// add main filter
auto arrow_flags = get_arrow_flags((int)FILTER_ALL, (int)FILTER_UNAVAILABLE, custfltr::main);
UINT32 arrow_flags = get_arrow_flags((int)FILTER_ALL, (int)FILTER_UNAVAILABLE, custfltr::main);
item_append(_("Main filter"), main_filters::text[custfltr::main], arrow_flags, (void *)(FPTR)MAIN_FILTER);
// add other filters
for (int x = 1; x <= custfltr::numother; ++x)
for (int x = 1; x <= custfltr::numother; x++)
{
item_append(menu_item_type::SEPARATOR);
@ -244,7 +248,7 @@ void menu_custom_filter::save_custom_filters()
util::stream_format(cinfo, "Total filters = %d\n", (custfltr::numother + 1));
util::stream_format(cinfo, "Main filter = %s\n", main_filters::text[custfltr::main]);
for (int x = 1; x <= custfltr::numother; ++x)
for (int x = 1; x <= custfltr::numother; x++)
{
util::stream_format(cinfo, "Other filter = %s\n", main_filters::text[custfltr::other[x]]);
if (custfltr::other[x] == FILTER_MANUFACTURER)
@ -264,7 +268,10 @@ void menu_custom_filter::save_custom_filters()
// ctor / dtor
//-------------------------------------------------
menu_swcustom_filter::menu_swcustom_filter(mame_ui_manager &mui, render_container *container, const game_driver *_driver, s_filter &_filter)
: menu(mui, container), m_added(false), m_filter(_filter), m_driver(_driver)
: menu(mui, container)
, m_added(false)
, m_filter(_filter)
, m_driver(_driver)
{
}
@ -279,11 +286,11 @@ menu_swcustom_filter::~menu_swcustom_filter()
//-------------------------------------------------
void menu_swcustom_filter::handle()
{
auto changed = false;
bool changed = false;
m_added = false;
// process the menu
auto menu_event = process(PROCESS_LR_REPEAT);
const event *menu_event = process(PROCESS_LR_REPEAT);
if (menu_event != nullptr && menu_event->itemref != nullptr)
{
switch ((FPTR)menu_event->itemref)
@ -299,7 +306,8 @@ void menu_swcustom_filter::handle()
case ADD_FILTER:
if (menu_event->iptkey == IPT_UI_SELECT)
{
sw_custfltr::other[++sw_custfltr::numother] = UI_SW_UNAVAILABLE + 1;
sw_custfltr::numother++;
sw_custfltr::other[sw_custfltr::numother] = UI_SW_UNAVAILABLE + 1;
m_added = true;
}
break;
@ -307,7 +315,8 @@ void menu_swcustom_filter::handle()
case REMOVE_FILTER:
if (menu_event->iptkey == IPT_UI_SELECT)
{
sw_custfltr::other[sw_custfltr::numother--] = UI_SW_UNAVAILABLE + 1;
sw_custfltr::other[sw_custfltr::numother] = UI_SW_UNAVAILABLE + 1;
sw_custfltr::numother--;
changed = true;
}
break;
@ -315,7 +324,7 @@ void menu_swcustom_filter::handle()
if ((FPTR)menu_event->itemref >= OTHER_FILTER && (FPTR)menu_event->itemref < OTHER_FILTER + MAX_CUST_FILTER)
{
auto pos = (int)((FPTR)menu_event->itemref - OTHER_FILTER);
int pos = (int)((FPTR)menu_event->itemref - OTHER_FILTER);
if (menu_event->iptkey == IPT_UI_LEFT && sw_custfltr::other[pos] > UI_SW_UNAVAILABLE + 1)
{
sw_custfltr::other[pos]--;
@ -328,7 +337,7 @@ void menu_swcustom_filter::handle()
}
else if (menu_event->iptkey == IPT_UI_SELECT)
{
auto total = sw_filters::length;
size_t total = sw_filters::length;
std::vector<std::string> s_sel(total);
for (size_t index = 0; index < total; ++index)
if (index <= UI_SW_UNAVAILABLE|| index == UI_SW_CUSTOM)
@ -336,12 +345,12 @@ void menu_swcustom_filter::handle()
else
s_sel[index] = sw_filters::text[index];
menu::stack_push<menu_selector>(ui(), container, std::move(s_sel), sw_custfltr::other[pos]);
menu::stack_push<menu_selector>(ui(), container, s_sel, sw_custfltr::other[pos]);
}
}
else if ((FPTR)menu_event->itemref >= YEAR_FILTER && (FPTR)menu_event->itemref < YEAR_FILTER + MAX_CUST_FILTER)
{
auto pos = (int)((FPTR)menu_event->itemref - YEAR_FILTER);
int pos = (int)((FPTR)menu_event->itemref - YEAR_FILTER);
if (menu_event->iptkey == IPT_UI_LEFT && sw_custfltr::year[pos] > 0)
{
sw_custfltr::year[pos]--;
@ -357,7 +366,7 @@ void menu_swcustom_filter::handle()
}
else if ((FPTR)menu_event->itemref >= TYPE_FILTER && (FPTR)menu_event->itemref < TYPE_FILTER + MAX_CUST_FILTER)
{
auto pos = (int)((FPTR)menu_event->itemref - TYPE_FILTER);
int pos = (int)((FPTR)menu_event->itemref - TYPE_FILTER);
if (menu_event->iptkey == IPT_UI_LEFT && sw_custfltr::type[pos] > 0)
{
sw_custfltr::type[pos]--;
@ -373,7 +382,7 @@ void menu_swcustom_filter::handle()
}
else if ((FPTR)menu_event->itemref >= MNFCT_FILTER && (FPTR)menu_event->itemref < MNFCT_FILTER + MAX_CUST_FILTER)
{
auto pos = (int)((FPTR)menu_event->itemref - MNFCT_FILTER);
int pos = (int)((FPTR)menu_event->itemref - MNFCT_FILTER);
if (menu_event->iptkey == IPT_UI_LEFT && sw_custfltr::mnfct[pos] > 0)
{
sw_custfltr::mnfct[pos]--;
@ -389,7 +398,7 @@ void menu_swcustom_filter::handle()
}
else if ((FPTR)menu_event->itemref >= REGION_FILTER && (FPTR)menu_event->itemref < REGION_FILTER + MAX_CUST_FILTER)
{
auto pos = (int)((FPTR)menu_event->itemref - REGION_FILTER);
int pos = (int)((FPTR)menu_event->itemref - REGION_FILTER);
if (menu_event->iptkey == IPT_UI_LEFT && sw_custfltr::region[pos] > 0)
{
sw_custfltr::region[pos]--;
@ -405,7 +414,7 @@ void menu_swcustom_filter::handle()
}
else if ((FPTR)menu_event->itemref >= LIST_FILTER && (FPTR)menu_event->itemref < LIST_FILTER + MAX_CUST_FILTER)
{
auto pos = (int)((FPTR)menu_event->itemref - LIST_FILTER);
int pos = (int)((FPTR)menu_event->itemref - LIST_FILTER);
if (menu_event->iptkey == IPT_UI_LEFT && sw_custfltr::list[pos] > 0)
{
sw_custfltr::list[pos]--;
@ -433,11 +442,11 @@ void menu_swcustom_filter::handle()
void menu_swcustom_filter::populate()
{
// add main filter
auto arrow_flags = get_arrow_flags((int)UI_SW_ALL, (int)UI_SW_UNAVAILABLE, sw_custfltr::main);
UINT32 arrow_flags = get_arrow_flags((int)UI_SW_ALL, (int)UI_SW_UNAVAILABLE, sw_custfltr::main);
item_append(_("Main filter"), sw_filters::text[sw_custfltr::main], arrow_flags, (void *)(FPTR)MAIN_FILTER);
// add other filters
for (int x = 1; x <= sw_custfltr::numother; ++x)
for (int x = 1; x <= sw_custfltr::numother; x++)
{
item_append(menu_item_type::SEPARATOR);
@ -554,7 +563,7 @@ void menu_swcustom_filter::save_sw_custom_filters()
util::stream_format(cinfo, "Total filters = %d\n", (sw_custfltr::numother + 1));
util::stream_format(cinfo, "Main filter = %s\n", sw_filters::text[sw_custfltr::main]);
for (int x = 1; x <= sw_custfltr::numother; ++x)
for (int x = 1; x <= sw_custfltr::numother; x++)
{
util::stream_format(cinfo, "Other filter = %s\n", sw_filters::text[sw_custfltr::other[x]]);
if (sw_custfltr::other[x] == UI_SW_PUBLISHERS)

View File

@ -20,7 +20,7 @@
#include "osdepend.h"
namespace ui {
std::vector<std::string> menu_custom_ui::hide_status = {
const char *const menu_custom_ui::hide_status[] = {
__("Show All"),
__("Hide Filters"),
__("Hide Info/Image"),
@ -30,8 +30,7 @@ std::vector<std::string> menu_custom_ui::hide_status = {
// ctor
//-------------------------------------------------
menu_custom_ui::menu_custom_ui(mame_ui_manager &mui, render_container *container)
: menu(mui, container)
menu_custom_ui::menu_custom_ui(mame_ui_manager &mui, render_container *container) : menu(mui, container)
{
// load languages
file_enumerator path(mui.machine().options().language_path());
@ -45,7 +44,7 @@ menu_custom_ui::menu_custom_ui(mame_ui_manager &mui, render_container *container
auto i = strreplace(name, "_", " (");
if (i > 0) name = name.append(")");
m_lang.push_back(name);
if (name == lang)
if (strcmp(name.c_str(), lang) == 0)
m_currlang = cnt;
++cnt;
}
@ -74,10 +73,10 @@ menu_custom_ui::~menu_custom_ui()
void menu_custom_ui::handle()
{
auto changed = false;
bool changed = false;
// process the menu
auto menu_event = process(0);
const event *menu_event = process(0);
if (menu_event != nullptr && menu_event->itemref != nullptr)
{
@ -99,7 +98,14 @@ void menu_custom_ui::handle()
(menu_event->iptkey == IPT_UI_RIGHT) ? ui_globals::panels_status++ : ui_globals::panels_status--;
}
else if (menu_event->iptkey == IPT_UI_SELECT)
menu::stack_push<menu_selector>(ui(), container, hide_status, ui_globals::panels_status);
{
int total = ARRAY_LENGTH(hide_status);
std::vector<std::string> s_sel(total);
for (int index = 0; index < total; ++index)
s_sel[index] = _(hide_status[index]);
menu::stack_push<menu_selector>(ui(), container, s_sel, ui_globals::panels_status);
}
break;
}
case LANGUAGE_MENU:
@ -110,7 +116,14 @@ void menu_custom_ui::handle()
(menu_event->iptkey == IPT_UI_RIGHT) ? m_currlang++ : m_currlang--;
}
else if (menu_event->iptkey == IPT_UI_SELECT)
menu::stack_push<menu_selector>(ui(), container, m_lang, m_currlang);
{
int total = m_lang.size();
std::vector<std::string> s_sel(total);
for (int index = 0; index < total; ++index)
s_sel[index] = m_lang[index];
menu::stack_push<menu_selector>(ui(), container, s_sel, m_currlang);
}
break;
}
}
@ -137,7 +150,7 @@ void menu_custom_ui::populate()
}
arrow_flags = get_arrow_flags(0, (int)HIDE_BOTH, ui_globals::panels_status);
item_append(_("Show side panels"), _(hide_status[ui_globals::panels_status].c_str()), arrow_flags, (void *)(FPTR)HIDE_MENU);
item_append(_("Show side panels"), _(hide_status[ui_globals::panels_status]), arrow_flags, (void *)(FPTR)HIDE_MENU);
item_append(menu_item_type::SEPARATOR);
customtop = ui().get_line_height() + 3.0f * UI_BOX_TB_BORDER;
@ -152,7 +165,7 @@ void menu_custom_ui::custom_render(void *selectedref, float top, float bottom, f
float width;
ui().draw_text_full(container, _("Custom UI Settings"), 0.0f, 0.0f, 1.0f, ui::text_layout::CENTER, ui::text_layout::TRUNCATE,
mame_ui_manager::NONE, rgb_t::white, rgb_t::black, &width, nullptr);
mame_ui_manager::NONE, rgb_t::white, rgb_t::black, &width, nullptr);
width += 2 * UI_BOX_LR_BORDER;
float maxwidth = MAX(origx2 - origx1, width);
@ -172,7 +185,7 @@ void menu_custom_ui::custom_render(void *selectedref, float top, float bottom, f
// draw the text within it
ui().draw_text_full(container, _("Custom UI Settings"), x1, y1, x2 - x1, ui::text_layout::CENTER, ui::text_layout::TRUNCATE,
mame_ui_manager::NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr);
mame_ui_manager::NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr);
}
//-------------------------------------------------
@ -181,7 +194,7 @@ void menu_custom_ui::custom_render(void *selectedref, float top, float bottom, f
menu_font_ui::menu_font_ui(mame_ui_manager &mui, render_container *container) : menu(mui, container)
{
auto moptions = mui.options();
ui_options &moptions = mui.options();
std::string name(mui.machine().options().ui_font());
list();
@ -191,7 +204,7 @@ menu_font_ui::menu_font_ui(mame_ui_manager &mui, render_container *container) :
#endif
m_actual = 0;
for (size_t index = 0; index < m_fonts.size(); ++index)
for (size_t index = 0; index < m_fonts.size(); index++)
{
if (m_fonts[index].first == name)
{
@ -217,6 +230,7 @@ menu_font_ui::menu_font_ui(mame_ui_manager &mui, render_container *container) :
m_font_min = atof(f_entry.minimum());
}
}
}
//-------------------------------------------------
@ -238,7 +252,7 @@ void menu_font_ui::list()
menu_font_ui::~menu_font_ui()
{
std::string error_string;
auto moptions = ui().options();
ui_options &moptions = ui().options();
std::string name(m_fonts[m_actual].first);
#ifdef UI_WINDOWS
@ -263,10 +277,10 @@ menu_font_ui::~menu_font_ui()
void menu_font_ui::handle()
{
auto changed = false;
bool changed = false;
// process the menu
auto menu_event = process(PROCESS_LR_REPEAT);
const event *menu_event = process(PROCESS_LR_REPEAT);
if (menu_event != nullptr && menu_event->itemref != nullptr)
switch ((FPTR)menu_event->itemref)
@ -326,8 +340,11 @@ void menu_font_ui::handle()
void menu_font_ui::populate()
{
// set filter arrow
UINT32 arrow_flags;
// add fonts option
auto arrow_flags = get_arrow_flags(0, m_fonts.size() - 1, m_actual);
arrow_flags = get_arrow_flags(0, m_fonts.size() - 1, m_actual);
item_append(_("UI Font"), m_fonts[m_actual].second, arrow_flags, (void *)(FPTR)MUI_FNT);
#ifdef UI_WINDOWS
@ -364,7 +381,7 @@ void menu_font_ui::custom_render(void *selectedref, float top, float bottom, flo
std::string topbuf(_("UI Fonts Settings"));
ui().draw_text_full(container, topbuf.c_str(), 0.0f, 0.0f, 1.0f, ui::text_layout::CENTER, ui::text_layout::TRUNCATE,
mame_ui_manager::NONE, rgb_t::white, rgb_t::black, &width, nullptr);
mame_ui_manager::NONE, rgb_t::white, rgb_t::black, &width, nullptr);
width += 2 * UI_BOX_LR_BORDER;
float maxwidth = MAX(origx2 - origx1, width);
@ -384,14 +401,14 @@ void menu_font_ui::custom_render(void *selectedref, float top, float bottom, flo
// draw the text within it
ui().draw_text_full(container, topbuf.c_str(), x1, y1, x2 - x1, ui::text_layout::CENTER, ui::text_layout::TRUNCATE,
mame_ui_manager::NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr);
mame_ui_manager::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.");
ui().draw_text_full(container, topbuf.c_str(), 0.0f, 0.0f, 1.0f, ui::text_layout::LEFT, ui::text_layout::NEVER,
mame_ui_manager::NONE, rgb_t::white, rgb_t::black, &width, nullptr, m_info_size);
mame_ui_manager::NONE, rgb_t::white, rgb_t::black, &width, nullptr, m_info_size);
width += 2 * UI_BOX_LR_BORDER;
maxwidth = MAX(origx2 - origx1, width);
@ -411,7 +428,7 @@ void menu_font_ui::custom_render(void *selectedref, float top, float bottom, flo
// draw the text within it
ui().draw_text_full(container, topbuf.c_str(), x1, y1, x2 - x1, ui::text_layout::LEFT, ui::text_layout::NEVER,
mame_ui_manager::NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr, m_info_size);
mame_ui_manager::NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr, m_info_size);
}
}
@ -447,7 +464,7 @@ menu_colors_ui::menu_colors_ui(mame_ui_manager &mui, render_container *container
menu_colors_ui::~menu_colors_ui()
{
std::string error_string, dec_color;
for (int index = 1; index < MUI_RESTORE; ++index)
for (int index = 1; index < MUI_RESTORE; index++)
{
dec_color = string_format("%x", (UINT32)m_color_table[index].color);
ui().options().set_value(m_color_table[index].option, dec_color.c_str(), OPTION_PRIORITY_CMDLINE, error_string);
@ -460,10 +477,10 @@ menu_colors_ui::~menu_colors_ui()
void menu_colors_ui::handle()
{
auto changed = false;
bool changed = false;
// process the menu
auto menu_event = process(0);
const event *menu_event = process(0);
if (menu_event != nullptr && menu_event->itemref != nullptr && menu_event->iptkey == IPT_UI_SELECT)
{
@ -522,7 +539,7 @@ void menu_colors_ui::custom_render(void *selectedref, float top, float bottom, f
std::string topbuf(_("UI Colors Settings"));
ui().draw_text_full(container, topbuf.c_str(), 0.0f, 0.0f, 1.0f, ui::text_layout::CENTER, ui::text_layout::NEVER,
mame_ui_manager::NONE, rgb_t::white, rgb_t::black, &width, nullptr);
mame_ui_manager::NONE, rgb_t::white, rgb_t::black, &width, nullptr);
width += 2 * UI_BOX_LR_BORDER;
maxwidth = MAX(maxwidth, width);
@ -542,7 +559,7 @@ void menu_colors_ui::custom_render(void *selectedref, float top, float bottom, f
// draw the text within it
ui().draw_text_full(container, topbuf.c_str(), x1, y1, x2 - x1, ui::text_layout::CENTER, ui::text_layout::NEVER,
mame_ui_manager::NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr);
mame_ui_manager::NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr);
// bottom text
// get the text for 'UI Select'
@ -550,7 +567,7 @@ void menu_colors_ui::custom_render(void *selectedref, float top, float bottom, f
topbuf = string_format(_("Double click or press %1$s to change the color value"), ui_select_text);
ui().draw_text_full(container, topbuf.c_str(), 0.0f, 0.0f, 1.0f, ui::text_layout::CENTER, ui::text_layout::NEVER,
mame_ui_manager::NONE, rgb_t::white, rgb_t::black, &width, nullptr);
mame_ui_manager::NONE, rgb_t::white, rgb_t::black, &width, nullptr);
width += 2 * UI_BOX_LR_BORDER;
maxwidth = MAX(maxwidth, width);
@ -570,13 +587,13 @@ void menu_colors_ui::custom_render(void *selectedref, float top, float bottom, f
// draw the text within it
ui().draw_text_full(container, topbuf.c_str(), x1, y1, x2 - x1, ui::text_layout::CENTER, ui::text_layout::NEVER,
mame_ui_manager::NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr);
mame_ui_manager::NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr);
// compute maxwidth
topbuf = _("Menu Preview");
ui().draw_text_full(container, topbuf.c_str(), 0.0f, 0.0f, 1.0f, ui::text_layout::CENTER, ui::text_layout::NEVER,
mame_ui_manager::NONE, rgb_t::white, rgb_t::black, &width, nullptr);
mame_ui_manager::NONE, rgb_t::white, rgb_t::black, &width, nullptr);
maxwidth = width + 2.0f * UI_BOX_LR_BORDER;
std::string sampletxt[5];
@ -590,7 +607,7 @@ void menu_colors_ui::custom_render(void *selectedref, float top, float bottom, f
for (auto & elem: sampletxt)
{
ui().draw_text_full(container, elem.c_str(), 0.0f, 0.0f, 1.0f, ui::text_layout::CENTER, ui::text_layout::NEVER,
mame_ui_manager::NONE, rgb_t::white, rgb_t::black, &width, nullptr);
mame_ui_manager::NONE, rgb_t::white, rgb_t::black, &width, nullptr);
width += 2 * UI_BOX_LR_BORDER;
maxwidth = MAX(maxwidth, width);
}
@ -612,7 +629,7 @@ void menu_colors_ui::custom_render(void *selectedref, float top, float bottom, f
// draw the text within it
ui().draw_text_full(container, topbuf.c_str(), x1, y1, x2 - x1, ui::text_layout::CENTER, ui::text_layout::NEVER,
mame_ui_manager::NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr);
mame_ui_manager::NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr);
// compute our bounds for menu preview
x1 -= UI_BOX_LR_BORDER;
@ -630,29 +647,29 @@ void menu_colors_ui::custom_render(void *selectedref, float top, float bottom, f
// draw normal text
ui().draw_text_full(container, sampletxt[0].c_str(), x1, y1, x2 - x1, ui::text_layout::CENTER, ui::text_layout::NEVER,
mame_ui_manager::NORMAL, m_color_table[MUI_TEXT_COLOR].color, m_color_table[MUI_TEXT_BG_COLOR].color, nullptr, nullptr);
mame_ui_manager::NORMAL, m_color_table[MUI_TEXT_COLOR].color, m_color_table[MUI_TEXT_BG_COLOR].color, nullptr, nullptr);
y1 += line_height;
// draw subitem text
ui().draw_text_full(container, sampletxt[1].c_str(), x1, y1, x2 - x1, ui::text_layout::CENTER, ui::text_layout::NEVER,
mame_ui_manager::NORMAL, m_color_table[MUI_SUBITEM_COLOR].color, m_color_table[MUI_TEXT_BG_COLOR].color, nullptr, nullptr);
mame_ui_manager::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);
ui().draw_text_full(container, sampletxt[2].c_str(), x1, y1, x2 - x1, ui::text_layout::CENTER, ui::text_layout::NEVER,
mame_ui_manager::NORMAL, m_color_table[MUI_SELECTED_COLOR].color, m_color_table[MUI_SELECTED_BG_COLOR].color, nullptr, nullptr);
mame_ui_manager::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);
ui().draw_text_full(container, sampletxt[3].c_str(), x1, y1, x2 - x1, ui::text_layout::CENTER, ui::text_layout::NEVER,
mame_ui_manager::NORMAL, m_color_table[MUI_MOUSEOVER_COLOR].color, m_color_table[MUI_MOUSEOVER_BG_COLOR].color, nullptr, nullptr);
mame_ui_manager::NORMAL, m_color_table[MUI_MOUSEOVER_COLOR].color, m_color_table[MUI_MOUSEOVER_BG_COLOR].color, nullptr, nullptr);
y1 += line_height;
// draw clone text
ui().draw_text_full(container, sampletxt[4].c_str(), x1, y1, x2 - x1, ui::text_layout::CENTER, ui::text_layout::NEVER,
mame_ui_manager::NORMAL, m_color_table[MUI_CLONE_COLOR].color, m_color_table[MUI_TEXT_BG_COLOR].color, nullptr, nullptr);
mame_ui_manager::NORMAL, m_color_table[MUI_CLONE_COLOR].color, m_color_table[MUI_TEXT_BG_COLOR].color, nullptr, nullptr);
}
@ -663,7 +680,7 @@ void menu_colors_ui::custom_render(void *selectedref, float top, float bottom, f
void menu_colors_ui::restore_colors()
{
ui_options options;
for (int index = 1; index < MUI_RESTORE; ++index)
for (int index = 1; index < MUI_RESTORE; index++)
m_color_table[index].color = rgb_t((UINT32)strtoul(options.value(m_color_table[index].option), nullptr, 16));
}
@ -671,9 +688,12 @@ void menu_colors_ui::restore_colors()
// ctor
//-------------------------------------------------
menu_rgb_ui::menu_rgb_ui(mame_ui_manager &mui, render_container *container, rgb_t *_color, std::string _title)
: menu(mui, container), m_color(_color), m_key_active(false), m_lock_ref(0), m_title(_title)
menu_rgb_ui::menu_rgb_ui(mame_ui_manager &mui, render_container *container, rgb_t *_color, std::string _title) : menu(mui, container)
{
m_color = _color;
m_key_active = false;
m_lock_ref = 0;
m_title = _title;
m_search[0] = '\0';
}
@ -691,7 +711,7 @@ menu_rgb_ui::~menu_rgb_ui()
void menu_rgb_ui::handle()
{
auto changed = false;
bool changed = false;
// process the menu
const event *menu_event;
@ -860,7 +880,7 @@ void menu_rgb_ui::custom_render(void *selectedref, float top, float bottom, floa
// top text
std::string topbuf = std::string(m_title).append(_(" - ARGB Settings"));
ui().draw_text_full(container, topbuf.c_str(), 0.0f, 0.0f, 1.0f, ui::text_layout::CENTER, ui::text_layout::NEVER,
mame_ui_manager::NONE, rgb_t::white, rgb_t::black, &width, nullptr);
mame_ui_manager::NONE, rgb_t::white, rgb_t::black, &width, nullptr);
width += 2 * UI_BOX_LR_BORDER;
maxwidth = MAX(maxwidth, width);
@ -880,12 +900,12 @@ void menu_rgb_ui::custom_render(void *selectedref, float top, float bottom, floa
// draw the text within it
ui().draw_text_full(container, topbuf.c_str(), x1, y1, x2 - x1, ui::text_layout::CENTER, ui::text_layout::NEVER,
mame_ui_manager::NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr);
mame_ui_manager::NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr);
std::string sampletxt(_("Color preview ="));
maxwidth = origx2 - origx1;
ui().draw_text_full(container, sampletxt.c_str(), 0.0f, 0.0f, 1.0f, ui::text_layout::CENTER, ui::text_layout::NEVER,
mame_ui_manager::NONE, rgb_t::white, rgb_t::black, &width, nullptr);
mame_ui_manager::NONE, rgb_t::white, rgb_t::black, &width, nullptr);
width += 2 * UI_BOX_LR_BORDER;
maxwidth = MAX(maxwidth, width);
@ -905,7 +925,7 @@ void menu_rgb_ui::custom_render(void *selectedref, float top, float bottom, floa
// draw the normal text
ui().draw_text_full(container, sampletxt.c_str(), x1, y1, x2 - x1, ui::text_layout::CENTER, ui::text_layout::NEVER,
mame_ui_manager::NORMAL, rgb_t::white, rgb_t::black, nullptr, nullptr);
mame_ui_manager::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;
@ -929,15 +949,26 @@ void menu_rgb_ui::inkey_special(const event *menu_event)
if (!m_key_active)
{
auto val = atoi(m_search);
int val = atoi(m_search);
val = m_color->clamp(val);
switch ((FPTR)menu_event->itemref)
{
case RGB_ALPHA: m_color->set_a(val); break;
case RGB_RED: m_color->set_r(val); break;
case RGB_GREEN: m_color->set_g(val); break;
case RGB_BLUE: m_color->set_b(val); break;
case RGB_ALPHA:
m_color->set_a(val);
break;
case RGB_RED:
m_color->set_r(val);
break;
case RGB_GREEN:
m_color->set_g(val);
break;
case RGB_BLUE:
m_color->set_b(val);
break;
}
m_search[0] = 0;
@ -1007,7 +1038,7 @@ menu_palette_sel::~menu_palette_sel()
void menu_palette_sel::handle()
{
// process the menu
auto menu_event = process(FLAG_UI_PALETTE);
const event *menu_event = process(FLAG_UI_PALETTE);
if (menu_event != nullptr && menu_event->itemref != nullptr)
{
if (menu_event->iptkey == IPT_UI_SELECT)
@ -1025,9 +1056,8 @@ void menu_palette_sel::handle()
void menu_palette_sel::populate()
{
int x = 0;
for (auto & e : m_palette)
item_append(_(e.first), e.second, FLAG_UI_PALETTE, (void *)(FPTR)(++x));
for (int x = 0; x < m_palette.size(); ++x)
item_append(_(m_palette[x].first), m_palette[x].second, FLAG_UI_PALETTE, (void *)(FPTR)(x + 1));
item_append(menu_item_type::SEPARATOR);
}

View File

@ -37,7 +37,7 @@ private:
COLORS_MENU,
HIDE_MENU
};
static std::vector<std::string> hide_status;
static const char *const hide_status[];
std::vector<std::string> m_lang;
std::uint16_t m_currlang;
};

View File

@ -81,7 +81,7 @@ menu_dats_view::~menu_dats_view()
void menu_dats_view::handle()
{
auto menu_event = process(FLAG_UI_DATS);
const event *menu_event = process(FLAG_UI_DATS);
if (menu_event != nullptr)
{
if (menu_event->iptkey == IPT_UI_LEFT && m_actual > 0)

View File

@ -271,7 +271,7 @@ void menu_device_config::populate()
void menu_device_config::handle()
{
// process the menu
/* process the menu */
process(0);
}

View File

@ -71,8 +71,7 @@ static const folders_entry s_folders[] =
// ctor / dtor
//-------------------------------------------------
menu_directory::menu_directory(mame_ui_manager &mui, render_container *container)
: menu(mui, container)
menu_directory::menu_directory(mame_ui_manager &mui, render_container *container) : menu(mui, container)
{
}
@ -90,7 +89,7 @@ menu_directory::~menu_directory()
void menu_directory::handle()
{
// process the menu
auto menu_event = process(0);
const event *menu_event = process(0);
if (menu_event != nullptr && menu_event->itemref != nullptr && menu_event->iptkey == IPT_UI_SELECT)
menu::stack_push<menu_display_actual>(ui(), container, selected);
@ -165,7 +164,7 @@ menu_display_actual::~menu_display_actual()
void menu_display_actual::handle()
{
// process the menu
auto menu_event = process(0);
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)
{
@ -217,15 +216,13 @@ void menu_display_actual::custom_render(void *selectedref, float top, float bott
for (auto & elem : m_folders)
{
ui().draw_text_full(container, elem.c_str(), 0.0f, 0.0f, 1.0f, ui::text_layout::LEFT, ui::text_layout::TRUNCATE,
mame_ui_manager::NONE, rgb_t::white, rgb_t::black, &width, nullptr);
ui().draw_text_full(container, elem.c_str(), 0.0f, 0.0f, 1.0f, ui::text_layout::LEFT, ui::text_layout::TRUNCATE, mame_ui_manager::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
ui().draw_text_full(container, m_tempbuf.c_str(), 0.0f, 0.0f, 1.0f, ui::text_layout::CENTER, ui::text_layout::TRUNCATE,
mame_ui_manager::NONE, rgb_t::white, rgb_t::black, &width, nullptr);
ui().draw_text_full(container, m_tempbuf.c_str(), 0.0f, 0.0f, 1.0f, ui::text_layout::CENTER, ui::text_layout::TRUNCATE, mame_ui_manager::NONE, rgb_t::white, rgb_t::black, &width, nullptr);
width += (2.0f * UI_BOX_LR_BORDER) + 0.01f;
maxwidth = MAX(width, maxwidth);
@ -278,9 +275,9 @@ MENU ADD FOLDER
// ctor / dtor
//-------------------------------------------------
menu_add_change_folder::menu_add_change_folder(mame_ui_manager &mui, render_container *container, int ref)
: menu(mui, container), m_ref(ref)
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);
m_search[0] = '\0';
@ -310,7 +307,7 @@ menu_add_change_folder::~menu_add_change_folder()
void menu_add_change_folder::handle()
{
// process the menu
auto menu_event = process(0);
const event *menu_event = process(0);
if (menu_event != nullptr && menu_event->itemref != nullptr)
{
@ -571,9 +568,9 @@ void menu_add_change_folder::custom_render(void *selectedref, float top, float b
// ctor / dtor
//-------------------------------------------------
menu_remove_folder::menu_remove_folder(mame_ui_manager &mui, render_container *container, int ref)
: menu(mui, container), m_ref(ref)
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))
m_searchpath.assign(mui.options().value(s_folders[m_ref].option));
else
@ -596,7 +593,7 @@ menu_remove_folder::~menu_remove_folder()
void menu_remove_folder::handle()
{
// process the menu
auto menu_event = process(0);
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;
@ -645,8 +642,7 @@ void menu_remove_folder::custom_render(void *selectedref, float top, float botto
std::string tempbuf = string_format(_("Remove %1$s Folder"), _(s_folders[m_ref].name));
// get the size of the text
ui().draw_text_full(container, tempbuf.c_str(), 0.0f, 0.0f, 1.0f, ui::text_layout::CENTER, ui::text_layout::NEVER,
mame_ui_manager::NONE, rgb_t::white, rgb_t::black, &width, nullptr);
ui().draw_text_full(container, tempbuf.c_str(), 0.0f, 0.0f, 1.0f, ui::text_layout::CENTER, ui::text_layout::NEVER, mame_ui_manager::NONE, rgb_t::white, rgb_t::black, &width, nullptr);
width += (2.0f * UI_BOX_LR_BORDER) + 0.01f;
float maxwidth = MAX(width, origx2 - origx1);
@ -665,8 +661,8 @@ void menu_remove_folder::custom_render(void *selectedref, float top, float botto
y1 += UI_BOX_TB_BORDER;
// draw the text within it
ui().draw_text_full(container, tempbuf.c_str(), x1, y1, x2 - x1, ui::text_layout::CENTER, ui::text_layout::NEVER,
mame_ui_manager::NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr);
ui().draw_text_full(container, tempbuf.c_str(), x1, y1, x2 - x1, ui::text_layout::CENTER, ui::text_layout::NEVER, mame_ui_manager::NORMAL,
UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr);
}
} // namespace ui

View File

@ -56,7 +56,7 @@ menu_control_device_image::menu_control_device_image(mame_ui_manager &mui, rende
{
state = START_FILE;
// if the image exists, set the working directory to the parent directory
/* if the image exists, set the working directory to the parent directory */
if (image->exists())
{
current_file.assign(image->filename());
@ -64,7 +64,7 @@ menu_control_device_image::menu_control_device_image(mame_ui_manager &mui, rende
} else
current_directory.assign(image->working_directory());
// check to see if the path exists; if not clear it
/* check to see if the path exists; if not clear it */
if (util::zippath_opendir(current_directory.c_str(), nullptr) != osd_file::error::NONE)
current_directory.clear();
}
@ -89,29 +89,29 @@ void menu_control_device_image::test_create(bool &can_create, bool &need_confirm
std::string path;
osd::directory::entry::entry_type file_type;
// assemble the full path
/* assemble the full path */
util::zippath_combine(path, current_directory.c_str(), current_file.c_str());
// does a file or a directory exist at the path
/* does a file or a directory exist at the path */
auto entry = osd_stat(path.c_str());
file_type = (entry != nullptr) ? entry->type : osd::directory::entry::entry_type::NONE;
switch(file_type)
{
case osd::directory::entry::entry_type::NONE:
// no file/dir here - always create
/* no file/dir here - always create */
can_create = true;
need_confirm = false;
break;
case osd::directory::entry::entry_type::FILE:
// a file exists here - ask for permission from the user
/* a file exists here - ask for permission from the user */
can_create = true;
need_confirm = true;
break;
case osd::directory::entry::entry_type::DIR:
// a directory exists here - we can't save over it
/* a directory exists here - we can't save over it */
ui().popup_time(5, "%s", _("Cannot save over directory"));
can_create = false;
need_confirm = false;

View File

@ -25,12 +25,12 @@ namespace ui {
#define MAX_INPUT_PORTS 32
#define MAX_BITS_PER_PORT 32
// DIP switch rendering parameters
/* DIP switch rendering parameters */
#define DIP_SWITCH_HEIGHT 0.05f
#define DIP_SWITCH_SPACING 0.01f
#define SINGLE_TOGGLE_SWITCH_FIELD_WIDTH 0.025f
#define SINGLE_TOGGLE_SWITCH_WIDTH 0.020f
// make the switch 80% of the width space and 1/2 of the switch height
/* make the switch 80% of the width space and 1/2 of the switch height */
#define PERCENTAGE_OF_HALF_FIELD_USED 0.80f
#define SINGLE_TOGGLE_SWITCH_HEIGHT ((DIP_SWITCH_HEIGHT / 2) * PERCENTAGE_OF_HALF_FIELD_USED)
@ -49,7 +49,7 @@ void menu_input_groups::populate()
{
int player;
// build up the menu
/* build up the menu */
item_append(_("User Interface"), "", 0, (void *)(IPG_UI + 1));
for (player = 0; player < MAX_PLAYERS; player++)
{
@ -70,7 +70,7 @@ menu_input_groups::~menu_input_groups()
void menu_input_groups::handle()
{
// process the menu
/* process the menu */
const event *menu_event = process(0);
if (menu_event != nullptr && menu_event->iptkey == IPT_UI_SELECT)
menu::stack_push<menu_input_general>(ui(), container, int((long long)(menu_event->itemref)-1));
@ -94,24 +94,24 @@ void menu_input_general::populate()
int suborder[SEQ_TYPE_TOTAL];
int sortorder = 1;
// create a mini lookup table for sort order based on sequence type
/* create a mini lookup table for sort order based on sequence type */
suborder[SEQ_TYPE_STANDARD] = 0;
suborder[SEQ_TYPE_DECREMENT] = 1;
suborder[SEQ_TYPE_INCREMENT] = 2;
// iterate over the input ports and add menu items
/* iterate over the input ports and add menu items */
for (input_type_entry &entry : machine().ioport().types())
// add if we match the group and we have a valid name
/* add if we match the group and we have a valid name */
if (entry.group() == group && entry.name() != nullptr && entry.name()[0] != 0)
{
input_seq_type seqtype;
// loop over all sequence types
/* loop over all sequence types */
sortorder++;
for (seqtype = SEQ_TYPE_STANDARD; seqtype < SEQ_TYPE_TOTAL; ++seqtype)
{
// build an entry for the standard sequence
/* build an entry for the standard sequence */
input_item_data *item = (input_item_data *)m_pool_alloc(sizeof(*item));
memset(item, 0, sizeof(*item));
item->ref = &entry;
@ -127,13 +127,13 @@ void menu_input_general::populate()
item->next = itemlist;
itemlist = item;
// stop after one, unless we're analog
/* stop after one, unless we're analog */
if (item->type == INPUT_TYPE_DIGITAL)
break;
}
}
// sort and populate the menu in a standard fashion
/* sort and populate the menu in a standard fashion */
populate_and_sort(itemlist);
}
@ -156,12 +156,12 @@ void menu_input_specific::populate()
int suborder[SEQ_TYPE_TOTAL];
int port_count = 0;
// create a mini lookup table for sort order based on sequence type
/* create a mini lookup table for sort order based on sequence type */
suborder[SEQ_TYPE_STANDARD] = 0;
suborder[SEQ_TYPE_DECREMENT] = 1;
suborder[SEQ_TYPE_INCREMENT] = 2;
// iterate over the input ports and add menu items
/* iterate over the input ports and add menu items */
for (auto &port : machine().ioport().ports())
{
port_count++;
@ -169,13 +169,13 @@ void menu_input_specific::populate()
{
ioport_type_class type_class = field.type_class();
// add if we match the group and we have a valid name
/* add if we match the group and we have a valid name */
if (field.enabled() && (type_class == INPUT_CLASS_CONTROLLER || type_class == INPUT_CLASS_MISC || type_class == INPUT_CLASS_KEYBOARD))
{
input_seq_type seqtype;
UINT32 sortorder;
// determine the sorting order
/* determine the sorting order */
if (type_class == INPUT_CLASS_CONTROLLER)
{
sortorder = (field.type() << 2) | (field.player() << 12);
@ -185,10 +185,10 @@ void menu_input_specific::populate()
else
sortorder = field.type() | 0xf000;
// loop over all sequence types
/* loop over all sequence types */
for (seqtype = SEQ_TYPE_STANDARD; seqtype < SEQ_TYPE_TOTAL; ++seqtype)
{
// build an entry for the standard sequence
/* build an entry for the standard sequence */
input_item_data *item = (input_item_data *)m_pool_alloc(sizeof(*item));
memset(item, 0, sizeof(*item));
item->ref = &field;
@ -204,7 +204,7 @@ void menu_input_specific::populate()
item->next = itemlist;
itemlist = item;
// stop after one, unless we're analog
/* stop after one, unless we're analog */
if (item->type == INPUT_TYPE_DIGITAL)
break;
}
@ -212,7 +212,7 @@ void menu_input_specific::populate()
}
}
// sort and populate the menu in a standard fashion
/* sort and populate the menu in a standard fashion */
populate_and_sort(itemlist);
}
@ -241,11 +241,11 @@ menu_input::~menu_input()
void menu_input::toggle_none_default(input_seq &selected_seq, input_seq &original_seq, const input_seq &selected_defseq)
{
// if we used to be "none", toggle to the default value
/* if we used to be "none", toggle to the default value */
if (original_seq.length() == 0)
selected_seq = selected_defseq;
// otherwise, toggle to "none"
/* otherwise, toggle to "none" */
else
selected_seq.reset();
}
@ -253,74 +253,75 @@ void menu_input::toggle_none_default(input_seq &selected_seq, input_seq &origina
void menu_input::handle()
{
input_item_data *seqchangeditem = nullptr;
auto invalidate = false;
const event *menu_event;
int invalidate = false;
// process the menu
auto menu_event = process((pollingitem != nullptr) ? PROCESS_NOKEYS : 0);
/* process the menu */
menu_event = process((pollingitem != nullptr) ? PROCESS_NOKEYS : 0);
// if we are polling, handle as a special case
/* if we are polling, handle as a special case */
if (pollingitem != nullptr)
{
auto pitem = pollingitem;
input_item_data *item = pollingitem;
// if UI_CANCEL is pressed, abort
/* if UI_CANCEL is pressed, abort */
if (machine().ui_input().pressed(IPT_UI_CANCEL))
{
pollingitem = nullptr;
record_next = false;
toggle_none_default(pitem->seq, starting_seq, *pitem->defseq);
seqchangeditem = pitem;
toggle_none_default(item->seq, starting_seq, *item->defseq);
seqchangeditem = item;
}
// poll again; if finished, update the sequence
/* poll again; if finished, update the sequence */
if (machine().input().seq_poll())
{
pollingitem = nullptr;
record_next = true;
pitem->seq = machine().input().seq_poll_final();
seqchangeditem = pitem;
item->seq = machine().input().seq_poll_final();
seqchangeditem = item;
}
}
// otherwise, handle the events
/* otherwise, handle the events */
else if (menu_event != nullptr && menu_event->itemref != nullptr)
{
auto pitem = (input_item_data *)menu_event->itemref;
input_item_data *item = (input_item_data *)menu_event->itemref;
switch (menu_event->iptkey)
{
// an item was selected: begin polling
/* an item was selected: begin polling */
case IPT_UI_SELECT:
pollingitem = pitem;
last_sortorder = pitem->sortorder;
starting_seq = pitem->seq;
machine().input().seq_poll_start((pitem->type == INPUT_TYPE_ANALOG) ? ITEM_CLASS_ABSOLUTE : ITEM_CLASS_SWITCH, record_next ? &pitem->seq : nullptr);
pollingitem = item;
last_sortorder = item->sortorder;
starting_seq = item->seq;
machine().input().seq_poll_start((item->type == INPUT_TYPE_ANALOG) ? ITEM_CLASS_ABSOLUTE : ITEM_CLASS_SWITCH, record_next ? &item->seq : nullptr);
invalidate = true;
break;
// if the clear key was pressed, reset the selected item
/* if the clear key was pressed, reset the selected item */
case IPT_UI_CLEAR:
toggle_none_default(pitem->seq, pitem->seq, *pitem->defseq);
toggle_none_default(item->seq, item->seq, *item->defseq);
record_next = false;
seqchangeditem = pitem;
seqchangeditem = item;
break;
}
// if the selection changed, reset the "record next" flag
if (pitem->sortorder != last_sortorder)
/* if the selection changed, reset the "record next" flag */
if (item->sortorder != last_sortorder)
record_next = false;
last_sortorder = pitem->sortorder;
last_sortorder = item->sortorder;
}
// if the sequence changed, update it
/* if the sequence changed, update it */
if (seqchangeditem != nullptr)
{
update_input(seqchangeditem);
// invalidate the menu to force an update
/* invalidate the menu to force an update */
invalidate = true;
}
// if the menu is invalidated, clear it now
/* if the menu is invalidated, clear it now */
if (invalidate)
{
pollingref = nullptr;
@ -335,7 +336,7 @@ void menu_input::handle()
void menu_input_general::update_input(struct input_item_data *seqchangeditem)
{
auto entry = (const input_type_entry *)seqchangeditem->ref;
const input_type_entry *entry = (const input_type_entry *)seqchangeditem->ref;
machine().ioport().set_type_seq(entry->type(), entry->player(), seqchangeditem->seqtype, seqchangeditem->seq);
}
@ -356,8 +357,8 @@ void menu_input_specific::update_input(struct input_item_data *seqchangeditem)
int menu_input::compare_items(const void *i1, const void *i2)
{
auto data1 = (const input_item_data * const *)i1;
auto data2 = (const input_item_data * const *)i2;
const input_item_data * const *data1 = (const input_item_data * const *)i1;
const input_item_data * const *data2 = (const input_item_data * const *)i2;
if ((*data1)->sortorder < (*data2)->sortorder)
return -1;
if ((*data1)->sortorder > (*data2)->sortorder)
@ -381,30 +382,30 @@ void menu_input::populate_and_sort(input_item_data *itemlist)
std::string prev_owner;
bool first_entry = true;
// create a mini lookup table for name format based on type
/* create a mini lookup table for name format based on type */
nameformat[INPUT_TYPE_DIGITAL] = "%s";
nameformat[INPUT_TYPE_ANALOG] = "%s Analog";
nameformat[INPUT_TYPE_ANALOG_INC] = "%s Analog Inc";
nameformat[INPUT_TYPE_ANALOG_DEC] = "%s Analog Dec";
// first count the number of items
/* first count the number of items */
for (item = itemlist; item != nullptr; item = item->next)
numitems++;
// now allocate an array of items and fill it up
/* now allocate an array of items and fill it up */
itemarray = (input_item_data **)m_pool_alloc(sizeof(*itemarray) * numitems);
for (item = itemlist, curitem = 0; item != nullptr; item = item->next)
itemarray[curitem++] = item;
// sort it
/* sort it */
qsort(itemarray, numitems, sizeof(*itemarray), compare_items);
// build the menu
/* build the menu */
for (curitem = 0; curitem < numitems; curitem++)
{
UINT32 flags = 0;
// generate the name of the item itself, based off the base name and the type
/* generate the name of the item itself, based off the base name and the type */
item = itemarray[curitem];
assert(nameformat[item->type] != nullptr);
@ -420,21 +421,21 @@ void menu_input::populate_and_sort(input_item_data *itemlist)
std::string text = string_format(nameformat[item->type], item->name);
// if we're polling this item, use some spaces with left/right arrows
/* if we're polling this item, use some spaces with left/right arrows */
if (pollingref == item->ref)
{
subtext.assign(" ");
flags |= FLAG_LEFT_ARROW | FLAG_RIGHT_ARROW;
}
// otherwise, generate the sequence name and invert it if different from the default
/* otherwise, generate the sequence name and invert it if different from the default */
else
{
subtext = machine().input().seq_name(item->seq);
flags |= (item->seq != *item->defseq) ? FLAG_INVERT : 0;
}
// add the item
/* add the item */
item_append(text, subtext, flags, item);
}
}
@ -494,7 +495,7 @@ void menu_settings::handle()
switch (menu_event->iptkey)
{
// if selected, reset to default value
/* if selected, reset to default value */
case IPT_UI_SELECT:
field->get_user_settings(settings);
settings.value = field->defvalue();
@ -502,20 +503,20 @@ void menu_settings::handle()
changed = true;
break;
// left goes to previous setting
/* left goes to previous setting */
case IPT_UI_LEFT:
field->select_previous_setting();
changed = true;
break;
// right goes to next setting
/* right goes to next setting */
case IPT_UI_RIGHT:
field->select_next_setting();
changed = true;
break;
}
// if anything changed, rebuild the menu, trying to stay on the same field
/* if anything changed, rebuild the menu, trying to stay on the same field */
if (changed)
reset(reset_options::REMEMBER_REF);
}
@ -539,25 +540,25 @@ void menu_settings::populate()
std::string prev_owner;
bool first_entry = true;
// reset the dip switch tracking
/* reset the dip switch tracking */
dipcount = 0;
diplist = nullptr;
diplist_tailptr = &diplist;
// loop over input ports and set up the current values
/* loop over input ports and set up the current values */
for (auto &port : machine().ioport().ports())
for (ioport_field &field : port.second->fields())
if (field.type() == type && field.enabled())
{
UINT32 flags = 0;
// set the left/right flags appropriately
/* set the left/right flags appropriately */
if (field.has_previous_setting())
flags |= FLAG_LEFT_ARROW;
if (field.has_next_setting())
flags |= FLAG_RIGHT_ARROW;
// add the menu item
/* add the menu item */
if (strcmp(field.device().tag(), prev_owner.c_str()) != 0)
{
if (first_entry)
@ -571,27 +572,27 @@ void menu_settings::populate()
item_append(field.name(), field.setting_name(), flags, (void *)&field);
// for DIP switches, build up the model
/* for DIP switches, build up the model */
if (type == IPT_DIPSWITCH && !field.diplocations().empty())
{
ioport_field::user_settings settings;
auto accummask = field.mask();
UINT32 accummask = field.mask();
// get current settings
/* get current settings */
field.get_user_settings(settings);
// iterate over each bit in the field
/* iterate over each bit in the field */
for (const ioport_diplocation &diploc : field.diplocations())
{
UINT32 mask = accummask & ~(accummask - 1);
dip_descriptor *dip;
// find the matching switch name
/* find the matching switch name */
for (dip = diplist; dip != nullptr; dip = dip->next)
if (strcmp(dip->name, diploc.name()) == 0)
break;
// allocate new if none
/* allocate new if none */
if (dip == nullptr)
{
dip = (dip_descriptor *)m_pool_alloc(sizeof(*dip));
@ -603,12 +604,12 @@ void menu_settings::populate()
dipcount++;
}
// apply the bits
/* apply the bits */
dip->mask |= 1 << (diploc.number() - 1);
if (((settings.value & mask) != 0 && !diploc.inverted()) || ((settings.value & mask) == 0 && diploc.inverted()))
dip->state |= 1 << (diploc.number() - 1);
// clear the relevant bit in the accumulated mask
/* clear the relevant bit in the accumulated mask */
accummask &= ~mask;
}
}
@ -651,7 +652,7 @@ void menu_settings_dip_switches::custom_render(void *selectedref, float top, flo
// determine the mask of selected bits
if ((FPTR)selectedref != 1)
{
auto field = (ioport_field *)selectedref;
ioport_field *field = (ioport_field *)selectedref;
if (field != nullptr && !field->diplocations().empty())
for (const ioport_diplocation &diploc : field->diplocations())
@ -679,13 +680,13 @@ void menu_settings_dip_switches::custom_render_one(float x1, float y1, float x2,
float switch_toggle_gap;
float y1_off, y1_on;
// determine the number of toggles in the DIP
/* determine the number of toggles in the DIP */
numtoggles = 32 - count_leading_zeros(dip->mask);
// center based on the number of switches
/* center based on the number of switches */
x1 += (x2 - x1 - numtoggles * switch_field_width) / 2;
// draw the dip switch name
/* draw the dip switch name */
ui().draw_text_full( container,
dip->name,
0,
@ -699,23 +700,23 @@ void menu_settings_dip_switches::custom_render_one(float x1, float y1, float x2,
nullptr ,
nullptr);
// compute top and bottom for on and off positions
/* compute top and bottom for on and off positions */
switch_toggle_gap = ((DIP_SWITCH_HEIGHT/2) - SINGLE_TOGGLE_SWITCH_HEIGHT)/2;
y1_off = y1 + UI_LINE_WIDTH + switch_toggle_gap;
y1_on = y1 + DIP_SWITCH_HEIGHT/2 + switch_toggle_gap;
// iterate over toggles
/* iterate over toggles */
for (toggle = 0; toggle < numtoggles; toggle++)
{
float innerx1;
// first outline the switch
/* first outline the switch */
ui().draw_outlined_box(container, x1, y1, x1 + switch_field_width, y2, UI_BACKGROUND_COLOR);
// compute x1/x2 for the inner filled in switch
/* compute x1/x2 for the inner filled in switch */
innerx1 = x1 + (switch_field_width - switch_width) / 2;
// see if the switch is actually used
/* see if the switch is actually used */
if (dip->mask & (1 << toggle))
{
float innery1 = (dip->state & (1 << toggle)) ? y1_on : y1_off;
@ -730,7 +731,7 @@ void menu_settings_dip_switches::custom_render_one(float x1, float y1, float x2,
PRIMFLAG_BLENDMODE(BLENDMODE_ALPHA));
}
// advance to the next switch
/* advance to the next switch */
x1 += switch_field_width;
}
}
@ -742,45 +743,45 @@ void menu_settings_dip_switches::custom_render_one(float x1, float y1, float x2,
void menu_analog::handle()
{
// process the menu
auto menu_event = process(PROCESS_LR_REPEAT);
/* process the menu */
const event *menu_event = process(PROCESS_LR_REPEAT);
// handle events
/* handle events */
if (menu_event != nullptr && menu_event->itemref != nullptr)
{
auto data = (analog_item_data *)menu_event->itemref;
auto newval = data->cur;
analog_item_data *data = (analog_item_data *)menu_event->itemref;
int newval = data->cur;
switch (menu_event->iptkey)
{
// if selected, reset to default value
/* if selected, reset to default value */
case IPT_UI_SELECT:
newval = data->defvalue;
break;
// left decrements
/* left decrements */
case IPT_UI_LEFT:
newval -= machine().input().code_pressed(KEYCODE_LSHIFT) ? 10 : 1;
break;
// right increments
/* right increments */
case IPT_UI_RIGHT:
newval += machine().input().code_pressed(KEYCODE_LSHIFT) ? 10 : 1;
break;
}
// clamp to range
/* clamp to range */
if (newval < data->min)
newval = data->min;
if (newval > data->max)
newval = data->max;
// if things changed, update
/* if things changed, update */
if (newval != data->cur)
{
ioport_field::user_settings settings;
// get the settings and set the new value
/* get the settings and set the new value */
data->field->get_user_settings(settings);
switch (data->type)
{
@ -791,7 +792,7 @@ void menu_analog::handle()
}
data->field->set_user_settings(settings);
// rebuild the menu
/* rebuild the menu */
reset(reset_options::REMEMBER_POSITION);
}
}
@ -812,7 +813,7 @@ void menu_analog::populate()
std::string prev_owner;
bool first_entry = true;
// loop over input ports and add the items
/* loop over input ports and add the items */
for (auto &port : machine().ioport().ports())
for (ioport_field &field : port.second->fields())
if (field.is_analog() && field.enabled())
@ -821,7 +822,7 @@ void menu_analog::populate()
int use_autocenter = false;
int type;
// based on the type, determine if we enable autocenter
/* based on the type, determine if we enable autocenter */
switch (field.type())
{
case IPT_POSITIONAL:
@ -844,10 +845,10 @@ void menu_analog::populate()
break;
}
// get the user settings
/* get the user settings */
field.get_user_settings(settings);
// iterate over types
/* iterate over types */
for (type = 0; type < ANALOG_ITEM_COUNT; type++)
if (type != ANALOG_ITEM_CENTERSPEED || use_autocenter)
{
@ -865,12 +866,12 @@ void menu_analog::populate()
prev_owner.assign(field.device().tag());
}
// allocate a data item for tracking what this menu item refers to
/* allocate a data item for tracking what this menu item refers to */
data = (analog_item_data *)m_pool_alloc(sizeof(*data));
data->field = &field;
data->type = type;
// determine the properties of this item
/* determine the properties of this item */
switch (type)
{
default:
@ -911,13 +912,13 @@ void menu_analog::populate()
break;
}
// put on arrows
/* put on arrows */
if (data->cur > data->min)
flags |= FLAG_LEFT_ARROW;
if (data->cur < data->max)
flags |= FLAG_RIGHT_ARROW;
// append a menu item
/* append a menu item */
item_append(std::move(text), std::move(subtext), flags, data);
}
}

View File

@ -42,18 +42,18 @@ protected:
INPUT_TYPE_TOTAL = INPUT_TYPE_ANALOG + SEQ_TYPE_TOTAL
};
// internal input menu item data
/* internal input menu item data */
struct input_item_data
{
input_item_data * next; // pointer to next item in the list
const void * ref; // reference to type description for global inputs or field for game inputs
input_seq_type seqtype; // sequence type
input_seq seq; // copy of the live sequence
const input_seq * defseq; // pointer to the default sequence
const char * name; // pointer to the base name of the item
const char * owner_name; // pointer to the name of the owner of the item
UINT32 sortorder; // sorting information
UINT8 type; // type of port
input_item_data * next; /* pointer to next item in the list */
const void * ref; /* reference to type description for global inputs or field for game inputs */
input_seq_type seqtype; /* sequence type */
input_seq seq; /* copy of the live sequence */
const input_seq * defseq; /* pointer to the default sequence */
const char * name; /* pointer to the base name of the item */
const char * owner_name; /* pointer to the name of the owner of the item */
UINT32 sortorder; /* sorting information */
UINT8 type; /* type of port */
};
void populate_and_sort(struct input_item_data *itemlist);
@ -105,7 +105,7 @@ public:
virtual void handle() override;
protected:
// DIP switch descriptor
/* DIP switch descriptor */
struct dip_descriptor
{
dip_descriptor * next;
@ -154,7 +154,7 @@ private:
ANALOG_ITEM_COUNT
};
// internal analog menu item data
/* internal analog menu item data */
struct analog_item_data {
ioport_field *field;
int type;

View File

@ -50,12 +50,12 @@ menu_main::menu_main(mame_ui_manager &mui, render_container *container) : menu(m
void menu_main::populate()
{
// add input menu items
/* add input menu items */
item_append(_("Input (general)"), "", 0, (void *)INPUT_GROUPS);
item_append(_("Input (this Machine)"), "", 0, (void *)INPUT_SPECIFIC);
// add optional input-related menus
/* add optional input-related menus */
if (machine().ioport().has_analog())
item_append(_("Analog Controls"), "", 0, (void *)ANALOG);
if (machine().ioport().has_dips())
@ -65,27 +65,27 @@ void menu_main::populate()
item_append(_("Machine Configuration"), "", 0, (void *)SETTINGS_DRIVER_CONFIG);
}
// add bookkeeping menu
/* add bookkeeping menu */
item_append(_("Bookkeeping Info"), "", 0, (void *)BOOKKEEPING);
// add game info menu
/* add game info menu */
item_append(_("Machine Information"), "", 0, (void *)GAME_INFO);
for (device_image_interface &image : image_interface_iterator(machine().root_device()))
{
if (image.user_loadable())
{
// add image info menu
/* add image info menu */
item_append(_("Image Information"), "", 0, (void *)IMAGE_MENU_IMAGE_INFO);
// add file manager menu
/* add file manager menu */
item_append(_("File Manager"), "", 0, (void *)IMAGE_MENU_FILE_MANAGER);
break;
}
}
// add tape control menu
/* add tape control menu */
if (cassette_device_iterator(machine().root_device()).first() != nullptr)
item_append(_("Tape Control"), "", 0, (void *)TAPE_CONTROL);
@ -95,33 +95,33 @@ void menu_main::populate()
if (machine().ioport().has_bioses())
item_append(_("Bios Selection"), "", 0, (void *)BIOS_SELECTION);
// add slot info menu
/* add slot info menu */
if (slot_interface_iterator(machine().root_device()).first() != nullptr)
item_append(_("Slot Devices"), "", 0, (void *)SLOT_DEVICES);
// add Barcode reader menu
/* add Barcode reader menu */
if (barcode_reader_device_iterator(machine().root_device()).first() != nullptr)
item_append(_("Barcode Reader"), "", 0, (void *)BARCODE_READ);
// add network info menu
/* add network info menu */
if (network_interface_iterator(machine().root_device()).first() != nullptr)
item_append(_("Network Devices"), "", 0, (void*)NETWORK_DEVICES);
// add keyboard mode menu
/* add keyboard mode menu */
if (machine().ioport().has_keyboard() && machine().ioport().natkeyboard().can_post())
item_append(_("Keyboard Mode"), "", 0, (void *)KEYBOARD_MODE);
// add sliders menu
/* add sliders menu */
item_append(_("Slider Controls"), "", 0, (void *)SLIDERS);
// add video options menu
/* add video options menu */
item_append(_("Video Options"), "", 0, (machine().render().target_by_index(1) != nullptr) ? (void *)VIDEO_TARGETS : (void *)VIDEO_OPTIONS);
// add crosshair options menu
/* add crosshair options menu */
if (machine().crosshair().get_usage())
item_append(_("Crosshair Options"), "", 0, (void *)CROSSHAIR);
// add cheat menu
/* add cheat menu */
if (machine().options().cheat())
item_append(_("Cheat"), "", 0, (void *)CHEAT);
@ -134,7 +134,7 @@ void menu_main::populate()
item_append(menu_item_type::SEPARATOR);
// add favorite menu
/* add favorite menu */
if (!mame_machine_manager::instance()->favorite().isgame_favorite())
item_append(_("Add To Favorites"), "", 0, (void *)ADD_FAVORITE);
else
@ -144,7 +144,7 @@ void menu_main::populate()
// item_append(_("Quit from Machine"), nullptr, 0, (void *)QUIT_GAME);
// add reset and exit menus
/* add reset and exit menus */
item_append(_("Select New Machine"), "", 0, (void *)SELECT_GAME);
}
@ -158,7 +158,7 @@ menu_main::~menu_main()
void menu_main::handle()
{
// process the menu
/* process the menu */
const event *menu_event = process(0);
if (menu_event != nullptr && menu_event->iptkey == IPT_UI_SELECT) {
switch((long long)(menu_event->itemref)) {

View File

@ -38,7 +38,7 @@ menu_keyboard_mode::menu_keyboard_mode(mame_ui_manager &mui, render_container *c
void menu_keyboard_mode::populate()
{
auto natural = ui().use_natural_keyboard();
bool natural = ui().use_natural_keyboard();
item_append(_("Keyboard Mode:"), natural ? _("Natural") : _("Emulated"), natural ? FLAG_LEFT_ARROW : FLAG_RIGHT_ARROW, nullptr);
}
@ -48,19 +48,22 @@ menu_keyboard_mode::~menu_keyboard_mode()
void menu_keyboard_mode::handle()
{
auto natural = ui().use_natural_keyboard();
bool natural = ui().use_natural_keyboard();
// process the menu
auto menu_event = process(0);
/* process the menu */
const event *menu_event = process(0);
if (menu_event != nullptr)
{
if (menu_event->iptkey == IPT_UI_LEFT || menu_event->iptkey == IPT_UI_RIGHT)
{
ui().set_use_natural_keyboard(natural ^ true);
reset(reset_options::REMEMBER_REF);
}
}
}
/*-------------------------------------------------
menu_bios_selection - populates the main
bios selection menu
@ -72,17 +75,22 @@ menu_bios_selection::menu_bios_selection(mame_ui_manager &mui, render_container
void menu_bios_selection::populate()
{
// cycle through all devices for this system
/* cycle through all devices for this system */
for (device_t &device : device_iterator(machine().root_device()))
{
if (device.rom_region())
{
const char *val = "default";
for (auto rom = device.rom_region(); !ROMENTRY_ISEND(rom); ++rom)
for (const rom_entry *rom = device.rom_region(); !ROMENTRY_ISEND(rom); rom++)
{
if (ROMENTRY_ISSYSTEM_BIOS(rom) && ROM_GETBIOSFLAGS(rom) == device.system_bios())
{
val = ROM_GETHASHDATA(rom);
}
}
item_append(device.owner() == nullptr ? "driver" : device.tag()+1, val, FLAG_LEFT_ARROW | FLAG_RIGHT_ARROW, (void *)&device);
}
}
item_append(menu_item_type::SEPARATOR);
item_append(_("Reset"), "", 0, (void *)1);
@ -98,8 +106,8 @@ menu_bios_selection::~menu_bios_selection()
void menu_bios_selection::handle()
{
// process the menu
auto menu_event = process(0);
/* process the menu */
const event *menu_event = process(0);
if (menu_event != nullptr && menu_event->itemref != nullptr)
{
@ -107,26 +115,23 @@ void menu_bios_selection::handle()
machine().schedule_hard_reset();
else if (menu_event->iptkey == IPT_UI_LEFT || menu_event->iptkey == IPT_UI_RIGHT)
{
auto dev = (device_t *)menu_event->itemref;
device_t *dev = (device_t *)menu_event->itemref;
int cnt = 0;
for (auto rom = dev->rom_region(); !ROMENTRY_ISEND(rom); ++rom)
if (ROMENTRY_ISSYSTEM_BIOS(rom))
cnt++;
int val = dev->system_bios() + ((menu_event->iptkey == IPT_UI_LEFT) ? -1 : +1);
if (val < 1) val = cnt;
if (val > cnt) val = 1;
dev->set_system_bios(val);
if (strcmp(dev->tag(), ":") == 0)
for (const rom_entry *rom = dev->rom_region(); !ROMENTRY_ISEND(rom); rom++)
{
std::string error;
machine().options().set_value("bios", val - 1, OPTION_PRIORITY_CMDLINE, error);
assert(error.empty());
if (ROMENTRY_ISSYSTEM_BIOS(rom)) cnt ++;
}
else
{
int val = dev->system_bios() + ((menu_event->iptkey == IPT_UI_LEFT) ? -1 : +1);
if (val<1) val=cnt;
if (val>cnt) val=1;
dev->set_system_bios(val);
if (strcmp(dev->tag(),":")==0) {
std::string error;
std::string value = string_format("%s,bios=%d", machine().options().main_value(dev->owner()->tag() + 1), val - 1);
machine().options().set_value("bios", val-1, OPTION_PRIORITY_CMDLINE, error);
assert(error.empty());
} else {
std::string error;
std::string value = string_format("%s,bios=%d", machine().options().main_value(dev->owner()->tag()+1), val-1);
machine().options().set_value(dev->owner()->tag()+1, value.c_str(), OPTION_PRIORITY_CMDLINE, error);
assert(error.empty());
}
@ -152,17 +157,18 @@ menu_network_devices::~menu_network_devices()
void menu_network_devices::populate()
{
// cycle through all devices for this system
/* cycle through all devices for this system */
for (device_network_interface &network : network_interface_iterator(machine().root_device()))
{
auto curr = network.get_interface();
int curr = network.get_interface();
const char *title = nullptr;
for(auto &entry : get_netdev_list())
if(entry->id == curr)
{
{
if(entry->id==curr) {
title = entry->description;
break;
}
}
item_append(network.device().tag(), (title) ? title : "------", FLAG_LEFT_ARROW | FLAG_RIGHT_ARROW, (void *)network);
}
@ -174,20 +180,20 @@ void menu_network_devices::populate()
void menu_network_devices::handle()
{
// process the menu
auto menu_event = process(0);
/* process the menu */
const event *menu_event = process(0);
if (menu_event != nullptr && menu_event->itemref != nullptr)
if (menu_event->iptkey == IPT_UI_LEFT || menu_event->iptkey == IPT_UI_RIGHT)
{
auto network = (device_network_interface *)menu_event->itemref;
{
if (menu_event->iptkey == IPT_UI_LEFT || menu_event->iptkey == IPT_UI_RIGHT) {
device_network_interface *network = (device_network_interface *)menu_event->itemref;
int curr = network->get_interface();
(menu_event->iptkey == IPT_UI_LEFT) ? curr-- : curr++;
if (curr == -2)
curr = netdev_count() - 1;
if (menu_event->iptkey == IPT_UI_LEFT) curr--; else curr++;
if (curr==-2) curr = netdev_count() - 1;
network->set_interface(curr);
reset(reset_options::REMEMBER_REF);
}
}
}
@ -200,7 +206,7 @@ void menu_bookkeeping::handle()
{
attotime curtime;
// if the time has rolled over another second, regenerate
/* if the time has rolled over another second, regenerate */
curtime = machine().time();
if (prevtime.seconds() != curtime.seconds())
{
@ -209,7 +215,7 @@ void menu_bookkeeping::handle()
populate();
}
// process the menu
/* process the menu */
process(0);
}
@ -228,27 +234,28 @@ menu_bookkeeping::~menu_bookkeeping()
void menu_bookkeeping::populate()
{
auto tickets = machine().bookkeeping().get_dispensed_tickets();
int tickets = machine().bookkeeping().get_dispensed_tickets();
std::ostringstream tempstring;
int ctrnum;
// show total time first
/* show total time first */
if (prevtime.seconds() >= (60 * 60))
util::stream_format(tempstring, _("Uptime: %1$d:%2$02d:%3$02d\n\n"), prevtime.seconds() / (60 * 60), (prevtime.seconds() / 60) % 60, prevtime.seconds() % 60);
else
util::stream_format(tempstring, _("Uptime: %1$d:%2$02d\n\n"), (prevtime.seconds() / 60) % 60, prevtime.seconds() % 60);
// show tickets at the top
/* show tickets at the top */
if (tickets > 0)
util::stream_format(tempstring, _("Tickets dispensed: %1$d\n\n"), tickets);
// loop over coin counters
for (int ctrnum = 0; ctrnum < COIN_COUNTERS; ++ctrnum)
/* loop over coin counters */
for (ctrnum = 0; ctrnum < COIN_COUNTERS; ctrnum++)
{
auto count = machine().bookkeeping().coin_counter_get_count(ctrnum);
int count = machine().bookkeeping().coin_counter_get_count(ctrnum);
// display the coin counter number
// display how many coins
// display whether or not we are locked out
/* display the coin counter number */
/* display how many coins */
/* display whether or not we are locked out */
util::stream_format(tempstring,
(count == 0) ? _("Coin %1$c: NA%3$s\n") : _("Coin %1$c: %2$d%3$s\n"),
ctrnum + 'A',
@ -256,7 +263,7 @@ void menu_bookkeeping::populate()
machine().bookkeeping().coin_lockout_get_state(ctrnum) ? _(" (locked)") : "");
}
// append the single item
/* append the single item */
item_append(tempstring.str(), "", FLAG_MULTILINE, nullptr);
}
@ -267,58 +274,58 @@ void menu_bookkeeping::populate()
void menu_crosshair::handle()
{
// process the menu
auto menu_event = process(PROCESS_LR_REPEAT);
/* process the menu */
const event *menu_event = process(PROCESS_LR_REPEAT);
// handle events
/* handle events */
if (menu_event != nullptr && menu_event->itemref != nullptr)
{
crosshair_user_settings settings;
auto data = (crosshair_item_data *)menu_event->itemref;
auto changed = false;
crosshair_item_data *data = (crosshair_item_data *)menu_event->itemref;
bool changed = false;
//int set_def = false;
auto newval = data->cur;
int newval = data->cur;
// retreive the user settings
/* retreive the user settings */
machine().crosshair().get_user_settings(data->player, &settings);
switch (menu_event->iptkey)
{
// if selected, reset to default value
/* if selected, reset to default value */
case IPT_UI_SELECT:
newval = data->defvalue;
//set_def = true;
break;
// left decrements
/* left decrements */
case IPT_UI_LEFT:
newval -= machine().input().code_pressed(KEYCODE_LSHIFT) ? 10 : 1;
break;
// right increments
/* right increments */
case IPT_UI_RIGHT:
newval += machine().input().code_pressed(KEYCODE_LSHIFT) ? 10 : 1;
break;
}
// clamp to range
/* clamp to range */
if (newval < data->min)
newval = data->min;
if (newval > data->max)
newval = data->max;
// if things changed, update
/* if things changed, update */
if (newval != data->cur)
{
switch (data->type)
{
// visibility state
/* visibility state */
case CROSSHAIR_ITEM_VIS:
settings.mode = newval;
changed = true;
break;
// auto time
/* auto time */
case CROSSHAIR_ITEM_AUTO_TIME:
settings.auto_time = newval;
changed = true;
@ -326,13 +333,13 @@ void menu_crosshair::handle()
}
}
// crosshair graphic name
/* crosshair graphic name */
if (data->type == CROSSHAIR_ITEM_PIC)
{
switch (menu_event->iptkey)
{
case IPT_UI_SELECT:
// clear the name string to reset to default crosshair
/* clear the name string to reset to default crosshair */
settings.name[0] = 0;
changed = true;
break;
@ -351,10 +358,10 @@ void menu_crosshair::handle()
if (changed)
{
// save the user settings
/* save the user settings */
machine().crosshair().set_user_settings(data->player, &settings);
// rebuild the menu
/* rebuild the menu */
reset(reset_options::REMEMBER_POSITION);
}
}
@ -379,22 +386,22 @@ void menu_crosshair::populate()
UINT8 use_auto = false;
UINT32 flags = 0;
// loop over player and add the manual items
/* loop over player and add the manual items */
for (player = 0; player < MAX_PLAYERS; player++)
{
// get the user settings
/* get the user settings */
machine().crosshair().get_user_settings(player, &settings);
// add menu items for usable crosshairs
/* add menu items for usable crosshairs */
if (settings.used)
{
// Make sure to keep these matched to the CROSSHAIR_VISIBILITY_xxx types
/* Make sure to keep these matched to the CROSSHAIR_VISIBILITY_xxx types */
static const char *const vis_text[] = { "Off", "On", "Auto" };
// track if we need the auto time menu
/* track if we need the auto time menu */
if (settings.mode == CROSSHAIR_VISIBILITY_AUTO) use_auto = true;
// CROSSHAIR_ITEM_VIS - allocate a data item and fill it
/* CROSSHAIR_ITEM_VIS - allocate a data item and fill it */
data = (crosshair_item_data *)m_pool_alloc(sizeof(*data));
data->type = CROSSHAIR_ITEM_VIS;
data->player = player;
@ -403,95 +410,95 @@ void menu_crosshair::populate()
data->defvalue = CROSSHAIR_VISIBILITY_DEFAULT;
data->cur = settings.mode;
// put on arrows
/* put on arrows */
if (data->cur > data->min)
flags |= FLAG_LEFT_ARROW;
if (data->cur < data->max)
flags |= FLAG_RIGHT_ARROW;
// add CROSSHAIR_ITEM_VIS menu
/* add CROSSHAIR_ITEM_VIS menu */
sprintf(temp_text, "P%d Visibility", player + 1);
item_append(temp_text, vis_text[settings.mode], flags, data);
// CROSSHAIR_ITEM_PIC - allocate a data item and fill it
/* CROSSHAIR_ITEM_PIC - allocate a data item and fill it */
data = (crosshair_item_data *)m_pool_alloc(sizeof(*data));
data->type = CROSSHAIR_ITEM_PIC;
data->player = player;
data->last_name[0] = 0;
// other data item not used by this menu
/* other data item not used by this menu */
// search for crosshair graphics
/* search for crosshair graphics */
// open a path to the crosshairs
/* open a path to the crosshairs */
file_enumerator path(machine().options().crosshair_path());
const osd::directory::entry *dir;
// reset search flags
/* reset search flags */
bool using_default = false;
bool finished = false;
bool found = false;
// if we are using the default, then we just need to find the first in the list
/* if we are using the default, then we just need to find the first in the list */
if (*(settings.name) == 0)
using_default = true;
// look for the current name, then remember the name before
// and find the next name
/* look for the current name, then remember the name before */
/* and find the next name */
while (((dir = path.next()) != nullptr) && !finished)
{
int length = strlen(dir->name);
// look for files ending in .png with a name not larger then 9 chars
/* look for files ending in .png with a name not larger then 9 chars*/
if ((length > 4) && (length <= CROSSHAIR_PIC_NAME_LENGTH + 4) && core_filename_ends_with(dir->name, ".png"))
{
// remove .png from length
/* remove .png from length */
length -= 4;
if (found || using_default)
{
// get the next name
/* get the next name */
strncpy(data->next_name, dir->name, length);
data->next_name[length] = 0;
finished = true;
}
else if (!strncmp(dir->name, settings.name, length))
{
// we found the current name
// so loop once more to find the next name
/* we found the current name */
/* so loop once more to find the next name */
found = true;
}
else
// remember last name
// we will do it here in case files get added to the directory
/* remember last name */
/* we will do it here in case files get added to the directory */
{
strncpy(data->last_name, dir->name, length);
data->last_name[length] = 0;
}
}
}
// if name not found then next item is DEFAULT
/* if name not found then next item is DEFAULT */
if (!found && !using_default)
{
data->next_name[0] = 0;
finished = true;
}
// setup the selection flags
/* setup the selection flags */
flags = 0;
if (finished)
flags |= FLAG_RIGHT_ARROW;
if (found)
flags |= FLAG_LEFT_ARROW;
// add CROSSHAIR_ITEM_PIC menu
/* add CROSSHAIR_ITEM_PIC menu */
sprintf(temp_text, "P%d Crosshair", player + 1);
item_append(temp_text, using_default ? "DEFAULT" : settings.name, flags, data);
}
}
if (use_auto)
{
// any player can be used to get the autotime
/* any player can be used to get the autotime */
machine().crosshair().get_user_settings(0, &settings);
// CROSSHAIR_ITEM_AUTO_TIME - allocate a data item and fill it
/* CROSSHAIR_ITEM_AUTO_TIME - allocate a data item and fill it */
data = (crosshair_item_data *)m_pool_alloc(sizeof(*data));
data->type = CROSSHAIR_ITEM_AUTO_TIME;
data->min = CROSSHAIR_VISIBILITY_AUTOTIME_MIN;
@ -499,18 +506,18 @@ void menu_crosshair::populate()
data->defvalue = CROSSHAIR_VISIBILITY_AUTOTIME_DEFAULT;
data->cur = settings.auto_time;
// put on arrows in visible menu
/* put on arrows in visible menu */
if (data->cur > data->min)
flags |= FLAG_LEFT_ARROW;
if (data->cur < data->max)
flags |= FLAG_RIGHT_ARROW;
// add CROSSHAIR_ITEM_AUTO_TIME menu
/* add CROSSHAIR_ITEM_AUTO_TIME menu */
sprintf(temp_text, "%d", settings.auto_time);
item_append(_("Visible Delay"), temp_text, flags, data);
}
// else
// // leave a blank filler line when not in auto time so size does not rescale
// /* leave a blank filler line when not in auto time so size does not rescale */
// item_append("", "", nullptr, nullptr);
}
@ -537,10 +544,10 @@ void menu_quit_game::populate()
void menu_quit_game::handle()
{
// request a reset
/* request a reset */
machine().schedule_exit();
// reset the menu stack
/* reset the menu stack */
menu::stack_reset(machine());
}
@ -565,7 +572,7 @@ void menu_export::handle()
{
// process the menu
process_parent();
auto menu_event = process(PROCESS_NOIMAGE);
const event *menu_event = process(PROCESS_NOIMAGE);
if (menu_event != nullptr && menu_event->itemref != nullptr)
{
switch ((FPTR)menu_event->itemref)
@ -580,7 +587,7 @@ void menu_export::handle()
if (infile.open(filename.c_str(), ".xml") == osd_file::error::NONE)
for (int seq = 0; ; ++seq)
{
auto seqtext = string_format("%s_%04d", filename, seq);
std::string seqtext = string_format("%s_%04d", filename, seq);
if (infile.open(seqtext.c_str(), ".xml") != osd_file::error::NONE)
{
filename = seqtext;
@ -620,7 +627,7 @@ void menu_export::handle()
if (infile.open(filename.c_str(), ".txt") == osd_file::error::NONE)
for (int seq = 0; ; ++seq)
{
auto seqtext = string_format("%s_%04d", filename, seq);
std::string seqtext = string_format("%s_%04d", filename, seq);
if (infile.open(seqtext.c_str(), ".txt") != osd_file::error::NONE)
{
filename = seqtext;
@ -700,7 +707,7 @@ void menu_machine_configure::handle()
{
// process the menu
process_parent();
auto menu_event = process((PROCESS_NOIMAGE | PROCESS_LR_REPEAT), x0, y0);
const event *menu_event = process(PROCESS_NOIMAGE, x0, y0);
if (menu_event != nullptr && menu_event->itemref != nullptr)
{
if (menu_event->iptkey == IPT_UI_SELECT)
@ -840,19 +847,19 @@ void menu_machine_configure::setup_bios()
std::string specbios(m_opts.bios());
std::string default_name;
for (auto rom = m_drv->rom; !ROMENTRY_ISEND(rom); ++rom)
for (const rom_entry *rom = m_drv->rom; !ROMENTRY_ISEND(rom); ++rom)
if (ROMENTRY_ISDEFAULT_BIOS(rom))
default_name = ROM_GETNAME(rom);
int bios_count = 0;
for (auto rom = m_drv->rom; !ROMENTRY_ISEND(rom); ++rom)
for (const rom_entry *rom = m_drv->rom; !ROMENTRY_ISEND(rom); ++rom)
{
if (ROMENTRY_ISSYSTEM_BIOS(rom))
{
std::string name(ROM_GETHASHDATA(rom));
std::string biosname(ROM_GETNAME(rom));
int bios_flags = ROM_GETBIOSFLAGS(rom);
auto bios_number = std::to_string(bios_flags - 1);
std::string bios_number = std::to_string(bios_flags - 1);
// check biosnumber and name
if (bios_number == specbios || biosname == specbios)
@ -863,11 +870,9 @@ void menu_machine_configure::setup_bios()
name.append(_(" (default)"));
if (specbios == "default")
m_curbios = bios_count;
m_bios.emplace(m_bios.begin(), name, bios_flags - 1);
}
else
m_bios.emplace_back(name, bios_flags - 1);
m_bios.emplace_back(name, bios_flags - 1);
bios_count++;
}
}
@ -903,15 +908,15 @@ menu_plugins_configure::~menu_plugins_configure()
void menu_plugins_configure::handle()
{
// process the menu
auto changed = false;
auto plugins = mame_machine_manager::instance()->plugins();
bool changed = false;
plugin_options& plugins = mame_machine_manager::instance()->plugins();
process_parent();
auto menu_event = process(PROCESS_NOIMAGE);
const event *menu_event = process(PROCESS_NOIMAGE);
if (menu_event != nullptr && menu_event->itemref != nullptr)
{
if (menu_event->iptkey == IPT_UI_LEFT || menu_event->iptkey == IPT_UI_RIGHT || menu_event->iptkey == IPT_UI_SELECT)
{
auto oldval = plugins.int_value((const char*)menu_event->itemref);
int oldval = plugins.int_value((const char*)menu_event->itemref);
std::string error_string;
plugins.set_value((const char*)menu_event->itemref, oldval == 1 ? 0 : 1, OPTION_PRIORITY_CMDLINE, error_string);
changed = true;
@ -927,16 +932,17 @@ void menu_plugins_configure::handle()
void menu_plugins_configure::populate()
{
auto plugins = mame_machine_manager::instance()->plugins();
plugin_options& plugins = mame_machine_manager::instance()->plugins();
for (auto &curentry : plugins)
{
if (!curentry.is_header())
{
auto enabled = std::string(curentry.value()) == "1";
item_append(curentry.description(), enabled ? _("On") : _("Off"),
enabled ? FLAG_RIGHT_ARROW : FLAG_LEFT_ARROW, (void *)(FPTR)curentry.name());
}
}
item_append(menu_item_type::SEPARATOR);
customtop = ui().get_line_height() + (3.0f * UI_BOX_TB_BORDER);
}

View File

@ -31,9 +31,9 @@ namespace ui {
// ctor
//-------------------------------------------------
menu_game_options::menu_game_options(mame_ui_manager &mui, render_container *container)
: menu(mui, container), m_main(main_filters::actual)
menu_game_options::menu_game_options(mame_ui_manager &mui, render_container *container) : menu(mui, container)
{
m_main = main_filters::actual;
}
//-------------------------------------------------
@ -54,7 +54,7 @@ menu_game_options::~menu_game_options()
void menu_game_options::handle()
{
auto changed = false;
bool changed = false;
// process the menu
const event *menu_event;
@ -85,7 +85,7 @@ void menu_game_options::handle()
for (int index = 0; index < total; ++index)
s_sel[index] = main_filters::text[index];
menu::stack_push<menu_selector>(ui(), container, std::move(s_sel), m_main);
menu::stack_push<menu_selector>(ui(), container, s_sel, m_main);
}
break;
}
@ -110,7 +110,7 @@ void menu_game_options::handle()
for (size_t index = 0; index < total; ++index)
s_sel[index] = ifile.get_file(index);
menu::stack_push<menu_selector>(ui(), container, std::move(s_sel), ifile.cur_file(), menu_selector::INIFILE);
menu::stack_push<menu_selector>(ui(), container, s_sel, ifile.cur_file(), menu_selector::INIFILE);
}
break;
}
@ -128,13 +128,13 @@ void menu_game_options::handle()
}
else if (menu_event->iptkey == IPT_UI_SELECT)
{
auto ifile = mame_machine_manager::instance()->inifile();
auto total = ifile.cat_total();
inifile_manager &ifile = mame_machine_manager::instance()->inifile();
int total = ifile.cat_total();
std::vector<std::string> s_sel(total);
for (size_t index = 0; index < total; ++index)
for (int index = 0; index < total; ++index)
s_sel[index] = ifile.get_category(index);
menu::stack_push<menu_selector>(ui(), container, std::move(s_sel), ifile.cur_cat(), menu_selector::CATEGORY);
menu::stack_push<menu_selector>(ui(), container, s_sel, ifile.cur_cat(), menu_selector::CATEGORY);
}
break;
}
@ -228,13 +228,13 @@ void menu_game_options::populate()
std::string fbuff;
// add filter item
auto arrow_flags = get_arrow_flags((int)FILTER_FIRST, (int)FILTER_LAST, m_main);
UINT32 arrow_flags = get_arrow_flags((int)FILTER_FIRST, (int)FILTER_LAST, m_main);
item_append(_("Filter"), main_filters::text[m_main], arrow_flags, (void *)(FPTR)FILTER_MENU);
// add category subitem
if (m_main == FILTER_CATEGORY && mame_machine_manager::instance()->inifile().total() > 0)
{
auto inif = mame_machine_manager::instance()->inifile();
inifile_manager &inif = mame_machine_manager::instance()->inifile();
arrow_flags = get_arrow_flags(0, inif.total() - 1, inif.cur_file());
fbuff = _(" ^!File");
@ -297,7 +297,7 @@ void menu_game_options::custom_render(void *selectedref, float top, float bottom
{
float width;
ui().draw_text_full(container, _("Settings"), 0.0f, 0.0f, 1.0f, ui::text_layout::CENTER, ui::text_layout::TRUNCATE,
mame_ui_manager::NONE, rgb_t::white, rgb_t::black, &width, nullptr);
mame_ui_manager::NONE, rgb_t::white, rgb_t::black, &width, nullptr);
width += 2 * UI_BOX_LR_BORDER;
float maxwidth = MAX(origx2 - origx1, width);
@ -317,7 +317,8 @@ void menu_game_options::custom_render(void *selectedref, float top, float bottom
// draw the text within it
ui().draw_text_full(container, _("Settings"), x1, y1, x2 - x1, ui::text_layout::CENTER, ui::text_layout::TRUNCATE,
mame_ui_manager::NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr);
mame_ui_manager::NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr);
}
} // namespace ui

View File

@ -22,14 +22,24 @@ namespace ui {
//-------------------------------------------------
menu_selector::menu_selector(mame_ui_manager &mui, render_container *container, std::vector<std::string> const &s_sel, UINT16 &s_actual, int category, int _hover)
: menu(mui, container), m_selector(s_actual), m_category(category), m_hover(_hover), m_first_pass(true), m_str_items(s_sel)
: menu(mui, container)
, m_selector(s_actual)
, m_category(category)
, m_hover(_hover)
, m_first_pass(true)
, m_str_items(s_sel)
{
m_search[0] = '\0';
m_searchlist[0] = nullptr;
}
menu_selector::menu_selector(mame_ui_manager &mui, render_container *container, std::vector<std::string> &&s_sel, UINT16 &s_actual, int category, int _hover)
: menu(mui, container), m_selector(s_actual), m_category(category), m_hover(_hover), m_first_pass(true), m_str_items(std::move(s_sel))
: menu(mui, container)
, m_selector(s_actual)
, m_category(category)
, m_hover(_hover)
, m_first_pass(true)
, m_str_items(std::move(s_sel))
{
m_search[0] = '\0';
m_searchlist[0] = nullptr;
@ -46,7 +56,7 @@ menu_selector::~menu_selector()
void menu_selector::handle()
{
// process the menu
auto menu_event = process(0);
const event *menu_event = process(0);
if (menu_event != nullptr && menu_event->itemref != nullptr)
{
@ -125,6 +135,7 @@ void menu_selector::populate()
if (m_search[0] != 0)
{
find_matches(m_search);
for (int curitem = 0; m_searchlist[curitem]; ++curitem)
item_append(*m_searchlist[curitem], "", 0, (void *)m_searchlist[curitem]);
}

View File

@ -180,6 +180,9 @@ void menu_select_game::handle()
if (m_prev_selected == nullptr)
m_prev_selected = item[0].ref;
bool check_filter = false;
bool enabled_dats = ui().options().enabled_dats();
// if i have to load datfile, performe an hard reset
if (ui_globals::reset)
{
@ -197,14 +200,11 @@ void menu_select_game::handle()
return;
}
auto check_filter = false;
auto enabled_dats = ui().options().enabled_dats();
// ignore pause keys by swallowing them before we process the menu
machine().ui_input().pressed(IPT_UI_PAUSE);
// process the menu
auto menu_event = process(PROCESS_LR_REPEAT);
const event *menu_event = process(PROCESS_LR_REPEAT);
if (menu_event && menu_event->itemref)
{
if (ui_error)
@ -257,7 +257,7 @@ void menu_select_game::handle()
// Infos
if (!isfavorite())
{
auto drv = (const game_driver *)menu_event->itemref;
const game_driver *drv = (const game_driver *)menu_event->itemref;
if ((FPTR)drv > skip_main_items && ui_globals::curdats_view > UI_FIRST_LOAD)
{
ui_globals::curdats_view--;
@ -266,7 +266,7 @@ void menu_select_game::handle()
}
else
{
auto drv = (ui_software_info *)menu_event->itemref;
ui_software_info *drv = (ui_software_info *)menu_event->itemref;
if (drv->startempty == 1 && ui_globals::curdats_view > UI_FIRST_LOAD)
{
ui_globals::curdats_view--;
@ -295,7 +295,7 @@ void menu_select_game::handle()
// Infos
if (!isfavorite())
{
auto drv = (const game_driver *)menu_event->itemref;
const game_driver *drv = (const game_driver *)menu_event->itemref;
if ((FPTR)drv > skip_main_items && ui_globals::curdats_view < UI_LAST_LOAD)
{
ui_globals::curdats_view++;
@ -304,7 +304,7 @@ void menu_select_game::handle()
}
else
{
auto drv = (ui_software_info *)menu_event->itemref;
ui_software_info *drv = (ui_software_info *)menu_event->itemref;
if (drv->startempty == 1 && ui_globals::curdats_view < UI_LAST_LOAD)
{
ui_globals::curdats_view++;
@ -349,14 +349,14 @@ void menu_select_game::handle()
// handle UI_DATS
if (!isfavorite())
{
auto driver = (const game_driver *)menu_event->itemref;
const game_driver *driver = (const game_driver *)menu_event->itemref;
if ((FPTR)driver > skip_main_items && mame_machine_manager::instance()->datfile().has_data(driver))
menu::stack_push<menu_dats_view>(ui(), container, driver);
}
else
{
auto ui_swinfo = (ui_software_info *)menu_event->itemref;
auto mdat = mame_machine_manager::instance()->datfile();
ui_software_info *ui_swinfo = (ui_software_info *)menu_event->itemref;
datfile_manager &mdat = mame_machine_manager::instance()->datfile();
if ((FPTR)ui_swinfo > skip_main_items)
{
@ -372,10 +372,10 @@ void menu_select_game::handle()
// handle UI_FAVORITES
if (!isfavorite())
{
auto driver = (const game_driver *)menu_event->itemref;
const game_driver *driver = (const game_driver *)menu_event->itemref;
if ((FPTR)driver > skip_main_items)
{
auto mfav = mame_machine_manager::instance()->favorite();
favorite_manager &mfav = mame_machine_manager::instance()->favorite();
if (!mfav.isgame_favorite(driver))
{
mfav.add_favorite_game(driver);
@ -391,7 +391,7 @@ void menu_select_game::handle()
}
else
{
auto swinfo = (ui_software_info *)menu_event->itemref;
ui_software_info *swinfo = (ui_software_info *)menu_event->itemref;
if ((FPTR)swinfo > skip_main_items)
{
machine().popmessage(_("%s\n removed from favorites list."), swinfo->longname.c_str());
@ -632,7 +632,7 @@ void menu_select_game::populate()
void menu_select_game::build_available_list()
{
auto m_total = driver_list::total();
int m_total = driver_list::total();
std::vector<bool> m_included(m_total, false);
// open a path to the ROMs and find them in the array
@ -651,7 +651,7 @@ void menu_select_game::build_available_list()
*dst++ = tolower((UINT8) * src);
*dst = 0;
auto drivnum = driver_list::find(drivername);
int drivnum = driver_list::find(drivername);
if (drivnum != -1 && !m_included[drivnum])
{
m_availsortedlist.push_back(&driver_list::driver(drivnum));
@ -667,8 +667,8 @@ void menu_select_game::build_available_list()
auto driver = &driver_list::driver(x);
if (!m_included[x] && driver != &GAME_NAME(___empty))
{
auto rom = driver->rom;
auto noroms = true;
const rom_entry *rom = driver->rom;
bool noroms = true;
// check NO-DUMP
for (; !ROMENTRY_ISEND(rom) && noroms == true; ++rom)
@ -754,9 +754,9 @@ void menu_select_game::custom_render(void *selectedref, float top, float bottom,
float width, maxwidth = origx2 - origx1;
std::string tempbuf[5];
rgb_t color = UI_BACKGROUND_COLOR;
auto isstar = false;
auto inifile = mame_machine_manager::instance()->inifile();
auto tbarspace = ui().get_line_height();
bool isstar = false;
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) )"),

View File

@ -125,16 +125,14 @@ bool has_multiple_bios(const game_driver *driver, s_bios &biosname)
// ctor
//-------------------------------------------------
menu_select_software::menu_select_software(mame_ui_manager &mui, render_container *container, const game_driver *driver)
: menu(mui, container)
menu_select_software::menu_select_software(mame_ui_manager &mui, render_container *container, const game_driver *driver) : menu(mui, container)
{
if (reselect_last::get())
reselect_last::set(false);
sw_filters::actual = 0;
highlight = 0;
m_has_empty_start = false;
m_searchlist.fill(nullptr);
m_driver = driver;
build_software_list();
load_sw_custom_filters();
@ -471,17 +469,16 @@ void menu_select_software::populate()
}
// iterate over entries
int curitem = 0;
for (auto & e : m_displaylist)
for (size_t curitem = 0; curitem < m_displaylist.size(); ++curitem)
{
if (reselect_last::software == "[Start empty]" && !reselect_last::driver.empty())
old_software = 0;
else if (e->shortname == reselect_last::software && e->listname == reselect_last::swlist)
else if (m_displaylist[curitem]->shortname == reselect_last::software && m_displaylist[curitem]->listname == reselect_last::swlist)
old_software = m_has_empty_start ? curitem + 1 : curitem;
item_append(e->longname, e->devicetype, e->parentname.empty() ? flags_ui : (FLAG_INVERT | flags_ui), (void *)e);
curitem++;
item_append(m_displaylist[curitem]->longname, m_displaylist[curitem]->devicetype,
m_displaylist[curitem]->parentname.empty() ? flags_ui : (FLAG_INVERT | flags_ui), (void *)m_displaylist[curitem]);
}
}
@ -489,7 +486,7 @@ void menu_select_software::populate()
{
find_matches(m_search, VISIBLE_GAMES_IN_SEARCH);
for (int curitem = 0; m_searchlist[curitem]; ++curitem)
for (int curitem = 0; m_searchlist[curitem] != nullptr; ++curitem)
item_append(m_searchlist[curitem]->longname, m_searchlist[curitem]->devicetype,
m_searchlist[curitem]->parentname.empty() ? flags_ui : (FLAG_INVERT | flags_ui),
(void *)m_searchlist[curitem]);
@ -506,6 +503,7 @@ void menu_select_software::populate()
selected = old_software;
top_line = selected - (ui_globals::visible_sw_lines / 2);
}
reselect_last::reset();
}
@ -587,7 +585,7 @@ void menu_select_software::build_software_list()
if (!m_swinfo[y].parentname.empty())
{
std::string lparent(m_swinfo[y].parentname);
auto found = false;
bool found = false;
// first scan backward
for (int x = y; x > 0; --x)
@ -661,13 +659,13 @@ void menu_select_software::custom_render(void *selectedref, float top, float bot
const game_driver *driver = nullptr;
float width;
std::string tempbuf[5], filtered;
auto color = UI_BACKGROUND_COLOR;
auto isstar = false;
rgb_t color = UI_BACKGROUND_COLOR;
bool isstar = false;
float tbarspace = ui().get_line_height();
float text_size = 1.0f;
// determine the text for the header
auto vis_item = (m_search[0] != 0) ? visible_items : (m_has_empty_start ? visible_items - 1 : visible_items);
int vis_item = (m_search[0] != 0) ? visible_items : (m_has_empty_start ? visible_items - 1 : visible_items);
tempbuf[0] = string_format(_("%1$s %2$s ( %3$d / %4$d software packages )"), emulator_info::get_appname(), bare_build_version, vis_item, m_swinfo.size() - 1);
tempbuf[1] = string_format(_("Driver: \"%1$s\" software list "), m_driver->description);
@ -883,8 +881,8 @@ void menu_select_software::custom_render(void *selectedref, float top, float bot
void menu_select_software::inkey_select(const event *menu_event)
{
auto ui_swinfo = (ui_software_info *)menu_event->itemref;
auto mopt = ui().options();
ui_software_info *ui_swinfo = (ui_software_info *)menu_event->itemref;
ui_options &mopt = ui().options();
if (ui_swinfo->startempty == 1)
{
@ -909,10 +907,10 @@ void menu_select_software::inkey_select(const event *menu_event)
driver_enumerator drivlist(machine().options(), *ui_swinfo->driver);
media_auditor auditor(drivlist);
drivlist.next();
auto swlist = software_list_device::find_by_name(drivlist.config(), ui_swinfo->listname.c_str());
auto swinfo = swlist->find(ui_swinfo->shortname.c_str());
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());
auto summary = auditor.audit_software(swlist->list_name(), swinfo, AUDIT_VALIDATE_FAST);
media_auditor::summary summary = auditor.audit_software(swlist->list_name(), swinfo, AUDIT_VALIDATE_FAST);
if (summary == media_auditor::CORRECT || summary == media_auditor::BEST_AVAILABLE || summary == media_auditor::NONE_NEEDED)
{
@ -1069,7 +1067,7 @@ void menu_select_software::load_sw_custom_filters()
// get number of filters
file.gets(buffer, MAX_CHAR_INFO);
auto pb = strchr(buffer, '=');
char *pb = strchr(buffer, '=');
sw_custfltr::numother = atoi(++pb) - 1;
// get main filter
@ -1086,8 +1084,8 @@ void menu_select_software::load_sw_custom_filters()
for (int x = 1; x <= sw_custfltr::numother; ++x)
{
file.gets(buffer, MAX_CHAR_INFO);
auto cb = strchr(buffer, '=') + 2;
for (int y = 0; y < sw_filters::length; ++y)
char *cb = strchr(buffer, '=') + 2;
for (int y = 0; y < sw_filters::length; y++)
{
if (!strncmp(cb, sw_filters::text[y], strlen(sw_filters::text[y])))
{
@ -1156,11 +1154,11 @@ std::string c_sw_region::getname(std::string &str)
{
std::string fullname(str);
strmakelower(fullname);
auto found = fullname.find("(");
size_t found = fullname.find("(");
if (found != std::string::npos)
{
auto ends = fullname.find_first_not_of("abcdefghijklmnopqrstuvwxyz", found + 1);
size_t ends = fullname.find_first_not_of("abcdefghijklmnopqrstuvwxyz", found + 1);
std::string temp(fullname.substr(found + 1, ends - found - 1));
for (auto & elem : region_lists)
@ -1200,7 +1198,7 @@ void c_sw_year::set(std::string &str)
void c_sw_publisher::set(std::string &str)
{
auto name = getname(str);
std::string name = getname(str);
if (std::find(ui.begin(), ui.end(), name) != ui.end())
return;
@ -1209,7 +1207,7 @@ void c_sw_publisher::set(std::string &str)
std::string c_sw_publisher::getname(std::string &str)
{
auto found = str.find("(");
size_t found = str.find("(");
if (found != std::string::npos)
return (str.substr(0, found - 1));
@ -1270,7 +1268,7 @@ void menu_select_software::build_list(std::vector<ui_software_info *> &s_drivers
case UI_SW_REGION:
{
auto name = m_filter.region.getname(s_driver->longname);
std::string name = m_filter.region.getname(s_driver->longname);
if(!name.empty() && name == filter_text)
m_displaylist.push_back(s_driver);
@ -1279,7 +1277,7 @@ void menu_select_software::build_list(std::vector<ui_software_info *> &s_drivers
case UI_SW_PUBLISHERS:
{
auto name = m_filter.publisher.getname(s_driver->publisher);
std::string name = m_filter.publisher.getname(s_driver->publisher);
if(!name.empty() && name == filter_text)
m_displaylist.push_back(s_driver);
@ -1400,8 +1398,8 @@ float menu_select_software::draw_left_panel(float x1, float y1, float x2, float
float l_height = ui().get_line_height();
float line_height = l_height * text_size;
float left_width = 0.0f;
auto text_lenght = sw_filters::length;
auto afilter = sw_filters::actual;
int text_lenght = sw_filters::length;
int afilter = sw_filters::actual;
int phover = HOVER_SW_FILTER_FIRST;
const char **text = sw_filters::text;
float sc = y2 - y1 - (2.0f * UI_BOX_TB_BORDER);
@ -1413,11 +1411,13 @@ float menu_select_software::draw_left_panel(float x1, float y1, float x2, float
line_height = l_height * text_size;
}
auto text_sign = ui().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
auto total_width = ui().get_string_width(text[x], text_size);
total_width = ui().get_string_width(text[x], text_size);
total_width += text_sign;
// track the maximum
@ -1498,7 +1498,7 @@ float menu_select_software::draw_left_panel(float x1, float y1, float x2, float
y2 = origy2;
float space = x2 - x1;
float lr_arrow_width = 0.4f * space * machine().render().ui_aspect();
auto fgcolor = UI_TEXT_COLOR;
rgb_t fgcolor = UI_TEXT_COLOR;
// set left-right arrows dimension
float ar_x0 = 0.5f * (x2 + x1) - 0.5f * lr_arrow_width;
@ -1521,7 +1521,7 @@ float menu_select_software::draw_left_panel(float x1, float y1, float x2, float
{
float space = x2 - x1;
float lr_arrow_width = 0.4f * space * machine().render().ui_aspect();
auto fgcolor = UI_TEXT_COLOR;
rgb_t fgcolor = UI_TEXT_COLOR;
// set left-right arrows dimension
float ar_x0 = 0.5f * (x2 + x1) - 0.5f * lr_arrow_width;

View File

@ -44,7 +44,7 @@ private:
s_filter m_filter;
int highlight;
std::array<ui_software_info *, VISIBLE_GAMES_IN_SEARCH + 1> m_searchlist;
ui_software_info *m_searchlist[VISIBLE_GAMES_IN_SEARCH + 1];
std::vector<ui_software_info *> m_displaylist, m_tmp, m_sortedlist;
std::vector<ui_software_info> m_swinfo;

View File

@ -33,7 +33,7 @@ public:
private:
// internal state
enum { VISIBLE_GAMES_IN_LIST = 15 };
bool m_error;
UINT8 m_error;
bool m_rerandomize;
char m_search[40];
int m_matchlist[VISIBLE_GAMES_IN_LIST];

View File

@ -153,10 +153,10 @@ menu_slot_devices::menu_slot_devices(mame_ui_manager &mui, render_container *con
void menu_slot_devices::populate()
{
// cycle through all devices for this system
/* cycle through all devices for this system */
for (device_slot_interface &slot : slot_interface_iterator(machine().root_device()))
{
// record the menu item
/* record the menu item */
const device_slot_option *option = slot_get_current_option(slot);
std::string opt_name;
if (option == nullptr)
@ -184,7 +184,7 @@ menu_slot_devices::~menu_slot_devices()
void menu_slot_devices::handle()
{
// process the menu
/* process the menu */
const event *menu_event = process(0);
if (menu_event != nullptr && menu_event->itemref != nullptr)

View File

@ -21,10 +21,9 @@ const int menu_sound_options::m_sound_rate[] = { 11025, 22050, 44100, 48000 };
// ctor
//-------------------------------------------------
menu_sound_options::menu_sound_options(mame_ui_manager &mui, render_container *container)
: menu(mui, container)
menu_sound_options::menu_sound_options(mame_ui_manager &mui, render_container *container) : menu(mui, container)
{
auto options = downcast<osd_options &>(mui.machine().options());
osd_options &options = downcast<osd_options &>(mui.machine().options());
m_sample_rate = mui.machine().options().sample_rate();
m_sound = (strcmp(options.sound(), OSDOPTVAL_NONE) && strcmp(options.sound(), "0"));
@ -32,7 +31,7 @@ menu_sound_options::menu_sound_options(mame_ui_manager &mui, render_container *c
int total = ARRAY_LENGTH(m_sound_rate);
for (m_cur_rates = 0; m_cur_rates < total; ++m_cur_rates)
for (m_cur_rates = 0; m_cur_rates < total; m_cur_rates++)
if (m_sample_rate == m_sound_rate[m_cur_rates])
break;
@ -47,21 +46,19 @@ menu_sound_options::menu_sound_options(mame_ui_manager &mui, render_container *c
menu_sound_options::~menu_sound_options()
{
std::string error_string;
auto moptions = machine().options();
emu_options &moptions = machine().options();
if (strcmp(moptions.value(OSDOPTION_SOUND), m_sound ? OSDOPTVAL_AUTO : OSDOPTVAL_NONE) != 0)
if (strcmp(moptions.value(OSDOPTION_SOUND),m_sound ? OSDOPTVAL_AUTO : OSDOPTVAL_NONE)!=0)
{
moptions.set_value(OSDOPTION_SOUND, m_sound ? OSDOPTVAL_AUTO : OSDOPTVAL_NONE, OPTION_PRIORITY_CMDLINE, error_string);
machine().options().mark_changed(OSDOPTION_SOUND);
}
if (moptions.int_value(OPTION_SAMPLERATE) != m_sound_rate[m_cur_rates])
if (moptions.int_value(OPTION_SAMPLERATE)!=m_sound_rate[m_cur_rates])
{
moptions.set_value(OPTION_SAMPLERATE, m_sound_rate[m_cur_rates], OPTION_PRIORITY_CMDLINE, error_string);
machine().options().mark_changed(OPTION_SAMPLERATE);
}
if (moptions.bool_value(OPTION_SAMPLES) != m_samples)
if (moptions.bool_value(OPTION_SAMPLES)!=m_samples)
{
moptions.set_value(OPTION_SAMPLES, m_samples, OPTION_PRIORITY_CMDLINE, error_string);
machine().options().mark_changed(OPTION_SAMPLES);
@ -74,17 +71,17 @@ menu_sound_options::~menu_sound_options()
void menu_sound_options::handle()
{
auto changed = false;
bool changed = false;
// process the menu
auto event = process(0);
const event *menu_event = process(0);
if (event != nullptr && event->itemref != nullptr)
if (menu_event != nullptr && menu_event->itemref != nullptr)
{
switch ((FPTR)event->itemref)
switch ((FPTR)menu_event->itemref)
{
case ENABLE_SOUND:
if (event->iptkey == IPT_UI_LEFT || event->iptkey == IPT_UI_RIGHT || event->iptkey == IPT_UI_SELECT)
if (menu_event->iptkey == IPT_UI_LEFT || menu_event->iptkey == IPT_UI_RIGHT || menu_event->iptkey == IPT_UI_SELECT)
{
m_sound = !m_sound;
changed = true;
@ -92,23 +89,24 @@ void menu_sound_options::handle()
break;
case SAMPLE_RATE:
if (event->iptkey == IPT_UI_LEFT || event->iptkey == IPT_UI_RIGHT)
if (menu_event->iptkey == IPT_UI_LEFT || menu_event->iptkey == IPT_UI_RIGHT)
{
(event->iptkey == IPT_UI_LEFT) ? m_cur_rates-- : m_cur_rates++;
(menu_event->iptkey == IPT_UI_LEFT) ? m_cur_rates-- : m_cur_rates++;
changed = true;
}
else if (event->iptkey == IPT_UI_SELECT)
else if (menu_event->iptkey == IPT_UI_SELECT)
{
std::vector<std::string> s_sel;
for (auto e : m_sound_rate)
s_sel.emplace_back(std::to_string(e));
int total = ARRAY_LENGTH(m_sound_rate);
std::vector<std::string> s_sel(total);
for (int index = 0; index < total; index++)
s_sel[index] = std::to_string(m_sound_rate[index]);
menu::stack_push<menu_selector>(ui(), container, std::move(s_sel), m_cur_rates);
menu::stack_push<menu_selector>(ui(), container, s_sel, m_cur_rates);
}
break;
case ENABLE_SAMPLES:
if (event->iptkey == IPT_UI_LEFT || event->iptkey == IPT_UI_RIGHT || event->iptkey == IPT_UI_SELECT)
if (menu_event->iptkey == IPT_UI_LEFT || menu_event->iptkey == IPT_UI_RIGHT || menu_event->iptkey == IPT_UI_SELECT)
{
m_samples = !m_samples;
changed = true;
@ -128,7 +126,7 @@ void menu_sound_options::handle()
void menu_sound_options::populate()
{
auto arrow_flags = get_arrow_flags(0, ARRAY_LENGTH(m_sound_rate) - 1, m_cur_rates);
UINT32 arrow_flags = get_arrow_flags(0, ARRAY_LENGTH(m_sound_rate) - 1, m_cur_rates);
m_sample_rate = m_sound_rate[m_cur_rates];
// add options items
@ -148,7 +146,7 @@ void menu_sound_options::custom_render(void *selectedref, float top, float botto
{
float width;
ui().draw_text_full(container, _("Sound Options"), 0.0f, 0.0f, 1.0f, ui::text_layout::CENTER, ui::text_layout::TRUNCATE,
mame_ui_manager::NONE, rgb_t::white, rgb_t::black, &width, nullptr);
mame_ui_manager::NONE, rgb_t::white, rgb_t::black, &width, nullptr);
width += 2 * UI_BOX_LR_BORDER;
float maxwidth = MAX(origx2 - origx1, width);
@ -168,7 +166,7 @@ void menu_sound_options::custom_render(void *selectedref, float top, float botto
// draw the text within it
ui().draw_text_full(container, _("Sound Options"), x1, y1, x2 - x1, ui::text_layout::CENTER, ui::text_layout::TRUNCATE,
mame_ui_manager::NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr);
mame_ui_manager::NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr);
}
} // namespace ui

View File

@ -124,7 +124,9 @@ std::vector<submenu::option> submenu::video_options = {
//-------------------------------------------------
submenu::submenu(mame_ui_manager &mui, render_container *container, std::vector<option> &suboptions, const game_driver *drv, emu_options *options)
: menu(mui, container), m_options(suboptions), m_driver(drv)
: menu(mui, container)
, m_options(suboptions)
, m_driver(drv)
{
core_options *opts = nullptr;
if (m_driver == nullptr)
@ -206,17 +208,17 @@ submenu::~submenu()
void submenu::handle()
{
auto changed = false;
bool changed = false;
std::string error_string, tmptxt;
float f_cur, f_step;
// process the menu
auto menu_event = process(PROCESS_LR_REPEAT);
const event *menu_event = process(PROCESS_LR_REPEAT);
if (menu_event != nullptr && menu_event->itemref != nullptr &&
(menu_event->iptkey == IPT_UI_LEFT || menu_event->iptkey == IPT_UI_RIGHT || menu_event->iptkey == IPT_UI_SELECT))
{
auto sm_option = *reinterpret_cast<option *>(menu_event->itemref);
option &sm_option = *reinterpret_cast<option *>(menu_event->itemref);
switch (sm_option.type)
{
@ -234,7 +236,7 @@ void submenu::handle()
if (menu_event->iptkey == IPT_UI_LEFT || menu_event->iptkey == IPT_UI_RIGHT)
{
changed = true;
auto i_cur = atoi(sm_option.entry->value());
int i_cur = atoi(sm_option.entry->value());
(menu_event->iptkey == IPT_UI_LEFT) ? i_cur-- : i_cur++;
sm_option.options->set_value(sm_option.name, i_cur, OPTION_PRIORITY_CMDLINE, error_string);
sm_option.entry->mark_changed();
@ -249,20 +251,22 @@ void submenu::handle()
{
f_step = atof(sm_option.entry->minimum());
if (f_step <= 0.0f) {
auto pmin = getprecisionchr(sm_option.entry->minimum());
auto pmax = getprecisionchr(sm_option.entry->maximum());
int pmin = getprecisionchr(sm_option.entry->minimum());
int pmax = getprecisionchr(sm_option.entry->maximum());
tmptxt = '1' + std::string((pmin > pmax) ? pmin : pmax, '0');
f_step = 1 / atof(tmptxt.c_str());
}
}
else
{
auto precision = getprecisionchr(sm_option.entry->default_value());
int precision = getprecisionchr(sm_option.entry->default_value());
tmptxt = '1' + std::string(precision, '0');
f_step = 1 / atof(tmptxt.c_str());
}
(menu_event->iptkey == IPT_UI_LEFT) ? f_cur -= f_step : f_cur += f_step;
if (menu_event->iptkey == IPT_UI_LEFT)
f_cur -= f_step;
else
f_cur += f_step;
tmptxt = string_format("%g", f_cur);
sm_option.options->set_value(sm_option.name, tmptxt.c_str(), OPTION_PRIORITY_CMDLINE, error_string);
sm_option.entry->mark_changed();
@ -274,7 +278,10 @@ void submenu::handle()
changed = true;
std::string v_cur(sm_option.entry->value());
int cur_value = std::distance(sm_option.value.begin(), std::find(sm_option.value.begin(), sm_option.value.end(), v_cur));
v_cur = (menu_event->iptkey == IPT_UI_LEFT) ? sm_option.value[--cur_value] : sm_option.value[++cur_value];
if (menu_event->iptkey == IPT_UI_LEFT)
v_cur = sm_option.value[--cur_value];
else
v_cur = sm_option.value[++cur_value];
sm_option.options->set_value(sm_option.name, v_cur.c_str(), OPTION_PRIORITY_CMDLINE, error_string);
sm_option.entry->mark_changed();
}
@ -364,7 +371,7 @@ void submenu::populate()
f_max = std::numeric_limits<float>::max();
}
arrow_flags = get_arrow_flags(f_min, f_max, f_cur);
auto tmptxt = string_format("%g", f_cur);
std::string tmptxt = string_format("%g", f_cur);
item_append(_(sm_option->description),
tmptxt.c_str(),
arrow_flags,
@ -432,11 +439,11 @@ void submenu::custom_render(void *selectedref, float top, float bottom, float or
if (selectedref != nullptr)
{
auto selected_sm_option = *reinterpret_cast<option *>(selectedref);
option &selected_sm_option = *reinterpret_cast<option *>(selectedref);
if (selected_sm_option.entry != nullptr)
{
ui().draw_text_full(container, selected_sm_option.entry->description(), 0.0f, 0.0f, 1.0f, ui::text_layout::CENTER, ui::text_layout::TRUNCATE,
mame_ui_manager::NONE, rgb_t::white, rgb_t::black, &width, nullptr);
mame_ui_manager::NONE, rgb_t::white, rgb_t::black, &width, nullptr);
width += 2 * UI_BOX_LR_BORDER;
maxwidth = MAX(origx2 - origx1, width);
@ -457,7 +464,7 @@ void submenu::custom_render(void *selectedref, float top, float bottom, float or
// draw the text within it
ui().draw_text_full(container, selected_sm_option.entry->description(), x1, y1, x2 - x1, ui::text_layout::CENTER, ui::text_layout::NEVER,
mame_ui_manager::NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr);
mame_ui_manager::NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr);
}
}
}

View File

@ -21,7 +21,7 @@ namespace ui {
CONSTANTS
***************************************************************************/
// time (in seconds) to display errors
/* time (in seconds) to display errors */
#define ERROR_MESSAGE_TIME 5
@ -129,7 +129,6 @@ menu_software_list::menu_software_list(mame_ui_manager &mui, render_container *c
m_swlist = swlist;
m_interface = interface;
m_ordered_by_shortname = true;
memset(m_filename_buffer, '\0', ARRAY_LENGTH(m_filename_buffer));
}

View File

@ -32,20 +32,20 @@ class menu_item;
CONSTANTS
***************************************************************************/
// preferred font height; use ui_get_line_height() to get actual height
/* preferred font height; use ui_get_line_height() to get actual height */
#define UI_TARGET_FONT_ROWS get_font_rows()
#define UI_TARGET_FONT_HEIGHT (1.0f / (float)UI_TARGET_FONT_ROWS)
#define UI_MAX_FONT_HEIGHT (1.0f / 15.0f)
// width of lines drawn in the UI
/* width of lines drawn in the UI */
#define UI_LINE_WIDTH (1.0f / 500.0f)
// border between outlines and inner text on left/right and top/bottom sides
/* border between outlines and inner text on left/right and top/bottom sides */
#define UI_BOX_LR_BORDER (UI_TARGET_FONT_HEIGHT * 0.25f)
#define UI_BOX_TB_BORDER (UI_TARGET_FONT_HEIGHT * 0.25f)
// handy colors
/* handy colors */
#define UI_GREEN_COLOR rgb_t(0xef,0x10,0x60,0x10)
#define UI_YELLOW_COLOR rgb_t(0xef,0x60,0x60,0x10)
#define UI_RED_COLOR rgb_t(0xf0,0x60,0x10,0x10)
@ -66,7 +66,7 @@ class menu_item;
#define UI_DIPSW_COLOR decode_ui_color(14)
#define UI_SLIDER_COLOR decode_ui_color(15)
// cancel return value for a UI handler
/* cancel return value for a UI handler */
#define UI_HANDLER_CANCEL ((UINT32)~0)
#define SLIDER_DEVICE_SPACING 0x0ff

View File

@ -81,7 +81,7 @@ char* chartrimcarriage(char str[])
const char* strensure(const char* s)
{
return (s == nullptr) ? "" : s;
return s == nullptr ? "" : s;
}
int getprecisionchr(const char* s)
@ -100,11 +100,11 @@ std::vector<std::string> tokenize(const std::string &text, char sep)
std::size_t start = 0, end = 0;
while ((end = text.find(sep, start)) != std::string::npos)
{
auto temp = text.substr(start, end - start);
std::string temp = text.substr(start, end - start);
if (!temp.empty()) tokens.push_back(temp);
start = end + 1;
}
auto temp = text.substr(start);
std::string temp = text.substr(start);
if (!temp.empty()) tokens.push_back(temp);
return tokens;
}

View File

@ -22,8 +22,8 @@ namespace ui {
void menu_video_targets::handle()
{
// process the menu
auto menu_event = process(0);
/* process the menu */
const event *menu_event = process(0);
if (menu_event != nullptr && menu_event->iptkey == IPT_UI_SELECT)
menu::stack_push<menu_video_options>(ui(), container, static_cast<render_target *>(menu_event->itemref));
}
@ -34,24 +34,25 @@ void menu_video_targets::handle()
video targets menu
-------------------------------------------------*/
menu_video_targets::menu_video_targets(mame_ui_manager &mui, render_container *container)
: menu(mui, container)
menu_video_targets::menu_video_targets(mame_ui_manager &mui, render_container *container) : menu(mui, container)
{
}
void menu_video_targets::populate()
{
// find the targets
for (int targetnum = 0; ; ++targetnum)
int targetnum;
/* find the targets */
for (targetnum = 0; ; targetnum++)
{
auto target = machine().render().target_by_index(targetnum);
render_target *target = machine().render().target_by_index(targetnum);
char buffer[40];
// stop when we run out
/* stop when we run out */
if (target == nullptr)
break;
// add a menu item
/* add a menu item */
sprintf(buffer, _("Screen #%d"), targetnum);
item_append(buffer, "", 0, target);
}
@ -68,21 +69,21 @@ menu_video_targets::~menu_video_targets()
void menu_video_options::handle()
{
auto changed = false;
bool changed = false;
// process the menu
auto menu_event = process(0);
/* process the menu */
const event *menu_event = process(0);
if (menu_event != nullptr && menu_event->itemref != nullptr)
{
switch ((FPTR)menu_event->itemref)
{
// rotate adds rotation depending on the direction
/* rotate adds rotation depending on the direction */
case VIDEO_ITEM_ROTATE:
if (menu_event->iptkey == IPT_UI_LEFT || menu_event->iptkey == IPT_UI_RIGHT)
{
int delta = (menu_event->iptkey == IPT_UI_LEFT) ? ROT270 : ROT90;
m_target->set_orientation(orientation_add(delta, m_target->orientation()));
if (m_target->is_ui_target())
target->set_orientation(orientation_add(delta, target->orientation()));
if (target->is_ui_target())
{
render_container::user_settings settings;
container->get_user_settings(settings);
@ -93,11 +94,11 @@ void menu_video_options::handle()
}
break;
// layer config bitmasks handle left/right keys the same (toggle)
/* layer config bitmasks handle left/right keys the same (toggle) */
case VIDEO_ITEM_BACKDROPS:
if (menu_event->iptkey == IPT_UI_LEFT || menu_event->iptkey == IPT_UI_RIGHT)
{
m_target->set_backdrops_enabled(!m_target->backdrops_enabled());
target->set_backdrops_enabled(!target->backdrops_enabled());
changed = true;
}
break;
@ -105,7 +106,7 @@ void menu_video_options::handle()
case VIDEO_ITEM_OVERLAYS:
if (menu_event->iptkey == IPT_UI_LEFT || menu_event->iptkey == IPT_UI_RIGHT)
{
m_target->set_overlays_enabled(!m_target->overlays_enabled());
target->set_overlays_enabled(!target->overlays_enabled());
changed = true;
}
break;
@ -113,7 +114,7 @@ void menu_video_options::handle()
case VIDEO_ITEM_BEZELS:
if (menu_event->iptkey == IPT_UI_LEFT || menu_event->iptkey == IPT_UI_RIGHT)
{
m_target->set_bezels_enabled(!m_target->bezels_enabled());
target->set_bezels_enabled(!target->bezels_enabled());
changed = true;
}
break;
@ -121,7 +122,7 @@ void menu_video_options::handle()
case VIDEO_ITEM_CPANELS:
if (menu_event->iptkey == IPT_UI_LEFT || menu_event->iptkey == IPT_UI_RIGHT)
{
m_target->set_cpanels_enabled(!m_target->cpanels_enabled());
target->set_cpanels_enabled(!target->cpanels_enabled());
changed = true;
}
break;
@ -129,7 +130,7 @@ void menu_video_options::handle()
case VIDEO_ITEM_MARQUEES:
if (menu_event->iptkey == IPT_UI_LEFT || menu_event->iptkey == IPT_UI_RIGHT)
{
m_target->set_marquees_enabled(!m_target->marquees_enabled());
target->set_marquees_enabled(!target->marquees_enabled());
changed = true;
}
break;
@ -137,23 +138,23 @@ void menu_video_options::handle()
case VIDEO_ITEM_ZOOM:
if (menu_event->iptkey == IPT_UI_LEFT || menu_event->iptkey == IPT_UI_RIGHT)
{
m_target->set_zoom_to_screen(!m_target->zoom_to_screen());
target->set_zoom_to_screen(!target->zoom_to_screen());
changed = true;
}
break;
// anything else is a view item
/* anything else is a view item */
default:
if (menu_event->iptkey == IPT_UI_SELECT && (int)(FPTR)menu_event->itemref >= VIDEO_ITEM_VIEW)
{
m_target->set_view((FPTR)menu_event->itemref - VIDEO_ITEM_VIEW);
target->set_view((FPTR)menu_event->itemref - VIDEO_ITEM_VIEW);
changed = true;
}
break;
}
}
// if something changed, rebuild the menu
/* if something changed, rebuild the menu */
if (changed)
reset(reset_options::REMEMBER_REF);
}
@ -164,36 +165,36 @@ void menu_video_options::handle()
video options menu
-------------------------------------------------*/
menu_video_options::menu_video_options(mame_ui_manager &mui, render_container *container, render_target *_target)
: menu(mui, container)
, m_target(_target)
menu_video_options::menu_video_options(mame_ui_manager &mui, render_container *container, render_target *_target) : menu(mui, container)
{
target = _target;
}
void menu_video_options::populate()
{
const char *subtext = "";
std::string tempstring;
bool enabled;
int viewnum;
int enabled;
// add items for each view
for (int viewnum = 0; ; ++viewnum)
/* add items for each view */
for (viewnum = 0; ; viewnum++)
{
const char *name = m_target->view_name(viewnum);
const char *name = target->view_name(viewnum);
if (name == nullptr)
break;
// create a string for the item, replacing underscores with spaces
/* create a string for the item, replacing underscores with spaces */
tempstring.assign(name);
strreplace(tempstring, "_", " ");
item_append(tempstring, "", 0, (void *)(FPTR)(VIDEO_ITEM_VIEW + viewnum));
}
// add a separator
/* add a separator */
item_append(menu_item_type::SEPARATOR);
// add a rotate item
switch (m_target->orientation())
/* add a rotate item */
switch (target->orientation())
{
case ROT0: subtext = "None"; break;
case ROT90: subtext = "CW 90" UTF8_DEGREES; break;
@ -202,28 +203,28 @@ void menu_video_options::populate()
}
item_append(_("Rotate"), subtext, FLAG_LEFT_ARROW | FLAG_RIGHT_ARROW, (void *)VIDEO_ITEM_ROTATE);
// backdrop item
enabled = m_target->backdrops_enabled();
/* backdrop item */
enabled = target->backdrops_enabled();
item_append(_("Backdrops"), enabled ? _("Enabled") : _("Disabled"), enabled ? FLAG_LEFT_ARROW : FLAG_RIGHT_ARROW, (void *)VIDEO_ITEM_BACKDROPS);
// overlay item
enabled = m_target->overlays_enabled();
/* overlay item */
enabled = target->overlays_enabled();
item_append(_("Overlays"), enabled ? _("Enabled") : _("Disabled"), enabled ? FLAG_LEFT_ARROW : FLAG_RIGHT_ARROW, (void *)VIDEO_ITEM_OVERLAYS);
// bezel item
enabled = m_target->bezels_enabled();
/* bezel item */
enabled = target->bezels_enabled();
item_append(_("Bezels"), enabled ? _("Enabled") : _("Disabled"), enabled ? FLAG_LEFT_ARROW : FLAG_RIGHT_ARROW, (void *)VIDEO_ITEM_BEZELS);
// cpanel item
enabled = m_target->cpanels_enabled();
/* cpanel item */
enabled = target->cpanels_enabled();
item_append(_("CPanels"), enabled ? _("Enabled") : _("Disabled"), enabled ? FLAG_LEFT_ARROW : FLAG_RIGHT_ARROW, (void *)VIDEO_ITEM_CPANELS);
// marquee item
enabled = m_target->marquees_enabled();
/* marquee item */
enabled = target->marquees_enabled();
item_append(_("Marquees"), enabled ? _("Enabled") : _("Disabled"), enabled ? FLAG_LEFT_ARROW : FLAG_RIGHT_ARROW, (void *)VIDEO_ITEM_MARQUEES);
// cropping
enabled = m_target->zoom_to_screen();
/* cropping */
enabled = target->zoom_to_screen();
item_append(_("View"), enabled ? _("Cropped") : _("Full"), enabled ? FLAG_RIGHT_ARROW : FLAG_LEFT_ARROW, (void *)VIDEO_ITEM_ZOOM);
}

View File

@ -45,7 +45,7 @@ private:
VIDEO_ITEM_VIEW
};
render_target *m_target;
render_target *target;
};
} // namespace ui