home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / ocl150a.zip / OCL / Samples / Menus / Source / Menus.cpp next >
C/C++ Source or Header  |  1996-08-20  |  2KB  |  113 lines

  1. // OCL Sample
  2. // Menus.cpp
  3.  
  4. #ifdef __BCPLUSPLUS__
  5.   #define __MSC
  6. #endif
  7.  
  8.  
  9. #define __OCL_RESOLVE_TEMPLATES__
  10. #include "..\Source\Menus.hpp"
  11.  
  12. void main(void)
  13. {
  14.  MenuSample *sample = NULL;
  15.  
  16.  
  17.  try
  18.   {
  19.    sample = new MenuSample;
  20.   }
  21.  
  22.  catch(OPMException &err)
  23.   {
  24.    err.viewError();
  25.    _exit(err.rc);
  26.   }
  27.  
  28.  OApp::current().run();
  29.  
  30.  delete sample;
  31.  
  32.  _exit(0);
  33. }
  34.  
  35.  
  36. MenuSample::MenuSample()
  37.   : OFrame(MENU_MAIN, FCF_STANDARD & ~FCF_MENU)
  38. {
  39.  createFrame("OMenu - Sample Application");
  40.  menu = new OMenu(MENU_MENU, frame, client, NULLHANDLE);
  41.  showFrame();
  42. }
  43.  
  44.  
  45. MenuSample::~MenuSample()
  46. {
  47.  if (menu)
  48.    delete menu;
  49. }
  50.  
  51.  
  52. BOOL MenuSample::OCommand(ULONG msg, MPARAM mp1, MPARAM mp2)
  53. {
  54.  switch(msg)
  55.   {
  56.    case WM_COMMAND:
  57.      switch(SHORT1FROMMP(mp1))
  58.       {
  59.        case MENU_MENU_QUIT:
  60.         WinSendMsg(hwnd, WM_CLOSE, NULL, NULL);
  61.         break;
  62.  
  63.        case MENU_CHECK:
  64.         if (menu->isChecked(MENU_CHECK))
  65.           {
  66.            menu->checkItem(MENU_CHECK, FALSE);
  67.            menu->setItemText(MENU_CHECK, TEXT_UNCHECKED);
  68.           }  
  69.         else 
  70.           {
  71.            menu->checkItem(MENU_CHECK, TRUE);
  72.            menu->setItemText(MENU_CHECK, TEXT_CHECKED);
  73.           } 
  74.         break; 
  75.  
  76.        case MENU_DISABLE:
  77.         if (menu->isEnabled(MENU_DISABLE))
  78.           {
  79.            menu->enableItem(MENU_DISABLE, FALSE);
  80.            menu->setItemText(MENU_DISABLE, TEXT_DISABLED);
  81.           }  
  82.         else 
  83.           {
  84.            menu->enableItem(MENU_DISABLE, TRUE);
  85.            menu->setItemText(MENU_DISABLE, TEXT_ENABLED);
  86.           } 
  87.         break; 
  88.  
  89.        default:
  90.         DosBeep(100, 100);
  91.         break;
  92.       }
  93.      break;
  94.  
  95.    case WM_CLOSE:
  96.      WinPostMsg(hwnd, WM_QUIT, NULL, NULL);
  97.      break;
  98.  
  99.    default:
  100.      return(FALSE);
  101.   }
  102.  return(TRUE);
  103. #ifdef __BCPLUSPLUS__
  104.   #pragma warn -par
  105. #endif
  106. }
  107. #ifdef __BCPLUSPLUS__
  108.   #pragma warn .par
  109. #endif
  110.  
  111.  
  112. // end of source
  113.