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 / Table / Sources / Commands.h < prev    next >
Encoding:
Text File  |  1996-09-17  |  6.6 KB  |  223 lines  |  [TEXT/MPS ]

  1. //========================================================================================
  2. //
  3. //    File:                Commands.h
  4. //    Release Version:    $ ODF 2 $ 
  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. #ifndef CELL_H
  14. #include "Cell.h"
  15. #endif
  16.  
  17. // ----- Framework Includes -----
  18.  
  19. #ifndef FWDRCMD_H
  20. #include "FWDrCmd.h"
  21. #endif
  22.  
  23. #ifndef FWCLPCMD_H
  24. #include "FWClpCmd.h"
  25. #endif
  26.  
  27. #ifndef FWINSCMD_H
  28. #include "FWInsCmd.h"
  29. #endif
  30.  
  31. //========================================================================================
  32. // Forward class declarations
  33. //========================================================================================
  34.  
  35. class CTableFrame;
  36. class CTablePart;
  37. class CTableSelection;
  38. class CTableProxy;
  39. class CTablePartContent;
  40. class CTableLinkSource;
  41. class CTableLink;
  42.  
  43. //========================================================================================
  44. //    class CCellDragCommand
  45. //========================================================================================
  46.  
  47. class CCellDragCommand : public FW_CDragCommand
  48. {
  49.   public:
  50.   
  51.       FW_DECLARE_AUTO(CCellDragCommand)
  52.     
  53.     CCellDragCommand(Environment* ev,
  54.                      CTablePartContent* tableContent,
  55.                      FW_CFrame* frame,
  56.                      CTableSelection* selection);
  57.  
  58.     virtual ~ CCellDragCommand();
  59.  
  60.     // --- FW_CCommand overrides for Undo/Redo ---
  61.     virtual void        UndoIt(Environment* ev);    // Override
  62.     virtual void        RedoIt(Environment* ev);    // Override
  63.     virtual void        SaveUndoState(Environment* ev);    // Override
  64.     virtual void        FreeUndoState(Environment* ev);    // Override
  65.  
  66.   private:
  67.     CTablePartContent*    fTableContent;
  68.     CTableSelection*    fTableSelection;
  69.     CTableProxy*        fSavedProxy;    // saved selection for redo
  70.     CCell                fDragCell;
  71. };
  72.  
  73. //========================================================================================
  74. //    class CCellDropCommand
  75. //========================================================================================
  76.  
  77. class CCellDropCommand : public FW_CDropCommand
  78. {
  79.   public:
  80.   
  81.       FW_DECLARE_AUTO(CCellDropCommand)
  82.     
  83.     CCellDropCommand(Environment* ev,
  84.                      CTablePart* itsPart,
  85.                      CTablePartContent* tableContent,
  86.                      CTableFrame* frame,
  87.                      ODDragItemIterator* dropInfo, 
  88.                      ODFacet* odFacet,
  89.                      const FW_CPoint& dropPoint,
  90.                      const CCell& dropCell,
  91.                      const CCell& draggedCell);
  92.  
  93.     virtual ~ CCellDropCommand();
  94.  
  95.     // --- FW_CDropCommand overrides
  96.     virtual FW_Boolean DoDrop(Environment* ev, 
  97.                             ODStorageUnit* dropSU, 
  98.                             const FW_CPoint& mouseDownOffset,
  99.                             const FW_CPoint& dropPoint,
  100.                             FW_Boolean isDropMove,
  101.                             short itemNumber);
  102.     virtual FW_Boolean DoDroppedInSameFrame(Environment* ev, 
  103.                             ODStorageUnit* dropSU, 
  104.                             const FW_CPoint& mouseDownOffset, 
  105.                             const FW_CPoint& dropPoint);
  106.     virtual void DoDroppedPasteAs(Environment* ev, 
  107.                             const FW_CPoint& mouseDownOffset, 
  108.                             const FW_CPoint& dropPoint);
  109.  
  110.     // --- FW_CCommand overrides for Undo/Redo ---
  111.     virtual void        UndoIt(Environment* ev);    // Override
  112.     virtual void        RedoIt(Environment* ev);    // Override
  113.     virtual void        SaveRedoState(Environment* ev);    // Override
  114.     virtual void        FreeRedoState(Environment* ev);    // Override
  115.  
  116.   private:
  117.     CTablePart*            fTablePart;
  118.     CTablePartContent*     fTableContent;
  119.     CTableFrame*        fTableFrame;
  120.     CCell                fDropCell;
  121.     CCell                fDraggedCell;
  122.     CTableProxy*        fSavedProxy;    // saved selection for undo/redo
  123.     FW_Boolean            fLinkCreated;    // was a link created?
  124. };
  125.  
  126. //========================================================================================
  127. //    class CTableInsertCommand
  128. //========================================================================================
  129.  
  130. class CTableInsertCommand : public FW_CInsertCommand
  131. {
  132.   public:
  133.   
  134.       FW_DECLARE_AUTO(CTableInsertCommand)
  135.  
  136.     CTableInsertCommand(Environment* ev,
  137.                         FW_CEmbeddingFrame* frame,
  138.                         const FW_PFileSpecification& fileSpec,
  139.                         CTablePart* itsPart,
  140.                         const CCell& insertCell);
  141.     virtual ~CTableInsertCommand();
  142.  
  143.     // --- FW_CCommand overrides
  144.     virtual void        UndoIt(Environment* ev);        // Override
  145.     virtual void        RedoIt(Environment* ev);        // Override
  146.     virtual void        SaveRedoState(Environment* ev);    // Override
  147.     virtual void        FreeRedoState(Environment* ev);    // Override
  148.  
  149.   private:
  150.     CTablePart*            fTablePart;
  151.     CTablePartContent*     fTableContent;
  152.     CTableProxy*        fInsertedProxy;    // saved proxy for Redo
  153.     CCell                fInsertCell;
  154. };
  155.  
  156. //========================================================================================
  157. // CLASS CTableEditCommand
  158. //========================================================================================
  159.  
  160. class CTableEditCommand : public FW_CClipboardCommand
  161. {
  162. //----------------------------------------------------------------------------------------
  163. //    Initialization/Destruction
  164. //
  165.   public:
  166.   
  167.       FW_DECLARE_AUTO(CTableEditCommand)
  168.     
  169.     CTableEditCommand(Environment* ev,
  170.                       ODCommandID id,
  171.                       CTablePart* itsPart,
  172.                       CTablePartContent* tableContent,
  173.                       FW_CFrame* frame,
  174.                       CTableSelection* selection);
  175.  
  176.     virtual ~ CTableEditCommand();
  177.  
  178. //----------------------------------------------------------------------------------------
  179. //    FW_CCommand overrides for Undo/Redo
  180. //
  181.     virtual void            UndoIt(Environment* ev);    // Override
  182.     virtual void            RedoIt(Environment* ev);    // Override
  183.     virtual void            SaveUndoState(Environment* ev);    // Override
  184.     virtual void            SaveRedoState(Environment* ev);    // Override
  185.     virtual void            FreeUndoState(Environment* ev);    // Override
  186.     virtual void            FreeRedoState(Environment* ev);    // Override
  187.  
  188.     virtual void            CommandDone(Environment* ev);    // Override
  189.     virtual void            PreCommand(Environment* ev);    // Override
  190.     
  191. //----------------------------------------------------------------------------------------
  192. //    Table-specific
  193. //
  194.     //---- Undo PasteAs support ----
  195.     void         UndoPasteAs(Environment* ev);
  196.     void         RedoPasteAs(Environment* ev);
  197.  
  198.   private:
  199.     void        SaveSelection(Environment* ev);
  200.     void        RemoveSelection(Environment* ev);
  201.     void        RestoreSelection(Environment* ev);
  202.     void        DeleteSavedProxy(Environment* ev);
  203.  
  204.     void        BreakSavedLinks(Environment* ev);
  205.     void        RestoreSavedLinks(Environment* ev);
  206.     FW_Boolean    WasLinkCreated(Environment* ev);
  207.  
  208. //----------------------------------------------------------------------------------------
  209. //    Data Members
  210. //
  211.   private:
  212.     CTablePart*            fTablePart;
  213.     CTablePartContent*     fTableContent;
  214.     CTableSelection*    fTableSelection;
  215.     CTableProxy*        fSavedProxy;        // saved selection for undo/redo
  216.     CCell                fPasteAsCell;        // saved cell for Undo PasteAs
  217.     CTableLinkSource*    fSavedLinkSource;    // saved link for Undo Cut/Clear
  218.     CTableLink*            fSavedLink;            // saved link for Undo Cut/Clear
  219. };
  220.  
  221.  
  222. #endif
  223.