diff options
Diffstat (limited to 'src/emu/ui/info.cpp')
-rw-r--r-- | src/emu/ui/info.cpp | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/src/emu/ui/info.cpp b/src/emu/ui/info.cpp new file mode 100644 index 00000000000..cb84a99418a --- /dev/null +++ b/src/emu/ui/info.cpp @@ -0,0 +1,114 @@ +// license:BSD-3-Clause +// copyright-holders:Nicola Salmoria, Aaron Giles, Nathan Woods +/*************************************************************************** + + ui/info.c + + System and image info screens + +***************************************************************************/ + +#include "emu.h" +#include "ui/menu.h" +#include "ui/info.h" +#include "ui/ui.h" +#include "softlist.h" + +/*------------------------------------------------- + menu_game_info - handle the game information + menu + -------------------------------------------------*/ + +ui_menu_game_info::ui_menu_game_info(running_machine &machine, render_container *container) : ui_menu(machine, container) +{ +} + +ui_menu_game_info::~ui_menu_game_info() +{ +} + +void ui_menu_game_info::populate() +{ + std::string tempstring; + item_append(machine().ui().game_info_astring(tempstring).c_str(), NULL, MENU_FLAG_MULTILINE, NULL); +} + +void ui_menu_game_info::handle() +{ + // process the menu + process(0); +} + + +/*------------------------------------------------- + ui_menu_image_info - handle the image information + menu + -------------------------------------------------*/ + +ui_menu_image_info::ui_menu_image_info(running_machine &machine, render_container *container) : ui_menu(machine, container) +{ +} + +ui_menu_image_info::~ui_menu_image_info() +{ +} + +void ui_menu_image_info::populate() +{ + item_append(machine().system().description, NULL, MENU_FLAG_DISABLE, NULL); + item_append("", NULL, MENU_FLAG_DISABLE, NULL); + + image_interface_iterator iter(machine().root_device()); + for (device_image_interface *image = iter.first(); image != NULL; image = iter.next()) + image_info(image); +} + +void ui_menu_image_info::handle() +{ + // process the menu + process(0); +} + + +/*------------------------------------------------- + image_info - display image info for a specific + image interface device +-------------------------------------------------*/ + +void ui_menu_image_info::image_info(device_image_interface *image) +{ + if (image->exists()) + { + // display device type and filename + item_append(image->brief_instance_name(), image->basename(), 0, NULL); + + // if image has been loaded through softlist, let's add some more info + if (image->software_entry()) + { + std::string str; + + // display long filename + item_append(image->longname(), "", MENU_FLAG_DISABLE, NULL); + + // display manufacturer and year + strcatprintf(str, "%s, %s", image->manufacturer(), image->year()); + item_append(str.c_str(), "", MENU_FLAG_DISABLE, NULL); + + // display supported information, if available + switch (image->supported()) + { + case SOFTWARE_SUPPORTED_NO: + item_append("Not supported", "", MENU_FLAG_DISABLE, NULL); + break; + case SOFTWARE_SUPPORTED_PARTIAL: + item_append("Partially supported", "", MENU_FLAG_DISABLE, NULL); + break; + default: + break; + } + } + } + else + item_append(image->brief_instance_name(), "[empty]", 0, NULL); + item_append("", NULL, MENU_FLAG_DISABLE, NULL); +} |