]> git.saurik.com Git - wxWidgets.git/blame - contrib/docs/latex/fl/framelayout.tex
Fixed a typemap.
[wxWidgets.git] / contrib / docs / latex / fl / framelayout.tex
CommitLineData
499b2ed8
JS
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
10wxFrameLayout 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
30used 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
44Can be called after some other layout has been deactivated,
45and this one must "take over" the current contents of frame window.
46Effectively hooks itself to the frame window, re-displays all not-hidden
47bar-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
54Adds bar information to frame-layout, appearence of layout is not refreshed
55immediately, RefreshNow() can be called if necessary.
56NOTES:: argument pBarWnd can by NULL, resulting bar decorations to be drawn
57around the empty rectangle (filled with default background colour).
58Argument dimInfo, can be re-used for adding any number of bars, since
59it is not used directly, instead it's members are copied. If dimensions-
60handler is present, it's instance shared (reference counted). Dimension
61handler 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",
69if 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
76first checks if plugin of the givne class already hooked,
77if so, removes it, and then inserts it to the chain
78before plugin of the class given by "pNextPlInfo"
79NOTE:: this method is "handy" in some cases, where the order
80of plugin-chain could be important, e.g. one plugin overrides
81some functionallity of the other already hooked plugin,
82thefore the former should be hooked before the one
83who's functionality is being overriden
84
85
86\membersection{wxFrameLayout::ApplyBarProperties}\label{wxframelayoutapplybarproperties}
87
88\func{void}{ApplyBarProperties}{\param{cbBarInfo* }{pBar}}
89
90reflects 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
98NOTE:: 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
106called 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
113captures/releases user-input event's for the given plugin
114Input 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
126factory method
127
128
129\membersection{wxFrameLayout::Deactivate}\label{wxframelayoutdeactivate}
130
131\func{void}{Deactivate}{\void}
132
133unhooks itself from frame window, and hides all not-hidden windows
134NOTE:: two frame-layouts should not be active at the same time in the
135same frame window, it would cause messy overlapping of bar windows
136from 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
160methods 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
172returns 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
179plugin-related methods **should be used, instead of passing the event to ProcessEvent(..) method
180of the top-plugin directly. This method checks if events are currently
181captured 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
188delegated from "bar-spy"
189
190
191\membersection{wxFrameLayout::GetBarPane}\label{wxframelayoutgetbarpane}
192
193\func{cbDockPane*}{GetBarPane}{\param{cbBarInfo* }{pBar}}
194
195returns 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
227see 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
234NOTE:: 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
241used 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
258returns current top-level plugin (the one which receives events first,
259with 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
266NOTE:: 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
278also 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
370event 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
387called 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
399default plugins are : cbPaneDrawPlugin, cbRowLayoutPlugin, cbBarDragPlugin,
400cbAntiflickerPlugin, cbSimpleCustomizePlugin
401this method is automatically invoked, if no plugins were found upon
402fireing 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
409similar to wxWindow's "push/pop-event-handler" methods, execept
410that plugin is *deleted* upon "popping"
411
412
413\membersection{wxFrameLayout::RecalcLayout}\label{wxframelayoutrecalclayout}
414
415\func{void}{RecalcLayout}{\param{bool }{repositionBarsNow = FALSE}}
416
417recalcualtes 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
424can be used for repositioning already existing bars. The given bar is first removed
425from the pane it currently belongs to, and inserted into the pane, which "matches"
426the given recantular area. If pToPane is not NULL, bar is docked to this given pane
427to 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
434recalculates 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
451removes 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
458checks if plugin of the given class is hooked, removes
459it 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
484changes 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
491passes the client window (e.g. MDI-client frame) to be controled by
492frame layout, the size and position of which should be adjusted to be
493surrounded by controlbar panes, whenever frame is resized, or dimensions
494of 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
501TODO:: margins should go into cbCommonPaneProperties in the future
502NOTE:: 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
519hooking custom plugins to frame layout
520NOTE:: when hooking one plugin on top of the other -
521use SetNextHandler(..) or similar methods
522of wxEvtHandler class to compose the chain of plugins,
523than pass the left-most handler in this chain to
524the above methods (assuming that events are delegated
525from left-most towards right-most handler)
526NOTE2:: this secenario is very inconvenient and "low-level",
527use Add/Push/PopPlugin methods instead
528
529
530\membersection{wxFrameLayout::SetUpdatesManager}\label{wxframelayoutsetupdatesmanager}
531
532\func{void}{SetUpdatesManager}{\param{cbUpdatesManagerBase* }{pUMgr}}
533
534destroys 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