Commit | Line | Data |
---|---|---|
cf76e892 JPM |
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 <QtWidgets> | |
13 | #include "tom.h" | |
14 | ||
15 | #define RING_BUFFER_SIZE 32 | |
16 | ||
17 | // Forward declarations | |
18 | class GLWidget; | |
19 | class VideoWindow; | |
20 | class AboutWindow; | |
21 | class HelpWindow; | |
22 | class FilePickerWindow; | |
23 | class MemoryBrowserWindow; | |
24 | class StackBrowserWindow; | |
25 | class CPUBrowserWindow; | |
26 | class OPBrowserWindow; | |
27 | class M68KDasmBrowserWindow; | |
28 | class RISCDasmBrowserWindow; | |
29 | class VideoOutputWindow; | |
30 | class DasmWindow; | |
31 | class m68KDasmWindow; | |
32 | class GPUDasmWindow; | |
33 | class DSPDasmWindow; | |
34 | class EmuStatusWindow; | |
35 | class AllWatchBrowserWindow; | |
36 | class HeapAllocatorBrowserWindow; | |
37 | class Memory1BrowserWindow; | |
38 | class BrkWindow; | |
39 | class ExceptionVectorTableBrowserWindow; | |
40 | ||
41 | class MainWin: public QMainWindow | |
42 | { | |
43 | // All Qt apps require this macro for signal/slot functionality to work | |
44 | Q_OBJECT | |
45 | ||
46 | public: | |
47 | // MainWin(QString); | |
48 | MainWin(bool); | |
49 | void LoadFile(QString); | |
50 | void SyncUI(void); | |
51 | void RefreshDebuggerWindows(void); | |
52 | void RefreshAlpineWindows(void); | |
53 | ||
54 | protected: | |
55 | void closeEvent(QCloseEvent *); | |
56 | void keyPressEvent(QKeyEvent *); | |
57 | void keyReleaseEvent(QKeyEvent *); | |
58 | ||
59 | private slots: | |
60 | void Open(void); | |
61 | void Configure(void); | |
62 | void Timer(void); | |
63 | void TogglePowerState(void); | |
64 | void ToggleRunState(void); | |
65 | void SetZoom100(void); | |
66 | void SetZoom200(void); | |
67 | void SetZoom300(void); | |
68 | void SetNTSC(void); | |
69 | void SetPAL(void); | |
70 | void ToggleBlur(void); | |
71 | void ShowAboutWin(void); | |
72 | void ShowHelpWin(void); | |
73 | void InsertCart(void); | |
74 | void Unpause(void); | |
75 | void LoadSoftware(QString); | |
76 | void ToggleCDUsage(void); | |
77 | void FrameAdvance(void); | |
78 | void TraceStepOver(void); | |
79 | void TraceStepInto(void); | |
80 | void ToggleFullScreen(void); | |
81 | void Restart(void); | |
82 | void NewBreakpointFunction(void); | |
83 | void ShowMemoryBrowserWin(void); | |
84 | void ShowStackBrowserWin(void); | |
85 | void ShowCPUBrowserWin(void); | |
86 | void ShowOPBrowserWin(void); | |
87 | void ShowM68KDasmBrowserWin(void); | |
88 | void ShowRISCDasmBrowserWin(void); | |
89 | void ShowVideoOutputWin(void); | |
90 | void ShowDasmWin(void); | |
91 | void ShowEmuStatusWin(void); | |
92 | void ShowAllWatchBrowserWin(void); | |
93 | void ShowHeapAllocatorBrowserWin(void); | |
94 | void ShowMemory1BrowserWin(int NumWin); | |
95 | void ShowExceptionVectorTableBrowserWin(void); | |
96 | ||
97 | private: | |
98 | void HandleKeys(QKeyEvent *, bool); | |
99 | void HandleGamepads(void); | |
100 | void SetFullScreen(bool state = true); | |
101 | void ResizeMainWindow(void); | |
102 | void ReadUISettings(void); | |
103 | void ReadSettings(void); | |
104 | void WriteSettings(void); | |
105 | void WriteUISettings(void); | |
106 | ||
107 | // public: | |
108 | GLWidget * videoWidget; | |
109 | QMdiArea *mainWindowCentrale; | |
110 | QMdiSubWindow *VideoOutputWindowCentrale; | |
111 | AboutWindow * aboutWin; | |
112 | HelpWindow * helpWin; | |
113 | FilePickerWindow * filePickWin; | |
114 | EmuStatusWindow * emuStatusWin; | |
115 | MemoryBrowserWindow * memBrowseWin; | |
116 | StackBrowserWindow * stackBrowseWin; | |
117 | CPUBrowserWindow * cpuBrowseWin; | |
118 | OPBrowserWindow * opBrowseWin; | |
119 | M68KDasmBrowserWindow * m68kDasmBrowseWin; | |
120 | RISCDasmBrowserWindow * riscDasmBrowseWin; | |
121 | VideoOutputWindow * VideoOutputWin; | |
122 | AllWatchBrowserWindow * allWatchBrowseWin; | |
123 | ExceptionVectorTableBrowserWindow *exceptionvectortableBrowseWin; | |
124 | HeapAllocatorBrowserWindow *heapallocatorBrowseWin; | |
125 | Memory1BrowserWindow ** mem1BrowseWin; | |
126 | DasmWindow * DasmWin; | |
127 | QTabWidget *dasmtabWidget; | |
128 | //QDockWidget *dasmtabWidget; | |
129 | m68KDasmWindow *m68kDasmWin; | |
130 | GPUDasmWindow *GPUDasmWin; | |
131 | DSPDasmWindow *DSPDasmWin; | |
132 | BrkWindow *brkWin; | |
133 | QTimer * timer; | |
134 | bool running; | |
135 | int zoomLevel; | |
136 | bool powerButtonOn; | |
137 | bool showUntunedTankCircuit; | |
138 | public: | |
139 | bool cartridgeLoaded; | |
140 | private: | |
141 | bool allowUnknownSoftware; | |
142 | bool CDActive; | |
143 | // bool alpineLoadSuccessful; | |
144 | bool pauseForFileSelector; | |
145 | bool loadAndGo; | |
146 | bool keyHeld[8]; | |
147 | bool fullScreen; | |
148 | bool scannedSoftwareFolder; | |
149 | public: | |
150 | bool plzDontKillMyComputer; | |
151 | uint32_t oldTimestamp; | |
152 | uint32_t ringBufferPointer; | |
153 | uint32_t ringBuffer[RING_BUFFER_SIZE]; | |
154 | private: | |
155 | QPoint mainWinPosition; | |
156 | // QSize mainWinSize; | |
157 | int lastEditedProfile; | |
158 | QMenu * fileMenu; | |
159 | QMenu * helpMenu; | |
160 | QMenu * debugMenu, * debugWindowsMenu, *debugWindowsBrowsesMenu, *debugWindowsWatchMenu, *debugWindowOutputMenu, *debugWindowExceptionMenu, *debugWindowsMemoryMenu, *debugNewBreakpointMenu; | |
161 | QToolBar * toolbar; | |
162 | QToolBar * debugbar; | |
163 | QToolBar * debuggerbar; | |
164 | ||
165 | QActionGroup * zoomActs; | |
166 | QActionGroup * tvTypeActs; | |
167 | ||
168 | QAction * quitAppAct; | |
169 | QAction * powerAct; | |
170 | QAction * pauseAct; | |
171 | QAction * x1Act; | |
172 | QAction * x2Act; | |
173 | QAction * x3Act; | |
174 | QAction * ntscAct; | |
175 | QAction * palAct; | |
176 | QAction * blurAct; | |
177 | QAction * aboutAct; | |
178 | QAction * helpAct; | |
179 | QAction * filePickAct; | |
180 | QAction * configAct; | |
181 | QAction * emustatusAct; | |
182 | QAction * useCDAct; | |
183 | QAction * frameAdvanceAct; | |
184 | QAction *traceStepOverAct; | |
185 | QAction *traceStepIntoAct; | |
186 | QAction *restartAct; | |
187 | QAction * fullScreenAct; | |
188 | ||
189 | QAction *memBrowseAct; | |
190 | QAction *stackBrowseAct; | |
191 | QAction *cpuBrowseAct; | |
192 | QAction *opBrowseAct; | |
193 | QAction *m68kDasmBrowseAct; | |
194 | QAction *riscDasmBrowseAct; | |
195 | QAction *VideoOutputAct; | |
196 | QAction *DasmAct; | |
197 | QAction *heapallocatorBrowseAct; | |
198 | QAction *allWatchBrowseAct; | |
199 | QAction **mem1BrowseAct; | |
200 | QAction *newBreakpointFunctionAct; | |
201 | QAction *exceptionVectorTableBrowseAct; | |
202 | ||
203 | QIcon powerGreen; | |
204 | QIcon powerRed; | |
205 | QIcon blur; | |
206 | uint32_t testPattern[VIRTUAL_SCREEN_WIDTH * VIRTUAL_SCREEN_HEIGHT_PAL]; | |
207 | uint32_t testPattern2[VIRTUAL_SCREEN_WIDTH * VIRTUAL_SCREEN_HEIGHT_PAL]; | |
208 | }; | |
209 | ||
210 | #endif // __MAINWIN_H__ |