diff -r 51a74ef9ed63 -r ae94777fff8f Symbian3/SDK/Source/GUID-31A28040-6C8E-5C65-A697-04B30B441686-GENID-1-8-1-3-1-1-9-1-4-1-11-1.dita --- a/Symbian3/SDK/Source/GUID-31A28040-6C8E-5C65-A697-04B30B441686-GENID-1-8-1-3-1-1-9-1-4-1-11-1.dita Wed Mar 31 11:11:55 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,59 +0,0 @@ - - - - - -FEP -ReferencesThis topic introduces miscellaneous guidelines to write a FEP. -
Handling the -start of a transaction

Although applications do not need to be FEP-aware -in order to work with FEPs, a situation can occur in some applications in -which the user interface can be improved by the application making use of -a FEPBASE API to communicate with the FEP above it, if there is one.

If -no FEP is present, the expected behaviour in some UIs when the user presses -a key is for the application to do two things: firstly, it moves focus to -a previously non-focused text editor control (possibly, although not necessarily, -by launching a dialog), and secondly, it 'seeds' that text editor control -with the character associated with that key. If there is a FEP, by default -(in other words, without the application being FEP-aware) the focus change -would only happen when the FEP outputs text to the application. However, if -the FEP is designed to allow the user to compose a fairly large block of text -to send to the application (as would be likely in a Japanese FEP), it would -be better if the focus change occurred when the user starts composing their -text in the FEP. In order for this to happen, the application needs to be -FEP-aware, albeit in a fairly trivial way. The way the FEP notifies the application -that it is starting a transaction is by calling CCoeEnv ’s -member function ForEachFepObserverCall() (CCoeEnv is -defined in epoc32\include\COEMAIN.H), passing in the -address of the non-member function FepObserverHandleStartOfTransactionL() (defined -in epoc32\include\FEPBASE.H). It is important to note -that this function should only be called as the last C++ statement executed -when handling an event. The reason for this that it may take a considerable -amount of time to return (for example, it may launch a dialog and only return -when the dialog has been exited).

-
Text cursors

If -a non-inline-editing FEP has a composition window into which the user types, -that window should not use a 'real' text cursor (in other words, a cursor -which is set and unset using RWindowGroup ’s SetTextCursor() and CancelTextCursor() member -functions). The reason is that the window server only allows a single text -cursor for the whole system at any one time. If the FEP’s target control is -a text editor, it should use the window server’s text cursor itself, so the -FEP should not use it. To solve this problem, the text cursor in the FEP’s -composition window can be simulated with a sprite. The class CTstInsertionPoint in -TFEP1 provides an example of this.

-
Shortcut keys

As -FEPs get first refusal of all key events, there is a risk that FEPs can intercept -shortcut keys (if the UI supports them) which are intended for the application -to handle. To define a convention for FEP shortcut keys is non-trivial as -different UIs use different modifier keys and have different policies on using -them. Matters are simplified greatly if a product has a dedicated on/off key -for FEPs as this may be used in combination with other keys to carry out different -functions, as well as on its own to turn the FEP on and off. FEP authors should -consult the documentation for their target UI.

-
\ No newline at end of file