Symbian3/SDK/Source/GUID-1AA32C40-CDE0-4627-A634-7C07BB1ED67B.dita
author Dominic Pinkman <Dominic.Pinkman@Nokia.com>
Thu, 21 Jan 2010 18:18:20 +0000
changeset 0 89d6a7a84779
permissions -rw-r--r--
Initial contribution of Documentation_content according to Feature bug 1266 bug 1268 bug 1269 bug 1270 bug 1372 bug 1374 bug 1375 bug 1379 bug 1380 bug 1381 bug 1382 bug 1383 bug 1385

<?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-1AA32C40-CDE0-4627-A634-7C07BB1ED67B" xml:lang="en"><title>Forms</title><prolog><metadata><keywords></keywords></metadata></prolog><conbody>
<p>A form is a specific kind of selection list, where all items (fields) have
some editable content.</p>
<p>A form can be in the View state or in the Edit state. The item layouts
and functionality are different in these states:</p>
<ul>
<li><p>In the View state, the items are not editable. The form functions and
looks exactly like a similar selection list. Items can be selected to perform
an application-specific function. </p></li>
<li><p>In the Edit state, the user can edit all the fields. Forms can contain
text fields (alphanumeric or numeric content), pop-up fields and sliders.</p><p></p></li>
</ul>
<p>The user can switch from the View state to the Edit state using the Edit
command in the Options menu.In the Edit state, the contents of the form can
be accepted using the right softkey labeled as Done. The form then returns
to the View state.</p>
<section><title>Using forms in C++ applications</title><p>The
API to use for creating forms is the Form
API. For implementation information, see Using
the Form API.</p><p>Typically, a form will be derived from the class <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknForm.html" format="application/java-archive"><codeph>CAknForm</codeph></xref> and
the methods <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknForm.html#b90bd30d42503d5f0464e9ff1ce3b830" format="application/java-archive"><codeph>SaveFormDataL()</codeph></xref> and <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknForm.html#6ff9f54d5d8a08da0c6f6574389b787a" format="application/java-archive"><codeph>DoNotSaveFormData()</codeph></xref> will be implemented by the developer. These are called when users
switch from edit mode to view mode and are prompted by the form as to whether
they wish to save their modifications.</p><p>For customization, the class <codeph>CAknForm</codeph> provides
a single-line or double-line layout and it is possible to use icons on forms. </p><p>In
the following example, the form is pushed on the cleanup stack before <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknForm.html#a7108b30a367ecb940f57e0dd35973bd" format="application/java-archive"><codeph>ConstructL()</codeph></xref> (a
potentially leaving method) is called, and popped off before <xref href="jar:GUID-759FBC7F-5384-4487-8457-A8D4B76F6AA6.jar!/html/classCAknDialog.html#2bb826c038d23806445872d768e7d151" format="application/java-archive"><codeph>ExecuteLD()</codeph></xref>. </p><codeblock xml:space="preserve">CAknExFormAdd* form = new(ELeave) CAknExFormAdd;
CleanupStack::PushL(form);
form-&gt;ConstructL();
CleanupStack::Pop();
form-&gt;ExecuteLD(R_AKNEXFORM_TEXT_FIELD_DIALOG);
</codeblock></section>
</conbody></concept>