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
12 #include <QStringList>
20 #include "menu_flags.h"
31 namespace CSP_Ui_Menu {
32 struct DriveIndexPair {
38 Q_DECLARE_METATYPE(CSP_Ui_Menu::DriveIndexPair)
40 class DLL_PREFIX Menu_MetaClass : public QMenu {
45 std::shared_ptr<USING_FLAGS> using_flags;
51 QMenu *menu_inner_media;
53 QMenu *menu_write_protect;
57 QIcon icon_write_protected;
58 QIcon icon_write_enabled;
60 class Action_Control *action_insert;
61 class Action_Control *action_eject;
62 class Action_Control *action_recent;
63 class Action_Control *action_inner_media;
64 class Action_Control *action_write_protect_on;
65 class Action_Control *action_write_protect_off;
66 class Action_Control *action_select_media_list[128];
67 class Action_Control *action_recent_list[MAX_HISTORY];
69 QActionGroup *action_group_recent;
70 QActionGroup *action_group_inner_media;
71 QActionGroup *action_group_protect;
78 bool use_write_protect;
83 void create_pulldown_menu_sub(void);
84 void retranslate_pulldown_menu_sub(void);
88 QStringList ext_filter;
90 QStringList inner_media_list;
92 Menu_MetaClass(QMenuBar *root_entry, QString desc, std::shared_ptr<USING_FLAGS> p, QWidget *parent = 0, int drv = 0, int base_drv = 1);
95 virtual void create_pulldown_menu_device_sub(void);
96 virtual void connect_menu_device_sub(void);
97 virtual void retranslate_pulldown_menu_device_sub(void);
99 void create_pulldown_menu(void);
100 void retranslateUi(void);
101 //void setTitle(QString);
102 void setEmu(EMU_TEMPLATE *p);
104 bool getWriteProtect(void) {
105 return write_protect;
107 //QAction *menuAction(void);
109 void do_set_write_protect(bool f);
110 void do_open_media(int drv, QString name);
111 void do_insert_media(void);
112 void do_eject_media(void);
113 void do_open_inner_media(void);
114 void do_open_recent_media(void);
115 void do_write_protect_media(void);
116 void do_write_unprotect_media(void);
117 void do_add_media_extension(QString ext, QString description);
118 void do_set_initialize_directory(const char *dir);
119 void do_open_dialog(void);
120 void do_clear_inner_media(void);
121 void do_select_inner_media(int num);
122 void do_update_inner_media(QStringList lst, int num);
123 void do_update_inner_media_bubble(QStringList lst, int num);
124 void do_update_histories(QStringList lst);
125 void do_set_window_title(QString s);
127 int sig_open_media(int, QString);
128 int sig_eject_media(int);
129 int sig_write_protect_media(int, bool);
130 int sig_set_recent_media(int, int);
131 int sig_set_inner_slot(int, int);
132 int sig_insert_media(int);
133 int sig_update_inner_fd(int drv, QStringList base, class Action_Control **action_select_media_list,
134 QStringList lst, int num, bool use_d88_menus);
135 int sig_update_inner_bubble(int drv, QStringList base, class Action_Control **action_select_media_list,
136 QStringList lst, int num, bool use_d88_menus);
137 int sig_emu_update_config();