]> Shamusworld >> Repos - virtualjaguar/blob - src/gui/mainwin.h
Added RISC disassembly browser.
[virtualjaguar] / src / gui / mainwin.h
1 //
2 // mainwin.h: Header file
3 //
4 // by James Hammons
5 // (C) 2010 Underground Software
6 //
7
8 #ifndef __MAINWIN_H__
9 #define __MAINWIN_H__
10
11 //Hrm. uh??? I thought this wasn't the way to do this stuff...???
12 #include <QtGui>
13
14 // Forward declarations
15 class GLWidget;
16 class AboutWindow;
17 class HelpWindow;
18 class FilePickerWindow;
19 class MemoryBrowserWindow;
20 class CPUBrowserWindow;
21 class OPBrowserWindow;
22 class M68KDasmBrowserWindow;
23 class RISCDasmBrowserWindow;
24
25 class MainWin: public QMainWindow
26 {
27         // All Qt apps require this macro for signal/slot functionality to work
28         Q_OBJECT
29
30         public:
31 //              MainWin(QString);
32                 MainWin(bool);
33                 void LoadFile(QString);
34                 void SyncUI(void);
35
36         protected:
37                 void closeEvent(QCloseEvent *);
38                 void keyPressEvent(QKeyEvent *);
39                 void keyReleaseEvent(QKeyEvent *);
40
41         private slots:
42                 void Open(void);
43                 void Configure(void);
44                 void Timer(void);
45                 void TogglePowerState(void);
46                 void ToggleRunState(void);
47                 void SetZoom100(void);
48                 void SetZoom200(void);
49                 void SetZoom300(void);
50                 void SetNTSC(void);
51                 void SetPAL(void);
52                 void ToggleBlur(void);
53                 void ShowAboutWin(void);
54                 void ShowHelpWin(void);
55                 void InsertCart(void);
56                 void Unpause(void);
57                 void LoadSoftware(QString);
58                 void ToggleCDUsage(void);
59                 void FrameAdvance(void);
60                 void ToggleFullScreen(void);
61
62                 void ShowMemoryBrowserWin(void);
63                 void ShowCPUBrowserWin(void);
64                 void ShowOPBrowserWin(void);
65                 void ShowM68KDasmBrowserWin(void);
66                 void ShowRISCDasmBrowserWin(void);
67
68         private:
69                 void HandleKeys(QKeyEvent *, bool);
70                 void HandleGamepads(void);
71                 void SetFullScreen(bool state = true);
72                 void ResizeMainWindow(void);
73                 void ReadSettings(void);
74                 void WriteSettings(void);
75                 void WriteUISettings(void);
76
77 //      public:
78                 GLWidget * videoWidget;
79                 AboutWindow * aboutWin;
80                 HelpWindow * helpWin;
81                 FilePickerWindow * filePickWin;
82                 MemoryBrowserWindow * memBrowseWin;
83                 CPUBrowserWindow * cpuBrowseWin;
84                 OPBrowserWindow * opBrowseWin;
85                 M68KDasmBrowserWindow * m68kDasmBrowseWin;
86                 RISCDasmBrowserWindow * riscDasmBrowseWin;
87                 QTimer * timer;
88                 bool running;
89                 int zoomLevel;
90                 bool powerButtonOn;
91                 bool showUntunedTankCircuit;
92                 bool cartridgeLoaded;
93                 bool allowUnknownSoftware;
94                 bool CDActive;
95 //              bool alpineLoadSuccessful;
96                 bool pauseForFileSelector;
97                 bool loadAndGo;
98                 bool keyHeld[8];
99                 bool fullScreen;
100         public:
101                 bool plzDontKillMyComputer;
102         private:
103                 QPoint mainWinPosition;
104 //              QSize mainWinSize;
105                 QMenu * fileMenu;
106                 QMenu * helpMenu;
107                 QMenu * debugMenu;
108                 QToolBar * toolbar;
109                 QToolBar * debugbar;
110
111                 QActionGroup * zoomActs;
112                 QActionGroup * tvTypeActs;
113
114                 QAction * quitAppAct;
115                 QAction * powerAct;
116                 QAction * pauseAct;
117                 QAction * x1Act;
118                 QAction * x2Act;
119                 QAction * x3Act;
120                 QAction * ntscAct;
121                 QAction * palAct;
122                 QAction * blurAct;
123                 QAction * aboutAct;
124                 QAction * helpAct;
125                 QAction * filePickAct;
126                 QAction * configAct;
127                 QAction * useCDAct;
128                 QAction * frameAdvanceAct;
129                 QAction * fullScreenAct;
130
131                 QAction * memBrowseAct;
132                 QAction * cpuBrowseAct;
133                 QAction * opBrowseAct;
134                 QAction * m68kDasmBrowseAct;
135                 QAction * riscDasmBrowseAct;
136
137                 QIcon powerGreen;
138                 QIcon powerRed;
139 };
140
141 #endif  // __MAINWIN_H__