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-GENID-1-8-1-6-1-1-4-1-8-1-3-1" 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-GENID-1-8-1-6-1-1-4-1-8-1-3-1-2-1"><title>Purpose</title> <p>Front |
|
15 End Processors, or FEPs, enable users to input characters that are not on |
|
16 the device keyboard. For most phones a FEP is essential for entering anything |
|
17 anything other than numbers. Typically FEPs are used for processing multi-tap |
|
18 keypad input, predictive text, handwriting recognition, voice recognition |
|
19 and character selection. </p> </section> |
|
20 <section id="GUID-CB4AD573-8695-4BE0-A40D-DCB813AD313C-GENID-1-8-1-6-1-1-4-1-8-1-3-1-2-2"><title>Architectural |
|
21 relationships</title> <p>FEPs are ECOM plugins that implement the FEP interface. |
|
22 They typically use the UI Control Framework to intercept key and pointer events |
|
23 which are processed as necessary and the output sent to the current application. |
|
24 Applications do not need to be aware that a FEP is present. </p> <p>Note that |
|
25 until the introduction of <xref href="GUID-4BFEDD79-9502-526A-BA7B-97550A6F0601.dita">Platform |
|
26 Security</xref> FEPs were implemented as polymorphic DLLs. Significantly, |
|
27 under Platsec, FEPs require a capability of <b>All - Tcb</b> as they may be |
|
28 loaded by any application. </p> </section> |
|
29 <section id="GUID-DDA8FA60-B059-45ED-98FE-BA0C274BFC36-GENID-1-8-1-6-1-1-4-1-8-1-3-1-2-3"><title>Description</title> <p>The |
|
30 API has five key concepts: FEP base, control input capability, FEP-aware text |
|
31 editor, foreground observer and focus observer. </p> <p><b>FEP Base</b> </p> <p>The |
|
32 FEP base, <xref href="GUID-ADAA039A-7BF3-3B06-8486-2E3604C2633D.dita"><apiname>CCoeFep</apiname></xref>, is the abstract base class from which |
|
33 a FEP is derived. A FEP is typically implemented to have a window owning control, |
|
34 the standard means of receiving input events. The UI Control Framework uses |
|
35 a control stack to determine the order in which controls are offered key events. |
|
36 A FEP places its control on the stack with a high priority such that it has |
|
37 first access to key events. </p> <fig id="GUID-55FA95ED-227B-560E-98B4-CCFB8E42A216-GENID-1-8-1-6-1-1-4-1-8-1-3-1-2-3-5"> |
|
38 <title> FEP Base </title> |
|
39 <image href="GUID-DD3A519B-26D5-5920-BEF3-16273A661448_d0e55049_href.png" placement="inline"/> |
|
40 </fig> <p>The Window Server provides support for windows that float above |
|
41 other windows in the application. This allows a FEP to have a visible presence. </p> <p>Each |
|
42 running application has its own instance of the current FEP. Support is provided |
|
43 for synchronising attributes across all instances so that there appears to |
|
44 be only one. </p> <p><b>Control input-capabilities</b> </p> <p>A FEP must |
|
45 be able to discover the input-capabilities of the target control(s) to determine |
|
46 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 |
|
47 text editors</b> </p> <p>A text-editing control can be designed to be closely |
|
48 integrated with a FEP by implementing <xref href="GUID-A5D563D6-A99A-31DF-B844-5F94EF5FFE87.dita"><apiname>MCoeFepAwareTextEditor</apiname></xref>. |
|
49 Most of the Symbian provided editing controls do this. The use of in-line |
|
50 editing in FEP aware editors can mean that a FEP has no obvious visible presence |
|
51 at all. </p> <p><b>Foreground observer</b> </p> <p>A FEP can implement an |
|
52 observer interface to be notified when the application goes into the foreground |
|
53 or background. The foreground observer is <xref href="GUID-2CAC79B0-8BD3-3961-A162-75B004AEE5FC.dita"><apiname>MCoeForegroundObserver</apiname></xref>. </p> <p><b>Focus |
|
54 observer</b> </p> <p>A FEP can implement an observer to be notified when controls |
|
55 under the FEP gain or lose focus. The FEP can then discover the input-capabilities |
|
56 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> |
|
57 <section id="GUID-90026D68-1FB6-4190-B0A8-9CDD0B1C6C18-GENID-1-8-1-6-1-1-4-1-8-1-3-1-2-4"><title>See also</title> <p><xref href="GUID-37E8A48E-09B8-5958-9263-B33EDAE3F7C6-GENID-1-8-1-3-1-1-7-1-3-1.dita">UI Control Framework Overview</xref> </p> </section> |
|
58 </conbody></concept> |
|