diff -r d4524d6a4472 -r 5072524fcc79 Symbian3/SDK/Source/GUID-9126A296-0301-4077-A183-3D703F77C548.dita --- a/Symbian3/SDK/Source/GUID-9126A296-0301-4077-A183-3D703F77C548.dita Wed Jun 16 10:24:13 2010 +0100 +++ b/Symbian3/SDK/Source/GUID-9126A296-0301-4077-A183-3D703F77C548.dita Fri Jul 02 12:51:36 2010 +0100 @@ -1,90 +1,113 @@ - - - - - -Multi-Touch -Support in the Emulator OverviewThis topic provides an overview of multi-touch support in the emulator. -Two mice are used to provide two independent pointer positions. The emulator -responds to the mice’s individual button-clicks, moves, and mouse wheel scrolls -as if two human fingers are moving, touching or hovering over the screen. -

The emulator can be extended to support more than two mice or other pointer -devices.

-

Variant: ScreenPlay. Target -audience: Application developers.

-

The following figure shows two Windows pointers on the emulator screen, -each representing a mouse device. The ordinal integer (starting from 0) beside -each pointer is the unique device identifier. The position of each mouse on -the screen is represented by the X and Y coordinates. The pressure (a positive -value) and proximity (a negative value) information captured by the mouse -wheel is represented by the Z coordinate. Notice that the status bar shows -the identifier and the dynamic X, Y and Z values of each pointer.

- -Two pointers are displayed in the emulator - - -

The delivery of pointer events from the emulator driver to the Window Server -is the same in the multi-touch environment as in the single pointer environment. -This means the raw events for a mouse move, button click and mouse wheel movement -are delivered to the Window Server as usual. Each mouse has a unique device -identifier, which makes it possible to ascertain which mouse the events relate -to. The raw events for each individual mouse include the following:

- -
Pressure -and proximity emulation

The Z coordinate value is used to represent -the pressure and proximity to the screen. In the emulator, the Z value is -captured and tuned by the mouse wheel movement.

    -
  • Z < 0 indicates the proximity of the device from the screen.

  • -
  • Z > 0 indicates pressure.

  • -

See Advanced -Pointer Overview for more information about pressure and proximity.

The -mouse wheel combines the features of a wheel and a mouse button. The wheel -has discrete, evenly spaced notches. Rotating the wheel backwards or forwards -has the effect of changing the pressure or proximity.

    -
  • When the mouse wheel is rotated, a device-specific message is sent -to the emulator window that has focus as each notch is encountered.

  • -
  • The Z coordinate is initiated as 0. Then when the wheel is moved forward, -the Z value enters the pressure range and increases by one pressure step. -When the wheel is moved backward, the Z value enters the proximity range and -decreases by one proximity step.

    The pressure or proximity step can -be customized in the epoc.ini file. See Enabling -Multi-Touch in the Emulator Tutorial for more information.

  • -
  • When the Z value is in the pressure range (Z > 0), moving the wheel -forward by one notch increases Z by one pressure step. Moving the wheel backward -by one notch decreases Z by one pressure step, until Z returns to 0.

  • -
  • When the Z value is in the proximity range (Z < 0), moving the wheel -backward by one notch decreases Z by one proximity step. Moving the wheel -forward by one notch increases Z by one proximity step, until Z returns to -0.

  • -
  • There are limits to the values of the Z coordinate. This -means that the Symbian emulator does not allow Z to exceed the upper boundary HALData::EPointer3DMaxPressure (a -positive value) and lower boundary HALData::EPointer3DMaxProximity (a -negative value). If Z is at the lower boundary, when the mouse wheel is moved -backward next time, Z does not change. A new Out of Range pointer -event is generated and sent to the Window Server. Similarly when Z is at the -upper boundary, Z does not change when the mouse wheel is moved forward.

  • -
  • When the mouse button down or up event (TRawEvent::EButton1Down or TRawEvent::EButton1Up) -is generated, Z is reset to 0.

  • -
-
-Advanced -Pointers -Enabling -Multi-Touch in the Emulator Tutorial -
\ No newline at end of file + + + + +Support for Multiple Pointers in the Emulator Overview +This topic provides an overview of support for multiple +pointers in the emulator. Two mice are used to provide two independent +pointer positions. The emulator responds to the mice’s individual +button-clicks, moves, and mouse wheel scrolls as if two human fingers +are moving, touching or hovering over the screen. + + + + +

The emulator can be extended to support more than two mice or other +pointer devices.

+

Variant: ScreenPlay. Target audience: Application developers.

+

The following figure shows two Windows pointers on the emulator +screen, each representing a mouse device. The ordinal integer (starting +from 0) beside each pointer is the unique device identifier. The position +of each mouse on the screen is represented by the X and Y coordinates. +The pressure (a positive value) and proximity (a negative value) information +captured by the mouse wheel is represented by the Z coordinate. Notice +that the status bar shows the identifier and the dynamic X, Y and +Z values of each pointer.

+ +Two pointers are displayed in the emulator + +

The delivery of pointer events from the emulator driver to the +Window Server is the same when there are multiple pointers as in the +single pointer environment. This means the raw events for a mouse +move, button click and mouse wheel movement are delivered to the Window +Server as usual. Each mouse has a unique device identifier, which +makes it possible to ascertain which mouse the events relate to. The +raw events for each individual mouse include the following:

+ +
Pressure and proximity emulation

The Z coordinate +value is used to represent the pressure and proximity to the screen. +In the emulator, the Z value is captured and tuned by the mouse wheel +movement.

    +
  • Z < 0 indicates the proximity of the device from the screen.

  • +
  • Z > 0 indicates pressure.

  • +

See Advanced Pointer Overview for more information about pressure +and proximity.

The mouse wheel combines the features of a wheel +and a mouse button. The wheel has discrete, evenly spaced notches. +Rotating the wheel backwards or forwards has the effect of changing +the pressure or proximity.

    +
  • When the mouse wheel is rotated, a device-specific message +is sent to the emulator window that has focus as each notch is encountered.

  • +
  • The Z coordinate is initiated as 0. Then when the wheel is +moved forward, the Z value enters the pressure range and increases +by one pressure step. When the wheel is moved backward, the Z value +enters the proximity range and decreases by one proximity step.

    The pressure or proximity step can be customized in the epoc.ini file. See Enabling Multiple +Pointers in the Emulator Tutorial for more information.

  • +
  • When the Z value is in the pressure range (Z > 0), moving the +wheel forward by one notch increases Z by one pressure step. Moving +the wheel backward by one notch decreases Z by one pressure step, +until Z returns to 0.

  • +
  • When the Z value is in the proximity range (Z < 0), moving +the wheel backward by one notch decreases Z by one proximity step. +Moving the wheel forward by one notch increases Z by one proximity +step, until Z returns to 0.

  • +
  • There are limits to the values of the Z coordinate. This means +that the Symbian emulator does not allow Z to exceed the upper boundary HALData::EPointer3DMaxPressure (a positive +value) and lower boundary HALData::EPointer3DMaxProximity (a negative +value). If Z is at the lower boundary, when the mouse wheel is moved +backward next time, Z does not change. A new Out of Range pointer event is generated and sent to the Window Server. Similarly +when Z is at the upper boundary, Z does not change when the mouse +wheel is moved forward.

  • +
  • When the mouse button down or up event (TRawEvent::EButton1Down or TRawEvent::EButton1Up) is generated, Z is reset +to 0.

  • +
+
+ +Advanced Pointers +Enabling Multiple Pointers in the Emulator Tutorial + + +
+