Symbian3/SDK/Source/GUID-FCEDC338-61CA-5D10-A8DB-E44A3EBBDE5E.dita
changeset 8 ae94777fff8f
child 13 48780e181b38
equal deleted inserted replaced
7:51a74ef9ed63 8:ae94777fff8f
       
     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
       
    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"><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"><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">
       
    38 <title>                 FEP Base               </title>
       
    39 <image href="GUID-DD3A519B-26D5-5920-BEF3-16273A661448_d0e49491_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"><title>See also</title> <p><xref href="GUID-37E8A48E-09B8-5958-9263-B33EDAE3F7C6.dita">UI Control Framework Overview</xref>  </p> </section>
       
    58 </conbody></concept>