home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 October: Mac OS SDK / Dev.CD Oct 96 SDK / Dev.CD Oct 96 SDK2.toast / Development Kits (Disc 2) / OpenDoc Development Framework / ODFDev / Embed / Sources / Command.h < prev    next >
Encoding:
Text File  |  1996-08-16  |  4.9 KB  |  174 lines  |  [TEXT/MPS ]

  1. //========================================================================================
  2. //
  3. //    File:                Command.h
  4. //    Release Version:    $ ODF 1 $
  5. //
  6. //    Author:                M.Boetcher
  7. //
  8. //    Copyright:    (c) 1993 - 1996 by Apple Computer, Inc., all rights reserved.
  9. //
  10. //========================================================================================
  11.  
  12. #ifndef COMMAND_H
  13. #define COMMAND_H
  14.  
  15. // ----- Part Layer -----
  16.  
  17. #ifndef FWCLPCMD_H
  18. #include "FWClpCmd.h"
  19. #endif
  20.  
  21. #ifndef FWINSCMD_H
  22. #include "FWInsCmd.h"
  23. #endif
  24.  
  25. #ifndef FWDRCMD_H
  26. #include "FWDrCmd.h"
  27. #endif
  28.  
  29. //========================================================================================
  30. // Forward Declarations
  31. //========================================================================================
  32.  
  33. class CEmbedContent;
  34. class CEmbedFrame;
  35. class CEmbedSelection;
  36. class CEmbedProxy;
  37.  
  38. //========================================================================================
  39. // CEmbedEditCommand
  40. //========================================================================================
  41.  
  42. class CEmbedEditCommand : public FW_CClipboardCommand
  43. {
  44.   public:
  45.  
  46.     FW_DECLARE_AUTO(CEmbedEditCommand)
  47.     
  48.     CEmbedEditCommand(Environment* ev, 
  49.                       ODCommandID commandID,
  50.                       CEmbedContent* content, 
  51.                       FW_CFrame* frame, 
  52.                       FW_CSelection* selection,
  53.                       FW_Boolean canUndo);
  54.  
  55.     virtual ~CEmbedEditCommand();
  56.  
  57.     // --- FW_CCommand overrides
  58.     virtual void UndoIt(Environment* ev);            // Override
  59.     virtual void RedoIt(Environment* ev);            // Override
  60.     virtual void SaveUndoState(Environment* ev);    // Override
  61.     virtual void SaveRedoState(Environment* ev);    // Override
  62.     virtual void FreeUndoState(Environment* ev);    // Override
  63.     virtual void FreeRedoState(Environment* ev);    // Override
  64.  
  65.   private:
  66.     void RemovePart(Environment* ev);
  67.     void RestorePart(Environment* ev);
  68.     void RestoreOldPart(Environment* ev);
  69.  
  70.   private:
  71.     CEmbedContent*        fEmbedContent;
  72.     CEmbedProxy*        fPastedProxy;    // saved proxy for Redo
  73.     CEmbedProxy*        fOldProxy;        // saved proxy for Undo
  74. };
  75.  
  76. //========================================================================================
  77. //    class CEmbedInsertCommand
  78. //========================================================================================
  79.  
  80. class CEmbedInsertCommand : public FW_CInsertCommand
  81. {
  82.   public:
  83.   
  84.     FW_DECLARE_AUTO(CEmbedInsertCommand)
  85.  
  86.     CEmbedInsertCommand(Environment* ev,
  87.                         FW_CEmbeddingFrame* frame,
  88.                         const FW_PFileSpecification& fileSpec,
  89.                         CEmbedContent* content);
  90.  
  91.     virtual ~CEmbedInsertCommand();
  92.  
  93.     // --- FW_CCommand overrides
  94.     virtual void        UndoIt(Environment* ev);    // Override
  95.     virtual void        RedoIt(Environment* ev);    // Override
  96.     virtual void        CommitDone(Environment* ev);    // Override
  97.     virtual void        CommitUndone(Environment* ev);    // Override
  98.     virtual void        SaveUndoState(Environment* ev);    // Override
  99.     virtual void        SaveRedoState(Environment* ev);    // Override
  100.  
  101.   private:
  102.     CEmbedContent*        fPartContent;
  103.     CEmbedSelection*    fEmbedSelection;
  104.     CEmbedProxy*        fInsertedProxy;    // saved proxy for Redo
  105.     CEmbedProxy*        fOldProxy;        // saved proxy for Undo
  106. };
  107.  
  108. //========================================================================================
  109. //    class CEmbedDropCommand
  110. //========================================================================================
  111.  
  112. class CEmbedDropCommand : public FW_CDropCommand
  113. {
  114.   public:
  115.   
  116.     FW_DECLARE_AUTO(CEmbedDropCommand)
  117.     
  118.     CEmbedDropCommand(Environment* ev,
  119.                       CEmbedContent* content,
  120.                       FW_CFrame* frame,
  121.                       ODDragItemIterator* dropInfo, 
  122.                       ODFacet* odFacet,
  123.                       const FW_CPoint& dropPoint);
  124.  
  125.     virtual ~ CEmbedDropCommand();
  126.  
  127.     // --- for Undo/Redo ---
  128.     virtual void        UndoIt(Environment* ev);    // Override
  129.     virtual void        RedoIt(Environment* ev);    // Override
  130.     virtual void        CommitDone(Environment* ev);    // Override
  131.     virtual void        CommitUndone(Environment* ev);    // Override
  132.     virtual void        SaveUndoState(Environment* ev);    // Override
  133.     virtual void        SaveRedoState(Environment* ev);    // Override
  134.  
  135.   private:
  136.     CEmbedContent*        fEmbedContent;
  137.     CEmbedSelection*    fEmbedSelection;
  138.     CEmbedProxy*        fDroppedProxy;    // saved proxy for Redo
  139.     CEmbedProxy*        fOldProxy;        // saved proxy for Undo
  140. };
  141.  
  142. //========================================================================================
  143. //    class CEmbedDragCommand
  144. //========================================================================================
  145.  
  146. class CEmbedDragCommand : public FW_CDragCommand
  147. {
  148.   public:
  149.   
  150.       FW_DECLARE_AUTO(CEmbedDragCommand)
  151.     
  152.     CEmbedDragCommand(Environment* ev,
  153.                     CEmbedContent* content,
  154.                     FW_CFrame* frame,
  155.                     CEmbedSelection* selection);
  156.  
  157.     virtual ~ CEmbedDragCommand();
  158.  
  159.     // --- FW_CCommand overrides for Undo/Redo ---
  160.     virtual void        UndoIt(Environment* ev);            // Override
  161.     virtual void        RedoIt(Environment* ev);            // Override
  162.     virtual void        SaveUndoState(Environment* ev);        // Override
  163.     virtual void        FreeUndoState(Environment* ev);        // Override
  164.  
  165.   private:
  166.     CEmbedContent*        fEmbedContent;
  167.     CEmbedSelection*    fEmbedSelection;
  168.     CEmbedProxy*        fSavedProxy;
  169.     CEmbedProxy*        fDraggedProxy;
  170. };
  171.  
  172.  
  173. #endif
  174.