Week 32 contribution of PDK documentation content. See release notes for details. Fixes bug Bug 3582
<?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-993A732B-13F8-48B6-B0C5-7246FA6828DF" xml:lang="en"><title>Class
structure for the toolbar API</title><prolog><metadata><keywords/></metadata></prolog><conbody>
<p>The Toolbar API consists of following classes: <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknToolbar.html" format="application/java-archive"><codeph>CAknToolbar</codeph></xref>, <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknToolbarExtension.html" format="application/java-archive"><codeph>CAknToolbarExtension</codeph></xref>,
and <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classMAknToolbarObserver.html" format="application/java-archive"><codeph>MAknToolbarObserver</codeph></xref>.
The Toolbar API class structure and its simplified environment is described
in the figure below.</p>
<fig id="GUID-3E08B03E-BE4C-481A-82BB-B7EB03BC806A">
<title>Toolbar API class structure</title>
<image href="GUID-E60F9268-35D5-4D3F-B219-22AECF13953B_d0e74377_href.png" placement="inline"/>
</fig>
<p><codeph>CAknToolbar</codeph> is the API main class that provides the most
of the API functionality. The UI framework classes <codeph>CEikAppUiFactory</codeph>, <codeph>CAknView</codeph>,
and <codeph>CAknAppUi</codeph> take care of creating and destructing the <codeph>CAknToolbar</codeph> object.
Moreover, you can access the toolbar in your application through these UI
framework classes. </p>
<p><codeph>CAknToolbar</codeph> is a compound (window-owning) control that
contains simple (non-window-owning) controls that are the toolbar items. Toolbar
items can be for example <codeph>CAknButton</codeph> type controls. Each toolbar
can also have one extension that expands the toolbar. The extension contains
also for example <codeph>CAknButton</codeph> type controls. </p>
<p><codeph>MAknToolbarObserver</codeph> is an interface that can be used to
observe toolbar events. The application class can implement this interface
and register itself as the toolbar observer. <codeph>CAknToolbar</codeph> then
informs the observer when toolbar events occur (when toolbar is about to be
shown and when some toolbar item state has changed e.g. a button is pressed).</p>
</conbody></concept>