1 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
2 // All rights reserved.
3 // This component and the accompanying materials are made available
4 // 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
5 // which accompanies this distribution, and is available
6 // at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
8 // Initial Contributors:
9 // Nokia Corporation - initial contribution.
14 // the class for inline-text format retrieval - in its own header file to prevent low-level
15 // components dependent on this class from gaining unnecessary (and undesirable) dependencies
16 // on high-level components
28 /** Specifies the mixin protocol for finding out the formatting to apply to inline
31 This class should be overridden by front end processors which support inline editing.
33 An instance of a class which implements this protocol should be passed to
34 MCoeFepAwareTextEditor::StartFepInlineEditL().
38 class MFepInlineTextFormatRetriever // to be overridden by inline-editing front-end processors
41 /** Gets the character formatting to apply to the inline text.
43 This function may be used to differentiate the formatting of the inline text
44 from the surrounding text. The first parameter should be set to contain the
45 character formatting values to use.
47 MCoeFepAwareTextEditor provides a member function for finding out the character
48 formatting of the surrounding text - GetFormatForFep(). This can be called
49 inside the implementation of this function to make any necessary adjustments
50 to the format of the inline text to ensure that it is different from the surrounding
53 The second and third parameters enable different parts of the inline text
54 to have different formatting.
56 All implementations of this function need to set the aNumberOfCharactersWithSameFormat
57 parameter. If all of the inline text uses the same formatting then aNumberOfCharactersWithSameFormat
58 should be set to the length of the inline text and the aPositionOfCharacter
59 parameter can be ignored.
61 When the inline text does not all use the same formatting, the second parameter
62 should be set to the number of characters starting at aPositionOfCharacter
63 which have the same formatting: see the following example.
67 If the inline text is 7 characters long, the first 4 characters are in format
68 A, the next 2 characters are in format B, and the remaining character is in
71 When the FEP framework (which knows that the inline text is 7 characters long)
72 needs to find out the format of the inline text, it calls GetFormatOfFepInlineText()
73 passing zero into aPositionOfCharacter (to signify the start of the inline
76 As the first 4 characters are all in format A, the function should set aFormat
77 to A and it should set aNumberOfCharactersWithSameFormat to 4. As the FEP
78 framework has only been told the format of the first 4 characters, it calls
79 GetFormatOfFepInlineText() again passing 4 into aPositionOfCharacter. As the
80 2 characters starting at position 4 are all in format B, the function should
81 set aFormat to B and it should set aNumberOfCharactersWithSameFormat to 2.
82 The FEP framework still does not know the format of the 7th character so it
83 calls GetFormatOfFepInlineText() a third time passing 6 into aPositionOfCharacter.
84 As the character at position 6 is in format C, the function should set aFormat
85 to C and it should set aNumberOfCharactersWithSameFormat to 1. The FEP framework
86 now knows the format of all of the inline text.
88 @param aFormat On return, contains the formatting to apply to the inline text
89 (or to a portion of it).
90 @param aNumberOfCharactersWithSameFormat On return, contains the number of
91 characters in the inline text (starting at aPositionOfCharacter) which have
93 @param aPositionOfCharacter Start position within the inline text. */
94 virtual void GetFormatOfFepInlineText(TCharFormat& aFormat, TInt& aNumberOfCharactersWithSameFormat, TInt aPositionOfCharacter) const=0;
95 private: // reserved. do not override!
96 IMPORT_C virtual void MFepInlineTextFormatRetriever_Reserved_1();
97 IMPORT_C virtual void MFepInlineTextFormatRetriever_Reserved_2();
100 #endif // __FEPITFR_H__