Symbian Developer Library

SYMBIAN OS V6.1 EDITION FOR C++

[Index] [Glossary] [Previous] [Next]



Location: fepbase.h
Link against: fepbase.lib

Class MCoeFepAwareTextEditor

MCoeFepAwareTextEditor

Support

Supported from 6.0

Description

Specifies a protocol for FEP-aware text editors.

An implementation of this class is provided by UIKON’s CEikEdwin class which is used in text editors.

TCoeInputCapabilities::FepAwareTextEditor() returns a pointer to an object of this class. A NULL return value indicates that the interface is not supported by any of the currently focused controls.

Inline editing:

Inline editing means composing text directly in the target text editor control rather than in the FEP's edit window first. The target text editor must implement the MCoeFepAwareTextEditor interface in order to support inline text. The inline text may be differentiated from the surrounding text by the use of different formatting. These differences are removed when the inline text transaction is committed (causing the inline text to become a real part of the document). Cancelling the inline text transaction deletes the inline text and restores any previously selected text. A benefit of inline editing is that the user only has to concentrate on one area of the screen rather than two.

An inline editing transaction consists of the following sequence of function calls:

Defined in MCoeFepAwareTextEditor:
CancelFepInlineEdit(), CommitFepInlineEditL(), DoCommitFepInlineEditL(), DocumentLengthForFep(), DocumentMaximumLengthForFep(), Extension1(), GetCursorSelectionForFep(), GetEditorContentForFep(), GetFormatForFep(), GetScreenCoordinatesForFepL(), SetCursorSelectionForFepL(), SetInlineEditingCursorVisibilityL(), StartFepInlineEditL(), UpdateFepInlineTextL()


Inline editing


StartFepInlineEditL()

virtual void StartFepInlineEditL(const TDesC& aInitialInlineText, TInt aPositionOfInsertionPointInInlineText, TBool aCursorVisibility, const MFormCustomDraw* aCustomDraw, MFepInlineTextFormatRetriever& aInlineTextFormatRetriever, MFepPointerEventHandlerDuringInlineEdit& aPointerEventHandlerDuringInlineEdit)=0;

Description

Starts a FEP inline editing transaction. Inserts a descriptor containing the initial inline text into the text editor. The inline text should normally replace any selected text.

Parameters

const TDesC& aInitialInlineText

The inline text to insert into the text editor.

TInt aPositionOfInsertionPointInInlineText

An insertion position within the inline text. This is an offset from the start of the inline text.

TBool aCursorVisibility

ETrue for visible text cursor, EFalse for invisible text cursor in the text editor.

const MFormCustomDraw* aCustomDraw

Pointer to a custom drawing object. May be used to do advanced formatting of the inline text. This parameter is optional — a NULL pointer may be specified.

MFepInlineTextFormatRetriever& aInlineTextFormatRetriever

Defines a single member function, GetFormatOfFepInlineText() which is used by the text editor to find out the formatting to apply to the inline text. It is also possible to apply different formatting to different parts of the inline text.

MFepPointerEventHandlerDuringInlineEdit& aPointerEventHandlerDuringInlineEdit

Defines a single function, HandlePointerEventInInlineTextL() which is called when a pointer event is received within the inline text. This function might update the cursor position within the inline text and do text selection.

Notes:


UpdateFepInlineTextL()

virtual void UpdateFepInlineTextL(const TDesC& aNewInlineText, TInt aPositionOfInsertionPointInInlineText)=0;

Description

Updates the inline text. Called when a character is added to or deleted from the inline text.

Parameters

const TDesC& aNewInlineText

Descriptor which holds the entire new inline text string.

TInt aPositionOfInsertionPointInInlineText

The position of the insertion point (i.e. the cursor) within the inline text string aNewInlineText. This is an offset from the start of the string.

Notes:


SetInlineEditingCursorVisibilityL()

virtual void SetInlineEditingCursorVisibilityL(TBool aCursorVisibility)=0;

Description

Sets the visibility of the text cursor in the text editor.

Parameters

TBool aCursorVisibility

ETrue for visible text cursor, EFalse for invisible text cursor.

Notes:


CommitFepInlineEditL()

void CommitFepInlineEditL(CCoeEnv& aConeEnvironment);

Description

Commits the inline text to the document. This function's implementation calls the text editor's implementation of DoCommitFepInlineEditL() then calls HandleCompletionOfTransactionL() for each FEP observer which has been added to the cone environment's FEP observer list (see CCoeEnv::AddFepObserverL()).

Parameters

CCoeEnv& aConeEnvironment

The control's environment.


DoCommitFepInlineEditL()

