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