summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortdresser@chromium.org <tdresser@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-02-13 21:04:32 +0000
committertdresser@chromium.org <tdresser@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-02-13 21:04:32 +0000
commita2a220bbd154837c4f9e6eaf3e715cbe2ba9362c (patch)
treed8dddb5645fd21a645401805c7b77f98ef2e56bc
parent29f00629a996f94005de49a130d423f7a7d4b048 (diff)
downloadchromium_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.cc1
-rw-r--r--ui/aura/gestures/gestures.dot31
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"];
+}