annotate dox/arch.h @ 122:17e97e92b76e

Encapsulate X_MB_runtime_t and support X keyboard events.
author Thinker K.F. Li <thinker@branda.to>
date Mon, 15 Sep 2008 20:33:06 +0800
parents 8feb89b19619
children e89512d6fa0a
rev   line source
111
8feb89b19619 More doxy
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
1 /*! \page archi Internal Architecture
8feb89b19619 More doxy
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
2 *
8feb89b19619 More doxy
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
3 * \image html core.png
8feb89b19619 More doxy
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
4 * Above graphic is relationship among major objects of MadButterfly.
8feb89b19619 More doxy
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
5 * \ref redraw_man_t, redraw manager, is supposed to manage graphic elements,
8feb89b19619 More doxy
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
6 * shapes, and decide when and who to redraw on the output screen.
8feb89b19619 More doxy
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
7 *
8feb89b19619 More doxy
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
8 * \ref shape_t is base-type for all graphic objects. It can be a path,
8feb89b19619 More doxy
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
9 * a text, a ellipse, ..., or an image. When the states or attributes of
8feb89b19619 More doxy
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
10 * an graphic
8feb89b19619 More doxy
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
11 * object changed, managing redraw_man_t, the one that manages the graphic
8feb89b19619 More doxy
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
12 * object, will be notified. The redraw_man_t will schedule a redrawing
8feb89b19619 More doxy
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
13 * for every
8feb89b19619 More doxy
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
14 * dirty objects, changed ones, and relative objects. The relative objects
8feb89b19619 More doxy
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
15 * are objects effected by changed ones. For example, part of a relative
8feb89b19619 More doxy
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
16 * object may be hidden before changing, but it is re-explored after chaning.
8feb89b19619 More doxy
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
17 * The explored part of the object must be redrawed.
8feb89b19619 More doxy
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
18 *
8feb89b19619 More doxy
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
19 * The shape of shape objects are variable from type to type. To simplize
8feb89b19619 More doxy
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
20 * the problem, we use a rectangle to model the area occupied by an object.
8feb89b19619 More doxy
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
21 * \ref geo_t is the one used to model the rectangle. Shape objects should
8feb89b19619 More doxy
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
22 * update associated \ref geo_t objects to reflect changing of them-self.
8feb89b19619 More doxy
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
23 *
8feb89b19619 More doxy
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
24 * \ref coord_t is used to model transformation in coordinate system.
8feb89b19619 More doxy
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
25 * A \ref coord_t is actually an transform matrix with additional
8feb89b19619 More doxy
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
26 * informations. \ref coord_t
8feb89b19619 More doxy
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
27 * objects are organized as a tree according hierachy of group tags in
8feb89b19619 More doxy
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
28 * a SVG file.
8feb89b19619 More doxy
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
29 *
8feb89b19619 More doxy
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
30 * Colors or patterns used to stroke or fill shapes are described
8feb89b19619 More doxy
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
31 * by \ref paint_t . Every shape object has a paint, but a paint object
8feb89b19619 More doxy
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
32 * can be used by multiple shape objects. Once a paint is changed, all
8feb89b19619 More doxy
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
33 * objects that associate with the paint are dirty. They will be scheduled
8feb89b19619 More doxy
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
34 * by associated \ref redraw_man_t object to update graphics on
8feb89b19619 More doxy
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
35 * output screen.
8feb89b19619 More doxy
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
36 *
8feb89b19619 More doxy
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
37 */