view orgfiles/auto_update.muse @ 1214:e55499f7505a

Fix the issues with multiple framelines - For multiple framelines, user move mouse from one frameline to another, the frame is not showed correctly. - Old implementation always draw normal frame on the frameline where mouse just leaving. - It is fixed by detecting leave-notify event and removing hover mark. - When user active a frame on a frameline that is not what old active frame is at, the old active frame is not deactivated. - It is fixed by calling frameline.deactive() of a frameline when a frame is activated on another frameline.
author Thinker K.F. Li <thinker@codemud.net>
date Wed, 05 Jan 2011 17:56:14 +0800
parents 79e9edf4c00a
children
line wrap: on
line source

When an object change it's size, position, or components inside it,
other objects overlaid with the object in old or new positions should
be re-drawed.  The place that the object is resident in old or new
position should be cleared before re-drawing.  We need a system
to determine and track effected by the change of an object.

The graphics are grouped into groups in tree-hierachy.  One group
can be part of another group.  When a group's transformation matrix
is chagned, all child groups should be affected.  All it's members
should also be re-drawed.  All members of a group been changed are
linked into update list in their order.  The one more close to
tree root is more earier in the list.

Transformations can only apply to groups.  A tree of coord_t is
maintained to model relationships of groups.  Coord_t is coordination,
a transfromation from user space to upper level's space or devcie space.

coord_t must know graphics in respective group.  Once transformation
matrix of a coord_t object changed, it can ask members to
re-drawed them-self.

Changes of the transformation of a coord_t should be propagated to
child coord_t objects/groups.