This page last changed on Sep 21, 2009 by juha.

Adding some notes on the gesture support that was mentioned in the earlier proposal for new panel UI XML schema.

Currently the iPhone and Android panels have a hard-coded horizontal finger-swipe gesture to switch between screens. The new XML UI generalizes navigation between screens and it's worthwhile trying to generalize gesture use as well.

Definition

A gesture could be mapped to either a command or navigation element (relevant note here is the separation of UI view elements from controls). In the existing hard-coded swipe example, the behavior could be externalized on a screen definition as:


PSEUDO:

  <gesture type = "swipe-left-to-right">
    <navigate toScreen = "next"/>
  </gesture>

  <gesture type = "swipe-right-to-left">
    <navigate toScreen = "previous"/>
  </gesture>

This makes the current gesture navigation explicit in the screen definition. What it does is enable the behavior to be modified depending on which screen is displayed, and additional gestures may be added to specific screens. Gestures can also be mapped to commands sent to the controller:


PSEUDO:

  <gesture type = "swipe-bottom-to-top">
    <command id = "1"/>   <!-- CHANNEL UP -->
  </gesture>

  <gesture type = "swipe-top-to-bottom">
    <command id = "2"/>   <!-- CHANNEL DOWN -->
  </gesture>

Possible Gestures

What's left up to discussion is the types of gestures we want to support. Anticipating this list will be near infinite Need to investigate a mechanism to add new gestures once initial implementations are in place.

The obvious candidates are:

  • horizontal swipe from left-to-right and right-to-left
  • vertical swipe from top-to-bottom and bottom-to-top

Others that have been discussed:

  • circle/spiral clockwise and counter-clockwise
  • swipe towards screen corners
  • multi-touch (two-finger, etc.) swipes
  • different types of tap combination

Support in Panels

Not expecting all panels necessarily to be able to support gestures (web console implementations for example). Relevant here is the ability to support multiple UI profiles that was most recently discussed here.

Document generated by Confluence on Jun 05, 2016 09:31