epoc32/include/txtglobl.h
branchSymbian2
changeset 2 2fe1408b6811
parent 0 061f57f2323e
child 4 837f303aceeb
--- 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 <e32std.h>
+#include <e32base.h>
+#include <txtlaydc.h>
+#include <txtmfmtx.h>
+#include <txtetext.h>
+
+
+// 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 <txtglobl.inl>
+
+
+#endif