2 * Menu_MetaClass : Defines
3 * (C) 2015 by K.Ohta <whatisthis.sowhat _at_ gmail.com>
4 * Please use this file as templete.
8 #ifndef _CSP_QT_MENU_METACLASSES_H
9 #define _CSP_QT_MENU_METACLASSES_H
13 #include <QStringList>
22 #include "menu_flags.h"
37 namespace CSP_Ui_Menu {
38 struct DriveIndexPair {
44 Q_DECLARE_METATYPE(CSP_Ui_Menu::DriveIndexPair)
46 class DLL_PREFIX Menu_MetaClass : public QMenu {
51 std::shared_ptr<USING_FLAGS> using_flags;
57 QMenu *menu_inner_media;
59 QMenu *menu_write_protect;
63 QIcon icon_write_protected;
64 QIcon icon_write_enabled;
66 class Action_Control *action_insert;
67 class Action_Control *action_eject;
68 class Action_Control *action_recent;
69 class Action_Control *action_inner_media;
70 class Action_Control *action_write_protect_on;
71 class Action_Control *action_write_protect_off;
72 class Action_Control *action_select_media_list[128];
73 class Action_Control *action_recent_list[MAX_HISTORY];
74 QList<CSP_DiskDialog*> dialogs;
75 QActionGroup *action_group_recent;
76 QActionGroup *action_group_inner_media;
77 QActionGroup *action_group_protect;
84 bool use_write_protect;
89 void create_pulldown_menu_sub(void);
90 void retranslate_pulldown_menu_sub(void);
91 void do_open_dialog_common(CSP_DiskDialog* dlg);
95 QStringList ext_filter;
97 QStringList inner_media_list;
99 Menu_MetaClass(QMenuBar *root_entry, QString desc, std::shared_ptr<USING_FLAGS> p, QWidget *parent = 0, int drv = 0, int base_drv = 1);
102 virtual void create_pulldown_menu_device_sub(void);
103 virtual void connect_menu_device_sub(void);
104 virtual void retranslate_pulldown_menu_device_sub(void);
106 void create_pulldown_menu(void);
107 void retranslateUi(void);
108 //void setTitle(QString);
109 void setEmu(EMU_TEMPLATE *p);
111 bool getWriteProtect(void) {
112 return write_protect;
114 //QAction *menuAction(void);
116 void do_set_write_protect(bool f);
117 void do_open_media(int drv, QString name);
118 void do_insert_media(void);
119 void do_eject_media(void);
121 void do_open_inner_media(void);
122 void do_open_recent_media(void);
123 void do_write_protect_media(void);
124 void do_write_unprotect_media(void);
125 void do_add_media_extension(QString ext, QString description);
127 void do_set_initialize_directory(const char *dir);
128 virtual void do_open_dialog(void);
129 void do_clear_inner_media(void);
130 void do_select_inner_media(int num);
131 void do_update_inner_media(QStringList lst, int num);
132 void do_update_inner_media_bubble(QStringList lst, int num);
133 void do_update_histories(QStringList lst);
134 void do_insert_history(QString path);
136 void do_set_window_title(QString s);
137 void do_close_window();
138 void do_finish(int i);
141 int sig_open_media(int, QString);
142 int sig_eject_media(int);
143 int sig_write_protect_media(int, bool);
144 int sig_set_recent_media(int, int);
145 int sig_set_inner_slot(int, int);
146 int sig_insert_media(int);
147 int sig_update_inner_fd(int drv, QStringList base, class Action_Control **action_select_media_list,
148 QStringList lst, int num, bool use_d88_menus);
149 int sig_update_inner_bubble(int drv, QStringList base, class Action_Control **action_select_media_list,
150 QStringList lst, int num, bool use_d88_menus);
151 int sig_emu_update_config();