Added a Save Dump As... feature to save a memory zone to a file
[clinton/Virtual-Jaguar-Rx.git] / src / gui / mainwin.h
index 52d1b1f..849b0cc 100644 (file)
@@ -4,6 +4,8 @@
 // by James Hammons\r
 // (C) 2010 Underground Software\r
 //\r
+// Modified by Jean-Paul Mari\r
+//\r
 \r
 #ifndef __MAINWIN_H__\r
 #define __MAINWIN_H__\r
 \r
 #define RING_BUFFER_SIZE 32\r
 \r
-// Forward declarations\r
+// Main windows\r
 class GLWidget;\r
-class VideoWindow;\r
+//class VideoWindow;\r
 class AboutWindow;\r
 class HelpWindow;\r
 class FilePickerWindow;\r
+//class VideoOutputWindow;\r
+//class DasmWindow;\r
+class m68KDasmWindow;\r
+class GPUDasmWindow;\r
+class DSPDasmWindow;\r
+class EmuStatusWindow;\r
+\r
+// Alpine\r
 class MemoryBrowserWindow;\r
 class StackBrowserWindow;\r
 class CPUBrowserWindow;\r
 class OPBrowserWindow;\r
 class M68KDasmBrowserWindow;\r
 class RISCDasmBrowserWindow;\r
-//class VideoOutputWindow;\r
-class DasmWindow;\r
-class m68KDasmWindow;\r
-class GPUDasmWindow;\r
-class DSPDasmWindow;\r
-class EmuStatusWindow;\r
+\r
+// Debugger\r
 class AllWatchBrowserWindow;\r
 class LocalBrowserWindow;\r
+class CallStackBrowserWindow;\r
 class HeapAllocatorBrowserWindow;\r
 class Memory1BrowserWindow;\r
-class BrkWindow;\r
+class BreakpointsWindow;\r
+class NewFnctBreakpointWindow;\r
 class ExceptionVectorTableBrowserWindow;\r
+class FilesrcListWindow;\r
+class CartFilesListWindow;\r
+class SaveDumpAsWindow;\r
+\r
 \r
