]> git.saurik.com Git - wxWidgets.git/blame - docs/latex/wx/mdi.tex
Apply Mart R.'s patch for improved font width
[wxWidgets.git] / docs / latex / wx / mdi.tex
CommitLineData
a660d684
KB
1\section{\class{wxMDIChildFrame}}\label{wxmdichildframe}
2
3An MDI child frame is a frame that can only exist on a \helpref{wxMDIClientWindow}{wxmdiclientwindow},
4which is itself a child of \helpref{wxMDIParentFrame}{wxmdiparentframe}.
5
6\wxheading{Derived from}
7
8\helpref{wxFrame}{wxframe}\\
9\helpref{wxWindow}{wxwindow}\\
10\helpref{wxEvtHandler}{wxevthandler}\\
11\helpref{wxObject}{wxobject}
12
954b8ae6
JS
13\wxheading{Include files}
14
15<wx/mdi.h>
16
a660d684
KB
17\wxheading{Window styles}
18
19\twocolwidtha{5cm}
20\begin{twocollist}\itemsep=0pt
21\twocolitem{\windowstyle{wxCAPTION}}{Puts a caption on the frame.}
22\twocolitem{\windowstyle{wxDEFAULT\_FRAME\_STYLE}}{Defined as {\bf wxMINIMIZE\_BOX \pipe wxMAXIMIZE\_BOX \pipe wxTHICK\_FRAME \pipe wxSYSTEM\_MENU \pipe wxCAPTION}.}
23\twocolitem{\windowstyle{wxICONIZE}}{Display the frame iconized (minimized) (Windows only).}
24\twocolitem{\windowstyle{wxMAXIMIZE}}{Displays the frame maximized (Windows only).}
25\twocolitem{\windowstyle{wxMAXIMIZE\_BOX}}{Displays a maximize box on the frame (Windows and Motif only).}
26\twocolitem{\windowstyle{wxMINIMIZE}}{Identical to {\bf wxICONIZE}.}
27\twocolitem{\windowstyle{wxMINIMIZE\_BOX}}{Displays a minimize box on the frame (Windows and Motif only).}
28\twocolitem{\windowstyle{wxRESIZE\_BORDER}}{Displays a resizeable border around the window (Motif only;
29for Windows, it is implicit in wxTHICK\_FRAME).}
30\twocolitem{\windowstyle{wxSTAY\_ON\_TOP}}{Stay on top of other windows (Windows only).}
31\twocolitem{\windowstyle{wxSYSTEM\_MENU}}{Displays a system menu (Windows and Motif only).}
32\twocolitem{\windowstyle{wxTHICK\_FRAME}}{Displays a thick frame around the window (Windows and Motif only).}
33\end{twocollist}
34
35See also \helpref{window styles overview}{windowstyles}.
36
37\wxheading{Remarks}
38
fc2171bd 39Although internally an MDI child frame is a child of the MDI client window, in wxWidgets
a660d684
KB
40you create it as a child of \helpref{wxMDIParentFrame}{wxmdiparentframe}. You can usually
41forget that the client window exists.
42
43MDI child frames are clipped to the area of the MDI client window, and may be iconized
44on the client window.
45
46You can associate a menubar with a child frame as usual, although an MDI child doesn't display
47its menubar under its own title bar. The MDI parent frame's menubar will be changed to
48reflect the currently active child frame. If there are currently no children, the parent
49frame's own menubar will be displayed.
50
51\wxheading{See also}
52
53\helpref{wxMDIClientWindow}{wxmdiclientwindow}, \helpref{wxMDIParentFrame}{wxmdiparentframe},\rtfsp
54\helpref{wxFrame}{wxframe}
55
56\latexignore{\rtfignore{\wxheading{Members}}}
57
f0e8a2d0 58\membersection{wxMDIChildFrame::wxMDIChildFrame}\label{wxmdichildframector}
a660d684
KB
59
60\func{}{wxMDIChildFrame}{\void}
61
62Default constructor.
63
eaaa6a06 64\func{}{wxMDIChildFrame}{\param{wxMDIParentFrame* }{parent}, \param{wxWindowID }{id},\rtfsp
a660d684
KB
65\param{const wxString\& }{title}, \param{const wxPoint\&}{ pos = wxDefaultPosition},\rtfsp
66\param{const wxSize\&}{ size = wxDefaultSize}, \param{long}{ style = wxDEFAULT\_FRAME\_STYLE},\rtfsp
67\param{const wxString\& }{name = ``frame"}}
68
69Constructor, creating the window.
70
71\wxheading{Parameters}
72
73\docparam{parent}{The window parent. This should not be NULL.}
74
75\docparam{id}{The window identifier. It may take a value of -1 to indicate a default value.}
76
77\docparam{title}{The caption to be displayed on the frame's title bar.}
78
79\docparam{pos}{The window position. A value of (-1, -1) indicates a default position, chosen by
fc2171bd 80either the windowing system or wxWidgets, depending on platform.}
a660d684
KB
81
82\docparam{size}{The window size. A value of (-1, -1) indicates a default size, chosen by
fc2171bd 83either the windowing system or wxWidgets, depending on platform.}
a660d684
KB
84
85\docparam{style}{The window style. See \helpref{wxMDIChildFrame}{wxmdichildframe}.}
86
87\docparam{name}{The name of the window. This parameter is used to associate a name with the item,
88allowing the application user to set Motif resource values for
89individual windows.}
90
91\wxheading{Remarks}
92
93None.
94
95\wxheading{See also}
96
97\helpref{wxMDIChildFrame::Create}{wxmdichildframecreate}
98
f0e8a2d0 99\membersection{wxMDIChildFrame::\destruct{wxMDIChildFrame}}\label{wxmdichildframedtor}
a660d684
KB
100
101\func{}{\destruct{wxMDIChildFrame}}{\void}
102
103Destructor. Destroys all child windows and menu bar if present.
104
105\membersection{wxMDIChildFrame::Activate}\label{wxmdichildframeactivate}
106
107\func{void}{Activate}{\void}
108
109Activates this MDI child frame.
110
111\wxheading{See also}
112
113\helpref{wxMDIChildFrame::Maximize}{wxmdichildframemaximize},\rtfsp
114\helpref{wxMDIChildFrame::Restore}{wxmdichildframerestore}
115
116\membersection{wxMDIChildFrame::Create}\label{wxmdichildframecreate}
117
eaaa6a06 118\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id},\rtfsp
a660d684
KB
119\param{const wxString\& }{title}, \param{const wxPoint\&}{ pos = wxDefaultPosition},\rtfsp
120\param{const wxSize\&}{ size = wxDefaultSize}, \param{long}{ style = wxDEFAULT\_FRAME\_STYLE},\rtfsp
121\param{const wxString\& }{name = ``frame"}}
122
f0e8a2d0 123Used in two-step frame construction. See \helpref{wxMDIChildFrame::wxMDIChildFrame}{wxmdichildframector}\rtfsp
a660d684
KB
124for further details.
125
126\membersection{wxMDIChildFrame::Maximize}\label{wxmdichildframemaximize}
127
0f353563 128\func{void}{Maximize}{\param{bool}{maximize}}
a660d684
KB
129
130Maximizes this MDI child frame.
131
132\wxheading{See also}
133
134\helpref{wxMDIChildFrame::Activate}{wxmdichildframeactivate},\rtfsp
135\helpref{wxMDIChildFrame::Restore}{wxmdichildframerestore}
136
137\membersection{wxMDIChildFrame::Restore}\label{wxmdichildframerestore}
138
139\func{void}{Restore}{\void}
140
141Restores this MDI child frame (unmaximizes).
142
143\wxheading{See also}
144
145\helpref{wxMDIChildFrame::Activate}{wxmdichildframeactivate},\rtfsp
146\helpref{wxMDIChildFrame::Maximize}{wxmdichildframemaximize}
147
a660d684
KB
148\section{\class{wxMDIClientWindow}}\label{wxmdiclientwindow}
149
150An MDI client window is a child of \helpref{wxMDIParentFrame}{wxmdiparentframe}, and manages zero or
151more \helpref{wxMDIChildFrame}{wxmdichildframe} objects.
152
153\wxheading{Derived from}
154
155\helpref{wxWindow}{wxwindow}\\
156\helpref{wxEvtHandler}{wxevthandler}\\
157\helpref{wxObject}{wxobject}
158
954b8ae6
JS
159\wxheading{Include files}
160
161<wx/mdi.h>
162
a660d684
KB
163\wxheading{Remarks}
164
165The client window is the area where MDI child windows exist. It doesn't have to cover the whole
166parent frame; other windows such as toolbars and a help window might coexist with it.
167There can be scrollbars on a client window, which are controlled by the parent window style.
168
169The {\bf wxMDIClientWindow} class is usually adequate without further derivation, and it is created
170automatically when the MDI parent frame is created. If the application needs to derive a new class,
171the function \helpref{wxMDIParentFrame::OnCreateClient}{wxmdiparentframeoncreateclient} must be
172overridden in order to give an opportunity to use a different class of client window.
173
174Under Windows 95, the client window will automatically have a sunken border style when
175the active child is not maximized, and no border style when a child is maximized.
176
177\wxheading{See also}
178
179\helpref{wxMDIChildFrame}{wxmdichildframe}, \helpref{wxMDIParentFrame}{wxmdiparentframe},\rtfsp
180\helpref{wxFrame}{wxframe}
181
182\latexignore{\rtfignore{\wxheading{Members}}}
183
f0e8a2d0 184\membersection{wxMDIClientWindow::wxMDIClientWindow}\label{wxmdiclientwindowctor}
a660d684
KB
185
186\func{}{wxMDIClientWindow}{\void}
187
188Default constructor.
189
190\func{}{wxMDIClientWindow}{\param{wxMDIParentFrame* }{parent}, \param{long}{ style = 0}}
191
192Constructor, creating the window.
193
194\wxheading{Parameters}
195
196\docparam{parent}{The window parent.}
197
198\docparam{style}{The window style. Currently unused.}
199
200\wxheading{Remarks}
201
202The second style of constructor is called within \helpref{wxMDIParentFrame::OnCreateClient}{wxmdiparentframeoncreateclient}.
203
204\wxheading{See also}
205
f0e8a2d0 206\helpref{wxMDIParentFrame::wxMDIParentFrame}{wxmdiparentframector},\rtfsp
a660d684
KB
207\helpref{wxMDIParentFrame::OnCreateClient}{wxmdiparentframeoncreateclient}
208
f0e8a2d0 209\membersection{wxMDIClientWindow::\destruct{wxMDIClientWindow}}\label{wxmdiclientwindowdtor}
a660d684
KB
210
211\func{}{\destruct{wxMDIClientWindow}}{\void}
212
213Destructor.
214
215\membersection{wxMDIClientWindow::CreateClient}\label{wxmdiclientwindowcreateclient}
216
217\func{bool}{CreateClient}{\param{wxMDIParentFrame* }{parent}, \param{long}{ style = 0}}
218
f0e8a2d0 219Used in two-step frame construction. See \helpref{wxMDIClientWindow::wxMDIClientWindow}{wxmdiclientwindowctor}\rtfsp
a660d684
KB
220for further details.
221
222\section{\class{wxMDIParentFrame}}\label{wxmdiparentframe}
223
224An MDI (Multiple Document Interface) parent frame is a window which can contain
225MDI child frames in its own `desktop'. It is a convenient way to avoid window clutter,
226and is used in many popular Windows applications, such as Microsoft Word(TM).
227
228\wxheading{Derived from}
229
230\helpref{wxFrame}{wxframe}\\
231\helpref{wxWindow}{wxwindow}\\
232\helpref{wxEvtHandler}{wxevthandler}\\
233\helpref{wxObject}{wxobject}
234
954b8ae6
JS
235\wxheading{Include files}
236
237<wx/mdi.h>
238
a660d684
KB
239\wxheading{Remarks}
240
241There may be multiple MDI parent frames in a single application, but this probably only makes sense
242within programming development environments.
243
5bb31e35
JS
244Child frames may be of class \helpref{wxMDIChildFrame}{wxmdichildframe} (contained
245within the parent frame) or \helpref{wxFrame}{wxframe} (shown as a top-level frame).
a660d684
KB
246
247An MDI parent frame always has a \helpref{wxMDIClientWindow}{wxmdiclientwindow} associated with it, which
248is the parent for MDI client frames.
f6bcfd97 249This client window may be resized to accommodate non-MDI windows, as seen in Microsoft Visual C++ (TM) and
a660d684
KB
250Microsoft Publisher (TM), where a documentation window is placed to one side of the workspace.
251
252MDI remains popular despite dire warnings from Microsoft itself that MDI is an obsolete
253user interface style.
254
255The implementation is native in Windows, and simulated under Motif. Under Motif,
256the child window frames will often have a different appearance from other frames
257because the window decorations are simulated.
258
259\wxheading{Window styles}
260
261\twocolwidtha{5cm}
262\begin{twocollist}\itemsep=0pt
263\twocolitem{\windowstyle{wxCAPTION}}{Puts a caption on the frame.}
264\twocolitem{\windowstyle{wxDEFAULT\_FRAME\_STYLE}}{Defined as {\bf wxMINIMIZE\_BOX \pipe wxMAXIMIZE\_BOX \pipe wxTHICK\_FRAME \pipe wxSYSTEM\_MENU \pipe wxCAPTION}.}
265\twocolitem{\windowstyle{wxHSCROLL}}{Displays a horizontal scrollbar in the {\it client window}, allowing
266the user to view child frames that are off the current view.}
267\twocolitem{\windowstyle{wxICONIZE}}{Display the frame iconized (minimized) (Windows only).}
268\twocolitem{\windowstyle{wxMAXIMIZE}}{Displays the frame maximized (Windows only).}
269\twocolitem{\windowstyle{wxMAXIMIZE\_BOX}}{Displays a maximize box on the frame (Windows and Motif only).}
270\twocolitem{\windowstyle{wxMINIMIZE}}{Identical to {\bf wxICONIZE}.}
271\twocolitem{\windowstyle{wxMINIMIZE\_BOX}}{Displays a minimize box on the frame (Windows and Motif only).}
272\twocolitem{\windowstyle{wxRESIZE\_BORDER}}{Displays a resizeable border around the window (Motif only;
273for Windows, it is implicit in wxTHICK\_FRAME).}
274\twocolitem{\windowstyle{wxSTAY\_ON\_TOP}}{Stay on top of other windows (Windows only).}
275\twocolitem{\windowstyle{wxSYSTEM\_MENU}}{Displays a system menu (Windows and Motif only).}
276\twocolitem{\windowstyle{wxTHICK\_FRAME}}{Displays a thick frame around the window (Windows and Motif only).}
277\twocolitem{\windowstyle{wxVSCROLL}}{Displays a vertical scrollbar in the {\it client window}, allowing
278the user to view child frames that are off the current view.}
8771a323 279\twocolitem{\windowstyle{wxFRAME\_NO\_WINDOW\_MENU}}{Under Windows, removes the Window menu that is normally
df61c009 280added automatically.}
a660d684
KB
281\end{twocollist}
282
283See also \helpref{window styles overview}{windowstyles}.
284
285\wxheading{See also}
286
287\helpref{wxMDIChildFrame}{wxmdichildframe}, \helpref{wxMDIClientWindow}{wxmdiclientwindow},\rtfsp
288\helpref{wxFrame}{wxframe}, \helpref{wxDialog}{wxdialog}
289
290\latexignore{\rtfignore{\wxheading{Members}}}
291
f0e8a2d0 292\membersection{wxMDIParentFrame::wxMDIParentFrame}\label{wxmdiparentframector}
a660d684
KB
293
294\func{}{wxMDIParentFrame}{\void}
295
296Default constructor.
297
eaaa6a06 298\func{}{wxMDIParentFrame}{\param{wxWindow* }{parent}, \param{wxWindowID }{id},\rtfsp
a660d684
KB
299\param{const wxString\& }{title}, \param{const wxPoint\&}{ pos = wxDefaultPosition},\rtfsp
300\param{const wxSize\&}{ size = wxDefaultSize}, \param{long}{ style = wxDEFAULT\_FRAME\_STYLE \pipe wxVSCROLL \pipe wxHSCROLL},\rtfsp
301\param{const wxString\& }{name = ``frame"}}
302
303Constructor, creating the window.
304
305\wxheading{Parameters}
306
307\docparam{parent}{The window parent. This should be NULL.}
308
309\docparam{id}{The window identifier. It may take a value of -1 to indicate a default value.}
310
311\docparam{title}{The caption to be displayed on the frame's title bar.}
312
313\docparam{pos}{The window position. A value of (-1, -1) indicates a default position, chosen by
fc2171bd 314either the windowing system or wxWidgets, depending on platform.}
a660d684
KB
315
316\docparam{size}{The window size. A value of (-1, -1) indicates a default size, chosen by
fc2171bd 317either the windowing system or wxWidgets, depending on platform.}
a660d684
KB
318
319\docparam{style}{The window style. See \helpref{wxMDIParentFrame}{wxmdiparentframe}.}
320
321\docparam{name}{The name of the window. This parameter is used to associate a name with the item,
322allowing the application user to set Motif resource values for
323individual windows.}
324
325\wxheading{Remarks}
326
327During the construction of the frame, the client window will be created. To use a different class
328from \helpref{wxMDIClientWindow}{wxmdiclientwindow}, override\rtfsp
329\helpref{wxMDIParentFrame::OnCreateClient}{wxmdiparentframeoncreateclient}.
330
331Under Windows 95, the client window will automatically have a sunken border style when
332the active child is not maximized, and no border style when a child is maximized.
333
334\wxheading{See also}
335
336\helpref{wxMDIParentFrame::Create}{wxmdiparentframecreate},\rtfsp
337\helpref{wxMDIParentFrame::OnCreateClient}{wxmdiparentframeoncreateclient}
338
f0e8a2d0 339\membersection{wxMDIParentFrame::\destruct{wxMDIParentFrame}}\label{wxmdiparentframedtor}
a660d684
KB
340
341\func{}{\destruct{wxMDIParentFrame}}{\void}
342
343Destructor. Destroys all child windows and menu bar if present.
344
345\membersection{wxMDIParentFrame::ActivateNext}\label{wxmdiparentframeactivatenext}
346
347\func{void}{ActivateNext}{\void}
348
349Activates the MDI child following the currently active one.
350
351\wxheading{See also}
352
353\helpref{wxMDIParentFrame::ActivatePrevious}{wxmdiparentframeactivateprevious}
354
355\membersection{wxMDIParentFrame::ActivatePrevious}\label{wxmdiparentframeactivateprevious}
356
357\func{void}{ActivatePrevious}{\void}
358
359Activates the MDI child preceding the currently active one.
360
361\wxheading{See also}
362
363\helpref{wxMDIParentFrame::ActivateNext}{wxmdiparentframeactivatenext}
364
365
366\membersection{wxMDIParentFrame::ArrangeIcons}\label{wxmdiparentframearrangeicons}
367
368\func{void}{ArrangeIcons}{\void}
369
370Arranges any iconized (minimized) MDI child windows.
371
372\wxheading{See also}
373
374\helpref{wxMDIParentFrame::Cascade}{wxmdiparentframecascade},\rtfsp
375\helpref{wxMDIParentFrame::Tile}{wxmdiparentframetile}
376
377\membersection{wxMDIParentFrame::Cascade}\label{wxmdiparentframecascade}
378
379\func{void}{Cascade}{\void}
380
381Arranges the MDI child windows in a cascade.
382
383\wxheading{See also}
384
385\helpref{wxMDIParentFrame::Tile}{wxmdiparentframetile},\rtfsp
386\helpref{wxMDIParentFrame::ArrangeIcons}{wxmdiparentframearrangeicons}
387
388\membersection{wxMDIParentFrame::Create}\label{wxmdiparentframecreate}
389
eaaa6a06 390\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id},\rtfsp
a660d684
KB
391\param{const wxString\& }{title}, \param{const wxPoint\&}{ pos = wxDefaultPosition},\rtfsp
392\param{const wxSize\&}{ size = wxDefaultSize}, \param{long}{ style = wxDEFAULT\_FRAME\_STYLE \pipe wxVSCROLL \pipe wxHSCROLL},\rtfsp
393\param{const wxString\& }{name = ``frame"}}
394
f0e8a2d0 395Used in two-step frame construction. See \helpref{wxMDIParentFrame::wxMDIParentFrame}{wxmdiparentframector}\rtfsp
a660d684
KB
396for further details.
397
398\membersection{wxMDIParentFrame::GetClientSize}\label{wxmdiparentframegetclientsize}
399
400\constfunc{virtual void}{GetClientSize}{\param{int* }{width}, \param{int* }{height}}
401
402This gets the size of the frame `client area' in pixels.
403
404\wxheading{Parameters}
405
406\docparam{width}{Receives the client width in pixels.}
407
408\docparam{height}{Receives the client height in pixels.}
409
410\wxheading{Remarks}
411
412The client area is the area which may be drawn on by the programmer, excluding title bar, border, status bar,
413and toolbar if present.
414
415If you wish to manage your own toolbar (or perhaps you have more than one),
416provide an {\bf OnSize} event handler. Call {\bf GetClientSize} to
417find how much space there is for your windows and don't forget to set the size and position
418of the MDI client window as well as your toolbar and other windows (but not the status bar).
419
420If you have set a toolbar with \helpref{wxMDIParentFrame::SetToolbar}{wxmdiparentframesettoolbar},
421the client size returned will have subtracted the toolbar height. However, the available positions
422for the client window and other windows of the frame do not start at zero - you must add the toolbar height.
423
424The position and size of the status bar and toolbar (if known to the frame) are always managed
425by {\bf wxMDIParentFrame}, regardless of what behaviour is defined in your {\bf OnSize} event handler.
426However, the client window position and size are always set in {\bf OnSize}, so if you override this
427event handler, make sure you deal with the client window.
428
429You do not have to manage the size and position of MDI child windows, since they are managed
430automatically by the client window.
431
432\wxheading{See also}
433
434\helpref{wxMDIParentFrame::GetToolBar}{wxmdiparentframegettoolbar},\rtfsp
435\helpref{wxMDIParentFrame::SetToolBar}{wxmdiparentframesettoolbar},\rtfsp
a660d684
KB
436\helpref{wxMDIClientWindow}{wxmdiclientwindow}
437
06d20283
RD
438
439\pythonnote{The wxPython version of this method takes no arguments and
440returns a tuple containing width and height.}
441
a660d684
KB
442\membersection{wxMDIParentFrame::GetActiveChild}\label{wxmdiparentframegetactivechild}
443
444\constfunc{wxMDIChildFrame*}{GetActiveChild}{\void}
445
446Returns a pointer to the active MDI child, if there is one.
447
448\membersection{wxMDIParentFrame::GetClientWindow}\label{wxmdiparentframegetclientwindow}
449
450\constfunc{wxMDIClientWindow*}{GetClientWindow}{\void}
451
452Returns a pointer to the client window.
453
454\wxheading{See also}
455
456\helpref{wxMDIParentFrame::OnCreateClient}{wxmdiparentframeoncreateclient}
457
458\membersection{wxMDIParentFrame::GetToolBar}\label{wxmdiparentframegettoolbar}
459
460\constfunc{virtual wxWindow*}{GetToolBar}{\void}
461
462Returns the window being used as the toolbar for this frame.
463
464\wxheading{See also}
465
466\helpref{wxMDIParentFrame::SetToolBar}{wxmdiparentframesettoolbar}
467
df61c009
JS
468\membersection{wxMDIParentFrame::GetWindowMenu}\label{wxmdiparentframegetwindowmenu}
469
470\constfunc{wxMenu*}{GetWindowMenu}{\void}
471
fc2171bd 472Returns the current Window menu (added by wxWidgets to the menubar). This function
df61c009
JS
473is available under Windows only.
474
a660d684
KB
475\membersection{wxMDIParentFrame::OnCreateClient}\label{wxmdiparentframeoncreateclient}
476
477\func{virtual wxMDIClientWindow*}{OnCreateClient}{\void}
478
f6bcfd97
BP
479Override this to return a different kind of client window. If you override this function,
480you must create your parent frame in two stages, or your function will never be called,
481due to the way C++ treats virtual functions called from constructors. For example:
482
483\begin{verbatim}
484 frame = new MyParentFrame;
485 frame->Create(parent, myParentFrameId, wxT("My Parent Frame"));
486\end{verbatim}
a660d684
KB
487
488\wxheading{Remarks}
489
490You might wish to derive from \helpref{wxMDIClientWindow}{wxmdiclientwindow} in order
491to implement different erase behaviour, for example, such as painting a bitmap
492on the background.
493
494Note that it is probably impossible to have a client window that scrolls as well as painting
495a bitmap or pattern, since in {\bf OnScroll}, the scrollbar positions always return zero.
7af3ca16 496(Solutions to: {\tt julian.smart@btopenworld.com}).
a660d684
KB
497
498\wxheading{See also}
499
500\helpref{wxMDIParentFrame::GetClientWindow}{wxmdiparentframegetclientwindow},\rtfsp
501\helpref{wxMDIClientWindow}{wxmdiclientwindow}
502
503\membersection{wxMDIParentFrame::SetToolBar}\label{wxmdiparentframesettoolbar}
504
505\func{virtual void}{SetToolBar}{\param{wxWindow*}{ toolbar}}
506
507Sets the window to be used as a toolbar for this
508MDI parent window. It saves the application having to manage the positioning
509of the toolbar MDI client window.
510
511\wxheading{Parameters}
512
513\docparam{toolbar}{Toolbar to manage.}
514
515\wxheading{Remarks}
516
517When the frame is resized, the toolbar is resized to be the width of
518the frame client area, and the toolbar height is kept the same.
519
520The parent of the toolbar must be this frame.
521
522If you wish to manage your own toolbar (or perhaps you have more than one),
523don't call this function, and instead manage your subwindows and the MDI client window by
524providing an {\bf OnSize} event handler. Call \helpref{wxMDIParentFrame::GetClientSize}{wxmdiparentframegetclientsize} to
525find how much space there is for your windows.
526
527Note that SDI (normal) frames and MDI child windows must always have their
528toolbars managed by the application.
529
530\wxheading{See also}
531
532\helpref{wxMDIParentFrame::GetToolBar}{wxmdiparentframegettoolbar},\rtfsp
533\helpref{wxMDIParentFrame::GetClientSize}{wxmdiparentframegetclientsize}
534
df61c009
JS
535\membersection{wxMDIParentFrame::SetWindowMenu}\label{wxmdiparentframesetwindowmenu}
536
537\func{void}{SetWindowMenu}{\param{wxMenu*}{ menu}}
538
539Call this to change the current Window menu. Ownership of the menu object passes to
540the frame when you call this function.
541
542This call is available under Windows only.
543
544To remove the window completely, use the wxFRAME\_NO\_WINDOW\_MENU window style.
545
a660d684
KB
546\membersection{wxMDIParentFrame::Tile}\label{wxmdiparentframetile}
547
0d97c090 548\func{void}{Tile}{\param{wxOrientation}{ orient = wxHORIZONTAL}}
a660d684 549
0d97c090
VZ
550Tiles the MDI child windows either horizontally or vertically depending on
551whether \arg{orient} is wxHORIZONTAL or wxVERTICAL.
552
553Currently only implemented for MSW, does nothing under the other platforms.
a660d684
KB
554
555\wxheading{See also}
556
557\helpref{wxMDIParentFrame::Cascade}{wxmdiparentframecascade},\rtfsp
558\helpref{wxMDIParentFrame::ArrangeIcons}{wxmdiparentframearrangeicons}
559
560