Intro::Intro(const std::string& name, IFrontend* frontend) : UIWindow(name, frontend, WINDOW_FLAG_MODAL) { _onPop = CMD_START; _background = new UINodeIntroBackground(frontend); UINode *overlay = new UINode(frontend); overlay->setBackgroundColor(colorWhiteAlpha80); const float padding = 4.0f / std::max(_frontend->getWidth(), _frontend->getHeight()); overlay->setSize(_background->getWidth() - 2.0f * padding, _background->getHeight() - 2.0f * padding); overlay->setPos(padding, padding); _background->add(overlay); add(_background); UINodeButton* close = new UINodeButton(_frontend); close->setImage("icon-close"); close->setOnActivate(CMD_UI_POP); close->alignTo(_background, NODE_ALIGN_RIGHT | NODE_ALIGN_TOP, 0.01f); add(close); _panel = new UINode(frontend); _panel->setStandardPadding(); _panel->setPos(0.0f, _background->getTop()); _panel->setSize(_background->getWidth(), _background->getHeight()); _panel->setAlignment(NODE_ALIGN_CENTER | NODE_ALIGN_TOP); UIVBoxLayout *layout = new UIVBoxLayout(0.01f, true, NODE_ALIGN_CENTER); _panel->setLayout(layout); setInactiveAfterPush(1000L); }
UIGameOverWindow::UIGameOverWindow (IFrontend *frontend, CampaignManager& campaignManager) : UIWindow(UI_WINDOW_GAMEOVER, frontend), _campaignManager(campaignManager) { setInactiveAfterPush(); UINode* background = new UINodeGameOverBackground(frontend); add(background); if (!wantBackButton()) return; add(new UINodeBackButton(frontend, background)); }
UIGameFinishedWindow::UIGameFinishedWindow (IFrontend *frontend) : UIWindow(UI_WINDOW_GAMEFINISHED, frontend) { _musicFile = "music-win"; setInactiveAfterPush(); UINodeBackground *background = new UINodeBackground(frontend, "", false); if (System.hasTouch() && !wantBackButton()) background->setOnActivate(CMD_UI_POP); add(background); UINodeLabel *won = new UINodeLabel(frontend, tr("You won!")); won->setAlignment(NODE_ALIGN_MIDDLE | NODE_ALIGN_CENTER); won->setFont(LARGE_FONT); won->setColor(colorWhite); add(won); // TODO: if (!wantBackButton()) return; add(new UINodeBackButton(frontend, background)); }