textrendering/texthandling/stext/TXTSTD.H
changeset 0 1fb32624e06b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/textrendering/texthandling/stext/TXTSTD.H	Tue Feb 02 02:02:46 2010 +0200
@@ -0,0 +1,237 @@
+/*
+* 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 "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+
+#ifndef __TXTSTD_H__
+#define __TXTSTD_H__
+
+#include <e32std.h>
+#include <txtfrmat.h>
+
+class TCharFormatX
+/**
+The extended character format used internally.
+As well as the public TCharFormat attributes it stores
+any attributes that are useful only inside ETEXT.
+@internalComponent
+*/
+	{
+	public:
+	TCharFormatX(): iParserTag(0) { }
+	TCharFormatX(const TCharFormat& aCharFormat): iCharFormat(aCharFormat), iParserTag(0) { }
+
+	TCharFormat iCharFormat;
+	TUint iParserTag;
+	};
+
+/**
+Attributes not used in the format masks, but used to store system colour indices, etc.
+This method maintains data compatibility. For example, a paragraph fill colour, including its
+fourth byte that is used as the system colour index, is selected by a single mask but corresponding
+to EAttFillColor, but is stored using two attribute flags: one for the three bytes of the RGB colour,
+and one extra optional one for the system colour index.
+@internalComponent
+*/
+enum TTextFormatNonMaskableAttribute
+	{
+	EAttFillSystemColor = ETextFormatAttributeCount,
+	EAttBulletSystemColor,
+	EAttTopBorderSystemColor,
+	EAttBottomBorderSystemColor,
+	EAttLeftBorderSystemColor,
+	EAttRightBorderSystemColor,
+	EAttTextSystemColor,
+	EAttFontHighlightSystemColor,
+	EAttParaLanguageX,
+	EAttCharLanguageX,
+	EAttBulletX,
+	EAttBitmapType,
+
+	EExternalizedAttributeCount
+	};
+
+
+/**
+Attributes used to mask internal character attributes.
+@internalComponent
+*/
+enum TCharFormatXAttribute
+	{
+	EAttParserTag = EExternalizedAttributeCount,
+
+	EAttributeCount
+	};
+
+class TCharFormatXMask: public TCharFormatMask
+/**
+A mask that can deal with TCharFormatXAttributes as well as TTextFormatAttributes
+@internalComponent
+*/
+	{
+	public:
+	TCharFormatXMask(): TCharFormatMask() { }
+	TCharFormatXMask(TCharFormatMask aMask): TCharFormatMask(aMask) { }
+
+	/*
+	An offset to make extended attribute flags contiguous with ordinary character attributes
+	so that we don't run out of bits if more non-maskable attributes are invented.
+	*/
+	enum
+		{
+		EAttribOffset = EExternalizedAttributeCount - ETextFormatAttributeCount
+		};
+
+	void SetAttrib(TTextFormatAttribute aAttribute)
+		{ TCharFormatMask::SetAttrib(aAttribute); }
+	void ClearAttrib(TTextFormatAttribute aAttribute)
+		{ TCharFormatMask::ClearAttrib(aAttribute); }
+	TBool AttribIsSet(TTextFormatAttribute aAttribute) const
+		{ return TCharFormatMask::AttribIsSet(aAttribute); }
+
+	void SetAttrib(TCharFormatXAttribute aAttribute)
+		{ TCharFormatMask::SetAttrib((TTextFormatAttribute)(aAttribute - EAttribOffset)); }
+	void ClearAttrib(TCharFormatXAttribute aAttribute)
+		{ TCharFormatMask::ClearAttrib((TTextFormatAttribute)(aAttribute - EAttribOffset)); }
+	TBool AttribIsSet(TCharFormatXAttribute aAttribute) const
+		{ return TCharFormatMask::AttribIsSet((TTextFormatAttribute)(aAttribute - EAttribOffset)); }
+	void ClearExtendedAttribs() { ClearAttrib(EAttParserTag); }
+	};
+
+
+/**
+@internalComponent
+*/
+enum TETextPanic
+	{
+	// General
+	EDebug,
+	EDebugDeleteZeroLength,
+
+	// Format attributes
+	ETabNotFound,
+
+	// Format layer storage
+	EAttributeLengthLookupNegative,
+	EStoreTabError,
+	ECannotStoreFormatLayerChain,
+	ECorruptFormatLayerChain,
+	ECorruptFormatLayer,
+	ENullFormatPointer,
+
+	// Picture Restoration
+	ENullStore,
+	EInvalidPictureFactorySettings,
+	ENullStoreResolver,
+
+	// Plain text
+	ECharPosBeyondDocument,
+	EConstructCalledTwice,
+	ECopyToStreamNegativeLength,
+	EPasteNegativeLength,
+	EDeleteNegativeLength,
+	ECorruptTextStore,
+	EExtractBufferTooSmall,
+	ENoTextField,
+	EExportLineWrapInvalid,
+
+	// Global text
+	ENullFormatLayerHandle,
+	EApplyParaFormatNegativeLength,
+	EApplyCharFormatNegativeLength,
+	EGetParaFormatNegativeLength,
+	EGetCharFormatNegativeLength,
+
+	// Rich text
+	ENullRichTextInsert,
+	EMarkupAlreadyPresent,
+
+	// Rich text index
+	ERichTextIndexIntegrityErr,
+	EPhraseIxPresentWithNoParaIx,
+	ERichTextIndexReset,
+	ESetInsertCharFormatIntegrityErr,
+	EInsertEmbeddedParaErr,
+	EInsertNullPicHdrData,
+	EDeleteFromParagraphInvalidRange,
+	EDeleteParagraphInvalidStartValue,
+	EDeleteParagraphInvalidEndValue,
+	EReclaimShareError,
+	EParaAttribsNotInSharedList,
+	ERichTextNotSetForUsingStyles,
+	EPictureHeaderIndexOutOfRange,
+	ELostPictureHeader,
+	ESplitPhraseCalledOnSharedPara,
+	ESplitPhraseCalledOnPicturePhrase,
+	EGetPictureSizeCalledOnNonPicturePhrase,
+	EModifiedPicturePhraseLength,
+	EReleasCharFormatLayerOwnershipCalledOnPicturePhrase,
+	ERichTextStorePictureIntegrityError,
+	ERtIndexInternalizeCalledOnNonEmptySource,
+	ERtExternalizeParaIx,
+	ESharedParaCountStreamOverflow,
+	EEndOfSharedParaListEncountered,
+	EPasteParaIxError,
+	EPastePhraseIxErr,
+	ESharedFormatsMapIntegrityError,
+	ESharedFormatsMapOverFlow,
+	EParagraphStyleNegativeLength,
+	EApplyParaStyleNegativeLength,
+	ERemoveSpecificParaFormatNegativeLength,
+	ECopyToClipboardNegativeLength,
+	EClipboardIntegrity,
+	ENonOverloadedInsertCalledWithPictureCharacter,
+	EAppendLFoundInMemoryPicture,
+
+	// style clipboarding
+	EStyleClipboardIntegrityError,
+
+	// Paragraph styles
+	EStyleIntegrityError,
+	EStyleIndexOutOfRange,
+
+	// Front end processor inline editing
+	ENotCurrentlyFepInlineEditing,
+	EAlreadyFepInlineEditing,
+
+	// Parser system
+	EParserListNotInitialized,
+	EParserListAlreadyExists,
+	EParserListNotActive,
+	EParserCallbackAlreadySet,
+	EParserTagNotFound,
+	EParserListTextIndexNotInitialized,
+	};
+
+/**
+@internalComponent
+*/
+GLREF_C void Panic(TETextPanic aPanic);
+GLREF_C void ReleaseOnCleanup(TAny* aParaAttribs);
+GLREF_C void ResetOnCleanup(TAny* aParaFormat);
+
+inline void ResetOnCleanupL( CParaFormat* aParaFormat)
+	{
+	CleanupStack::PushL(TCleanupItem(ResetOnCleanup,aParaFormat));
+	}
+
+#if defined(__DLL__)
+#define DLLEXPORT_C EXPORT_C 
+#else
+#define DLLEXPORT_C
+#endif
+
+#endif