diff options
Diffstat (limited to 'trunk/src/emu/uiswlist.h')
-rw-r--r-- | trunk/src/emu/uiswlist.h | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/trunk/src/emu/uiswlist.h b/trunk/src/emu/uiswlist.h new file mode 100644 index 00000000000..f914f0faedf --- /dev/null +++ b/trunk/src/emu/uiswlist.h @@ -0,0 +1,74 @@ +/*************************************************************************** + + uiswlist.h + + Internal MAME user interface for software list. + + Copyright Nicola Salmoria and the MAME Team. + Visit http://mamedev.org for licensing and usage restrictions. + +***************************************************************************/ + +#ifndef __UISWLIST_H__ +#define __UISWLIST_H__ + +class ui_menu_software_parts : public ui_menu { +public: + enum { T_ENTRY, T_FMGR }; + ui_menu_software_parts(running_machine &machine, render_container *container, const software_info *info, const char *interface, const software_part **part, bool opt_fmgr, int *result); + virtual ~ui_menu_software_parts(); + virtual void populate(); + virtual void handle(); + +private: + struct software_part_menu_entry { + int type; + const software_part *part; + }; + + const software_info *info; + const char *interface; + const software_part **selected_part; + bool opt_fmgr; + int *result; +}; + +class ui_menu_software_list : public ui_menu { +public: + ui_menu_software_list(running_machine &machine, render_container *container, const software_list_device *swlist, const char *interface, astring &result); + virtual ~ui_menu_software_list(); + virtual void populate(); + virtual void handle(); + +private: + struct entry_info { + entry_info *next; + + const char *short_name; + const char *long_name; + }; + + const software_list_device *swlist; /* currently selected list */ + const char *interface; + astring &result; + entry_info *entrylist; + char filename_buffer[1024]; + bool ordered_by_shortname; + + int compare_entries(const entry_info *e1, const entry_info *e2, bool shortname); + entry_info *append_software_entry(const software_info *swinfo); +}; + +class ui_menu_software : public ui_menu { +public: + ui_menu_software(running_machine &machine, render_container *container, const char *interface, const software_list_device **result); + virtual ~ui_menu_software(); + virtual void populate(); + virtual void handle(); + +private: + const char *interface; + const software_list_device **result; +}; + +#endif /* __UISWLIST_H__ */ |