Initial contribution of the Adaptation Documentation.
<?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 xml:lang="en" id="GUID-2F42DC8F-E489-5EA4-8413-784D34965497"><title>UI Control Framework concepts</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>The Framework is a series of related Object-Oriented base classes with clearly defined responsibilities. UI system and application developers use the framework classes, in particular those representing 'the environment', 'the user interface' and 'the generic control' as the basis for creating concrete classes with the same underlying relationships. Framework functions, virtual functions in the base classes, maintain the relationships and enable the concrete classes to receive messages (events). </p> <p>This page describes the key concepts behind the UI Control Framework. </p> <ul><li id="GUID-87ABE063-A4B2-51D1-8C91-9CAA79343143"><p>to simplify access to the Window Server </p> </li> <li id="GUID-EF3C1D12-284D-587B-BE22-690996B0CBE0"><p>to set a recommended framework for all UI libraries </p> </li> <li id="GUID-1C04861D-667F-561F-A59E-254B63C40980"><p>to do this without imposing a particular user interface look </p> </li> </ul> <section id="GUID-F1C07D3E-AE0A-50BF-9AB9-280C4260A1F2"><title>Simplified access to the Window Server</title> <p>The Window Server provides a low-level API to the system’s user interface devices — screens, keyboard and pointer. The API is extensive and complex. The UI Control Framework hides much of this complexity and provides a simplified API that meets the requirements of most applications. </p> <p>Any client of the Window Server must create a window server session and an active scheduler framework to handle asynchronous inter-process communication (IPC). Events received from the Window Server must be converted into functions calls and passed to the appropriate controls. These complex tasks, which are similar for most applications, are performed by the Control Environment. </p> </section> <section id="GUID-BB5F1E99-8216-5E21-B407-3312D1938FAD"><title>Recommended framework for UI libraries</title> <p>In simplifying the Window Server API, the control framework makes a number of design decisions that are optimised for most applications. </p> <p>One is the framework's concept of controls. By allowing controls to represent both whole windows (window owning) and parts of windows (non-window owning) the framework makes applications run much more efficiently. </p> <p>Another is the prioritising of events. User input events, for instance, are given a higher priority than redraw events. </p> <p>A third feature is the support provided for handling key-press events and pointer events. The Window Server passes key events to the foreground application and pointer events to the window containing the point of contact, which maps to a window-owning control. In each case the Framework provides a mechanism for distributing the event to the appropriate control (normally a simple, non-window-owning control) within the application. </p> </section> <section id="GUID-C9FF4460-2D19-5956-A796-53D3D4DFA183"><title>User Interface policy agnostic</title> <p>Though the Framework provides a substantial amount of any application it imposes very little in the way of user interface policy and no 'Look and Feel' (LAF). It does, however, provide mechanisms for supporting system-wide LAF and for propagating run-time LAF changes. </p> <p>UI policy is provided by the core user interface library, Uikon, and the user interface library provided for a particular UI variant. </p> </section> <section><title>See also</title> <p> <xref href="GUID-2C443E6F-BC3D-5252-8098-9F850AA88A35.dita">Window server</xref> </p> <p><xref href="GUID-37E8A48E-09B8-5958-9263-B33EDAE3F7C6.dita">UI Control Framework overview</xref> </p> </section> </conbody></concept>