generalTab->useBIOS->setChecked(vjs.useJaguarBIOS);
generalTab->useGPU->setChecked(vjs.GPUEnabled);
generalTab->useDSP->setChecked(vjs.DSPEnabled);
+ generalTab->useFullScreen->setChecked(vjs.fullscreen);
// generalTab->useHostAudio->setChecked(vjs.audioEnabled);
if (vjs.hardwareTypeAlpine)
vjs.useJaguarBIOS = generalTab->useBIOS->isChecked();
vjs.GPUEnabled = generalTab->useGPU->isChecked();
vjs.DSPEnabled = generalTab->useDSP->isChecked();
+ vjs.fullscreen = generalTab->useFullScreen->isChecked();
// vjs.audioEnabled = generalTab->useHostAudio->isChecked();
if (vjs.hardwareTypeAlpine)
useBIOS = new QCheckBox(tr("Enable Jaguar BIOS"));
useGPU = new QCheckBox(tr("Enable GPU"));
useDSP = new QCheckBox(tr("Enable DSP"));
+ useFullScreen = new QCheckBox(tr("Start Virtual Jaguar in full screen"));
// useHostAudio = new QCheckBox(tr("Enable audio playback (requires DSP)"));
useUnknownSoftware = new QCheckBox(tr("Show all files in file chooser"));
layout4->addWidget(useBIOS);
layout4->addWidget(useGPU);
layout4->addWidget(useDSP);
+ layout4->addWidget(useFullScreen);
// layout4->addWidget(useHostAudio);
layout4->addWidget(useUnknownSoftware);
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"));
toolbar->addAction(palAct);
toolbar->addSeparator();
toolbar->addAction(blurAct);
+ toolbar->addAction(fullScreenAct);
if (vjs.hardwareTypeAlpine)
{
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 LoadSoftware(QString);
void ToggleCDUsage(void);
void FrameAdvance(void);
+ void ToggleFullScreen(void);
void ShowMemoryBrowserWin(void);
void ShowCPUBrowserWin(void);
private:
void HandleKeys(QKeyEvent *, bool);
+ void SetFullScreen(bool state = true);
void ResizeMainWindow(void);
void ReadSettings(void);
void WriteSettings(void);
bool pauseForFileSelector;
bool loadAndGo;
bool keyHeld[8];
+ bool fullScreen;
public:
bool plzDontKillMyComputer;
private:
QAction * configAct;
QAction * useCDAct;
QAction * frameAdvanceAct;
+ QAction * fullScreenAct;
QAction * memBrowseAct;
QAction * cpuBrowseAct;