home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / opendc12.zip / od124os2.exe / od12osp1.exe / src / dynamicp / bmenu / madjmenu.c < prev    next >
Text File  |  1997-04-02  |  7KB  |  149 lines

  1. /*====START_GENERATED_PROLOG======================================
  2.  */
  3. /*
  4.  *   COMPONENT_NAME: oddynamicpart
  5.  *
  6.  *   CLASSES: none
  7.  *
  8.  *   ORIGINS: 82,27
  9.  *
  10.  *
  11.  *   (C) COPYRIGHT International Business Machines Corp. 1995,1996
  12.  *   All Rights Reserved
  13.  *   Licensed Materials - Property of IBM
  14.  *   US Government Users Restricted Rights - Use, duplication or
  15.  *   disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  16.  *
  17.  *   IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
  18.  *   ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  19.  *   PURPOSE. IN NO EVENT SHALL IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  20.  *   CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
  21.  *   USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
  22.  *   OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
  23.  *   OR PERFORMANCE OF THIS SOFTWARE.
  24.  */
  25. /*====END_GENERATED_PROLOG========================================
  26.  */
  27. /* @(#) 1.9 com/src/samples/dynamicp/bmenu/madjmenu.c, oddynamicpart, od96os2, odos29712d 2/18/97 13:55:50 [3/21/97 17:44:47]
  28. *******************************************************************
  29. ** Name: void AdjustMenus
  30. **
  31. ** Description:  override method to update menus before displaying
  32. **               them.
  33. **
  34. *******************************************************************
  35. */
  36. try {
  37.  
  38.     ODBoolean disable = kODFalse;
  39.     /**********************************************************************
  40.     *  Be careful what you do in this method.  AdjustMenus gets called
  41.     *  everytime the user presses MB1 down on the menu control.
  42.     *  This method is more for adjusting the current menu.  If you want
  43.     *  to add items, surround them with a flag so they only get added once.
  44.     *  Also, if you are the root part, but not the active part, you will
  45.     *  also get called to adjust the current menubar for items on the
  46.     *  Document menu (like Open as) if you support them.
  47.     **********************************************************************/
  48.     // Disable the VIEW standard menu item on the MenuBar
  49.       _fMenuBar->EnableMenu(ev, VIEW_SHOWAS, disable);
  50.  
  51.    // Disable unsupported menu items on Document and Edit menus
  52.      _fMenuBar->EnableMenuItem(ev, IDMS_DOCUMENT, DOC_SETUP, kODFalse);
  53.      _fMenuBar->EnableMenuItem(ev, IDMS_DOCUMENT, DOC_PRINT, kODFalse);
  54.  
  55.      _fMenuBar->EnableMenuItem(ev, IDMS_EDIT, EDIT_CREATE, kODFalse);
  56.      _fMenuBar->EnableMenuItem(ev, IDMS_EDIT, EDIT_CUT, kODFalse);
  57.      _fMenuBar->EnableMenuItem(ev, IDMS_EDIT, EDIT_LINK_MENU, kODFalse);
  58.      _fMenuBar->EnableMenuItem(ev, IDMS_EDIT, EDIT_DELETE, kODFalse);
  59.      _fMenuBar->EnableMenuItem(ev, IDMS_EDIT, EDIT_SELECTALL, kODFalse);
  60.      _fMenuBar->EnableMenuItem(ev, IDMS_EDIT, EDIT_DESELECTALL, kODFalse);
  61.      _fMenuBar->EnableMenuItem(ev, IDMS_EDIT, EDIT_OPENSEL, kODFalse);
  62.      _fMenuBar->EnableMenuItem(ev, IDMS_EDIT, EDIT_SELPROPERTIES, kODFalse);
  63.      _fMenuBar->EnableMenuItem(ev, IDMS_EDIT, EDIT_INSERT, kODFalse);
  64.  
  65.     // customize menu text to reflect current status
  66.  
  67.     IString MenuStopRotation = "";
  68.     IString MenuStopHShear = "";
  69.     IString MenuStopVShear = "";
  70.     _Resources->open();
  71.     if (_Resources->isOpen()) {
  72.        if (_xRotateActive) {
  73.          MenuStopRotation = _Resources->loadString(DYNAMICPART_MENU_RESUMED);
  74.        } else {
  75.          MenuStopRotation = _Resources->loadString(DYNAMICPART_MENU_STOPPED);
  76.        } /* endif */
  77.        if (_hShearActive) {
  78.          MenuStopHShear   = _Resources->loadString(DYNAMICPART_MENU_RESUMED);
  79.        } else {
  80.          MenuStopHShear   = _Resources->loadString(DYNAMICPART_MENU_STOPPED);
  81.        } /* endif */
  82.        if (_vShearActive) {
  83.          MenuStopVShear   = _Resources->loadString(DYNAMICPART_MENU_RESUMED);
  84.        } else {
  85.          MenuStopVShear   = _Resources->loadString(DYNAMICPART_MENU_STOPPED);
  86.        } /* endif */
  87.     } /* endif */
  88.     _Resources->close();
  89.  
  90.     // change menu item text to reflect new state
  91.     _fMenuBar->SetMenuItemText(ev, DYNAMICPART_MENU_ROTATE, DYNAMICPART_MENU_STOPPED, (char *)MenuStopRotation);
  92.     _fMenuBar->SetMenuItemText(ev, DYNAMICPART_MENU_HSHEAR, DYNAMICPART_MENU_HSTOPPED, (char *)MenuStopHShear);
  93.     _fMenuBar->SetMenuItemText(ev, DYNAMICPART_MENU_VSHEAR, DYNAMICPART_MENU_VSTOPPED, (char *)MenuStopVShear);
  94.     // now update popup menu
  95.     if (_fPopup != NULL) {
  96.       _fPopup->SetMenuItemText(ev, DYNAMICPART_MENU_ROTATE, DYNAMICPART_MENU_STOPPED, (char *)MenuStopRotation);
  97.       _fPopup->SetMenuItemText(ev, DYNAMICPART_MENU_HSHEAR, DYNAMICPART_MENU_HSTOPPED, (char *)MenuStopHShear);
  98.       _fPopup->SetMenuItemText(ev, DYNAMICPART_MENU_VSHEAR, DYNAMICPART_MENU_VSTOPPED, (char *)MenuStopVShear);
  99.     } /* endif */
  100.  
  101.  
  102.     //enable the menu items that we support
  103.  
  104.     // rotation menus
  105.     _fMenuBar->CheckMenuItem (ev,DYNAMICPART_MENU_RDIR, DYNAMICPART_MENU_RDIR_FORWARD, _xRotateClockwise);
  106.     _fMenuBar->CheckMenuItem (ev,DYNAMICPART_MENU_RDIR, DYNAMICPART_MENU_RDIR_BACKWARD,!_xRotateClockwise);
  107.  
  108.     // horizontal shear menus
  109.     _fMenuBar->CheckMenuItem (ev,DYNAMICPART_MENU_HDIR, DYNAMICPART_MENU_HDIR_FORWARD, _hShearRight);
  110.     _fMenuBar->CheckMenuItem (ev,DYNAMICPART_MENU_HDIR, DYNAMICPART_MENU_HDIR_BACKWARD,!_hShearRight);
  111.  
  112.     // vertical shear menus
  113.     _fMenuBar->CheckMenuItem (ev,DYNAMICPART_MENU_VDIR, DYNAMICPART_MENU_VDIR_FORWARD, _vShearUp);
  114.     _fMenuBar->CheckMenuItem (ev,DYNAMICPART_MENU_VDIR, DYNAMICPART_MENU_VDIR_BACKWARD,!_vShearUp);
  115.  
  116.     // Enable the DynamicPart menu only if the draft is writeable
  117.     _fMenuBar->EnableMenu(ev, DYNAMICPART_MENU, !_fDraftReadOnly);
  118.  
  119.     //////////////////////////////////////////////////////////////////
  120.  
  121.     if (_fPopup != NULL) {
  122.     // Disable the VIEW standard menu items on the Popup Menu
  123.       _fPopup->EnableMenuItem(ev, ID_BASEPOPUP, VIEW_PROPERTIES, disable);
  124.       _fPopup->EnableMenuItem(ev, ID_BASEPOPUP, VIEW_SHOWAS, disable);
  125.  
  126.     // Enable the DynamicPart menu items only if the draft is writeable
  127.       _fPopup->EnableMenuItem(ev, ID_BASEPOPUP, DYNAMICPART_MENU_ROTATE, !_fDraftReadOnly);
  128.       _fPopup->EnableMenuItem(ev, ID_BASEPOPUP, DYNAMICPART_MENU_HSHEAR, !_fDraftReadOnly);
  129.       _fPopup->EnableMenuItem(ev, ID_BASEPOPUP, DYNAMICPART_MENU_VSHEAR, !_fDraftReadOnly);
  130.       _fPopup->EnableMenuItem(ev, ID_BASEPOPUP, DYNAMICPART_MENU_RESET, !_fDraftReadOnly);
  131.  
  132.     // rotation menus
  133.       _fPopup->CheckMenuItem (ev,DYNAMICPART_MENU_RDIR, DYNAMICPART_MENU_RDIR_FORWARD, _xRotateClockwise);
  134.       _fPopup->CheckMenuItem (ev,DYNAMICPART_MENU_RDIR, DYNAMICPART_MENU_RDIR_BACKWARD,!_xRotateClockwise);
  135.  
  136.       // horizontal shear menus
  137.       _fPopup->CheckMenuItem (ev,DYNAMICPART_MENU_HDIR, DYNAMICPART_MENU_HDIR_FORWARD, _hShearRight);
  138.       _fPopup->CheckMenuItem (ev,DYNAMICPART_MENU_HDIR, DYNAMICPART_MENU_HDIR_BACKWARD,!_hShearRight);
  139.  
  140.       // horizontal shear menus
  141.       _fPopup->CheckMenuItem (ev,DYNAMICPART_MENU_VDIR, DYNAMICPART_MENU_VDIR_FORWARD, _vShearUp);
  142.       _fPopup->CheckMenuItem (ev,DYNAMICPART_MENU_VDIR, DYNAMICPART_MENU_VDIR_BACKWARD,!_vShearUp);
  143.     } /* endif */
  144.     //////////////////////////////////////////////////////////////////
  145.  
  146. } catch (...) {
  147.     reportAnyException(ev);
  148. } /* end try */
  149.