private: virtual void DoCommitFepInlineEditL()=0;

Description

Private function called by CommitFepInlineEditL(). Implementations should commit the inline text to the document. This ends the inline editing transaction and causes the inline text to become a "real" part of the document.


CancelFepInlineEdit()

virtual void CancelFepInlineEdit()=0;

Description

Cancels the inline editing transaction. The edit window should be rolled back to the state it was in before the FEP transaction started, i.e. any inline text in the document which has not yet been committed should be removed. If the inline text has replaced existing text, (e.g. a selection) the replaced text should be reinstated.

[Top]


General enquiry functions


DocumentLengthForFep()

virtual TInt DocumentLengthForFep() const=0;

Description

Returns the total number of characters in the text editor.

Return value

TInt

The total number of characters in the text editor.


DocumentMaximumLengthForFep()

virtual TInt DocumentMaximumLengthForFep() const=0;

Description

Returns the upper limit (if any) on the length of text that the text editor can hold.

Return value

TInt

The maximum number of characters that the text editor can hold.


GetEditorContentForFep()

virtual void GetEditorContentForFep(TDes& aEditorContent, TInt aDocumentPosition, TInt aLengthToRetrieve) const=0;

Description

Copies a portion of the text editor's text content into a descriptor.

Parameters

TDes& aEditorContent

A descriptor; on return contains a copy of a portion of the text.

TInt aDocumentPosition

The document position in the text editor from which to copy.

TInt aLengthToRetrieve

The number of characters to copy.


GetFormatForFep()

virtual void GetFormatForFep(TCharFormat& aFormat, TInt aDocumentPosition) const=0;

Description

Gets the character formatting which applies to the document position specified. This function allows FEPs to find out the ambient formatting so that the FEP can choose a format for the inline text that will clearly differentiate it from the surrounding text.

Parameters

TCharFormat& aFormat

On return, contains the character formatting which applies to the character at aDocumentPosition.

TInt aDocumentPosition

The document position of interest.


GetScreenCoordinatesForFepL()

virtual void GetScreenCoordinatesForFepL(TPoint& aLeftSideOfBaseLine, TInt& aHeight, TInt& aAscent, TInt aDocumentPosition) const=0;

Description

Gets the x,y screen coordinates for the left hand side of the baseline of the character located at a specified document position. Also gets the height (ascent + descent) and ascent of the font of the character. This function could be used to position the FEP window as close as possible to the insertion point in the text editor.

Parameters

TPoint& aLeftSideOfBaseLine

On return, contains the x,y coordinates of the left side of the baseline of the character located at aDocumentPosition.

TInt& aHeight

On return, contains the height (ascent + descent) of the font of the character at aDocumentPosition.

TInt& aAscent

On return, contains the ascent of the font of the character at aDocumentPosition.

TInt aDocumentPosition

The document position of interest.

[Top]


Text selection


SetCursorSelectionForFepL()

virtual void SetCursorSelectionForFepL(const TCursorSelection& aCursorSelection)=0;

Description

Sets the range of characters in the text editor which should be selected.

Parameters

const TCursorSelection& aCursorSelection

Contains the cursor and anchor positions for the selection.


GetCursorSelectionForFep()

virtual void GetCursorSelectionForFep(TCursorSelection& aCursorSelection) const=0;

Description

Gets the range of characters in the text editor which are selected.

Parameters

TCursorSelection& aCursorSelection

On return, contains the cursor and anchor positions of the selection.

[Top]


State information


Extension1()

MCoeFepAwareTextEditor_Extension1* Extension1();

Support

Supported from 6.1

Description

Returns a pointer to an instance of the interface class MCoeFepAwareTextEditor_Extension1, or NULL, if the interface is not supported. Calls the private virtual function of the same name.

Return value

MCoeFepAwareTextEditor_Extension1*

A pointer to an instance of the interface class MCoeFepAwareTextEditor_Extension1, or NULL, if the interface is not supported.


Extension1()

private: virtual MCoeFepAwareTextEditor_Extension1* Extension1(TBool& aSetToTrue);

Support

Supported from 6.1

Description

This private function should be overridden by text editors which support the MCoeFepAwareTextEditor_Extension1 interface.

The implementation of this function should simply return a pointer to itself (this), and set aSetToTrue to ETrue. If not overridden, the function returns NULL to indicate that the interface is not supported. Called by the public overload of MCoeFepAwareTextEditor::Extension1().

Parameters

TBool& aSetToTrue

This should always be set to ETrue.

Return value

MCoeFepAwareTextEditor_Extension1*

A pointer to the object for which the function is invoked (this).