home *** CD-ROM | disk | FTP | other *** search
/ C Programming Starter Kit 2.0 / SamsPublishing-CProgrammingStarterKit-v2.0-Win31.iso / bc45 / ocfinc.pak / OCDOC.H < prev    next >
C/C++ Source or Header  |  1997-07-23  |  3KB  |  93 lines

  1. //
  2. //----------------------------------------------------------------------------
  3. // ObjectComponents
  4. // (C) Copyright 1994 by Borland International, All Rights Reserved
  5. //
  6. //   Definition of TOcDocument Class
  7. //----------------------------------------------------------------------------
  8. #if !defined(OCF_OCDOC_H)
  9. #define OCF_OCDOC_H
  10.  
  11. #if !defined(OCF_OCPART_H)
  12. # include <ocf/ocpart.h>
  13. #endif
  14.  
  15. #if !defined(OCF_LINK_H)
  16. # include <ocf/oclink.h>
  17. #endif
  18.  
  19. // Interfaces & Classes referenced
  20. //
  21. class _ICLASS IStorage;
  22. class _ICLASS TOcStorage;
  23. class _ICLASS TOcApp;
  24. class _ICLASS TOcView;
  25.  
  26. //
  27. // OC Document class, holds parts & is a owner of views
  28. //
  29. class _ICLASS TOcDocument {
  30.   public:
  31.     TOcDocument(TOcApp& app, const char far* fileName = 0);
  32.     TOcDocument(TOcApp& app, const char far* fileName, IStorage far* storageI);
  33.    ~TOcDocument();
  34.  
  35.     // collection management
  36.     //
  37.     TOcPartCollection& GetParts() {return PartCollection;}
  38.     TOcViewCollection& GetViews() {return ViewCollection;}
  39.  
  40.     // Storage & streaming related
  41.     //
  42.     TOcStorage* GetStorage() {return Storage;}
  43.     void        SetStorage(IStorage* storage, bool remember = true);
  44.     void        SetStorage(const char far* path);
  45.     bool        SaveToFile(const char far* newName);
  46.     bool        RestoreStorage();
  47.  
  48.     // Load/Save part information
  49.     //
  50.     bool        LoadParts();
  51.     bool        SaveParts(IStorage* storage = 0, bool sameAsLoaded = true,
  52.                           bool remember = true);
  53.     void        RenameParts(IBRootLinkable far* bLDocumentI);
  54.     void        Close();
  55.  
  56.     // Get/Set active view
  57.     //
  58.     TOcView*    GetActiveView() {return ActiveView;}
  59.     void        SetActiveView(TOcView* view);
  60.  
  61.     // Get/Set document name
  62.     //
  63.     string      GetName() const {return Name;}
  64.     void        SetName(const string& newName);
  65.  
  66.   private:
  67.     TOcView*       ActiveView;   // Active TOcView object
  68.     TOcApp&        OcApp;        // Our OC application object
  69.     TOcStorage*    Storage;      // root storage for embedded objects
  70.     TOcStorage*    OrgStorage;   // original root storage for embedded objects
  71.  
  72.     int            NumViews;     // number of views. used to help in numbering
  73.     int            PartID;
  74. #if defined(BI_DATA_NEAR)
  75.     string&        Name;         // Name of this document
  76.     TOcPartCollection&    PartCollection; // Collection of parts in this document
  77.     TOcViewCollection&    ViewCollection; // Collection of linked view in this document
  78. #else
  79.     string         Name;
  80.     TOcPartCollection     PartCollection;
  81.     TOcViewCollection     ViewCollection;
  82. #endif
  83.  
  84.   friend TOcPartCollectionIter;      // To allow iterator access to collection
  85.   friend TOcViewCollectionIter;      // To allow iterator access to collection
  86.   friend TOcPart;
  87.   friend TOcView;
  88.   friend TOcRemVie;
  89. };
  90.  
  91. #endif  // OCF_OCDOC_H
  92.  
  93.