#include "numericmenu.h" void tri() { size_t size; std::cerr << "How big do you want your triangle?\nEnter the number of rows: "; std::cin >> size; for(size_t i = 0; i < size; ++i) { for (size_t j = 0; j < i+1; ++j) { std::cerr << '*'; } std::cerr << '\n'; } } class Square { public: void operator()() { size_t size; std::cerr << "How big do you want your square?\nEnter the number of rows: "; std::cin >> size; for(size_t i = 0; i < size; ++i) { for (size_t j = 0; j < size; ++j) { std::cerr << '*'; } std::cerr << '\n'; } } }; int main() { nmenu::MenuList menu("Go to the main menu."); nmenu::MenuList meno("Go to an empty menu.", &menu); nmenu::MenuList menopause("Go to the Asterisk Geometry menu."); nmenu::MenuExit paws("","You just exited the program. Have a nice day!\n"); Square squ; auto ev = [&menu](){menu.disconnect(1);}; nmenu::MenuItem discon("Remove this option from the menu.",&ev,&menu); nmenu::MenuExit ter("Please don't choose this. I don't want to be terminated.","You're so mean. *dies*\n"); menu.connect(&menopause); menu.connect(&discon); menu.connect(&meno); menu.connect(&paws); menu.connect(&ter); nmenu::MenuItem twi("Make the program print a triangle of asterisks.",tri,&menopause); nmenu::MenuItem rec("Make the program print a square of asterisks.",squ,&menopause); menopause.connect(&menu); menopause.connect(&twi); menopause.connect(&rec); menu.exec(); return 0; }