home *** CD-ROM | disk | FTP | other *** search
/ Windoware / WINDOWARE_1_6.iso / miscprog / actormdi / mdifilef.cls < prev    next >
Text File  |  1990-12-06  |  2KB  |  51 lines

  1. /* MDIFILEF.CLS - This descendant of MDIFrame handles
  2.   command message processing that is specific to using
  3.   MDI with the FileWindow. */!!
  4.  
  5. inherit(MDIFrame, #MDIFileFrame, nil, 2, nil)!!
  6.  
  7. now(class(MDIFileFrame))!!
  8.  
  9. now(MDIFileFrame)!!
  10.  
  11. /* Enable all items on the menu that can be used if a child window
  12.   is present */
  13. Def enableMenus(self)
  14. { enableMenus(self:ancestor);
  15.   do(tuple(FILE_READ, FILE_SAVE, FILE_SAVEAS, EDIT_CUT, EDIT_COPY,
  16.     EDIT_PASTE, EDIT_CLEAR, EDIT_SELALL, EDIT_SRCH, EDIT_RPLC, VK_F3),
  17.   {using(menuItem) Call EnableMenuItem(hMenu, menuItem, MF_ENABLED bitOr MF_BYCOMMAND)
  18.   });
  19. }!!
  20.  
  21. /* Disable all items on the menu that can't be used if a child window
  22.   is not present */
  23. Def disableMenus(self)
  24. { disableMenus(self:ancestor);
  25.   do(tuple(FILE_READ, FILE_SAVE, FILE_SAVEAS, EDIT_CUT, EDIT_COPY,
  26.     EDIT_PASTE, EDIT_CLEAR, EDIT_SELALL, EDIT_SRCH, EDIT_RPLC, VK_F3),
  27.   {using(menuItem) Call EnableMenuItem(hMenu, menuItem, MF_GRAYED bitOr MF_BYCOMMAND)
  28.   });
  29. }!!
  30.  
  31. Def init(self)
  32. { init(self:ancestor);
  33.   Call DeleteMenu(hMenu, INSP_DOIT, MF_BYCOMMAND);
  34.   Call DeleteMenu(hMenu, INSP_ISEL, MF_BYCOMMAND);
  35.   addAbout(self);
  36. }!!
  37.  
  38. /* An application specific command method must be created for each MDI
  39.   application so that it knows how to handle creation of a new MDI child.
  40.   Once the MDI child is created there should be no problems in passing
  41.   command statements on to the child windows command method. */
  42. Def command(self, wP, lP | theChild)
  43. { if (wP == FILE_OPEN) or (wP == FILE_NEW)
  44.   then createMDIChild(clientWindow, MDIFileWindow, "(Untitled)", nil);
  45.   endif;
  46.   if theChild := activeChild(clientWindow)
  47.   then command(theChild, wP, lP);
  48.   endif;
  49.   command(self:ancestor, wP, lP);
  50. }!!
  51.