summaryrefslogtreecommitdiffstatshomepage
path: root/trunk/src/emu/uiswlist.h
diff options
context:
space:
mode:
Diffstat (limited to 'trunk/src/emu/uiswlist.h')
-rw-r--r--trunk/src/emu/uiswlist.h74
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__ */