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 / Content.h < prev    next >
Encoding:
Text File  |  1996-09-17  |  6.3 KB  |  226 lines  |  [TEXT/MPS ]

  1. //========================================================================================
  2. //
  3. //    File:                Content.h
  4. //    Release Version:    $ ODF 2 $
  5. //
  6. //    Copyright:            (c) 1993 - 1996 by Apple Computer, Inc., all rights reserved.
  7. //
  8. //========================================================================================
  9.  
  10. #ifndef CONTENT_H
  11. #define CONTENT_H
  12.  
  13. #ifndef PROXY_H
  14. #include "Proxy.h"
  15. #endif
  16.  
  17. #ifndef ITERS_H
  18. #include "Iters.h"
  19. #endif
  20.  
  21. // ----- Part Layer -----
  22.  
  23. #ifndef FWCONTNG_H
  24. #include "FWContng.h"
  25. #endif
  26.  
  27. //========================================================================================
  28. //    Forward Declarations
  29. //========================================================================================
  30.  
  31. class CContainerPart;
  32. class CProxyCollection;
  33. class CProxy;
  34. class CContentProxyIterator;
  35. class CContainerSelection;
  36.  
  37. //========================================================================================
  38. //    class CBaseContent
  39. //========================================================================================
  40.  
  41. class CBaseContent : public FW_CEmbeddingContent
  42. {
  43. public:
  44.     friend class CContentProxyIterator;
  45. //----------------------------------------------------------------------------------------
  46. //    Initialization/Destruction
  47. //
  48.   public:
  49.  
  50.     FW_DECLARE_AUTO(CBaseContent)
  51.     
  52.     CBaseContent(Environment* ev, CContainerPart* part);
  53.     CBaseContent(Environment* ev, CBaseContent* other);
  54.  
  55.     virtual ~CBaseContent();
  56.  
  57. //----------------------------------------------------------------------------------------
  58. //    Inherited API
  59. //
  60.   public:
  61.     virtual FW_MProxy*    IsDataOnlyOneProxy(Environment* ev) const;
  62.  
  63. //----------------------------------------------------------------------------------------
  64. //    Overridable API
  65. //
  66.   public:
  67.     virtual void        PostInternalizeProxy(Environment* ev, 
  68.                                              const FW_CPoint& offset, 
  69.                                              CProxy* proxy);
  70.  
  71. //----------------------------------------------------------------------------------------
  72. //    New API
  73. //
  74.   public:
  75.     CProxy*                AddSingleEmbeddedFrame(Environment* ev,
  76.                                         FW_CEmbeddingFrame* scopeFrame,
  77.                                         ODPart* odEmbeddedPart, 
  78.                                         ODFrame* odEmbeddedFrame,
  79.                                         ODShape* suggestedShape,
  80.                                         ODTypeToken viewType);
  81.  
  82.     void                ExternalizeProxyList(Environment* ev,
  83.                                         ODStorageUnit* storageUnit, 
  84.                                         FW_CCloneInfo* cloneInfo,
  85.                                         FW_Fixed offsetX,
  86.                                         FW_Fixed offsetY);
  87.     void                InternalizeProxyList(Environment* ev,
  88.                                             ODStorageUnit* storageUnit, 
  89.                                             FW_CCloneInfo* cloneInfo);
  90.  
  91.  
  92.     void                AddProxy(Environment* ev, CProxy* proxy);
  93.     void                RemoveProxy(Environment* ev, CProxy* proxy);
  94.  
  95.     ODShape*            CalcUpdateShape(Environment* ev);
  96.     void                RedrawProxies(Environment* ev);
  97.  
  98. //----------------------------------------------------------------------------------------
  99. //    Getters & Setters
  100. //
  101.   public:
  102.     unsigned long        CountProxies() const;
  103.     FW_Boolean            IsEmpty() const;
  104.     CProxy*                GetFirstProxy() const;
  105.  
  106. //----------------------------------------------------------------------------------------
  107. //    Data Members
  108. //
  109.   protected:
  110.     CProxyCollection*    fProxyList;    // list of CProxy*
  111.     CContainerPart*        fContainerPart;
  112. };
  113.  
  114. //========================================================================================
  115. //    class CContentProxyIterator
  116. //========================================================================================
  117.  
  118. class CContentProxyIterator : public CProxyCollectionIterator
  119. {
  120.   public:
  121.  
  122.     FW_DECLARE_AUTO(CContentProxyIterator)
  123.  
  124.   public:
  125.     CContentProxyIterator(CBaseContent* content);
  126.     ~CContentProxyIterator();
  127. };
  128.  
  129. //========================================================================================
  130. //    class CPartContent
  131. //========================================================================================
  132.  
  133. class CPartContent : public CBaseContent
  134. {
  135. public:
  136.  
  137.     FW_DECLARE_AUTO(CPartContent)
  138.  
  139.     CPartContent(Environment* ev, CContainerPart* part);
  140.     virtual ~CPartContent();
  141.  
  142.     virtual void        ExternalizeKind(Environment* ev,
  143.                                      ODStorageUnit* storageUnit,
  144.                                      FW_CKind* kind,
  145.                                      FW_StorageKinds storageKind,
  146.                                      FW_CPromise* promise,
  147.                                      FW_CCloneInfo* cloneInfo);
  148.     virtual FW_Boolean    InternalizeKind(Environment* ev,
  149.                                      ODStorageUnit* storageUnit, 
  150.                                      FW_CKind* kind,
  151.                                      FW_StorageKinds storageKind,
  152.                                      FW_CCloneInfo* cloneInfo);
  153.  
  154.     virtual void        PostInternalizeProxy(Environment* ev, 
  155.                                      const FW_CPoint& offset, 
  156.                                      CProxy* proxy);
  157. };
  158.  
  159. //========================================================================================
  160. //    class CSelectionContent
  161. //========================================================================================
  162.  
  163. class CSelectionContent : public CBaseContent
  164. {
  165.   public:
  166.  
  167.     FW_DECLARE_AUTO(CSelectionContent)
  168.  
  169.     CSelectionContent(Environment* ev, 
  170.                       CContainerPart* part, 
  171.                       CContainerSelection* selection);
  172.     virtual ~CSelectionContent();
  173.  
  174.     virtual void        ExternalizeKind(Environment* ev,
  175.                                     ODStorageUnit* storageUnit, 
  176.                                     FW_CKind* kind,
  177.                                     FW_StorageKinds storageKind,
  178.                                     FW_CPromise* promise,
  179.                                     FW_CCloneInfo* cloneInfo);
  180.                                         
  181.     virtual FW_Boolean    InternalizeKind(Environment* ev,
  182.                                     ODStorageUnit* storageUnit, 
  183.                                     FW_CKind* kind,
  184.                                     FW_StorageKinds storageKind,
  185.                                     FW_CCloneInfo* cloneInfo);
  186.  
  187.     virtual void         PostInternalizeProxy(Environment* ev, 
  188.                                     const FW_CPoint& offset, 
  189.                                     CProxy* proxy);
  190.  
  191.     virtual void         SingleEmbeddedFrameInternalized(Environment* ev, 
  192.                                     FW_CEmbeddingFrame* scopeFrame,
  193.                                     ODPart* embeddedPart, 
  194.                                     ODFrame* embeddedFrame,
  195.                                     ODShape* suggestedShape,
  196.                                     ODTypeToken viewType);
  197.  
  198.     virtual ODShape*     AcquireSuggestedFrameShape(Environment* ev);
  199.  
  200.   private:
  201.     CContainerSelection*        fContainerSelection;
  202. };
  203.  
  204. //========================================================================================
  205. //    class CUndoContent
  206. //========================================================================================
  207.  
  208. class CUndoContent : public CBaseContent
  209. {
  210. public:
  211.  
  212.     FW_DECLARE_AUTO(CUndoContent)
  213.  
  214.     CUndoContent(Environment* ev, CContainerSelection* selection);
  215.     virtual ~CUndoContent();
  216.  
  217.     // ----- New API -----
  218.     void                 RemoveProxySelection(Environment* ev);
  219.     void                 RestoreProxySelection(Environment* ev);
  220.     void                 DeleteSavedProxies(Environment* ev);
  221.  
  222. private:
  223.     CContainerSelection*        fContainerSelection;
  224. };
  225.  
  226. #endif