Added multiple breakpoints feature and their key bindings
[clinton/Virtual-Jaguar-Rx.git] / src / gui / mainwin.h
index 1c5118e..a7d36af 100644 (file)
-//
-// mainwin.h: Header file
-//
-// by James Hammons
-// (C) 2010 Underground Software
-//
-
-#ifndef __MAINWIN_H__
-#define __MAINWIN_H__
-
-//Hrm. uh??? I thought this wasn't the way to do this stuff...???
-#include <QtWidgets>
-#include "tom.h"
-
-#define RING_BUFFER_SIZE 32
-
-// Forward declarations
-class GLWidget;
-class VideoWindow;
-class AboutWindow;
-class HelpWindow;
-class FilePickerWindow;
-class MemoryBrowserWindow;
-class StackBrowserWindow;
-class CPUBrowserWindow;
-class OPBrowserWindow;
-class M68KDasmBrowserWindow;
-class RISCDasmBrowserWindow;
-class VideoOutputWindow;
-class DasmWindow;
-class m68KDasmWindow;
-class GPUDasmWindow;
-class DSPDasmWindow;
-class EmuStatusWindow;
-class AllWatchBrowserWindow;
-class HeapAllocatorBrowserWindow;
-class Memory1BrowserWindow;
-class BrkWindow;
-class ExceptionVectorTableBrowserWindow;
-
-class MainWin: public QMainWindow
-{
-       // All Qt apps require this macro for signal/slot functionality to work
-       Q_OBJECT
-
-       public:
-//             MainWin(QString);
-               MainWin(bool);
-               void LoadFile(QString);
-               void SyncUI(void);
-               void    RefreshDebuggerWindows(void);
-               void    RefreshAlpineWindows(void);
-
-       protected:
-               void closeEvent(QCloseEvent *);
-               void keyPressEvent(QKeyEvent *);
-               void keyReleaseEvent(QKeyEvent *);
-
-       private slots:
-               void Open(void);
-               void Configure(void);
-               void Timer(void);
-               void TogglePowerState(void);
-               void ToggleRunState(void);
-               void SetZoom100(void);
-               void SetZoom200(void);
-               void SetZoom300(void);
-               void SetNTSC(void);
-               void SetPAL(void);
-               void ToggleBlur(void);
-               void ShowAboutWin(void);
-               void ShowHelpWin(void);
-               void InsertCart(void);
-               void Unpause(void);
-               void LoadSoftware(QString);
-               void ToggleCDUsage(void);
-               void FrameAdvance(void);
-               void TraceStepOver(void);
-               void TraceStepInto(void);
-               void ToggleFullScreen(void);
-               void Restart(void);
-               void NewBreakpointFunction(void);
-               void ShowMemoryBrowserWin(void);
-               void ShowStackBrowserWin(void);
-               void ShowCPUBrowserWin(void);
-               void ShowOPBrowserWin(void);
-               void ShowM68KDasmBrowserWin(void);
-               void ShowRISCDasmBrowserWin(void);
-               void ShowVideoOutputWin(void);
-               void ShowDasmWin(void);
-               void ShowEmuStatusWin(void);
-               void ShowAllWatchBrowserWin(void);
-               void ShowHeapAllocatorBrowserWin(void);
-               void ShowMemory1BrowserWin(int NumWin);
-               void ShowExceptionVectorTableBrowserWin(void);
-
-       private:
-               void HandleKeys(QKeyEvent *, bool);
-               void HandleGamepads(void);
-               void SetFullScreen(bool state = true);
-               void ResizeMainWindow(void);
-               void ReadUISettings(void);
-               void ReadSettings(void);
-               void WriteSettings(void);
-               void WriteUISettings(void);
-
-//     public:
-               GLWidget * videoWidget;
-               QMdiArea *mainWindowCentrale;
-               QMdiSubWindow *VideoOutputWindowCentrale;
-               AboutWindow * aboutWin;
-               HelpWindow * helpWin;
-               FilePickerWindow * filePickWin;
-               EmuStatusWindow * emuStatusWin;
-               MemoryBrowserWindow * memBrowseWin;
-               StackBrowserWindow * stackBrowseWin;
-               CPUBrowserWindow * cpuBrowseWin;
-               OPBrowserWindow * opBrowseWin;
-               M68KDasmBrowserWindow * m68kDasmBrowseWin;
-               RISCDasmBrowserWindow * riscDasmBrowseWin;
-               VideoOutputWindow * VideoOutputWin;
-               AllWatchBrowserWindow * allWatchBrowseWin;
-               ExceptionVectorTableBrowserWindow *exceptionvectortableBrowseWin;
-               HeapAllocatorBrowserWindow *heapallocatorBrowseWin;
-               Memory1BrowserWindow ** mem1BrowseWin;
-               DasmWindow * DasmWin;
-               QTabWidget *dasmtabWidget;
-               //QDockWidget *dasmtabWidget;
-               m68KDasmWindow *m68kDasmWin;
-               GPUDasmWindow *GPUDasmWin;
-               DSPDasmWindow *DSPDasmWin;
-               BrkWindow *brkWin;
-               QTimer * timer;
-               bool running;
-               int zoomLevel;
-               bool powerButtonOn;
-               bool showUntunedTankCircuit;
-       public:
-               bool cartridgeLoaded;
-       private:
-               bool allowUnknownSoftware;
-               bool CDActive;
-//             bool alpineLoadSuccessful;
-               bool pauseForFileSelector;
-               bool loadAndGo;
-               bool keyHeld[8];
-               bool fullScreen;
-               bool scannedSoftwareFolder;
-       public:
-               bool plzDontKillMyComputer;
-               uint32_t oldTimestamp;
-               uint32_t ringBufferPointer;
-               uint32_t ringBuffer[RING_BUFFER_SIZE];
-       private:
-               QPoint mainWinPosition;
-//             QSize mainWinSize;
-               int lastEditedProfile;
-               QMenu * fileMenu;
-               QMenu * helpMenu;
-               QMenu * debugMenu, * debugWindowsMenu, *debugWindowsBrowsesMenu, *debugWindowsWatchMenu, *debugWindowOutputMenu, *debugWindowExceptionMenu, *debugWindowsMemoryMenu, *debugNewBreakpointMenu;
-               QToolBar * toolbar;
-               QToolBar * debugbar;
-               QToolBar * debuggerbar;
-
-               QActionGroup * zoomActs;
-               QActionGroup * tvTypeActs;
-
-               QAction * quitAppAct;
-               QAction * powerAct;
-               QAction * pauseAct;
-               QAction * x1Act;
-               QAction * x2Act;
-               QAction * x3Act;
-               QAction * ntscAct;
-               QAction * palAct;
-               QAction * blurAct;
-               QAction * aboutAct;
-               QAction * helpAct;
-               QAction * filePickAct;
-               QAction * configAct;
-               QAction * emustatusAct;
-               QAction * useCDAct;
-               QAction * frameAdvanceAct;
-               QAction *traceStepOverAct;
-               QAction *traceStepIntoAct;
-               QAction *restartAct;
-               QAction * fullScreenAct;
-
-               QAction *memBrowseAct;
-               QAction *stackBrowseAct;
-               QAction *cpuBrowseAct;
-               QAction *opBrowseAct;
-               QAction *m68kDasmBrowseAct;
-               QAction *riscDasmBrowseAct;
-               QAction *VideoOutputAct;
-               QAction *DasmAct;
-               QAction *heapallocatorBrowseAct;
-               QAction *allWatchBrowseAct;
-               QAction **mem1BrowseAct;
-               QAction *newBreakpointFunctionAct;
-               QAction *exceptionVectorTableBrowseAct;
-
-               QIcon powerGreen;
-               QIcon powerRed;
-               QIcon blur;
-               uint32_t testPattern[VIRTUAL_SCREEN_WIDTH * VIRTUAL_SCREEN_HEIGHT_PAL];
-               uint32_t testPattern2[VIRTUAL_SCREEN_WIDTH * VIRTUAL_SCREEN_HEIGHT_PAL];
-};
-
-#endif // __MAINWIN_H__
+//\r
+// mainwin.h: Header file\r
+//\r
+// 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
+//Hrm. uh??? I thought this wasn't the way to do this stuff...???\r
+#include <QtWidgets>\r
+#include "tom.h"\r
+\r
+#define RING_BUFFER_SIZE 32\r
+\r
+// Main windows\r
+class GLWidget;\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
+\r
+// Debugger\r
+class AllWatchBrowserWindow;\r
+class LocalBrowserWindow;\r
+class CallStackBrowserWindow;\r
+class HeapAllocatorBrowserWindow;\r
+class Memory1BrowserWindow;\r
+class BreakpointsWindow;\r
+class NewFnctBreakpointWindow;\r
+class ExceptionVectorTableBrowserWindow;\r
+class FilesrcListWindow;\r
+\r
+\r
+// \r
+class MainWin: public QMainWindow\r
+{\r
+       // All Qt apps require this macro for signal/slot functionality to work\r
+       Q_OBJECT\r
+\r
+       public:\r
+//             MainWin(QString);\r
+               MainWin(bool);\r
+               void LoadFile(QString);\r
+               void SyncUI(void);\r
+               void DebuggerRefreshWindows(void);\r
+               void DebuggerResetWindows(void);\r
+               void AlpineRefreshWindows(void);\r
+\r
+       protected:\r
+               void closeEvent(QCloseEvent *);\r
+               void keyPressEvent(QKeyEvent *);\r
+               void keyReleaseEvent(QKeyEvent *);\r
+\r
+       private slots:\r
+               void Open(void);\r
+               void Configure(void);\r
+               void Timer(void);\r
+               void TogglePowerState(void);\r
+               void ToggleRunState(void);\r
+               void SetZoom100(void);\r
+               void SetZoom200(void);\r
+               void SetZoom300(void);\r
+               void SetNTSC(void);\r
+               void SetPAL(void);\r
+               void ToggleBlur(void);\r
+               void ShowAboutWin(void);\r
+               void ShowHelpWin(void);\r
+               void InsertCart(void);\r
+               void Unpause(void);\r
+               void LoadSoftware(QString);\r
+               void ToggleCDUsage(void);\r
+               void FrameAdvance(void);\r
+               void ToggleFullScreen(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 ShowVideoOutputWin(void);\r
+               //void ShowDasmWin(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
+               void HandleGamepads(void);\r
+               void SetFullScreen(bool state = true);\r
+               void ResizeMainWindow(void);\r
+               void ReadUISettings(void);\r
+               void ReadSettings(void);\r
+               void WriteSettings(void);\r
+               void WriteUISettings(void);\r
+\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
+               CallStackBrowserWindow *CallStackBrowseWin;\r
+               ExceptionVectorTableBrowserWindow *exceptionvectortableBrowseWin;\r
+               HeapAllocatorBrowserWindow *heapallocatorBrowseWin;\r
+               Memory1BrowserWindow **mem1BrowseWin;\r
+               //DasmWindow * DasmWin;\r
+               QTabWidget *dasmtabWidget;\r
+               //QDockWidget *dasmtabWidget;\r
+               m68KDasmWindow *m68kDasmWin;\r
+               GPUDasmWindow *GPUDasmWin;\r
+               DSPDasmWindow *DSPDasmWin;\r
+               FilesrcListWindow *FilesrcListWin;\r
+               BreakpointsWindow *BreakpointsWin;\r
+               NewFnctBreakpointWindow *NewFunctionBreakpointWin;\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
+//             bool alpineLoadSuccessful;\r
+               bool pauseForFileSelector;\r
+               bool loadAndGo;\r
+               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
+               QToolBar * toolbar;\r
+               QToolBar * debugbar;\r
+               QToolBar * debuggerbar;\r
+\r
+               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 *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
+\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 *newFunctionBreakpointAct;\r
+               QAction *BreakpointsAct;\r
+               QAction *deleteAllBreakpointsAct;\r
+               QAction *disableAllBreakpointsAct;\r
+               QAction *exceptionVectorTableBrowseAct;\r
+\r
+               QIcon powerGreen;\r
+               QIcon powerRed;\r
+               QIcon blur;\r
+               uint32_t testPattern[VIRTUAL_SCREEN_WIDTH * VIRTUAL_SCREEN_HEIGHT_PAL];\r
+               uint32_t testPattern2[VIRTUAL_SCREEN_WIDTH * VIRTUAL_SCREEN_HEIGHT_PAL];\r
+};\r
+\r
+#endif // __MAINWIN_H__\r