--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-33D93E96-98A9-4116-9028-3241D76A1036.dita Wed Mar 31 11:11:55 2010 +0100
@@ -0,0 +1,76 @@
+<?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-33D93E96-98A9-4116-9028-3241D76A1036" xml:lang="en"><title>Enabling
+additional touch events for your application</title><shortdesc>The Symbian platform provides additional touch events to enable
+drag events using <parmname>CCoeControl::EnableDragEvents()</parmname>and
+to specify screen areas for touch events.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>By default, the Symbian platform sends only <parmname>EButton1Up</parmname> and <parmname>EButton1Down</parmname> touch
+events to applications.</p>
+<p>If you want to enable <parmname>EDrag</parmname> touch events, implement <parmname>CCoeControl::EnableDragEvents()</parmname> in
+your container class.</p>
+<p>When the mobile device user drags the stylus on the screen, <codeph>TPointerEvent::EDrag()</codeph> events
+are sent. When dragging stops, the application receives the event <codeph>TPointerEvent::EButton1Up()</codeph>.</p>
+<codeblock xml:space="preserve">void CTableauControl::ConstructL( const TRect& aRect )
+ {
+ // This is parent window
+ CreateWindowL();
+
+ EnableDragEvents();
+
+ //SetRect( aRect );
+ SetExtentToWholeScreen();
+
+
+ // Initialize component array
+ InitComponentArrayL();
+
+
+ //Implement your own logic here
+ ActivateL();
+ }</codeblock>
+<p>It is enough that the container control set <codeph>EnableDragEvents()</codeph> in
+its construction. <codeph>EnableDragEvents()</codeph> need not be set again
+for the child controls to receive dragging events.</p>
+<section id="GUID-7B30F0D5-1EAE-4F40-B04F-6A3953BCC634"><title>Controlling
+which control receives a touch event</title><p>Particularly when you are receiving
+drag events it may be that an object in the window may be drawn by one control,
+while the pointer is over another control. In cases where you want to ensure
+that pointer events are received by the intended control, implement <parmname>CCoeControl::SetPointerCapture()</parmname>.</p><p>When
+a control receives a <parmname>TPointerEvent::EButton1Down()</parmname> event,
+all events will be sent to this control until the next <parmname>TPointerEvent::EButton1Up()</parmname> event.
+If you want to have events to be sent to another control before the <parmname>TPointerEvent::EButton1Up()</parmname> event,
+call <codeph>SetPointerCapture(ETrue)</codeph> from the new control. </p><p>When
+the new control has received its pointer event and <parmname>TPointerEvent::EButton1Up()</parmname> has
+been received, you have to call <codeph>SetPointerCapture(EFalse)</codeph> from
+the new control to stop events being sent to it indefinitely.</p></section>
+<section id="GUID-8C337F8B-346A-430A-9A7A-A48B53031421"><title>Specifying
+screen areas for touch events</title><p>To specify screen areas (<codeph>TRect</codeph>)
+for touch events, see the example below.</p><codeblock xml:space="preserve">void CTableauControl::HandlePointerEventL(const TPointerEvent& aPointerEvent)
+ {
+ // Does the user point exit text on screen?
+ // iExitRect is rectangle of the text area on screen.
+ if (iExitRect.Contains(aPointerEvent.iPosition))
+ {
+ if (iEikonEnv->QueryWinL(_L("Klondike"),_L("Exit?")))
+ {
+ // Exit was pointed, then do exit
+ (static_cast<CKlondikeAppUi*>(iEikonEnv->AppUi()))->HandleCommandL(EEikCmdExit);
+ return;
+ }
+ }
+ ...
+ }</codeblock></section>
+<section id="GUID-8B12AF1C-A98A-416D-A586-807CFC2B839D"><title>Ignoring events
+other than pointer up in your control</title><p>In cases where you want to
+make sure your control receives only touch <parmname>EButton1Up</parmname> events
+after receiving a touch <parmname>EButton1Down</parmname> event, implement <parmname>CCoeControl::IgnoreEventsUntilNextPointerUp()</parmname>. </p></section>
+</conbody></concept>
\ No newline at end of file