1// A diagram of the state machine found in gesture_sequence.cc 2// To generate a pdf: 3// dot -Tpdf -ooutput.pdf gestures.dot 4// 5// If you alter this diagram, please update: 6// sites.google.com/a/chromium.org/dev/developers/design-documents/aura/gesture-recognizer 7 8digraph G { 9ratio = 1; 10 11legend[label = "{ \ 12M : Move \l\ 13D : Down \l\ 14S : Stationary \l\ 15C : Cancel \l\ 16R : Release \l\ 17M_Delay : Move after a certain delay}" 18shape = record] 19 20GS_NO_GESTURE -> GS_PENDING_SYNTHETIC_CLICK [label= "D0"]; 21 22GS_PENDING_SYNTHETIC_CLICK -> GS_SCROLL [label= "M0\n S0"]; 23GS_PENDING_SYNTHETIC_CLICK -> GS_PENDING_SYNTHETIC_CLICK [label= "M0\n S0"]; 24GS_PENDING_SYNTHETIC_CLICK -> GS_NO_GESTURE [label= "C0\n R0"]; 25GS_PENDING_SYNTHETIC_CLICK -> GS_PENDING_SYNTHETIC_CLICK_NO_SCROLL [label= "M0"]; 26GS_PENDING_SYNTHETIC_CLICK -> GS_PENDING_TWO_FINGER_TAP [label= "D1"]; 27GS_PENDING_SYNTHETIC_CLICK -> GS_PENDING_PINCH [label= "D1"]; 28 29GS_PENDING_SYNTHETIC_CLICK_NO_SCROLL -> GS_PENDING_SYNTHETIC_CLICK_NO_SCROLL [label= "M0\n S0"]; 30GS_PENDING_SYNTHETIC_CLICK_NO_SCROLL -> GS_NO_GESTURE [label= "C0\n R0"]; 31GS_PENDING_SYNTHETIC_CLICK_NO_SCROLL -> GS_PENDING_TWO_FINGER_TAP [label= "D1"]; 32GS_PENDING_SYNTHETIC_CLICK_NO_SCROLL -> GS_PENDING_PINCH [label= "D1"]; 33 34GS_SCROLL -> GS_SCROLL [label= "M0"]; 35GS_SCROLL -> GS_NO_GESTURE [label= "C0\n R0\n"]; 36GS_SCROLL -> GS_PENDING_TWO_FINGER_TAP [label= "D1"]; 37 38GS_PENDING_PINCH -> GS_PENDING_PINCH [label= "M0\n M1"]; 39GS_PENDING_PINCH -> GS_PENDING_PINCH_NO_PINCH [label= "M0\n M1"]; 40GS_PENDING_PINCH -> GS_PINCH [label= "M0\n M1"]; 41GS_PENDING_PINCH -> GS_SCROLL [label= "R0\n R1\n C0\n C1"]; 42 43GS_PENDING_PINCH_NO_PINCH -> GS_PENDING_PINCH_NO_PINCH [label= "M0\n M1"]; 44GS_PENDING_PINCH_NO_PINCH -> GS_SCROLL [label= "R0\n R1\n C0\n C1"]; 45 46GS_PENDING_TWO_FINGER_TAP -> GS_PENDING_TWO_FINGER_TAP [label= "M0\n M1"]; 47GS_PENDING_TWO_FINGER_TAP -> GS_PENDING_TWO_FINGER_TAP_NO_PINCH [label= "M0\n M1"]; 48GS_PENDING_TWO_FINGER_TAP -> GS_PINCH [label= "M0\n M1"]; 49GS_PENDING_TWO_FINGER_TAP -> GS_PINCH [label= "M_Delay0\n M_Delay1"]; 50GS_PENDING_TWO_FINGER_TAP -> GS_PINCH [label= "D2"]; 51GS_PENDING_TWO_FINGER_TAP -> GS_SCROLL [label= "R0\n R1\n C0\n C1"]; 52 53GS_PENDING_TWO_FINGER_TAP_NO_PINCH -> GS_PENDING_TWO_FINGER_TAP_NO_PINCH [label= "M0\n M1"]; 54GS_PENDING_TWO_FINGER_TAP_NO_PINCH -> GS_SCROLL [label= "R0\n R1\n C0\n C1"]; 55 56GS_PINCH -> GS_PINCH [label= "M0\n M1"]; 57GS_PINCH -> GS_SCROLL [label= "C0\n R0\n C1\n R1"]; 58GS_PINCH -> GS_PENDING_THREE_FINGER_SWIPE [label= "D2"]; 59 60GS_PENDING_THREE_FINGER_SWIPE -> GS_PINCH [label= "C0\n R0\n C1\n R1\n C2\n R2"]; 61GS_PENDING_THREE_FINGER_SWIPE -> GS_PENDING_THREE_FINGER_SWIPE [label= "M0\n M1\n M2"]; 62}