home *** CD-ROM | disk | FTP | other *** search
/ MacHack 2000 / MacHack 2000.toast / pc / The Hacks / Genie / Projects / Pedestal / Source / Sources / Menus / PedMenuFile.cc < prev   
Encoding:
C/C++ Source or Header  |  2000-06-24  |  958 b   |  70 lines

  1. /*    =================
  2.  *    PedMenuFile.cpp
  3.  *    =================
  4.  */
  5.  
  6. #include "PedestalDebugging.h"
  7.  
  8. #include "PedMenuFile.hh"
  9. #include "PedCommand.hh"
  10.  
  11. enum {
  12.     idAppleMENU = 128, // menu ID = 1
  13.     idFileMENU,
  14.     idEditMENU
  15. };
  16.  
  17.  
  18. PedMenuFile::PedMenuFile()
  19. : mNewCmd(NULL), mOpenCmd(NULL), mCloseCmd(NULL), mQuitCmd(NULL)
  20. {
  21.     GetFromResource(idFileMENU);
  22. }
  23.  
  24. void
  25. PedMenuFile::InstallCommand(PedCommand *inCmd, CmdCode inCode)
  26. {
  27.     switch (inCode) {
  28.         case 'new ':
  29.             mNewCmd = inCmd;
  30.             break;
  31.         case 'open':
  32.             mOpenCmd = inCmd;
  33.             break;
  34.         case 'clos':
  35.             mCloseCmd = inCmd;
  36.             break;
  37.         case 'quit':
  38.             mQuitCmd = inCmd;
  39.             break;
  40.         default:
  41.             break;
  42.     }
  43. }
  44.  
  45. void
  46. PedMenuFile::DoMenuItem(short inItem)
  47. {
  48.     PedCommand *cmd;
  49.     
  50.     switch (inItem) {
  51.         case 1:
  52.             cmd = mNewCmd;
  53.             break;
  54.         case 2:
  55.             cmd = mOpenCmd;
  56.             break;
  57.         case 3:
  58.             cmd = mCloseCmd;
  59.             break;
  60.         case 5:
  61.             cmd = mQuitCmd;
  62.             break;
  63.         default:
  64.             cmd = NULL;
  65.             break;
  66.     }
  67.     if (cmd)
  68.         cmd->Execute();
  69. }
  70.