diff -r 4816d766a08a -r f345bda72bc4 Symbian3/PDK/Source/GUID-9126A296-0301-4077-A183-3D703F77C548.dita --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Symbian3/PDK/Source/GUID-9126A296-0301-4077-A183-3D703F77C548.dita Tue Mar 30 11:56:28 2010 +0100 @@ -0,0 +1,90 @@ + + + + + +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