williamr@2: // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). williamr@2: // All rights reserved. williamr@2: // This component and the accompanying materials are made available williamr@2: // 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 williamr@2: // which accompanies this distribution, and is available williamr@2: // at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". williamr@2: // williamr@2: // Initial Contributors: williamr@2: // Nokia Corporation - initial contribution. williamr@2: // williamr@2: // Contributors: williamr@2: // williamr@2: // Description: williamr@2: // the class for inline-text format retrieval - in its own header file to prevent low-level williamr@2: // components dependent on this class from gaining unnecessary (and undesirable) dependencies williamr@2: // on high-level components williamr@2: // williamr@2: // williamr@2: williamr@2: #ifndef __FEPITFR_H__ williamr@2: #define __FEPITFR_H__ williamr@2: williamr@2: #include williamr@2: williamr@2: class TCharFormat; williamr@2: williamr@2: williamr@2: /** Specifies the mixin protocol for finding out the formatting to apply to inline williamr@2: text. williamr@2: williamr@2: This class should be overridden by front end processors which support inline editing. williamr@2: williamr@2: An instance of a class which implements this protocol should be passed to williamr@2: MCoeFepAwareTextEditor::StartFepInlineEditL(). williamr@2: williamr@2: @publishedAll williamr@2: @released */ williamr@2: class MFepInlineTextFormatRetriever // to be overridden by inline-editing front-end processors williamr@2: { williamr@2: public: williamr@2: /** Gets the character formatting to apply to the inline text. williamr@2: williamr@2: This function may be used to differentiate the formatting of the inline text williamr@2: from the surrounding text. The first parameter should be set to contain the williamr@2: character formatting values to use. williamr@2: williamr@2: MCoeFepAwareTextEditor provides a member function for finding out the character williamr@2: formatting of the surrounding text - GetFormatForFep(). This can be called williamr@2: inside the implementation of this function to make any necessary adjustments williamr@2: to the format of the inline text to ensure that it is different from the surrounding williamr@2: text. williamr@2: williamr@2: The second and third parameters enable different parts of the inline text williamr@2: to have different formatting. williamr@2: williamr@2: All implementations of this function need to set the aNumberOfCharactersWithSameFormat williamr@2: parameter. If all of the inline text uses the same formatting then aNumberOfCharactersWithSameFormat williamr@2: should be set to the length of the inline text and the aPositionOfCharacter williamr@2: parameter can be ignored. williamr@2: williamr@2: When the inline text does not all use the same formatting, the second parameter williamr@2: should be set to the number of characters starting at aPositionOfCharacter williamr@2: which have the same formatting: see the following example. williamr@2: williamr@2: Example williamr@2: williamr@2: If the inline text is 7 characters long, the first 4 characters are in format williamr@2: A, the next 2 characters are in format B, and the remaining character is in williamr@2: format C. williamr@2: williamr@2: When the FEP framework (which knows that the inline text is 7 characters long) williamr@2: needs to find out the format of the inline text, it calls GetFormatOfFepInlineText() williamr@2: passing zero into aPositionOfCharacter (to signify the start of the inline williamr@2: text). williamr@2: williamr@2: As the first 4 characters are all in format A, the function should set aFormat williamr@2: to A and it should set aNumberOfCharactersWithSameFormat to 4. As the FEP williamr@2: framework has only been told the format of the first 4 characters, it calls williamr@2: GetFormatOfFepInlineText() again passing 4 into aPositionOfCharacter. As the williamr@2: 2 characters starting at position 4 are all in format B, the function should williamr@2: set aFormat to B and it should set aNumberOfCharactersWithSameFormat to 2. williamr@2: The FEP framework still does not know the format of the 7th character so it williamr@2: calls GetFormatOfFepInlineText() a third time passing 6 into aPositionOfCharacter. williamr@2: As the character at position 6 is in format C, the function should set aFormat williamr@2: to C and it should set aNumberOfCharactersWithSameFormat to 1. The FEP framework williamr@2: now knows the format of all of the inline text. williamr@2: williamr@2: @param aFormat On return, contains the formatting to apply to the inline text williamr@2: (or to a portion of it). williamr@2: @param aNumberOfCharactersWithSameFormat On return, contains the number of williamr@2: characters in the inline text (starting at aPositionOfCharacter) which have williamr@2: the same formatting. williamr@2: @param aPositionOfCharacter Start position within the inline text. */ williamr@2: virtual void GetFormatOfFepInlineText(TCharFormat& aFormat, TInt& aNumberOfCharactersWithSameFormat, TInt aPositionOfCharacter) const=0; williamr@2: private: // reserved. do not override! williamr@2: IMPORT_C virtual void MFepInlineTextFormatRetriever_Reserved_1(); williamr@2: IMPORT_C virtual void MFepInlineTextFormatRetriever_Reserved_2(); williamr@2: }; williamr@2: williamr@2: #endif // __FEPITFR_H__