Symbian3/SDK/Source/GUID-FCEDC338-61CA-5D10-A8DB-E44A3EBBDE5E.dita
author Dominic Pinkman <Dominic.Pinkman@Nokia.com>
Thu, 11 Mar 2010 15:24:26 +0000
changeset 2 ebc84c812384
parent 0 89d6a7a84779
permissions -rw-r--r--
week 10 bug fix submission: Bug 1892, Bug 1897, Bug 1319. Also 3 or 4 documents were found to contain code blocks with SFL, which has been fixed. Partial fix for broken links, links to Forum Nokia, and the 'Symbian platform' terminology issues.

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