diff options
author | tdresser@chromium.org <tdresser@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-02-13 21:04:32 +0000 |
---|---|---|
committer | tdresser@chromium.org <tdresser@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-02-13 21:04:32 +0000 |
commit | a2a220bbd154837c4f9e6eaf3e715cbe2ba9362c (patch) | |
tree | d8dddb5645fd21a645401805c7b77f98ef2e56bc | |
parent | 29f00629a996f94005de49a130d423f7a7d4b048 (diff) | |
download | chromium_src-a2a220bbd154837c4f9e6eaf3e715cbe2ba9362c.zip chromium_src-a2a220bbd154837c4f9e6eaf3e715cbe2ba9362c.tar.gz chromium_src-a2a220bbd154837c4f9e6eaf3e715cbe2ba9362c.tar.bz2 |
GestureRecognizer State Machine Diagram.
A GraphViz diagram of the state machine found in ui/aura/gestures/gesture_sequence.cc.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/9378013
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@121732 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | ui/aura/gestures/gesture_sequence.cc | 1 | ||||
-rw-r--r-- | ui/aura/gestures/gestures.dot | 31 |
2 files changed, 32 insertions, 0 deletions
diff --git a/ui/aura/gestures/gesture_sequence.cc b/ui/aura/gestures/gesture_sequence.cc index f946b25..471045d 100644 --- a/ui/aura/gestures/gesture_sequence.cc +++ b/ui/aura/gestures/gesture_sequence.cc @@ -181,6 +181,7 @@ GestureSequence::Gestures* GestureSequence::ProcessTouchEventForGesture( GestureState last_state = state_; + // NOTE: when modifying these state transitions, also update gestures.dot scoped_ptr<Gestures> gestures(new Gestures()); GesturePoint& point = GesturePointForEvent(event); point.UpdateValues(event); diff --git a/ui/aura/gestures/gestures.dot b/ui/aura/gestures/gestures.dot new file mode 100644 index 0000000..26d47ec --- /dev/null +++ b/ui/aura/gestures/gestures.dot @@ -0,0 +1,31 @@ +// A diagram of the state machine found in gesture_sequence.cc +// To generate a pdf: +// dot -Tpdf -ooutput.pdf gestures.dot +// +// TODO (tdresser) Add this to a public design document on chromium.org. + +digraph G { +ratio = 1; + +legend[label = "{ \ +M : Move \l\ +D : Down \l\ +S : Stationary \l\ +C : Cancel \l\ +R : Release \l}" +shape = record] + +subgraph none_pending { +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_SCROLL -> GS_SCROLL [label= "M0\n M1"]; +GS_SCROLL -> GS_NO_GESTURE [label= "C0\n R0\n C1\n R1"]; +GS_PENDING_SYNTHETIC_CLICK -> GS_PINCH [label= "D1"]; +GS_SCROLL -> GS_PINCH [label= "D0\n D1"]; +GS_PINCH -> GS_PINCH [label= "M0\n M1"]; +GS_PINCH -> GS_SCROLL [label= "C0\n R0\n C1\n R1"]; +} |