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 8 digraph G { 9 ratio = 1; 10 11 legend[label = "{ \ 12 M : Move \l\ 13 D : Down \l\ 14 S : Stationary \l\ 15 C : Cancel \l\ 16 R : Release \l\ 17 M_Delay : Move after a certain delay}" 18 shape = record] 19 20 subgraph none_pending { 21 GS_NO_GESTURE -> GS_PENDING_SYNTHETIC_CLICK [label= "D0"]; 22 GS_PENDING_SYNTHETIC_CLICK -> GS_SCROLL [label= "M0\n S0"]; 23 GS_PENDING_SYNTHETIC_CLICK -> GS_PENDING_SYNTHETIC_CLICK [label= "M0\n S0"]; 24 GS_PENDING_SYNTHETIC_CLICK -> GS_NO_GESTURE [label= "C0\n R0"]; 25 } 26 27 GS_SCROLL -> GS_SCROLL [label= "M0"]; 28 GS_SCROLL -> GS_NO_GESTURE [label= "C0\n R0\n"]; 29 GS_PENDING_SYNTHETIC_CLICK -> GS_PENDING_TWO_FINGER_TAP [label= "D1"]; 30 GS_SCROLL -> GS_PENDING_TWO_FINGER_TAP [label= "D1"]; 31 GS_PENDING_TWO_FINGER_TAP -> GS_PINCH [label= "M0\n M1"]; 32 GS_PENDING_TWO_FINGER_TAP -> GS_PINCH [label= "M_Delay0\n M_Delay1"]; 33 GS_PENDING_TWO_FINGER_TAP -> GS_PINCH [label= "D2"]; 34 GS_PENDING_TWO_FINGER_TAP -> GS_SCROLL [label= "R0\n R1\n C0\n C1"]; 35 GS_PINCH -> GS_PINCH [label= "M0\n M1"]; 36 GS_PINCH -> GS_SCROLL [label= "C0\n R0\n C1\n R1"]; 37 38 GS_PINCH -> GS_PENDING_THREE_FINGER_SWIPE [label= "D2"]; 39 GS_PENDING_THREE_FINGER_SWIPE -> GS_PINCH [label= "C0\n R0\n C1\n R1\n C2\n R2"]; 40 GS_PENDING_THREE_FINGER_SWIPE -> GS_PENDING_THREE_FINGER_SWIPE [label= "M0\n M1\n M2"]; 41 } 42