]> git.saurik.com Git - wxWidgets.git/blob - contrib/docs/latex/fl/framelayout.tex
Added makefile
[wxWidgets.git] / contrib / docs / latex / fl / framelayout.tex
1 %
2 % automatically generated by HelpGen $Revision$ from
3 % controlbar.h at 05/Jan/02 22:50:58
4 %
5
6
7 \section{\class{wxFrameLayout}}\label{wxframelayout}
8
9
10 wxFrameLayout manages containment and docking of control bars.
11 which can be docked along top, bottom, righ, or left side of the
12 parent frame
13
14 \wxheading{Derived from}
15
16 \helpref{wxEvtHandler}{wxevthandler}
17
18 \wxheading{Data structures}
19
20 \latexignore{\rtfignore{\wxheading{Members}}}
21
22
23 \membersection{wxFrameLayout::wxFrameLayout}\label{wxframelayoutwxframelayout}
24
25 \func{}{wxFrameLayout}{\param{wxWindow* }{pParentFrame}, \param{wxWindow* }{pFrameClient = NULL}, \param{bool }{activateNow = TRUE}}
26
27
28 \func{}{wxFrameLayout}{\void}
29
30 used only while serializing
31
32
33 \membersection{wxFrameLayout::\destruct{wxFrameLayout}}\label{wxframelayoutdtor}
34
35 \func{}{\destruct{wxFrameLayout}}{\void}
36
37 (doesn't destroy bar windows)
38
39
40 \membersection{wxFrameLayout::Activate}\label{wxframelayoutactivate}
41
42 \func{void}{Activate}{\void}
43
44 Can be called after some other layout has been deactivated,
45 and this one must "take over" the current contents of frame window.
46 Effectively hooks itself to the frame window, re-displays all not-hidden
47 bar-windows and repaints decorations
48
49
50 \membersection{wxFrameLayout::AddBar}\label{wxframelayoutaddbar}
51
52 \func{void}{AddBar}{\param{wxWindow* }{pBarWnd}, \param{const cbDimInfo\& }{dimInfo}, \param{int }{alignment = FL\_ALIGN\_TOP}, \param{int }{rowNo = 0}, \param{int }{columnPos = 0}, \param{const wxString\& }{name = "bar"}, \param{bool }{spyEvents = FALSE}, \param{int }{state = wxCBAR\_DOCKED\_HORIZONTALLY}}
53
54 Adds bar information to frame-layout, appearence of layout is not refreshed
55 immediately, RefreshNow() can be called if necessary.
56 NOTES:: argument pBarWnd can by NULL, resulting bar decorations to be drawn
57 around the empty rectangle (filled with default background colour).
58 Argument dimInfo, can be re-used for adding any number of bars, since
59 it is not used directly, instead it's members are copied. If dimensions-
60 handler is present, it's instance shared (reference counted). Dimension
61 handler should always be allocated on the heap!)
62
63
64 \membersection{wxFrameLayout::AddPlugin}\label{wxframelayoutaddplugin}
65
66 \func{void}{AddPlugin}{\param{wxClassInfo* }{pPlInfo}, \param{int }{paneMask = wxALL\_PANES}}
67
68 "Advanced" methods for plugin-configuration using their dynamic class information (e.g. CLASSINFO(pluginClass) ) first checks if plugin of the given class is already "hooked up",
69 if not, adds it to the top of plugins chain
70
71
72 \membersection{wxFrameLayout::AddPluginBefore}\label{wxframelayoutaddpluginbefore}
73
74 \func{void}{AddPluginBefore}{\param{wxClassInfo* }{pNextPlInfo}, \param{wxClassInfo* }{pPlInfo}, \param{int }{paneMask = wxALL\_PANES}}
75
76 first checks if plugin of the givne class already hooked,
77 if so, removes it, and then inserts it to the chain
78 before plugin of the class given by "pNextPlInfo"
79 NOTE:: this method is "handy" in some cases, where the order
80 of plugin-chain could be important, e.g. one plugin overrides
81 some functionallity of the other already hooked plugin,
82 thefore the former should be hooked before the one
83 who's functionality is being overriden
84
85
86 \membersection{wxFrameLayout::ApplyBarProperties}\label{wxframelayoutapplybarproperties}
87
88 \func{void}{ApplyBarProperties}{\param{cbBarInfo* }{pBar}}
89
90 reflects changes in bar information structure visually
91 (e.g. moves bar, changes it's dimension info, pane to which it is docked)
92
93
94 \membersection{wxFrameLayout::CanReparent}\label{wxframelayoutcanreparent}
95
96 \func{bool}{CanReparent}{\void}
97
98 NOTE:: reparenting of windows may NOT work on all platforms
99 (reparenting allows control-bars to be floated)
100
101
102 \membersection{wxFrameLayout::CaptureEventsForPane}\label{wxframelayoutcaptureeventsforpane}
103
104 \func{void}{CaptureEventsForPane}{\param{cbDockPane* }{toPane}}
105
106 called by plugins ( also captures/releases mouse in parent frame)
107
108
109 \membersection{wxFrameLayout::CaptureEventsForPlugin}\label{wxframelayoutcaptureeventsforplugin}
110
111 \func{void}{CaptureEventsForPlugin}{\param{cbPluginBase* }{pPlugin}}
112
113 captures/releases user-input event's for the given plugin
114 Input events are: mouse movement, mouse clicks, keyboard input
115
116
117 \membersection{wxFrameLayout::CreateCursors}\label{wxframelayoutcreatecursors}
118
119 \func{void}{CreateCursors}{\void}
120
121
122 \membersection{wxFrameLayout::CreateUpdatesManager}\label{wxframelayoutcreateupdatesmanager}
123
124 \func{cbUpdatesManagerBase*}{CreateUpdatesManager}{\void}
125
126 factory method
127
128
129 \membersection{wxFrameLayout::Deactivate}\label{wxframelayoutdeactivate}
130
131 \func{void}{Deactivate}{\void}
132
133 unhooks itself from frame window, and hides all not-hidden windows
134 NOTE:: two frame-layouts should not be active at the same time in the
135 same frame window, it would cause messy overlapping of bar windows
136 from both layouts
137
138
139 \membersection{wxFrameLayout::DestroyBarWindows}\label{wxframelayoutdestroybarwindows}
140
141 \func{void}{DestroyBarWindows}{\void}
142
143
144 \membersection{wxFrameLayout::DoSetBarState}\label{wxframelayoutdosetbarstate}
145
146 \func{void}{DoSetBarState}{\param{cbBarInfo* }{pBar}}
147
148
149 \membersection{wxFrameLayout::EnableFloating}\label{wxframelayoutenablefloating}
150
151 \func{void}{EnableFloating}{\param{bool }{enable = TRUE}}
152
153 (by default floating of control-bars is ON)
154
155
156 \membersection{wxFrameLayout::FindBarByName}\label{wxframelayoutfindbarbyname}
157
158 \func{cbBarInfo*}{FindBarByName}{\param{const wxString\& }{name}}
159
160 methods for access and modification of bars in frame layout
161
162
163 \membersection{wxFrameLayout::FindBarByWindow}\label{wxframelayoutfindbarbywindow}
164
165 \func{cbBarInfo*}{FindBarByWindow}{\param{const wxWindow* }{pWnd}}
166
167
168 \membersection{wxFrameLayout::FindPlugin}\label{wxframelayoutfindplugin}
169
170 \func{cbPluginBase*}{FindPlugin}{\param{wxClassInfo* }{pPlInfo}}
171
172 returns NULL, if plugin of the given class is not hooked
173
174
175 \membersection{wxFrameLayout::FirePluginEvent}\label{wxframelayoutfirepluginevent}
176
177 \func{void}{FirePluginEvent}{\param{cbPluginEvent\& }{event}}
178
179 plugin-related methods **should be used, instead of passing the event to ProcessEvent(..) method
180 of the top-plugin directly. This method checks if events are currently
181 captured and ensures that plugin-event is routed correctly.
182
183
184 \membersection{wxFrameLayout::ForwardMouseEvent}\label{wxframelayoutforwardmouseevent}
185
186 \func{void}{ForwardMouseEvent}{\param{wxMouseEvent\& }{event}, \param{cbDockPane* }{pToPane}, \param{int }{eventType}}
187
188 delegated from "bar-spy"
189
190
191 \membersection{wxFrameLayout::GetBarPane}\label{wxframelayoutgetbarpane}
192
193 \func{cbDockPane*}{GetBarPane}{\param{cbBarInfo* }{pBar}}
194
195 returns panes, to which the given bar belongs
196
197
198 \membersection{wxFrameLayout::GetBars}\label{wxframelayoutgetbars}
199
200 \func{BarArrayT\&}{GetBars}{\void}
201
202
203 \membersection{wxFrameLayout::GetClientHeight}\label{wxframelayoutgetclientheight}
204
205 \func{int}{GetClientHeight}{\void}
206
207
208 \membersection{wxFrameLayout::GetClientRect}\label{wxframelayoutgetclientrect}
209
210 \func{wxRect\&}{GetClientRect}{\void}
211
212
213 \membersection{wxFrameLayout::GetClientWidth}\label{wxframelayoutgetclientwidth}
214
215 \func{int}{GetClientWidth}{\void}
216
217
218 \membersection{wxFrameLayout::GetFrameClient}\label{wxframelayoutgetframeclient}
219
220 \func{wxWindow*}{GetFrameClient}{\void}
221
222
223 \membersection{wxFrameLayout::GetPane}\label{wxframelayoutgetpane}
224
225 \func{cbDockPane*}{GetPane}{\param{int }{alignment}}
226
227 see pane alignment types
228
229
230 \membersection{wxFrameLayout::GetPaneProperties}\label{wxframelayoutgetpaneproperties}
231
232 \func{void}{GetPaneProperties}{\param{cbCommonPaneProperties\& }{props}, \param{int }{alignment = FL\_ALIGN\_TOP}}
233
234 NOTE:: changing properties of panes, does not result immediate on-screen update
235
236
237 \membersection{wxFrameLayout::GetPanesArray}\label{wxframelayoutgetpanesarray}
238
239 \func{cbDockPane**}{GetPanesArray}{\void}
240
241 used by updates-managers
242
243
244 \membersection{wxFrameLayout::GetParentFrame}\label{wxframelayoutgetparentframe}
245
246 \func{wxWindow\&}{GetParentFrame}{\void}
247
248
249 \membersection{wxFrameLayout::GetPrevClientRect}\label{wxframelayoutgetprevclientrect}
250
251 \func{wxRect\&}{GetPrevClientRect}{\void}
252
253
254 \membersection{wxFrameLayout::GetTopPlugin}\label{wxframelayoutgettopplugin}
255
256 \func{cbPluginBase\&}{GetTopPlugin}{\void}
257
258 returns current top-level plugin (the one which receives events first,
259 with an exception if input-events are currently captured by some other plugin)
260
261
262 \membersection{wxFrameLayout::GetUpdatesManager}\label{wxframelayoutgetupdatesmanager}
263
264 \func{cbUpdatesManagerBase\&}{GetUpdatesManager}{\void}
265
266 NOTE:: in future ubdates-manager will become a normal plugin
267
268
269 \membersection{wxFrameLayout::HasTopPlugin}\label{wxframelayouthastopplugin}
270
271 \func{bool}{HasTopPlugin}{\void}
272
273
274 \membersection{wxFrameLayout::HideBarWindows}\label{wxframelayouthidebarwindows}
275
276 \func{void}{HideBarWindows}{\void}
277
278 also hides the client window if presents
279
280
281 \membersection{wxFrameLayout::HitTestPane}\label{wxframelayouthittestpane}
282
283 \func{bool}{HitTestPane}{\param{cbDockPane* }{pPane}, \param{int }{x}, \param{int }{y}}
284
285
286 \membersection{wxFrameLayout::HitTestPanes}\label{wxframelayouthittestpanes}
287
288 \func{cbDockPane*}{HitTestPanes}{\param{const wxRect\& }{rect}, \param{cbDockPane* }{pCurPane}}
289
290
291 \membersection{wxFrameLayout::HookUpToFrame}\label{wxframelayouthookuptoframe}
292
293 \func{void}{HookUpToFrame}{\void}
294
295
296 \membersection{wxFrameLayout::InverseVisibility}\label{wxframelayoutinversevisibility}
297
298 \func{void}{InverseVisibility}{\param{cbBarInfo* }{pBar}}
299
300
301 \membersection{wxFrameLayout::LocateBar}\label{wxframelayoutlocatebar}
302
303 \func{bool}{LocateBar}{\param{cbBarInfo* }{pBarInfo}, \param{cbRowInfo** }{ppRow}, \param{cbDockPane** }{ppPane}}
304
305
306 \membersection{wxFrameLayout::OnActivate}\label{wxframelayoutonactivate}
307
308 \func{void}{OnActivate}{\param{wxActivateEvent\& }{event}}
309
310
311 \membersection{wxFrameLayout::OnEraseBackground}\label{wxframelayoutonerasebackground}
312
313 \func{void}{OnEraseBackground}{\param{wxEraseEvent\& }{event}}
314
315
316 \membersection{wxFrameLayout::OnIdle}\label{wxframelayoutonidle}
317
318 \func{void}{OnIdle}{\param{wxIdleEvent\& }{event}}
319
320
321 \membersection{wxFrameLayout::OnKillFocus}\label{wxframelayoutonkillfocus}
322
323 \func{void}{OnKillFocus}{\param{wxFocusEvent\& }{event}}
324
325
326 \membersection{wxFrameLayout::OnLButtonDown}\label{wxframelayoutonlbuttondown}
327
328 \func{void}{OnLButtonDown}{\param{wxMouseEvent\& }{event}}
329
330
331 \membersection{wxFrameLayout::OnLButtonUp}\label{wxframelayoutonlbuttonup}
332
333 \func{void}{OnLButtonUp}{\param{wxMouseEvent\& }{event}}
334
335
336 \membersection{wxFrameLayout::OnLDblClick}\label{wxframelayoutonldblclick}
337
338 \func{void}{OnLDblClick}{\param{wxMouseEvent\& }{event}}
339
340
341 \membersection{wxFrameLayout::OnMouseMove}\label{wxframelayoutonmousemove}
342
343 \func{void}{OnMouseMove}{\param{wxMouseEvent\& }{event}}
344
345
346 \membersection{wxFrameLayout::OnPaint}\label{wxframelayoutonpaint}
347
348 \func{void}{OnPaint}{\param{wxPaintEvent\& }{event}}
349
350
351 \membersection{wxFrameLayout::OnRButtonDown}\label{wxframelayoutonrbuttondown}
352
353 \func{void}{OnRButtonDown}{\param{wxMouseEvent\& }{event}}
354
355
356 \membersection{wxFrameLayout::OnRButtonUp}\label{wxframelayoutonrbuttonup}
357
358 \func{void}{OnRButtonUp}{\param{wxMouseEvent\& }{event}}
359
360
361 \membersection{wxFrameLayout::OnSetFocus}\label{wxframelayoutonsetfocus}
362
363 \func{void}{OnSetFocus}{\param{wxFocusEvent\& }{event}}
364
365
366 \membersection{wxFrameLayout::OnSize}\label{wxframelayoutonsize}
367
368 \func{void}{OnSize}{\param{wxSizeEvent\& }{event}}
369
370 event handlers
371
372
373 \membersection{wxFrameLayout::PopAllPlugins}\label{wxframelayoutpopallplugins}
374
375 \func{void}{PopAllPlugins}{\void}
376
377
378 \membersection{wxFrameLayout::PopPlugin}\label{wxframelayoutpopplugin}
379
380 \func{void}{PopPlugin}{\void}
381
382
383 \membersection{wxFrameLayout::PositionClientWindow}\label{wxframelayoutpositionclientwindow}
384
385 \func{void}{PositionClientWindow}{\void}
386
387 called to set calculated layout to window objects
388
389
390 \membersection{wxFrameLayout::PositionPanes}\label{wxframelayoutpositionpanes}
391
392 \func{void}{PositionPanes}{\void}
393
394
395 \membersection{wxFrameLayout::PushDefaultPlugins}\label{wxframelayoutpushdefaultplugins}
396
397 \func{void}{PushDefaultPlugins}{\void}
398
399 default plugins are : cbPaneDrawPlugin, cbRowLayoutPlugin, cbBarDragPlugin,
400 cbAntiflickerPlugin, cbSimpleCustomizePlugin
401 this method is automatically invoked, if no plugins were found upon
402 fireing of the first plugin-event, i.e. wxFrameLayout *CONFIGURES* itself
403
404
405 \membersection{wxFrameLayout::PushPlugin}\label{wxframelayoutpushplugin}
406
407 \func{void}{PushPlugin}{\param{cbPluginBase* }{pPugin}}
408
409 similar to wxWindow's "push/pop-event-handler" methods, execept
410 that plugin is *deleted* upon "popping"
411
412
413 \membersection{wxFrameLayout::RecalcLayout}\label{wxframelayoutrecalclayout}
414
415 \func{void}{RecalcLayout}{\param{bool }{repositionBarsNow = FALSE}}
416
417 recalcualtes layout of panes, and all bars/rows in each pane
418
419
420 \membersection{wxFrameLayout::RedockBar}\label{wxframelayoutredockbar}
421
422 \func{bool}{RedockBar}{\param{cbBarInfo* }{pBar}, \param{const wxRect\& }{shapeInParent}, \param{cbDockPane* }{pToPane = NULL}, \param{bool }{updateNow = TRUE}}
423
424 can be used for repositioning already existing bars. The given bar is first removed
425 from the pane it currently belongs to, and inserted into the pane, which "matches"
426 the given recantular area. If pToPane is not NULL, bar is docked to this given pane
427 to dock the bar which is floated, use wxFrameLayout::DockBar(..) method
428
429
430 \membersection{wxFrameLayout::RefreshNow}\label{wxframelayoutrefreshnow}
431
432 \func{void}{RefreshNow}{\param{bool }{recalcLayout = TRUE}}
433
434 recalculates layoute and performs on-screen update of all panes
435
436
437 \membersection{wxFrameLayout::ReleaseEventsFromPane}\label{wxframelayoutreleaseeventsfrompane}
438
439 \func{void}{ReleaseEventsFromPane}{\param{cbDockPane* }{fromPane}}
440
441
442 \membersection{wxFrameLayout::ReleaseEventsFromPlugin}\label{wxframelayoutreleaseeventsfromplugin}
443
444 \func{void}{ReleaseEventsFromPlugin}{\param{cbPluginBase* }{pPlugin}}
445
446
447 \membersection{wxFrameLayout::RemoveBar}\label{wxframelayoutremovebar}
448
449 \func{void}{RemoveBar}{\param{cbBarInfo* }{pBar}}
450
451 removes bar from layout permanently, hides it's corresponding window if present
452
453
454 \membersection{wxFrameLayout::RemovePlugin}\label{wxframelayoutremoveplugin}
455
456 \func{void}{RemovePlugin}{\param{wxClassInfo* }{pPlInfo}}
457
458 checks if plugin of the given class is hooked, removes
459 it if found
460 @param pPlInfo class information structure for the plugin
461 @note
462 @see wxFrameLayout::Method
463
464
465 \membersection{wxFrameLayout::ReparentWindow}\label{wxframelayoutreparentwindow}
466
467 \func{void}{ReparentWindow}{\param{wxWindow* }{pChild}, \param{wxWindow* }{pNewParent}}
468
469
470 \membersection{wxFrameLayout::RepositionFloatedBar}\label{wxframelayoutrepositionfloatedbar}
471
472 \func{void}{RepositionFloatedBar}{\param{cbBarInfo* }{pBar}}
473
474
475 \membersection{wxFrameLayout::RouteMouseEvent}\label{wxframelayoutroutemouseevent}
476
477 \func{void}{RouteMouseEvent}{\param{wxMouseEvent\& }{event}, \param{int }{pluginEvtType}}
478
479
480 \membersection{wxFrameLayout::SetBarState}\label{wxframelayoutsetbarstate}
481
482 \func{void}{SetBarState}{\param{cbBarInfo* }{pBar}, \param{int }{newStatem}, \param{bool }{updateNow}}
483
484 changes bar's docking state (see possible control bar states)
485
486
487 \membersection{wxFrameLayout::SetFrameClient}\label{wxframelayoutsetframeclient}
488
489 \func{void}{SetFrameClient}{\param{wxWindow* }{pFrameClient}}
490
491 passes the client window (e.g. MDI-client frame) to be controled by
492 frame layout, the size and position of which should be adjusted to be
493 surrounded by controlbar panes, whenever frame is resized, or dimensions
494 of control panes change
495
496
497 \membersection{wxFrameLayout::SetMargins}\label{wxframelayoutsetmargins}
498
499 \func{void}{SetMargins}{\param{int }{top}, \param{int }{bottom}, \param{int }{left}, \param{int }{right}, \param{int }{paneMask = wxALL\_PANES}}
500
501 TODO:: margins should go into cbCommonPaneProperties in the future
502 NOTE:: this method should be called before any custom plugins are attached
503
504
505 \membersection{wxFrameLayout::SetPaneBackground}\label{wxframelayoutsetpanebackground}
506
507 \func{void}{SetPaneBackground}{\param{const wxColour\& }{colour}}
508
509
510 \membersection{wxFrameLayout::SetPaneProperties}\label{wxframelayoutsetpaneproperties}
511
512 \func{void}{SetPaneProperties}{\param{const cbCommonPaneProperties\& }{props}, \param{int }{paneMask = wxALL\_PANES}}
513
514
515 \membersection{wxFrameLayout::SetTopPlugin}\label{wxframelayoutsettopplugin}
516
517 \func{void}{SetTopPlugin}{\param{cbPluginBase* }{pPlugin}}
518
519 hooking custom plugins to frame layout
520 NOTE:: when hooking one plugin on top of the other -
521 use SetNextHandler(..) or similar methods
522 of wxEvtHandler class to compose the chain of plugins,
523 than pass the left-most handler in this chain to
524 the above methods (assuming that events are delegated
525 from left-most towards right-most handler)
526 NOTE2:: this secenario is very inconvenient and "low-level",
527 use Add/Push/PopPlugin methods instead
528
529
530 \membersection{wxFrameLayout::SetUpdatesManager}\label{wxframelayoutsetupdatesmanager}
531
532 \func{void}{SetUpdatesManager}{\param{cbUpdatesManagerBase* }{pUMgr}}
533
534 destroys the previous manager if any, set the new one
535
536
537 \membersection{wxFrameLayout::ShowFloatedWindows}\label{wxframelayoutshowfloatedwindows}
538
539 \func{void}{ShowFloatedWindows}{\param{bool }{show}}
540
541
542 \membersection{wxFrameLayout::UnhookFromFrame}\label{wxframelayoutunhookfromframe}
543
544 \func{void}{UnhookFromFrame}{\void}
545