#include "generaltab.h"
#include "version.h"
#include "debug/memorybrowser.h"
+#include "debug/cpubrowser.h"
#include "dac.h"
#include "jaguar.h"
helpWin = new HelpWindow(this);
filePickWin = new FilePickerWindow(this);
memBrowseWin = new MemoryBrowserWindow(this);
+ cpuBrowseWin = new CPUBrowserWindow(this);
videoWidget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
frameAdvanceAct->setShortcut(QKeySequence(tr("F7")));
connect(frameAdvanceAct, SIGNAL(triggered()), this, SLOT(FrameAdvance()));
+ fullScreenAct = new QAction(QIcon(":/res/generic.png"), tr("F&ull Screen"), this);
+ fullScreenAct->setShortcut(QKeySequence(tr("F9")));
+ connect(fullScreenAct, SIGNAL(triggered()), this, SLOT(ToggleFullScreen()));
+
// Debugger Actions
memBrowseAct = new QAction(QIcon(":/res/generic.png"), tr("Memory Browser"), this);
memBrowseAct->setStatusTip(tr("Shows the Jaguar memory browser window"));
// memBrowseAct->setCheckable(true);
connect(memBrowseAct, SIGNAL(triggered()), this, SLOT(ShowMemoryBrowserWin()));
+ cpuBrowseAct = new QAction(QIcon(":/res/generic.png"), tr("CPU Browser"), this);
+ cpuBrowseAct->setStatusTip(tr("Shows the Jaguar CPU browser window"));
+// memBrowseAct->setCheckable(true);
+ connect(cpuBrowseAct, SIGNAL(triggered()), this, SLOT(ShowCPUBrowserWin()));
+
// Misc. connections...
connect(filePickWin, SIGNAL(RequestLoad(QString)), this, SLOT(LoadSoftware(QString)));
connect(filePickWin, SIGNAL(FilePickerHiding()), this, SLOT(Unpause()));
{
debugMenu = menuBar()->addMenu(tr("&Debug"));
debugMenu->addAction(memBrowseAct);
+ debugMenu->addAction(cpuBrowseAct);
}
helpMenu = menuBar()->addMenu(tr("&Help"));
toolbar->addAction(palAct);
toolbar->addSeparator();
toolbar->addAction(blurAct);
+ toolbar->addAction(fullScreenAct);
if (vjs.hardwareTypeAlpine)
{
debugbar = addToolBar(tr("&Debug"));
debugbar->addAction(memBrowseAct);
+ debugbar->addAction(cpuBrowseAct);
}
// Create status bar
void MainWin::SyncUI(void)
{
// Set toolbar buttons/menus based on settings read in (sync the UI)...
+ // (Really, this is to sync command line options passed in)
blurAct->setChecked(vjs.glFilter);
x1Act->setChecked(zoomLevel == 1);
x2Act->setChecked(zoomLevel == 2);
ntscAct->setChecked(vjs.hardwareTypeNTSC);
palAct->setChecked(!vjs.hardwareTypeNTSC);
powerAct->setIcon(vjs.hardwareTypeNTSC ? powerRed : powerGreen);
+
+ fullScreen = vjs.fullscreen;
+ SetFullScreen(fullScreen);
}
e->accept();
return;
}
-
+/*
+ if (e->key() == Qt::Key_F9)
+ {
+ ToggleFullScreen();
+ return;
+ }
+*/
HandleKeys(e, true);
}
}
+void MainWin::SetFullScreen(bool state/*= true*/)
+{
+ if (state)
+ {
+ menuBar()->hide();
+ statusBar()->hide();
+ showFullScreen();
+ QRect r = QApplication::desktop()->availableGeometry();
+ double targetWidth = 320.0, targetHeight = (vjs.hardwareTypeNTSC ? 240.0 : 256.0);
+ double aspectRatio = targetWidth / targetHeight;
+ // NOTE: Really should check here to see which dimension constrains the other.
+ // Right now, we assume that height is the constraint.
+ int newWidth = (int)(aspectRatio * (double)r.height());
+
+ videoWidget->setFixedSize(newWidth, r.height());
+ showFullScreen();
+ }
+ else
+ {
+ menuBar()->show();
+ statusBar()->show();
+ showNormal();
+ ResizeMainWindow();
+ }
+
+ // For some reason, this doesn't work: If the emu is paused, toggling from
+ // fullscreen to windowed (& vice versa) shows a white screen.
+// videoWidget->updateGL();
+}
+
+
+void MainWin::ToggleFullScreen(void)
+{
+ fullScreen = !fullScreen;
+ SetFullScreen(fullScreen);
+}
+
+
void MainWin::ShowMemoryBrowserWin(void)
{
memBrowseWin->show();
}
+void MainWin::ShowCPUBrowserWin(void)
+{
+ cpuBrowseWin->show();
+ cpuBrowseWin->RefreshContents();
+}
+
+
void MainWin::ResizeMainWindow(void)
{
videoWidget->setFixedSize(zoomLevel * 320, zoomLevel * (vjs.hardwareTypeNTSC ? 240 : 256));