Source of menuitems.cpp


  1: /** @file menuitems.cpp */

  3: #include <iostream>
  4: #include <vector>
  5: using namespace std;

  7: #define NO_DISPLAY_ID_INFO
  8: #include "utilities.h"
  9: using Scobey::Pause;
 10: #include "menuitem_base.h"

 12: class MenuItemQuit : public MenuItem
 13: {
 14:     void performAction()
 15:     {
 16:                 Pause(0, "Program now terminating.");
 17:     }
 18: };

 20: class MenuItemRingBell : public MenuItem
 21: {
 22:     void performAction()
 23:     {
 24:         cout << '\007';
 25:                 Pause();
 26:     }
 27: };

 29: class MenuItemPrintMessage : public MenuItem
 30: {
 31:     void performAction()
 32:     {
 33:         cout << "\nThis is a message ...\n";
 34:                 Pause();
 35:     }
 36: };

 38: class MenuItemAddTwoInts : public MenuItem
 39: {
 40:     void performAction()
 41:     {
 42:         int m, n;
 43:         cout << "Enter two integer values to add: ";
 44:         cin >> m >> n;  cin.ignore(80, '\n');
 45:         cout << "The sum of " << m << " and " << n << " is " << m+n << ".\n";
 46:                 Pause();
 47:     }
 48: };

 50: string menuTitle = "Menu";
 51: void InitializeMenuItems
 52: (
 53:     vector<MenuItem*>& menuItems //out
 54: )
 55: {
 56:     int numberOfCommands = 4;
 57:     menuItems.resize(numberOfCommands);
 58:     menuItems[0] = new MenuItemQuit;
 59:     menuItems[0]->setOption("Quit");
 60:     menuItems[1] = new MenuItemRingBell;
 61:     menuItems[1]->setOption("Sound a bell");
 62:     menuItems[2] = new MenuItemPrintMessage;
 63:     menuItems[2]->setOption("Print a message");
 64:     menuItems[3] = new MenuItemAddTwoInts;
 65:     menuItems[3]->setOption("Add two numbers");
 66: }