summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/ui/mainmenu.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/ui/mainmenu.cpp')
-rw-r--r--src/emu/ui/mainmenu.cpp63
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));