|
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-1C802DBD-1453-5C69-94D5-FB0229C544D6" xml:lang="en"><title>Uikon |
|
13 Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody> |
|
14 <section id="GUID-CB78AFE5-5471-49D0-9740-E3FDA18ED6E9"><title>Purpose</title> <p>Provides a framework for applications. |
|
15 The framework is fundamental to all GUI applications.</p> </section> |
|
16 <section id="GUID-74F7D413-3912-477E-A89E-D6BD5F395F9D"><title>Architectural relationships</title> <p>Uikon provides a UI |
|
17 library layer. It was designed to allow further higher level UI libraries |
|
18 to be added that can include controls that derive from the ones provided by |
|
19 Uikon. Avkon provides these higher level UI libraries in Symbian^3 and historically |
|
20 in the S60 platform. Application developers can use the Uikon APIs directly, |
|
21 though they should check that there is not a more appropriate Avkon API. </p> <p>The |
|
22 Uikon application framework extends two lower frameworks:</p> <ul> |
|
23 <li id="GUID-6941969D-7625-5376-A5D6-5E5B0378D0E7"><p>the Application Architecture |
|
24 Framework: handles application start-up and accessing the application data |
|
25 (its <i>document</i>). </p> </li> |
|
26 <li id="GUID-F1AA0F97-5205-537C-994A-6A3FA811AA72"><p>UI Control Framework: |
|
27 provides the framework for drawing and handling input to screen controls</p> </li> |
|
28 </ul> <p> Uikon ties these two frameworks together to provide the framework |
|
29 for the standard application design. </p> <p>Uikon's framework classes are |
|
30 extended in turn by:</p> <ul> |
|
31 <li id="GUID-EF33F5C8-6EA8-5D8A-AE53-A35C692E291A"><p>applications, to implement |
|
32 appropriate behaviour for their type of data, and for their types of command</p> </li> |
|
33 <li id="GUID-66353589-7D6B-548E-81A0-3A3515CF8BD8"><p>possibly by UI variant-specific |
|
34 libraries, to add UI variant-specific behaviour to the application framework</p> </li> |
|
35 </ul> </section> |
|
36 <section id="GUID-3B1FA50E-E199-46F3-B8A0-9370BECDE8E2"><title>Description</title> <p>The API has five key concepts: application |
|
37 (<codeph>CEikApplication</codeph>), document (<codeph>CEikDocument</codeph>), |
|
38 app UI (<codeph>CEikAppUi</codeph>), UI Environment (<codeph>CEikonEnv</codeph>), |
|
39 and utilities (<codeph>EikFileUtils</codeph>).</p> <p><b>Application</b> </p> <p>The application class defines properties of the application, such as UID |
|
40 and caption, and creates a new document.</p> <p>The application base class |
|
41 is provided by <xref href="GUID-E36E2F07-09E7-32BC-BB83-14DF9232E7D9.dita"><apiname>CEikApplication</apiname></xref>.</p> <p><b>Document</b> </p> <p>The document class represents the data model for |
|
42 the application. In file-based applications, it stores and restores the application's |
|
43 data. It handles requests to edit a document by creating an app UI.</p> <p>The |
|
44 document base class is provided by <xref href="GUID-B33A8A56-D1BE-3E3D-B5AC-F644A5C764DB.dita"><apiname>CEikDocument</apiname></xref>.</p> <p><b>App UI</b> </p> <p>The app UI is the central user interface class. It |
|
45 creates and owns controls to display the application data, and centralises |
|
46 handling of command input from standard controls such as menus and toolbars.</p> <p>The |
|
47 app UI base class is provided by <xref href="GUID-1185F595-0488-3E93-8D60-6B3A1A3AC32E.dita"><apiname>CEikAppUi</apiname></xref>, which can be |
|
48 customised by using the resource structure <xref href="GUID-77DF8122-9267-36A6-B5C5-AC989828F2EA.dita"><apiname>EIK_APP_INFO</apiname></xref>.</p> <p><b>UI Environment</b> </p> <p>The UI Environment provides a large number |
|
49 of assorted UI functionality, particularly simple access to information and |
|
50 query dialogs, and access to standard system UI resources (bitmaps and fonts). |
|
51 Every object in a GUI application can access a UI Environment (through <xref href="GUID-96CA3B4B-993F-36C0-9A5B-DF5CC74EE20E.dita#GUID-96CA3B4B-993F-36C0-9A5B-DF5CC74EE20E/GUID-3587E866-F434-30BA-9CFC-0D40EF8D47FE"><apiname>CEikonEnv::Static()</apiname></xref>), |
|
52 as a pointer to it is stored in thread-local storage.</p> <p>The UI Environment |
|
53 is provided by <xref href="GUID-96CA3B4B-993F-36C0-9A5B-DF5CC74EE20E.dita"><apiname>CEikonEnv</apiname></xref>.</p> <p><b>Utilities</b> </p> <p>Utility classes provide easy access for applications |
|
54 to frequently-used functionality. Notable are <xref href="GUID-EF4568CF-947B-3931-B860-2A63A6B7C275.dita"><apiname>EikFileUtils</apiname></xref> for |
|
55 file access, and <xref href="GUID-C886511D-1922-3703-843D-1936018788AC.dita"><apiname>EikResourceUtils</apiname></xref> for resource access.</p> </section> |
|
56 <section id="GUID-E0A48D84-08C6-44BC-B4A0-E8DF472DCB3B"><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 |
|
57 Control Framework Overview</xref> </p> </section> |
|
58 </conbody></concept> |