2 * Common Source Project/ Qt
3 * (C) 2015 K.Ohta <whatisthis.sowhat _at_ gmail.com>
4 * History: Jan 10, 2015 : Initial
8 //#include "menuclasses.h"
9 #include "commonclasses.h"
10 #include "mainwidget_base.h"
11 #include "menu_flags.h"
13 //extern USING_FLAGS *using_flags;
15 void Object_Menu_Control::set_boot_mode(void) {
16 emit on_boot_mode(bindValue);
19 void Object_Menu_Control::set_cpu_type(void) {
20 emit on_cpu_type(bindValue);
22 void Object_Menu_Control::set_cpupower(void) {
23 emit on_cpu_power(bindValue);
25 void Object_Menu_Control::open_debugger(void) {
26 emit on_open_debugger(bindValue);
28 void Object_Menu_Control::do_set_device_type(void){
29 emit sig_device_type(this->getValue1());
31 void Object_Menu_Control::do_set_printer_device(void){
32 emit sig_printer_device(this->getValue1());
34 void Object_Menu_Control::do_set_sound_device(void){
35 emit sig_sound_device(this->getValue1());
37 void Object_Menu_Control::do_set_drive_type(void)
39 emit sig_drive_type(getValue1());
42 void Ui_MainWindowBase::ConfigCpuSpeed(void)
44 actionSpeed_x1 = new Action_Control(this, using_flags);
45 actionSpeed_x1->setObjectName(QString::fromUtf8("actionSpeed_x1"));
46 actionSpeed_x1->setCheckable(true);
47 actionSpeed_x1->setChecked(true);
48 actionSpeed_x1->binds->setValue1(0);
49 connect(actionSpeed_x1, SIGNAL(triggered()), actionSpeed_x1->binds, SLOT(set_cpupower())); // OK?
50 connect(actionSpeed_x1->binds, SIGNAL(on_cpu_power(int)), this, SLOT(set_cpu_power(int))); // OK?
52 actionSpeed_x2 = new Action_Control(this, using_flags);
53 actionSpeed_x2->setObjectName(QString::fromUtf8("actionSpeed_x2"));
54 actionSpeed_x2->setCheckable(true);
55 actionSpeed_x2->binds->setValue1(1);
56 connect(actionSpeed_x2, SIGNAL(triggered()), actionSpeed_x2->binds, SLOT(set_cpupower())); // OK?
57 connect(actionSpeed_x2->binds, SIGNAL(on_cpu_power(int)), this, SLOT(set_cpu_power(int))); // OK?
59 actionSpeed_x4 = new Action_Control(this, using_flags);
60 actionSpeed_x4->setObjectName(QString::fromUtf8("actionSpeed_x4"));
61 actionSpeed_x4->setCheckable(true);
62 actionSpeed_x4->binds->setValue1(2);
63 connect(actionSpeed_x4, SIGNAL(triggered()), actionSpeed_x4->binds, SLOT(set_cpupower())); // OK?
64 connect(actionSpeed_x4->binds, SIGNAL(on_cpu_power(int)), this, SLOT(set_cpu_power(int))); // OK?
66 actionSpeed_x8 = new Action_Control(this, using_flags);
67 actionSpeed_x8->setObjectName(QString::fromUtf8("actionSpeed_x8"));
68 actionSpeed_x8->setCheckable(true);
69 actionSpeed_x8->binds->setValue1(3);
70 connect(actionSpeed_x8, SIGNAL(triggered()), actionSpeed_x8->binds, SLOT(set_cpupower())); // OK?
71 connect(actionSpeed_x8->binds, SIGNAL(on_cpu_power(int)), this, SLOT(set_cpu_power(int))); // OK?
73 actionSpeed_x16 = new Action_Control(this, using_flags);
74 actionSpeed_x16->setObjectName(QString::fromUtf8("actionSpeed_x16"));
75 actionSpeed_x16->setCheckable(true);
76 actionSpeed_x16->binds->setValue1(4);
77 connect(actionSpeed_x16, SIGNAL(triggered()), actionSpeed_x16->binds, SLOT(set_cpupower())); // OK?
78 connect(actionSpeed_x16->binds, SIGNAL(on_cpu_power(int)), this, SLOT(set_cpu_power(int))); // OK?
80 actionGroup_CpuSpeed = new QActionGroup(this);
81 actionGroup_CpuSpeed->setExclusive(true);
82 actionGroup_CpuSpeed->addAction(actionSpeed_x1);
83 actionGroup_CpuSpeed->addAction(actionSpeed_x2);
84 actionGroup_CpuSpeed->addAction(actionSpeed_x4);
85 actionGroup_CpuSpeed->addAction(actionSpeed_x8);
86 actionGroup_CpuSpeed->addAction(actionSpeed_x16);
88 void Ui_MainWindowBase::do_change_boot_mode(int mode)
90 if((mode < 0) || (mode >= 8)) return;
91 config.boot_mode = mode;
92 emit sig_emu_update_config();
97 void Ui_MainWindowBase::ConfigCPUBootMode(int num)
102 if(num >= 8) num = 7;
104 actionGroup_BootMode = new QActionGroup(this);
105 actionGroup_BootMode->setExclusive(true);
106 for(i = 0; i < num; i++) {
107 actionBootMode[i] = new Action_Control(this, using_flags);
108 tmps = tmps.setNum(i);
109 tmps = QString::fromUtf8("actionBootMode_") + tmps;
110 actionBootMode[i]->setObjectName(tmps);
111 actionBootMode[i]->setCheckable(true);
112 if(i == config.boot_mode) actionBootMode[i]->setChecked(true);
113 actionBootMode[i]->binds->setValue1(i);
114 menuBootMode->addAction(actionBootMode[i]);
115 actionGroup_BootMode->addAction(actionBootMode[i]);
116 connect(actionBootMode[i], SIGNAL(triggered()), actionBootMode[i]->binds, SLOT(set_boot_mode())); // OK?
117 connect(actionBootMode[i]->binds, SIGNAL(on_boot_mode(int)), this, SLOT(do_change_boot_mode(int))); // OK?
121 void Ui_MainWindowBase::do_change_cpu_type(int mode)
123 if((mode < 0) || (mode >= 8)) return;
124 config.cpu_type = mode;
125 emit sig_emu_update_config();
128 void Ui_MainWindowBase::ConfigCPUTypes(int num)
133 if(num >= 8) num = 7;
135 actionGroup_CpuType = new QActionGroup(this);
136 actionGroup_CpuType->setExclusive(true);
137 for(i = 0; i < num; i++) {
138 actionCpuType[i] = new Action_Control(this, using_flags);
139 tmps = tmps.setNum(i);
140 tmps = QString::fromUtf8("actionCpuType_") + tmps;
141 actionCpuType[i]->setObjectName(tmps);
142 actionCpuType[i]->setCheckable(true);
143 if(i == config.cpu_type) actionCpuType[i]->setChecked(true);
144 actionCpuType[i]->binds->setValue1(i);
145 menuCpuType->addAction(actionCpuType[i]);
146 actionGroup_CpuType->addAction(actionCpuType[i]);
147 connect(actionCpuType[i], SIGNAL(triggered()), actionCpuType[i]->binds, SLOT(set_cpu_type())); // OK?
148 connect(actionCpuType[i]->binds, SIGNAL(on_cpu_type(int)), this, SLOT(do_change_cpu_type(int))); // OK?
152 void Ui_MainWindowBase::ConfigControlMenu(void)
155 actionReset = new Action_Control(this, using_flags);
156 actionReset->setObjectName(QString::fromUtf8("actionReset"));
157 connect(actionReset, SIGNAL(triggered()),
158 this, SLOT(OnReset())); // OK?
159 if(using_flags->is_use_special_reset()) {
160 actionSpecial_Reset = new Action_Control(this, using_flags);
161 actionSpecial_Reset->setObjectName(QString::fromUtf8("actionSpecial_Reset"));
162 connect(actionSpecial_Reset, SIGNAL(triggered()),
163 this, SLOT(OnSpecialReset())); // OK?
166 actionExit_Emulator = new Action_Control(this, using_flags);
167 actionExit_Emulator->setObjectName(QString::fromUtf8("actionExit_Emulator"));
168 //connect(actionExit_Emulator, SIGNAL(triggered()),
169 // this, SLOT(on_actionExit_triggered())); // OnGuiExit()?
171 if(using_flags->is_use_auto_key()) {
172 actionPaste_from_Clipboard = new Action_Control(this, using_flags);
173 actionPaste_from_Clipboard->setObjectName(QString::fromUtf8("actionPaste_from_Clipboard"));
174 connect(actionPaste_from_Clipboard, SIGNAL(triggered()),
175 this, SLOT(OnStartAutoKey())); // OK?
176 actionStop_Pasting = new Action_Control(this, using_flags);
177 actionStop_Pasting->setObjectName(QString::fromUtf8("actionStop_Pasting"));
178 connect(actionStop_Pasting, SIGNAL(triggered()),
179 this, SLOT(OnStopAutoKey())); // OK?
181 if(using_flags->is_use_state()) {
182 actionSave_State = new Action_Control(this, using_flags);
183 actionSave_State->setObjectName(QString::fromUtf8("actionSave_State"));
184 connect(actionSave_State, SIGNAL(triggered()),
185 this, SLOT(OnSaveState())); // OK?
187 actionLoad_State = new Action_Control(this, using_flags);
188 actionLoad_State->setObjectName(QString::fromUtf8("actionLoad_State"));
189 connect(actionLoad_State, SIGNAL(triggered()),
190 this, SLOT(OnLoadState())); // OK?
192 if(using_flags->is_use_debugger()) {
193 for(i = 0; i < _MAX_DEBUGGER; i++) {
196 actionDebugger[i] = new Action_Control(this, using_flags);
197 actionDebugger[i]->setObjectName(QString::fromUtf8("actionDebugger") + tmps);
198 actionDebugger[i]->binds->setValue1(i);
199 connect(actionDebugger[i], SIGNAL(triggered()),
200 actionDebugger[i]->binds, SLOT(open_debugger())); // OK?
201 connect(actionDebugger[i]->binds, SIGNAL(on_open_debugger(int)),
202 this, SLOT(OnOpenDebugger(int))); // OK?
208 void Ui_MainWindowBase::connectActions_ControlMenu(void)
210 menuControl->addAction(actionReset);
211 if(using_flags->is_use_special_reset()) {
212 menuControl->addAction(actionSpecial_Reset);
214 menuControl->addSeparator();
215 menuControl->addAction(menuCpu_Speed->menuAction());
217 if(using_flags->is_use_auto_key()) {
218 menuControl->addSeparator();
219 menuControl->addAction(menuCopy_Paste->menuAction());
221 menuControl->addSeparator();
222 menuControl->addAction(menuState->menuAction());
224 if(using_flags->is_use_debugger()) {
225 menuControl->addAction(menuDebugger->menuAction());
227 menuControl->addSeparator();
228 menuControl->addAction(actionExit_Emulator);
230 if(using_flags->is_use_state()) {
231 menuState->addAction(actionSave_State);
232 menuState->addSeparator();
233 menuState->addAction(actionLoad_State);
236 if(using_flags->is_use_auto_key()) {
237 menuCopy_Paste->addAction(actionPaste_from_Clipboard);
238 menuCopy_Paste->addAction(actionStop_Pasting);
240 menuCpu_Speed->addAction(actionSpeed_x1);
241 menuCpu_Speed->addAction(actionSpeed_x2);
242 menuCpu_Speed->addAction(actionSpeed_x4);
243 menuCpu_Speed->addAction(actionSpeed_x8);
244 menuCpu_Speed->addAction(actionSpeed_x16);
246 if(using_flags->is_use_debugger()) {
248 for(i = 0; i < _MAX_DEBUGGER; i++) {
249 menuDebugger->addAction(actionDebugger[i]);
250 if(i > 0) actionDebugger[i]->setVisible(false);
255 void Ui_MainWindowBase::createContextMenu(void)
257 addAction(actionReset);
259 if(using_flags->is_use_special_reset()) {
260 addAction(actionSpecial_Reset);
262 addAction(menuCpu_Speed->menuAction());
264 if(using_flags->is_use_auto_key()) {
265 addAction(menuCopy_Paste->menuAction());
267 addAction(menuState->menuAction());
269 if(using_flags->is_use_debugger()) {
270 addAction(menuDebugger->menuAction());
272 addAction(actionExit_Emulator);
276 void Ui_MainWindowBase::retranslateControlMenu(const char *SpecialResetTitle, bool WithSpecialReset)
278 actionReset->setText(QApplication::translate("MainWindow", "Reset", 0));
279 actionReset->setIcon(ResetIcon);
280 if(using_flags->is_use_special_reset()) {
281 actionSpecial_Reset->setText(QApplication::translate("MainWindow", SpecialResetTitle, 0));
282 actionSpecial_Reset->setIcon(QIcon(":/icon_reset.png"));
285 actionExit_Emulator->setText(QApplication::translate("MainWindow", "Exit Emulator", 0));
286 actionExit_Emulator->setIcon(ExitIcon);
288 actionSpeed_x1->setText(QApplication::translate("MainWindow", "Speed x1", 0));
289 actionSpeed_x2->setText(QApplication::translate("MainWindow", "Speed x2", 0));
290 actionSpeed_x4->setText(QApplication::translate("MainWindow", "Speed x4", 0));
291 actionSpeed_x8->setText(QApplication::translate("MainWindow", "Speed x8", 0));
292 actionSpeed_x16->setText(QApplication::translate("MainWindow", "Speed x16", 0));
294 if(using_flags->is_use_auto_key()) {
295 actionPaste_from_Clipboard->setText(QApplication::translate("MainWindow", "Paste from Clipboard", 0));
296 actionPaste_from_Clipboard->setIcon(QIcon(":/icon_paste.png"));
297 actionStop_Pasting->setText(QApplication::translate("MainWindow", "Stop Pasting", 0));
298 actionStop_Pasting->setIcon(QApplication::style()->standardIcon(QStyle::SP_DialogCancelButton));
300 if(using_flags->is_use_state()) {
301 actionSave_State->setText(QApplication::translate("MainWindow", "Save State", 0));
302 actionSave_State->setIcon(QApplication::style()->standardIcon(QStyle::SP_DialogSaveButton));
303 actionLoad_State->setText(QApplication::translate("MainWindow", "Load State", 0));
304 actionLoad_State->setIcon(QApplication::style()->standardIcon(QStyle::SP_DialogOpenButton));
306 if(using_flags->is_use_debugger()) {
307 actionDebugger[0]->setText(QApplication::translate("MainWindow", "Main CPU", 0));
308 actionDebugger[1]->setText(QApplication::translate("MainWindow", "Sub CPU", 0));
309 actionDebugger[2]->setText(QApplication::translate("MainWindow", "Debugger 3", 0));
310 actionDebugger[3]->setText(QApplication::translate("MainWindow", "Debugger 4", 0));
311 menuDebugger->setTitle(QApplication::translate("MainWindow", "Debugger", 0));
313 menuControl->setTitle(QApplication::translate("MainWindow", "Control", 0));
314 menuState->setTitle(QApplication::translate("MainWindow", "State", 0));
316 if(using_flags->is_use_auto_key()) {
317 menuCopy_Paste->setTitle(QApplication::translate("MainWindow", "Copy/Paste", 0));
319 menuCpu_Speed->setTitle(QApplication::translate("MainWindow", "CPU Speed", 0));
320 if(using_flags->is_use_mouse()) {
321 actionMouseEnable->setText(QApplication::translate("MainWindow", "Grab MOUSE", 0));
325 void Ui_MainWindowBase::do_set_sound_device(int num)
327 if((num < 0) || (num >= using_flags->get_use_sound_device_type())) return;
328 config.sound_device_type = num;
329 emit sig_emu_update_config();