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);
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);
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);
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);
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);
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);
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);
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)
154 actionReset = new Action_Control(this);
155 actionReset->setObjectName(QString::fromUtf8("actionReset"));
156 connect(actionReset, SIGNAL(triggered()),
157 this, SLOT(OnReset())); // OK?
158 if(using_flags->is_use_special_reset()) {
159 actionSpecial_Reset = new Action_Control(this);
160 actionSpecial_Reset->setObjectName(QString::fromUtf8("actionSpecial_Reset"));
161 connect(actionSpecial_Reset, SIGNAL(triggered()),
162 this, SLOT(OnSpecialReset())); // OK?
165 actionExit_Emulator = new Action_Control(this);
166 actionExit_Emulator->setObjectName(QString::fromUtf8("actionExit_Emulator"));
167 //connect(actionExit_Emulator, SIGNAL(triggered()),
168 // this, SLOT(on_actionExit_triggered())); // OnGuiExit()?
170 if(using_flags->is_use_auto_key()) {
171 actionPaste_from_Clipboard = new Action_Control(this);
172 actionPaste_from_Clipboard->setObjectName(QString::fromUtf8("actionPaste_from_Clipboard"));
173 connect(actionPaste_from_Clipboard, SIGNAL(triggered()),
174 this, SLOT(OnStartAutoKey())); // OK?
175 actionStop_Pasting = new Action_Control(this);
176 actionStop_Pasting->setObjectName(QString::fromUtf8("actionStop_Pasting"));
177 connect(actionStop_Pasting, SIGNAL(triggered()),
178 this, SLOT(OnStopAutoKey())); // OK?
180 if(using_flags->is_use_state()) {
181 actionSave_State = new Action_Control(this);
182 actionSave_State->setObjectName(QString::fromUtf8("actionSave_State"));
183 connect(actionSave_State, SIGNAL(triggered()),
184 this, SLOT(OnSaveState())); // OK?
186 actionLoad_State = new Action_Control(this);
187 actionLoad_State->setObjectName(QString::fromUtf8("actionLoad_State"));
188 connect(actionLoad_State, SIGNAL(triggered()),
189 this, SLOT(OnLoadState())); // OK?
191 if(using_flags->is_use_debugger()) {
192 actionDebugger_1 = new Action_Control(this);
193 actionDebugger_1->setObjectName(QString::fromUtf8("actionDebugger_1"));
194 actionDebugger_1->binds->setValue1(0);
195 connect(actionDebugger_1, SIGNAL(triggered()),
196 actionDebugger_1->binds, SLOT(open_debugger())); // OK?
197 connect(actionDebugger_1->binds, SIGNAL(on_open_debugger(int)),
198 this, SLOT(OnOpenDebugger(int))); // OK?
200 actionDebugger_2 = new Action_Control(this);
201 actionDebugger_2->setObjectName(QString::fromUtf8("actionDebugger_2"));
202 actionDebugger_2->binds->setValue1(1);
203 connect(actionDebugger_2, SIGNAL(triggered()),
204 actionDebugger_2->binds, SLOT(open_debugger())); // OK?
205 connect(actionDebugger_2->binds, SIGNAL(on_open_debugger(int)),
206 this, SLOT(OnOpenDebugger(int))); // OK?
208 actionDebugger_3 = new Action_Control(this);
209 actionDebugger_3->binds->setValue1(2);
210 actionDebugger_3->setObjectName(QString::fromUtf8("actionDebugger_3"));
211 connect(actionDebugger_3, SIGNAL(triggered()),
212 actionDebugger_3->binds, SLOT(open_debugger())); // OK?
213 connect(actionDebugger_3->binds, SIGNAL(on_open_debugger(int)),
214 this, SLOT(OnOpenDebugger(int))); // OK?
219 void Ui_MainWindowBase::connectActions_ControlMenu(void)
221 menuControl->addAction(actionReset);
222 if(using_flags->is_use_special_reset()) {
223 menuControl->addAction(actionSpecial_Reset);
225 menuControl->addSeparator();
226 menuControl->addAction(menuCpu_Speed->menuAction());
228 if(using_flags->is_use_auto_key()) {
229 menuControl->addSeparator();
230 menuControl->addAction(menuCopy_Paste->menuAction());
232 menuControl->addSeparator();
233 menuControl->addAction(menuState->menuAction());
235 if(using_flags->is_use_debugger()) {
236 menuControl->addAction(menuDebugger->menuAction());
238 menuControl->addSeparator();
239 menuControl->addAction(actionExit_Emulator);
241 if(using_flags->is_use_state()) {
242 menuState->addAction(actionSave_State);
243 menuState->addSeparator();
244 menuState->addAction(actionLoad_State);
247 if(using_flags->is_use_auto_key()) {
248 menuCopy_Paste->addAction(actionPaste_from_Clipboard);
249 menuCopy_Paste->addAction(actionStop_Pasting);
251 menuCpu_Speed->addAction(actionSpeed_x1);
252 menuCpu_Speed->addAction(actionSpeed_x2);
253 menuCpu_Speed->addAction(actionSpeed_x4);
254 menuCpu_Speed->addAction(actionSpeed_x8);
255 menuCpu_Speed->addAction(actionSpeed_x16);
257 if(using_flags->is_use_debugger()) {
258 menuDebugger->addAction(actionDebugger_1);
259 menuDebugger->addAction(actionDebugger_2);
260 menuDebugger->addAction(actionDebugger_3);
261 menuDebugger->addSeparator();
265 void Ui_MainWindowBase::createContextMenu(void)
267 addAction(actionReset);
269 if(using_flags->is_use_special_reset()) {
270 addAction(actionSpecial_Reset);
272 addAction(menuCpu_Speed->menuAction());
274 if(using_flags->is_use_auto_key()) {
275 addAction(menuCopy_Paste->menuAction());
277 addAction(menuState->menuAction());
279 if(using_flags->is_use_debugger()) {
280 addAction(menuDebugger->menuAction());
282 addAction(actionExit_Emulator);
286 void Ui_MainWindowBase::retranslateControlMenu(const char *SpecialResetTitle, bool WithSpecialReset)
288 actionReset->setText(QApplication::translate("MainWindow", "Reset", 0));
289 actionReset->setIcon(ResetIcon);
290 if(using_flags->is_use_special_reset()) {
291 actionSpecial_Reset->setText(QApplication::translate("MainWindow", SpecialResetTitle, 0));
292 actionSpecial_Reset->setIcon(QIcon(":/icon_reset.png"));
295 actionExit_Emulator->setText(QApplication::translate("MainWindow", "Exit Emulator", 0));
296 actionExit_Emulator->setIcon(ExitIcon);
298 actionSpeed_x1->setText(QApplication::translate("MainWindow", "Speed x1", 0));
299 actionSpeed_x2->setText(QApplication::translate("MainWindow", "Speed x2", 0));
300 actionSpeed_x4->setText(QApplication::translate("MainWindow", "Speed x4", 0));
301 actionSpeed_x8->setText(QApplication::translate("MainWindow", "Speed x8", 0));
302 actionSpeed_x16->setText(QApplication::translate("MainWindow", "Speed x16", 0));
304 if(using_flags->is_use_auto_key()) {
305 actionPaste_from_Clipboard->setText(QApplication::translate("MainWindow", "Paste from Clipboard", 0));
306 actionPaste_from_Clipboard->setIcon(QIcon(":/icon_paste.png"));
307 actionStop_Pasting->setText(QApplication::translate("MainWindow", "Stop Pasting", 0));
308 actionStop_Pasting->setIcon(QApplication::style()->standardIcon(QStyle::SP_DialogCancelButton));
310 if(using_flags->is_use_state()) {
311 actionSave_State->setText(QApplication::translate("MainWindow", "Save State", 0));
312 actionSave_State->setIcon(QApplication::style()->standardIcon(QStyle::SP_DialogSaveButton));
313 actionLoad_State->setText(QApplication::translate("MainWindow", "Load State", 0));
314 actionLoad_State->setIcon(QApplication::style()->standardIcon(QStyle::SP_DialogOpenButton));
316 if(using_flags->is_use_debugger()) {
317 actionDebugger_1->setText(QApplication::translate("MainWindow", "Debugger 1", 0));
318 actionDebugger_2->setText(QApplication::translate("MainWindow", "Debugger 2", 0));
319 actionDebugger_3->setText(QApplication::translate("MainWindow", "Debugger 3", 0));
320 menuDebugger->setTitle(QApplication::translate("MainWindow", "Debugger", 0));
322 menuControl->setTitle(QApplication::translate("MainWindow", "Control", 0));
323 menuState->setTitle(QApplication::translate("MainWindow", "State", 0));
325 if(using_flags->is_use_auto_key()) {
326 menuCopy_Paste->setTitle(QApplication::translate("MainWindow", "Copy/Paste", 0));
328 menuCpu_Speed->setTitle(QApplication::translate("MainWindow", "CPU Speed", 0));
329 if(using_flags->is_use_mouse()) {
330 actionMouseEnable->setText(QApplication::translate("MainWindow", "Grab MOUSE", 0));
334 void Ui_MainWindowBase::do_set_sound_device(int num)
336 if((num < 0) || (num >= using_flags->get_use_sound_device_type())) return;
337 config.sound_device_type = num;
338 emit sig_emu_update_config();