epoc32/include/unified_editor.h
branchSymbian3
changeset 4 837f303aceeb
parent 3 e1b950c65cb4
--- a/epoc32/include/unified_editor.h	Wed Mar 31 12:27:01 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,311 +0,0 @@
-/*
-* Copyright (c) 2000-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 __UNIFIED_EDITOR_H__
-#define __UNIFIED_EDITOR_H__ 1
-
-#include <tagma.h>
-
-/*
-The header file for MUnifiedEditor, an interface that unifies editing operations on backing text and layout,
-which are traditionally separated between ETEXT (backing text) and FORM (layout). It is not dependent
-on FORM or ETEXT, although there is an implementation (TFormAndTextEditor) using those components.
-*/
-
-/**
-Base class for optional interfaces
-@internalComponent
-*/
-class MTmOptionalInterface
-
-	{
-	};
-
-/**
-UIDs for standard optional interfaces
-@internalComponent
-*/
-const TUint KUidMUnifiedEditorStyleSupport = 0x100092B6;
-const TUint KUidMUnifiedEditorPictureSupport = 0x100092B7;
-const TUint KUidMUnifiedEditorFieldSupport = 0x100092B8;
-const TUint KUidMUnifiedEditorClipboardSupport = 0x100095EF;
-
-/**
-An interface class for text editing.
-
-An object that supports text editing has some backing text - zero or more Unicode characters - and
-character and paragraph formats applicable to ranges of these characters. A paragraph is a sequence of characters
-terminating either at the end of the document or after the next paragraph separator, whichever comes first.
-
-The format for a given position is derived from up to three formatting layers. The base layer is the lowest and
-provides default attributes. These may be optionally overridden by attributes from a named style, and these in
-turn may be overridden by specific formatting. Text editing objects may support any or none of these layers; they
-may in fact ignore all attempts to set format attributes.
-@internalComponent
-*/
-class MUnifiedEditor
-
-	{
-public:
-	/**
-	 * constants used when getting formats
-	 */
-	enum TFormatLevel
-		{
-		ESpecific,			// format applied by the user
-		EEffective			// the actual format: a combination of base and specific formats
-		};
-	class MStyleSupport : public MTmOptionalInterface
-	/**
-	An optional interface to support styles
-	@internalComponent
-	*/
-		{
-	public:
-		/**
-		 * Creates a style.
-		 */
-		virtual TInt CreateStyleL(const RTmStyle& /*aStyle*/) { return KErrNotSupported; }
-		/**
-		 * Sets the attributes of a style.
-		 */
-		virtual TInt ChangeStyleL(const RTmStyle& /*aStyle*/) { return KErrNotSupported; }
-		/**
-		 * Applies the named style to the specified run of text.
-		 */
-		virtual TInt SetStyleL(TInt aPos, TInt aLength, const TDesC& aName) = 0;
-		/**
-		 * Renames a style.
-		 */
-		virtual TInt RenameStyleL(const TDesC& /*aOldName*/,const TDesC& /*aNewName*/) { return KErrNotSupported; }
-		/**
-		 * Deletes the named style.
-		 */
-		virtual TInt DeleteStyleL(const TDesC& /*aName*/) { return KErrNotSupported; }
-		/**
-		 * Get the number of named styles.
-		 */
-		virtual TInt StyleCount() const = 0;
-		/**
-		 * Gets the style set at the document position aPos. If no style is set
-		 * there return an empty string and the run length over which no style
-		 * applies.
-		 */
-		virtual void GetStyle(TInt aPos, TPtrC& aName, TInt& aRunLength) const = 0;
-		/**
-		 * Gets the attributes of a named style by completing aStyle from its
-		 * name.
-		 */
-		virtual TInt GetStyleByNameL(const TDesC& aName, RTmStyle& aStyle) const = 0;
-		/**
-		 * Gets the name and attributes of a style by index; use this in
-		 * conjunction with StyleCount to enumerate existing styles.
-		 */
-		virtual TInt GetStyleByIndexL(TInt aIndex, RTmStyle& aStyle) const = 0;
-		};
-
-	/**
-	An optional interface to support embedded pictures
-	@internalComponent
-	*/
-	class MPictureSupport : public MTmOptionalInterface
-
-		{
-	public:
-		/**
-		 * Inserts a picture, passing ownership in.
-		 */
-		virtual void InsertPictureL(TInt aPos, const TPictureHeader& aPictureIn) = 0;
-		/**
-		 * Deletes picture character in the text at aPos, if any. Ownership of
-		 * any picture is passed to the caller, therefore Picture(aPos,
-		 * aPictureOut) must have been called previously, and
-		 * aPictureOut.DeletePicture() must be called in the future to avoid a
-		 * memory leak.
-		 * If the character at aPos is a picture character, it will be deleted,
-		 * regardless of whether or not a picture was actually attatched.
-		 */
-		virtual void DropPictureL(TInt aPos) = 0;
-		/**
-		 * Gets the picture if any at aPos. No picture is indicated by
-		 * aPictureOut.iPictureType containing KUidNull.
-		 * Ownership of the picture is retained. Note that aPictureOut is
-		 * merely overwritten by this function: aPictureOut.DeletePicture() is
-		 * NOT called!
-		 */
-		virtual void Picture(TInt aPos, TPictureHeader& aPictureOut) const = 0;
-		};
-
-	/**
-	An optional interface to support clipboard operations
-	@internalComponent 
-	*/
-	class MClipboardSupport : public MTmOptionalInterface
-	
-		{
-	public:
-		/**
-		 * Copy the text and formatting specified to the stream, updating
-		 * the dictionary as appropriate.
-		 */
-		virtual void CopyToStoreL(CStreamStore& aStore, CStreamDictionary& aDictionary,
-			TInt aPos, TInt aLength) const = 0;
-		/**
-		 * Insert text and formatting from the stream at aPos.
-		 */
-		virtual void PasteFromStoreL(const CStreamStore& aStore,
-			const CStreamDictionary& aDictionary, TInt aPos) = 0;
-		};
-
-	// VIRTUAL FUNCTIONS
-
-	// getters
-
-	/**
-	 * Returns the optional interface with the specified UID, or 0 if it is not
-	 * supported.
-	 */
-	virtual MTmOptionalInterface* Interface(TUint /*aId*/) { return NULL; }
-	/**
-	 * Returns the length of the document in characters, not including any
-	 * notional final paragraph separator.
-	 */
-	virtual TInt DocumentLength() const = 0;
-	/**
-	 * Gets some text starting at aPos. The amount of text returned may be as
-	 * much or as little as is convenient to the implementation, but must be
-	 * at least one character. The text is raw Unicode text including any
-	 * paragraph separators.
-	 */
-	virtual void GetText(TInt aPos,TPtrC& aText) const = 0;
-	/**
-	 * Gets the base character and paragraph formats
-	 */
-	virtual void GetBaseFormatL(TTmCharFormat& aCharFormat,RTmParFormat& aParFormat) const = 0;
-	/**
-	 * Gets the specific or effective character format and the run over which
-	 * that format applies.
-	 */
-	virtual void GetCharFormat(TInt aPos,TFormatLevel aLevel,
-							   TTmCharFormatLayer& aFormat,TInt& aRunLength) const = 0;
-	/**
-	 * Gets the specific or effective paragraph format and the run over which
-	 * that format applies.
-	 */
-	virtual void GetParFormatL(TInt aPos,TFormatLevel aLevel,
-							   RTmParFormatLayer& aFormat,TInt& aRunLength) const = 0;
-
-	// setters
-
-	/**
-	 * Inserts text at aPos, optionally applying the specified character and
-	 * paragraph formats. Unspecified attributes take the format at the
-	 * insertion point; what this means in detail is implementation-dependent.
-	 */
-	virtual void InsertTextL(TInt aPos,const TDesC& aText,
-							 const TDesC* aStyle = NULL,
-							 const TTmCharFormatLayer* aCharFormat = NULL,
-							 const RTmParFormatLayer* aParFormat = NULL) = 0;
-	/**
-	 * Deletes aLength characters starting at aPos.
-	 */
-	virtual void DeleteTextL(TInt aPos,TInt aLength) = 0;
-	/**
-	 * Sets the base character and paragraph formats
-	 */
-	virtual void SetBaseFormatL(const TTmCharFormat& aCharFormat,const RTmParFormat& aParFormat) = 0;
-	/**
-	 * Sets specific character attributes beginning at aPos for aLength characters.
-	 */
-	virtual void SetCharFormatL(TInt aPos,TInt aLength,const TTmCharFormatLayer& aFormat) = 0;
-	/**
-	 * Sets specific paragraph attributes beginning at aPos for aLength characters.
-	 */
-	virtual void SetParFormatL(TInt aPos,TInt aLength,const RTmParFormatLayer& aFormat) = 0;
-	/**
-	 * Deletes specific character attributes beginning at aPos for aLength characters.
-	 */
-	virtual void DeleteCharFormatL(TInt aPos,TInt aLength) = 0;
-	/**
-	 * Deletes specific paragraph attributes beginning at aPos for aLength characters.
-	 */
-	virtual void DeleteParFormatL(TInt aPos,TInt aLength) = 0;
-
-	// NON-VIRTUAL FUNCTIONS
-	/**
-	 * Reads text into a writable descriptor.
-	 *
-	 * @see GetText(TInt, TPtrC) const
-	 */
-	IMPORT_C void GetText(TInt aPos, TDes& aText) const;
-	/**
-	 * Returns the interface for manipulating styles, if applicable.
-	 */
-	inline MStyleSupport* StyleSupport();
-	inline const MStyleSupport* StyleSupport() const;
-	/**
-	 * Returns the interface for manipulating pictures, if applicable.
-	 */
-	inline MPictureSupport* PictureSupport();
-	inline const MPictureSupport* PictureSupport() const;
-	/**
-	 * Returns the interface for clipboard operations, if applicable.
-	 */
-	inline MClipboardSupport* ClipboardSupport();
-	inline const MClipboardSupport* ClipboardSupport() const;
-	};
-
-// inline functions
-
-MUnifiedEditor::MStyleSupport* MUnifiedEditor::StyleSupport()
-	{
-	return static_cast<MStyleSupport*>(Interface(KUidMUnifiedEditorStyleSupport));
-	}
-
-const MUnifiedEditor::MStyleSupport* MUnifiedEditor::StyleSupport() const
-	{
-	return static_cast<MStyleSupport*>(
-		const_cast<MUnifiedEditor*>(this)->Interface(KUidMUnifiedEditorStyleSupport));
-	}
-
-MUnifiedEditor::MPictureSupport* MUnifiedEditor::PictureSupport()
-	{
-	return static_cast<MPictureSupport*>(Interface(KUidMUnifiedEditorPictureSupport));
-	}
-
-const MUnifiedEditor::MPictureSupport* MUnifiedEditor::PictureSupport() const
-	{
-	return static_cast<MPictureSupport*>(
-		const_cast<MUnifiedEditor*>(this)->Interface(KUidMUnifiedEditorPictureSupport));
-	}
-
-MUnifiedEditor::MClipboardSupport* MUnifiedEditor::ClipboardSupport()
-	{
-	return static_cast<MClipboardSupport*>(Interface(KUidMUnifiedEditorClipboardSupport));
-	}
-
-const MUnifiedEditor::MClipboardSupport* MUnifiedEditor::ClipboardSupport() const
-	{
-	return static_cast<MClipboardSupport*>(
-		const_cast<MUnifiedEditor*>(this)->Interface(KUidMUnifiedEditorClipboardSupport));
-	}
-
-#endif // __UNIFIED_EDITOR_H__