]> git.saurik.com Git - wxWidgets.git/blame - contrib/docs/latex/fl/cbgcupdatesmgr.tex
fixed bug in generation of thumb scroll events
[wxWidgets.git] / contrib / docs / latex / fl / cbgcupdatesmgr.tex
CommitLineData
499b2ed8
JS
1%
2% automatically generated by HelpGen $Revision$ from
4cbc57f0 3% gcupdatesmgr.h at 21/Jan/02 21:14:19
499b2ed8
JS
4%
5
6
7\section{\class{cbGCUpdatesMgr}}\label{cbgcupdatesmgr}
8
9
4cbc57f0
JS
10This class implements optimized logic for refreshing
11the areas of frame layout that actually need to be updated.
12It is used as the default updates manager by wxFrameLayout.
13
14It is called 'Garbage Collecting' updates manager because
15its implementation tries to find out dependencies between bars,
16and to order them into a 'hierarchy'. This hierarchical sorting resembles
17the implementation of heap-garbage collectors, which resolve
18dependencies between references.
19
20Example: there are situations where the order in which the user
21moves windows does matter.
22
23\begin{verbatim}
24 case 1)
25 ------ ---
26 | A | |B|
27 ------ ---> | |
28 --- --- ------
29 |B| | A |
30 | | ------
31 ---
32 (future)
33 (past)
34\end{verbatim}
35
36Past/future positions of A and B windows completely overlap, i.e.
37depend on each other, and there is no solution for
38moving the windows without refreshing both of them
39-- we have a cyclic dependency here. The garbage collection algorithm will
40find this cyclic dependecy and will force refresh after movement.
41
42\begin{verbatim}
43 case 2)
44
45 ------
46 | A |
47 ------ --->
48 ---
49 |B| ------
50 | | | A |
51 --- ------
52 ---
53 |B|
54 | |
55 ---
56
57 (future)
58 (past)
59\end{verbatim}
60
61In this case past/future positions do not overlap, so
62it is enough only to move windows without refreshing them.
63Garbage collection will 'notice' this.
64
65There is also a third case, when overlapping is partial.
66In this case the refreshing can also be avoided by
67moving windows in the order of 'most-dependant' towards the
68'least-dependent'. GC handles this automatically, by
69sorting windows by their dependency-level (or 'hierarchy').
70
71See garbagec.h for more details of this method; garbagec.h/cpp
72implement sorting of generic dependencies and does not deal
73with graphical objects directly.
74
75Summary: garbage collection improves performance when complex or large
76windows are moved around, by reducing the number of repaints. It also helps
77to avoid dirty non-client areas of moved windows
78in some special cases of 'overlapping anomalies'.
79
499b2ed8
JS
80\wxheading{Derived from}
81
82\helpref{cbSimpleUpdatesMgr}{cbsimpleupdatesmgr}
83
4cbc57f0
JS
84\wxheading{Include files}
85
6e8515a3 86<wx/fl/gcupdatesmgr.h>
4cbc57f0 87
499b2ed8
JS
88\wxheading{Data structures}
89
90\latexignore{\rtfignore{\wxheading{Members}}}
91
92
93\membersection{cbGCUpdatesMgr::cbGCUpdatesMgr}\label{cbgcupdatesmgrcbgcupdatesmgr}
94
95\func{}{cbGCUpdatesMgr}{\void}
96
4cbc57f0
JS
97Default constructor.
98
499b2ed8
JS
99
100\func{}{cbGCUpdatesMgr}{\param{wxFrameLayout* }{pPanel}}
101
4cbc57f0
JS
102Constructor, taking a frame layout.
103
499b2ed8
JS
104
105\membersection{cbGCUpdatesMgr::AddItem}\label{cbgcupdatesmgradditem}
106
107\func{void}{AddItem}{\param{wxList\& }{itemList}, \param{cbBarInfo* }{pBar}, \param{cbDockPane* }{pPane}, \param{wxRect\& }{curBounds}, \param{wxRect\& }{prevBounds}}
108
4cbc57f0
JS
109Internal function for repositioning items.
110
499b2ed8
JS
111
112\membersection{cbGCUpdatesMgr::DoRepositionItems}\label{cbgcupdatesmgrdorepositionitems}
113
114\func{void}{DoRepositionItems}{\param{wxList\& }{items}}
115
4cbc57f0
JS
116Internal function for repositioning items.
117
499b2ed8
JS
118
119\membersection{cbGCUpdatesMgr::OnStartChanges}\label{cbgcupdatesmgronstartchanges}
120
121\func{void}{OnStartChanges}{\void}
122
4cbc57f0 123Receives notifications from the frame layout.
499b2ed8
JS
124
125
126\membersection{cbGCUpdatesMgr::UpdateNow}\label{cbgcupdatesmgrupdatenow}
127
128\func{void}{UpdateNow}{\void}
129
4cbc57f0 130Refreshes the parts of the frame layout which need an update.
499b2ed8 131