home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 January: Mac OS SDK / Dev.CD Jan 97 SDK2.toast / Development Kits (Disc 2) / OpenDoc Development Framework / ODFDev / Container / Sources / Commands.h < prev    next >
Encoding:
Text File  |  1996-09-17  |  8.1 KB  |  306 lines  |  [TEXT/MPS ]

  1. //========================================================================================
  2. //
  3. //    File:                Commands.h
  4. //    Release Version:    $ ODF 1 $
  5. //
  6. //    Copyright:            (c) 1993 - 1996 by Apple Computer, Inc., all rights reserved.
  7. //
  8. //========================================================================================
  9.  
  10. #ifndef COMMANDS_H
  11. #define COMMANDS_H
  12.  
  13. // ----- FrameWork Includes -----
  14.  
  15. #ifndef FWCMD_H
  16. #include "FWCmd.h"
  17. #endif
  18.  
  19. #ifndef FWCLPCMD_H
  20. #include "FWClpCmd.h"
  21. #endif
  22.  
  23. #ifndef FWDRCMD_H
  24. #include "FWDrCmd.h"
  25. #endif
  26.  
  27. #ifndef FWINSCMD_H
  28. #include "FWInsCmd.h"
  29. #endif
  30.  
  31. #ifndef FWRECT_H
  32. #include "FWRect.h"
  33. #endif
  34.  
  35. #ifndef FWCOLOR_H
  36. #include "FWColor.h"
  37. #endif
  38.  
  39. //========================================================================================
  40. //    Forward Declarations
  41. //========================================================================================
  42.  
  43. class FW_CFrame;
  44.  
  45. class CContainerPart;
  46. class CContainerFrame;
  47. class CContainerSelection;
  48. class CBaseContent;
  49. class CUndoContent;
  50.  
  51. //========================================================================================
  52. //     Constants - Command numbers
  53. //========================================================================================
  54.  
  55. const ODCommandID cResizeCommand        = 3006;
  56. const ODCommandID cViewAsCommand        = 3007;
  57.  
  58.  
  59. //========================================================================================
  60. // CClipboardCommand
  61. //========================================================================================
  62.  
  63. class CClipboardCommand : public FW_CClipboardCommand
  64. {
  65. public:
  66.  
  67.       FW_DECLARE_AUTO(CClipboardCommand)
  68.  
  69.     CClipboardCommand(Environment* ev, 
  70.                       ODCommandID commandID,
  71.                       CContainerPart* part, 
  72.                       CContainerFrame* frame, 
  73.                       CContainerSelection* selection,
  74.                       FW_Boolean canUndo);
  75.  
  76.     virtual ~ CClipboardCommand();
  77.  
  78.     // --- FW_CCommand overrides
  79.     virtual void         UndoIt(Environment* ev);
  80.     virtual void         RedoIt(Environment* ev);
  81.     virtual void         SaveUndoState(Environment* ev);
  82.     virtual void         SaveRedoState(Environment* ev);
  83.     virtual void         FreeUndoState(Environment* ev);
  84.     virtual void         FreeRedoState(Environment* ev);
  85.  
  86.     // ----- FW_CClipboardCommand overrides -----
  87.     virtual void        PreCommand(Environment* ev);
  88.     virtual void         CommandDone(Environment* ev);
  89.  
  90. private:
  91.     CContainerPart*            fContainerPart;
  92.     CContainerSelection*    fContainerSelection;
  93.     CUndoContent*            fUndoContent;
  94. };
  95.  
  96. //========================================================================================
  97. // class CDragCommand - for dragging
  98. //========================================================================================
  99.  
  100. class CDragCommand : public FW_CDragCommand
  101. {
  102.   public:
  103.  
  104.       FW_DECLARE_AUTO(CDragCommand)
  105.  
  106.     CDragCommand(Environment* ev, 
  107.                  CContainerPart* part,
  108.                  FW_CFrame* frame,
  109.                  CContainerSelection* selection,
  110.                  FW_Boolean canUndo);
  111.  
  112.     virtual ~CDragCommand();
  113.  
  114.     // --- FW_CCommand overrides
  115.     virtual void         UndoIt(Environment* ev);
  116.     virtual void         RedoIt(Environment* ev);
  117.     virtual void         SaveUndoState(Environment* ev);
  118.     virtual void         FreeUndoState(Environment* ev);
  119.  
  120.   protected:
  121.     CContainerPart*            fContainerPart;
  122.     CContainerSelection*    fContainerSelection;
  123.     CUndoContent*            fDraggedContent;
  124.     ODShape*                fUpdateShape;
  125. };
  126.  
  127. //========================================================================================
  128. // class CDropCommand - for dropping
  129. //========================================================================================
  130.  
  131. class CDropCommand : public FW_CDropCommand
  132. {
  133.   public:
  134.  
  135.       FW_DECLARE_AUTO(CDropCommand)
  136.  
  137.     CDropCommand(Environment* ev, 
  138.                  CContainerPart* itsPart,
  139.                  FW_CFrame* frame,
  140.                  ODDragItemIterator* dropInfo, 
  141.                  ODFacet* facet, 
  142.                  const FW_CPoint& windowPoint,
  143.                  FW_Boolean canUndo);
  144.  
  145.     virtual ~ CDropCommand();
  146.  
  147.     // --- FW_CCommand overrides
  148.     virtual void UndoIt(Environment* ev);
  149.     virtual void RedoIt(Environment* ev);
  150.     virtual void SaveRedoState(Environment* ev);
  151.     virtual void FreeRedoState(Environment* ev);
  152.  
  153.     // --- FW_CDropCommand overrides
  154.     virtual FW_Boolean DoDrop(Environment* ev, 
  155.                             ODStorageUnit* dropSU, 
  156.                             const FW_CPoint& mouseDownOffset, 
  157.                             const FW_CPoint& dropPoint, 
  158.                             FW_Boolean isDropMove,
  159.                             short itemNumber);
  160.     virtual FW_Boolean DoDroppedInSameFrame(Environment* ev, 
  161.                             ODStorageUnit* dropSU, 
  162.                             const FW_CPoint& mouseDownOffset, 
  163.                             const FW_CPoint& dropPoint);
  164.  
  165.   private:
  166.     void OffsetSelection(Environment* ev, const FW_CPoint& delta);
  167.     void RestoreDroppedProxies(Environment* ev);
  168.  
  169.   private:
  170.     CContainerPart*            fContainerPart;
  171.     CContainerSelection*    fContainerSelection;
  172.     FW_CPoint                fDropDelta;
  173.     CUndoContent*            fDroppedContent;
  174. };
  175.  
  176. //========================================================================================
  177. // CInsertCommand
  178. //========================================================================================
  179.  
  180. class CInsertCommand : public FW_CInsertCommand
  181. {
  182.   public:
  183.  
  184.       FW_DECLARE_AUTO(CInsertCommand)
  185.  
  186.     CInsertCommand(Environment* ev, 
  187.                     CContainerFrame* frame, 
  188.                     const FW_PFileSpecification& fileSpec, 
  189.                     CContainerSelection* selection,
  190.                     FW_Boolean canUndo);
  191.     virtual ~CInsertCommand();
  192.  
  193.     // --- FW_CCommand overrides
  194.     virtual void         UndoIt(Environment* ev);
  195.     virtual void         RedoIt(Environment* ev);
  196.     virtual void         SaveRedoState(Environment* ev);
  197.     virtual void         FreeRedoState(Environment* ev);
  198.  
  199.   public:
  200.     virtual void        PreCommand(Environment* ev);
  201.     virtual void         CommandDone(Environment* ev);
  202.  
  203.   private:
  204.     CContainerSelection*    fContainerSelection;
  205.     CUndoContent*            fUndoContent;
  206. };
  207.  
  208. //========================================================================================
  209. // class CResizeCommand - Change size of selected proxies
  210. //========================================================================================
  211.  
  212. class CResizeCommand : public FW_CCommand
  213. {
  214.   public:
  215.   
  216.       FW_DECLARE_AUTO(CResizeCommand)
  217.  
  218.     CResizeCommand (Environment* ev, 
  219.                     CContainerPart* part,
  220.                     FW_CFrame* frame,
  221.                     CContainerSelection* selection,
  222.                     const FW_CRect& srcRect,
  223.                     const FW_CRect& dstRect);
  224.  
  225.     virtual ~ CResizeCommand();
  226.  
  227.     // --- Command overrides
  228.     virtual void DoIt(Environment* ev);
  229.     virtual void UndoIt(Environment* ev);
  230.     virtual void RedoIt(Environment* ev);
  231.  
  232.   private:
  233.     void ResizeProxies(Environment* ev, const FW_CRect& srcRect, const FW_CRect& dstRect);
  234.     void Redraw(Environment* ev, ODDoneState doneState);
  235.  
  236.   protected:
  237.     CContainerPart*            fContainerPart;
  238.     CContainerSelection*    fContainerSelection;
  239.     FW_CRect                fSourceRect;
  240.     FW_CRect                fDestRect;
  241.     ODShape*                fUpdateShape;
  242.     CBaseContent*            fChangedContent;
  243. };
  244.  
  245. //========================================================================================
  246. // class CViewAsCommand - Change view as of selected proxies
  247. //========================================================================================
  248.  
  249. class CViewAsCommand : public FW_CCommand
  250. {
  251.   public:
  252.   
  253.       FW_DECLARE_AUTO(CViewAsCommand)
  254.  
  255.     CViewAsCommand (Environment* ev, 
  256.                     CContainerPart* part,
  257.                     FW_CFrame* frame,
  258.                     CContainerSelection* selection,
  259.                     ODTypeToken newViewAs);
  260.  
  261.     virtual ~CViewAsCommand();
  262.  
  263.     // --- Command overrides
  264.     virtual void DoIt(Environment* ev);
  265.     virtual void UndoIt(Environment* ev);
  266.     virtual void RedoIt(Environment* ev);
  267.  
  268.   private:
  269.     void ChangeEmbeddedViewAs(Environment* ev, FW_Boolean undo);
  270.     void Redraw(Environment* ev);
  271.  
  272.   protected:
  273.     CContainerPart*            fContainerPart;
  274.     CContainerSelection*    fContainerSelection;
  275.     ODTypeToken                fNewViewAs;
  276.     CBaseContent*            fChangedContent;
  277.     ODTypeToken*            fOldViewAs;
  278.     ODShape*                fUpdateShape;
  279. };
  280.  
  281. //========================================================================================
  282. // CSetBackgroundColorCommand
  283. //========================================================================================
  284.  
  285. class CSetBackgroundColorCommand : public FW_CCommand
  286. {
  287. public:
  288.     FW_DECLARE_AUTO(CSetBackgroundColorCommand)
  289.     
  290.     CSetBackgroundColorCommand(Environment* ev,
  291.                             CContainerPart* part,
  292.                             FW_CColor& newBackgroundColor);
  293.     virtual ~CSetBackgroundColorCommand();
  294.     
  295.     virtual void DoIt(Environment* ev);
  296.     virtual void UndoIt(Environment* ev);
  297.     virtual void RedoIt(Environment* ev);
  298.  
  299. private:
  300.     CContainerPart* fContainerPart;
  301.     FW_CColor         fOldColor;
  302.     FW_CColor        fNewColor;
  303. };
  304.  
  305.  
  306. #endif