diff options
author | 2016-02-21 11:48:45 +0100 | |
---|---|---|
committer | 2016-02-21 11:48:45 +0100 | |
commit | cc24a339d8c0517259084b5c178d784626ba965c (patch) | |
tree | 9868e9687b5802ae0a3733712a3bbeb3bc75c953 /src/emu/ui/mainmenu.cpp | |
parent | b5daabda5495dea5c50e17961ecfed2ea8619d76 (diff) |
Merge remote-tracking branch 'refs/remotes/mamedev/master'
Second attempt
Diffstat (limited to 'src/emu/ui/mainmenu.cpp')
-rw-r--r-- | src/emu/ui/mainmenu.cpp | 139 |
1 files changed, 88 insertions, 51 deletions
diff --git a/src/emu/ui/mainmenu.cpp b/src/emu/ui/mainmenu.cpp index 415ad118811..caf531c41ef 100644 --- a/src/emu/ui/mainmenu.cpp +++ b/src/emu/ui/mainmenu.cpp @@ -23,12 +23,16 @@ #include "ui/mainmenu.h" #include "ui/miscmenu.h" #include "ui/selgame.h" +#include "ui/simpleselgame.h" #include "ui/sliders.h" #include "ui/slotopt.h" #include "ui/tapectrl.h" #include "ui/videoopt.h" #include "imagedev/cassette.h" #include "machine/bcreader.h" +#include "ui/datfile.h" +#include "ui/inifile.h" +#include "ui/datmenu.h" /*************************************************************************** @@ -45,96 +49,106 @@ ui_menu_main::ui_menu_main(running_machine &machine, render_container *container void ui_menu_main::populate() { - std::string menu_text; - /* add input menu items */ - item_append("Input (general)", nullptr, 0, (void *)INPUT_GROUPS); + item_append(_("Input (general)"), nullptr, 0, (void *)INPUT_GROUPS); - strprintf(menu_text, "Input (this %s)", emulator_info::get_capstartgamenoun()); - item_append(menu_text.c_str(), nullptr, 0, (void *)INPUT_SPECIFIC); + item_append(_("Input (this Machine)"), nullptr, 0, (void *)INPUT_SPECIFIC); /* add optional input-related menus */ if (machine().ioport().has_analog()) - item_append("Analog Controls", nullptr, 0, (void *)ANALOG); + item_append(_("Analog Controls"), nullptr, 0, (void *)ANALOG); if (machine().ioport().has_dips()) - item_append("Dip Switches", nullptr, 0, (void *)SETTINGS_DIP_SWITCHES); + item_append(_("Dip Switches"), nullptr, 0, (void *)SETTINGS_DIP_SWITCHES); if (machine().ioport().has_configs()) { - strprintf(menu_text, "%s Configuration", emulator_info::get_capstartgamenoun()); - item_append(menu_text.c_str(), nullptr, 0, (void *)SETTINGS_DRIVER_CONFIG); + item_append(_("Machine Configuration"), nullptr, 0, (void *)SETTINGS_DRIVER_CONFIG); } /* add bookkeeping menu */ - item_append("Bookkeeping Info", nullptr, 0, (void *)BOOKKEEPING); + item_append(_("Bookkeeping Info"), nullptr, 0, (void *)BOOKKEEPING); /* add game info menu */ - strprintf(menu_text, "%s Information", emulator_info::get_capstartgamenoun()); - item_append(menu_text.c_str(), nullptr, 0, (void *)GAME_INFO); + item_append(_("Machine Information"), nullptr, 0, (void *)GAME_INFO); image_interface_iterator imgiter(machine().root_device()); if (imgiter.first() != nullptr) { /* add image info menu */ - item_append("Image Information", nullptr, 0, (void *)IMAGE_MENU_IMAGE_INFO); + item_append(_("Image Information"), nullptr, 0, (void *)IMAGE_MENU_IMAGE_INFO); /* add file manager menu */ - item_append("File Manager", nullptr, 0, (void *)IMAGE_MENU_FILE_MANAGER); + item_append(_("File Manager"), nullptr, 0, (void *)IMAGE_MENU_FILE_MANAGER); /* add tape control menu */ cassette_device_iterator cassiter(machine().root_device()); if (cassiter.first() != nullptr) - item_append("Tape Control", nullptr, 0, (void *)TAPE_CONTROL); + item_append(_("Tape Control"), nullptr, 0, (void *)TAPE_CONTROL); } pty_interface_iterator ptyiter(machine().root_device()); if (ptyiter.first() != nullptr) { - item_append("Pseudo terminals", nullptr, 0, (void *)PTY_INFO); + item_append(_("Pseudo terminals"), nullptr, 0, (void *)PTY_INFO); } if (machine().ioport().has_bioses()) - item_append("Bios Selection", nullptr, 0, (void *)BIOS_SELECTION); + item_append(_("Bios Selection"), nullptr, 0, (void *)BIOS_SELECTION); slot_interface_iterator slotiter(machine().root_device()); if (slotiter.first() != nullptr) { /* add slot info menu */ - item_append("Slot Devices", nullptr, 0, (void *)SLOT_DEVICES); + item_append(_("Slot Devices"), nullptr, 0, (void *)SLOT_DEVICES); } barcode_reader_device_iterator bcriter(machine().root_device()); if (bcriter.first() != nullptr) { /* add slot info menu */ - item_append("Barcode Reader", nullptr, 0, (void *)BARCODE_READ); + item_append(_("Barcode Reader"), nullptr, 0, (void *)BARCODE_READ); } network_interface_iterator netiter(machine().root_device()); if (netiter.first() != nullptr) { /* add image info menu */ - item_append("Network Devices", nullptr, 0, (void*)NETWORK_DEVICES); + item_append(_("Network Devices"), nullptr, 0, (void*)NETWORK_DEVICES); } /* add keyboard mode menu */ if (machine().ioport().has_keyboard() && machine().ioport().natkeyboard().can_post()) - item_append("Keyboard Mode", nullptr, 0, (void *)KEYBOARD_MODE); + item_append(_("Keyboard Mode"), nullptr, 0, (void *)KEYBOARD_MODE); /* add sliders menu */ - item_append("Slider Controls", nullptr, 0, (void *)SLIDERS); + item_append(_("Slider Controls"), nullptr, 0, (void *)SLIDERS); /* add video options menu */ - item_append("Video Options", nullptr, 0, (machine().render().target_by_index(1) != nullptr) ? (void *)VIDEO_TARGETS : (void *)VIDEO_OPTIONS); + item_append(_("Video Options"), nullptr, 0, (machine().render().target_by_index(1) != nullptr) ? (void *)VIDEO_TARGETS : (void *)VIDEO_OPTIONS); /* add crosshair options menu */ if (machine().crosshair().get_usage()) - item_append("Crosshair Options", nullptr, 0, (void *)CROSSHAIR); + item_append(_("Crosshair Options"), nullptr, 0, (void *)CROSSHAIR); /* add cheat menu */ - if (machine().options().cheat() && machine().cheat().first() != nullptr) - item_append("Cheat", nullptr, 0, (void *)CHEAT); + if (machine().options().cheat()) + item_append(_("Cheat"), nullptr, 0, (void *)CHEAT); + + // add dats menu + if (machine().ui().options().enabled_dats() && machine().datfile().has_data(&machine().system())) + item_append(_("External DAT View"), nullptr, 0, (void *)EXTERNAL_DATS); + + item_append(MENU_SEPARATOR_ITEM, nullptr, 0, nullptr); + + /* add favorite menu */ + if (!machine().favorite().isgame_favorite()) + item_append(_("Add To Favorites"), nullptr, 0, (void *)ADD_FAVORITE); + else + item_append(_("Remove From Favorites"), nullptr, 0, (void *)REMOVE_FAVORITE); + + item_append(MENU_SEPARATOR_ITEM, nullptr, 0, nullptr); + +// item_append(_("Quit from Machine"), nullptr, 0, (void *)QUIT_GAME); /* add reset and exit menus */ - strprintf(menu_text, "Select New %s", emulator_info::get_capstartgamenoun()); - item_append(menu_text.c_str(), nullptr, 0, (void *)SELECT_GAME); + item_append(_("Select New Machine"), nullptr, 0, (void *)SELECT_GAME); } ui_menu_main::~ui_menu_main() @@ -152,91 +166,114 @@ void ui_menu_main::handle() if (menu_event != nullptr && menu_event->iptkey == IPT_UI_SELECT) { switch((long long)(menu_event->itemref)) { case INPUT_GROUPS: - ui_menu::stack_push(auto_alloc_clear(machine(), <ui_menu_input_groups>(machine(), container))); + ui_menu::stack_push(global_alloc_clear<ui_menu_input_groups>(machine(), container)); break; case INPUT_SPECIFIC: - ui_menu::stack_push(auto_alloc_clear(machine(), <ui_menu_input_specific>(machine(), container))); + ui_menu::stack_push(global_alloc_clear<ui_menu_input_specific>(machine(), container)); break; case SETTINGS_DIP_SWITCHES: - ui_menu::stack_push(auto_alloc_clear(machine(), <ui_menu_settings_dip_switches>(machine(), container))); + ui_menu::stack_push(global_alloc_clear<ui_menu_settings_dip_switches>(machine(), container)); break; case SETTINGS_DRIVER_CONFIG: - ui_menu::stack_push(auto_alloc_clear(machine(), <ui_menu_settings_driver_config>(machine(), container))); + ui_menu::stack_push(global_alloc_clear<ui_menu_settings_driver_config>(machine(), container)); break; case ANALOG: - ui_menu::stack_push(auto_alloc_clear(machine(), <ui_menu_analog>(machine(), container))); + ui_menu::stack_push(global_alloc_clear<ui_menu_analog>(machine(), container)); break; case BOOKKEEPING: - ui_menu::stack_push(auto_alloc_clear(machine(), <ui_menu_bookkeeping>(machine(), container))); + ui_menu::stack_push(global_alloc_clear<ui_menu_bookkeeping>(machine(), container)); break; case GAME_INFO: - ui_menu::stack_push(auto_alloc_clear(machine(), <ui_menu_game_info>(machine(), container))); + ui_menu::stack_push(global_alloc_clear<ui_menu_game_info>(machine(), container)); break; case IMAGE_MENU_IMAGE_INFO: - ui_menu::stack_push(auto_alloc_clear(machine(), <ui_menu_image_info>(machine(), container))); + ui_menu::stack_push(global_alloc_clear<ui_menu_image_info>(machine(), container)); break; case IMAGE_MENU_FILE_MANAGER: - ui_menu::stack_push(auto_alloc_clear(machine(), <ui_menu_file_manager>(machine(), container, nullptr))); + ui_menu::stack_push(global_alloc_clear<ui_menu_file_manager>(machine(), container, nullptr)); break; case TAPE_CONTROL: - ui_menu::stack_push(auto_alloc_clear(machine(), <ui_menu_tape_control>(machine(), container, nullptr))); + ui_menu::stack_push(global_alloc_clear<ui_menu_tape_control>(machine(), container, nullptr)); break; - case PTY_INFO: - ui_menu::stack_push(auto_alloc_clear(machine(), <ui_menu_pty_info>(machine(), container))); + case PTY_INFO: + ui_menu::stack_push(global_alloc_clear<ui_menu_pty_info>(machine(), container)); break; case SLOT_DEVICES: - ui_menu::stack_push(auto_alloc_clear(machine(), <ui_menu_slot_devices>(machine(), container))); + ui_menu::stack_push(global_alloc_clear<ui_menu_slot_devices>(machine(), container)); break; case NETWORK_DEVICES: - ui_menu::stack_push(auto_alloc_clear(machine(), <ui_menu_network_devices>(machine(), container))); + ui_menu::stack_push(global_alloc_clear<ui_menu_network_devices>(machine(), container)); break; case KEYBOARD_MODE: - ui_menu::stack_push(auto_alloc_clear(machine(), <ui_menu_keyboard_mode>(machine(), container))); + ui_menu::stack_push(global_alloc_clear<ui_menu_keyboard_mode>(machine(), container)); break; case SLIDERS: - ui_menu::stack_push(auto_alloc_clear(machine(), <ui_menu_sliders>(machine(), container, false))); + ui_menu::stack_push(global_alloc_clear<ui_menu_sliders>(machine(), container, false)); break; case VIDEO_TARGETS: - ui_menu::stack_push(auto_alloc_clear(machine(), <ui_menu_video_targets>(machine(), container))); + ui_menu::stack_push(global_alloc_clear<ui_menu_video_targets>(machine(), container)); break; case VIDEO_OPTIONS: - ui_menu::stack_push(auto_alloc_clear(machine(), <ui_menu_video_options>(machine(), container, machine().render().first_target()))); + ui_menu::stack_push(global_alloc_clear<ui_menu_video_options>(machine(), container, machine().render().first_target())); break; case CROSSHAIR: - ui_menu::stack_push(auto_alloc_clear(machine(), <ui_menu_crosshair>(machine(), container))); + ui_menu::stack_push(global_alloc_clear<ui_menu_crosshair>(machine(), container)); break; case CHEAT: - ui_menu::stack_push(auto_alloc_clear(machine(), <ui_menu_cheat>(machine(), container))); + ui_menu::stack_push(global_alloc_clear<ui_menu_cheat>(machine(), container)); break; case SELECT_GAME: - ui_menu::stack_push(auto_alloc_clear(machine(), <ui_menu_select_game>(machine(), container, nullptr))); + if (strcmp(machine().options().ui(),"simple")==0) { + ui_menu::stack_push(global_alloc_clear<ui_simple_menu_select_game>(machine(), container, nullptr)); + } else { + ui_menu::stack_push(global_alloc_clear<ui_menu_select_game>(machine(), container, nullptr)); + } break; case BIOS_SELECTION: - ui_menu::stack_push(auto_alloc_clear(machine(), <ui_menu_bios_selection>(machine(), container))); + ui_menu::stack_push(global_alloc_clear<ui_menu_bios_selection>(machine(), container)); break; case BARCODE_READ: - ui_menu::stack_push(auto_alloc_clear(machine(), <ui_menu_barcode_reader>(machine(), container, nullptr))); + ui_menu::stack_push(global_alloc_clear<ui_menu_barcode_reader>(machine(), container, nullptr)); + break; + + case EXTERNAL_DATS: + ui_menu::stack_push(global_alloc_clear<ui_menu_dats_view>(machine(), container)); + break; + + case ADD_FAVORITE: + machine().favorite().add_favorite_game(); + reset(UI_MENU_RESET_REMEMBER_POSITION); + break; + + case REMOVE_FAVORITE: + machine().favorite().remove_favorite_game(); + reset(UI_MENU_RESET_REMEMBER_POSITION); + break; + + case QUIT_GAME: + ui_menu::stack_pop(machine()); + machine().ui().request_quit(); break; default: |