+// \r
 class MainWin: public QMainWindow\r
 {\r
        // All Qt apps require this macro for signal/slot functionality to work\r
@@ -49,9 +62,11 @@ class MainWin: public QMainWindow
                MainWin(bool);\r
                void LoadFile(QString);\r
                void SyncUI(void);\r
-               void    RefreshDebuggerWindows(void);\r
-               void    ResetDebuggerWindows(void);\r
-               void    RefreshAlpineWindows(void);\r
+               void DebuggerRefreshWindows(void);\r
+               void ViewRefreshWindows(void);\r
+               void AlpineRefreshWindows(void);\r
+               void DebuggerResetWindows(void);\r
+               void DebuggerReset(void);\r
 \r
        protected:\r
                void closeEvent(QCloseEvent *);\r
@@ -77,25 +92,36 @@ class MainWin: public QMainWindow
                void LoadSoftware(QString);\r
                void ToggleCDUsage(void);\r
                void FrameAdvance(void);\r
-               void TraceStepOver(void);\r
-               void TraceStepInto(void);\r
                void ToggleFullScreen(void);\r
-               void Restart(void);\r
-               void NewBreakpointFunction(void);\r
-               void ShowMemoryBrowserWin(void);\r
-               void ShowStackBrowserWin(void);\r
-               void ShowCPUBrowserWin(void);\r
-               void ShowOPBrowserWin(void);\r
-               void ShowM68KDasmBrowserWin(void);\r
-               void ShowRISCDasmBrowserWin(void);\r
-               void ShowVideoOutputWin(void);\r
-               void ShowDasmWin(void);\r
                void ShowEmuStatusWin(void);\r
+               void MakeScreenshot(void);\r
+               // Debugger\r
+               void DebuggerTraceStepOver(void);\r
+               void DebuggerTraceStepInto(void);\r
+               void DebuggerRestart(void);\r
                void ShowAllWatchBrowserWin(void);\r
                void ShowLocalBrowserWin(void);\r
+               void ShowCallStackBrowserWin(void);\r
                void ShowHeapAllocatorBrowserWin(void);\r
                void ShowMemory1BrowserWin(int NumWin);\r
                void ShowExceptionVectorTableBrowserWin(void);\r
+               void ShowNewFunctionBreakpointWin(void);\r
+               void ShowBreakpointsWin(void);\r
+               void DeleteAllBreakpoints(void);\r
+               void DisableAllBreakpoints(void);\r
+               void ShowSaveDumpAsWin(void);\r
+#if 0\r
+               void ShowVideoOutputWin(void);\r
+               void ShowDasmWin(void);\r
+#endif\r
+               void ShowCartFilesListWin(void);\r
+               // Alpine\r
+               void ShowMemoryBrowserWin(void);\r
+               void ShowStackBrowserWin(void);\r
+               void ShowCPUBrowserWin(void);\r
+               void ShowOPBrowserWin(void);\r
+               void ShowM68KDasmBrowserWin(void);\r
+               void ShowRISCDasmBrowserWin(void);\r
 \r
        private:\r
                void HandleKeys(QKeyEvent *, bool);\r
@@ -107,40 +133,47 @@ class MainWin: public QMainWindow
                void WriteSettings(void);\r
                void WriteUISettings(void);\r
 \r
-//     public:\r
-               GLWidget * videoWidget;\r
+       private:\r
+               GLWidget *videoWidget;\r
                QMdiArea *mainWindowCentrale;\r
                QMdiSubWindow *VideoOutputWindowCentrale;\r
-               AboutWindow * aboutWin;\r
-               HelpWindow * helpWin;\r
-               FilePickerWindow * filePickWin;\r
-               EmuStatusWindow * emuStatusWin;\r
-               MemoryBrowserWindow * memBrowseWin;\r
-               StackBrowserWindow * stackBrowseWin;\r
-               CPUBrowserWindow * cpuBrowseWin;\r
-               OPBrowserWindow * opBrowseWin;\r
-               M68KDasmBrowserWindow * m68kDasmBrowseWin;\r
-               RISCDasmBrowserWindow * riscDasmBrowseWin;\r
-               //VideoOutputWindow * VideoOutputWin;\r
-               AllWatchBrowserWindow * allWatchBrowseWin;\r
-               LocalBrowserWindow * LocalBrowseWin;\r
+               AboutWindow *aboutWin;\r
+               HelpWindow *helpWin;\r
+               FilePickerWindow *filePickWin;\r
+               EmuStatusWindow *emuStatusWin;\r
+               MemoryBrowserWindow *memBrowseWin;\r
+               StackBrowserWindow *stackBrowseWin;\r
+               CPUBrowserWindow *cpuBrowseWin;\r
+               OPBrowserWindow *opBrowseWin;\r
+               M68KDasmBrowserWindow *m68kDasmBrowseWin;\r
+               RISCDasmBrowserWindow *riscDasmBrowseWin;\r
+               //VideoOutputWindow *VideoOutputWin;\r
+               AllWatchBrowserWindow *allWatchBrowseWin;\r
+               LocalBrowserWindow *LocalBrowseWin;\r
+               CallStackBrowserWindow *CallStackBrowseWin;\r
                ExceptionVectorTableBrowserWindow *exceptionvectortableBrowseWin;\r
                HeapAllocatorBrowserWindow *heapallocatorBrowseWin;\r
-               Memory1BrowserWindow ** mem1BrowseWin;\r
-               DasmWindow * DasmWin;\r
+               Memory1BrowserWindow **mem1BrowseWin;\r
+               //DasmWindow * DasmWin;\r
                QTabWidget *dasmtabWidget;\r
                //QDockWidget *dasmtabWidget;\r
                m68KDasmWindow *m68kDasmWin;\r
                GPUDasmWindow *GPUDasmWin;\r
                DSPDasmWindow *DSPDasmWin;\r
-               BrkWindow *brkWin;\r
-               QTimer * timer;\r
+               FilesrcListWindow *FilesrcListWin;\r
+               BreakpointsWindow *BreakpointsWin;\r
+               NewFnctBreakpointWindow *NewFunctionBreakpointWin;\r
+               CartFilesListWindow *CartFilesListWin;\r
+               SaveDumpAsWindow *SaveDumpAsWin;\r
+               QTimer *timer;\r
                bool running;\r
                int zoomLevel;\r
                bool powerButtonOn;\r
                bool showUntunedTankCircuit;\r
+\r
        public:\r
                bool cartridgeLoaded;\r
+\r
        private:\r
                bool allowUnknownSoftware;\r
                bool CDActive;\r
@@ -150,18 +183,21 @@ class MainWin: public QMainWindow
                bool keyHeld[8];\r
                bool fullScreen;\r
                bool scannedSoftwareFolder;\r
+\r
        public:\r
                bool plzDontKillMyComputer;\r
                uint32_t oldTimestamp;\r
                uint32_t ringBufferPointer;\r
                uint32_t ringBuffer[RING_BUFFER_SIZE];\r
+\r
        private:\r
                QPoint mainWinPosition;\r
 //             QSize mainWinSize;\r
                int lastEditedProfile;\r
-               QMenu * fileMenu;\r
-               QMenu * helpMenu;\r
-               QMenu * debugMenu, * debugWindowsMenu, *debugWindowsBrowsesMenu, *debugWindowsWatchMenu, *debugWindowOutputMenu, *debugWindowExceptionMenu, *debugWindowsMemoryMenu, *debugNewBreakpointMenu;\r
+               QMenu *fileMenu;\r
+               QMenu *helpMenu;\r
+               QMenu *debugMenu, *debugWindowsMenu, *debugWindowsBrowsesMenu, *debugWindowsWatchMenu, *debugWindowOutputMenu, *debugWindowExceptionMenu, *debugWindowsMemoryMenu, *debugNewBreakpointMenu;\r
+               QMenu *viewMenu, *viewCartMenu;\r
                QToolBar * toolbar;\r
                QToolBar * debugbar;\r
                QToolBar * debuggerbar;\r
@@ -169,41 +205,51 @@ class MainWin: public QMainWindow
                QActionGroup * zoomActs;\r
                QActionGroup * tvTypeActs;\r
 \r
-               QAction * quitAppAct;\r
-               QAction * powerAct;\r
-               QAction * pauseAct;\r
-               QAction * x1Act;\r
-               QAction * x2Act;\r
-               QAction * x3Act;\r
-               QAction * ntscAct;\r
-               QAction * palAct;\r
-               QAction * blurAct;\r
-               QAction * aboutAct;\r
-               QAction * helpAct;\r
-               QAction * filePickAct;\r
-               QAction * configAct;\r
-               QAction * emustatusAct;\r
-               QAction * useCDAct;\r
-               QAction * frameAdvanceAct;\r
-               QAction *traceStepOverAct;\r
-               QAction *traceStepIntoAct;\r
-               QAction *restartAct;\r
-               QAction * fullScreenAct;\r
+               QAction *quitAppAct;\r
+               QAction *powerAct;\r
+               QAction *pauseAct;\r
+               QAction *x1Act;\r
+               QAction *x2Act;\r
+               QAction *x3Act;\r
+               QAction *ntscAct;\r
+               QAction *palAct;\r
+               QAction *blurAct;\r
+               QAction *aboutAct;\r
+               QAction *helpAct;\r
+               QAction *filePickAct;\r
+               QAction *configAct;\r
+               QAction *emustatusAct;\r
+               QAction *useCDAct;\r
+               QAction *frameAdvanceAct;\r
+               QAction *fullScreenAct;\r
+               //QAction *DasmAct;\r
+               QAction *screenshotAct;\r
 \r
+               // Alpine\r
                QAction *memBrowseAct;\r
                QAction *stackBrowseAct;\r
                QAction *cpuBrowseAct;\r
                QAction *opBrowseAct;\r
                QAction *m68kDasmBrowseAct;\r
                QAction *riscDasmBrowseAct;\r
-               QAction *VideoOutputAct;\r
-               QAction *DasmAct;\r
+\r
+               // Debugger\r
+               QAction *traceStepOverAct;\r
+               QAction *traceStepIntoAct;\r
+               QAction *restartAct;\r
+               //QAction *VideoOutputAct;\r
                QAction *heapallocatorBrowseAct;\r
                QAction *allWatchBrowseAct;\r
                QAction *LocalBrowseAct;\r
+               QAction *CallStackBrowseAct;\r
                QAction **mem1BrowseAct;\r
-               QAction *newBreakpointFunctionAct;\r
+               QAction *newFunctionBreakpointAct;\r
+               QAction *BreakpointsAct;\r
+               QAction *deleteAllBreakpointsAct;\r
+               QAction *disableAllBreakpointsAct;\r
+               QAction *saveDumpAsAct;\r
                QAction *exceptionVectorTableBrowseAct;\r
+               QAction *CartFilesListAct;\r
 \r
                QIcon powerGreen;\r
                QIcon powerRed;\r