|
1 <?xml version="1.0" encoding="utf-8"?> |
|
2 <!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. --> |
|
3 <!-- This component and the accompanying materials are made available under the terms of the License |
|
4 "Eclipse Public License v1.0" which accompanies this distribution, |
|
5 and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". --> |
|
6 <!-- Initial Contributors: |
|
7 Nokia Corporation - initial contribution. |
|
8 Contributors: |
|
9 --> |
|
10 <!DOCTYPE concept |
|
11 PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd"> |
|
12 <concept id="GUID-FCEDC338-61CA-5D10-A8DB-E44A3EBBDE5E" xml:lang="en"><title>Front |
|
13 End Processor Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody> |
|
14 <section id="GUID-4DBE2888-BC56-417E-B12F-520A9AFF5CBE"><title>Purpose</title> <p>Front End Processors, or FEPs, enable users |
|
15 to input characters that are not on the device keyboard. For most phones a |
|
16 FEP is essential for entering anything anything other than numbers. Typically |
|
17 FEPs are used for processing multi-tap keypad input, predictive text, handwriting |
|
18 recognition, voice recognition and character selection. </p> </section> |
|
19 <section id="GUID-CB4AD573-8695-4BE0-A40D-DCB813AD313C"><title>Architectural relationships</title> <p>FEPs are ECOM plugins |
|
20 that implement the FEP interface. They typically use the UI Control Framework |
|
21 to intercept key and pointer events which are processed as necessary and the |
|
22 output sent to the current application. Applications do not need to be aware |
|
23 that a FEP is present. </p> <p>Note that until the introduction of <xref href="GUID-4BFEDD79-9502-526A-BA7B-97550A6F0601.dita">Platform |
|
24 Security</xref> FEPs were implemented as polymorphic DLLs. Significantly, |
|
25 under Platsec, FEPs require a capability of <b>All - Tcb</b> as they may be |
|
26 loaded by any application. </p> </section> |
|
27 <section id="GUID-DDA8FA60-B059-45ED-98FE-BA0C274BFC36"><title>Description</title> <p>The API has five key concepts: FEP |
|
28 base, control input capability, FEP-aware text editor, foreground observer |
|
29 and focus observer. </p> <p><b>FEP Base</b> </p> <p>The FEP |
|
30 base, <xref href="GUID-ADAA039A-7BF3-3B06-8486-2E3604C2633D.dita"><apiname>CCoeFep</apiname></xref>, is the abstract base class from which a |
|
31 FEP is derived. A FEP is typically implemented to have a window owning control, |
|
32 the standard Symbian OS means of receiving input events. The UI Control Framework |
|
33 uses a control stack to determine the order in which controls are offered |
|
34 key events. A FEP places its control on the stack with a high priority such |
|
35 that it has first access to key events. </p> <fig id="GUID-55FA95ED-227B-560E-98B4-CCFB8E42A216"> |
|
36 <title> FEP Base </title> |
|
37 <image href="GUID-DD3A519B-26D5-5920-BEF3-16273A661448_d0e16898_href.png" placement="inline"/> |
|
38 </fig> <p>The Window Server provides support for windows that float above |
|
39 other windows in the application. This allows a FEP to have a visible presence. </p> <p>Each |
|
40 running application has its own instance of the current FEP. Support is provided |
|
41 for synchronising attributes across all instances so that there appears to |
|
42 be only one. </p> <p><b>Control input-capabilities</b> </p> <p>A FEP must |
|
43 be able to discover the input-capabilities of the target control(s) to determine |
|
44 what output is appropriate. Input capabilities are provided by <xref href="GUID-BB7D0D56-1713-3DC0-BDA0-3CA1F0462BE2.dita"><apiname>TCoeInputCapabilities</apiname></xref>. </p> <p><b>FEP-aware |
|
45 text editors</b> </p> <p>A text-editing control can be designed to be closely |
|
46 integrated with a FEP by implementing <xref href="GUID-A5D563D6-A99A-31DF-B844-5F94EF5FFE87.dita"><apiname>MCoeFepAwareTextEditor</apiname></xref>. |
|
47 Most of the Symbian provided editing controls do this. The use of in-line |
|
48 editing in FEP aware editors can mean that a FEP has no obvious visible presence |
|
49 at all. </p> <p><b>Foreground observer</b> </p> <p>A FEP can implement an |
|
50 observer interface to be notified when the application goes into the foreground |
|
51 or background. The foreground observer is <xref href="GUID-2CAC79B0-8BD3-3961-A162-75B004AEE5FC.dita"><apiname>MCoeForegroundObserver</apiname></xref>. </p> <p><b>Focus |
|
52 observer</b> </p> <p>A FEP can implement an observer to be notified when controls |
|
53 under the FEP gain or lose focus. The FEP can then discover the input-capabilities |
|
54 of the current target control(s). The focus observer is <xref href="GUID-E591B7D7-ED56-3CEF-883F-7091D5833731.dita"><apiname>MCoeFocusObserver</apiname></xref>. </p> </section> |
|
55 <section id="GUID-90026D68-1FB6-4190-B0A8-9CDD0B1C6C18"><title>See also</title> <p><xref href="GUID-37E8A48E-09B8-5958-9263-B33EDAE3F7C6.dita">UI |
|
56 Control Framework Overview</xref> </p> </section> |
|
57 </conbody></concept> |