]> git.saurik.com Git - wxWidgets.git/blame_incremental - contrib/docs/latex/fl/cbgcupdatesmgr.tex
fixed bug in generation of thumb scroll events
[wxWidgets.git] / contrib / docs / latex / fl / cbgcupdatesmgr.tex
... / ...
CommitLineData
1%
2% automatically generated by HelpGen $Revision$ from
3% gcupdatesmgr.h at 21/Jan/02 21:14:19
4%
5
6
7\section{\class{cbGCUpdatesMgr}}\label{cbgcupdatesmgr}
8
9
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
80\wxheading{Derived from}
81
82\helpref{cbSimpleUpdatesMgr}{cbsimpleupdatesmgr}
83
84\wxheading{Include files}
85
86<wx/fl/gcupdatesmgr.h>
87
88\wxheading{Data structures}
89
90\latexignore{\rtfignore{\wxheading{Members}}}
91
92
93\membersection{cbGCUpdatesMgr::cbGCUpdatesMgr}\label{cbgcupdatesmgrcbgcupdatesmgr}
94
95\func{}{cbGCUpdatesMgr}{\void}
96
97Default constructor.
98
99
100\func{}{cbGCUpdatesMgr}{\param{wxFrameLayout* }{pPanel}}
101
102Constructor, taking a frame layout.
103
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
109Internal function for repositioning items.
110
111
112\membersection{cbGCUpdatesMgr::DoRepositionItems}\label{cbgcupdatesmgrdorepositionitems}
113
114\func{void}{DoRepositionItems}{\param{wxList\& }{items}}
115
116Internal function for repositioning items.
117
118
119\membersection{cbGCUpdatesMgr::OnStartChanges}\label{cbgcupdatesmgronstartchanges}
120
121\func{void}{OnStartChanges}{\void}
122
123Receives notifications from the frame layout.
124
125
126\membersection{cbGCUpdatesMgr::UpdateNow}\label{cbgcupdatesmgrupdatenow}
127
128\func{void}{UpdateNow}{\void}
129
130Refreshes the parts of the frame layout which need an update.
131