Added search paths in case of missing DWARF directories information
[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
6564336c 46//class BrkWindow;\r
0203b5fd 47class ExceptionVectorTableBrowserWindow;\r
6564336c 48class FilesrcListWindow;\r
0203b5fd 49\r
a4e46c05 50\r
6564336c 51// \r
0203b5fd
JPM
52class MainWin: public QMainWindow\r
53{\r
54 // All Qt apps require this macro for signal/slot functionality to work\r
55 Q_OBJECT\r
56\r
57 public:\r
58// MainWin(QString);\r
59 MainWin(bool);\r
60 void LoadFile(QString);\r
61 void SyncUI(void);\r
6564336c
JPM
62 void DebuggerRefreshWindows(void);\r
63 void DebuggerResetWindows(void);\r
64 void AlpineRefreshWindows(void);\r
0203b5fd
JPM
65\r
66 protected:\r
67 void closeEvent(QCloseEvent *);\r
68 void keyPressEvent(QKeyEvent *);\r
69 void keyReleaseEvent(QKeyEvent *);\r
70\r
71 private slots:\r
72 void Open(void);\r
73 void Configure(void);\r
74 void Timer(void);\r
75 void TogglePowerState(void);\r
76 void ToggleRunState(void);\r
77 void SetZoom100(void);\r
78 void SetZoom200(void);\r
79 void SetZoom300(void);\r
80 void SetNTSC(void);\r
81 void SetPAL(void);\r
82 void ToggleBlur(void);\r
83 void ShowAboutWin(void);\r
84 void ShowHelpWin(void);\r
85 void InsertCart(void);\r
86 void Unpause(void);\r
87 void LoadSoftware(QString);\r
88 void ToggleCDUsage(void);\r
89 void FrameAdvance(void);\r
0203b5fd 90 void ToggleFullScreen(void);\r
a4e46c05 91 void ShowEmuStatusWin(void);\r
25251f31 92 void MakeScreenshot(void);\r
a4e46c05
JPM
93 // Debugger\r
94 void DebuggerTraceStepOver(void);\r
95 void DebuggerTraceStepInto(void);\r
96 void DebuggerRestart(void);\r
97 void ShowAllWatchBrowserWin(void);\r
98 void ShowLocalBrowserWin(void);\r
99 void ShowCallStackBrowserWin(void);\r
100 void ShowHeapAllocatorBrowserWin(void);\r
101 void ShowMemory1BrowserWin(int NumWin);\r
102 void ShowExceptionVectorTableBrowserWin(void);\r
0203b5fd 103 void NewBreakpointFunction(void);\r
6564336c
JPM
104 //void ShowVideoOutputWin(void);\r
105 //void ShowDasmWin(void);\r
a4e46c05 106 // Alpine\r
0203b5fd
JPM
107 void ShowMemoryBrowserWin(void);\r
108 void ShowStackBrowserWin(void);\r
109 void ShowCPUBrowserWin(void);\r
110 void ShowOPBrowserWin(void);\r
111 void ShowM68KDasmBrowserWin(void);\r
112 void ShowRISCDasmBrowserWin(void);\r
0203b5fd
JPM
113\r
114 private:\r
115 void HandleKeys(QKeyEvent *, bool);\r
116 void HandleGamepads(void);\r
117 void SetFullScreen(bool state = true);\r
118 void ResizeMainWindow(void);\r
119 void ReadUISettings(void);\r
120 void ReadSettings(void);\r
121 void WriteSettings(void);\r
122 void WriteUISettings(void);\r
123\r
a4e46c05 124 private:\r
25251f31 125 GLWidget *videoWidget;\r
0203b5fd
JPM
126 QMdiArea *mainWindowCentrale;\r
127 QMdiSubWindow *VideoOutputWindowCentrale;\r
6564336c
JPM
128 AboutWindow *aboutWin;\r
129 HelpWindow *helpWin;\r
130 FilePickerWindow *filePickWin;\r
131 EmuStatusWindow *emuStatusWin;\r
132 MemoryBrowserWindow *memBrowseWin;\r
133 StackBrowserWindow *stackBrowseWin;\r
134 CPUBrowserWindow *cpuBrowseWin;\r
135 OPBrowserWindow *opBrowseWin;\r
136 M68KDasmBrowserWindow *m68kDasmBrowseWin;\r
137 RISCDasmBrowserWindow *riscDasmBrowseWin;\r
138 //VideoOutputWindow *VideoOutputWin;\r
a4e46c05
JPM
139 AllWatchBrowserWindow *allWatchBrowseWin;\r
140 LocalBrowserWindow *LocalBrowseWin;\r
141 CallStackBrowserWindow *CallStackBrowseWin;\r
0203b5fd
JPM
142 ExceptionVectorTableBrowserWindow *exceptionvectortableBrowseWin;\r
143 HeapAllocatorBrowserWindow *heapallocatorBrowseWin;\r
a4e46c05 144 Memory1BrowserWindow **mem1BrowseWin;\r
6564336c 145 //DasmWindow * DasmWin;\r
0203b5fd
JPM
146 QTabWidget *dasmtabWidget;\r
147 //QDockWidget *dasmtabWidget;\r
148 m68KDasmWindow *m68kDasmWin;\r
149 GPUDasmWindow *GPUDasmWin;\r
150 DSPDasmWindow *DSPDasmWin;\r
6564336c
JPM
151 FilesrcListWindow *FilesrcListWin;\r
152 //BrkWindow *brkWin;\r
153 QTimer *timer;\r
0203b5fd
JPM
154 bool running;\r
155 int zoomLevel;\r
156 bool powerButtonOn;\r
157 bool showUntunedTankCircuit;\r
a4e46c05 158\r
0203b5fd
JPM
159 public:\r
160 bool cartridgeLoaded;\r
a4e46c05 161\r
0203b5fd
JPM
162 private:\r
163 bool allowUnknownSoftware;\r
164 bool CDActive;\r
165// bool alpineLoadSuccessful;\r
166 bool pauseForFileSelector;\r
167 bool loadAndGo;\r
168 bool keyHeld[8];\r
169 bool fullScreen;\r
170 bool scannedSoftwareFolder;\r
a4e46c05 171\r
0203b5fd
JPM
172 public:\r
173 bool plzDontKillMyComputer;\r
174 uint32_t oldTimestamp;\r
175 uint32_t ringBufferPointer;\r
176 uint32_t ringBuffer[RING_BUFFER_SIZE];\r
a4e46c05 177\r
0203b5fd
JPM
178 private:\r
179 QPoint mainWinPosition;\r
180// QSize mainWinSize;\r
181 int lastEditedProfile;\r
fe3b257d
JPM
182 QMenu *fileMenu;\r
183 QMenu *helpMenu;\r
184 QMenu *debugMenu, *debugWindowsMenu, *debugWindowsBrowsesMenu, *debugWindowsWatchMenu, *debugWindowOutputMenu, *debugWindowExceptionMenu, *debugWindowsMemoryMenu, *debugNewBreakpointMenu;\r
0203b5fd
JPM
185 QToolBar * toolbar;\r
186 QToolBar * debugbar;\r
187 QToolBar * debuggerbar;\r
188\r
189 QActionGroup * zoomActs;\r
190 QActionGroup * tvTypeActs;\r
191\r
fe3b257d
JPM
192 QAction *quitAppAct;\r
193 QAction *powerAct;\r
194 QAction *pauseAct;\r
195 QAction *x1Act;\r
196 QAction *x2Act;\r
197 QAction *x3Act;\r
198 QAction *ntscAct;\r
199 QAction *palAct;\r
200 QAction *blurAct;\r
201 QAction *aboutAct;\r
202 QAction *helpAct;\r
203 QAction *filePickAct;\r
204 QAction *configAct;\r
205 QAction *emustatusAct;\r
206 QAction *useCDAct;\r
207 QAction *frameAdvanceAct;\r
0203b5fd
JPM
208 QAction *traceStepOverAct;\r
209 QAction *traceStepIntoAct;\r
210 QAction *restartAct;\r
fe3b257d 211 QAction *fullScreenAct;\r
6564336c 212 //QAction *DasmAct;\r
fe3b257d 213 QAction *screenshotAct;\r
0203b5fd 214\r
a4e46c05 215 // Alpine\r
0203b5fd
JPM
216 QAction *memBrowseAct;\r
217 QAction *stackBrowseAct;\r
218 QAction *cpuBrowseAct;\r
219 QAction *opBrowseAct;\r
220 QAction *m68kDasmBrowseAct;\r
221 QAction *riscDasmBrowseAct;\r
a4e46c05
JPM
222\r
223 // Debugger\r
6564336c 224 //QAction *VideoOutputAct;\r
0203b5fd
JPM
225 QAction *heapallocatorBrowseAct;\r
226 QAction *allWatchBrowseAct;\r
227 QAction *LocalBrowseAct;\r
a4e46c05 228 QAction *CallStackBrowseAct;\r
0203b5fd 229 QAction **mem1BrowseAct;\r
fe3b257d 230 //QAction *newBreakpointFunctionAct;\r
0203b5fd
JPM
231 QAction *exceptionVectorTableBrowseAct;\r
232\r
233 QIcon powerGreen;\r
234 QIcon powerRed;\r
235 QIcon blur;\r
236 uint32_t testPattern[VIRTUAL_SCREEN_WIDTH * VIRTUAL_SCREEN_HEIGHT_PAL];\r
237 uint32_t testPattern2[VIRTUAL_SCREEN_WIDTH * VIRTUAL_SCREEN_HEIGHT_PAL];\r
238};\r
239\r
240#endif // __MAINWIN_H__\r