Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /******************************************************************************
- * *
- * Volatile Programming *
- * Menu_Example2.cpp *
- * *
- ******************************************************************************
- * *
- * By: Volatile Pulse *
- * What: An example to demonstrate the different features of the Menu2 class *
- * Date: 06.18.2012 *
- * *
- ******************************************************************************/
- #include "\lib\menu2.h"
- #include "\lib\header.h"
- // Define Calc Functions
- void AddMe(int x, int y) { std::cout << x << " + " << y; VP_GetCh(); }
- void SubtractMe(int x, int y) { std::cout << x << " - " << y; VP_GetCh(); }
- void MultiplyMe() { std::cout << "You chose to do some multiplication"; VP_GetCh(); }
- void DivideMe() { std::cout << "You chose to do some division"; VP_GetCh(); }
- // Define Game Functions
- void Tetris() { std::cout << "You chose to play Tetris"; VP_GetCh(); }
- void TTT() { std::cout << "You chose to play Tic-Tac-Toe"; VP_GetCh(); }
- void Battleship() { std::cout << "You chose to play Battleship"; VP_GetCh(); }
- void Minesweeper() { std::cout << "You chose to play Minesweeper"; VP_GetCh(); }
- // Define AboutMe Function
- void AboutMe() {
- std::cout << "This is the latest update in the Menu Class\n\n"
- << "New features include passing functions to the menu options\n\n"
- << "Currently Requires some C++11 support, specifically:\n"
- << "\t#include <functional>";
- VP_GetCh();
- }
- int main() {
- // Disable Console Cursor
- VP_SetConsoleCursor(false);
- // Define Calculator Menu
- Menu CalcMenu("Calculator", "-> ", " <-", CENTER, CENTER);
- // Using std::bind to pass values to AddMe
- CalcMenu.AddOption("Addition", std::bind(AddMe, 4, 5));
- // Using a lambda function to call Subtract me with values
- CalcMenu.AddOption("Subtraction", [] () { SubtractMe(9, 5); });
- // Standard function call
- CalcMenu.AddOption("Multiply", MultiplyMe);
- CalcMenu.AddOption("Divide", DivideMe);
- CalcMenu.AddOption("Main Menu");
- // Define Games Menu
- Menu GameMenu("Games", "-> ", " <-", CENTER, CENTER);
- GameMenu.AddOption("Tetris", Tetris);
- // Using Lambda to call TTT
- GameMenu.AddOption("Tic-Tac-Toe", [] () { TTT(); } );
- GameMenu.AddOption("Battleship", Battleship);
- GameMenu.AddOption("Minesweeper", Minesweeper);
- GameMenu.AddOption("Main Menu");
- // Define Main Menu
- Menu MainMenu("Menu v2 Example", "-> ", " <-", CENTER, CENTER);
- // Must use std::bind or lambda to "Play" another menu
- MainMenu.AddOption("Calculator", std::bind(&Menu::Play, std::ref(CalcMenu)));
- // Notice the &: It is required to call class members
- MainMenu.AddOption("Games", [&] () { GameMenu.Play(); } );
- MainMenu.AddOption("About Me", AboutMe);
- MainMenu.AddOption("Exit");
- MainMenu.Play();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement