Symbian3/SDK/Source/GUID-9C269F45-F160-5A4B-ABF8-896D2A538E3B.dita
changeset 11 5072524fcc79
parent 8 ae94777fff8f
child 13 48780e181b38
equal deleted inserted replaced
10:d4524d6a4472 11:5072524fcc79
     1 <?xml version="1.0" encoding="utf-8"?>
     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
     2 <!--Arbortext, Inc., 1988-2008, v.4002-->
     3 <!-- This component and the accompanying materials are made available under the terms of the License 
     3 <!DOCTYPE concept PUBLIC "-//OASIS//DTD DITA Concept//EN"
     4 "Eclipse Public License v1.0" which accompanies this distribution, 
     4  "concept.dtd">
     5 and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
     5 <concept id="GUID-9C269F45-F160-5A4B-ABF8-896D2A538E3B" xml:lang="en">
     6 <!-- Initial Contributors:
     6 <title>Advanced Pointer Overview </title>
     7     Nokia Corporation - initial contribution.
     7 <shortdesc>This is an overview of the Window Server extensions that
     8 Contributors: 
     8 support the use of advanced pointers. These extensions enable mobile
     9 -->
     9 devices to respond to events from multiple pointers, including their
    10 <!DOCTYPE concept
    10 proximity and pressure. These extensions are available only in ScreenPlay. </shortdesc>
    11   PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
    11 <prolog>
    12 <concept xml:lang="en" id="GUID-9C269F45-F160-5A4B-ABF8-896D2A538E3B"><title>Advanced Pointer Overview </title><shortdesc>This is an overview of the Window Server extensions that support the use of advanced pointers. These extensions enable mobile devices to respond to events from multiple pointers, including their proximity and pressure. These extensions are available only in ScreenPlay. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><p> <b>Variant</b>: <xref href="GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.dita">ScreenPlay</xref>. <b>Target audience</b>: Application developers. </p> <section id="GUID-773C3275-F562-5428-A34C-7D54F10D4BC1"><title>Architecture</title> <p>In response to multi-touch pointer movements, an input driver generates a pointer event for each touch. The Window Server changes and delivers the pointer events to the client application, as shown in the following diagram. </p> <fig id="GUID-4A02299F-8401-5761-863C-91F0338731DA"><title>
    12 <metadata><keywords></keywords></metadata>
    13              Pointer events 
    13 </prolog>
    14           </title> <image href="GUID-5503ACC5-1C78-5EF6-AAD2-4B6FFA8890B9_d0e191959_href.png" placement="inline"/></fig> <p>Pointer-related events move from the driver to the application. The <xref href="GUID-668CEA36-3933-3BBE-A980-CAB62617B4FD.dita"><apiname>TRawEvent</apiname></xref>, <xref href="GUID-5D0B1595-1AC7-3C44-AC6B-0EFB5EABCF31.dita"><apiname>TWsEvent</apiname></xref> and <xref href="GUID-1FFA0073-3D83-388E-A824-08C31F90CC54.dita"><apiname>TPointerEvent</apiname></xref> classes encapsulate the event information. </p> </section> <section><title>Key concepts/terms</title> <p>The following terms are introduced here and are used throughout the advanced pointer documentation: </p> <dl><dlentry><dt>Pointer</dt> <dd><p>A device that points at the screen, for example, a mouse, pen, finger, or touchpad. </p> </dd> </dlentry> <dlentry><dt>Multi-pointer support</dt> <dd><p>Handling more than one pointer at the same time. </p> </dd> </dlentry> <dlentry><dt>Proximity</dt> <dd><p>Proximity in this context means the distance of the pointer from the mobile device. Sensors detect the value of the proximity of the pointer from the mobile device. </p> </dd> </dlentry> <dlentry><dt>Pressure</dt> <dd><p>Pressure in this context is a value that indicates the force applied to the mobile device by the pointer. Sensors detect the value of the pressure of the pointer on the mobile device. </p> </dd> </dlentry> </dl> </section> <section><title>Logical model of pointing devices</title> <p>A logical model is used to handle all of the different pointing devices correctly. In this logical model, the pointer is <b>performing an action</b> when any of the following scenarios occur: </p> <ul><li id="GUID-3A57E7AE-A8FB-5C2B-AC54-4F60DDD35783"><p>An <codeph>EButton1Down</codeph> event is sent to the client. </p> </li> <li id="GUID-BBD5660A-2A72-5F14-9A28-D7F31761F963"><p> <codeph>EDrag</codeph> events are sent to the client (optional). </p> </li> <li id="GUID-54B774E8-6BD8-51EB-9854-9953F95AFBF5"><p>An <codeph>EButton1Up</codeph> event is sent to the client. </p> </li> </ul> <p>Pointing devices can be in one of the following states: </p> <table id="GUID-AAE663FE-E94F-556B-B635-93DDD6C27902"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><thead><row><entry>State</entry> <entry>Description</entry> </row> </thead> <tbody><row><entry><p> <b>Out of range</b>  </p> </entry> <entry><p>Not detected by the device's sensors. </p> </entry> </row> <row><entry><p> <b>Up</b>  </p> </entry> <entry><p>Detected by sensors, coordinates available, not performing an action. </p> </entry> </row> <row><entry><p> <b>Down</b>  </p> </entry> <entry><p>Detected by sensors, coordinates available, performing an action (as defined above). </p> </entry> </row> </tbody> </tgroup> </table> <p>The mapping between these states and physical actions performed by the user vary for different pointing device types (mouse, finger) and different phone models. Here are two example interpretations of physical pointing device states: </p> <ul><li id="GUID-E01E8EC4-8535-5FD4-980E-214FC7542717"><p> <b>Mouse</b>. An example interpretation by a driver of the physical state of a mouse is as follows: It is always in the <i>up</i> state except when the left button is pressed, when it is in the <i>down</i> state. It is never out of range. </p> </li> <li id="GUID-7CC705BF-FC6C-534B-B00B-0C07A6B9A856"><p> <b>Fingers with proximity support</b>. The following is an example interpretation of finger physical states when the device has proximity support (that is, it can measure the finger's proximity from the screen): </p> <ul><li id="GUID-F4F27FC9-F4F3-5475-8DA5-771B804828CD"><p> <i>Out of range</i> when proximity &gt; 10cm </p> </li> <li id="GUID-0B8F3832-24C1-5421-A224-5FFFC6EBA3F4"><p> <i>Up</i> when 1cm &lt; proximity &lt;= 10cm </p> </li> <li id="GUID-CE65B2EC-AD8E-5B9D-A514-07EC73137518"><p> <i> Down</i> when proximity &lt;= 1cm </p> </li> </ul> <p>In this way the finger can perform actions (for example, press buttons, drag items) without touching the screen. </p> </li> </ul> </section> <section><title>Multiple pointers</title> <p>The system handles multiple pointers at the same time by identifying each one with a number and sending pointer events separately for each of them. A field (<codeph>iPointerNumber</codeph>) in the pointer event classes (<xref href="GUID-668CEA36-3933-3BBE-A980-CAB62617B4FD.dita"><apiname>TRawEvent</apiname></xref> and the <xref href="GUID-FADA3278-FF8B-308F-90AD-3DCF8911A023.dita"><apiname>TAdvancedPointerEvent</apiname></xref> class which extends <xref href="GUID-1FFA0073-3D83-388E-A824-08C31F90CC54.dita"><apiname>TPointerEvent</apiname></xref>) identifies the pointer for which the event occurred. The order and frequency of pointer events depends on the driver of the pointing device. </p> <p>On each phone there is a pool of available pointer numbers, ranging from 0 to <codeph>HALData::EPointerNumberOfPointers</codeph> - 1. Every time the driver detects a new pointer coming into the range of the device, the driver assigns a number from the pool. After the pointer goes out of the range of the device, the number no longer identifies that particular pointer and the driver sends <xref href="GUID-668CEA36-3933-3BBE-A980-CAB62617B4FD.dita#GUID-668CEA36-3933-3BBE-A980-CAB62617B4FD/GUID-C7FB5C5F-B7E1-3738-B72D-1AD81699414F"><apiname>TRawEvent::EPointer3DOutOfRange</apiname></xref> with this pointer number. The number is then released back to the pool and may be reused to identify another pointer coming into the device's range. </p> </section> <section><title>Pressure and proximity</title> <p>The pressure of the pointer on the screen is represented as a positive integer. The proximity of the pointer to the screen is represented as a negative integer. It is up to the UI Platform to define units of pressure and proximity, which may be non-linear. In the <xref href="GUID-668CEA36-3933-3BBE-A980-CAB62617B4FD.dita"><apiname>TRawEvent</apiname></xref> class, pressure and proximity are expressed in terms of the Z coordinate of the pointer. The definition of the Z coordinate is based on the assumption that the pointer is either hovering over the screen (proximity &lt; 0, pressure = 0) or touching the screen (proximity = 0, pressure &gt;= 0): </p> <ul><li id="GUID-21CB6F60-3076-5EBE-9900-D870C670FE5B"><p>If proximity &lt; 0 and pressure = 0 then the Z coordinate = proximity. </p> </li> <li id="GUID-B5EA992D-4F86-54E1-A64C-673691460945"><p>If proximity = 0 and pressure &gt;= 0 then the Z coordinate = pressure. </p> </li> </ul> <fig id="GUID-FCE3CEAF-CCF3-5472-AC15-5DF5F092AA5E"><title>
    14 <conbody>
    15              Relationships between the pointer proximity, pressure and z
    15 <p> <b>Variant</b>: <xref
    16              coordinate 
    16 href="GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.dita">ScreenPlay</xref
    17           </title> <image href="GUID-1A0FB98B-8DB3-5067-9B71-FF838F6AE402_d0e192246_href.png" placement="inline"/></fig> </section> <section><title>API summary</title> <table id="GUID-07002499-484E-500E-AC57-4089AB0197E8"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><thead><row><entry>API</entry> <entry>Description</entry> </row> </thead> <tbody><row><entry><p> <xref href="GUID-8BE90160-2C60-3582-82C8-4A108C7C0317.dita"><apiname>HALData</apiname></xref>  </p> </entry> <entry><p>Includes z coordinate, pressure precision and number of pointers. Also contains threshold values for proximity and pressure. </p> </entry> </row> <row><entry><p> <xref href="GUID-668CEA36-3933-3BBE-A980-CAB62617B4FD.dita"><apiname>TRawEvent</apiname></xref>  </p> </entry> <entry><p>Includes the pointer number and a structure for proximity and pressure data. </p> </entry> </row> <row><entry><p> <xref href="GUID-1460DD8F-9AA1-3B99-8FFD-F309959CCA34.dita"><apiname>RWindowBase</apiname></xref>  </p> </entry> <entry><p>Enables advanced pointer events for the window. </p> </entry> </row> <row><entry><p> <xref href="GUID-5D0B1595-1AC7-3C44-AC6B-0EFB5EABCF31.dita"><apiname>TWsEvent</apiname></xref>  </p> </entry> <entry><p>Supports <codeph>TAdvancedPointerEvent</codeph> (derived from <codeph>TPointerEvent)</codeph>. </p> </entry> </row> <row><entry><p> <xref href="GUID-1FFA0073-3D83-388E-A824-08C31F90CC54.dita"><apiname>TPointerEvent</apiname></xref>  </p> </entry> <entry><p>Includes event types for pressing and closeness. </p> </entry> </row> <row><entry><p> <xref href="GUID-FADA3278-FF8B-308F-90AD-3DCF8911A023.dita"><apiname>TAdvancedPointerEvent</apiname></xref>  </p> </entry> <entry><p>Inherits from <codeph>TPointerEvent</codeph>. </p> <p>Provides capabilities for pressure, proximity and multi-touch support. </p> </entry> </row> <row><entry><p> <xref href="GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9.dita"><apiname>RWsSession</apiname></xref>  </p> </entry> <entry><p>Provides get and set methods to manipulate threshold values for proximity and pressure. </p> </entry> </row> </tbody> </tgroup> </table> </section> <section><title>Typical uses</title> <ul><li id="GUID-CA055058-AAD6-5A89-BC7E-7B5E81FA8963"><p> <b>Enabling many pointers for a window</b>  </p> <p>Enables multiple pointers to act on one window. </p> </li> <li id="GUID-DBD49B85-207D-5722-8AE3-B00946899559"><p> <b>Enabling concurrent control of many objects</b>  </p> <p>Controls many objects on one or more windows with many pointers. </p> </li> <li id="GUID-AF442CD4-FDEC-5FF4-B8F9-6ED8CDB9E957"><p> <b>Getting z coordinates from TPointerEvent</b>  </p> <p>Reads the pressure and proximity values for a pointer. </p> </li> <li id="GUID-13E0E5DA-609A-52B3-A90A-9A84C3A8BF22"><p> <b>Pinch zooming</b>  </p> <p>Enables the user to zoom in and out of data by using two fingers to pinch an area of the screen. Pinch zooming is normally used in web-page, map, picture, chart and control applications. </p> </li> <li id="GUID-C038F18F-94DE-5391-A1F8-BEF83274D143"><p> <b>Responding to high pressure events</b>  </p> <p>As the pointer state changes, the pressure value can be checked. When it passes over a threshold value, the Window Server responds appropriately to the client. </p> </li> </ul> </section> </conbody><related-links><link href="GUID-9AD75103-CD56-5279-B639-5CA2BBF979B5.dita"><linktext>Pointer States and Event
    17 >. <b>Target audience</b>: Application developers. </p>
    18                 Communication</linktext> </link> <link href="GUID-C60DC070-572B-5960-B394-550426FDB909.dita"><linktext>Advanced Pointer
    18 <section id="GUID-773C3275-F562-5428-A34C-7D54F10D4BC1"><title>Architecture</title
    19                 Tutorial</linktext> </link> </related-links></concept>
    19 > <p>In response to multiple pointer movements, an input driver generates
       
    20 a pointer event for each touch. The Window Server changes and delivers
       
    21 the pointer events to the client application, as shown in the following
       
    22 diagram. </p> <fig id="GUID-4A02299F-8401-5761-863C-91F0338731DA">
       
    23 <title>              Pointer events            </title>
       
    24 <image
       
    25 href="GUID-5503ACC5-1C78-5EF6-AAD2-4B6FFA8890B9_d0e191959_href.png"
       
    26 placement="inline"></image></fig> <p>Pointer-related events move from
       
    27 the driver to the application. The <xref
       
    28 href="GUID-668CEA36-3933-3BBE-A980-CAB62617B4FD.dita"><apiname>TRawEvent</apiname
       
    29 ></xref>, <xref href="GUID-5D0B1595-1AC7-3C44-AC6B-0EFB5EABCF31.dita"
       
    30 ><apiname>TWsEvent</apiname></xref> and <xref
       
    31 href="GUID-1FFA0073-3D83-388E-A824-08C31F90CC54.dita"><apiname>TPointerEvent</apiname
       
    32 ></xref> classes encapsulate the event information. </p> </section>
       
    33 <section><title>Key concepts/terms</title> <p>The following terms
       
    34 are introduced here and are used throughout the advanced pointer documentation: </p
       
    35 > <dl>
       
    36 <dlentry>
       
    37 <dt>Pointer</dt>
       
    38 <dd><p>A device that points at the screen, for example, a mouse, pen,
       
    39 finger, or touchpad. </p> </dd></dlentry>
       
    40 <dlentry>
       
    41 <dt>Multi<?Pub Caret?>ple pointer support</dt>
       
    42 <dd><p>Handling more than one pointer at the same time. </p> </dd>
       
    43 </dlentry>
       
    44 <dlentry>
       
    45 <dt>Proximity</dt>
       
    46 <dd><p>Proximity in this context means the distance of the pointer
       
    47 from the mobile device. Sensors detect the value of the proximity
       
    48 of the pointer from the mobile device. </p> </dd></dlentry>
       
    49 <dlentry>
       
    50 <dt>Pressure</dt>
       
    51 <dd><p>Pressure in this context is a value that indicates the force
       
    52 applied to the mobile device by the pointer. Sensors detect the value
       
    53 of the pressure of the pointer on the mobile device. </p> </dd>
       
    54 </dlentry>
       
    55 </dl> </section>
       
    56 <section><title>Logical model of pointing devices</title> <p>A logical
       
    57 model is used to handle all of the different pointing devices correctly.
       
    58 In this logical model, the pointer is <b>performing an action</b> when
       
    59 any of the following scenarios occur: </p> <ul>
       
    60 <li id="GUID-3A57E7AE-A8FB-5C2B-AC54-4F60DDD35783"><p>An <codeph>EButton1Down</codeph
       
    61 > event is sent to the client. </p> </li>
       
    62 <li id="GUID-BBD5660A-2A72-5F14-9A28-D7F31761F963"><p> <codeph>EDrag</codeph
       
    63 > events are sent to the client (optional). </p> </li>
       
    64 <li id="GUID-54B774E8-6BD8-51EB-9854-9953F95AFBF5"><p>An <codeph>EButton1Up</codeph
       
    65 > event is sent to the client. </p> </li>
       
    66 </ul> <p>Pointing devices can be in one of the following states: </p
       
    67 > <table id="GUID-AAE663FE-E94F-556B-B635-93DDD6C27902">
       
    68 <tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
       
    69 <thead>
       
    70 <row>
       
    71 <entry>State</entry>
       
    72 <entry>Description</entry>
       
    73 </row>
       
    74 </thead>
       
    75 <tbody>
       
    76 <row>
       
    77 <entry><p> <b>Out of range</b>  </p> </entry>
       
    78 <entry><p>Not detected by the device's sensors. </p> </entry>
       
    79 </row>
       
    80 <row>
       
    81 <entry><p> <b>Up</b>  </p> </entry>
       
    82 <entry><p>Detected by sensors, coordinates available, not performing
       
    83 an action. </p> </entry>
       
    84 </row>
       
    85 <row>
       
    86 <entry><p> <b>Down</b>  </p> </entry>
       
    87 <entry><p>Detected by sensors, coordinates available, performing an
       
    88 action (as defined above). </p> </entry>
       
    89 </row>
       
    90 </tbody>
       
    91 </tgroup>
       
    92 </table> <p>The mapping between these states and physical actions
       
    93 performed by the user vary for different pointing device types (mouse,
       
    94 finger) and different phone models. Here are two example interpretations
       
    95 of physical pointing device states: </p> <ul>
       
    96 <li id="GUID-E01E8EC4-8535-5FD4-980E-214FC7542717"><p> <b>Mouse</b
       
    97 >. An example interpretation by a driver of the physical state of
       
    98 a mouse is as follows: It is always in the <i>up</i> state except
       
    99 when the left button is pressed, when it is in the <i>down</i> state.
       
   100 It is never out of range. </p> </li>
       
   101 <li id="GUID-7CC705BF-FC6C-534B-B00B-0C07A6B9A856"><p> <b>Fingers
       
   102 with proximity support</b>. The following is an example interpretation
       
   103 of finger physical states when the device has proximity support (that
       
   104 is, it can measure the finger's proximity from the screen): </p> <ul>
       
   105 <li id="GUID-F4F27FC9-F4F3-5475-8DA5-771B804828CD"><p> <i>Out of range</i
       
   106 > when proximity > 10cm </p> </li>
       
   107 <li id="GUID-0B8F3832-24C1-5421-A224-5FFFC6EBA3F4"><p> <i>Up</i> when
       
   108 1cm &lt; proximity &lt;= 10cm </p> </li>
       
   109 <li id="GUID-CE65B2EC-AD8E-5B9D-A514-07EC73137518"><p> <i> Down</i
       
   110 > when proximity &lt;= 1cm </p> </li>
       
   111 </ul> <p>In this way the finger can perform actions (for example,
       
   112 press buttons, drag items) without touching the screen. </p> </li>
       
   113 </ul> </section>
       
   114 <section><title>Multiple pointers</title> <p>The system handles multiple
       
   115 pointers at the same time by identifying each one with a number and
       
   116 sending pointer events separately for each of them. A field (<codeph
       
   117 >iPointerNumber</codeph>) in the pointer event classes (<xref
       
   118 href="GUID-668CEA36-3933-3BBE-A980-CAB62617B4FD.dita"><apiname>TRawEvent</apiname
       
   119 ></xref> and the <xref
       
   120 href="GUID-FADA3278-FF8B-308F-90AD-3DCF8911A023.dita"><apiname>TAdvancedPointerEvent</apiname
       
   121 ></xref> class which extends <xref
       
   122 href="GUID-1FFA0073-3D83-388E-A824-08C31F90CC54.dita"><apiname>TPointerEvent</apiname
       
   123 ></xref>) identifies the pointer for which the event occurred. The
       
   124 order and frequency of pointer events depends on the driver of the
       
   125 pointing device. </p> <p>On each phone there is a pool of available
       
   126 pointer numbers, ranging from 0 to <codeph>HALData::EPointerNumberOfPointers</codeph
       
   127 > - 1. Every time the driver detects a new pointer coming into the
       
   128 range of the device, the driver assigns a number from the pool. After
       
   129 the pointer goes out of the range of the device, the number no longer
       
   130 identifies that particular pointer and the driver sends <xref
       
   131 href="GUID-668CEA36-3933-3BBE-A980-CAB62617B4FD.dita#GUID-668CEA36-3933-3BBE-A980-CAB62617B4FD/GUID-C7FB5C5F-B7E1-3738-B72D-1AD81699414F"
       
   132 ><apiname>TRawEvent::EPointer3DOutOfRange</apiname></xref> with this
       
   133 pointer number. The number is then released back to the pool and may
       
   134 be reused to identify another pointer coming into the device's range. </p
       
   135 > </section>
       
   136 <section><title>Pressure and proximity</title> <p>The pressure of
       
   137 the pointer on the screen is represented as a positive integer. The
       
   138 proximity of the pointer to the screen is represented as a negative
       
   139 integer. It is up to the UI Platform to define units of pressure and
       
   140 proximity, which may be non-linear. In the <xref
       
   141 href="GUID-668CEA36-3933-3BBE-A980-CAB62617B4FD.dita"><apiname>TRawEvent</apiname
       
   142 ></xref> class, pressure and proximity are expressed in terms of the
       
   143 Z coordinate of the pointer. The definition of the Z coordinate is
       
   144 based on the assumption that the pointer is either hovering over the
       
   145 screen (proximity &lt; 0, pressure = 0) or touching the screen (proximity
       
   146 = 0, pressure >= 0): </p> <ul>
       
   147 <li id="GUID-21CB6F60-3076-5EBE-9900-D870C670FE5B"><p>If proximity
       
   148 &lt; 0 and pressure = 0 then the Z coordinate = proximity. </p> </li>
       
   149 <li id="GUID-B5EA992D-4F86-54E1-A64C-673691460945"><p>If proximity
       
   150 = 0 and pressure >= 0 then the Z coordinate = pressure. </p> </li>
       
   151 </ul> <fig id="GUID-FCE3CEAF-CCF3-5472-AC15-5DF5F092AA5E">
       
   152 <title>              Relationships between the pointer proximity,
       
   153 pressure and z              coordinate            </title>
       
   154 <image
       
   155 href="GUID-1A0FB98B-8DB3-5067-9B71-FF838F6AE402_d0e192246_href.png"
       
   156 placement="inline"></image></fig> </section>
       
   157 <section><title>API summary</title> <table
       
   158 id="GUID-07002499-484E-500E-AC57-4089AB0197E8">
       
   159 <tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
       
   160 <thead>
       
   161 <row>
       
   162 <entry>API</entry>
       
   163 <entry>Description</entry>
       
   164 </row>
       
   165 </thead>
       
   166 <tbody>
       
   167 <row>
       
   168 <entry><p> <xref href="GUID-8BE90160-2C60-3582-82C8-4A108C7C0317.dita"
       
   169 ><apiname>HALData</apiname></xref>  </p> </entry>
       
   170 <entry><p>Includes z coordinate, pressure precision and number of
       
   171 pointers. Also contains threshold values for proximity and pressure. </p
       
   172 > </entry>
       
   173 </row>
       
   174 <row>
       
   175 <entry><p> <xref href="GUID-668CEA36-3933-3BBE-A980-CAB62617B4FD.dita"
       
   176 ><apiname>TRawEvent</apiname></xref>  </p> </entry>
       
   177 <entry><p>Includes the pointer number and a structure for proximity
       
   178 and pressure data. </p> </entry>
       
   179 </row>
       
   180 <row>
       
   181 <entry><p> <xref href="GUID-1460DD8F-9AA1-3B99-8FFD-F309959CCA34.dita"
       
   182 ><apiname>RWindowBase</apiname></xref>  </p> </entry>
       
   183 <entry><p>Enables advanced pointer events for the window. </p> </entry>
       
   184 </row>
       
   185 <row>
       
   186 <entry><p> <xref href="GUID-5D0B1595-1AC7-3C44-AC6B-0EFB5EABCF31.dita"
       
   187 ><apiname>TWsEvent</apiname></xref>  </p> </entry>
       
   188 <entry><p>Supports <codeph>TAdvancedPointerEvent</codeph> (derived
       
   189 from <codeph>TPointerEvent)</codeph>. </p> </entry>
       
   190 </row>
       
   191 <row>
       
   192 <entry><p> <xref href="GUID-1FFA0073-3D83-388E-A824-08C31F90CC54.dita"
       
   193 ><apiname>TPointerEvent</apiname></xref>  </p> </entry>
       
   194 <entry><p>Includes event types for pressing and closeness. </p> </entry>
       
   195 </row>
       
   196 <row>
       
   197 <entry><p> <xref href="GUID-FADA3278-FF8B-308F-90AD-3DCF8911A023.dita"
       
   198 ><apiname>TAdvancedPointerEvent</apiname></xref>  </p> </entry>
       
   199 <entry><p>Inherits from <codeph>TPointerEvent</codeph>. </p> <p>Provides
       
   200 capabilities for pressure, proximity and multiple pointers. </p> </entry>
       
   201 </row>
       
   202 <row>
       
   203 <entry><p> <xref href="GUID-643DDA78-C7A7-386D-AB3F-8710141DDDA9.dita"
       
   204 ><apiname>RWsSession</apiname></xref>  </p> </entry>
       
   205 <entry><p>Provides get and set methods to manipulate threshold values
       
   206 for proximity and pressure. </p> </entry>
       
   207 </row>
       
   208 </tbody>
       
   209 </tgroup>
       
   210 </table> </section>
       
   211 <section><title>Typical uses</title> <ul>
       
   212 <li id="GUID-CA055058-AAD6-5A89-BC7E-7B5E81FA8963"><p> <b>Enabling
       
   213 many pointers for a window</b>  </p> <p>Enables multiple pointers
       
   214 to act on one window. </p> </li>
       
   215 <li id="GUID-DBD49B85-207D-5722-8AE3-B00946899559"><p> <b>Enabling
       
   216 concurrent control of many objects</b>  </p> <p>Controls many objects
       
   217 on one or more windows with many pointers. </p> </li>
       
   218 <li id="GUID-AF442CD4-FDEC-5FF4-B8F9-6ED8CDB9E957"><p> <b>Getting
       
   219 z coordinates from TPointerEvent</b>  </p> <p>Reads the pressure and
       
   220 proximity values for a pointer. </p> </li>
       
   221 <li id="GUID-13E0E5DA-609A-52B3-A90A-9A84C3A8BF22"><p> <b>Pinch zooming</b
       
   222 >  </p> <p>Enables the user to zoom in and out of data by using two
       
   223 fingers to pinch an area of the screen. Pinch zooming is normally
       
   224 used in web-page, map, picture, chart and control applications. </p
       
   225 > </li>
       
   226 <li id="GUID-C038F18F-94DE-5391-A1F8-BEF83274D143"><p> <b>Responding
       
   227 to high pressure events</b>  </p> <p>As the pointer state changes,
       
   228 the pressure value can be checked. When it passes over a threshold
       
   229 value, the Window Server responds appropriately to the client. </p
       
   230 > </li>
       
   231 </ul> </section>
       
   232 </conbody>
       
   233 <related-links>
       
   234 <link href="GUID-9AD75103-CD56-5279-B639-5CA2BBF979B5.dita"><linktext
       
   235 >Pointer States and Event                 Communication</linktext>
       
   236 </link>
       
   237 <link href="GUID-C60DC070-572B-5960-B394-550426FDB909.dita"><linktext
       
   238 >Advanced Pointer                 Tutorial</linktext></link>
       
   239 </related-links>
       
   240 </concept>
       
   241 <?Pub *0000011675?>