ACF $AcfVersion:0$
Public Member Functions | List of all members
idoc::IMultiPageDocument Class Referenceabstract

Simple interface for a structured document. More...

#include <IMultiPageDocument.h>

Inheritance diagram for idoc::IMultiPageDocument:
istd::IChangeable istd::IPolymorphic idoc::TMultiPageDocumentWrap< idoc::IMultiPageDocument > iimg::CMultiPageBitmapBase iimg::CMultiPageBitmapSequenceComp iimg::CMultiPageBitmapComp iimg::TMultiPageBitmap< BitmapImpl >

Public Member Functions

virtual int GetPagesCount () const =0
 Get number of pages in the document.
 
virtual const istd::IChangeableGetDocumentPage (int pageIndex) const =0
 Get the document page.
 
virtual const idoc::IDocumentMetaInfoGetPageMetaInfo (int pageIndex) const =0
 Get meta info of the given page if exists.
 
virtual void ResetPages ()=0
 Remove all pages and their content from the document.
 
virtual istd::IChangeableInsertPage (const idoc::IDocumentMetaInfo *pageMetaInfoPtr=NULL, const iprm::IParamsSet *pageParameterPtr=NULL, int position=-1)=0
 Insert a new document page at the given position.
 
virtual bool RemovePage (int pageIndex)=0
 Remove the page at the given index.
 
virtual const IDocumentMetaInfoGetDocumentMetaInfo () const =0
 Get meta information about the document.
 
- Public Member Functions inherited from istd::IChangeable
virtual int GetSupportedOperations () const
 Get set of flags for supported operations.
 
virtual bool CopyFrom (const IChangeable &object, CompatibilityMode mode=CM_WITHOUT_REFS)
 Copy this object from another one.
 
virtual bool IsEqual (const IChangeable &object) const
 Compare this object with another object.
 
virtual istd::TUniqueInterfacePtr< istd::IChangeableCloneMe (CompatibilityMode mode=CM_WITHOUT_REFS) const
 Make a copy of this object.
 
virtual bool ResetData (CompatibilityMode mode=CM_WITHOUT_REFS)
 Reset data to its default state.
 
virtual void BeginChanges (const ChangeSet &changeSet)
 Starts the change transaction.
 
virtual void EndChanges (const ChangeSet &changeSet)
 Ends the change transaction.
 
virtual void BeginChangeGroup (const ChangeSet &changeSet)
 Starts group of changes.
 
virtual void EndChangeGroup (const ChangeSet &changeSet)
 Ends group of changes.
 
- Public Member Functions inherited from istd::IPolymorphic
virtual ~IPolymorphic ()
 

Additional Inherited Members

- Public Types inherited from istd::IChangeable
enum  ChangeFlags {
  CF_ACF_INTERNAL = 0 , CF_ALL_DATA , CF_ANY , CF_DESTROYING ,
  CF_DELEGATED , CF_NO_UNDO
}
 Data model change notification flags. More...
 
enum  SupportedOperations {
  SO_NONE = 0 , SO_OBSERVE = 1 << 0 , SO_COPY = 1 << 1 , SO_CLONE = 1 << 2 ,
  SO_COMPARE = 1 << 3 , SO_RESET = 1 << 4
}
 Flags for supported operations. More...
 
enum  CompatibilityMode { CM_STRICT , CM_WITHOUT_REFS , CM_WITH_REFS , CM_CONVERT }
 Control how relationship betweeen objects are interpreted. More...
 
typedef QMultiMap< QByteArray, QVariant > ChangeInfoMap
 
- Static Public Member Functions inherited from istd::IChangeable
static const ChangeSetGetNoChanges ()
 Get empty set of changes.
 
static const ChangeSetGetAnyChange ()
 Get anonymous change set.
 
static const ChangeSetGetAllChanges ()
 Get anonymous change set.
 
static const ChangeSetGetDelegatedChanges ()
 Get delegated change set.
 
- Protected Member Functions inherited from istd::IChangeable
virtual void OnBeginChanges ()
 Callback function for begin change event.
 
virtual void OnEndChanges (const ChangeSet &changeSet)
 Callback function for end change event.
 

Detailed Description

Simple interface for a structured document.

A multi-page document is a container that manages a collection of pages, where each page owns its content. This interface is useful for documents that have a natural page-based structure, such as:

Each page can have its own meta-information and content. The document itself also maintains document-level meta-information.

