Added a HW registers browser window and set a tab for the Blitter
[clinton/Virtual-Jaguar-Rx.git] / src / gui / mainwin.cpp
index a25fad1..98f1df8 100644 (file)
@@ -23,7 +23,7 @@
 // JPM   Oct./2018  Added search paths in the settings, breakpoints feature, cartridge view menu\r
 // JPM  11/18/2018  Fix crash with non-debugger mode\r
 // JPM  April/2019  Added ELF sections check, added a save memory dump\r
-// JPM   Aug./2019  Update texts descriptions, set cartridge view menu for debugger mode only\r
+// JPM   Aug./2019  Update texts descriptions, set cartridge view menu for debugger mode only, added a HW registers browser\r
 //\r
 \r
 // FIXED:\r
@@ -71,6 +71,7 @@
 #include "debug/stackbrowser.h"\r
 #include "debug/opbrowser.h"\r
 #include "debug/riscdasmbrowser.h"\r
+#include "debug/hwregsbrowser.h"\r
 \r
 #include "dac.h"\r
 #include "jaguar.h"\r
@@ -194,6 +195,7 @@ MainWin::MainWin(bool autoRun): running(true), powerButtonOn(false),
        opBrowseWin = new OPBrowserWindow(this);\r
        m68kDasmBrowseWin = new M68KDasmBrowserWindow(this);\r
        riscDasmBrowseWin = new RISCDasmBrowserWindow(this);\r
+       hwRegsBrowseWin = new HWRegsBrowserWindow(this);\r
 \r
        // Windows debugger mode features\r
        if (vjs.softTypeDebugger)\r
@@ -515,6 +517,11 @@ MainWin::MainWin(bool autoRun): running(true), powerButtonOn(false),
        m68kDasmBrowseAct->setStatusTip(tr("Shows the 68K disassembly browser window"));\r
        connect(m68kDasmBrowseAct, SIGNAL(triggered()), this, SLOT(ShowM68KDasmBrowserWin()));\r
 \r
+       // HW registers browser window\r
+       hwRegsBrowseAct = new QAction(QIcon(":/res/tool-hw-regs.png"), tr("HW Registers Browser"), this);\r
+       hwRegsBrowseAct->setStatusTip(tr("Shows the HW registers browser window"));\r
+       connect(hwRegsBrowseAct, SIGNAL(triggered()), this, SLOT(ShowHWRegsBrowserWin()));\r
+\r
        // Risc (DSP / GPU) disassembly browser window\r
        riscDasmBrowseAct = new QAction(QIcon(":/res/tool-risc-dis.png"), tr("RISC Listing Browser"), this);\r
        riscDasmBrowseAct->setStatusTip(tr("Shows the RISC disassembly browser window"));\r
@@ -592,6 +599,7 @@ MainWin::MainWin(bool autoRun): running(true), powerButtonOn(false),
                        debugWindowsBrowsesMenu->addAction(opBrowseAct);\r
                        debugWindowsBrowsesMenu->addAction(m68kDasmBrowseAct);\r
                        debugWindowsBrowsesMenu->addAction(riscDasmBrowseAct);\r
+                       debugWindowsBrowsesMenu->addAction(hwRegsBrowseAct);\r
                        debugMenu->addSeparator();\r
                        debugMenu->addAction(pauseAct);\r
                        debugMenu->addAction(frameAdvanceAct);\r
@@ -620,6 +628,7 @@ MainWin::MainWin(bool autoRun): running(true), powerButtonOn(false),
                        debugMenu->addAction(opBrowseAct);\r
                        debugMenu->addAction(m68kDasmBrowseAct);\r
                        debugMenu->addAction(riscDasmBrowseAct);\r
+                       debugMenu->addAction(hwRegsBrowseAct);\r
                }\r
        }\r
 \r
@@ -676,6 +685,7 @@ MainWin::MainWin(bool autoRun): running(true), powerButtonOn(false),
                debugbar->addAction(opBrowseAct);\r
                debugbar->addAction(m68kDasmBrowseAct);\r
                debugbar->addAction(riscDasmBrowseAct);\r
+               debugbar->addAction(hwRegsBrowseAct);\r
        }\r
 \r
        // Add actions to the main window, as hiding widgets with them\r
@@ -1764,6 +1774,7 @@ void MainWin::ShowCPUBrowserWin(void)
 }\r
 \r
 \r
+// Show the OP browser window\r
 void MainWin::ShowOPBrowserWin(void)\r
 {\r
        opBrowseWin->show();\r
@@ -1771,6 +1782,15 @@ void MainWin::ShowOPBrowserWin(void)
 }\r
 \r
 \r
+// Show the HW registers browser window\r
+void MainWin::ShowHWRegsBrowserWin(void)\r
+{\r
+       hwRegsBrowseWin->show();\r
+       hwRegsBrowseWin->RefreshContents();\r
+}\r
+\r
+\r
+// Show the M68K browser window\r
 void MainWin::ShowM68KDasmBrowserWin(void)\r
 {\r
        m68kDasmBrowseWin->show();\r
@@ -2027,6 +2047,13 @@ void MainWin::ReadUISettings(void)
                size = settings.value("opBrowseWinSize", QSize(400, 400)).toSize();\r
                opBrowseWin->resize(size);\r
 \r
+               // HW registers UI information\r
+               pos = settings.value("hwRegsBrowseWinPos", QPoint(200, 200)).toPoint();\r
+               hwRegsBrowseWin->move(pos);\r
+               settings.value("hwRegsBrowseWinIsVisible", false).toBool() ? ShowHWRegsBrowserWin() : void();\r
+               size = settings.value("hwRegsBrowseWinSize", QSize(400, 400)).toSize();\r
+               hwRegsBrowseWin->resize(size);\r
+\r
                // RISC disassembly UI information\r
                pos = settings.value("riscDasmBrowseWinPos", QPoint(200, 200)).toPoint();\r
                riscDasmBrowseWin->move(pos);\r
@@ -2290,6 +2317,9 @@ void MainWin::WriteUISettings(void)
                settings.setValue("opBrowseWinPos", opBrowseWin->pos());\r
                settings.setValue("opBrowseWinIsVisible", opBrowseWin->isVisible());\r
                settings.setValue("opBrowseWinSize", opBrowseWin->size());\r
+               settings.setValue("hwRegsBrowseWinPos", hwRegsBrowseWin->pos());\r
+               settings.setValue("hwRegsBrowseWinIsVisible", hwRegsBrowseWin->isVisible());\r
+               settings.setValue("hwRegsBrowseWinSize", hwRegsBrowseWin->size());\r
                settings.setValue("riscDasmBrowseWinPos", riscDasmBrowseWin->pos());\r
                settings.setValue("riscDasmBrowseWinIsVisible", riscDasmBrowseWin->isVisible());\r
                settings.setValue("m68kDasmBrowseWinPos", m68kDasmBrowseWin->pos());\r
@@ -2357,6 +2387,7 @@ void MainWin::AlpineRefreshWindows(void)
        opBrowseWin->RefreshContents();\r
        riscDasmBrowseWin->RefreshContents();\r
        m68kDasmBrowseWin->RefreshContents();\r
+       hwRegsBrowseWin->RefreshContents();\r
 }\r
 \r
 \r