Symbian3/SDK/Source/GUID-BBC374AD-88E6-5C58-88BB-B939C2948DDA.dita
author Dominic Pinkman <dominic.pinkman@nokia.com>
Fri, 11 Jun 2010 12:39:03 +0100
changeset 8 ae94777fff8f
child 13 48780e181b38
permissions -rw-r--r--
Week 23 contribution of SDK documentation content. See release notes for details. Fixes bugs Bug 2714, Bug 462.

<?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-BBC374AD-88E6-5C58-88BB-B939C2948DDA" xml:lang="en"><title>Application
user interface (AppUi)</title><prolog><metadata><keywords/></metadata></prolog><conbody>
<p>Cone provides the <xref href="GUID-3AC2CDAC-0291-309F-A020-049BC9F2CF90.dita"><apiname>CCoeAppUi</apiname></xref> class as a generic base
for application user interface development. Uikon provides a specialization, <xref href="GUID-1185F595-0488-3E93-8D60-6B3A1A3AC32E.dita"><apiname>CEikAppUi</apiname></xref>,
from which concrete application UIs can be derived. UI variant libraries typically
derive their own AppUi base class from <xref href="GUID-1185F595-0488-3E93-8D60-6B3A1A3AC32E.dita"><apiname>CEikAppUi</apiname></xref> to standardize
common UI paradigms. <xref href="GUID-3AC2CDAC-0291-309F-A020-049BC9F2CF90.dita"><apiname>CCoeAppUi</apiname></xref> is, therefore, normally
a 'long way' from the surface of the finished application and knows little
of the concrete controls or functionality that it contains. </p>
<p> <xref href="GUID-3AC2CDAC-0291-309F-A020-049BC9F2CF90.dita"><apiname>CCoeAppUi</apiname></xref> provides the following key functionality: </p>
<ul>
<li id="GUID-96F849A2-4022-5564-8A28-A8D3615304CF"><p>An event-handling framework </p> <p> <xref href="GUID-3AC2CDAC-0291-309F-A020-049BC9F2CF90.dita"><apiname>CCoeAppUi</apiname></xref> is
the at the top of the run-time control hierarchy. It is the point at which
key-press events are received from the Window Server. Many of the event-handling
functions are virtual and implemented in the derived AppUi classes. </p> </li>
</ul>
<fig id="GUID-9FC56BFC-6DF5-5BF8-BDCD-65579655C558">
<image href="GUID-59A9871D-B0F3-54E2-A5BA-38790C109797_d0e47131_href.png" placement="inline"/>
</fig>
<ul>
<li id="GUID-380D267D-F442-5AE3-A361-CACEA4E97A88"><p>View Management </p> <p>The
View Manager (<xref href="GUID-1444A0B4-8828-3EEB-8DC7-C331648A5201.dita"><apiname>CCoeViewManager</apiname></xref>) is encapsulated by <xref href="GUID-3AC2CDAC-0291-309F-A020-049BC9F2CF90.dita"><apiname>CCoeAppUi</apiname></xref> which
provides a view management API. </p> <p>Views are concrete classes that implement
the <xref href="GUID-2C5E3F6C-6679-3914-9736-62296E7715A7.dita"><apiname>MCoeView</apiname></xref> interface. Typically they are top-level window-owning
controls. </p> <p>The significance of views is that they are known of outside
the application to which they belong. This allows one application to switch,
or link, directly to a view in another. If the target application is running
it will be brought to the foreground with the linked view activated. If it
isn't running it will be started up first. </p> <p>All of the API required
for implementing, registering, activating, deactivating, linking and observing
is provided by <xref href="GUID-2C5E3F6C-6679-3914-9736-62296E7715A7.dita"><apiname>MCoeView</apiname></xref> and <xref href="GUID-3AC2CDAC-0291-309F-A020-049BC9F2CF90.dita"><apiname>CCoeAppUi</apiname></xref>. </p> <p>To
participate fully in the view architecture an application must register at
least one view. An application with no views may still be linked to using
the view architecture. It registers itself with a <codeph>TVwsViewId</codeph> containing
its application UID. Obviously it will not receive activation and deactivation
events but will trigger view switch events in other applications' views. </p> <p>An
application may opt out of the view architecture (see <xref href="GUID-42003A58-F3FE-3FEB-8019-A819B860C64B.dita#GUID-42003A58-F3FE-3FEB-8019-A819B860C64B/GUID-DC2562EE-67C1-3FD3-8A43-FA9F1B02DE07"><apiname>TApaCommand::EApaCommandRunWithoutViews</apiname></xref> and <xref href="GUID-42003A58-F3FE-3FEB-8019-A819B860C64B.dita#GUID-42003A58-F3FE-3FEB-8019-A819B860C64B/GUID-84C2A808-B397-3656-A422-E1E10FE04330"><apiname>TApaCommand::EApaCommandBackgroundAndWithoutViews</apiname></xref>) </p> </li>
</ul>
</conbody></concept>