Usage Example
// Get or create a multi-page document
idoc::IMultiPageDocument* mpDoc = GetMultiPageDocument();
// Add a new page
istd::IChangeable* page1 = mpDoc->InsertPage(nullptr, nullptr, -1);
// Configure page1 content...
// Add another page at the beginning
istd::IChangeable* page0 = mpDoc->InsertPage(nullptr, nullptr, 0);
// Iterate through all pages
for (int i = 0; i < mpDoc->GetPagesCount(); ++i) {
const istd::IChangeable& page = mpDoc->GetDocumentPage(i);
const idoc::IDocumentMetaInfo* metaInfo = mpDoc->GetPageMetaInfo(i);
if (metaInfo) {
QString title = metaInfo->GetMetaInfo(
qDebug() << "Page" << i << ":" << title;
}
}
// Remove a specific page
mpDoc->RemovePage(1);
// Clear all pages
mpDoc->ResetPages();
// Access document-level metadata
const idoc::IDocumentMetaInfo& docMeta = mpDoc->GetDocumentMetaInfo();
QString docTitle = docMeta.GetMetaInfo(
Interface for document meta-information.
@ MIT_TITLE
Title of the document.
virtual QVariant GetMetaInfo(int metaInfoType) const =0
Get document's meta info.
Simple interface for a structured document.
virtual void ResetPages()=0
Remove all pages and their content from the document.
virtual const istd::IChangeable & GetDocumentPage(int pageIndex) const =0
Get the document page.
virtual const idoc::IDocumentMetaInfo * GetPageMetaInfo(int pageIndex) const =0
Get meta info of the given page if exists.
virtual istd::IChangeable * InsertPage(const idoc::IDocumentMetaInfo *pageMetaInfoPtr=NULL, const iprm::IParamsSet *pageParameterPtr=NULL, int position=-1)=0
Insert a new document page at the given position.
virtual int GetPagesCount() const =0
Get number of pages in the document.
virtual bool RemovePage(int pageIndex)=0
Remove the page at the given index.
virtual const IDocumentMetaInfo & GetDocumentMetaInfo() const =0
Get meta information about the document.
Common interface for data model objects, which can be changed.
Definition IChangeable.h:28
See also
IMultiPageDocumentProvider, IDocumentMetaInfo, CMultiPageDocumentFilePersistenceComp

Definition at line 79 of file IMultiPageDocument.h.

Member Function Documentation

◆ GetDocumentMetaInfo()

virtual const IDocumentMetaInfo & idoc::IMultiPageDocument::GetDocumentMetaInfo ( ) const
pure virtual

Get meta information about the document.

Returns
Reference to document-level meta-information.

This is different from page meta-information - it describes the document as a whole.

Implemented in idoc::TMultiPageDocumentWrap< idoc::IMultiPageDocument >.

◆ GetDocumentPage()

virtual const istd::IChangeable & idoc::IMultiPageDocument::GetDocumentPage ( int  pageIndex) const
pure virtual

Get the document page.

Parameters
pageIndexZero-based index of the page (0 to GetPagesCount()-1).
Returns
Reference to the page object containing the page content.

Implemented in idoc::TMultiPageDocumentWrap< idoc::IMultiPageDocument >.

Referenced by idoc::TMultiPageDocumentWrap< Base >::CopyFrom().

◆ GetPageMetaInfo()

virtual const idoc::IDocumentMetaInfo * idoc::IMultiPageDocument::GetPageMetaInfo ( int  pageIndex) const
pure virtual

Get meta info of the given page if exists.

Parameters
pageIndexZero-based index of the page.
Returns
Pointer to page meta-information, or NULL if page has no meta-info.

Implemented in idoc::TMultiPageDocumentWrap< idoc::IMultiPageDocument >.

Referenced by idoc::TMultiPageDocumentWrap< Base >::CopyFrom().

◆ GetPagesCount()

virtual int idoc::IMultiPageDocument::GetPagesCount ( ) const
pure virtual

Get number of pages in the document.

Returns
Total count of pages.

Implemented in idoc::TMultiPageDocumentWrap< idoc::IMultiPageDocument >.

Referenced by idoc::TMultiPageDocumentWrap< Base >::CopyFrom().

◆ InsertPage()

virtual istd::IChangeable * idoc::IMultiPageDocument::InsertPage ( const idoc::IDocumentMetaInfo pageMetaInfoPtr = NULL,
const iprm::IParamsSet pageParameterPtr = NULL,
int  position = -1 
)
pure virtual

Insert a new document page at the given position.

Parameters
pageMetaInfoPtrOptional meta-information for the new page.
pageParameterPtrOptional parameters for page creation.
positionInsertion position in the page container. If negative, the new page will be inserted after the last page.
Returns
Pointer to the object representing the contents of the new page.
Example
// Add page at the end
istd::IChangeable* newPage = mpDoc->InsertPage(nullptr, nullptr, -1);
// Insert page at the beginning
istd::IChangeable* firstPage = mpDoc->InsertPage(nullptr, nullptr, 0);

Implemented in iimg::CMultiPageBitmapBase, and iimg::CMultiPageBitmapSequenceComp.

◆ RemovePage()

virtual bool idoc::IMultiPageDocument::RemovePage ( int  pageIndex)
pure virtual

Remove the page at the given index.

Parameters
pageIndexZero-based index of the page to remove.
Returns
True if the page was successfully removed, false otherwise.

Implemented in idoc::TMultiPageDocumentWrap< idoc::IMultiPageDocument >.

◆ ResetPages()

virtual void idoc::IMultiPageDocument::ResetPages ( )
pure virtual

Remove all pages and their content from the document.

This operation clears the entire document, removing all pages.

Implemented in idoc::TMultiPageDocumentWrap< idoc::IMultiPageDocument >.


The documentation for this class was generated from the following file: