| // A diagram of the state machine found in gesture_sequence.cc |
| // To generate a pdf: |
| // dot -Tpdf -ooutput.pdf gestures.dot |
| // |
| // If you alter this diagram, please update: |
| // sites.google.com/a/chromium.org/dev/developers/design-documents/aura/gesture-recognizer |
| |
| digraph G { |
| ratio = 1; |
| |
| legend[label = "{ \ |
| M : Move \l\ |
| D : Down \l\ |
| S : Stationary \l\ |
| C : Cancel \l\ |
| R : Release \l\ |
| M_Delay : Move after a certain delay}" |
| shape = record] |
| |
| GS_NO_GESTURE -> GS_PENDING_SYNTHETIC_CLICK [label= "D0"]; |
| |
| GS_PENDING_SYNTHETIC_CLICK -> GS_SCROLL [label= "M0\n S0"]; |
| GS_PENDING_SYNTHETIC_CLICK -> GS_PENDING_SYNTHETIC_CLICK [label= "M0\n S0"]; |
| GS_PENDING_SYNTHETIC_CLICK -> GS_NO_GESTURE [label= "C0\n R0"]; |
| GS_PENDING_SYNTHETIC_CLICK -> GS_PENDING_SYNTHETIC_CLICK_NO_SCROLL [label= "M0"]; |
| GS_PENDING_SYNTHETIC_CLICK -> GS_PENDING_TWO_FINGER_TAP [label= "D1"]; |
| GS_PENDING_SYNTHETIC_CLICK -> GS_PENDING_PINCH [label= "D1"]; |
| |
| GS_PENDING_SYNTHETIC_CLICK_NO_SCROLL -> GS_PENDING_SYNTHETIC_CLICK_NO_SCROLL [label= "M0\n S0"]; |
| GS_PENDING_SYNTHETIC_CLICK_NO_SCROLL -> GS_NO_GESTURE [label= "C0\n R0"]; |
| GS_PENDING_SYNTHETIC_CLICK_NO_SCROLL -> GS_PENDING_TWO_FINGER_TAP [label= "D1"]; |
| GS_PENDING_SYNTHETIC_CLICK_NO_SCROLL -> GS_PENDING_PINCH [label= "D1"]; |
| |
| GS_SCROLL -> GS_SCROLL [label= "M0"]; |
| GS_SCROLL -> GS_NO_GESTURE [label= "C0\n R0\n"]; |
| GS_SCROLL -> GS_PENDING_TWO_FINGER_TAP [label= "D1"]; |
| |
| GS_PENDING_PINCH -> GS_PENDING_PINCH [label= "M0\n M1"]; |
| GS_PENDING_PINCH -> GS_PENDING_PINCH_NO_PINCH [label= "M0\n M1"]; |
| GS_PENDING_PINCH -> GS_PINCH [label= "M0\n M1"]; |
| GS_PENDING_PINCH -> GS_SCROLL [label= "R0\n R1\n C0\n C1"]; |
| |
| GS_PENDING_PINCH_NO_PINCH -> GS_PENDING_PINCH_NO_PINCH [label= "M0\n M1"]; |
| GS_PENDING_PINCH_NO_PINCH -> GS_SCROLL [label= "R0\n R1\n C0\n C1"]; |
| |
| GS_PENDING_TWO_FINGER_TAP -> GS_PENDING_TWO_FINGER_TAP [label= "M0\n M1"]; |
| GS_PENDING_TWO_FINGER_TAP -> GS_PENDING_TWO_FINGER_TAP_NO_PINCH [label= "M0\n M1"]; |
| GS_PENDING_TWO_FINGER_TAP -> GS_PINCH [label= "M0\n M1"]; |
| GS_PENDING_TWO_FINGER_TAP -> GS_PINCH [label= "M_Delay0\n M_Delay1"]; |
| GS_PENDING_TWO_FINGER_TAP -> GS_PINCH [label= "D2"]; |
| GS_PENDING_TWO_FINGER_TAP -> GS_SCROLL [label= "R0\n R1\n C0\n C1"]; |
| |
| GS_PENDING_TWO_FINGER_TAP_NO_PINCH -> GS_PENDING_TWO_FINGER_TAP_NO_PINCH [label= "M0\n M1"]; |
| GS_PENDING_TWO_FINGER_TAP_NO_PINCH -> GS_SCROLL [label= "R0\n R1\n C0\n C1"]; |
| |
| GS_PINCH -> GS_PINCH [label= "M0\n M1"]; |
| GS_PINCH -> GS_SCROLL [label= "C0\n R0\n C1\n R1"]; |
| GS_PINCH -> GS_PENDING_THREE_FINGER_SWIPE [label= "D2"]; |
| |
| GS_PENDING_THREE_FINGER_SWIPE -> GS_PINCH [label= "C0\n R0\n C1\n R1\n C2\n R2"]; |
| GS_PENDING_THREE_FINGER_SWIPE -> GS_PENDING_THREE_FINGER_SWIPE [label= "M0\n M1\n M2"]; |
| } |