mirror of
https://github.com/holub/mame
synced 2025-07-04 17:38:08 +03:00
Reducing differences in File Manager options when entering from
softlist vs fullpath. nw.
This commit is contained in:
parent
c0b27ba357
commit
747d998ca5
@ -237,16 +237,25 @@ void ui_menu_control_device_image::handle()
|
|||||||
|
|
||||||
case SELECT_OTHER_PART:
|
case SELECT_OTHER_PART:
|
||||||
switch(submenu_result) {
|
switch(submenu_result) {
|
||||||
case ui_menu_software_parts::T_ENTRY: {
|
case ui_menu_software_parts::T_ENTRY:
|
||||||
load_software_part();
|
load_software_part();
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
|
|
||||||
case ui_menu_software_parts::T_FMGR:
|
case ui_menu_software_parts::T_FMGR:
|
||||||
state = START_FILE;
|
state = START_FILE;
|
||||||
handle();
|
handle();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case ui_menu_software_parts::T_EMPTY:
|
||||||
|
image->unload();
|
||||||
|
ui_menu::stack_pop(machine());
|
||||||
|
break;
|
||||||
|
|
||||||
|
case ui_menu_software_parts::T_SWLIST:
|
||||||
|
state = START_SOFTLIST;
|
||||||
|
handle();
|
||||||
|
break;
|
||||||
|
|
||||||
case -1: // return to system
|
case -1: // return to system
|
||||||
ui_menu::stack_pop(machine());
|
ui_menu::stack_pop(machine());
|
||||||
break;
|
break;
|
||||||
|
@ -30,13 +30,13 @@
|
|||||||
// ctor
|
// ctor
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
|
|
||||||
ui_menu_software_parts::ui_menu_software_parts(running_machine &machine, render_container *container, const software_info *info, const char *interface, const software_part **part, bool opt_fmgr, int *result)
|
ui_menu_software_parts::ui_menu_software_parts(running_machine &machine, render_container *container, const software_info *info, const char *interface, const software_part **part, bool other_opt, int *result)
|
||||||
: ui_menu(machine, container)
|
: ui_menu(machine, container)
|
||||||
{
|
{
|
||||||
m_info = info;
|
m_info = info;
|
||||||
m_interface = interface;
|
m_interface = interface;
|
||||||
m_selected_part = part;
|
m_selected_part = part;
|
||||||
m_opt_fmgr = opt_fmgr;
|
m_other_opt = other_opt;
|
||||||
m_result = result;
|
m_result = result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -56,6 +56,25 @@ ui_menu_software_parts::~ui_menu_software_parts()
|
|||||||
|
|
||||||
void ui_menu_software_parts::populate()
|
void ui_menu_software_parts::populate()
|
||||||
{
|
{
|
||||||
|
if (m_other_opt)
|
||||||
|
{
|
||||||
|
software_part_menu_entry *entry1 = (software_part_menu_entry *) m_pool_alloc(sizeof(*entry1));
|
||||||
|
entry1->type = T_EMPTY;
|
||||||
|
entry1->part = 0;
|
||||||
|
item_append("[empty slot]", 0, 0, entry1);
|
||||||
|
|
||||||
|
software_part_menu_entry *entry2 = (software_part_menu_entry *) m_pool_alloc(sizeof(*entry2));
|
||||||
|
entry2->type = T_FMGR;
|
||||||
|
entry2->part = 0;
|
||||||
|
item_append("[file manager]", 0, 0, entry2);
|
||||||
|
|
||||||
|
|
||||||
|
software_part_menu_entry *entry3 = (software_part_menu_entry *) m_pool_alloc(sizeof(*entry3));
|
||||||
|
entry3->type = T_SWLIST;
|
||||||
|
entry3->part = 0;
|
||||||
|
item_append("[software list]", 0, 0, entry3);
|
||||||
|
}
|
||||||
|
|
||||||
for (const software_part *swpart = m_info->first_part(); swpart != NULL; swpart = swpart->next())
|
for (const software_part *swpart = m_info->first_part(); swpart != NULL; swpart = swpart->next())
|
||||||
{
|
{
|
||||||
if (swpart->matches_interface(m_interface))
|
if (swpart->matches_interface(m_interface))
|
||||||
@ -71,14 +90,6 @@ void ui_menu_software_parts::populate()
|
|||||||
item_append(m_info->shortname(), menu_part_name.cstr(), 0, entry);
|
item_append(m_info->shortname(), menu_part_name.cstr(), 0, entry);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_opt_fmgr)
|
|
||||||
{
|
|
||||||
software_part_menu_entry *entry = (software_part_menu_entry *) m_pool_alloc(sizeof(*entry));
|
|
||||||
entry->type = T_FMGR;
|
|
||||||
entry->part = 0;
|
|
||||||
item_append("[file manager]", 0, 0, entry);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -16,8 +16,8 @@
|
|||||||
|
|
||||||
class ui_menu_software_parts : public ui_menu {
|
class ui_menu_software_parts : public ui_menu {
|
||||||
public:
|
public:
|
||||||
enum { T_ENTRY, T_FMGR };
|
enum { T_EMPTY, T_FMGR, T_SWLIST, T_ENTRY, };
|
||||||
ui_menu_software_parts(running_machine &machine, render_container *container, const software_info *info, const char *interface, const software_part **part, bool opt_fmgr, int *result);
|
ui_menu_software_parts(running_machine &machine, render_container *container, const software_info *info, const char *interface, const software_part **part, bool other_opt, int *result);
|
||||||
virtual ~ui_menu_software_parts();
|
virtual ~ui_menu_software_parts();
|
||||||
virtual void populate();
|
virtual void populate();
|
||||||
virtual void handle();
|
virtual void handle();
|
||||||
@ -32,7 +32,7 @@ private:
|
|||||||
const software_info * m_info;
|
const software_info * m_info;
|
||||||
const char * m_interface;
|
const char * m_interface;
|
||||||
const software_part ** m_selected_part;
|
const software_part ** m_selected_part;
|
||||||
bool m_opt_fmgr;
|
bool m_other_opt;
|
||||||
int * m_result;
|
int * m_result;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user