MainWindow::MainWindow(QWidget *parent, bool fullscreen) : QMainWindow(parent), currentLanguage("en"), nextState(CORE_POWERDOWN), lastUIState(UISTATE_MENU), dialogDisasm(0), memoryWindow(0), memoryTexWindow(0), displaylistWindow(0) { QDesktopWidget *desktop = QApplication::desktop(); int screenNum = QProcessEnvironment::systemEnvironment().value("SDL_VIDEO_FULLSCREEN_HEAD", "0").toInt(); // Move window to top left coordinate of selected screen QRect rect = desktop->screenGeometry(screenNum); move(rect.topLeft()); SetGameTitle(""); emugl = new MainUI(this); setCentralWidget(emugl); createMenus(); updateMenus(); SetWindowScale(-1); if(fullscreen) fullscrAct(); QObject::connect(emugl, SIGNAL(doubleClick()), this, SLOT(fullscrAct())); QObject::connect(emugl, SIGNAL(newFrame()), this, SLOT(newFrame())); }
// TODO: Make this class thread-aware. Can't send events to a different thread. Currently only works on X11. // Needs to use QueuedConnection for signals/slots. MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow), nextState(CORE_POWERDOWN), dialogDisasm(0), memoryWindow(0), memoryTexWindow(0), timer(this), displaylistWindow(0), lastUIState(UISTATE_MENU) { ui->setupUi(this); controls = new Controls(this); #if QT_HAS_SDL gamePadDlg = new GamePadDialog(&input_state, this); #endif host = new QtHost(this); emugl = ui->widget; emugl->init(&input_state); emugl->resize(pixel_xres, pixel_yres); emugl->setMinimumSize(pixel_xres, pixel_yres); emugl->setMaximumSize(pixel_xres, pixel_yres); QObject::connect( emugl, SIGNAL(doubleClick()), this, SLOT(on_action_OptionsFullScreen_triggered()) ); createLanguageMenu(); UpdateMenus(); int zoom = g_Config.iWindowZoom; if (zoom < 1) zoom = 1; if (zoom > 4) zoom = 4; SetZoom(zoom); SetGameTitle(fileToStart); connect(&timer, SIGNAL(timeout()), this, SLOT(Update())); timer.setInterval(0); timer.start(); // if (!fileToStart.isNull()) // { // UpdateMenus(); // if (stateToLoad != NULL) // SaveState::Load(stateToLoad); // } }
void MainWindow::on_action_FileClose_triggered() { if(dialogDisasm) dialogDisasm->Stop(); if(dialogDisasm && dialogDisasm->isVisible()) dialogDisasm->close(); if(memoryWindow && memoryWindow->isVisible()) memoryWindow->close(); if(memoryTexWindow && memoryTexWindow->isVisible()) memoryTexWindow->close(); if(displaylistWindow && displaylistWindow->isVisible()) displaylistWindow->close(); NativeMessageReceived("stop", ""); SetGameTitle(""); UpdateMenus(); }
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), currentLanguage("en"), nextState(CORE_POWERDOWN), lastUIState(UISTATE_MENU), dialogDisasm(0), memoryWindow(0), memoryTexWindow(0), displaylistWindow(0) { SetGameTitle(""); emugl = new MainUI(this); setCentralWidget(emugl); createMenus(); updateMenus(); SetZoom(g_Config.iInternalResolution); QObject::connect(emugl, SIGNAL(doubleClick()), this, SLOT(fullscrAct())); QObject::connect(emugl, SIGNAL(newFrame()), this, SLOT(newFrame())); }