/*------------------------------------------------------------------------------------ ----------------------------setup----------------------------------------------------- ------------------------------------------------------------------------------------*/ void MainMenu::setup(ResourceManager& fresourceManager) //setup { //makes a textbox MenuElement* textBoxA; textBoxA = new SingleTextBox(sf::Vector2f(0, 0), fresourceManager.getFontPointerByName("DefaultFont"), "Welcome to the Grand Walrus Menu!", 50, 300, sf::Color::Red); //makes a BasicButton MenuElement* greenButtonA; greenButtonA = new BasicButton( sf::Vector2f(0, -150), fresourceManager.getResourceSetByName("GreenButtonRG"), "Test1", sf::Color::White, sf::Vector2f(200, 100), 50 ); //makes a BasicButton MenuElement* greenButtonB; greenButtonB = new BasicButton( sf::Vector2f(0, 150), fresourceManager.getResourceSetByName("GreenButtonRG"), "Test2", sf::Color::White, sf::Vector2f(200, 100), 50 ); //gives the basic button callback functions BasicButton* p_greenButtonB = static_cast<BasicButton*>(greenButtonB); //cast the menuElement as a basicButton p_greenButtonB->addFunctionToDoOnButtonState(openSecondMenu, this, 12); //add the openSecondMenu to the button on click p_greenButtonB->addFunctionToDoOnButtonState(closeNormalMenu, this, 12); //add the closeNormalMenu to the button on click //same thing, essentially MenuElement* greenButtonC; greenButtonC = new BasicButton( sf::Vector2f(0, -150), fresourceManager.getResourceSetByName("GreenButtonRG"), "Test3", sf::Color::White, sf::Vector2f(200, 100), 50 ); BasicButton* p_greenButtonC = static_cast<BasicButton*>(greenButtonC); p_greenButtonC->addFunctionToDoOnButtonState(openNormalMenu, this, 12); p_greenButtonC->addFunctionToDoOnButtonState(closeSecondMenu, this, 12); //same thing but with a slider MenuElement* testSlider; testSlider = new Slider( fresourceManager.getTexturePointerByName("SliderBackground"), fresourceManager.getTexturePointerByName("SliderNotch"), fresourceManager.getTexturePointerByName("SliderButton"), sf::Vector2f(200, 50), sf::Vector2f(150, 20), sf::Vector2f(20, 40), sf::Vector2f(0, 150), sliderVariable, 0, 100, 80); //create a menu background MenuElement* walrusBG; walrusBG = new MenuBackground( sf::Vector2f(0, 0), fresourceManager.getTexturePointerByName("WalrusBackground"), sf::Vector2f(800, 600) ); //again... MenuElement* giraffeBG; giraffeBG = new MenuBackground( sf::Vector2f(0, 0), fresourceManager.getTexturePointerByName("GiraffeBackground"), sf::Vector2f(800, 600)); //make two menus Menu defaultMenu; Menu secondMenu; //add the elements to one menu (order matters now) defaultMenu.addMenuElement(walrusBG, "WalrusBackground"); defaultMenu.addMenuElement(greenButtonA, "TopGreenButton"); defaultMenu.addMenuElement(greenButtonB, "BottomGreenButton"); defaultMenu.addMenuElement(textBoxA, "TextBoxA"); //add the elements to the other menu (order matters now) secondMenu.addMenuElement(giraffeBG, "GiraffeBackground"); secondMenu.addMenuElement(greenButtonC, "TopGreenButtonS"); secondMenu.addMenuElement(testSlider, "TestSlider"); // add the menus to the menuManager (order matters) MainMenuManager.addMenu(defaultMenu, "NormalMenu", sf::Vector2f(400, 300)); MainMenuManager.addMenu(secondMenu, "SecondMenu", sf::Vector2f(400, 300)); MainMenuManager.getMenuPointerByName("SecondMenu")->deactivate(); //delete greenButtonA; //delete greenButtonB; //delete walrusBG; }