Commit f39c98e4 authored by Taddeüs Kroes's avatar Taddeüs Kroes

Restructured section about event areas.

parent 32a381b9
...@@ -121,21 +121,20 @@ ...@@ -121,21 +121,20 @@
\architecture{ \architecture{
\node[block, below of=driver] (eventdriver) {Event driver} \node[block, below of=driver] (eventdriver) {Event driver}
edge[linefrom] node[right, near end] {driver-specific messages} (driver); edge[linefrom] node[right, near end] {driver-specific messages} (driver);
\node[block, below of=eventdriver] (area) {Areas} \node[block, below of=eventdriver] (area) {Event areas}
edge[linefrom] node[right] {events} (eventdriver); edge[linefrom] node[right] {events} (eventdriver);
\node[block, right of=area, xshift=7em, dashed] (analysis) {Gesture detection} \node[block, right of=area, xshift=7em, dashed] (analysis) {Gesture detection}
edge[linefrom, bend right=10] node[above] {events} (area) edge[linefrom, bend right=10] node[above] {events} (area)
edge[lineto, bend left=10] node[] {gestures} (area); edge[lineto, bend left=10] node[] {gestures} (area);
\node[block, below of=area] {Application} \node[block, below of=area] {Application}
edge[linefrom] node[right, near start] {gestures} (area); edge[linefrom] node[right, near start] {gestures through callback function} (area);
\group{eventdriver}{eventdriver}{analysis}{area}{Architecture} \group{eventdriver}{eventdriver}{analysis}{area}{Architecture}
} }
\caption{Extension of the diagram from figure \ref{fig:driverdiagram}, \caption{Extension of the diagram from figure \ref{fig:driverdiagram},
showing the position of areas in the architecture. An area delegate with event areas. An event area delegates events to a gesture detection
events to a gesture detection component that trigger gestures. The area component that triggers a gesture. The event area then calls the
then calls the handler that is bound to the gesture type by the handlers that are bound to the gesture type by the application.}
application.}
\label{fig:areadiagram} \label{fig:areadiagram}
\end{figure} \end{figure}
} }
...@@ -210,7 +209,7 @@ ...@@ -210,7 +209,7 @@
\def\righthand{\reflectbox{\includegraphics[width=50pt, angle=-45]{data/hand.png}}} \def\righthand{\reflectbox{\includegraphics[width=50pt, angle=-45]{data/hand.png}}}
\def\examplefigureone{ \def\examplefigureone{
\begin{figure}[h] \begin{figure}[h!]
\center \center
% TODO: draw finger touch points as circles with rotating arrow % TODO: draw finger touch points as circles with rotating arrow
\begin{tikzpicture} \begin{tikzpicture}
...@@ -259,11 +258,11 @@ ...@@ -259,11 +258,11 @@
\def\eventpropagationfigure{ \def\eventpropagationfigure{
\begin{figure}[h!] \begin{figure}[h!]
\center \center
\vspace{-2em}
\subfigure[An event is triggered in the white area. The event is first \subfigure[An event is triggered in the white area. The event is first
delegated to the white area from te gray area (2). After gesture delegated to the white area from te gray area (2). After gesture
detection, it is propagated back to the gray area (6) \emph{unless} detection, it is propagated back to the gray area (6) \emph{unless}
propagation has been stopped in the gesture tracker between (3) and (4).]{ propagation has been stopped in the rotation detection component
between (3) and (4).]{
\begin{tikzpicture}[node distance=5.5em] \begin{tikzpicture}[node distance=5.5em]
\draw node[draw=black, minimum width=190, minimum height=140] (screen) at (0,0) {}; \draw node[draw=black, minimum width=190, minimum height=140] (screen) at (0,0) {};
\draw node[fill=gray!50, draw=black!70, minimum height=100, minimum width=100] (screen) at (-0.1,-0.1) {}; \draw node[fill=gray!50, draw=black!70, minimum height=100, minimum width=100] (screen) at (-0.1,-0.1) {};
...@@ -271,15 +270,15 @@ ...@@ -271,15 +270,15 @@
\fill (0.4, 0.6) circle (0.15); \fill (0.4, 0.6) circle (0.15);
\draw node[block, yshift=-10em, xshift=-3em] (driver) {Event driver}; \draw node[block, yshift=-10em, xshift=-3em] (driver) {Event driver};
\draw node[block, below of=driver] (gray) {Gray area} \draw node[block, below of=driver] (gray) {Gray event area}
edge[linefrom] node[left] {1} (driver); edge[linefrom] node[left] {1} (driver);
\draw node[block, below of=gray] (white) {White area} \draw node[block, below of=gray] (white) {White event area}
edge[linefrom, bend left=15] node[left] {2} (gray) edge[linefrom, bend left=15] node[left] {2} (gray)
edge[lineto, bend right=15] node[right] {6} (gray); edge[lineto, bend right=15] node[right] {6} (gray);
\draw node[block, right of=white, xshift=4em] {\emph{rotation} tracker} \draw node[block, right of=white, xshift=4em] {rotation detection}
edge[linefrom, bend right=15] node[above] {3} (white) edge[linefrom, bend right=15] node[above] {3} (white)
edge[lineto, dotted, bend left=15] node[below] {4} (white); edge[lineto, dotted, bend left=15] node[below] {4} (white);
\draw node[block, right of=gray, xshift=4em] {\emph{rotation} tracker} \draw node[block, right of=gray, xshift=4em] {rotation detection}
edge[linefrom, bend right=15] node[above] {7} (gray) edge[linefrom, bend right=15] node[above] {7} (gray)
edge[lineto, dotted, bend left=15] node[below] {8} (gray); edge[lineto, dotted, bend left=15] node[below] {8} (gray);
\draw node[block, below of=white] {Application} \draw node[block, below of=white] {Application}
...@@ -288,8 +287,8 @@ ...@@ -288,8 +287,8 @@
\end{tikzpicture} \end{tikzpicture}
} }
\quad \quad
\subfigure[An event is triggered in the gray area, it does not even \subfigure[An event is triggered in the gray event area, it does not even
reach the white area.]{ reach the white event area.]{
\begin{tikzpicture}[node distance=5.5em] \begin{tikzpicture}[node distance=5.5em]
\draw node[draw=black, minimum width=190, minimum height=140] (screen) at (0,0) {}; \draw node[draw=black, minimum width=190, minimum height=140] (screen) at (0,0) {};
\draw node[fill=gray!50, draw=black!70, minimum height=100, minimum width=100] (screen) at (-0.1,-0.1) {}; \draw node[fill=gray!50, draw=black!70, minimum height=100, minimum width=100] (screen) at (-0.1,-0.1) {};
...@@ -297,11 +296,11 @@ ...@@ -297,11 +296,11 @@
\fill (-0.5, -0.7) circle (0.15); \fill (-0.5, -0.7) circle (0.15);
\draw node[block, yshift=-10em, xshift=-3em] (driver) {Event driver}; \draw node[block, yshift=-10em, xshift=-3em] (driver) {Event driver};
\draw node[block, below of=driver] (gray) {Gray area} \draw node[block, below of=driver] (gray) {Gray event area}
edge[linefrom] node[left] {1} (driver); edge[linefrom] node[left] {1} (driver);
\draw node[block, below of=gray] (white) {White area}; \draw node[block, below of=gray] (white) {White event area};
\draw node[block, right of=white, xshift=4em] {\emph{rotation} tracker}; \draw node[block, right of=white, xshift=4em] {rotation detection};
\draw node[block, right of=gray, xshift=4em] {\emph{rotation} tracker} \draw node[block, right of=gray, xshift=4em] {rotation detection}
edge[linefrom, bend right=15] node[above] {2} (gray) edge[linefrom, bend right=15] node[above] {2} (gray)
edge[lineto, dotted, bend left=15] node[below] {3} (gray); edge[lineto, dotted, bend left=15] node[below] {3} (gray);
\draw node[block, below of=white] {Application} \draw node[block, below of=white] {Application}
...@@ -310,7 +309,7 @@ ...@@ -310,7 +309,7 @@
} }
\caption{Two nested squares both listen to rotation gestures. The two \caption{Two nested squares both listen to rotation gestures. The two
figures both show a touch object triggering an event, which is figures both show a touch object triggering an event, which is
delegated through the area tree in the order indicated by the numbered delegated through the event area tree in the order indicated by the numbered
arrow labels. Normal arrows represent events, dotted arrows represent arrow labels. Normal arrows represent events, dotted arrows represent
gestures. Note that the dotted arrows only represent the path a gesture gestures. Note that the dotted arrows only represent the path a gesture
would travel in the tree \emph{if triggered}, not an actual triggered would travel in the tree \emph{if triggered}, not an actual triggered
......
...@@ -178,3 +178,10 @@ ...@@ -178,3 +178,10 @@
year = "2007" year = "2007"
} }
@misc{gtkeventpropagation,
author = "Reis, Christian",
note = "\url{faq.pygtk.org/index.py?file=faq03.011.htp\&req=show}",
title = "{How do signals and events propagate in GTK+?}",
year = "2002"
}
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment