diff options
Diffstat (limited to 'src/emu/ui/mainmenu.cpp')
-rw-r--r-- | src/emu/ui/mainmenu.cpp | 63 |
1 files changed, 35 insertions, 28 deletions
diff --git a/src/emu/ui/mainmenu.cpp b/src/emu/ui/mainmenu.cpp index 7fe16d771b0..b2935049b9a 100644 --- a/src/emu/ui/mainmenu.cpp +++ b/src/emu/ui/mainmenu.cpp @@ -33,6 +33,7 @@ #include "ui/datfile.h" #include "ui/inifile.h" #include "ui/datmenu.h" +#include "ui/pluginopt.h" /*************************************************************************** @@ -71,47 +72,46 @@ void ui_menu_main::populate() 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); - - /* add file manager menu */ - 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); - } - - pty_interface_iterator ptyiter(machine().root_device()); - if (ptyiter.first() != nullptr) { - item_append(_("Pseudo terminals"), nullptr, 0, (void *)PTY_INFO); - } - if (machine().ioport().has_bioses()) + for (device_image_interface *image = imgiter.first(); image != nullptr; image = imgiter.next()) + { + if (image->user_loadable()) + { + /* add image info menu */ + 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); + + break; + } + } + + /* add tape control menu */ + cassette_device_iterator cassiter(machine().root_device()); + if (cassiter.first() != nullptr) + 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); + + if (machine().ioport().has_bioses()) item_append(_("Bios Selection"), nullptr, 0, (void *)BIOS_SELECTION); + /* add slot info menu */ slot_interface_iterator slotiter(machine().root_device()); if (slotiter.first() != nullptr) - { - /* add slot info menu */ item_append(_("Slot Devices"), nullptr, 0, (void *)SLOT_DEVICES); - } + /* add Barcode reader menu */ 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); - } + /* add network info menu */ network_interface_iterator netiter(machine().root_device()); if (netiter.first() != nullptr) - { - /* add image info menu */ item_append(_("Network Devices"), nullptr, 0, (void*)NETWORK_DEVICES); - } /* add keyboard mode menu */ if (machine().ioport().has_keyboard() && machine().ioport().natkeyboard().can_post()) @@ -131,6 +131,9 @@ void ui_menu_main::populate() if (machine().options().cheat()) item_append(_("Cheat"), nullptr, 0, (void *)CHEAT); + if (machine().options().plugins()) + item_append(_("Plugin Options"), nullptr, 0, (void *)PLUGINS); + // add dats menu if (machine().ui().options().enabled_dats() && machine().datfile().has_data()) item_append(_("External DAT View"), nullptr, 0, (void *)EXTERNAL_DATS); @@ -241,6 +244,10 @@ void ui_menu_main::handle() ui_menu::stack_push(global_alloc_clear<ui_menu_cheat>(machine(), container)); break; + case PLUGINS: + ui_menu::stack_push(global_alloc_clear<ui_menu_plugin>(machine(), container)); + break; + case SELECT_GAME: if (strcmp(machine().options().ui(),"simple")==0) { ui_menu::stack_push(global_alloc_clear<ui_simple_menu_select_game>(machine(), container, nullptr)); |