|
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-830E40D0-7DEE-5EFB-BCC6-EC0AA7FF7A02" xml:lang="en"><title>View |
|
13 Server Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody> |
|
14 <section><title>Purpose</title> <p>This API allows applications to make and |
|
15 receive requests to show a particular view of data. Small amounts of data |
|
16 may be passed in such requests. The view architecture allows a high level |
|
17 of integration between applications. This is particularly useful for enabling |
|
18 users to navigate through the UI on the basis of the tasks they are working |
|
19 on, rather than perceiving separate applications. </p> </section> |
|
20 <section><title>Architectural relationships</title> <p>Views are UI classes |
|
21 (almost invariably controls) that implement the Symbian view interface. They |
|
22 display application data and are owned by the application's main user interface |
|
23 class (the AppUi). </p> <p>The inter-process communication required to make |
|
24 and receive requests to display particular views is handled by a dedicated |
|
25 server. <b>The client/server interface is not to be used directly by applications, |
|
26 but through framework functions in the AppUi (CCoeAppUi).</b> </p> <fig id="GUID-DBF38DC9-0A01-532F-83E4-B0BDC5103DB7"> |
|
27 <title> View Server architecture </title> |
|
28 <image href="GUID-347ACB44-5D07-5EA6-8751-E424A118859D_d0e116900_href.jpg" placement="inline"/> |
|
29 </fig> </section> |
|
30 <section><title>Description</title> <p>The API has several key concepts: </p> <p><b>Abstract |
|
31 view interface</b> </p> <p>The abstract view interface is implemented by application |
|
32 views to receive activation and deactivation requests from the view server. |
|
33 The activation method allows a message (a Direct Navigational Link, or DNL), |
|
34 encapsulated in a descriptor, to be passed to the view (for example, the name |
|
35 of a file that should be displayed in the view). Note that although view classes |
|
36 are usually derived from <xref href="GUID-B06F99BD-F032-3B87-AB26-5DD6EBE8C160.dita"><apiname>CCoeControl</apiname></xref> the view architecture |
|
37 does not impose any restriction on which type of object implements the view |
|
38 interface. </p> <p>The abstract view interface is provided by <xref href="GUID-2C5E3F6C-6679-3914-9736-62296E7715A7.dita"><apiname>MCoeView</apiname></xref>. </p> <p><b>View |
|
39 ID</b> </p> <p>The view ID identifies a view uniquely. It consists of two |
|
40 UIDs: the application's UID, which is allocated by Symbian, and a view UID, |
|
41 which is allocated by the Symbian developer. The view UID is not strictly |
|
42 a UID (though it is of the the same <xref href="GUID-530281E6-29FC-33F2-BC9B-610FBA389444.dita"><apiname>TUid</apiname></xref> type) and needs |
|
43 only to be unique within the application and different from the application |
|
44 UID. </p> <p>The view ID is provided by <xref href="GUID-3DEA9A17-CB50-3DCD-87AC-0E91B377FB0E.dita"><apiname>TVwsViewId</apiname></xref>. </p> <p><b>Registration</b> </p> <p>Views |
|
45 are registered with the View Server. There are functions in <xref href="GUID-3AC2CDAC-0291-309F-A020-049BC9F2CF90.dita"><apiname>CCoeAppUi</apiname></xref> to |
|
46 do this. Once registered other applications may activate them by specifying |
|
47 their view IDs. Applications which do not implement views may still participate |
|
48 in the view architecture, though to a lesser degree, by registering themselves |
|
49 using their application UID. </p> <p><b>Activation, deactivation & screen |
|
50 device change</b> </p> <p>Activation is the process of switching, or linking |
|
51 to a view. Again, there are functions in <xref href="GUID-3AC2CDAC-0291-309F-A020-049BC9F2CF90.dita"><apiname>CCoeAppUi</apiname></xref> to activate |
|
52 and deactivate a specified view. The new view is activated and the old view |
|
53 is deactivated. Activation and deactivation events enable to actions to be |
|
54 performed by both new and old views. Similarly views need to know when screen |
|
55 orientation (portrait to landscape) or size (flip closed to flip open) has |
|
56 changed. </p> <p><b>Observation</b> </p> <p>Besides creating events and calling |
|
57 framework functions on activation, deactivation and screen device change the |
|
58 view architecture also supports three view observer interfaces which are also |
|
59 notified when such actions occur, namely <xref href="GUID-916B51B5-44BB-3010-B974-8D5D14D37169.dita"><apiname>MCoeViewObserver</apiname></xref>, <xref href="GUID-994248C5-B9C2-3932-A499-2A6A4E7A552E.dita"><apiname>MCoeViewActivationObserver</apiname></xref> & <xref href="GUID-8D9CBC46-6057-3FDC-906C-35BEBDA00D16.dita"><apiname>MCoeViewDeactivationObserver</apiname></xref>. </p> </section> |
|
60 <section><title>See also</title><ul> |
|
61 <li><p><xref href="GUID-37E8A48E-09B8-5958-9263-B33EDAE3F7C6.dita">UI Control Framework |
|
62 Overview</xref></p></li> |
|
63 <li><p><xref href="GUID-1C802DBD-1453-5C69-94D5-FB0229C544D6.dita">Uikon Overview</xref></p></li> |
|
64 <li><p><xref href="GUID-BBC374AD-88E6-5C58-88BB-B939C2948DDA.dita">Application |
|
65 UI</xref> </p></li> |
|
66 </ul></section> |
|
67 </conbody></concept> |