blob: 168d02f6fff07a78f31554427702c1a3ac9cc712 [file] [log] [blame]
// 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 -> GS_SYNTHETIC_CLICK_ABORTED [label= "M0"];
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_PENDING_SYNTHETIC_CLICK_NO_SCROLL -> GS_SYNTHETIC_CLICK_ABORTED [label= "M0"];
GS_SYNTHETIC_CLICK_ABORTED -> GS_NO_GESTURE [label= "C0\n R0"];
GS_SYNTHETIC_CLICK_ABORTED -> 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"];
}