Fix a crash when emulator, in non-debugger mode, opens the breakpoint UIs at launch
[clinton/Virtual-Jaguar-Rx.git] / src / gui / mainwin.h
CommitLineData
0203b5fd
JPM
1//\r
2// mainwin.h: Header file\r
3//\r
4// by James Hammons\r
5// (C) 2010 Underground Software\r
6//\r
fe3b257d
JPM
7// Modified by Jean-Paul Mari\r
8//\r
0203b5fd
JPM
9\r
10#ifndef __MAINWIN_H__\r
11#define __MAINWIN_H__\r
12\r
13//Hrm. uh??? I thought this wasn't the way to do this stuff...???\r
14#include <QtWidgets>\r
15#include "tom.h"\r
16\r
17#define RING_BUFFER_SIZE 32\r
18\r
a4e46c05 19// Main windows\r
0203b5fd 20class GLWidget;\r
6564336c 21//class VideoWindow;\r
0203b5fd
JPM
22class AboutWindow;\r
23class HelpWindow;\r
24class FilePickerWindow;\r
a2dfb8e5 25//class VideoOutputWindow;\r
6564336c 26//class DasmWindow;\r
0203b5fd
JPM
27class m68KDasmWindow;\r
28class GPUDasmWindow;\r
29class DSPDasmWindow;\r
30class EmuStatusWindow;\r
a4e46c05
JPM
31\r
32// Alpine\r
33class MemoryBrowserWindow;\r
34class StackBrowserWindow;\r
35class CPUBrowserWindow;\r
36class OPBrowserWindow;\r
37class M68KDasmBrowserWindow;\r
38class RISCDasmBrowserWindow;\r
39\r
40// Debugger\r
0203b5fd
JPM
41class AllWatchBrowserWindow;\r
42class LocalBrowserWindow;\r
a4e46c05 43class CallStackBrowserWindow;\r
0203b5fd
JPM
44class HeapAllocatorBrowserWindow;\r
45class Memory1BrowserWindow;\r
1081a838
JPM
46class BreakpointsWindow;\r
47class NewFnctBreakpointWindow;\r
0203b5fd 48class ExceptionVectorTableBrowserWindow;\r
6564336c 49class FilesrcListWindow;\r
24470541 50class CartFilesListWindow;\r
0203b5fd 51\r
a4e46c05 52\r
6564336c 53// \r
0203b5fd
JPM
54class MainWin: public QMainWindow\r
55{\r
56 // All Qt apps require this macro for signal/slot functionality to work\r
57 Q_OBJECT\r
58\r
59 public:\r
60// MainWin(QString);\r
61 MainWin(bool);\r
62 void LoadFile(QString);\r
63 void SyncUI(void);\r
6564336c 64 void DebuggerRefreshWindows(void);\r
24470541 65 void ViewRefreshWindows(void);\r
6564336c 66 void AlpineRefreshWindows(void);\r
24470541 67 void DebuggerResetWindows(void);\r
acd3342f 68 void DebuggerReset(void);\r
0203b5fd
JPM
69\r
70 protected:\r
71 void closeEvent(QCloseEvent *);\r
72 void keyPressEvent(QKeyEvent *);\r
73 void keyReleaseEvent(QKeyEvent *);\r
74\r
75 private slots:\r
76 void Open(void);\r
77 void Configure(void);\r
78 void Timer(void);\r
79 void TogglePowerState(void);\r
80 void ToggleRunState(void);\r
81 void SetZoom100(void);\r
82 void SetZoom200(void);\r
83 void SetZoom300(void);\r
84 void SetNTSC(void);\r
85 void SetPAL(void);\r
86 void ToggleBlur(void);\r
87 void ShowAboutWin(void);\r
88 void ShowHelpWin(void);\r
89 void InsertCart(void);\r
90 void Unpause(void);\r
91 void LoadSoftware(QString);\r
92 void ToggleCDUsage(void);\r
93 void FrameAdvance(void);\r
0203b5fd 94 void ToggleFullScreen(void);\r
a4e46c05 95 void ShowEmuStatusWin(void);\r
25251f31 96 void MakeScreenshot(void);\r
a4e46c05
JPM
97 // Debugger\r
98 void DebuggerTraceStepOver(void);\r
99 void DebuggerTraceStepInto(void);\r
100 void DebuggerRestart(void);\r
101 void ShowAllWatchBrowserWin(void);\r
102 void ShowLocalBrowserWin(void);\r
103 void ShowCallStackBrowserWin(void);\r
104 void ShowHeapAllocatorBrowserWin(void);\r
105 void ShowMemory1BrowserWin(int NumWin);\r
106 void ShowExceptionVectorTableBrowserWin(void);\r
1081a838
JPM
107 void ShowNewFunctionBreakpointWin(void);\r
108 void ShowBreakpointsWin(void);\r
109 void DeleteAllBreakpoints(void);\r
110 void DisableAllBreakpoints(void);\r
24470541
JPM
111#if 0\r
112 void ShowVideoOutputWin(void);\r
113 void ShowDasmWin(void);\r
114#endif\r
115 void ShowCartFilesListWin(void);\r
a4e46c05 116 // Alpine\r
0203b5fd
JPM
117 void ShowMemoryBrowserWin(void);\r
118 void ShowStackBrowserWin(void);\r
119 void ShowCPUBrowserWin(void);\r
120 void ShowOPBrowserWin(void);\r
121 void ShowM68KDasmBrowserWin(void);\r
122 void ShowRISCDasmBrowserWin(void);\r
0203b5fd
JPM
123\r
124 private:\r
125 void HandleKeys(QKeyEvent *, bool);\r
126 void HandleGamepads(void);\r
127 void SetFullScreen(bool state = true);\r
128 void ResizeMainWindow(void);\r
129 void ReadUISettings(void);\r
130 void ReadSettings(void);\r
131 void WriteSettings(void);\r
132 void WriteUISettings(void);\r
133\r
a4e46c05 134 private:\r
25251f31 135 GLWidget *videoWidget;\r
0203b5fd
JPM
136 QMdiArea *mainWindowCentrale;\r
137 QMdiSubWindow *VideoOutputWindowCentrale;\r
6564336c
JPM
138 AboutWindow *aboutWin;\r
139 HelpWindow *helpWin;\r
140 FilePickerWindow *filePickWin;\r
141 EmuStatusWindow *emuStatusWin;\r
142 MemoryBrowserWindow *memBrowseWin;\r
143 StackBrowserWindow *stackBrowseWin;\r
144 CPUBrowserWindow *cpuBrowseWin;\r
145 OPBrowserWindow *opBrowseWin;\r
146 M68KDasmBrowserWindow *m68kDasmBrowseWin;\r
147 RISCDasmBrowserWindow *riscDasmBrowseWin;\r
148 //VideoOutputWindow *VideoOutputWin;\r
a4e46c05
JPM
149 AllWatchBrowserWindow *allWatchBrowseWin;\r
150 LocalBrowserWindow *LocalBrowseWin;\r
151 CallStackBrowserWindow *CallStackBrowseWin;\r
0203b5fd
JPM
152 ExceptionVectorTableBrowserWindow *exceptionvectortableBrowseWin;\r
153 HeapAllocatorBrowserWindow *heapallocatorBrowseWin;\r
a4e46c05 154 Memory1BrowserWindow **mem1BrowseWin;\r
6564336c 155 //DasmWindow * DasmWin;\r
0203b5fd
JPM
156 QTabWidget *dasmtabWidget;\r
157 //QDockWidget *dasmtabWidget;\r
158 m68KDasmWindow *m68kDasmWin;\r
159 GPUDasmWindow *GPUDasmWin;\r
160 DSPDasmWindow *DSPDasmWin;\r
6564336c 161 FilesrcListWindow *FilesrcListWin;\r
1081a838
JPM
162 BreakpointsWindow *BreakpointsWin;\r
163 NewFnctBreakpointWindow *NewFunctionBreakpointWin;\r
24470541 164 CartFilesListWindow *CartFilesListWin;\r
6564336c 165 QTimer *timer;\r
0203b5fd
JPM
166 bool running;\r
167 int zoomLevel;\r
168 bool powerButtonOn;\r
169 bool showUntunedTankCircuit;\r
a4e46c05 170\r
0203b5fd
JPM
171 public:\r
172 bool cartridgeLoaded;\r
a4e46c05 173\r
0203b5fd
JPM
174 private:\r
175 bool allowUnknownSoftware;\r
176 bool CDActive;\r
177// bool alpineLoadSuccessful;\r
178 bool pauseForFileSelector;\r
179 bool loadAndGo;\r
180 bool keyHeld[8];\r
181 bool fullScreen;\r
182 bool scannedSoftwareFolder;\r
a4e46c05 183\r
0203b5fd
JPM
184 public:\r
185 bool plzDontKillMyComputer;\r
186 uint32_t oldTimestamp;\r
187 uint32_t ringBufferPointer;\r
188 uint32_t ringBuffer[RING_BUFFER_SIZE];\r
a4e46c05 189\r
0203b5fd
JPM
190 private:\r
191 QPoint mainWinPosition;\r
192// QSize mainWinSize;\r
193 int lastEditedProfile;\r
fe3b257d
JPM
194 QMenu *fileMenu;\r
195 QMenu *helpMenu;\r
196 QMenu *debugMenu, *debugWindowsMenu, *debugWindowsBrowsesMenu, *debugWindowsWatchMenu, *debugWindowOutputMenu, *debugWindowExceptionMenu, *debugWindowsMemoryMenu, *debugNewBreakpointMenu;\r
24470541 197 QMenu *viewMenu, *viewCartMenu;\r
0203b5fd
JPM
198 QToolBar * toolbar;\r
199 QToolBar * debugbar;\r
200 QToolBar * debuggerbar;\r
201\r
202 QActionGroup * zoomActs;\r
203 QActionGroup * tvTypeActs;\r
204\r
fe3b257d
JPM
205 QAction *quitAppAct;\r
206 QAction *powerAct;\r
207 QAction *pauseAct;\r
208 QAction *x1Act;\r
209 QAction *x2Act;\r
210 QAction *x3Act;\r
211 QAction *ntscAct;\r
212 QAction *palAct;\r
213 QAction *blurAct;\r
214 QAction *aboutAct;\r
215 QAction *helpAct;\r
216 QAction *filePickAct;\r
217 QAction *configAct;\r
218 QAction *emustatusAct;\r
219 QAction *useCDAct;\r
220 QAction *frameAdvanceAct;\r
fe3b257d 221 QAction *fullScreenAct;\r
6564336c 222 //QAction *DasmAct;\r
fe3b257d 223 QAction *screenshotAct;\r
0203b5fd 224\r
a4e46c05 225 // Alpine\r
0203b5fd
JPM
226 QAction *memBrowseAct;\r
227 QAction *stackBrowseAct;\r
228 QAction *cpuBrowseAct;\r
229 QAction *opBrowseAct;\r
230 QAction *m68kDasmBrowseAct;\r
231 QAction *riscDasmBrowseAct;\r
a4e46c05
JPM
232\r
233 // Debugger\r
1081a838
JPM
234 QAction *traceStepOverAct;\r
235 QAction *traceStepIntoAct;\r
236 QAction *restartAct;\r
6564336c 237 //QAction *VideoOutputAct;\r
0203b5fd
JPM
238 QAction *heapallocatorBrowseAct;\r
239 QAction *allWatchBrowseAct;\r
240 QAction *LocalBrowseAct;\r
a4e46c05 241 QAction *CallStackBrowseAct;\r
0203b5fd 242 QAction **mem1BrowseAct;\r
1081a838
JPM
243 QAction *newFunctionBreakpointAct;\r
244 QAction *BreakpointsAct;\r
245 QAction *deleteAllBreakpointsAct;\r
246 QAction *disableAllBreakpointsAct;\r
0203b5fd 247 QAction *exceptionVectorTableBrowseAct;\r
24470541 248 QAction *CartFilesListAct;\r
0203b5fd
JPM
249\r
250 QIcon powerGreen;\r
251 QIcon powerRed;\r
252 QIcon blur;\r
253 uint32_t testPattern[VIRTUAL_SCREEN_WIDTH * VIRTUAL_SCREEN_HEIGHT_PAL];\r
254 uint32_t testPattern2[VIRTUAL_SCREEN_WIDTH * VIRTUAL_SCREEN_HEIGHT_PAL];\r
255};\r
256\r
257#endif // __MAINWIN_H__\r