void RenderState::buildGUI() { OgreBites::SdkTrayManager* trayMgr = OgreFramework::getSingletonPtr()->_trayMgr; trayMgr->showFrameStats(OgreBites::TL_BOTTOMLEFT); // trayMgr->showLogo(OgreBites::TL_BOTTOMRIGHT); // trayMgr->createLabel(OgreBites::TL_TOP, "GameLbl", "Game mode", 250); trayMgr->showCursor(); Ogre::StringVector items; items.push_back("cam.pX"); items.push_back("cam.pY"); items.push_back("cam.pZ"); items.push_back("cam.oW"); items.push_back("cam.oX"); items.push_back("cam.oY"); items.push_back("cam.oZ"); items.push_back("Mode"); _detailsPanel = trayMgr->createParamsPanel(OgreBites::TL_NONE, "DetailsPanel", 200, items); _detailsPanel->hide(); Ogre::StringVector displayModes; displayModes.push_back("Solid mode"); displayModes.push_back("Wireframe mode"); displayModes.push_back("Point mode"); trayMgr->createLongSelectMenu(OgreBites::TL_TOPRIGHT, "DisplayModeSelMenu", "Display Mode", 200, 3, displayModes); lightCheckBox = trayMgr->createCheckBox(OgreBites::TL_TOPLEFT, "light", "Moving light", 200); tmkSlider = trayMgr->createLongSlider(OgreBites::TL_TOPLEFT, "tmk", "tmk", 200,80,44,0,25,101); tmk2Slider = trayMgr->createLongSlider(OgreBites::TL_TOPLEFT, "tmk2", "tmk2", 200,80,44,0,70,101); mintmSlider = trayMgr->createLongSlider(OgreBites::TL_TOPLEFT, "minTm", "minTm", 200,80,44,0,1,101); shininessSlider = trayMgr->createLongSlider(OgreBites::TL_TOPLEFT, "shininess", "shininess", 200,80,44,0,10,101); stepsSlider = trayMgr->createLongSlider(OgreBites::TL_TOPLEFT, "steps", "steps", 200,80,44,16,1024,241); ambientSlider = trayMgr->createLongSlider(OgreBites::TL_TOPLEFT, "ambient", "ambient", 200,80,44,-1,3,61); backIllumSlider = trayMgr->createLongSlider(OgreBites::TL_TOPLEFT, "backIllum", "back illumination", 200,80,44,0,3,31); shadeCoeffSlider = trayMgr->createLongSlider(OgreBites::TL_TOPLEFT, "shadeCoeff", "shadeCoeff", 200,80,44,0.1,5,50); specCoeffSlider = trayMgr->createLongSlider(OgreBites::TL_TOPLEFT, "specCoeff", "specCoeff", 200,80,44,0.1,5,50); specMultSlider = trayMgr->createLongSlider(OgreBites::TL_TOPLEFT, "specMult", "specMult", 200,80,44,0.1,8,80); glowCoeffSlider = trayMgr->createLongSlider(OgreBites::TL_TOPLEFT, "glowCoeff", "glowCoeff", 200,80,44,0,5,101); miscSlider = trayMgr->createLongSlider(OgreBites::TL_TOPLEFT, "misc", "misc", 200,80,44,0,10,101); // OgreBites::Button* reloadMaterialButton = // trayMgr->createButton(OgreBites::TL_RIGHT, // "ReloadMaterial", // "Reload material", 60); updateWidgets(); }
void MenuSystem::createMenu(MENUS menu) { OgreBites::SdkTrayManager* currentTray = 0; switch(menu) { case STARTMENU: { // Create the Tray Manager currentTray = new OgreBites::SdkTrayManager("StartMenu", mWindow, mInputContext, this); // Design the tray, Save the buttons if you want to check if they are pressed currentTray->createLabel(OgreBites::TL_TOP, "GameTitle", "Juicy Checkers", 500); pName = currentTray->createTextBox(OgreBites::TL_CENTER, "pName", "Enter Your Name",300,75); int randomNumbers = rand() % 1000; char bfr[256]; char* iden = itoa(randomNumbers, bfr, 10); pName->setText(Ogre::String("Player")+iden); ip = currentTray->createTextBox(OgreBites::TL_CENTER, "ip", "Enter the Server IP",300,75); ip->setText("127.0.0.1"); startButton = currentTray->createButton(OgreBites::TL_CENTER, "startBtn", "Start Multiplayer"); exitButton = currentTray->createButton(OgreBites::TL_CENTER, "extBtn", "Exit Game"); // Add the tray into the tray container. NOTE: This function is designed to be run from 0 -> MENU.max mTrays.push_back(currentTray); } break; case LISTLOBBYMENU: { // Create the Tray Manager currentTray = new OgreBites::SdkTrayManager("ListLobbyMenu", mWindow, mInputContext, this); // Design the tray, Save the buttons if you want to check if they are pressed // Create the label currentTray->createLabel(OgreBites::TL_TOP, "JoinCreateLobby", "Join/Create Lobby", 500); createLobbyButton = currentTray->createButton(OgreBites::TL_CENTER, "createLobby", "Create Lobby"); // Have the option to create a new lobby // Below this we will have a listing of lobbys that the user can click on selectLobby = currentTray->createLongSelectMenu(OgreBites::TL_CENTER, "selectLobby", Ogre::DisplayString("Select a Lobby"), Ogre::Real(300.0), 12); joinLobby = currentTray->createButton(OgreBites::TL_CENTER, "joinLobby", "Join Lobby"); refreshLobbyButton = currentTray->createButton(OgreBites::TL_CENTER, "refreshLobby", "Refresh Lobbies"); lobbyBack = currentTray->createButton(OgreBites::TL_CENTER, "lobbyBack", "Back"); // Add the tray into the tray container. NOTE: This function is designed to be run from 0 -> MENU.max mTrays.push_back(currentTray); } break; case CREATELOBBYMENU: { // Create the Tray Manager currentTray = new OgreBites::SdkTrayManager("CreateLobbyMenu", mWindow, mInputContext, this); // Design the tray, Save the buttons if you want to check if they are pressed // Label currentTray->createLabel(OgreBites::TL_TOP, "CreateLobby", "Create Lobby", 500); lobbyName = currentTray->createTextBox(OgreBites::TL_CENTER, "lobbyName", "Lobby Name", 500 , 300); createLobby = currentTray->createButton(OgreBites::TL_CENTER, "createLobbyButton", "Create Lobby"); createLobbyBack = currentTray->createButton(OgreBites::TL_CENTER, "createLobbyButtonBack", "Back"); // Text area for the name // Button to create // Add the tray into the tray container. NOTE: This function is designed to be run from 0 -> MENU.max mTrays.push_back(currentTray); } break; case LOBBYMENU: { // Create the Tray Manager currentTray = new OgreBites::SdkTrayManager("LobbyMenu", mWindow, mInputContext, this); currentTray->createLabel(OgreBites::TL_TOP, "lobbyMenuTitle", "Lobby Menu", 500); // List the current players currentTray->createLabel(OgreBites::TL_CENTER, "lobbyMenuPlayers", "Players", 300); lobbyPlayersTextBox = currentTray->createTextBox(OgreBites::TL_CENTER, "lobbyPlayers", "Players",400,150); // Have a (ready) toggle button if(isReady) { lobbyReadyButton = currentTray->createButton(OgreBites::TL_CENTER, "readyButton", "READY"); //isReady = !isReady; } else { lobbyReadyButton = currentTray->createButton(OgreBites::TL_CENTER, "readyButton", "NOT READY"); //isReady = !isReady; } // Have a chat box lobbyChatBox = currentTray->createTextBox(OgreBites::TL_CENTER, "chatBox", "Chat Window",500,250); lobbyChatTextField = currentTray->createTextBox(OgreBites::TL_CENTER, "chatTextField", "Enter Chat Here",500,80); // Add the tray into the tray container. NOTE: This function is designed to be run from 0 -> MENU.max mTrays.push_back(currentTray); } break; case MATCHMENU: { // Create the Tray Manager currentTray = new OgreBites::SdkTrayManager("MatchMenu", mWindow, mInputContext, this); // Design the tray, Save the buttons if you want to check if they are pressed // Here we will have some elements such as labels in certain positions to indicate // the current turn, timers upgrades etc etc. // Indicate whos turn it currently is with a label matchTurn = currentTray->createLabel(OgreBites::TL_TOPLEFT, "turnLabel", "Your Turn"); // Indicate with a label the current powerup credit level matchCredits = currentTray->createLabel(OgreBites::TL_TOPLEFT, "powerupLabel", "Powerup Credits:0"); // Have a button that opens up the upgrade menu matchUpgrade = currentTray->createButton(OgreBites::TL_TOPLEFT, "upgradeButton", "Open Upgrades"); // Add the tray into the tray container. NOTE: This function is designed to be run from 0 -> MENU.max mTrays.push_back(currentTray); } break; case UPGRADEMENU: { // Create the Tray Manager currentTray = new OgreBites::SdkTrayManager("UpgradeMenu", mWindow, mInputContext, this); matchTurn = currentTray->createLabel(OgreBites::TL_CENTER, "nameLabel", "Powerup Menu"); matchCredits = currentTray->createLabel(OgreBites::TL_CENTER, "credits", "Credits: 0"); powerupOne = currentTray->createButton(OgreBites::TL_CENTER, "buyPU1", "Powerup One"); powerupTwo = currentTray->createButton(OgreBites::TL_CENTER, "buyPU2", "Powerup Two"); powerupThree = currentTray->createButton(OgreBites::TL_CENTER, "buyPU3", "Powerup Three"); powerupBack = currentTray->createButton(OgreBites::TL_CENTER, "powerupBack", "Back"); // Add the tray into the tray container. NOTE: This function is designed to be run from 0 -> MENU.max mTrays.push_back(currentTray); } break; case RESULTMENU: { // Create the Tray Manager currentTray = new OgreBites::SdkTrayManager("ResultMenu", mWindow, mInputContext, this); // Design the tray, Save the buttons if you want to check if they are pressed // Label // Label results // Add the tray into the tray container. NOTE: This function is designed to be run from 0 -> MENU.max mTrays.push_back(currentTray); } break; } }