2 % automatically generated by HelpGen $Revision$ from
3 % gcupdatesmgr.h at 21/Jan/02 21:14:19
7 \section{\class{cbGCUpdatesMgr
}}\label{cbgcupdatesmgr
}
10 This class implements optimized logic for refreshing
11 the areas of frame layout that actually need to be updated.
12 It is used as the default updates manager by wxFrameLayout.
14 It is called 'Garbage Collecting' updates manager because
15 its implementation tries to find out dependencies between bars,
16 and to order them into a 'hierarchy'. This hierarchical sorting resembles
17 the implementation of heap-garbage collectors, which resolve
18 dependencies between references.
20 Example: there are situations where the order in which the user
21 moves windows does matter.
36 Past/future positions of A and B windows completely overlap, i.e.
37 depend on each other, and there is no solution for
38 moving the windows without refreshing both of them
39 -- we have a cyclic dependency here. The garbage collection algorithm will
40 find this cyclic dependecy and will force refresh after movement.
61 In this case past/future positions do not overlap, so
62 it is enough only to move windows without refreshing them.
63 Garbage collection will 'notice' this.
65 There is also a third case, when overlapping is partial.
66 In this case the refreshing can also be avoided by
67 moving windows in the order of 'most-dependant' towards the
68 'least-dependent'. GC handles this automatically, by
69 sorting windows by their dependency-level (or 'hierarchy').
71 See garbagec.h for more details of this method; garbagec.h/cpp
72 implement sorting of generic dependencies and does not deal
73 with graphical objects directly.
75 Summary: garbage collection improves performance when complex or large
76 windows are moved around, by reducing the number of repaints. It also helps
77 to avoid dirty non-client areas of moved windows
78 in some special cases of 'overlapping anomalies'.
80 \wxheading{Derived from
}
82 \helpref{cbSimpleUpdatesMgr
}{cbsimpleupdatesmgr
}
84 \wxheading{Include files
}
88 \wxheading{Data structures
}
90 \latexignore{\rtfignore{\wxheading{Members
}}}
93 \membersection{cbGCUpdatesMgr::cbGCUpdatesMgr
}\label{cbgcupdatesmgrcbgcupdatesmgr
}
95 \func{}{cbGCUpdatesMgr
}{\void}
100 \func{}{cbGCUpdatesMgr
}{\param{wxFrameLayout*
}{pPanel
}}
102 Constructor, taking a frame layout.
105 \membersection{cbGCUpdatesMgr::AddItem
}\label{cbgcupdatesmgradditem
}
107 \func{void
}{AddItem
}{\param{wxList\&
}{itemList
},
\param{cbBarInfo*
}{pBar
},
\param{cbDockPane*
}{pPane
},
\param{wxRect\&
}{curBounds
},
\param{wxRect\&
}{prevBounds
}}
109 Internal function for repositioning items.
112 \membersection{cbGCUpdatesMgr::DoRepositionItems
}\label{cbgcupdatesmgrdorepositionitems
}
114 \func{void
}{DoRepositionItems
}{\param{wxList\&
}{items
}}
116 Internal function for repositioning items.
119 \membersection{cbGCUpdatesMgr::OnStartChanges
}\label{cbgcupdatesmgronstartchanges
}
121 \func{void
}{OnStartChanges
}{\void}
123 Receives notifications from the frame layout.
126 \membersection{cbGCUpdatesMgr::UpdateNow
}\label{cbgcupdatesmgrupdatenow
}
128 \func{void
}{UpdateNow
}{\void}
130 Refreshes the parts of the frame layout which need an update.