OSDN Git Service

[UI][Qt] Add dipswitches.
authorK.Ohta <whatisthis.sowhat@gmail.com>
Sun, 20 Mar 2016 15:05:32 +0000 (00:05 +0900)
committerK.Ohta <whatisthis.sowhat@gmail.com>
Sun, 20 Mar 2016 15:05:32 +0000 (00:05 +0900)
source/src/qt/machines/qc10/MainWindow.cpp
source/src/qt/machines/qc10/menuclasses.h

index e59a733..1ad2fe5 100644 (file)
 #include "emu.h"
 #include "qt_main.h"
 
+
+Action_Control_QC10::Action_Control_QC10(QObject *parent) : Action_Control(parent)
+{
+       mz_binds = new Object_Menu_Control_QC10(parent);
+}
+
+Action_Control_QC10::~Action_Control_QC10(){
+       delete mz_binds;
+}
+
+Object_Menu_Control_QC10::Object_Menu_Control_QC10(QObject *parent) : Object_Menu_Control(parent)
+{
+}
+
+Object_Menu_Control_QC10::~Object_Menu_Control_QC10(){
+}
+
+void Object_Menu_Control_QC10::set_dipsw(bool flag)
+{
+       emit sig_dipsw(getValue1(), flag);
+}
+       
+
 void META_MainWindow::retranslateUi(void)
 {
        retranslateControlMenu(" ", false);
@@ -25,20 +48,52 @@ void META_MainWindow::retranslateUi(void)
 #if defined(USE_FD4)   
        retranslateFloppyMenu(3, 4);
 #endif
-       
        retranslateSoundMenu();
        retranslateScreenMenu();
        retranslateMachineMenu();
        retranslateEmulatorMenu();
        retranslateUI_Help();
-   
+       QString tmps;
+       QString n_tmps;
+       int i;
+       menu_Emu_DipSw->setTitle(QApplication::translate("MainWindow", "DIP Switches", 0));
+       for(i = 0; i < 8; i++) {
+               tmps = QApplication::translate("MainWindow", "DIP Switch #", 0);
+               n_tmps.setNum(i + 1);
+               action_Emu_DipSw[i]->setText(tmps + n_tmps);
+       }
        this->setWindowTitle(QApplication::translate("MainWindow", "MainWindow", 0));
   
 } // retranslateUi
 
 void META_MainWindow::setupUI_Emu(void)
 {
-
+       int i;
+       QString tmps;
+       
+       menuMachine->setVisible(true);
+       menu_Emu_DipSw = new QMenu(menuMachine);
+       menu_Emu_DipSw->setObjectName(QString::fromUtf8("menu_DipSw"));
+       actionGroup_DipSw = new QActionGroup(this);
+       actionGroup_DipSw->setExclusive(false);
+       menuMachine->addAction(menu_Emu_DipSw);
+       
+       for(i = 0; i < 3; i++) {
+       action_Emu_DipSw[i] = new Action_Control_QC10(this);
+        action_Emu_DipSw[i]->setCheckable(true);
+        action_Emu_DipSw[i]->setValue(i);
+        tmps.number(i + 1);
+        tmps = QString::fromUtf8("actionEmu_DipSw") + tmps;
+        action_Emu_DipSw[i]->setObjectName(tmps);
+               menu_Emu_DipSw->addAction(action_Emu_DipSw[i]);
+               if((config.dipswitch & (1 << i)) != 0) action_Emu_DipSw[i]->setChecked(true);
+               
+               actionGroup_DipSw->addAction(action_Emu_DipSw[i]);
+               connect(action_Emu_DipSw[i], SIGNAL(toggled(bool)),
+                               action_Emu_DipSw[i]->qc_binds, SLOT(set_dipsw(bool)));
+               connect(action_Emu_DipSw[i]->qc_binds, SIGNAL(sig_dipsw(int, bool)),
+                               this, SLOT(set_dipsw(int, bool)));
+       }
 
 }
 
index acadf6b..d149019 100644 (file)
@@ -3,23 +3,46 @@
 #define _CSP_QT_MENUCLASSES_H
 
 #include "mainwidget.h"
+#include "commonclasses.h"
+
 // This extends class CSP_MainWindow as Ui_MainWindow.
 // You may use this as 
 QT_BEGIN_NAMESPACE
 
-class Ui_MainWindow;
+class Object_Menu_Control_QC10: public Object_Menu_Control
+{
+       Q_OBJECT
+ public:
+       Object_Menu_Control_QC10(QObject *parent);
+       ~Object_Menu_Control_QC10();
+signals:
+       int sig_dipsw(int, bool);
+public slots:
+       void set_dipsw(bool);
+};
 
+class Action_Control_QC10 : public Action_Control
+{
+       Q_OBJECT
+public:
+       Object_Menu_Control_QC10 *mz_binds;
+       Action_Control_QC10(QObject *parent);
+       ~Action_Control_QC10();
+};
+
+class Ui_MainWindow;
 //  wrote of Specific menu.
 class META_MainWindow : public Ui_MainWindow {
-  Q_OBJECT
- protected:
-  void setupUI_Emu(void);
-  void retranslateUi(void);
- public:
-  META_MainWindow(QWidget *parent = 0);
-  ~META_MainWindow();
- public slots:
-
+       Q_OBJECT
+protected:
+       QMenu *menu_Emu_DipSw;
+       Action_Control_QC10 *action_Emu_DipSw[8];
+       void setupUI_Emu(void);
+       void retranslateUi(void);
+public:
+       META_MainWindow(QWidget *parent = 0);
+       ~META_MainWindow();
+public slots:
 };
 
 QT_END_NAMESPACE