QtMainWindow::QtMainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) , oldDockSceneGraphMinSize(-1, -1) , oldDockSceneGraphMaxSize(-1, -1) , repackSpritesWaitDialog(NULL) , emitRepackAndReloadFinished(false) { // initialize console Console::Instance(); new ProjectManager(); new SceneDataManager(); new QtMainWindowHandler(this); ui->setupUi(this); qApp->installEventFilter(this); EditorConfig::Instance()->ParseConfig(EditorSettings::Instance()->GetProjectPath() + "EditorConfig.yaml"); QtMainWindowHandler::Instance()->SetDefaultFocusWidget(ui->sceneTabWidget); QtMainWindowHandler::Instance()->SetResentMenu(ui->menuFile); QtMainWindowHandler::Instance()->RegisterStatusBar(ui->statusBar); QtMainWindowHandler::Instance()->RestoreDefaultFocus(); RegisterBasePointerTypes(); SetupActions(); SetupMainMenu(); SetupToolBars(); SetupDocks(); posSaver.Attach(this); posSaver.LoadState(this); ui->dockParticleEditor->installEventFilter(this); ChangeParticleDockVisible(false); //hide particle editor dock on start up ui->dockParticleEditorTimeLine->hide(); // Open last project QObject::connect(ProjectManager::Instance(), SIGNAL(ProjectOpened(const QString &)), this, SLOT(ProjectOpened(const QString &))); OpenLastProject(); }
//------------------------------------------------------------ //------------------------------------------------------------ void MainMenuState::OnInit() { //Load parent widget container (only contains background image, main menu, and particle menu) auto menuContainerDef = CSCore::Application::Get()->GetResourcePool()->LoadResource<CSUI::WidgetTemplate>(CSCore::StorageLocation::k_package, "GUI/MenuContainer.csui"); m_menuContainer = CSCore::Application::Get()->GetWidgetFactory()->Create(menuContainerDef); GetUICanvas()->AddWidget(m_menuContainer); //Get main and particle menus m_mainMenu = m_menuContainer->GetWidget("MainMenuTemplate")->GetWidget("MainMenuContainer"); m_particleMenu = m_menuContainer->GetWidget("ParticleMenuTemplate")->GetWidget("ParticleMenuContainer"); m_benchmarkingMenu = m_menuContainer->GetWidget("BenchmarkingMenuTemplate")->GetWidget("BenchmarkingMenuContainer"); //Get benchmarking divs auto benchmarkingMenuGrid = m_benchmarkingMenu->GetWidget("BenchmarkingDivsContainer")->GetWidget("ParticleMenuMainDiv")->GetWidget("ParticleMenuGridTemplate")->GetWidget("BenchmarkingParticleMenuGrid"); m_benchPlayerParticleDiv = benchmarkingMenuGrid->GetWidget("PlayerPaddleParticleDiv"); m_benchOpponentParticleDiv = benchmarkingMenuGrid->GetWidget("OpponentPaddleParticleDiv"); m_benchBallParticleDiv = benchmarkingMenuGrid->GetWidget("BallParticleDiv"); m_benchOptionParticleDiv = benchmarkingMenuGrid->GetWidget("OptionParticleDiv"); //Disable all user interaction until the animation is complete. SetAllInputEnabled(false); //Create tweens that will move its components from the right and left (offscreen) to the center m_rightToCenterTween = CSCore::MakeEaseInOutBackTween(1.0f, 0.0f, 1.0f); m_leftToCenterTween = CSCore::MakeEaseInOutBackTween(-1.0f, 0.0f, 1.0f); //Create tweens that will move its components up and down and right and left within the screen m_upAndDownTween = CSCore::MakeEaseInOutBackTween(0.5f, 0.0f, 1.0f); m_rightAndLeftTween = CSCore::MakeEaseInOutBackTween(0.5f, 0.0f, 1.0f); SetupMainMenu(); SetupParticleMenu(); SetupBenchmarkingMenu(); //Transition system event m_transitionInConnection = m_transitionSystem->GetTransitionInFinishedEvent().OpenConnection([this]() { m_mainMenuMovementData.m_leftTween = true; m_mainMenuMovementData.m_movingCenter = true; m_mainMenuMovementData.m_moving = true; }); }
//------------------------------------------------------------------------------ //returns number of item chosen int MainMenu (void) { CMenu m; int i, nChoice = 0, nOptions = 0; IpxClose (); //paletteManager.Load (MENU_PALETTE, NULL, 0, 1, 0); //get correct palette if (!LOCALPLAYER.callsign [0]) { SelectPlayer (); return 0; } if (gameData.multiplayer.autoNG.bValid) { ExecMultiMenuOption (mainOpts.nMulti); return 0; } PrintLog ("launching main menu\n"); do { nOptions = SetupMainMenu (m); // may have to change, eg, maybe selected pilot and no save games. gameStates.input.keys.xLastPressTime = TimerGetFixedSeconds (); // .. 20 seconds from now! if (nChoice < 0) nChoice = 0; gameStates.menus.bDrawCopyright = 1; i = m.Menu ("", NULL, AutoDemoMenuCheck, &nChoice, BackgroundName (BG_MENU)); if (gameStates.app.bNostalgia) gameOpts->app.nVersionFilter = 3; if (i > -1) { ExecMainMenuOption (nChoice); SavePlayerProfile (); } } while (gameStates.app.nFunctionMode == FMODE_MENU); if (gameStates.app.nFunctionMode == FMODE_GAME) paletteManager.DisableEffect (); FlushInput (); return mainOpts.nChoice; }