diff options
Diffstat (limited to 'src/frontend/mame/ui/utils.h')
-rw-r--r-- | src/frontend/mame/ui/utils.h | 43 |
1 files changed, 32 insertions, 11 deletions
diff --git a/src/frontend/mame/ui/utils.h b/src/frontend/mame/ui/utils.h index 67320c19b6f..184f922d7d2 100644 --- a/src/frontend/mame/ui/utils.h +++ b/src/frontend/mame/ui/utils.h @@ -16,6 +16,7 @@ #include "unicode.h" #include <algorithm> +#include <functional> #include <limits> #include <memory> #include <string> @@ -38,9 +39,14 @@ struct ui_system_info int index; bool available = false; + std::string description; + std::string parent; + std::u32string ucs_shortname; std::u32string ucs_description; std::u32string ucs_manufacturer_description; + std::u32string ucs_default_description; + std::u32string ucs_manufacturer_default_description; }; struct ui_software_info @@ -49,7 +55,7 @@ struct ui_software_info // info for software list item ui_software_info( - software_info const &info, + software_info const &sw, software_part const &p, game_driver const &d, std::string const &li, @@ -60,19 +66,19 @@ struct ui_software_info ui_software_info(game_driver const &d); // copyable/movable - ui_software_info(ui_software_info const &) = default; - ui_software_info(ui_software_info &&) = default; - ui_software_info &operator=(ui_software_info const &) = default; + ui_software_info(ui_software_info const &that); + ui_software_info(ui_software_info &&that) = default; + ui_software_info &operator=(ui_software_info const &that); ui_software_info &operator=(ui_software_info &&) = default; bool operator==(ui_software_info const &r) const { - // compares all fields except available - return shortname == r.shortname && longname == r.longname && parentname == r.parentname - && year == r.year && publisher == r.publisher && supported == r.supported - && part == r.part && driver == r.driver && listname == r.listname - && interface == r.interface && instance == r.instance && startempty == r.startempty - && parentlongname == r.parentlongname && usage == r.usage && devicetype == r.devicetype; + // compares all fields except info (fragile), alttitles (included in info) and available (environmental) + return (shortname == r.shortname) && (longname == r.longname) && (parentname == r.parentname) + && (year == r.year) && (publisher == r.publisher) && (supported == r.supported) + && (part == r.part) && (driver == r.driver) && (listname == r.listname) + && (interface == r.interface) && (instance == r.instance) && (startempty == r.startempty) + && (parentlongname == r.parentlongname) && (devicetype == r.devicetype); } std::string shortname; @@ -88,8 +94,10 @@ struct ui_software_info std::string instance; uint8_t startempty = 0; std::string parentlongname; - std::string usage; + std::string infotext; std::string devicetype; + std::vector<software_info_item> info; + std::vector<std::reference_wrapper<std::string const> > alttitles; bool available = false; }; @@ -206,6 +214,10 @@ public: CLONES, YEAR, PUBLISHERS, + DEVELOPERS, + DISTRIBUTORS, + AUTHORS, + PROGRAMMERS, SUPPORTED, PARTIAL_SUPPORTED, UNSUPPORTED, @@ -287,6 +299,10 @@ public: std::vector<std::string> const ®ions() const { return m_regions; } std::vector<std::string> const &publishers() const { return m_publishers; } std::vector<std::string> const &years() const { return m_years; } + std::vector<std::string> const &developers() const { return m_developers; } + std::vector<std::string> const &distributors() const { return m_distributors; } + std::vector<std::string> const &authors() const { return m_authors; } + std::vector<std::string> const &programmers() const { return m_programmers; } std::vector<std::string> const &device_types() const { return m_device_types; } std::vector<std::string> const &list_names() const { return m_list_names; } std::vector<std::string> const &list_descriptions() const { return m_list_descriptions; } @@ -295,6 +311,7 @@ public: void add_region(std::string const &longname); void add_publisher(std::string const &publisher); void add_year(std::string const &year); + void add_info(software_info_item const &info); void add_device_type(std::string const &device_type); void add_list(std::string const &name, std::string const &description); void finalise(); @@ -307,6 +324,10 @@ private: std::vector<std::string> m_regions; std::vector<std::string> m_publishers; std::vector<std::string> m_years; + std::vector<std::string> m_developers; + std::vector<std::string> m_distributors; + std::vector<std::string> m_authors; + std::vector<std::string> m_programmers; std::vector<std::string> m_device_types; std::vector<std::string> m_list_names, m_list_descriptions; }; |