OSDN Git Service

bbc21a575a8abe6cf038f952bb90ad6dab69537e
[csp-qt/common_source_project-fm7.git] / source / src / qt / machines / ex80 / MainWindow.cpp
1 /*
2  * Common Source code Project:
3  * Ui->Qt->MainWindow for JR100 .
4  * (C) 2015 K.Ohta <whatisthis.sowhat _at_ gmail.com>
5  *   License : GPLv2
6  *   History :
7  * Jan 14, 2015 : Initial, many of constructors were moved to qt/gui/menu_main.cpp.
8  */
9
10 #include <QVariant>
11 #include <QtGui>
12 #include "emu.h"
13 #include "commonclasses.h"
14 #include "menuclasses.h"
15 #include "qt_main.h"
16
17
18 void Action_Control_EX80::do_set_sw1()
19 {
20         emit sig_set_dipsw(0, bind_bool);
21 }
22
23 void Action_Control_EX80::do_set_sw2()
24 {
25         emit sig_set_dipsw(1, bind_bool);
26 }
27
28 void Action_Control_EX80::do_set_vram_addr()
29 {
30         int addr = bind_int;
31         emit sig_set_dipsw(2, ((addr & 1) != 0));
32         emit sig_set_dipsw(3, ((addr & 2) != 0));
33 }
34
35 void Action_Control_EX80::setBoolValue(bool flag)
36 {
37         bind_bool = flag;
38 }
39
40 void Action_Control_EX80::setIntValue(int val)
41 {
42         bind_int = val;
43 }
44
45
46 Action_Control_EX80::Action_Control_EX80(QObject *parent, USING_FLAGS *pp) : Action_Control(parent, pp)
47 {
48         bind_bool = false;
49         bind_int = 0;
50 }
51
52 Action_Control_EX80::~Action_Control_EX80()
53 {
54 }
55
56
57 void META_MainWindow::setupUI_Emu(void)
58 {
59    int i; 
60    actionGroup_DipSW1 = new QActionGroup(this);
61    actionGroup_DipSW1->setExclusive(true);
62    
63    actionDipSW1_ON = new Action_Control_EX80(this, using_flags);
64    actionDipSW1_ON->setCheckable(true);
65    actionDipSW1_ON->setVisible(true);
66    actionDipSW1_ON->setBoolValue(true);
67    actionGroup_DipSW1->addAction(actionDipSW1_ON);
68    
69    actionDipSW1_OFF = new Action_Control_EX80(this, using_flags);
70    actionDipSW1_OFF->setCheckable(true);
71    actionDipSW1_OFF->setVisible(true);
72    actionDipSW1_OFF->setBoolValue(false);
73    actionGroup_DipSW1->addAction(actionDipSW1_OFF);
74    
75    if((config.dipswitch & 0x01) != 0) {
76            actionDipSW1_ON->setChecked(true);
77    } else {
78            actionDipSW1_OFF->setChecked(true);
79    }
80    
81    actionGroup_DipSW2 = new QActionGroup(this);
82    actionGroup_DipSW2->setExclusive(true);
83    
84    actionDipSW2_ON = new Action_Control_EX80(this, using_flags);
85    actionDipSW2_ON->setCheckable(true);
86    actionDipSW2_ON->setVisible(true);
87    actionDipSW2_ON->setBoolValue(true);
88    actionGroup_DipSW2->addAction(actionDipSW2_ON);
89    
90    actionDipSW2_OFF = new Action_Control_EX80(this, using_flags);
91    actionDipSW2_OFF->setCheckable(true);
92    actionDipSW2_OFF->setVisible(true);
93    actionDipSW2_OFF->setBoolValue(false);
94    actionGroup_DipSW2->addAction(actionDipSW2_OFF);
95    
96    if((config.dipswitch & 0x02) != 0) {
97            actionDipSW2_ON->setChecked(true);
98    } else {
99            actionDipSW2_OFF->setChecked(true);
100    }
101    
102    menuDipSW1 = new QMenu(menuMachine);
103    menuDipSW1->setObjectName(QString::fromUtf8("menuControl_DipSW1"));
104    menuDipSW1->addAction(actionDipSW1_ON);
105    menuDipSW1->addAction(actionDipSW1_OFF);
106    menuMachine->addAction(menuDipSW1->menuAction());
107    connect(actionDipSW1_ON, SIGNAL(triggered()), actionDipSW2_ON, SLOT(do_set_sw1()));
108    connect(actionDipSW1_OFF, SIGNAL(triggered()), actionDipSW2_OFF, SLOT(do_set_sw1()));
109    connect(actionDipSW1_ON,  SIGNAL(sig_set_dipsw(int, bool)), this, SLOT(set_dipsw(int, bool)));
110    connect(actionDipSW1_OFF,  SIGNAL(sig_set_dipsw(int, bool)), this, SLOT(set_dipsw(int, bool)));
111
112    menuDipSW2 = new QMenu(menuMachine);
113    menuDipSW2->setObjectName(QString::fromUtf8("menuControl_DipSW2"));
114    menuDipSW2->addAction(actionDipSW2_ON);
115    menuDipSW2->addAction(actionDipSW2_OFF);
116    menuMachine->addAction(menuDipSW2->menuAction());
117    connect(actionDipSW2_ON, SIGNAL(triggered()), actionDipSW2_ON, SLOT(do_set_sw2()));
118    connect(actionDipSW2_OFF, SIGNAL(triggered()), actionDipSW2_OFF, SLOT(do_set_sw2()));
119    connect(actionDipSW2_ON,  SIGNAL(sig_set_dipsw(int, bool)), this, SLOT(set_dipsw(int, bool)));
120    connect(actionDipSW2_OFF,  SIGNAL(sig_set_dipsw(int, bool)), this, SLOT(set_dipsw(int, bool)));
121                    
122    menuVramAddr = new QMenu(menuMachine);
123    menuVramAddr->setObjectName(QString::fromUtf8("menuControl_VramAddr"));
124    
125    actionGroup_VramAddr = new QActionGroup(this);
126    actionGroup_VramAddr->setExclusive(true);
127    int dipbit = (config.dipswitch & 0x0c) >> 2;
128    for(i = 0; i < 4; i++) {
129            actionVramAddr[i] = new Action_Control_EX80(this, using_flags);
130            actionVramAddr[i]->setCheckable(true);
131            actionVramAddr[i]->setVisible(true);
132            actionVramAddr[i]->setIntValue(i);
133            actionGroup_VramAddr->addAction(actionVramAddr[i]);
134            menuVramAddr->addAction(actionVramAddr[i]);
135            
136            if(i == dipbit) actionVramAddr[i]->setChecked(true);
137            connect(actionVramAddr[i], SIGNAL(triggered()), actionVramAddr[i], SLOT(do_set_vram_addr()));
138            connect(actionVramAddr[i],  SIGNAL(sig_set_dipsw(int, bool)), this, SLOT(set_dipsw(int, bool)));
139    }
140    menuMachine->addAction(menuVramAddr->menuAction());
141 }
142
143 void META_MainWindow::retranslateUi(void)
144 {
145         int i;
146         retranslateControlMenu("System Reset",  false);
147         retranslateCMTMenu();
148         retranslateBinaryMenu(0, 1);
149         retranslateSoundMenu();
150         retranslateScreenMenu();
151         retranslateMachineMenu();
152         retranslateEmulatorMenu();
153         retranslateUI_Help();
154         
155         this->setWindowTitle(QApplication::translate("MainWindow", "MainWindow", 0));
156   
157 #ifdef USE_MOUSE
158         actionMouseEnable->setVisible(false);
159 #endif
160         menuDipSW1->setTitle(QApplication::translate("MainWindow", "SW1", 0));
161         actionDipSW1_ON->setText(QApplication::translate("MainWindow", "STEP", 0));
162         actionDipSW1_OFF->setText(QApplication::translate("MainWindow", "AUTO", 0));
163
164         menuDipSW2->setTitle(QApplication::translate("MainWindow", "SW2", 0));
165         actionDipSW2_ON->setText(QApplication::translate("MainWindow", "CHAR", 0));
166         actionDipSW2_OFF->setText(QApplication::translate("MainWindow", "BIT", 0));
167
168         menuVramAddr->setTitle(QApplication::translate("MainWindow", "VRAM Address", 0));
169         actionVramAddr[0]->setText(QApplication::translate("MainWindow", "$8000-$81FF", 0));
170         actionVramAddr[1]->setText(QApplication::translate("MainWindow", "$8200-$83FF", 0));
171         actionVramAddr[2]->setText(QApplication::translate("MainWindow", "$8400-$85FF", 0));
172         actionVramAddr[3]->setText(QApplication::translate("MainWindow", "$8600-$87FF", 0));
173 #ifdef USE_DEBUGGER
174         actionDebugger[0]->setVisible(true);
175         actionDebugger[1]->setVisible(false);
176         actionDebugger[2]->setVisible(false);
177         actionDebugger[3]->setVisible(false);
178 #endif
179         
180
181         // Set Labels
182 } // retranslateUi
183
184
185
186 META_MainWindow::META_MainWindow(USING_FLAGS *p, QWidget *parent) : Ui_MainWindow(p, parent)
187 {
188    setupUI_Emu();
189    retranslateUi();
190 }
191
192
193 META_MainWindow::~META_MainWindow()
194 {
195 }
196
197 //QT_END_NAMESPACE
198
199
200