diff -r 666f914201fb -r 2fe1408b6811 epoc32/include/txtglobl.h --- a/epoc32/include/txtglobl.h Tue Nov 24 13:55:44 2009 +0000 +++ b/epoc32/include/txtglobl.h Tue Mar 16 16:12:26 2010 +0000 @@ -1,1 +1,118 @@ -txtglobl.h +// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members +// which accompanies this distribution, and is available +// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +#ifndef __TXTGLOBL_H__ +#define __TXTGLOBL_H__ + +#include +#include +#include +#include +#include + + +// forward declarations +class CParaFormatLayer; +class CCharFormatLayer; +class TCharFormatX; +class TCharFormatXMask; + + +// Globally formatted text. +// Uses one instance of each a paragraph format and character format class; Each presents +// the formatting applied to the total document contents. Both of the format classes used +// may utilise layering of formats through 'based on' links to achieve full format specification. +// These global layers are *never* owned by global text, merely referenced. + +/** +Text with globally applied formatting. + +Global text uses a single set of paragraph format attributes to describe the +appearance of every paragraph and a single set of character format attributes +to describe the appearance of every character. + +The paragraph formatting is stored in a CParaFormatLayer and the character +formatting is stored in a CCharFormatLayer. A format layer is a set of character +or paragraph format attributes, which may own a pointer to another format +layer. This pointer is called a based-on link. The effective formatting of +a global text object is the set of attributes specified in its two format +layers, as well as any attributes inherited from the layers' chain of based-on +links. To get the effective formatting, the links are read in turn, so that +each attribute's value is taken from the first layer in the chain in which +it has been set. Use GetCharFormat() and GetParaFormatL() to get the text +object's effective formatting. + +A global text object references the two format layers; it does not own them. +This allows more than one global text object to use the same formatting. The +format layers may be modified (see ApplyParaFormatL() and ApplyCharFormatL()) +or replaced (see SetGlobalParaFormat() and SetGlobalCharFormat()) during the +text object's lifetime. +@publishedAll +@released +*/ +class CGlobalText : public CPlainText,public MLayDoc,public MFormatText + { +public: +// Special member functions + // Create new global text component whose sole content is an end-of-document character. + IMPORT_C static CGlobalText* NewL(const CParaFormatLayer* aGlobalParaLayer,const CCharFormatLayer* aGlobalCharLayer, + TDocumentStorage aStorage=ESegmentedStorage,TInt aDefaultTextGranularity=EDefaultTextGranularity); + // Restore a new global text, that uses the specified global layers. + IMPORT_C static CGlobalText* NewL(const CStreamStore& aStore,TStreamId aStreamId, + const CParaFormatLayer* aGlobalParaLayer,const CCharFormatLayer* aGlobalCharLayer, + MTextFieldFactory* aFieldFactory=NULL, + TDocumentStorage=ESegmentedStorage); + IMPORT_C ~CGlobalText(); +// Global Format Layers + IMPORT_C void SetGlobalParaFormat(const CParaFormatLayer* aParaFormatLayer); + IMPORT_C void SetGlobalCharFormat(const CCharFormatLayer* aCharFormatLayer); + inline const CParaFormatLayer* GlobalParaFormatLayer()const; + inline const CCharFormatLayer* GlobalCharFormatLayer()const; +// MLayDoc implementation + IMPORT_C virtual TInt LdDocumentLength()const; + IMPORT_C virtual TInt LdToParagraphStart(TInt& aCurrentPos)const; + IMPORT_C virtual void GetParagraphFormatL(CParaFormat* aFormat,TInt aPos)const; + IMPORT_C virtual void GetChars(TPtrC& aView,TCharFormat& aFormat,TInt aStartPos)const; + IMPORT_C virtual TInt GetPictureSizeInTwips(TSize& aSize, TInt aPos)const; + IMPORT_C virtual CPicture* PictureHandleL(TInt aPos,MLayDoc::TForcePictureLoad aForceLoad)const; + IMPORT_C virtual TBool EnquirePageBreak(TInt aPos,TInt aLength=0)const; + IMPORT_C virtual TBool SelectParagraphLabel(TInt aPos); + IMPORT_C virtual void CancelSelectLabel(); +// MFormatText implementation + IMPORT_C virtual void GetParaFormatL(CParaFormat* aFormat,TParaFormatMask& aVaries,TInt aPos,TInt aLength, + CParaFormat::TParaFormatGetMode aMode=CParaFormat::EAllAttributes)const; + IMPORT_C virtual void ApplyParaFormatL(const CParaFormat* aFormat,const TParaFormatMask& aMask,TInt aPos,TInt aLength); + IMPORT_C virtual void GetCharFormat(TCharFormat& aFormat,TCharFormatMask& aVaries,TInt aPos,TInt aLength)const; + IMPORT_C virtual void ApplyCharFormatL(const TCharFormat& aFormat,const TCharFormatMask& aMask,TInt aPos,TInt aLength); +protected: + IMPORT_C CGlobalText(); + IMPORT_C CGlobalText(const CParaFormatLayer* aGlobalParaLayer, + const CCharFormatLayer* aGlobalCharLayer); +private: + CGlobalText(const CGlobalText& aGlobalText); + CGlobalText& operator=(const CGlobalText& aGlobalText); +protected: + const CParaFormatLayer* iGlobalParaFormatLayer; // the global paragraph format layer; not owned + const CCharFormatLayer* iGlobalCharFormatLayer; // the global character format layer; not owned + __DECLARE_TEST; +private: + void* iReserved_2; + }; + + +#include + + +#endif