OSDN Git Service

[UI][Qt] Implement new feature of upstream 2018-12-28.
[csp-qt/common_source_project-fm7.git] / source / src / qt / gui / qt_dialogs.h
1 /*
2         Skelton for retropc emulator
3
4         Author : K.Ohta <whatisthis.sowhat _at_ gmail.com>
5         Date   : 2015.01.07
6
7         [Qt dialogs]
8 */
9
10 #ifndef _CSP_QT_DIALOGS_H
11 #define _CSP_QT_DIALOGS_H
12
13 #include <QFileDialog>
14 #include <QComboBox>
15 #include <QGridLayout>
16 #include <QLabel>
17 #include <QApplication>
18 #include <QWindow>
19
20 #include "qt_main.h"
21
22 QT_BEGIN_NAMESPACE
23 typedef class DLL_PREFIX CSP_DiskParams : public QObject
24 {   
25 Q_OBJECT
26 Q_DISABLE_COPY(CSP_DiskParams)
27 public:
28 //   explicit CSP_DiskParams(QObject *parent = 0);
29         CSP_DiskParams(QObject *parent = 0) : QObject(parent){
30                 play = true;
31                 drive = 0;
32         }
33         ~CSP_DiskParams() {}
34         void setDrive(int num) {drive = num & 7;}
35         int getDrive(void) { return drive;}
36         void setPlay(bool num) {play = num;}
37         bool isPlaying(void) { return play;}
38         void setRecMode(bool num) {play = num; }
39         int getRecMode(void) {
40                 if(play) return 1;
41                 return 0;
42         }
43 signals:
44         int do_open_disk(int, QString);
45         int do_close_disk(int);
46         int sig_open_cart(int, QString);
47         int do_close_cart(int);
48         int do_open_cmt(bool, QString);
49         int do_close_cmt();
50         int sig_open_binary_file(int, QString, bool);
51         int do_open_quick_disk(int, QString);
52         public slots:
53         void _open_disk(const QString fname);
54         void _open_cart(const QString fname);
55         void _open_cmt(const QString fname);
56         void _open_binary(QString);
57         void _open_quick_disk(QString);
58 private:
59         int drive;
60         bool play;
61 } CSP_FileParams;
62
63 typedef class CSP_DiskDialog : public QFileDialog {
64         Q_OBJECT
65 public:
66         CSP_FileParams *param;
67         CSP_DiskDialog(QWidget *parent = 0) : QFileDialog(parent) {
68                 param = new CSP_FileParams();
69         }
70         ~CSP_DiskDialog() {
71                 delete param;
72         }
73 } CSP_DiskDialog;
74
75 class CSP_CreateDiskDialog : public QWidget {
76         Q_OBJECT
77         quint8 __real_media_type;
78         QComboBox media_type;
79         QLabel type_label;
80         QGridLayout layout;
81 public:
82         QFileDialog* dlg;
83         CSP_FileParams *param;
84         CSP_CreateDiskDialog(bool *masks, QWidget *parent = 0);
85         ~CSP_CreateDiskDialog() {
86                 delete param;
87                 delete dlg;
88         }
89 signals:
90         int sig_create_disk(quint8, QString);
91 public slots:
92         void do_set_type(int i) {
93                 __real_media_type = media_type.itemData(i).toUInt();
94         }
95         void do_create_disk(QString s) {
96                 emit sig_create_disk(__real_media_type, s);
97         }
98 };
99
100 QT_END_NAMESPACE
101
102 #endif //End.