CMS 3D CMS Logo

IgDocument.h

Go to the documentation of this file.
00001 #ifndef IGUANA_STUDIO_IG_DOCUMENT_H
00002 # define IGUANA_STUDIO_IG_DOCUMENT_H
00003 
00004 //<<<<<< INCLUDES                                                       >>>>>>
00005 
00006 # include "Iguana/Studio/interface/config.h"
00007 # include <string>
00008 # include <list>
00009 
00010 //<<<<<< PUBLIC DEFINES                                                 >>>>>>
00011 //<<<<<< PUBLIC CONSTANTS                                               >>>>>>
00012 //<<<<<< PUBLIC TYPES                                                   >>>>>>
00013 
00014 class IgStudioDriver;
00015 class IgDocumentData;
00016 class IgState;
00017 class IgQtSite;
00018 class IgPage;
00019 
00020 //<<<<<< PUBLIC VARIABLES                                               >>>>>>
00021 //<<<<<< PUBLIC FUNCTIONS                                               >>>>>>
00022 //<<<<<< CLASS DECLARATIONS                                             >>>>>>
00023 
00024 class IGUANA_STUDIO_API IgDocument
00025 {
00026 public:
00027     IgDocument (IgStudioDriver *parent);
00028     virtual ~IgDocument (void);
00029     // implicit copy constructor
00030     // implicit assignment operator
00031     // implicit destructor
00032 
00033     virtual IgStudioDriver *    owner (void) const;
00034     virtual IgState *           state (void) const;
00035     virtual IgDocumentData *    data (void) const;
00036 
00037     // FIXME: Windows, sites?
00038     virtual IgQtSite *          window (void) const;
00039 
00040     // FIXME: file name? document file handling
00041     virtual void                setName (const std::string &name);
00042     virtual void                addContentProxy (const std::string &name);
00043     virtual void                load (const std::string &name,
00044                                       bool prefix = false);
00045     void                        addPage (IgPage *page);
00046     IgPage                      *currentPage (void);
00047 private:
00048     IgStudioDriver              *m_owner;
00049     IgState                     *m_state;
00050     IgQtSite                    *m_window;
00051     IgDocumentData              *m_data;
00052 
00053     typedef std::list <IgPage *> PageList;
00054     PageList                    m_pageMap;
00055     IgPage                      *m_currentPage;    
00056 
00057     // undefined, no semantics
00058     IgDocument (const IgDocument &);
00059     IgDocument &operator= (const IgDocument &);
00060 };
00061 
00062 //<<<<<< INLINE PUBLIC FUNCTIONS                                        >>>>>>
00063 //<<<<<< INLINE MEMBER FUNCTIONS                                        >>>>>>
00064 
00065 #endif // IGUANA_STUDIO_IG_DOCUMENT_H

Generated on Tue Jun 9 17:38:48 2009 for CMSSW by  doxygen 1.5.4