]> git.saurik.com Git - wxWidgets.git/blob - docs/latex/wx/window.tex
fixed TeX error introduced in rev 48093 (sorry)
[wxWidgets.git] / docs / latex / wx / window.tex
1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2 %% Name: window.tex
3 %% Purpose: wxWindow documentation
4 %% Author: wxWidgets Team
5 %% Modified by:
6 %% Created:
7 %% RCS-ID: $Id$
8 %% Copyright: (c) wxWidgets Team
9 %% License: wxWindows license
10 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11
12 \section{\class{wxWindow}}\label{wxwindow}
13
14 wxWindow is the base class for all windows and represents any visible object on
15 screen. All controls, top level windows and so on are windows. Sizers and
16 device contexts are not, however, as they don't appear on screen themselves.
17
18 Please note that all children of the window will be deleted automatically by
19 the destructor before the window itself is deleted which means that you don't
20 have to worry about deleting them manually. Please see the \helpref{window
21 deletion overview}{windowdeletionoverview} for more information.
22
23 Also note that in this, and many others, wxWidgets classes some
24 \texttt{GetXXX()} methods may be overloaded (as, for example,
25 \helpref{GetSize}{wxwindowgetsize} or
26 \helpref{GetClientSize}{wxwindowgetclientsize}). In this case, the overloads
27 are non-virtual because having multiple virtual functions with the same name
28 results in a virtual function name hiding at the derived class level (in
29 English, this means that the derived class has to override all overloaded
30 variants if it overrides any of them). To allow overriding them in the derived
31 class, wxWidgets uses a unique protected virtual \texttt{DoGetXXX()} method
32 and all \texttt{GetXXX()} ones are forwarded to it, so overriding the former
33 changes the behaviour of the latter.
34
35 \wxheading{Derived from}
36
37 \helpref{wxEvtHandler}{wxevthandler}\\
38 \helpref{wxObject}{wxobject}
39
40 \wxheading{Include files}
41
42 <wx/window.h>
43
44 \wxheading{Library}
45
46 \helpref{wxCore}{librarieslist}
47
48 \wxheading{Window styles}
49
50 The following styles can apply to all windows, although they will not always make sense for a particular
51 window class or on all platforms.
52
53 \twocolwidtha{5cm}%
54 \begin{twocollist}\itemsep=0pt
55 \twocolitem{\windowstyle{wxBORDER\_SIMPLE}}{Displays a thin border around the window. wxSIMPLE\_BORDER is the old name
56 for this style. }
57 \twocolitem{\windowstyle{wxBORDER\_DOUBLE}}{Displays a double border. wxDOUBLE\_BORDER is the old name for this style. Windows and Mac only.}
58 \twocolitem{\windowstyle{wxBORDER\_SUNKEN}}{Displays a sunken border. wxSUNKEN\_BORDER is the old name for this style.}
59 \twocolitem{\windowstyle{wxBORDER\_RAISED}}{Displays a raised border. wxRAISED\_BORDER is the old name for this style. }
60 \twocolitem{\windowstyle{wxBORDER\_STATIC}}{Displays a border suitable for a static control. wxSTATIC\_BORDER is the old name for this style. Windows only. }
61 \twocolitem{\windowstyle{wxBORDER\_THEME}}{Displays a themed border where possible. Currently this has an effect on Windows XP and above only.
62 For more information on themed borders, please see \helpref{Themed borders on Windows}{wxmswthemedborders}.}
63 \twocolitem{\windowstyle{wxBORDER\_NONE}}{Displays no border, overriding the default border style for the window. wxNO\_BORDER is the old name for this style.}
64 \twocolitem{\windowstyle{wxTRANSPARENT\_WINDOW}}{The window is transparent, that is, it will not receive paint
65 events. Windows only.}
66 \twocolitem{\windowstyle{wxTAB\_TRAVERSAL}}{Use this to enable tab traversal for non-dialog windows.}
67 \twocolitem{\windowstyle{wxWANTS\_CHARS}}{Use this to indicate that
68 the window wants to get all char/key events for all keys - even for
69 keys like TAB or ENTER which are usually used for dialog navigation
70 and which wouldn't be generated without this style. If you need to
71 use this style in order to get the arrows or etc., but would still like
72 to have normal keyboard navigation take place, you should call
73 \helpref{Navigate}{wxwindownavigate} in response to the key events for
74 Tab and Shift-Tab.}
75 \twocolitem{\windowstyle{wxNO\_FULL\_REPAINT\_ON\_RESIZE}}{On Windows, this style used to disable repainting
76 the window completely when its size is changed. Since this behaviour is now the default, the style is now obsolete
77 and no longer has an effect.}
78 \twocolitem{\windowstyle{wxVSCROLL}}{Use this style to enable a vertical
79 scrollbar. Notice that this style cannot be used with native controls
80 which don't support scrollbars nor with top-level windows in most ports.}
81 \twocolitem{\windowstyle{wxHSCROLL}}{Use this style to enable a horizontal
82 scrollbar. The same limitations as for wxVSCROLL apply to this style.}
83 \twocolitem{\windowstyle{wxALWAYS\_SHOW\_SB}}{If a window has scrollbars,
84 disable them instead of hiding them when they are not needed (i.e. when the
85 size of the window is big enough to not require the scrollbars to navigate it).
86 This style is currently implemented for wxMSW, wxGTK and wxUniversal and does
87 nothing on the other platforms.}
88 \twocolitem{\windowstyle{wxCLIP\_CHILDREN}}{Use this style to eliminate flicker caused by the background being
89 repainted, then children being painted over them. Windows only.}
90 \twocolitem{\windowstyle{wxFULL\_REPAINT\_ON\_RESIZE}}{Use this style to force
91 a complete redraw of the window whenever it is resized instead of redrawing
92 just the part of the window affected by resizing. Note that this was the
93 behaviour by default before 2.5.1 release and that if you experience redraw
94 problems with code which previously used to work you may want to try this.
95 Currently this style applies on GTK+ 2 and Windows only, and full repainting is always
96 done on other platforms.}
97 \end{twocollist}
98
99 See also \helpref{window styles overview}{windowstyles}.
100
101 \wxheading{Extra window styles}
102
103 The following are extra styles, set using \helpref{wxWindow::SetExtraStyle}{wxwindowsetextrastyle}.
104
105 \twocolwidtha{5cm}%
106 \begin{twocollist}\itemsep=0pt
107 \twocolitem{\windowstyle{wxWS\_EX\_VALIDATE\_RECURSIVELY}}{By default, Validate/TransferDataTo/FromWindow()
108 only work on direct children of the window (compatible behaviour). Set this flag to make them recursively
109 descend into all subwindows.}
110 \twocolitem{\windowstyle{wxWS\_EX\_BLOCK\_EVENTS}}{wxCommandEvents and the objects of the derived classes are forwarded to the
111 parent window and so on recursively by default. Using this flag for the
112 given window allows to block this propagation at this window, i.e. prevent
113 the events from being propagated further upwards. Dialogs have this
114 flag on by default.}
115 \twocolitem{\windowstyle{wxWS\_EX\_TRANSIENT}}{Don't use this window as an implicit parent for the other windows: this must
116 be used with transient windows as otherwise there is the risk of creating a
117 dialog/frame with this window as a parent which would lead to a crash if the
118 parent is destroyed before the child.}
119 \twocolitem{\windowstyle{wxWS\_EX\_PROCESS\_IDLE}}{This window should always process idle events, even
120 if the mode set by \helpref{wxIdleEvent::SetMode}{wxidleeventsetmode} is wxIDLE\_PROCESS\_SPECIFIED.}
121 \twocolitem{\windowstyle{wxWS\_EX\_PROCESS\_UI\_UPDATES}}{This window should always process UI update events,
122 even if the mode set by \helpref{wxUpdateUIEvent::SetMode}{wxupdateuieventsetmode} is wxUPDATE\_UI\_PROCESS\_SPECIFIED.}
123 \end{twocollist}
124
125 \wxheading{See also}
126
127 \helpref{Event handling overview}{eventhandlingoverview}\\
128 \helpref{Window sizing overview}{windowsizingoverview}
129
130 \latexignore{\rtfignore{\wxheading{Members}}}
131
132
133 \membersection{wxWindow::wxWindow}\label{wxwindowctor}
134
135 \func{}{wxWindow}{\void}
136
137 Default constructor.
138
139 \func{}{wxWindow}{\param{wxWindow*}{ parent}, \param{wxWindowID }{id},
140 \param{const wxPoint\& }{pos = wxDefaultPosition},
141 \param{const wxSize\& }{size = wxDefaultSize},
142 \param{long }{style = 0},
143 \param{const wxString\& }{name = wxPanelNameStr}}
144
145 Constructs a window, which can be a child of a frame, dialog or any other non-control window.
146
147 \wxheading{Parameters}
148
149 \docparam{parent}{Pointer to a parent window.}
150
151 \docparam{id}{Window identifier. If wxID\_ANY, will automatically create an identifier.}
152
153 \docparam{pos}{Window position. wxDefaultPosition indicates that wxWidgets
154 should generate a default position for the window. If using the wxWindow class directly, supply
155 an actual position.}
156
157 \docparam{size}{Window size. wxDefaultSize indicates that wxWidgets
158 should generate a default size for the window. If no suitable size can be found, the
159 window will be sized to 20x20 pixels so that the window is visible but obviously not
160 correctly sized. }
161
162 \docparam{style}{Window style. For generic window styles, please see \helpref{wxWindow}{wxwindow}.}
163
164 \docparam{name}{Window name.}
165
166
167 \membersection{wxWindow::\destruct{wxWindow}}\label{wxwindowdtor}
168
169 \func{}{\destruct{wxWindow}}{\void}
170
171 Destructor. Deletes all subwindows, then deletes itself. Instead of using
172 the {\bf delete} operator explicitly, you should normally
173 use \helpref{wxWindow::Destroy}{wxwindowdestroy} so that wxWidgets
174 can delete a window only when it is safe to do so, in idle time.
175
176 \wxheading{See also}
177
178 \helpref{Window deletion overview}{windowdeletionoverview},\rtfsp
179 \helpref{wxWindow::Destroy}{wxwindowdestroy},\rtfsp
180 \helpref{wxCloseEvent}{wxcloseevent}
181
182
183 \membersection{wxWindow::AcceptsFocus}\label{wxwindowacceptsfocus}
184
185 \constfunc{bool}{AcceptsFocus}{\void}
186
187 This method may be overridden in the derived classes to return \false to
188 indicate that this control doesn't accept input at all (i.e. behaves like e.g.
189 \helpref{wxStaticText}{wxstatictext}) and so doesn't need focus.
190
191 \wxheading{See also}
192
193 \helpref{AcceptsFocusFromKeyboard}{wxwindowacceptsfocusfromkeyboard}
194
195
196 \membersection{wxWindow::AcceptsFocusFromKeyboard}\label{wxwindowacceptsfocusfromkeyboard}
197
198 \constfunc{bool}{AcceptsFocusFromKeyboard}{\void}
199
200 This method may be overridden in the derived classes to return \false to
201 indicate that while this control can, in principle, have focus if the user
202 clicks it with the mouse, it shouldn't be included in the TAB traversal chain
203 when using the keyboard.
204
205
206 \membersection{wxWindow::AddChild}\label{wxwindowaddchild}
207
208 \func{virtual void}{AddChild}{\param{wxWindow* }{child}}
209
210 Adds a child window. This is called automatically by window creation
211 functions so should not be required by the application programmer.
212
213 Notice that this function is mostly internal to wxWidgets and shouldn't be
214 called by the user code.
215
216 \wxheading{Parameters}
217
218 \docparam{child}{Child window to add.}
219
220
221 \membersection{wxWindow::CacheBestSize}\label{wxwindowcachebestsize}
222
223 \constfunc{void}{CacheBestSize}{\param{const wxSize\& }{size}}
224
225 Sets the cached best size value.
226
227
228 \membersection{wxWindow::CaptureMouse}\label{wxwindowcapturemouse}
229
230 \func{virtual void}{CaptureMouse}{\void}
231
232 Directs all mouse input to this window. Call \helpref{wxWindow::ReleaseMouse}{wxwindowreleasemouse} to
233 release the capture.
234
235 Note that wxWidgets maintains the stack of windows having captured the mouse
236 and when the mouse is released the capture returns to the window which had had
237 captured it previously and it is only really released if there were no previous
238 window. In particular, this means that you must release the mouse as many times
239 as you capture it, unless the window receives
240 the \helpref{wxMouseCaptureLostEvent}{wxmousecapturelostevent} event.
241
242 Any application which captures the mouse in the beginning of some operation
243 {\em must} handle \helpref{wxMouseCaptureLostEvent}{wxmousecapturelostevent}
244 and cancel this operation when it receives the event. The event handler must
245 not recapture mouse.
246
247 \wxheading{See also}
248
249 \helpref{wxWindow::ReleaseMouse}{wxwindowreleasemouse}
250 \helpref{wxMouseCaptureLostEvent}{wxmousecapturelostevent}
251
252
253 \membersection{wxWindow::Center}\label{wxwindowcenter}
254
255 \func{void}{Center}{\param{int}{ direction}}
256
257 A synonym for \helpref{Centre}{wxwindowcentre}.
258
259
260 \membersection{wxWindow::CenterOnParent}\label{wxwindowcenteronparent}
261
262 \func{void}{CenterOnParent}{\param{int}{ direction}}
263
264 A synonym for \helpref{CentreOnParent}{wxwindowcentreonparent}.
265
266
267 \membersection{wxWindow::CenterOnScreen}\label{wxwindowcenteronscreen}
268
269 \func{void}{CenterOnScreen}{\param{int}{ direction}}
270
271 A synonym for \helpref{CentreOnScreen}{wxwindowcentreonscreen}.
272
273
274 \membersection{wxWindow::Centre}\label{wxwindowcentre}
275
276 \func{void}{Centre}{\param{int}{ direction = wxBOTH}}
277
278 Centres the window.
279
280 \wxheading{Parameters}
281
282 \docparam{direction}{Specifies the direction for the centering. May be {\tt wxHORIZONTAL}, {\tt wxVERTICAL}\rtfsp
283 or {\tt wxBOTH}. It may also include {\tt wxCENTRE\_ON\_SCREEN} flag
284 if you want to center the window on the entire screen and not on its
285 parent window.}
286
287 The flag {\tt wxCENTRE\_FRAME} is obsolete and should not be used any longer
288 (it has no effect).
289
290 \wxheading{Remarks}
291
292 If the window is a top level one (i.e. doesn't have a parent), it will be
293 centered relative to the screen anyhow.
294
295 \wxheading{See also}
296
297 \helpref{wxWindow::Center}{wxwindowcenter}
298
299
300 \membersection{wxWindow::CentreOnParent}\label{wxwindowcentreonparent}
301
302 \func{void}{CentreOnParent}{\param{int}{ direction = wxBOTH}}
303
304 Centres the window on its parent. This is a more readable synonym for
305 \helpref{Centre}{wxwindowcentre}.
306
307 \wxheading{Parameters}
308
309 \docparam{direction}{Specifies the direction for the centering. May be {\tt wxHORIZONTAL}, {\tt wxVERTICAL}\rtfsp
310 or {\tt wxBOTH}.}
311
312 \wxheading{Remarks}
313
314 This methods provides for a way to center top level windows over their
315 parents instead of the entire screen. If there is no parent or if the
316 window is not a top level window, then behaviour is the same as
317 \helpref{wxWindow::Centre}{wxwindowcentre}.
318
319 \wxheading{See also}
320
321 \helpref{wxWindow::CentreOnScreen}{wxwindowcenteronscreen}
322
323
324 \membersection{wxWindow::CentreOnScreen}\label{wxwindowcentreonscreen}
325
326 \func{void}{CentreOnScreen}{\param{int}{ direction = wxBOTH}}
327
328 Centres the window on screen. This only works for top level windows -
329 otherwise, the window will still be centered on its parent.
330
331 \wxheading{Parameters}
332
333 \docparam{direction}{Specifies the direction for the centering. May be {\tt wxHORIZONTAL}, {\tt wxVERTICAL}\rtfsp
334 or {\tt wxBOTH}.}
335
336 \wxheading{See also}
337
338 \helpref{wxWindow::CentreOnParent}{wxwindowcenteronparent}
339
340
341 \membersection{wxWindow::ClearBackground}\label{wxwindowclearbackground}
342
343 \func{void}{ClearBackground}{\void}
344
345 Clears the window by filling it with the current background colour. Does not
346 cause an erase background event to be generated.
347
348
349 \membersection{wxWindow::ClientToScreen}\label{wxwindowclienttoscreen}
350
351 \constfunc{virtual void}{ClientToScreen}{\param{int* }{x}, \param{int* }{y}}
352
353 \perlnote{In wxPerl this method returns a 2-element list instead of
354 modifying its parameters.}
355
356 \constfunc{virtual wxPoint}{ClientToScreen}{\param{const wxPoint\&}{ pt}}
357
358 Converts to screen coordinates from coordinates relative to this window.
359
360 \docparam{x}{A pointer to a integer value for the x coordinate. Pass the client coordinate in, and
361 a screen coordinate will be passed out.}
362
363 \docparam{y}{A pointer to a integer value for the y coordinate. Pass the client coordinate in, and
364 a screen coordinate will be passed out.}
365
366 \docparam{pt}{The client position for the second form of the function.}
367
368 \pythonnote{In place of a single overloaded method name, wxPython
369 implements the following methods:\par
370 \indented{2cm}{\begin{twocollist}
371 \twocolitem{{\bf ClientToScreen(point)}}{Accepts and returns a wxPoint}
372 \twocolitem{{\bf ClientToScreenXY(x, y)}}{Returns a 2-tuple, (x, y)}
373 \end{twocollist}}
374 }
375
376
377 \membersection{wxWindow::Close}\label{wxwindowclose}
378
379 \func{bool}{Close}{\param{bool}{ force = {\tt false}}}
380
381 This function simply generates a \helpref{wxCloseEvent}{wxcloseevent} whose
382 handler usually tries to close the window. It doesn't close the window itself,
383 however.
384
385 \wxheading{Parameters}
386
387 \docparam{force}{{\tt false} if the window's close handler should be able to veto the destruction
388 of this window, {\tt true} if it cannot.}
389
390 \wxheading{Remarks}
391
392 Close calls the \helpref{close handler}{wxcloseevent} for the window, providing
393 an opportunity for the window to choose whether to destroy the window.
394 Usually it is only used with the top level windows (wxFrame and wxDialog
395 classes) as the others are not supposed to have any special OnClose() logic.
396
397 The close handler should check whether the window is being deleted forcibly,
398 using \helpref{wxCloseEvent::CanVeto}{wxcloseeventcanveto}, in which case it
399 should destroy the window using \helpref{wxWindow::Destroy}{wxwindowdestroy}.
400
401 {\it Note} that calling Close does not guarantee that the window will be
402 destroyed; but it provides a way to simulate a manual close of a window, which
403 may or may not be implemented by destroying the window. The default
404 implementation of wxDialog::OnCloseWindow does not necessarily delete the
405 dialog, since it will simply simulate an wxID\_CANCEL event which is handled by
406 the appropriate button event handler and may do anything at all.
407
408 To guarantee that the window will be destroyed, call
409 \helpref{wxWindow::Destroy}{wxwindowdestroy} instead
410
411 \wxheading{See also}
412
413 \helpref{Window deletion overview}{windowdeletionoverview},\rtfsp
414 \helpref{wxWindow::Destroy}{wxwindowdestroy},\rtfsp
415 \helpref{wxCloseEvent}{wxcloseevent}
416
417
418 \membersection{wxWindow::ConvertDialogToPixels}\label{wxwindowconvertdialogtopixels}
419
420 \func{wxPoint}{ConvertDialogToPixels}{\param{const wxPoint\&}{ pt}}
421
422 \func{wxSize}{ConvertDialogToPixels}{\param{const wxSize\&}{ sz}}
423
424 Converts a point or size from dialog units to pixels.
425
426 For the x dimension, the dialog units are multiplied by the average character width
427 and then divided by 4.
428
429 For the y dimension, the dialog units are multiplied by the average character height
430 and then divided by 8.
431
432 \wxheading{Remarks}
433
434 Dialog units are used for maintaining a dialog's proportions even if the font changes.
435
436 You can also use these functions programmatically. A convenience macro is defined:
437
438 {\small
439 \begin{verbatim}
440 #define wxDLG_UNIT(parent, pt) parent->ConvertDialogToPixels(pt)
441 \end{verbatim}
442 }
443
444 \wxheading{See also}
445
446 \helpref{wxWindow::ConvertPixelsToDialog}{wxwindowconvertpixelstodialog}
447
448 \pythonnote{In place of a single overloaded method name, wxPython
449 implements the following methods:\par
450 \indented{2cm}{\begin{twocollist}
451 \twocolitem{{\bf ConvertDialogPointToPixels(point)}}{Accepts and returns a wxPoint}
452 \twocolitem{{\bf ConvertDialogSizeToPixels(size)}}{Accepts and returns a wxSize}
453 \end{twocollist}}
454
455 Additionally, the following helper functions are defined:\par
456 \indented{2cm}{\begin{twocollist}
457 \twocolitem{{\bf wxDLG\_PNT(win, point)}}{Converts a wxPoint from dialog
458 units to pixels}
459 \twocolitem{{\bf wxDLG\_SZE(win, size)}}{Converts a wxSize from dialog
460 units to pixels}
461 \end{twocollist}}
462 }
463
464
465
466 \membersection{wxWindow::ConvertPixelsToDialog}\label{wxwindowconvertpixelstodialog}
467
468 \func{wxPoint}{ConvertPixelsToDialog}{\param{const wxPoint\&}{ pt}}
469
470 \func{wxSize}{ConvertPixelsToDialog}{\param{const wxSize\&}{ sz}}
471
472 Converts a point or size from pixels to dialog units.
473
474 For the x dimension, the pixels are multiplied by 4 and then divided by the average
475 character width.
476
477 For the y dimension, the pixels are multiplied by 8 and then divided by the average
478 character height.
479
480 \wxheading{Remarks}
481
482 Dialog units are used for maintaining a dialog's proportions even if the font changes.
483
484 \wxheading{See also}
485
486 \helpref{wxWindow::ConvertDialogToPixels}{wxwindowconvertdialogtopixels}
487
488 \pythonnote{In place of a single overloaded method name, wxPython implements the following methods:\par
489 \indented{2cm}{\begin{twocollist}
490 \twocolitem{{\bf ConvertDialogPointToPixels(point)}}{Accepts and returns a wxPoint}
491 \twocolitem{{\bf ConvertDialogSizeToPixels(size)}}{Accepts and returns a wxSize}
492 \end{twocollist}}
493 }
494
495
496 \membersection{wxWindow::Destroy}\label{wxwindowdestroy}
497
498 \func{virtual bool}{Destroy}{\void}
499
500 Destroys the window safely. Use this function instead of the delete operator, since
501 different window classes can be destroyed differently. Frames and dialogs
502 are not destroyed immediately when this function is called -- they are added
503 to a list of windows to be deleted on idle time, when all the window's events
504 have been processed. This prevents problems with events being sent to non-existent
505 windows.
506
507 \wxheading{Return value}
508
509 {\tt true} if the window has either been successfully deleted, or it has been added
510 to the list of windows pending real deletion.
511
512
513 \membersection{wxWindow::DestroyChildren}\label{wxwindowdestroychildren}
514
515 \func{virtual void}{DestroyChildren}{\void}
516
517 Destroys all children of a window. Called automatically by the destructor.
518
519
520 \membersection{wxWindow::Disable}\label{wxwindowdisable}
521
522 \func{bool}{Disable}{\void}
523
524 Disables the window, same as \helpref{Enable({\tt false})}{wxwindowenable}.
525
526 \wxheading{Return value}
527
528 Returns {\tt true} if the window has been disabled, {\tt false} if it had been
529 already disabled before the call to this function.
530
531
532 \membersection{wxWindow::DoGetBestSize}\label{wxwindowdogetbestsize}
533
534 \constfunc{virtual wxSize}{DoGetBestSize}{\void}
535
536 Gets the size which best suits the window: for a control, it would be
537 the minimal size which doesn't truncate the control, for a panel - the
538 same size as it would have after a call to \helpref{Fit()}{wxwindowfit}.
539
540
541 \membersection{wxWindow::DoUpdateWindowUI}\label{wxwindowdoupdatewindowui}
542
543 \func{virtual void}{DoUpdateWindowUI}{\param{wxUpdateUIEvent\&}{ event}}
544
545 Does the window-specific updating after processing the update event.
546 This function is called by \helpref{wxWindow::UpdateWindowUI}{wxwindowupdatewindowui}
547 in order to check return values in the \helpref{wxUpdateUIEvent}{wxupdateuievent} and
548 act appropriately. For example, to allow frame and dialog title updating, wxWidgets
549 implements this function as follows:
550
551 \begin{verbatim}
552 // do the window-specific processing after processing the update event
553 void wxTopLevelWindowBase::DoUpdateWindowUI(wxUpdateUIEvent& event)
554 {
555 if ( event.GetSetEnabled() )
556 Enable(event.GetEnabled());
557
558 if ( event.GetSetText() )
559 {
560 if ( event.GetText() != GetTitle() )
561 SetTitle(event.GetText());
562 }
563 }
564 \end{verbatim}
565
566
567
568 \membersection{wxWindow::DragAcceptFiles}\label{wxwindowdragacceptfiles}
569
570 \func{virtual void}{DragAcceptFiles}{\param{bool}{ accept}}
571
572 Enables or disables eligibility for drop file events (OnDropFiles).
573
574 \wxheading{Parameters}
575
576 \docparam{accept}{If {\tt true}, the window is eligible for drop file events. If {\tt false}, the window
577 will not accept drop file events.}
578
579 \wxheading{Remarks}
580
581 Windows only.
582
583
584 \membersection{wxWindow::Enable}\label{wxwindowenable}
585
586 \func{virtual bool}{Enable}{\param{bool}{ enable = {\tt true}}}
587
588 Enable or disable the window for user input. Note that when a parent window is
589 disabled, all of its children are disabled as well and they are reenabled again
590 when the parent is.
591
592 \wxheading{Parameters}
593
594 \docparam{enable}{If {\tt true}, enables the window for input. If {\tt false}, disables the window.}
595
596 \wxheading{Return value}
597
598 Returns {\tt true} if the window has been enabled or disabled, {\tt false} if
599 nothing was done, i.e. if the window had already been in the specified state.
600
601 \wxheading{See also}
602
603 \helpref{wxWindow::IsEnabled}{wxwindowisenabled},\rtfsp
604 \helpref{wxWindow::Disable}{wxwindowdisable},\rtfsp
605 \helpref{wxRadioBox::Enable}{wxradioboxenable}
606
607
608 \membersection{wxWindow::FindFocus}\label{wxwindowfindfocus}
609
610 \func{static wxWindow*}{FindFocus}{\void}
611
612 Finds the window or control which currently has the keyboard focus.
613
614 \wxheading{Remarks}
615
616 Note that this is a static function, so it can be called without needing a wxWindow pointer.
617
618 \wxheading{See also}
619
620 \helpref{wxWindow::SetFocus}{wxwindowsetfocus}
621
622
623
624 \membersection{wxWindow::FindWindow}\label{wxwindowfindwindow}
625
626 \constfunc{wxWindow*}{FindWindow}{\param{long}{ id}}
627
628 Find a child of this window, by identifier.
629
630 \constfunc{wxWindow*}{FindWindow}{\param{const wxString\&}{ name}}
631
632 Find a child of this window, by name.
633
634 \pythonnote{In place of a single overloaded method name, wxPython
635 implements the following methods:\par
636 \indented{2cm}{\begin{twocollist}
637 \twocolitem{{\bf FindWindowById(id)}}{Accepts an integer}
638 \twocolitem{{\bf FindWindowByName(name)}}{Accepts a string}
639 \end{twocollist}}
640 }
641
642
643 \membersection{wxWindow::FindWindowById}\label{wxwindowfindwindowbyid}
644
645 \func{static wxWindow*}{FindWindowById}{\param{long}{ id}, \param{wxWindow*}{ parent = NULL}}
646
647 Find the first window with the given {\it id}.
648
649 If {\it parent} is NULL, the search will start from all top-level
650 frames and dialog boxes; if non-NULL, the search will be limited to the given window hierarchy.
651 The search is recursive in both cases.
652
653 \wxheading{See also}
654
655 \helpref{FindWindow}{wxwindowfindwindow}
656
657
658 \membersection{wxWindow::FindWindowByLabel}\label{wxwindowfindwindowbylabel}
659
660 \func{static wxWindow*}{FindWindowByLabel}{\param{const wxString\&}{ label}, \param{wxWindow*}{ parent = NULL}}
661
662 Find a window by its label. Depending on the type of window, the label may be a window title
663 or panel item label. If {\it parent} is NULL, the search will start from all top-level
664 frames and dialog boxes; if non-NULL, the search will be limited to the given window hierarchy.
665 The search is recursive in both cases.
666
667 \wxheading{See also}
668
669 \helpref{FindWindow}{wxwindowfindwindow}
670
671
672 \membersection{wxWindow::FindWindowByName}\label{wxwindowfindwindowbyname}
673
674 \func{static wxWindow*}{FindWindowByName}{\param{const wxString\&}{ name}, \param{wxWindow*}{ parent = NULL}}
675
676 Find a window by its name (as given in a window constructor or {\bf Create} function call).
677 If {\it parent} is NULL, the search will start from all top-level
678 frames and dialog boxes; if non-NULL, the search will be limited to the given window hierarchy.
679 The search is recursive in both cases.
680
681 If no window with such name is found,
682 \helpref{FindWindowByLabel}{wxwindowfindwindowbylabel} is called.
683
684 \wxheading{See also}
685
686 \helpref{FindWindow}{wxwindowfindwindow}
687
688
689 \membersection{wxWindow::Fit}\label{wxwindowfit}
690
691 \func{virtual void}{Fit}{\void}
692
693 Sizes the window so that it fits around its subwindows. This function won't do
694 anything if there are no subwindows and will only really work correctly if
695 sizers are used for the subwindows layout. Also, if the window has exactly one
696 subwindow it is better (faster and the result is more precise as Fit adds some
697 margin to account for fuzziness of its calculations) to call
698
699 \begin{verbatim}
700 window->SetClientSize(child->GetSize());
701 \end{verbatim}
702
703 instead of calling Fit.
704
705
706 \membersection{wxWindow::FitInside}\label{wxwindowfitinside}
707
708 \func{virtual void}{FitInside}{\void}
709
710 Similar to \helpref{Fit}{wxwindowfit}, but sizes the interior (virtual) size
711 of a window. Mainly useful with scrolled windows to reset scrollbars after
712 sizing changes that do not trigger a size event, and/or scrolled windows without
713 an interior sizer. This function similarly won't do anything if there are no
714 subwindows.
715
716
717 \membersection{wxWindow::Freeze}\label{wxwindowfreeze}
718
719 \func{virtual void}{Freeze}{\void}
720
721 Freezes the window or, in other words, prevents any updates from taking place
722 on screen, the window is not redrawn at all. \helpref{Thaw}{wxwindowthaw} must
723 be called to reenable window redrawing. Calls to these two functions may be
724 nested.
725
726 This method is useful for visual appearance optimization (for example, it
727 is a good idea to use it before doing many large text insertions in a row into
728 a wxTextCtrl under wxGTK) but is not implemented on all platforms nor for all
729 controls so it is mostly just a hint to wxWidgets and not a mandatory
730 directive.
731
732 \wxheading{See also}
733
734 \helpref{wxWindowUpdateLocker}{wxwindowupdatelocker}
735
736
737 \membersection{wxWindow::GetAcceleratorTable}\label{wxwindowgetacceleratortable}
738
739 \constfunc{wxAcceleratorTable*}{GetAcceleratorTable}{\void}
740
741 Gets the accelerator table for this window. See \helpref{wxAcceleratorTable}{wxacceleratortable}.
742
743
744 \membersection{wxWindow::GetAccessible}\label{wxwindowgetaccessible}
745
746 \func{wxAccessible*}{GetAccessible}{\void}
747
748 Returns the accessible object for this window, if any.
749
750 See also \helpref{wxAccessible}{wxaccessible}.
751
752
753 \membersection{wxWindow::GetAdjustedBestSize}\label{wxwindowgetadjustedbestsize}
754
755 \constfunc{wxSize}{GetAdjustedBestSize}{\void}
756
757 This method is deprecated, use \helpref{GetEffectiveMinSize}{wxwindowgeteffectiveminsize}
758 instead.
759
760
761 \membersection{wxWindow::GetBackgroundColour}\label{wxwindowgetbackgroundcolour}
762
763 \constfunc{virtual wxColour}{GetBackgroundColour}{\void}
764
765 Returns the background colour of the window.
766
767 \wxheading{See also}
768
769 \helpref{wxWindow::SetBackgroundColour}{wxwindowsetbackgroundcolour},\rtfsp
770 \helpref{wxWindow::SetForegroundColour}{wxwindowsetforegroundcolour},\rtfsp
771 \helpref{wxWindow::GetForegroundColour}{wxwindowgetforegroundcolour}
772
773 \membersection{wxWindow::GetBackgroundStyle}\label{wxwindowgetbackgroundstyle}
774
775 \constfunc{virtual wxBackgroundStyle}{GetBackgroundStyle}{\void}
776
777 Returns the background style of the window. The background style indicates
778 whether background colour should be determined by the system (wxBG\_STYLE\_SYSTEM),
779 be set to a specific colour (wxBG\_STYLE\_COLOUR), or should be left to the
780 application to implement (wxBG\_STYLE\_CUSTOM).
781
782 On GTK+, use of wxBG\_STYLE\_CUSTOM allows the flicker-free drawing of a custom
783 background, such as a tiled bitmap. Currently the style has no effect on other platforms.
784
785 \wxheading{See also}
786
787 \helpref{wxWindow::SetBackgroundColour}{wxwindowsetbackgroundcolour},\rtfsp
788 \helpref{wxWindow::GetForegroundColour}{wxwindowgetforegroundcolour},\rtfsp
789 \helpref{wxWindow::SetBackgroundStyle}{wxwindowsetbackgroundstyle}
790
791 \membersection{wxWindow::GetEffectiveMinSize}\label{wxwindowgeteffectiveminsize}
792
793 \constfunc{wxSize}{GetEffectiveMinSize}{\void}
794
795 Merges the window's best size into the min size and returns the
796 result. This is the value used by sizers to determine the appropriate
797 ammount of sapce to allocate for the widget.
798
799 \wxheading{See also}
800
801 \helpref{wxWindow::GetBestSize}{wxwindowgetbestsize},\rtfsp
802 \helpref{wxWindow::SetInitialSize}{wxwindowsetinitialsize}
803
804
805 \membersection{wxWindow::GetBestSize}\label{wxwindowgetbestsize}
806
807 \constfunc{wxSize}{GetBestSize}{\void}
808
809 This functions returns the best acceptable minimal size for the window. For
810 example, for a static control, it will be the minimal size such that the
811 control label is not truncated. For windows containing subwindows (typically
812 \helpref{wxPanel}{wxpanel}), the size returned by this function will be the
813 same as the size the window would have had after calling
814 \helpref{Fit}{wxwindowfit}.
815
816
817 \membersection{wxWindow::GetCapture}\label{wxwindowgetcapture}
818
819 \func{static wxWindow *}{GetCapture}{\void}
820
821 Returns the currently captured window.
822
823 \wxheading{See also}
824
825 \helpref{wxWindow::HasCapture}{wxwindowhascapture},
826 \helpref{wxWindow::CaptureMouse}{wxwindowcapturemouse},
827 \helpref{wxWindow::ReleaseMouse}{wxwindowreleasemouse},
828 \helpref{wxMouseCaptureLostEvent}{wxmousecapturelostevent}
829 \helpref{wxMouseCaptureChangedEvent}{wxmousecapturechangedevent}
830
831
832 \membersection{wxWindow::GetCaret}\label{wxwindowgetcaret}
833
834 \constfunc{wxCaret *}{GetCaret}{\void}
835
836 Returns the \helpref{caret}{wxcaret} associated with the window.
837
838
839 \membersection{wxWindow::GetCharHeight}\label{wxwindowgetcharheight}
840
841 \constfunc{virtual int}{GetCharHeight}{\void}
842
843 Returns the character height for this window.
844
845
846 \membersection{wxWindow::GetCharWidth}\label{wxwindowgetcharwidth}
847
848 \constfunc{virtual int}{GetCharWidth}{\void}
849
850 Returns the average character width for this window.
851
852
853 \membersection{wxWindow::GetChildren}\label{wxwindowgetchildren}
854
855 \func{wxWindowList\&}{GetChildren}{\void}
856
857 \constfunc{const wxWindowList\&}{GetChildren}{\void}
858
859 Returns a reference to the list of the window's children. \texttt{wxWindowList}
860 is a type-safe \helpref{wxList}{wxlist}-like class whose elements are of type
861 \texttt{wxWindow *}.
862
863
864 \membersection{wxWindow::GetClassDefaultAttributes}\label{wxwindowgetclassdefaultattributes}
865
866 \func{static wxVisualAttributes}{GetClassDefaultAttributes}{\param{wxWindowVariant}{ variant = \texttt{wxWINDOW\_VARIANT\_NORMAL}}}
867
868 Returns the default font and colours which are used by the control. This is
869 useful if you want to use the same font or colour in your own control as in a
870 standard control -- which is a much better idea than hard coding specific
871 colours or fonts which might look completely out of place on the users
872 system, especially if it uses themes.
873
874 The \arg{variant} parameter is only relevant under Mac currently and is
875 ignore under other platforms. Under Mac, it will change the size of the
876 returned font. See \helpref{wxWindow::SetWindowVariant}{wxwindowsetwindowvariant}
877 for more about this.
878
879 This static method is ``overridden'' in many derived classes and so calling,
880 for example, \helpref{wxButton}{wxbutton}::GetClassDefaultAttributes() will typically
881 return the values appropriate for a button which will be normally different
882 from those returned by, say, \helpref{wxListCtrl}{wxlistctrl}::GetClassDefaultAttributes().
883
884 The \texttt{wxVisualAttributes} structure has at least the fields
885 \texttt{font}, \texttt{colFg} and \texttt{colBg}. All of them may be invalid
886 if it was not possible to determine the default control appearance or,
887 especially for the background colour, if the field doesn't make sense as is
888 the case for \texttt{colBg} for the controls with themed background.
889
890 \wxheading{See also}
891
892 \helpref{InheritAttributes}{wxwindowinheritattributes}
893
894
895 \membersection{wxWindow::GetClientSize}\label{wxwindowgetclientsize}
896
897 \constfunc{void}{GetClientSize}{\param{int* }{width}, \param{int* }{height}}
898
899 \perlnote{In wxPerl this method takes no parameter and returns
900 a 2-element list {\tt (width, height)}.}
901
902 \constfunc{wxSize}{GetClientSize}{\void}
903
904 Returns the size of the window `client area' in pixels. The client area is the
905 area which may be drawn on by the programmer, excluding title bar, border,
906 scrollbars, etc.
907
908 Note that if this window is a top-level one and it is currently minimized, the
909 return size is empty (both width and height are $0$).
910
911 \wxheading{Parameters}
912
913 \docparam{width}{Receives the client width in pixels.}
914
915 \docparam{height}{Receives the client height in pixels.}
916
917 \pythonnote{In place of a single overloaded method name, wxPython
918 implements the following methods:\par
919 \indented{2cm}{\begin{twocollist}
920 \twocolitem{{\bf GetClientSizeTuple()}}{Returns a 2-tuple of (width, height)}
921 \twocolitem{{\bf GetClientSize()}}{Returns a wxSize object}
922 \end{twocollist}}
923 }
924
925 \wxheading{See also}
926
927 \helpref{GetSize}{wxwindowgetsize},\rtfsp
928 \helpref{GetVirtualSize}{wxwindowgetvirtualsize}
929
930
931
932 \membersection{wxWindow::GetConstraints}\label{wxwindowgetconstraints}
933
934 \constfunc{wxLayoutConstraints*}{GetConstraints}{\void}
935
936 Returns a pointer to the window's layout constraints, or NULL if there are none.
937
938
939 \membersection{wxWindow::GetContainingSizer}\label{wxwindowgetcontainingsizer}
940
941 \constfunc{const wxSizer *}{GetContainingSizer}{\void}
942
943 Return the sizer that this window is a member of, if any, otherwise
944 {\tt NULL}.
945
946
947 \membersection{wxWindow::GetCursor}\label{wxwindowgetcursor}
948
949 \constfunc{const wxCursor\&}{GetCursor}{\void}
950
951 Return the cursor associated with this window.
952
953 \wxheading{See also}
954
955 \helpref{wxWindow::SetCursor}{wxwindowsetcursor}
956
957
958 \membersection{wxWindow::GetDefaultAttributes}\label{wxwindowgetdefaultattributes}
959
960 \constfunc{virtual wxVisualAttributes}{GetDefaultAttributes}{\void}
961
962 Currently this is the same as calling
963 \helpref{GetClassDefaultAttributes}{wxwindowgetclassdefaultattributes}(\helpref{GetWindowVariant}{wxwindowgetwindowvariant}()).
964
965 One advantage of using this function compared to the static version is that
966 the call is automatically dispatched to the correct class (as usual with
967 virtual functions) and you don't have to specify the class name explicitly.
968
969 The other one is that in the future this function could return different
970 results, for example it might return a different font for an ``Ok'' button
971 than for a generic button if the users GUI is configured to show such buttons
972 in bold font. Of course, the down side is that it is impossible to call this
973 function without actually having an object to apply it to whereas the static
974 version can be used without having to create an object first.
975
976
977 \membersection{wxWindow::GetDropTarget}\label{wxwindowgetdroptarget}
978
979 \constfunc{wxDropTarget*}{GetDropTarget}{\void}
980
981 Returns the associated drop target, which may be NULL.
982
983 \wxheading{See also}
984
985 \helpref{wxWindow::SetDropTarget}{wxwindowsetdroptarget},
986 \helpref{Drag and drop overview}{wxdndoverview}
987
988
989 \membersection{wxWindow::GetEventHandler}\label{wxwindowgeteventhandler}
990
991 \constfunc{wxEvtHandler*}{GetEventHandler}{\void}
992
993 Returns the event handler for this window. By default, the window is its
994 own event handler.
995
996 \wxheading{See also}
997
998 \helpref{wxWindow::SetEventHandler}{wxwindowseteventhandler},\rtfsp
999 \helpref{wxWindow::PushEventHandler}{wxwindowpusheventhandler},\rtfsp
1000 \helpref{wxWindow::PopEventHandler}{wxwindowpusheventhandler},\rtfsp
1001 \helpref{wxEvtHandler::ProcessEvent}{wxevthandlerprocessevent},\rtfsp
1002 \helpref{wxEvtHandler}{wxevthandler}\rtfsp
1003
1004
1005 \membersection{wxWindow::GetExtraStyle}\label{wxwindowgetextrastyle}
1006
1007 \constfunc{long}{GetExtraStyle}{\void}
1008
1009 Returns the extra style bits for the window.
1010
1011
1012 \membersection{wxWindow::GetFont}\label{wxwindowgetfont}
1013
1014 \constfunc{wxFont}{GetFont}{\void}
1015
1016 Returns the font for this window.
1017
1018 \wxheading{See also}
1019
1020 \helpref{wxWindow::SetFont}{wxwindowsetfont}
1021
1022
1023 \membersection{wxWindow::GetForegroundColour}\label{wxwindowgetforegroundcolour}
1024
1025 \func{virtual wxColour}{GetForegroundColour}{\void}
1026
1027 Returns the foreground colour of the window.
1028
1029 \wxheading{Remarks}
1030
1031 The interpretation of foreground colour is open to interpretation according
1032 to the window class; it may be the text colour or other colour, or it may not
1033 be used at all.
1034
1035 \wxheading{See also}
1036
1037 \helpref{wxWindow::SetForegroundColour}{wxwindowsetforegroundcolour},\rtfsp
1038 \helpref{wxWindow::SetBackgroundColour}{wxwindowsetbackgroundcolour},\rtfsp
1039 \helpref{wxWindow::GetBackgroundColour}{wxwindowgetbackgroundcolour}
1040
1041
1042 \membersection{wxWindow::GetGrandParent}\label{wxwindowgetgrandparent}
1043
1044 \constfunc{wxWindow*}{GetGrandParent}{\void}
1045
1046 Returns the grandparent of a window, or NULL if there isn't one.
1047
1048
1049 \membersection{wxWindow::GetHandle}\label{wxwindowgethandle}
1050
1051 \constfunc{void*}{GetHandle}{\void}
1052
1053 Returns the platform-specific handle of the physical window. Cast it to an appropriate
1054 handle, such as {\bf HWND} for Windows, {\bf Widget} for Motif, {\bf GtkWidget} for GTK or {\bf WinHandle} for PalmOS.
1055
1056 \pythonnote{This method will return an integer in wxPython.}
1057
1058 \perlnote{This method will return an integer in wxPerl.}
1059
1060
1061 \membersection{wxWindow::GetHelpTextAtPoint}\label{wxwindowgethelptextatpoint}
1062
1063 \constfunc{virtual wxString}{GetHelpTextAtPoint}{\param{const wxPoint &}{point}, \param{wxHelpEvent::Origin }{origin}}
1064
1065 Gets the help text to be used as context-sensitive help for this window. This
1066 method should be overridden if the help message depends on the position inside
1067 the window, otherwise \helpref{GetHelpText}{wxwindowgethelptext} can be used.
1068
1069 \wxheading{Parameters}
1070
1071 \docparam{point}{Coordinates of the mouse at the moment of help event emission.}
1072
1073 \docparam{origin}{Help event origin, see also \helpref{wxHelpEvent::GetOrigin}{wxhelpeventgetorigin}.}
1074
1075 \newsince{2.7.0}
1076
1077
1078 \membersection{wxWindow::GetHelpText}\label{wxwindowgethelptext}
1079
1080 \constfunc{virtual wxString}{GetHelpText}{\void}
1081
1082 Gets the help text to be used as context-sensitive help for this window.
1083
1084 Note that the text is actually stored by the current \helpref{wxHelpProvider}{wxhelpprovider} implementation,
1085 and not in the window object itself.
1086
1087 \wxheading{See also}
1088
1089 \helpref{SetHelpText}{wxwindowsethelptext}, \helpref{GetHelpTextAtPoint}{wxwindowgethelptextatpoint}, \helpref{wxHelpProvider}{wxhelpprovider}
1090
1091
1092 \membersection{wxWindow::GetId}\label{wxwindowgetid}
1093
1094 \constfunc{int}{GetId}{\void}
1095
1096 Returns the identifier of the window.
1097
1098 \wxheading{Remarks}
1099
1100 Each window has an integer identifier. If the application has not provided one
1101 (or the default wxID\_ANY) an unique identifier with a negative value will be generated.
1102
1103 \wxheading{See also}
1104
1105 \helpref{wxWindow::SetId}{wxwindowsetid},\rtfsp
1106 \helpref{Window identifiers}{windowids}
1107
1108
1109 \membersection{wxWindow::GetLabel}\label{wxwindowgetlabel}
1110
1111 \constfunc{virtual wxString }{GetLabel}{\void}
1112
1113 Generic way of getting a label from any window, for
1114 identification purposes.
1115
1116 \wxheading{Remarks}
1117
1118 The interpretation of this function differs from class to class.
1119 For frames and dialogs, the value returned is the title. For buttons or static text controls, it is
1120 the button text. This function can be useful for meta-programs (such as testing
1121 tools or special-needs access programs) which need to identify windows
1122 by name.
1123
1124 \membersection{wxWindow::GetMaxSize}\label{wxwindowgetmaxsize}
1125
1126 \constfunc{wxSize}{GetMaxSize}{\void}
1127
1128 Returns the maximum size of the window, an indication to the sizer layout mechanism
1129 that this is the maximum possible size.
1130
1131 \membersection{wxWindow::GetMinSize}\label{wxwindowgetminsize}
1132
1133 \constfunc{virtual wxSize}{GetMinSize}{\void}
1134
1135 Returns the minimum size of the window, an indication to the sizer layout mechanism
1136 that this is the minimum required size. It normally just returns the value set
1137 by \helpref{SetMinSize}{wxwindowsetminsize}, but it can be overridden to do the
1138 calculation on demand.
1139
1140 \membersection{wxWindow::GetName}\label{wxwindowgetname}
1141
1142 \constfunc{virtual wxString }{GetName}{\void}
1143
1144 Returns the window's name.
1145
1146 \wxheading{Remarks}
1147
1148 This name is not guaranteed to be unique; it is up to the programmer to supply an appropriate
1149 name in the window constructor or via \helpref{wxWindow::SetName}{wxwindowsetname}.
1150
1151 \wxheading{See also}
1152
1153 \helpref{wxWindow::SetName}{wxwindowsetname}
1154
1155
1156 \membersection{wxWindow::GetParent}\label{wxwindowgetparent}
1157
1158 \constfunc{virtual wxWindow*}{GetParent}{\void}
1159
1160 Returns the parent of the window, or NULL if there is no parent.
1161
1162
1163 \membersection{wxWindow::GetPosition}\label{wxwindowgetposition}
1164
1165 \constfunc{virtual void}{GetPosition}{\param{int* }{x}, \param{int* }{y}}
1166
1167 \constfunc{wxPoint}{GetPosition}{\void}
1168
1169 This gets the position of the window in pixels, relative to the parent window
1170 for the child windows or relative to the display origin for the top level
1171 windows.
1172
1173 \wxheading{Parameters}
1174
1175 \docparam{x}{Receives the x position of the window if non-\NULL.}
1176
1177 \docparam{y}{Receives the y position of the window if non-\NULL.}
1178
1179 \pythonnote{In place of a single overloaded method name, wxPython
1180 implements the following methods:\par
1181 \indented{2cm}{\begin{twocollist}
1182 \twocolitem{{\bf GetPosition()}}{Returns a wxPoint}
1183 \twocolitem{{\bf GetPositionTuple()}}{Returns a tuple (x, y)}
1184 \end{twocollist}}
1185 }
1186
1187 \perlnote{In wxPerl there are two methods instead of a single overloaded
1188 method:\par
1189 \indented{2cm}{\begin{twocollist}
1190 \twocolitem{{\bf GetPosition()}}{Returns a Wx::Point}
1191 \twocolitem{{\bf GetPositionXY()}}{Returns a 2-element list
1192 {\tt ( x, y )}}
1193 \end{twocollist}
1194 }}
1195
1196
1197 \wxheading{See also}
1198
1199 \helpref{GetScreenPosition}{wxwindowgetscreenposition}
1200
1201
1202 \membersection{wxWindow::GetRect}\label{wxwindowgetrect}
1203
1204 \constfunc{virtual wxRect}{GetRect}{\void}
1205
1206 Returns the position and size of the window as a \helpref{wxRect}{wxrect} object.
1207
1208 \wxheading{See also}
1209
1210 \helpref{GetScreenRect}{wxwindowgetscreenrect}
1211
1212
1213 \membersection{wxWindow::GetScreenPosition}\label{wxwindowgetscreenposition}
1214
1215 \constfunc{virtual void}{GetScreenPosition}{\param{int* }{x}, \param{int* }{y}}
1216
1217 \constfunc{wxPoint}{GetScreenPosition}{\void}
1218
1219 Returns the window position in screen coordinates, whether the window is a
1220 child window or a top level one.
1221
1222 \wxheading{Parameters}
1223
1224 \docparam{x}{Receives the x position of the window on the screen if non-\NULL.}
1225
1226 \docparam{y}{Receives the y position of the window on the screen if non-\NULL.}
1227
1228 \wxheading{See also}
1229
1230 \helpref{GetPosition}{wxwindowgetposition}
1231
1232
1233 \membersection{wxWindow::GetScreenRect}\label{wxwindowgetscreenrect}
1234
1235 \constfunc{virtual wxRect}{GetScreenRect}{\void}
1236
1237 Returns the position and size of the window on the screen as a
1238 \helpref{wxRect}{wxrect} object.
1239
1240 \wxheading{See also}
1241
1242 \helpref{GetRect}{wxwindowgetrect}
1243
1244
1245 \membersection{wxWindow::GetScrollPos}\label{wxwindowgetscrollpos}
1246
1247 \func{virtual int}{GetScrollPos}{\param{int }{orientation}}
1248
1249 Returns the built-in scrollbar position.
1250
1251 \wxheading{See also}
1252
1253 See \helpref{wxWindow::SetScrollbar}{wxwindowsetscrollbar}
1254
1255
1256 \membersection{wxWindow::GetScrollRange}\label{wxwindowgetscrollrange}
1257
1258 \func{virtual int}{GetScrollRange}{\param{int }{orientation}}
1259
1260 Returns the built-in scrollbar range.
1261
1262 \wxheading{See also}
1263
1264 \helpref{wxWindow::SetScrollbar}{wxwindowsetscrollbar}
1265
1266
1267 \membersection{wxWindow::GetScrollThumb}\label{wxwindowgetscrollthumb}
1268
1269 \func{virtual int}{GetScrollThumb}{\param{int }{orientation}}
1270
1271 Returns the built-in scrollbar thumb size.
1272
1273 \wxheading{See also}
1274
1275 \helpref{wxWindow::SetScrollbar}{wxwindowsetscrollbar}
1276
1277
1278 \membersection{wxWindow::GetSize}\label{wxwindowgetsize}
1279
1280 \constfunc{void}{GetSize}{\param{int* }{width}, \param{int* }{height}}
1281
1282 \constfunc{wxSize}{GetSize}{\void}
1283
1284 Returns the size of the entire window in pixels, including title bar, border,
1285 scrollbars, etc.
1286
1287 Note that if this window is a top-level one and it is currently minimized, the
1288 returned size is the restored window size, not the size of the window icon.
1289
1290 \wxheading{Parameters}
1291
1292 \docparam{width}{Receives the window width.}
1293
1294 \docparam{height}{Receives the window height.}
1295
1296 \pythonnote{In place of a single overloaded method name, wxPython
1297 implements the following methods:\par
1298 \indented{2cm}{\begin{twocollist}
1299 \twocolitem{{\bf GetSize()}}{Returns a wxSize}
1300 \twocolitem{{\bf GetSizeTuple()}}{Returns a 2-tuple (width, height)}
1301 \end{twocollist}}
1302 }
1303
1304 \perlnote{In wxPerl there are two methods instead of a single overloaded
1305 method:\par
1306 \indented{2cm}{\begin{twocollist}
1307 \twocolitem{{\bf GetSize()}}{Returns a Wx::Size}
1308 \twocolitem{{\bf GetSizeWH()}}{Returns a 2-element list
1309 {\tt ( width, height )}}
1310 \end{twocollist}
1311 }}
1312
1313 \wxheading{See also}
1314
1315 \helpref{GetClientSize}{wxwindowgetclientsize},\rtfsp
1316 \helpref{GetVirtualSize}{wxwindowgetvirtualsize}
1317
1318
1319 \membersection{wxWindow::GetSizer}\label{wxwindowgetsizer}
1320
1321 \constfunc{wxSizer *}{GetSizer}{\void}
1322
1323 Return the sizer associated with the window by a previous call to
1324 \helpref{SetSizer()}{wxwindowsetsizer} or {\tt NULL}.
1325
1326
1327 \membersection{wxWindow::GetTextExtent}\label{wxwindowgettextextent}
1328
1329 \constfunc{virtual void}{GetTextExtent}{\param{const wxString\& }{string}, \param{int* }{w}, \param{int* }{h},
1330 \param{int* }{descent = NULL}, \param{int* }{externalLeading = NULL},
1331 \param{const wxFont* }{font = NULL}, \param{bool}{ use16 = {\tt false}}}
1332
1333 \constfunc{wxSize}{GetTextExtent}{\param{const wxString\& }{string}}
1334
1335 Gets the dimensions of the string as it would be drawn on the
1336 window with the currently selected font.
1337
1338 The text extent is returned in \arg{w} and \arg{h} pointers (first form) or as a
1339 \helpref{wxSize}{wxsize} object (second form).
1340
1341 \wxheading{Parameters}
1342
1343 \docparam{string}{String whose extent is to be measured.}
1344
1345 \docparam{w}{Return value for width.}
1346
1347 \docparam{h}{Return value for height.}
1348
1349 \docparam{descent}{Return value for descent (optional).}
1350
1351 \docparam{externalLeading}{Return value for external leading (optional).}
1352
1353 \docparam{font}{Font to use instead of the current window font (optional).}
1354
1355 \docparam{use16}{If {\tt true}, {\it string} contains 16-bit characters. The default is {\tt false}.}
1356
1357 \pythonnote{In place of a single overloaded method name, wxPython
1358 implements the following methods:\par
1359 \indented{2cm}{\begin{twocollist}
1360 \twocolitem{{\bf GetTextExtent(string)}}{Returns a 2-tuple, (width, height)}
1361 \twocolitem{{\bf GetFullTextExtent(string, font=NULL)}}{Returns a
1362 4-tuple, (width, height, descent, externalLeading) }
1363 \end{twocollist}}
1364 }
1365
1366 \perlnote{In wxPerl this method takes only the {\tt string} and optionally
1367 {\tt font} parameters, and returns a 4-element list
1368 {\tt ( x, y, descent, externalLeading )}.}
1369
1370
1371 \membersection{wxWindow::GetToolTip}\label{wxwindowgettooltip}
1372
1373 \constfunc{wxToolTip*}{GetToolTip}{\void}
1374
1375 Get the associated tooltip or NULL if none.
1376
1377
1378 \membersection{wxWindow::GetUpdateRegion}\label{wxwindowgetupdateregion}
1379
1380 \constfunc{virtual wxRegion}{GetUpdateRegion}{\void}
1381
1382 Returns the region specifying which parts of the window have been damaged. Should
1383 only be called within an \helpref{wxPaintEvent}{wxpaintevent} handler.
1384
1385 \wxheading{See also}
1386
1387 \helpref{wxRegion}{wxregion},\rtfsp
1388 \helpref{wxRegionIterator}{wxregioniterator}
1389
1390
1391 \membersection{wxWindow::GetValidator}\label{wxwindowgetvalidator}
1392
1393 \constfunc{wxValidator*}{GetValidator}{\void}
1394
1395 Returns a pointer to the current validator for the window, or NULL if there is none.
1396
1397
1398 \membersection{wxWindow::GetVirtualSize}\label{wxwindowgetvirtualsize}
1399
1400 \constfunc{void}{GetVirtualSize}{\param{int* }{width}, \param{int* }{height}}
1401
1402 \constfunc{wxSize}{GetVirtualSize}{\void}
1403
1404 This gets the virtual size of the window in pixels. By default it
1405 returns the client size of the window, but after a call to
1406 \helpref{SetVirtualSize}{wxwindowsetvirtualsize} it will return
1407 that size.
1408
1409 \wxheading{Parameters}
1410
1411 \docparam{width}{Receives the window virtual width.}
1412
1413 \docparam{height}{Receives the window virtual height.}
1414
1415 \helpref{GetSize}{wxwindowgetsize},\rtfsp
1416 \helpref{GetClientSize}{wxwindowgetclientsize}
1417
1418
1419 \membersection{wxWindow::GetWindowBorderSize}\label{wxwindowgetwindowbordersize}
1420
1421 \constfunc{wxSize}{GetWindowBorderSize}{\void}
1422
1423 Returns the size of the left/right and top/bottom borders of this window in x
1424 and y components of the result respectively.
1425
1426
1427 \membersection{wxWindow::GetWindowStyleFlag}\label{wxwindowgetwindowstyleflag}
1428
1429 \constfunc{long}{GetWindowStyleFlag}{\void}
1430
1431 Gets the window style that was passed to the constructor or {\bf Create}
1432 method. {\bf GetWindowStyle()} is another name for the same function.
1433
1434
1435 \membersection{wxWindow::GetWindowVariant}\label{wxwindowgetwindowvariant}
1436
1437 \constfunc{wxWindowVariant}{GetWindowVariant}{\void}
1438
1439 Returns the value previously passed to
1440 \helpref{wxWindow::SetWindowVariant}{wxwindowsetwindowvariant}.
1441
1442
1443 \membersection{wxWindow::HasCapture}\label{wxwindowhascapture}
1444
1445 \constfunc{virtual bool}{HasCapture}{\void}
1446
1447 Returns {\tt true} if this window has the current mouse capture.
1448
1449 \wxheading{See also}
1450
1451 \helpref{wxWindow::CaptureMouse}{wxwindowcapturemouse},
1452 \helpref{wxWindow::ReleaseMouse}{wxwindowreleasemouse},
1453 \helpref{wxMouseCaptureLostEvent}{wxmousecapturelostevent}
1454 \helpref{wxMouseCaptureChangedEvent}{wxmousecapturechangedevent}
1455
1456
1457 \membersection{wxWindow::HasExtraStyle}\label{wxwindowhasextrastyle}
1458
1459 \constfunc{bool}{HasExtraStyle}{\param{int }{exFlag}}
1460
1461 Returns \texttt{true} if the window has the given \arg{exFlag} bit set in its
1462 extra styles.
1463
1464 \wxheading{See also}
1465
1466 \helpref{SetExtraStyle}{wxwindowsetextrastyle}
1467
1468
1469 \membersection{wxWindow::HasFlag}\label{wxwindowhasflag}
1470
1471 \constfunc{bool}{HasFlag}{\param{int }{flag}}
1472
1473 Returns \texttt{true} if the window has the given \arg{flag} bit set.
1474
1475
1476 \membersection{wxWindow::HasMultiplePages}\label{wxwindowhasmultiplepages}
1477
1478 \constfunc{virtual bool}{HasMultiplePages}{\void}
1479
1480 This method should be overridden to return \texttt{true} if this window has
1481 multiple pages. All standard class with multiple pages such as
1482 \helpref{wxNotebook}{wxnotebook}, \helpref{wxListbook}{wxlistbook} and
1483 \helpref{wxTreebook}{wxtreebook} already override it to return \texttt{true}
1484 and user-defined classes with similar behaviour should do it as well to allow
1485 the library to handle such windows appropriately.
1486
1487
1488 \membersection{wxWindow::HasScrollbar}\label{wxwindowhasscrollbar}
1489
1490 \constfunc{virtual bool}{HasScrollbar}{\param{int }{orient}}
1491
1492 Returns {\tt true} if this window has a scroll bar for this orientation.
1493
1494 \wxheading{Parameters}
1495
1496 \docparam{orient}{Orientation to check, either {\tt wxHORIZONTAL} or {\tt wxVERTICAL}.}
1497
1498
1499 \membersection{wxWindow::HasTransparentBackground}\label{wxwindowhastransparentbackground}
1500
1501 \constfunc{virtual bool}{HasTransparentBackground}{\void}
1502
1503 Returns \true if this window background is transparent (as, for example, for
1504 wxStaticText) and should show the parent window background.
1505
1506 This method is mostly used internally by the library itself and you normally
1507 shouldn't have to call it. You may, however, have to override it in your
1508 wxWindow-derived class to ensure that background is painted correctly.
1509
1510
1511 \membersection{wxWindow::Hide}\label{wxwindowhide}
1512
1513 \func{bool}{Hide}{\void}
1514
1515 Equivalent to calling \helpref{Show}{wxwindowshow}({\tt false}).
1516
1517
1518 \membersection{wxWindow::InheritAttributes}\label{wxwindowinheritattributes}
1519
1520 \func{void}{InheritAttributes}{\void}
1521
1522 This function is (or should be, in case of custom controls) called during
1523 window creation to intelligently set up the window visual attributes, that is
1524 the font and the foreground and background colours.
1525
1526 By ``intelligently'' the following is meant: by default, all windows use their
1527 own \helpref{default}{wxwindowgetclassdefaultattributes} attributes. However
1528 if some of the parents attributes are explicitly (that is, using
1529 \helpref{SetFont}{wxwindowsetfont} and not
1530 \helpref{SetOwnFont}{wxwindowsetownfont}) changed \emph{and} if the
1531 corresponding attribute hadn't been explicitly set for this window itself,
1532 then this window takes the same value as used by the parent. In addition, if
1533 the window overrides \helpref{ShouldInheritColours}{wxwindowshouldinheritcolours}
1534 to return \false, the colours will not be changed no matter what and only the
1535 font might.
1536
1537 This rather complicated logic is necessary in order to accommodate the
1538 different usage scenarios. The most common one is when all default attributes
1539 are used and in this case, nothing should be inherited as in modern GUIs
1540 different controls use different fonts (and colours) than their siblings so
1541 they can't inherit the same value from the parent. However it was also deemed
1542 desirable to allow to simply change the attributes of all children at once by
1543 just changing the font or colour of their common parent, hence in this case we
1544 do inherit the parents attributes.
1545
1546
1547 \membersection{wxWindow::InitDialog}\label{wxwindowinitdialog}
1548
1549 \func{void}{InitDialog}{\void}
1550
1551 Sends an {\tt wxEVT\_INIT\_DIALOG} event, whose handler usually transfers data
1552 to the dialog via validators.
1553
1554
1555 \membersection{wxWindow::InvalidateBestSize}\label{wxwindowinvalidatebestsize}
1556
1557 \func{void}{InvalidateBestSize}{\void}
1558
1559 Resets the cached best size value so it will be recalculated the next time it is needed.
1560
1561
1562 \membersection{wxWindow::IsDoubleBuffered}\label{wxwindowisdoublebuffered}
1563
1564 \constfunc{virtual bool}{IsDoubleBuffered}{\void}
1565
1566 Returns \true if the window contents is double-buffered by the system, i.e. if
1567 any drawing done on the window is really done on a temporary backing surface
1568 and transferred to the screen all at once later.
1569
1570 \wxheading{See also}
1571
1572 \helpref{wxBufferedDC}{wxbuffereddc}
1573
1574
1575 \membersection{wxWindow::IsEnabled}\label{wxwindowisenabled}
1576
1577 \constfunc{virtual bool}{IsEnabled}{\void}
1578
1579 Returns \true if the window is enabled, i.e. if it accepts user input, \false
1580 otherwise.
1581
1582 Notice that this method can return \false even if this window itself hadn't
1583 been explicitly disabled when one of its parent windows is disabled. To get the
1584 intrinsic status of this window, use
1585 \helpref{IsThisEnabled}{wxwindowisthisenabled}
1586
1587 \wxheading{See also}
1588
1589 \helpref{wxWindow::Enable}{wxwindowenable}
1590
1591
1592 \membersection{wxWindow::IsExposed}\label{wxwindowisexposed}
1593
1594 \constfunc{bool}{IsExposed}{\param{int }{x}, \param{int }{y}}
1595
1596 \constfunc{bool}{IsExposed}{\param{wxPoint }{\&pt}}
1597
1598 \constfunc{bool}{IsExposed}{\param{int }{x}, \param{int }{y}, \param{int }{w}, \param{int }{h}}
1599
1600 \constfunc{bool}{IsExposed}{\param{wxRect }{\&rect}}
1601
1602 Returns {\tt true} if the given point or rectangle area has been exposed since the
1603 last repaint. Call this in an paint event handler to optimize redrawing by
1604 only redrawing those areas, which have been exposed.
1605
1606 \pythonnote{In place of a single overloaded method name, wxPython
1607 implements the following methods:\par
1608 \indented{2cm}{\begin{twocollist}
1609 \twocolitem{{\bf IsExposed(x,y, w=0,h=0)}}{}
1610 \twocolitem{{\bf IsExposedPoint(pt)}}{}
1611 \twocolitem{{\bf IsExposedRect(rect)}}{}
1612 \end{twocollist}}}
1613
1614
1615 \membersection{wxWindow::IsFrozen}\label{wxwindowisfrozen}
1616
1617 \constfunc{virtual bool}{IsFrozen}{\void}
1618
1619 Returns \true if the window is currently frozen by a call to
1620 \helpref{Freeze()}{wxwindowfreeze}.
1621
1622 \wxheading{See also}
1623
1624 \helpref{Thaw()}{wxwindowthaw}
1625
1626
1627 \membersection{wxWindow::IsRetained}\label{wxwindowisretained}
1628
1629 \constfunc{virtual bool}{IsRetained}{\void}
1630
1631 Returns {\tt true} if the window is retained, {\tt false} otherwise.
1632
1633 \wxheading{Remarks}
1634
1635 Retained windows are only available on X platforms.
1636
1637
1638 \membersection{wxWindow::IsShown}\label{wxwindowisshown}
1639
1640 \constfunc{virtual bool}{IsShown}{\void}
1641
1642 Returns {\tt true} if the window is shown, {\tt false} if it has been hidden.
1643
1644 \wxheading{See also}
1645
1646 \helpref{wxWindow::IsShownOnScreen}{wxwindowisshownonscreen}
1647
1648
1649 \membersection{wxWindow::IsShownOnScreen}\label{wxwindowisshownonscreen}
1650
1651 \constfunc{virtual bool}{IsShownOnScreen}{\void}
1652
1653 Returns {\tt true} if the window is physically visible on the screen, i.e. it
1654 is shown and all its parents up to the toplevel window are shown as well.
1655
1656 \wxheading{See also}
1657
1658 \helpref{wxWindow::IsShown}{wxwindowisshown}
1659
1660
1661 \membersection{wxWindow::IsThisEnabled}\label{wxwindowisthisenabled}
1662
1663 \constfunc{bool}{IsThisEnabled}{\void}
1664
1665 Returns \true if this window is intrinsically enabled, \false otherwise, i.e.
1666 if \helpref{Enable(false)}{wxwindowenable} had been called. This method is
1667 mostly used for wxWidgets itself, user code should normally use
1668 \helpref{IsEnabled}{wxwindowisenabled} instead.
1669
1670
1671 \membersection{wxWindow::IsTopLevel}\label{wxwindowistoplevel}
1672
1673 \constfunc{bool}{IsTopLevel}{\void}
1674
1675 Returns {\tt true} if the given window is a top-level one. Currently all frames and
1676 dialogs are considered to be top-level windows (even if they have a parent
1677 window).
1678
1679
1680 \membersection{wxWindow::Layout}\label{wxwindowlayout}
1681
1682 \func{void}{Layout}{\void}
1683
1684 Invokes the constraint-based layout algorithm or the sizer-based algorithm
1685 for this window.
1686
1687 See \helpref{wxWindow::SetAutoLayout}{wxwindowsetautolayout}: when auto
1688 layout is on, this function gets called automatically when the window is resized.
1689
1690
1691 \membersection{wxWindow::LineDown}\label{wxwindowlinedown}
1692
1693 This is just a wrapper for \helpref{ScrollLines}{wxwindowscrolllines}$(1)$.
1694
1695
1696 \membersection{wxWindow::LineUp}\label{wxwindowlineup}
1697
1698 This is just a wrapper for \helpref{ScrollLines}{wxwindowscrolllines}$(-1)$.
1699
1700
1701 \membersection{wxWindow::Lower}\label{wxwindowlower}
1702
1703 \func{void}{Lower}{\void}
1704
1705 Lowers the window to the bottom of the window hierarchy (z-order).
1706
1707 \wxheading{See also}
1708
1709 \helpref{Raise}{wxwindowraise}
1710
1711
1712 \membersection{wxWindow::MakeModal}\label{wxwindowmakemodal}
1713
1714 \func{virtual void}{MakeModal}{\param{bool }{flag}}
1715
1716 Disables all other windows in the application so that
1717 the user can only interact with this window.
1718
1719 \wxheading{Parameters}
1720
1721 \docparam{flag}{If {\tt true}, this call disables all other windows in the application so that
1722 the user can only interact with this window. If {\tt false}, the effect is reversed.}
1723
1724
1725 \membersection{wxWindow::Move}\label{wxwindowmove}
1726
1727 \func{void}{Move}{\param{int}{ x}, \param{int}{ y}}
1728
1729 \func{void}{Move}{\param{const wxPoint\&}{ pt}}
1730
1731 Moves the window to the given position.
1732
1733 \wxheading{Parameters}
1734
1735 \docparam{x}{Required x position.}
1736
1737 \docparam{y}{Required y position.}
1738
1739 \docparam{pt}{\helpref{wxPoint}{wxpoint} object representing the position.}
1740
1741 \wxheading{Remarks}
1742
1743 Implementations of SetSize can also implicitly implement the
1744 wxWindow::Move function, which is defined in the base wxWindow class
1745 as the call:
1746
1747 \begin{verbatim}
1748 SetSize(x, y, wxDefaultCoord, wxDefaultCoord, wxSIZE_USE_EXISTING);
1749 \end{verbatim}
1750
1751 \wxheading{See also}
1752
1753 \helpref{wxWindow::SetSize}{wxwindowsetsize}
1754
1755 \pythonnote{In place of a single overloaded method name, wxPython
1756 implements the following methods:\par
1757 \indented{2cm}{\begin{twocollist}
1758 \twocolitem{{\bf Move(point)}}{Accepts a wxPoint}
1759 \twocolitem{{\bf MoveXY(x, y)}}{Accepts a pair of integers}
1760 \end{twocollist}}
1761 }
1762
1763
1764 \membersection{wxWindow::MoveAfterInTabOrder}\label{wxwindowmoveafterintaborder}
1765
1766 \func{void}{MoveAfterInTabOrder}{\param{wxWindow *}{win}}
1767
1768 Moves this window in the tab navigation order after the specified \arg{win}.
1769 This means that when the user presses \texttt{TAB} key on that other window,
1770 the focus switches to this window.
1771
1772 Default tab order is the same as creation order, this function and
1773 \helpref{MoveBeforeInTabOrder()}{wxwindowmovebeforeintaborder} allow to change
1774 it after creating all the windows.
1775
1776 \wxheading{Parameters}
1777
1778 \docparam{win}{A sibling of this window which should precede it in tab order,
1779 must not be NULL}
1780
1781
1782 \membersection{wxWindow::MoveBeforeInTabOrder}\label{wxwindowmovebeforeintaborder}
1783
1784 \func{void}{MoveBeforeInTabOrder}{\param{wxWindow *}{win}}
1785
1786 Same as \helpref{MoveAfterInTabOrder}{wxwindowmoveafterintaborder} except that
1787 it inserts this window just before \arg{win} instead of putting it right after
1788 it.
1789
1790
1791 \membersection{wxWindow::Navigate}\label{wxwindownavigate}
1792
1793 \func{bool}{Navigate}{\param{int}{ flags = wxNavigationKeyEvent::IsForward}}
1794
1795 Performs a keyboard navigation action starting from this window. This method is
1796 equivalent to calling \helpref{NavigateIn()}{wxwindownavigatein} method on the
1797 parent window.
1798
1799 \wxheading{Parameters}
1800
1801 \docparam{flags}{A combination of wxNavigationKeyEvent::IsForward and wxNavigationKeyEvent::WinChange.}
1802
1803 \wxheading{Return value}
1804
1805 Returns \true if the focus was moved to another window or \false if nothing
1806 changed.
1807
1808 \wxheading{Remarks}
1809
1810 You may wish to call this from a text control custom keypress handler to do the default
1811 navigation behaviour for the tab key, since the standard default behaviour for
1812 a multiline text control with the wxTE\_PROCESS\_TAB style is to insert a tab
1813 and not navigate to the next control.
1814
1815
1816 \membersection{wxWindow::NavigateIn}\label{wxwindownavigatein}
1817
1818 \func{bool}{NavigateIn}{\param{int}{ flags = wxNavigationKeyEvent::IsForward}}
1819
1820 Performs a keyboard navigation action inside this window.
1821
1822 See \helpref{Navigate}{wxwindownavigate} for more information.
1823
1824
1825 \membersection{wxWindow::NextControlId}\label{wxwindownextcontrolid}
1826
1827 \func{static int}{NextControlId}{\param{int }{winid}}
1828
1829 If two controls are created consecutively using \texttt{wxID\_ANY} id, this
1830 function allows to retrieve the effective id of the latter control from the id
1831 of the former. This is useful for example to find the control following its
1832 \helpref{wxStaticText}{wxstatictext} label if only the id of or pointer to the
1833 label is available to the caller but it is known that the two controls were
1834 created together.
1835
1836 \wxheading{See also}
1837
1838 \helpref{PrevControlId}{wxwindowprevcontrolid}
1839
1840
1841 %% VZ: wxWindow::OnXXX() functions should not be documented but I'm leaving
1842 %% the old docs here in case we want to move any still needed bits to
1843 %% the right location (i.e. probably the corresponding events docs)
1844 %%
1845 %% \membersection{wxWindow::OnActivate}\label{wxwindowonactivate}
1846 %%
1847 %% \func{void}{OnActivate}{\param{wxActivateEvent\&}{ event}}
1848 %%
1849 %% Called when a window is activated or deactivated.
1850 %%
1851 %% \wxheading{Parameters}
1852 %%
1853 %% \docparam{event}{Object containing activation information.}
1854 %%
1855 %% \wxheading{Remarks}
1856 %%
1857 %% If the window is being activated, \helpref{wxActivateEvent::GetActive}{wxactivateeventgetactive} returns {\tt true},
1858 %% otherwise it returns {\tt false} (it is being deactivated).
1859 %%
1860 %% \wxheading{See also}
1861 %%
1862 %% \helpref{wxActivateEvent}{wxactivateevent},\rtfsp
1863 %% \helpref{Event handling overview}{eventhandlingoverview}
1864 %%
1865 %% \membersection{wxWindow::OnChar}\label{wxwindowonchar}
1866 %%
1867 %% \func{void}{OnChar}{\param{wxKeyEvent\&}{ event}}
1868 %%
1869 %% Called when the user has pressed a key that is not a modifier (SHIFT, CONTROL or ALT).
1870 %%
1871 %% \wxheading{Parameters}
1872 %%
1873 %% \docparam{event}{Object containing keypress information. See \helpref{wxKeyEvent}{wxkeyevent} for
1874 %% details about this class.}
1875 %%
1876 %% \wxheading{Remarks}
1877 %%
1878 %% This member function is called in response to a keypress. To intercept this event,
1879 %% use the EVT\_CHAR macro in an event table definition. Your {\bf OnChar} handler may call this
1880 %% default function to achieve default keypress functionality.
1881 %%
1882 %% Note that the ASCII values do not have explicit key codes: they are passed as ASCII
1883 %% values.
1884 %%
1885 %% Note that not all keypresses can be intercepted this way. If you wish to intercept modifier
1886 %% keypresses, then you will need to use \helpref{wxWindow::OnKeyDown}{wxwindowonkeydown} or
1887 %% \helpref{wxWindow::OnKeyUp}{wxwindowonkeyup}.
1888 %%
1889 %% Most, but not all, windows allow keypresses to be intercepted.
1890 %%
1891 %% {\bf Tip:} be sure to call {\tt event.Skip()} for events that you don't process in this function,
1892 %% otherwise menu shortcuts may cease to work under Windows.
1893 %%
1894 %% \wxheading{See also}
1895 %%
1896 %% \helpref{wxWindow::OnKeyDown}{wxwindowonkeydown}, \helpref{wxWindow::OnKeyUp}{wxwindowonkeyup},\rtfsp
1897 %% \helpref{wxKeyEvent}{wxkeyevent}, \helpref{wxWindow::OnCharHook}{wxwindowoncharhook},\rtfsp
1898 %% \helpref{Event handling overview}{eventhandlingoverview}
1899 %%
1900 %% \membersection{wxWindow::OnCharHook}\label{wxwindowoncharhook}
1901 %%
1902 %% \func{void}{OnCharHook}{\param{wxKeyEvent\&}{ event}}
1903 %%
1904 %% This member is called to allow the window to intercept keyboard events
1905 %% before they are processed by child windows.
1906 %%
1907 %% \wxheading{Parameters}
1908 %%
1909 %% \docparam{event}{Object containing keypress information. See \helpref{wxKeyEvent}{wxkeyevent} for
1910 %% details about this class.}
1911 %%
1912 %% \wxheading{Remarks}
1913 %%
1914 %% This member function is called in response to a keypress, if the window is active. To intercept this event,
1915 %% use the EVT\_CHAR\_HOOK macro in an event table definition. If you do not process a particular
1916 %% keypress, call \helpref{wxEvent::Skip}{wxeventskip} to allow default processing.
1917 %%
1918 %% An example of using this function is in the implementation of escape-character processing for wxDialog,
1919 %% where pressing ESC dismisses the dialog by {\bf OnCharHook} 'forging' a cancel button press event.
1920 %%
1921 %% Note that the ASCII values do not have explicit key codes: they are passed as ASCII
1922 %% values.
1923 %%
1924 %% This function is only relevant to top-level windows (frames and dialogs), and under
1925 %% Windows only. Under GTK the normal EVT\_CHAR\_ event has the functionality, i.e.
1926 %% you can intercept it, and if you don't call \helpref{wxEvent::Skip}{wxeventskip}
1927 %% the window won't get the event.
1928 %%
1929 %% \wxheading{See also}
1930 %%
1931 %% \helpref{wxKeyEvent}{wxkeyevent},\rtfsp
1932 %% \helpref{wxWindow::OnCharHook}{wxwindowoncharhook},\rtfsp
1933 %% %% GD: OnXXX functions are not documented
1934 %% %%\helpref{wxApp::OnCharHook}{wxapponcharhook},\rtfsp
1935 %% \helpref{Event handling overview}{eventhandlingoverview}
1936 %%
1937 %% \membersection{wxWindow::OnCommand}\label{wxwindowoncommand}
1938 %%
1939 %% \func{virtual void}{OnCommand}{\param{wxEvtHandler\& }{object}, \param{wxCommandEvent\& }{event}}
1940 %%
1941 %% This virtual member function is called if the control does not handle the command event.
1942 %%
1943 %% \wxheading{Parameters}
1944 %%
1945 %% \docparam{object}{Object receiving the command event.}
1946 %%
1947 %% \docparam{event}{Command event}
1948 %%
1949 %% \wxheading{Remarks}
1950 %%
1951 %% This virtual function is provided mainly for backward compatibility. You can also intercept commands
1952 %% from child controls by using an event table, with identifiers or identifier ranges to identify
1953 %% the control(s) in question.
1954 %%
1955 %% \wxheading{See also}
1956 %%
1957 %% \helpref{wxCommandEvent}{wxcommandevent},\rtfsp
1958 %% \helpref{Event handling overview}{eventhandlingoverview}
1959 %%
1960 %% \membersection{wxWindow::OnClose}\label{wxwindowonclose}
1961 %%
1962 %% \func{virtual bool}{OnClose}{\void}
1963 %%
1964 %% Called when the user has tried to close a a frame
1965 %% or dialog box using the window manager (X) or system menu (Windows).
1966 %%
1967 %% {\bf Note:} This is an obsolete function.
1968 %% It is superseded by the \helpref{wxWindow::OnCloseWindow}{wxwindowonclosewindow} event
1969 %% handler.
1970 %%
1971 %% \wxheading{Return value}
1972 %%
1973 %% If {\tt true} is returned by OnClose, the window will be deleted by the system, otherwise the
1974 %% attempt will be ignored. Do not delete the window from within this handler, although
1975 %% you may delete other windows.
1976 %%
1977 %% \wxheading{See also}
1978 %%
1979 %% \helpref{Window deletion overview}{windowdeletionoverview},\rtfsp
1980 %% \helpref{wxWindow::Close}{wxwindowclose},\rtfsp
1981 %% \helpref{wxWindow::OnCloseWindow}{wxwindowonclosewindow},\rtfsp
1982 %% \helpref{wxCloseEvent}{wxcloseevent}
1983 %%
1984 %% \membersection{wxWindow::OnKeyDown}\label{wxwindowonkeydown}
1985 %%
1986 %% \func{void}{OnKeyDown}{\param{wxKeyEvent\&}{ event}}
1987 %%
1988 %% Called when the user has pressed a key, before it is translated into an ASCII value using other
1989 %% modifier keys that might be pressed at the same time.
1990 %%
1991 %% \wxheading{Parameters}
1992 %%
1993 %% \docparam{event}{Object containing keypress information. See \helpref{wxKeyEvent}{wxkeyevent} for
1994 %% details about this class.}
1995 %%
1996 %% \wxheading{Remarks}
1997 %%
1998 %% This member function is called in response to a key down event. To intercept this event,
1999 %% use the EVT\_KEY\_DOWN macro in an event table definition. Your {\bf OnKeyDown} handler may call this
2000 %% default function to achieve default keypress functionality.
2001 %%
2002 %% Note that not all keypresses can be intercepted this way. If you wish to intercept special
2003 %% keys, such as shift, control, and function keys, then you will need to use \helpref{wxWindow::OnKeyDown}{wxwindowonkeydown} or
2004 %% \helpref{wxWindow::OnKeyUp}{wxwindowonkeyup}.
2005 %%
2006 %% Most, but not all, windows allow keypresses to be intercepted.
2007 %%
2008 %% {\bf Tip:} be sure to call {\tt event.Skip()} for events that you don't process in this function,
2009 %% otherwise menu shortcuts may cease to work under Windows.
2010 %%
2011 %% \wxheading{See also}
2012 %%
2013 %% \helpref{wxWindow::OnChar}{wxwindowonchar}, \helpref{wxWindow::OnKeyUp}{wxwindowonkeyup},\rtfsp
2014 %% \helpref{wxKeyEvent}{wxkeyevent}, \helpref{wxWindow::OnCharHook}{wxwindowoncharhook},\rtfsp
2015 %% \helpref{Event handling overview}{eventhandlingoverview}
2016 %%
2017 %% \membersection{wxWindow::OnKeyUp}\label{wxwindowonkeyup}
2018 %%
2019 %% \func{void}{OnKeyUp}{\param{wxKeyEvent\&}{ event}}
2020 %%
2021 %% Called when the user has released a key.
2022 %%
2023 %% \wxheading{Parameters}
2024 %%
2025 %% \docparam{event}{Object containing keypress information. See \helpref{wxKeyEvent}{wxkeyevent} for
2026 %% details about this class.}
2027 %%
2028 %% \wxheading{Remarks}
2029 %%
2030 %% This member function is called in response to a key up event. To intercept this event,
2031 %% use the EVT\_KEY\_UP macro in an event table definition. Your {\bf OnKeyUp} handler may call this
2032 %% default function to achieve default keypress functionality.
2033 %%
2034 %% Note that not all keypresses can be intercepted this way. If you wish to intercept special
2035 %% keys, such as shift, control, and function keys, then you will need to use \helpref{wxWindow::OnKeyDown}{wxwindowonkeydown} or
2036 %% \helpref{wxWindow::OnKeyUp}{wxwindowonkeyup}.
2037 %%
2038 %% Most, but not all, windows allow key up events to be intercepted.
2039 %%
2040 %% \wxheading{See also}
2041 %%
2042 %% \helpref{wxWindow::OnChar}{wxwindowonchar}, \helpref{wxWindow::OnKeyDown}{wxwindowonkeydown},\rtfsp
2043 %% \helpref{wxKeyEvent}{wxkeyevent}, \helpref{wxWindow::OnCharHook}{wxwindowoncharhook},\rtfsp
2044 %% \helpref{Event handling overview}{eventhandlingoverview}
2045 %%
2046 %% \membersection{wxWindow::OnInitDialog}\label{wxwindowoninitdialog}
2047 %%
2048 %% \func{void}{OnInitDialog}{\param{wxInitDialogEvent\&}{ event}}
2049 %%
2050 %% Default handler for the wxEVT\_INIT\_DIALOG event. Calls \helpref{wxWindow::TransferDataToWindow}{wxwindowtransferdatatowindow}.
2051 %%
2052 %% \wxheading{Parameters}
2053 %%
2054 %% \docparam{event}{Dialog initialisation event.}
2055 %%
2056 %% \wxheading{Remarks}
2057 %%
2058 %% Gives the window the default behaviour of transferring data to child controls via
2059 %% the validator that each control has.
2060 %%
2061 %% \wxheading{See also}
2062 %%
2063 %% \helpref{wxValidator}{wxvalidator}, \helpref{wxWindow::TransferDataToWindow}{wxwindowtransferdatatowindow}
2064 %%
2065 %% \membersection{wxWindow::OnMenuHighlight}\label{wxwindowonmenuhighlight}
2066 %%
2067 %% \func{void}{OnMenuHighlight}{\param{wxMenuEvent\& }{event}}
2068 %%
2069 %% Called when a menu select is received from a menu bar: that is, the
2070 %% mouse cursor is over a menu item, but the left mouse button has not been
2071 %% pressed.
2072 %%
2073 %% \wxheading{Parameters}
2074 %%
2075 %% \docparam{event}{The menu highlight event. For more information, see \helpref{wxMenuEvent}{wxmenuevent}.}
2076 %%
2077 %% \wxheading{Remarks}
2078 %%
2079 %% You can choose any member function to receive
2080 %% menu select events, using the EVT\_MENU\_HIGHLIGHT macro for individual menu items or EVT\_MENU\_HIGHLIGHT\_ALL macro
2081 %% for all menu items.
2082 %%
2083 %% The default implementation for \helpref{wxFrame::OnMenuHighlight}{wxframeonmenuhighlight} displays help
2084 %% text in the first field of the status bar.
2085 %%
2086 %% This function was known as {\bf OnMenuSelect} in earlier versions of wxWidgets, but this was confusing
2087 %% since a selection is normally a left-click action.
2088 %%
2089 %% \wxheading{See also}
2090 %%
2091 %% \helpref{wxMenuEvent}{wxmenuevent},\rtfsp
2092 %% \helpref{Event handling overview}{eventhandlingoverview}
2093 %%
2094 %%
2095 %% \membersection{wxWindow::OnMouseEvent}\label{wxwindowonmouseevent}
2096 %%
2097 %% \func{void}{OnMouseEvent}{\param{wxMouseEvent\&}{ event}}
2098 %%
2099 %% Called when the user has initiated an event with the
2100 %% mouse.
2101 %%
2102 %% \wxheading{Parameters}
2103 %%
2104 %% \docparam{event}{The mouse event. See \helpref{wxMouseEvent}{wxmouseevent} for
2105 %% more details.}
2106 %%
2107 %% \wxheading{Remarks}
2108 %%
2109 %% Most, but not all, windows respond to this event.
2110 %%
2111 %% To intercept this event, use the EVT\_MOUSE\_EVENTS macro in an event table definition, or individual
2112 %% mouse event macros such as EVT\_LEFT\_DOWN.
2113 %%
2114 %% \wxheading{See also}
2115 %%
2116 %% \helpref{wxMouseEvent}{wxmouseevent},\rtfsp
2117 %% \helpref{Event handling overview}{eventhandlingoverview}
2118 %%
2119 %% \membersection{wxWindow::OnMove}\label{wxwindowonmove}
2120 %%
2121 %% \func{void}{OnMove}{\param{wxMoveEvent\& }{event}}
2122 %%
2123 %% Called when a window is moved.
2124 %%
2125 %% \wxheading{Parameters}
2126 %%
2127 %% \docparam{event}{The move event. For more information, see \helpref{wxMoveEvent}{wxmoveevent}.}
2128 %%
2129 %% \wxheading{Remarks}
2130 %%
2131 %% Use the EVT\_MOVE macro to intercept move events.
2132 %%
2133 %% \wxheading{Remarks}
2134 %%
2135 %% Not currently implemented.
2136 %%
2137 %% \wxheading{See also}
2138 %%
2139 %% \helpref{wxMoveEvent}{wxmoveevent},\rtfsp
2140 %% \helpref{wxFrame::OnSize}{wxframeonsize},\rtfsp
2141 %% \helpref{Event handling overview}{eventhandlingoverview}
2142 %%
2143 %% \membersection{wxWindow::OnPaint}\label{wxwindowonpaint}
2144 %%
2145 %% \func{void}{OnPaint}{\param{wxPaintEvent\& }{event}}
2146 %%
2147 %% Sent to the event handler when the window must be refreshed.
2148 %%
2149 %% \wxheading{Parameters}
2150 %%
2151 %% \docparam{event}{Paint event. For more information, see \helpref{wxPaintEvent}{wxpaintevent}.}
2152 %%
2153 %% \wxheading{Remarks}
2154 %%
2155 %% Use the EVT\_PAINT macro in an event table definition to intercept paint events.
2156 %%
2157 %% Note that In a paint event handler, the application must {\it always} create a \helpref{wxPaintDC}{wxpaintdc} object,
2158 %% even if you do not use it. Otherwise, under MS Windows, refreshing for this and other windows will go wrong.
2159 %%
2160 %% For example:
2161 %%
2162 %% \small{%
2163 %% \begin{verbatim}
2164 %% void MyWindow::OnPaint(wxPaintEvent\& event)
2165 %% {
2166 %% wxPaintDC dc(this);
2167 %%
2168 %% DrawMyDocument(dc);
2169 %% }
2170 %% \end{verbatim}
2171 %% }%
2172 %%
2173 %% You can optimize painting by retrieving the rectangles
2174 %% that have been damaged and only repainting these. The rectangles are in
2175 %% terms of the client area, and are unscrolled, so you will need to do
2176 %% some calculations using the current view position to obtain logical,
2177 %% scrolled units.
2178 %%
2179 %% Here is an example of using the \helpref{wxRegionIterator}{wxregioniterator} class:
2180 %%
2181 %% {\small%
2182 %% \begin{verbatim}
2183 %% // Called when window needs to be repainted.
2184 %% void MyWindow::OnPaint(wxPaintEvent\& event)
2185 %% {
2186 %% wxPaintDC dc(this);
2187 %%
2188 %% // Find Out where the window is scrolled to
2189 %% int vbX,vbY; // Top left corner of client
2190 %% GetViewStart(&vbX,&vbY);
2191 %%
2192 %% int vX,vY,vW,vH; // Dimensions of client area in pixels
2193 %% wxRegionIterator upd(GetUpdateRegion()); // get the update rect list
2194 %%
2195 %% while (upd)
2196 %% {
2197 %% vX = upd.GetX();
2198 %% vY = upd.GetY();
2199 %% vW = upd.GetW();
2200 %% vH = upd.GetH();
2201 %%
2202 %% // Alternatively we can do this:
2203 %% // wxRect rect;
2204 %% // upd.GetRect(&rect);
2205 %%
2206 %% // Repaint this rectangle
2207 %% ...some code...
2208 %%
2209 %% upd ++ ;
2210 %% }
2211 %% }
2212 %% \end{verbatim}
2213 %% }%
2214 %%
2215 %% \wxheading{See also}
2216 %%
2217 %% \helpref{wxPaintEvent}{wxpaintevent},\rtfsp
2218 %% \helpref{wxPaintDC}{wxpaintdc},\rtfsp
2219 %% \helpref{Event handling overview}{eventhandlingoverview}
2220 %%
2221 %% \membersection{wxWindow::OnScroll}\label{wxwindowonscroll}
2222 %%
2223 %% \func{void}{OnScroll}{\param{wxScrollWinEvent\& }{event}}
2224 %%
2225 %% Called when a scroll window event is received from one of the window's built-in scrollbars.
2226 %%
2227 %% \wxheading{Parameters}
2228 %%
2229 %% \docparam{event}{Command event. Retrieve the new scroll position by
2230 %% calling \helpref{wxScrollEvent::GetPosition}{wxscrolleventgetposition}, and the
2231 %% scrollbar orientation by calling \helpref{wxScrollEvent::GetOrientation}{wxscrolleventgetorientation}.}
2232 %%
2233 %% \wxheading{Remarks}
2234 %%
2235 %% Note that it is not possible to distinguish between horizontal and vertical scrollbars
2236 %% until the function is executing (you can't have one function for vertical, another
2237 %% for horizontal events).
2238 %%
2239 %% \wxheading{See also}
2240 %%
2241 %% \helpref{wxScrollWinEvent}{wxscrollwinevent},\rtfsp
2242 %% \helpref{Event handling overview}{eventhandlingoverview}
2243 %%
2244 %% \membersection{wxWindow::OnSetFocus}\label{wxwindowonsetfocus}
2245 %%
2246 %% \func{void}{OnSetFocus}{\param{wxFocusEvent\& }{event}}
2247 %%
2248 %% Called when a window's focus is being set.
2249 %%
2250 %% \wxheading{Parameters}
2251 %%
2252 %% \docparam{event}{The focus event. For more information, see \helpref{wxFocusEvent}{wxfocusevent}.}
2253 %%
2254 %% \wxheading{Remarks}
2255 %%
2256 %% To intercept this event, use the macro EVT\_SET\_FOCUS in an event table definition.
2257 %%
2258 %% Most, but not all, windows respond to this event.
2259 %%
2260 %% \wxheading{See also}
2261 %%
2262 %% \helpref{wxFocusEvent}{wxfocusevent}, \helpref{wxWindow::OnKillFocus}{wxwindowonkillfocus},\rtfsp
2263 %% \helpref{Event handling overview}{eventhandlingoverview}
2264 %%
2265 %% \membersection{wxWindow::OnSize}\label{wxwindowonsize}
2266 %%
2267 %% \func{void}{OnSize}{\param{wxSizeEvent\& }{event}}
2268 %%
2269 %% Called when the window has been resized. This is not a virtual function; you should
2270 %% provide your own non-virtual OnSize function and direct size events to it using EVT\_SIZE
2271 %% in an event table definition.
2272 %%
2273 %% \wxheading{Parameters}
2274 %%
2275 %% \docparam{event}{Size event. For more information, see \helpref{wxSizeEvent}{wxsizeevent}.}
2276 %%
2277 %% \wxheading{Remarks}
2278 %%
2279 %% You may wish to use this for frames to resize their child windows as appropriate.
2280 %%
2281 %% Note that the size passed is of
2282 %% the whole window: call \helpref{wxWindow::GetClientSize}{wxwindowgetclientsize} for the area which may be
2283 %% used by the application.
2284 %%
2285 %% When a window is resized, usually only a small part of the window is damaged and you
2286 %% may only need to repaint that area. However, if your drawing depends on the size of the window,
2287 %% you may need to clear the DC explicitly and repaint the whole window. In which case, you
2288 %% may need to call \helpref{wxWindow::Refresh}{wxwindowrefresh} to invalidate the entire window.
2289 %%
2290 %% \wxheading{See also}
2291 %%
2292 %% \helpref{wxSizeEvent}{wxsizeevent},\rtfsp
2293 %% \helpref{Event handling overview}{eventhandlingoverview}
2294 %%
2295 %% \membersection{wxWindow::OnSysColourChanged}\label{wxwindowonsyscolourchanged}
2296 %%
2297 %% \func{void}{OnSysColourChanged}{\param{wxOnSysColourChangedEvent\& }{event}}
2298 %%
2299 %% Called when the user has changed the system colours. Windows only.
2300 %%
2301 %% \wxheading{Parameters}
2302 %%
2303 %% \docparam{event}{System colour change event. For more information, see \helpref{wxSysColourChangedEvent}{wxsyscolourchangedevent}.}
2304 %%
2305 %% \wxheading{See also}
2306 %%
2307 %% \helpref{wxSysColourChangedEvent}{wxsyscolourchangedevent},\rtfsp
2308 %% \helpref{Event handling overview}{eventhandlingoverview}
2309
2310
2311 \membersection{wxWindow::OnInternalIdle}\label{wxwindowoninternalidle}
2312
2313 \func{virtual void}{OnInternalIdle}{\void}
2314
2315 This virtual function is normally only used internally, but
2316 sometimes an application may need it to implement functionality
2317 that should not be disabled by an application defining an OnIdle
2318 handler in a derived class.
2319
2320 This function may be used to do delayed painting, for example,
2321 and most implementations call \helpref{wxWindow::UpdateWindowUI}{wxwindowupdatewindowui}
2322 in order to send update events to the window in idle time.
2323
2324
2325 \membersection{wxWindow::PageDown}\label{wxwindowpagedown}
2326
2327 This is just a wrapper for \helpref{ScrollPages()}{wxwindowscrollpages}$(1)$.
2328
2329
2330 \membersection{wxWindow::PageUp}\label{wxwindowpageup}
2331
2332 This is just a wrapper for \helpref{ScrollPages()}{wxwindowscrollpages}$(-1)$.
2333
2334
2335 \membersection{wxWindow::PopEventHandler}\label{wxwindowpopeventhandler}
2336
2337 \constfunc{wxEvtHandler*}{PopEventHandler}{\param{bool }{deleteHandler = {\tt false}}}
2338
2339 Removes and returns the top-most event handler on the event handler stack.
2340
2341 \wxheading{Parameters}
2342
2343 \docparam{deleteHandler}{If this is {\tt true}, the handler will be deleted after it is removed. The
2344 default value is {\tt false}.}
2345
2346 \wxheading{See also}
2347
2348 \helpref{wxWindow::SetEventHandler}{wxwindowseteventhandler},\rtfsp
2349 \helpref{wxWindow::GetEventHandler}{wxwindowgeteventhandler},\rtfsp
2350 \helpref{wxWindow::PushEventHandler}{wxwindowpusheventhandler},\rtfsp
2351 \helpref{wxEvtHandler::ProcessEvent}{wxevthandlerprocessevent},\rtfsp
2352 \helpref{wxEvtHandler}{wxevthandler}\rtfsp
2353
2354
2355 \membersection{wxWindow::PopupMenu}\label{wxwindowpopupmenu}
2356
2357 \func{bool}{PopupMenu}{\param{wxMenu* }{menu}, \param{const wxPoint\& }{pos = wxDefaultPosition}}
2358
2359 \func{bool}{PopupMenu}{\param{wxMenu* }{menu}, \param{int }{x}, \param{int }{y}}
2360
2361 Pops up the given menu at the specified coordinates, relative to this
2362 window, and returns control when the user has dismissed the menu. If a
2363 menu item is selected, the corresponding menu event is generated and will be
2364 processed as usually. If the coordinates are not specified, current mouse
2365 cursor position is used.
2366
2367 \wxheading{Parameters}
2368
2369 \docparam{menu}{Menu to pop up.}
2370
2371 \docparam{pos}{The position where the menu will appear.}
2372
2373 \docparam{x}{Required x position for the menu to appear.}
2374
2375 \docparam{y}{Required y position for the menu to appear.}
2376
2377 \wxheading{See also}
2378
2379 \helpref{wxMenu}{wxmenu}
2380
2381 \wxheading{Remarks}
2382
2383 Just before the menu is popped up, \helpref{wxMenu::UpdateUI}{wxmenuupdateui}
2384 is called to ensure that the menu items are in the correct state. The menu does
2385 not get deleted by the window.
2386
2387 It is recommended to not explicitly specify coordinates when calling PopupMenu
2388 in response to mouse click, because some of the ports (namely, wxGTK) can do
2389 a better job of positioning the menu in that case.
2390
2391 \pythonnote{In place of a single overloaded method name, wxPython
2392 implements the following methods:\par
2393 \indented{2cm}{\begin{twocollist}
2394 \twocolitem{{\bf PopupMenu(menu, point)}}{Specifies position with a wxPoint}
2395 \twocolitem{{\bf PopupMenuXY(menu, x, y)}}{Specifies position with two integers (x, y)}
2396 \end{twocollist}}
2397 }
2398
2399
2400 \membersection{wxWindow::PrevControlId}\label{wxwindowprevcontrolid}
2401
2402 \func{static int}{PrevControlId}{\param{int }{winid}}
2403
2404 This is similar to \helpref{NextControlId}{wxwindownextcontrolid} but returns
2405 the id of the control created just before the one with the given \arg{winid}.
2406
2407
2408 \membersection{wxWindow::PushEventHandler}\label{wxwindowpusheventhandler}
2409
2410 \func{void}{PushEventHandler}{\param{wxEvtHandler* }{handler}}
2411
2412 Pushes this event handler onto the event stack for the window.
2413
2414 \wxheading{Parameters}
2415
2416 \docparam{handler}{Specifies the handler to be pushed.}
2417
2418 \wxheading{Remarks}
2419
2420 An event handler is an object that is capable of processing the events
2421 sent to a window. By default, the window is its own event handler, but
2422 an application may wish to substitute another, for example to allow
2423 central implementation of event-handling for a variety of different
2424 window classes.
2425
2426 \helpref{wxWindow::PushEventHandler}{wxwindowpusheventhandler} allows
2427 an application to set up a chain of event handlers, where an event not handled by one event handler is
2428 handed to the next one in the chain. Use \helpref{wxWindow::PopEventHandler}{wxwindowpopeventhandler} to
2429 remove the event handler.
2430
2431 \wxheading{See also}
2432
2433 \helpref{wxWindow::SetEventHandler}{wxwindowseteventhandler},\rtfsp
2434 \helpref{wxWindow::GetEventHandler}{wxwindowgeteventhandler},\rtfsp
2435 \helpref{wxWindow::PopEventHandler}{wxwindowpusheventhandler},\rtfsp
2436 \helpref{wxEvtHandler::ProcessEvent}{wxevthandlerprocessevent},\rtfsp
2437 \helpref{wxEvtHandler}{wxevthandler}
2438
2439
2440 \membersection{wxWindow::Raise}\label{wxwindowraise}
2441
2442 \func{void}{Raise}{\void}
2443
2444 Raises the window to the top of the window hierarchy (z-order).
2445
2446 In current version of wxWidgets this works both for managed and child windows.
2447
2448 \wxheading{See also}
2449
2450 \helpref{Lower}{wxwindowlower}
2451
2452
2453 \membersection{wxWindow::Refresh}\label{wxwindowrefresh}
2454
2455 \func{virtual void}{Refresh}{\param{bool}{ eraseBackground = {\tt true}}, \param{const wxRect* }{rect = NULL}}
2456
2457 Causes this window, and all of its children recursively (except under wxGTK1
2458 where this is not implemented), to be repainted. Note that repainting doesn't
2459 happen immediately but only during the next event loop iteration, if you need
2460 to update the window immediately you should use \helpref{Update}{wxwindowupdate}
2461 instead.
2462
2463 \wxheading{Parameters}
2464
2465 \docparam{eraseBackground}{If {\tt true}, the background will be
2466 erased.}
2467
2468 \docparam{rect}{If non-NULL, only the given rectangle will
2469 be treated as damaged.}
2470
2471 \wxheading{See also}
2472
2473 \helpref{wxWindow::RefreshRect}{wxwindowrefreshrect}
2474
2475
2476 \membersection{wxWindow::RefreshRect}\label{wxwindowrefreshrect}
2477
2478 \func{void}{RefreshRect}{\param{const wxRect\& }{rect}, \param{bool }{eraseBackground = \true}}
2479
2480 Redraws the contents of the given rectangle: only the area inside it will be
2481 repainted.
2482
2483 This is the same as \helpref{Refresh}{wxwindowrefresh} but has a nicer syntax
2484 as it can be called with a temporary wxRect object as argument like this
2485 \texttt{RefreshRect(wxRect(x, y, w, h))}.
2486
2487
2488 \membersection{wxWindow::RegisterHotKey}\label{wxwindowregisterhotkey}
2489
2490 \func{bool}{RegisterHotKey}{\param{int}{ hotkeyId}, \param{int}{ modifiers}, \param{int}{ virtualKeyCode}}
2491
2492 Registers a system wide hotkey. Every time the user presses the hotkey registered here, this window
2493 will receive a hotkey event. It will receive the event even if the application is in the background
2494 and does not have the input focus because the user is working with some other application.
2495
2496 \wxheading{Parameters}
2497
2498 \docparam{hotkeyId}{Numeric identifier of the hotkey. For applications this must be between 0 and 0xBFFF. If
2499 this function is called from a shared DLL, it must be a system wide unique identifier between 0xC000 and 0xFFFF.
2500 This is a MSW specific detail.}
2501
2502 \docparam{modifiers}{A bitwise combination of {\tt wxMOD\_SHIFT}, {\tt wxMOD\_CONTROL}, {\tt wxMOD\_ALT}
2503 or {\tt wxMOD\_WIN} specifying the modifier keys that have to be pressed along with the key.}
2504
2505 \docparam{virtualKeyCode}{The virtual key code of the hotkey.}
2506
2507 \wxheading{Return value}
2508
2509 {\tt true} if the hotkey was registered successfully. {\tt false} if some other application already registered a
2510 hotkey with this modifier/virtualKeyCode combination.
2511
2512 \wxheading{Remarks}
2513
2514 Use EVT\_HOTKEY(hotkeyId, fnc) in the event table to capture the event.
2515 This function is currently only implemented under Windows. It is used
2516 in the \helpref{Windows CE port}{wxwince} for detecting hardware button presses.
2517
2518 \wxheading{See also}
2519
2520 \helpref{wxWindow::UnregisterHotKey}{wxwindowunregisterhotkey}
2521
2522
2523 \membersection{wxWindow::ReleaseMouse}\label{wxwindowreleasemouse}
2524
2525 \func{virtual void}{ReleaseMouse}{\void}
2526
2527 Releases mouse input captured with \helpref{wxWindow::CaptureMouse}{wxwindowcapturemouse}.
2528
2529 \wxheading{See also}
2530
2531 \helpref{wxWindow::CaptureMouse}{wxwindowcapturemouse},
2532 \helpref{wxWindow::HasCapture}{wxwindowhascapture},
2533 \helpref{wxWindow::ReleaseMouse}{wxwindowreleasemouse},
2534 \helpref{wxMouseCaptureLostEvent}{wxmousecapturelostevent}
2535 \helpref{wxMouseCaptureChangedEvent}{wxmousecapturechangedevent}
2536
2537
2538 \membersection{wxWindow::RemoveChild}\label{wxwindowremovechild}
2539
2540 \func{virtual void}{RemoveChild}{\param{wxWindow* }{child}}
2541
2542 Removes a child window. This is called automatically by window deletion
2543 functions so should not be required by the application programmer.
2544
2545 Notice that this function is mostly internal to wxWidgets and shouldn't be
2546 called by the user code.
2547
2548 \wxheading{Parameters}
2549
2550 \docparam{child}{Child window to remove.}
2551
2552
2553 \membersection{wxWindow::RemoveEventHandler}\label{wxwindowremoveeventhandler}
2554
2555 \func{bool}{RemoveEventHandler}{\param{wxEvtHandler *}{handler}}
2556
2557 Find the given {\it handler} in the windows event handler chain and remove (but
2558 not delete) it from it.
2559
2560 \wxheading{Parameters}
2561
2562 \docparam{handler}{The event handler to remove, must be non-{\tt NULL} and
2563 must be present in this windows event handlers chain}
2564
2565 \wxheading{Return value}
2566
2567 Returns {\tt true} if it was found and {\tt false} otherwise (this also results
2568 in an assert failure so this function should only be called when the
2569 handler is supposed to be there).
2570
2571 \wxheading{See also}
2572
2573 \helpref{PushEventHandler}{wxwindowpusheventhandler},\rtfsp
2574 \helpref{PopEventHandler}{wxwindowpopeventhandler}
2575
2576
2577 \membersection{wxWindow::Reparent}\label{wxwindowreparent}
2578
2579 \func{virtual bool}{Reparent}{\param{wxWindow* }{newParent}}
2580
2581 Reparents the window, i.e the window will be removed from its
2582 current parent window (e.g. a non-standard toolbar in a wxFrame)
2583 and then re-inserted into another.
2584
2585 \wxheading{Parameters}
2586
2587 \docparam{newParent}{New parent.}
2588
2589
2590 \membersection{wxWindow::ScreenToClient}\label{wxwindowscreentoclient}
2591
2592 \constfunc{virtual void}{ScreenToClient}{\param{int* }{x}, \param{int* }{y}}
2593
2594 \constfunc{virtual wxPoint}{ScreenToClient}{\param{const wxPoint\& }{pt}}
2595
2596 Converts from screen to client window coordinates.
2597
2598 \wxheading{Parameters}
2599
2600 \docparam{x}{Stores the screen x coordinate and receives the client x coordinate.}
2601
2602 \docparam{y}{Stores the screen x coordinate and receives the client x coordinate.}
2603
2604 \docparam{pt}{The screen position for the second form of the function.}
2605
2606 \pythonnote{In place of a single overloaded method name, wxPython
2607 implements the following methods:\par
2608 \indented{2cm}{\begin{twocollist}
2609 \twocolitem{{\bf ScreenToClient(point)}}{Accepts and returns a wxPoint}
2610 \twocolitem{{\bf ScreenToClientXY(x, y)}}{Returns a 2-tuple, (x, y)}
2611 \end{twocollist}}
2612 }
2613
2614
2615 \membersection{wxWindow::ScrollLines}\label{wxwindowscrolllines}
2616
2617 \func{virtual bool}{ScrollLines}{\param{int }{lines}}
2618
2619 Scrolls the window by the given number of lines down (if {\it lines} is
2620 positive) or up.
2621
2622 \wxheading{Return value}
2623
2624 Returns {\tt true} if the window was scrolled, {\tt false} if it was already
2625 on top/bottom and nothing was done.
2626
2627 \wxheading{Remarks}
2628
2629 This function is currently only implemented under MSW and wxTextCtrl under
2630 wxGTK (it also works for wxScrolledWindow derived classes under all
2631 platforms).
2632
2633 \wxheading{See also}
2634
2635 \helpref{ScrollPages}{wxwindowscrollpages}
2636
2637
2638 \membersection{wxWindow::ScrollPages}\label{wxwindowscrollpages}
2639
2640 \func{virtual bool}{ScrollPages}{\param{int }{pages}}
2641
2642 Scrolls the window by the given number of pages down (if {\it pages} is
2643 positive) or up.
2644
2645 \wxheading{Return value}
2646
2647 Returns {\tt true} if the window was scrolled, {\tt false} if it was already
2648 on top/bottom and nothing was done.
2649
2650 \wxheading{Remarks}
2651
2652 This function is currently only implemented under MSW and wxGTK.
2653
2654 \wxheading{See also}
2655
2656 \helpref{ScrollLines}{wxwindowscrolllines}
2657
2658
2659 \membersection{wxWindow::ScrollWindow}\label{wxwindowscrollwindow}
2660
2661 \func{virtual void}{ScrollWindow}{\param{int }{dx}, \param{int }{dy}, \param{const wxRect*}{ rect = NULL}}
2662
2663 Physically scrolls the pixels in the window and move child windows accordingly.
2664
2665 \wxheading{Parameters}
2666
2667 \docparam{dx}{Amount to scroll horizontally.}
2668
2669 \docparam{dy}{Amount to scroll vertically.}
2670
2671 \docparam{rect}{Rectangle to scroll, if it is \NULL, the whole window is
2672 scrolled (this is always the case under wxGTK which doesn't support this
2673 parameter)}
2674
2675 \wxheading{Remarks}
2676
2677 Note that you can often use \helpref{wxScrolledWindow}{wxscrolledwindow}
2678 instead of using this function directly.
2679
2680
2681 \membersection{wxWindow::SetAcceleratorTable}\label{wxwindowsetacceleratortable}
2682
2683 \func{virtual void}{SetAcceleratorTable}{\param{const wxAcceleratorTable\&}{ accel}}
2684
2685 Sets the accelerator table for this window. See \helpref{wxAcceleratorTable}{wxacceleratortable}.
2686
2687
2688 \membersection{wxWindow::SetAccessible}\label{wxwindowsetaccessible}
2689
2690 \func{void}{SetAccessible}{\param{wxAccessible*}{ accessible}}
2691
2692 Sets the accessible for this window. Any existing accessible for this window
2693 will be deleted first, if not identical to {\it accessible}.
2694
2695 See also \helpref{wxAccessible}{wxaccessible}.
2696
2697
2698 \membersection{wxWindow::SetAutoLayout}\label{wxwindowsetautolayout}
2699
2700 \func{void}{SetAutoLayout}{\param{bool}{ autoLayout}}
2701
2702 Determines whether the \helpref{wxWindow::Layout}{wxwindowlayout} function will
2703 be called automatically when the window is resized. Please note that this only
2704 happens for the windows usually used to contain children, namely
2705 \helpref{wxPanel}{wxpanel} and \helpref{wxTopLevelWindow}{wxtoplevelwindow}
2706 (and the classes deriving from them).
2707
2708 This method is called implicitly by
2709 \helpref{wxWindow::SetSizer}{wxwindowsetsizer} but if you use
2710 \helpref{wxWindow::SetConstraints}{wxwindowsetconstraints} you should call it
2711 manually or otherwise the window layout won't be correctly updated when its
2712 size changes.
2713
2714 \wxheading{Parameters}
2715
2716 \docparam{autoLayout}{Set this to \true if you wish the Layout function to be
2717 called automatically when the window is resized.}
2718
2719 \wxheading{See also}
2720
2721 \helpref{wxWindow::SetConstraints}{wxwindowsetconstraints}
2722
2723
2724 \membersection{wxWindow::SetBackgroundColour}\label{wxwindowsetbackgroundcolour}
2725
2726 \func{virtual bool}{SetBackgroundColour}{\param{const wxColour\& }{colour}}
2727
2728 Sets the background colour of the window.
2729
2730 Please see \helpref{InheritAttributes}{wxwindowinheritattributes} for
2731 explanation of the difference between this method and
2732 \helpref{SetOwnBackgroundColour}{wxwindowsetownbackgroundcolour}.
2733
2734 \wxheading{Parameters}
2735
2736 \docparam{colour}{The colour to be used as the background colour, pass
2737 {\tt wxNullColour} to reset to the default colour.}
2738
2739 \wxheading{Remarks}
2740
2741 The background colour is usually painted by the default\rtfsp
2742 \helpref{wxEraseEvent}{wxeraseevent} event handler function
2743 under Windows and automatically under GTK.
2744
2745 Note that setting the background colour does not cause an immediate refresh, so you
2746 may wish to call \helpref{wxWindow::ClearBackground}{wxwindowclearbackground} or \helpref{wxWindow::Refresh}{wxwindowrefresh} after
2747 calling this function.
2748
2749 Using this function will disable attempts to use themes for this
2750 window, if the system supports them. Use with care since usually the
2751 themes represent the appearance chosen by the user to be used for all
2752 applications on the system.
2753
2754
2755 \wxheading{See also}
2756
2757 \helpref{wxWindow::GetBackgroundColour}{wxwindowgetbackgroundcolour},\rtfsp
2758 \helpref{wxWindow::SetForegroundColour}{wxwindowsetforegroundcolour},\rtfsp
2759 \helpref{wxWindow::GetForegroundColour}{wxwindowgetforegroundcolour},\rtfsp
2760 \helpref{wxWindow::ClearBackground}{wxwindowclearbackground},\rtfsp
2761 \helpref{wxWindow::Refresh}{wxwindowrefresh},\rtfsp
2762 \helpref{wxEraseEvent}{wxeraseevent}
2763
2764 \membersection{wxWindow::SetBackgroundStyle}\label{wxwindowsetbackgroundstyle}
2765
2766 \func{virtual void}{SetBackgroundStyle}{\param{wxBackgroundStyle}{ style}}
2767
2768 Sets the background style of the window. The background style indicates
2769 whether background colour should be determined by the system (wxBG\_STYLE\_SYSTEM),
2770 be set to a specific colour (wxBG\_STYLE\_COLOUR), or should be left to the
2771 application to implement (wxBG\_STYLE\_CUSTOM).
2772
2773 On GTK+, use of wxBG\_STYLE\_CUSTOM allows the flicker-free drawing of a custom
2774 background, such as a tiled bitmap. Currently the style has no effect on other platforms.
2775
2776 \wxheading{See also}
2777
2778 \helpref{wxWindow::SetBackgroundColour}{wxwindowsetbackgroundcolour},\rtfsp
2779 \helpref{wxWindow::GetForegroundColour}{wxwindowgetforegroundcolour},\rtfsp
2780 \helpref{wxWindow::GetBackgroundStyle}{wxwindowgetbackgroundstyle}
2781
2782
2783 \membersection{wxWindow::SetInitialSize}\label{wxwindowsetinitialsize}
2784
2785 \func{void}{SetInitialSize}{\param{const wxSize\& }{size = wxDefaultSize}}
2786
2787 A {\it smart} SetSize that will fill in default size components with the
2788 window's {\it best} size values. Also sets the window's minsize to
2789 the value passed in for use with sizers. This means that if a full or
2790 partial size is passed to this function then the sizers will use that
2791 size instead of the results of GetBestSize to determine the minimum
2792 needs of the window for layout.
2793
2794 Most controls will use this to set their initial size, and their min
2795 size to the passed in value (if any.)
2796
2797
2798 \wxheading{See also}
2799
2800 \helpref{wxWindow::SetSize}{wxwindowsetsize},\rtfsp
2801 \helpref{wxWindow::GetBestSize}{wxwindowgetbestsize},\rtfsp
2802 \helpref{wxWindow::GetEffectiveMinSize}{wxwindowgeteffectiveminsize}
2803
2804
2805 \membersection{wxWindow::SetCaret}\label{wxwindowsetcaret}
2806
2807 \constfunc{void}{SetCaret}{\param{wxCaret *}{caret}}
2808
2809 Sets the \helpref{caret}{wxcaret} associated with the window.
2810
2811
2812 \membersection{wxWindow::SetClientSize}\label{wxwindowsetclientsize}
2813
2814 \func{virtual void}{SetClientSize}{\param{int}{ width}, \param{int}{ height}}
2815
2816 \func{virtual void}{SetClientSize}{\param{const wxSize\&}{ size}}
2817
2818 This sets the size of the window client area in pixels. Using this function to size a window
2819 tends to be more device-independent than \helpref{wxWindow::SetSize}{wxwindowsetsize}, since the application need not
2820 worry about what dimensions the border or title bar have when trying to fit the window
2821 around panel items, for example.
2822
2823 \wxheading{Parameters}
2824
2825 \docparam{width}{The required client area width.}
2826
2827 \docparam{height}{The required client area height.}
2828
2829 \docparam{size}{The required client size.}
2830
2831 \pythonnote{In place of a single overloaded method name, wxPython
2832 implements the following methods:\par
2833 \indented{2cm}{\begin{twocollist}
2834 \twocolitem{{\bf SetClientSize(size)}}{Accepts a wxSize}
2835 \twocolitem{{\bf SetClientSizeWH(width, height)}}{}
2836 \end{twocollist}}
2837 }
2838
2839
2840 \membersection{wxWindow::SetConstraints}\label{wxwindowsetconstraints}
2841
2842 \func{void}{SetConstraints}{\param{wxLayoutConstraints* }{constraints}}
2843
2844 Sets the window to have the given layout constraints. The window
2845 will then own the object, and will take care of its deletion.
2846 If an existing layout constraints object is already owned by the
2847 window, it will be deleted.
2848
2849 \wxheading{Parameters}
2850
2851 \docparam{constraints}{The constraints to set. Pass NULL to disassociate and delete the window's
2852 constraints.}
2853
2854 \wxheading{Remarks}
2855
2856 You must call \helpref{wxWindow::SetAutoLayout}{wxwindowsetautolayout} to tell a window to use
2857 the constraints automatically in OnSize; otherwise, you must override OnSize and call Layout()
2858 explicitly. When setting both a wxLayoutConstraints and a \helpref{wxSizer}{wxsizer}, only the
2859 sizer will have effect.
2860
2861 \membersection{wxWindow::SetContainingSizer}\label{wxwindowsetcontainingsizer}
2862
2863 \func{void}{SetContainingSizer}{\param{wxSizer* }{sizer}}
2864
2865 This normally does not need to be called by user code. It is called
2866 when a window is added to a sizer, and is used so the window can
2867 remove itself from the sizer when it is destroyed.
2868
2869
2870 \membersection{wxWindow::SetCursor}\label{wxwindowsetcursor}
2871
2872 \func{virtual void}{SetCursor}{\param{const wxCursor\&}{cursor}}
2873
2874 % VZ: the docs are correct, if the code doesn't behave like this, it must be
2875 % changed
2876 Sets the window's cursor. Notice that the window cursor also sets it for the
2877 children of the window implicitly.
2878
2879 The {\it cursor} may be {\tt wxNullCursor} in which case the window cursor will
2880 be reset back to default.
2881
2882 \wxheading{Parameters}
2883
2884 \docparam{cursor}{Specifies the cursor that the window should normally display.}
2885
2886 \wxheading{See also}
2887
2888 \helpref{::wxSetCursor}{wxsetcursor}, \helpref{wxCursor}{wxcursor}
2889
2890
2891 \membersection{wxWindow::SetDropTarget}\label{wxwindowsetdroptarget}
2892
2893 \func{void}{SetDropTarget}{\param{wxDropTarget*}{ target}}
2894
2895 Associates a drop target with this window.
2896
2897 If the window already has a drop target, it is deleted.
2898
2899 \wxheading{See also}
2900
2901 \helpref{wxWindow::GetDropTarget}{wxwindowgetdroptarget},
2902 \helpref{Drag and drop overview}{wxdndoverview}
2903
2904
2905
2906 \membersection{wxWindow::SetInitialBestSize}\label{wxwindowsetinitialbestsize}
2907
2908 \func{virtual void}{SetInitialBestSize}{\param{const wxSize\& }{size}}
2909
2910 Sets the initial window size if none is given (i.e. at least one of the
2911 components of the size passed to ctor/Create() is wxDefaultCoord).
2912
2913 \membersection{wxWindow::SetEventHandler}\label{wxwindowseteventhandler}
2914
2915 \func{void}{SetEventHandler}{\param{wxEvtHandler* }{handler}}
2916
2917 Sets the event handler for this window.
2918
2919 \wxheading{Parameters}
2920
2921 \docparam{handler}{Specifies the handler to be set.}
2922
2923 \wxheading{Remarks}
2924
2925 An event handler is an object that is capable of processing the events
2926 sent to a window. By default, the window is its own event handler, but
2927 an application may wish to substitute another, for example to allow
2928 central implementation of event-handling for a variety of different
2929 window classes.
2930
2931 It is usually better to use \helpref{wxWindow::PushEventHandler}{wxwindowpusheventhandler} since
2932 this sets up a chain of event handlers, where an event not handled by one event handler is
2933 handed to the next one in the chain.
2934
2935 \wxheading{See also}
2936
2937 \helpref{wxWindow::GetEventHandler}{wxwindowgeteventhandler},\rtfsp
2938 \helpref{wxWindow::PushEventHandler}{wxwindowpusheventhandler},\rtfsp
2939 \helpref{wxWindow::PopEventHandler}{wxwindowpusheventhandler},\rtfsp
2940 \helpref{wxEvtHandler::ProcessEvent}{wxevthandlerprocessevent},\rtfsp
2941 \helpref{wxEvtHandler}{wxevthandler}
2942
2943
2944 \membersection{wxWindow::SetExtraStyle}\label{wxwindowsetextrastyle}
2945
2946 \func{void}{SetExtraStyle}{\param{long }{exStyle}}
2947
2948 Sets the extra style bits for the window. The currently defined extra style
2949 bits are:
2950
2951 \twocolwidtha{5cm}%
2952 \begin{twocollist}\itemsep=0pt
2953 \twocolitem{\windowstyle{wxWS\_EX\_VALIDATE\_RECURSIVELY}}{TransferDataTo/FromWindow()
2954 and Validate() methods will recursively descend into all children of the
2955 window if it has this style flag set.}
2956 \twocolitem{\windowstyle{wxWS\_EX\_BLOCK\_EVENTS}}{Normally, the command
2957 events are propagated upwards to the window parent recursively until a handler
2958 for them is found. Using this style allows to prevent them from being
2959 propagated beyond this window. Notice that wxDialog has this style on by
2960 default for the reasons explained in the
2961 \helpref{event processing overview}{eventprocessing}.}
2962 \twocolitem{\windowstyle{wxWS\_EX\_TRANSIENT}}{This can be used to prevent a
2963 window from being used as an implicit parent for the dialogs which were
2964 created without a parent. It is useful for the windows which can disappear at
2965 any moment as creating children of such windows results in fatal problems.}
2966 \twocolitem{\windowstyle{wxWS\_EX\_CONTEXTHELP}}{Under Windows, puts a query
2967 button on the caption. When pressed, Windows will go into a context-sensitive
2968 help mode and wxWidgets will send a wxEVT\_HELP event if the user clicked on an
2969 application window.
2970 This style cannot be used together with wxMAXIMIZE\_BOX or wxMINIMIZE\_BOX, so
2971 these two styles are automatically turned of if this one is used.}
2972 \twocolitem{\windowstyle{wxWS\_EX\_PROCESS\_IDLE}}{This window should always process idle events, even
2973 if the mode set by \helpref{wxIdleEvent::SetMode}{wxidleeventsetmode} is wxIDLE\_PROCESS\_SPECIFIED.}
2974 \twocolitem{\windowstyle{wxWS\_EX\_PROCESS\_UI\_UPDATES}}{This window should always process UI update events,
2975 even if the mode set by \helpref{wxUpdateUIEvent::SetMode}{wxupdateuieventsetmode} is wxUPDATE\_UI\_PROCESS\_SPECIFIED.}
2976 \end{twocollist}
2977
2978
2979 \membersection{wxWindow::SetFocus}\label{wxwindowsetfocus}
2980
2981 \func{virtual void}{SetFocus}{\void}
2982
2983 This sets the window to receive keyboard input.
2984
2985 \wxheading{See also}
2986
2987 \helpref{wxFocusEvent}{wxfocusevent}
2988 \helpref{wxPanel::SetFocus}{wxpanelsetfocus}
2989 \helpref{wxPanel::SetFocusIgnoringChildren}{wxpanelsetfocusignoringchildren}
2990
2991
2992 \membersection{wxWindow::SetFocusFromKbd}\label{wxwindowsetfocusfromkbd}
2993
2994 \func{virtual void}{SetFocusFromKbd}{\void}
2995
2996 This function is called by wxWidgets keyboard navigation code when the user
2997 gives the focus to this window from keyboard (e.g. using {\tt TAB} key).
2998 By default this method simply calls \helpref{SetFocus}{wxwindowsetfocus} but
2999 can be overridden to do something in addition to this in the derived classes.
3000
3001
3002 \membersection{wxWindow::SetFont}\label{wxwindowsetfont}
3003
3004 \func{bool}{SetFont}{\param{const wxFont\& }{font}}
3005
3006 Sets the font for this window. This function should not be called for the
3007 parent window if you don't want its font to be inherited by its children,
3008 use \helpref{SetOwnFont}{wxwindowsetownfont} instead in this case and
3009 see \helpref{InheritAttributes}{wxwindowinheritattributes} for more
3010 explanations.
3011
3012 Please notice that the given font is \emph{not} automatically used for
3013 \helpref{wxPaintDC}{wxpaintdc} objects associated with this window, you need to
3014 call \helpref{wxDC::SetFont()}{wxdcsetfont} too. However this font is used by
3015 any standard controls for drawing their text as well as by
3016 \helpref{wxWindow::GetTextExtent()}{wxwindowgettextextent}.
3017
3018 \wxheading{Parameters}
3019
3020 \docparam{font}{Font to associate with this window, pass
3021 {\tt wxNullFont} to reset to the default font.}
3022
3023 \wxheading{Return value}
3024
3025 \true if the want was really changed, \false if it was already set to this
3026 \arg{font} and so nothing was done.
3027
3028 \wxheading{See also}
3029
3030 \helpref{wxWindow::GetFont}{wxwindowgetfont},\\
3031 \helpref{InheritAttributes}{wxwindowinheritattributes}
3032
3033
3034 \membersection{wxWindow::SetForegroundColour}\label{wxwindowsetforegroundcolour}
3035
3036 \func{virtual void}{SetForegroundColour}{\param{const wxColour\& }{colour}}
3037
3038 Sets the foreground colour of the window.
3039
3040 Please see \helpref{InheritAttributes}{wxwindowinheritattributes} for
3041 explanation of the difference between this method and
3042 \helpref{SetOwnForegroundColour}{wxwindowsetownforegroundcolour}.
3043
3044 \wxheading{Parameters}
3045
3046 \docparam{colour}{The colour to be used as the foreground colour, pass
3047 {\tt wxNullColour} to reset to the default colour.}
3048
3049 \wxheading{Remarks}
3050
3051 The interpretation of foreground colour is open to interpretation according
3052 to the window class; it may be the text colour or other colour, or it may not
3053 be used at all.
3054
3055 Using this function will disable attempts to use themes for this
3056 window, if the system supports them. Use with care since usually the
3057 themes represent the appearance chosen by the user to be used for all
3058 applications on the system.
3059
3060 \wxheading{See also}
3061
3062 \helpref{wxWindow::GetForegroundColour}{wxwindowgetforegroundcolour},\rtfsp
3063 \helpref{wxWindow::SetBackgroundColour}{wxwindowsetbackgroundcolour},\rtfsp
3064 \helpref{wxWindow::GetBackgroundColour}{wxwindowgetbackgroundcolour},\rtfsp
3065 \helpref{wxWindow::ShouldInheritColours}{wxwindowshouldinheritcolours}
3066
3067
3068 \membersection{wxWindow::SetHelpText}\label{wxwindowsethelptext}
3069
3070 \func{virtual void}{SetHelpText}{\param{const wxString\& }{helpText}}
3071
3072 Sets the help text to be used as context-sensitive help for this window.
3073
3074 Note that the text is actually stored by the current \helpref{wxHelpProvider}{wxhelpprovider} implementation,
3075 and not in the window object itself.
3076
3077 \wxheading{See also}
3078
3079 \helpref{GetHelpText}{wxwindowgethelptext}, \helpref{wxHelpProvider}{wxhelpprovider}
3080
3081
3082 \membersection{wxWindow::SetId}\label{wxwindowsetid}
3083
3084 \func{void}{SetId}{\param{int}{ id}}
3085
3086 Sets the identifier of the window.
3087
3088 \wxheading{Remarks}
3089
3090 Each window has an integer identifier. If the application has not provided one,
3091 an identifier will be generated. Normally, the identifier should be provided
3092 on creation and should not be modified subsequently.
3093
3094 \wxheading{See also}
3095
3096 \helpref{wxWindow::GetId}{wxwindowgetid},\rtfsp
3097 \helpref{Window identifiers}{windowids}
3098
3099
3100
3101 \membersection{wxWindow::SetLabel}\label{wxwindowsetlabel}
3102
3103 \func{virtual void}{SetLabel}{\param{const wxString\& }{label}}
3104
3105 Sets the window's label.
3106
3107 \wxheading{Parameters}
3108
3109 \docparam{label}{The window label.}
3110
3111 \wxheading{See also}
3112
3113 \helpref{wxWindow::GetLabel}{wxwindowgetlabel}
3114
3115
3116 \membersection{wxWindow::SetMaxSize}\label{wxwindowsetmaxsize}
3117
3118 \func{void}{SetMaxSize}{\param{const wxSize\& }{size}}
3119
3120 Sets the maximum size of the window, to indicate to the sizer layout mechanism
3121 that this is the maximum possible size.
3122
3123 \membersection{wxWindow::SetMinSize}\label{wxwindowsetminsize}
3124
3125 \func{void}{SetMinSize}{\param{const wxSize\& }{size}}
3126
3127 Sets the minimum size of the window, to indicate to the sizer layout mechanism
3128 that this is the minimum required size. You may need to call this
3129 if you change the window size after construction and before adding
3130 to its parent sizer.
3131
3132 \membersection{wxWindow::SetName}\label{wxwindowsetname}
3133
3134 \func{virtual void}{SetName}{\param{const wxString\& }{name}}
3135
3136 Sets the window's name.
3137
3138 \wxheading{Parameters}
3139
3140 \docparam{name}{A name to set for the window.}
3141
3142 \wxheading{See also}
3143
3144 \helpref{wxWindow::GetName}{wxwindowgetname}
3145
3146
3147 \membersection{wxWindow::SetOwnBackgroundColour}\label{wxwindowsetownbackgroundcolour}
3148
3149 \func{void}{SetOwnBackgroundColour}{\param{const wxColour\& }{colour}}
3150
3151 Sets the background colour of the window but prevents it from being inherited
3152 by the children of this window.
3153
3154 \wxheading{See also}
3155
3156 \helpref{SetBackgroundColour}{wxwindowsetbackgroundcolour},\rtfsp
3157 \helpref{InheritAttributes}{wxwindowinheritattributes}
3158
3159
3160 \membersection{wxWindow::SetOwnFont}\label{wxwindowsetownfont}
3161
3162 \func{void}{SetOwnFont}{\param{const wxFont\& }{font}}
3163
3164 Sets the font of the window but prevents it from being inherited by the
3165 children of this window.
3166
3167 \wxheading{See also}
3168
3169 \helpref{SetFont}{wxwindowsetfont},\rtfsp
3170 \helpref{InheritAttributes}{wxwindowinheritattributes}
3171
3172
3173 \membersection{wxWindow::SetOwnForegroundColour}\label{wxwindowsetownforegroundcolour}
3174
3175 \func{void}{SetOwnForegroundColour}{\param{const wxColour\& }{colour}}
3176
3177 Sets the foreground colour of the window but prevents it from being inherited
3178 by the children of this window.
3179
3180 \wxheading{See also}
3181
3182 \helpref{SetForegroundColour}{wxwindowsetforegroundcolour},\rtfsp
3183 \helpref{InheritAttributes}{wxwindowinheritattributes}
3184
3185
3186 \membersection{wxWindow::SetPalette}\label{wxwindowsetpalette}
3187
3188 \func{virtual void}{SetPalette}{\param{wxPalette* }{palette}}
3189
3190 Obsolete - use \helpref{wxDC::SetPalette}{wxdcsetpalette} instead.
3191
3192
3193 \membersection{wxWindow::SetScrollbar}\label{wxwindowsetscrollbar}
3194
3195 \func{virtual void}{SetScrollbar}{\param{int }{orientation}, \param{int }{position},\rtfsp
3196 \param{int }{thumbSize}, \param{int }{range},\rtfsp
3197 \param{bool }{refresh = {\tt true}}}
3198
3199 Sets the scrollbar properties of a built-in scrollbar.
3200
3201 \wxheading{Parameters}
3202
3203 \docparam{orientation}{Determines the scrollbar whose page size is to be set. May be wxHORIZONTAL or wxVERTICAL.}
3204
3205 \docparam{position}{The position of the scrollbar in scroll units.}
3206
3207 \docparam{thumbSize}{The size of the thumb, or visible portion of the scrollbar, in scroll units.}
3208
3209 \docparam{range}{The maximum position of the scrollbar.}
3210
3211 \docparam{refresh}{{\tt true} to redraw the scrollbar, {\tt false} otherwise.}
3212
3213 \wxheading{Remarks}
3214
3215 Let's say you wish to display 50 lines of text, using the same font.
3216 The window is sized so that you can only see 16 lines at a time.
3217
3218 You would use:
3219
3220 {\small%
3221 \begin{verbatim}
3222 SetScrollbar(wxVERTICAL, 0, 16, 50);
3223 \end{verbatim}
3224 }
3225
3226 Note that with the window at this size, the thumb position can never go
3227 above 50 minus 16, or 34.
3228
3229 You can determine how many lines are currently visible by dividing the current view
3230 size by the character height in pixels.
3231
3232 When defining your own scrollbar behaviour, you will always need to recalculate
3233 the scrollbar settings when the window size changes. You could therefore put your
3234 scrollbar calculations and SetScrollbar
3235 call into a function named AdjustScrollbars, which can be called initially and also
3236 from your \helpref{wxSizeEvent}{wxsizeevent} handler function.
3237
3238 \wxheading{See also}
3239
3240 \helpref{Scrolling overview}{scrollingoverview},\rtfsp
3241 \helpref{wxScrollBar}{wxscrollbar}, \helpref{wxScrolledWindow}{wxscrolledwindow},\rtfsp
3242 \helpref{wxScrollWinEvent}{wxscrollwinevent}
3243
3244 \begin{comment}
3245
3246
3247 \membersection{wxWindow::SetScrollPage}\label{wxwindowsetscrollpage}
3248
3249 \func{virtual void}{SetScrollPage}{\param{int }{orientation}, \param{int }{pageSize}, \param{bool }{refresh = {\tt true}}}
3250
3251 Sets the page size of one of the built-in scrollbars.
3252
3253 \wxheading{Parameters}
3254
3255 \docparam{orientation}{Determines the scrollbar whose page size is to be set. May be wxHORIZONTAL or wxVERTICAL.}
3256
3257 \docparam{pageSize}{Page size in scroll units.}
3258
3259 \docparam{refresh}{{\tt true} to redraw the scrollbar, {\tt false} otherwise.}
3260
3261 \wxheading{Remarks}
3262
3263 The page size of a scrollbar is the number of scroll units that the scroll thumb travels when you
3264 click on the area above/left of or below/right of the thumb. Normally you will want a whole visible
3265 page to be scrolled, i.e. the size of the current view (perhaps the window client size). This
3266 value has to be adjusted when the window is resized, since the page size will have changed.
3267
3268 In addition to specifying how far the scroll thumb travels when paging, in Motif and some versions of Windows
3269 the thumb changes size to reflect the page size relative to the length of the document. When the
3270 document size is only slightly bigger than the current view (window) size, almost all of the scrollbar
3271 will be taken up by the thumb. When the two values become the same, the scrollbar will (on some systems)
3272 disappear.
3273
3274 Currently, this function should be called before SetPageRange, because of a quirk in the Windows
3275 handling of pages and ranges.
3276
3277 \wxheading{See also}
3278
3279 \helpref{wxWindow::SetScrollPos}{wxwindowsetscrollpos},\rtfsp
3280 \helpref{wxWindow::GetScrollPos}{wxwindowgetscrollpos},\rtfsp
3281 \helpref{wxWindow::GetScrollPage}{wxwindowgetscrollpage},\rtfsp
3282 \helpref{wxScrollBar}{wxscrollbar}, \helpref{wxScrolledWindow}{wxscrolledwindow}
3283 \end{comment}
3284
3285
3286 \membersection{wxWindow::SetScrollPos}\label{wxwindowsetscrollpos}
3287
3288 \func{virtual void}{SetScrollPos}{\param{int }{orientation}, \param{int }{pos}, \param{bool }{refresh = {\tt true}}}
3289
3290 Sets the position of one of the built-in scrollbars.
3291
3292 \wxheading{Parameters}
3293
3294 \docparam{orientation}{Determines the scrollbar whose position is to be set. May be wxHORIZONTAL or wxVERTICAL.}
3295
3296 \docparam{pos}{Position in scroll units.}
3297
3298 \docparam{refresh}{{\tt true} to redraw the scrollbar, {\tt false} otherwise.}
3299
3300 \wxheading{Remarks}
3301
3302 This function does not directly affect the contents of the window: it is up to the
3303 application to take note of scrollbar attributes and redraw contents accordingly.
3304
3305 \wxheading{See also}
3306
3307 \helpref{wxWindow::SetScrollbar}{wxwindowsetscrollbar},\rtfsp
3308 \helpref{wxWindow::GetScrollPos}{wxwindowgetscrollpos},\rtfsp
3309 \helpref{wxWindow::GetScrollThumb}{wxwindowgetscrollthumb},\rtfsp
3310 \helpref{wxScrollBar}{wxscrollbar}, \helpref{wxScrolledWindow}{wxscrolledwindow}
3311
3312 \begin{comment}
3313
3314
3315 \membersection{wxWindow::SetScrollRange}\label{wxwindowsetscrollrange}
3316
3317 \func{virtual void}{SetScrollRange}{\param{int }{orientation}, \param{int }{range}, \param{bool }{refresh = {\tt true}}}
3318
3319 Sets the range of one of the built-in scrollbars.
3320
3321 \wxheading{Parameters}
3322
3323 \docparam{orientation}{Determines the scrollbar whose range is to be set. May be wxHORIZONTAL or wxVERTICAL.}
3324
3325 \docparam{range}{Scroll range.}
3326
3327 \docparam{refresh}{{\tt true} to redraw the scrollbar, {\tt false} otherwise.}
3328
3329 \wxheading{Remarks}
3330
3331 The range of a scrollbar is the number of steps that the thumb may travel, rather than the total
3332 object length of the scrollbar. If you are implementing a scrolling window, for example, you
3333 would adjust the scroll range when the window is resized, by subtracting the window view size from the
3334 total virtual window size. When the two sizes are the same (all the window is visible), the range goes to zero
3335 and usually the scrollbar will be automatically hidden.
3336
3337 \wxheading{See also}
3338
3339 \helpref{wxWindow::SetScrollPos}{wxwindowsetscrollpos},\rtfsp
3340 \helpref{wxWindow::SetScrollPage}{wxwindowsetscrollpage},\rtfsp
3341 \helpref{wxWindow::GetScrollPos}{wxwindowgetscrollpos},\rtfsp
3342 \helpref{wxWindow::GetScrollPage}{wxwindowgetscrollpage},\rtfsp
3343 \helpref{wxScrollBar}{wxscrollbar}, \helpref{wxScrolledWindow}{wxscrolledwindow}
3344 \end{comment}
3345
3346
3347 \membersection{wxWindow::SetSize}\label{wxwindowsetsize}
3348
3349 \func{virtual void}{SetSize}{\param{int}{ x}, \param{int}{ y}, \param{int}{ width}, \param{int}{ height},
3350 \param{int}{ sizeFlags = wxSIZE\_AUTO}}
3351
3352 \func{virtual void}{SetSize}{\param{const wxRect\&}{ rect}}
3353
3354 Sets the position and size of the window in pixels.
3355
3356 \func{virtual void}{SetSize}{\param{int}{ width}, \param{int}{ height}}
3357
3358 \func{virtual void}{SetSize}{\param{const wxSize\&}{ size}}
3359
3360 Sets the size of the window in pixels.
3361
3362 \wxheading{Parameters}
3363
3364 \docparam{x}{Required x position in pixels, or wxDefaultCoord to indicate that the existing
3365 value should be used.}
3366
3367 \docparam{y}{Required y position in pixels, or wxDefaultCoord to indicate that the existing
3368 value should be used.}
3369
3370 \docparam{width}{Required width in pixels, or wxDefaultCoord to indicate that the existing
3371 value should be used.}
3372
3373 \docparam{height}{Required height position in pixels, or wxDefaultCoord to indicate that the existing
3374 value should be used.}
3375
3376 \docparam{size}{\helpref{wxSize}{wxsize} object for setting the size.}
3377
3378 \docparam{rect}{\helpref{wxRect}{wxrect} object for setting the position and size.}
3379
3380 \docparam{sizeFlags}{Indicates the interpretation of other parameters. It is a bit list of the following:
3381
3382 {\bf wxSIZE\_AUTO\_WIDTH}: a $wxDefaultCoord$ width value is taken to indicate
3383 a wxWidgets-supplied default width.\\
3384 {\bf wxSIZE\_AUTO\_HEIGHT}: a $wxDefaultCoord$ height value is taken to indicate
3385 a wxWidgets-supplied default height.\\
3386 {\bf wxSIZE\_AUTO}: $wxDefaultCoord$ size values are taken to indicate
3387 a wxWidgets-supplied default size.\\
3388 {\bf wxSIZE\_USE\_EXISTING}: existing dimensions should be used
3389 if $wxDefaultCoord$ values are supplied.\\
3390 {\bf wxSIZE\_ALLOW\_MINUS\_ONE}: allow negative dimensions (ie. value of $wxDefaultCoord$) to be interpreted
3391 as real dimensions, not default values.
3392 {\bf wxSIZE\_FORCE}: normally, if the position and the size of the window are
3393 already the same as the parameters of this function, nothing is done. but with
3394 this flag a window resize may be forced even in this case (supported in wx
3395 2.6.2 and later and only implemented for MSW and ignored elsewhere currently)
3396 }
3397
3398 \wxheading{Remarks}
3399
3400 The second form is a convenience for calling the first form with default
3401 x and y parameters, and must be used with non-default width and height values.
3402
3403 The first form sets the position and optionally size, of the window.
3404 Parameters may be $wxDefaultCoord$ to indicate either that a default should be supplied
3405 by wxWidgets, or that the current value of the dimension should be used.
3406
3407 \wxheading{See also}
3408
3409 \helpref{wxWindow::Move}{wxwindowmove}
3410
3411 \pythonnote{In place of a single overloaded method name, wxPython
3412 implements the following methods:\par
3413 \indented{2cm}{\begin{twocollist}
3414 \twocolitem{{\bf SetDimensions(x, y, width, height, sizeFlags=wxSIZE\_AUTO)}}{}
3415 \twocolitem{{\bf SetSize(size)}}{}
3416 \twocolitem{{\bf SetPosition(point)}}{}
3417 \end{twocollist}}
3418 }
3419
3420
3421 \membersection{wxWindow::SetSizeHints}\label{wxwindowsetsizehints}
3422
3423 Use of this function for windows which are not toplevel windows
3424 (such as wxDialog or wxFrame) is discouraged. Please use
3425 \helpref{SetMinSize}{wxwindowsetminsize} and \helpref{SetMaxSize}{wxwindowsetmaxsize}
3426 instead.
3427
3428 \wxheading{See also}
3429
3430 \helpref{wxTopLevelWindow::SetSizeHints}{wxtoplevelwindowsetsizehints}.
3431
3432
3433 \membersection{wxWindow::SetSizer}\label{wxwindowsetsizer}
3434
3435 \func{void}{SetSizer}{\param{wxSizer* }{sizer}, \param{bool }{deleteOld=true}}
3436
3437 Sets the window to have the given layout sizer. The window
3438 will then own the object, and will take care of its deletion.
3439 If an existing layout constraints object is already owned by the
3440 window, it will be deleted if the deleteOld parameter is true.
3441
3442 Note that this function will also call
3443 \helpref{SetAutoLayout}{wxwindowsetautolayout} implicitly with {\tt true}
3444 parameter if the {\it sizer}\/ is non-NULL and {\tt false} otherwise.
3445
3446 \wxheading{Parameters}
3447
3448 \docparam{sizer}{The sizer to set. Pass NULL to disassociate and conditionally delete
3449 the window's sizer. See below.}
3450
3451 \docparam{deleteOld}{If true (the default), this will delete any pre-existing sizer.
3452 Pass false if you wish to handle deleting the old sizer yourself.}
3453
3454 \wxheading{Remarks}
3455
3456 SetSizer now enables and disables Layout automatically, but prior to wxWidgets 2.3.3
3457 the following applied:
3458
3459 You must call \helpref{wxWindow::SetAutoLayout}{wxwindowsetautolayout} to tell a window to use
3460 the sizer automatically in OnSize; otherwise, you must override OnSize and call Layout()
3461 explicitly. When setting both a wxSizer and a \helpref{wxLayoutConstraints}{wxlayoutconstraints},
3462 only the sizer will have effect.
3463
3464
3465 \membersection{wxWindow::SetSizerAndFit}\label{wxwindowsetsizerandfit}
3466
3467 \func{void}{SetSizerAndFit}{\param{wxSizer* }{sizer}, \param{bool }{deleteOld=true}}
3468
3469 The same as \helpref{SetSizer}{wxwindowsetsizer}, except it also sets the size hints
3470 for the window based on the sizer's minimum size.
3471
3472
3473 \membersection{wxWindow::SetThemeEnabled}\label{wxwindowsetthemeenabled}
3474
3475 \func{virtual void}{SetThemeEnabled}{\param{bool }{enable}}
3476
3477 This function tells a window if it should use the system's "theme" code
3478 to draw the windows' background instead if its own background drawing
3479 code. This does not always have any effect since the underlying platform
3480 obviously needs to support the notion of themes in user defined windows.
3481 One such platform is GTK+ where windows can have (very colourful) backgrounds
3482 defined by a user's selected theme.
3483
3484 Dialogs, notebook pages and the status bar have this flag set to true
3485 by default so that the default look and feel is simulated best.
3486
3487
3488 \membersection{wxWindow::SetToolTip}\label{wxwindowsettooltip}
3489
3490 \func{void}{SetToolTip}{\param{const wxString\& }{tip}}
3491
3492 \func{void}{SetToolTip}{\param{wxToolTip* }{tip}}
3493
3494 Attach a tooltip to the window.
3495
3496 See also: \helpref{GetToolTip}{wxwindowgettooltip},
3497 \helpref{wxToolTip}{wxtooltip}
3498
3499
3500 \membersection{wxWindow::SetValidator}\label{wxwindowsetvalidator}
3501
3502 \func{virtual void}{SetValidator}{\param{const wxValidator\&}{ validator}}
3503
3504 Deletes the current validator (if any) and sets the window validator, having called wxValidator::Clone to
3505 create a new validator of this type.
3506
3507
3508 \membersection{wxWindow::SetVirtualSize}\label{wxwindowsetvirtualsize}
3509
3510 \func{void}{SetVirtualSize}{\param{int}{ width}, \param{int}{ height}}
3511
3512 \func{void}{SetVirtualSize}{\param{const wxSize\&}{ size}}
3513
3514 Sets the virtual size of the window in pixels.
3515
3516
3517 \membersection{wxWindow::SetVirtualSizeHints}\label{wxwindowsetvirtualsizehints}
3518
3519 \func{virtual void}{SetVirtualSizeHints}{\param{int}{ minW},\param{int}{ minH}, \param{int}{ maxW=-1}, \param{int}{ maxH=-1}}
3520
3521 \func{void}{SetVirtualSizeHints}{\param{const wxSize\&}{ minSize=wxDefaultSize},
3522 \param{const wxSize\&}{ maxSize=wxDefaultSize}}
3523
3524
3525 Allows specification of minimum and maximum virtual window sizes.
3526 If a pair of values is not set (or set to -1), the default values
3527 will be used.
3528
3529 \wxheading{Parameters}
3530
3531 \docparam{minW}{Specifies the minimum width allowable.}
3532
3533 \docparam{minH}{Specifies the minimum height allowable.}
3534
3535 \docparam{maxW}{Specifies the maximum width allowable.}
3536
3537 \docparam{maxH}{Specifies the maximum height allowable.}
3538
3539 \docparam{minSize}{Minimum size.}
3540
3541 \docparam{maxSize}{Maximum size.}
3542
3543 \wxheading{Remarks}
3544
3545 If this function is called, the user will not be able to size the virtual area
3546 of the window outside the given bounds.
3547
3548
3549 \membersection{wxWindow::SetWindowStyle}\label{wxwindowsetwindowstyle}
3550
3551 \func{void}{SetWindowStyle}{\param{long}{ style}}
3552
3553 Identical to \helpref{SetWindowStyleFlag}{wxwindowsetwindowstyleflag}.
3554
3555
3556 \membersection{wxWindow::SetWindowStyleFlag}\label{wxwindowsetwindowstyleflag}
3557
3558 \func{virtual void}{SetWindowStyleFlag}{\param{long}{ style}}
3559
3560 Sets the style of the window. Please note that some styles cannot be changed
3561 after the window creation and that \helpref{Refresh()}{wxwindowrefresh} might
3562 need to be be called after changing the others for the change to take place
3563 immediately.
3564
3565 See \helpref{Window styles}{windowstyles} for more information about flags.
3566
3567 \wxheading{See also}
3568
3569 \helpref{GetWindowStyleFlag}{wxwindowgetwindowstyleflag}
3570
3571
3572 \membersection{wxWindow::SetWindowVariant}\label{wxwindowsetwindowvariant}
3573
3574 \func{void}{SetWindowVariant}{\param{wxWindowVariant}{variant}}
3575
3576 This function can be called under all platforms but only does anything under
3577 Mac OS X 10.3+ currently. Under this system, each of the standard control can
3578 exist in several sizes which correspond to the elements of wxWindowVariant
3579 enum:
3580 \begin{verbatim}
3581 enum wxWindowVariant
3582 {
3583 wxWINDOW_VARIANT_NORMAL, // Normal size
3584 wxWINDOW_VARIANT_SMALL, // Smaller size (about 25 % smaller than normal )
3585 wxWINDOW_VARIANT_MINI, // Mini size (about 33 % smaller than normal )
3586 wxWINDOW_VARIANT_LARGE, // Large size (about 25 % larger than normal )
3587 };
3588 \end{verbatim}
3589
3590 By default the controls use the normal size, of course, but this function can
3591 be used to change this.
3592
3593
3594 \membersection{wxWindow::ShouldInheritColours}\label{wxwindowshouldinheritcolours}
3595
3596 \func{virtual bool}{ShouldInheritColours}{\void}
3597
3598 Return \true from here to allow the colours of this window to be changed by
3599 \helpref{InheritAttributes}{wxwindowinheritattributes}, returning \false
3600 forbids inheriting them from the parent window.
3601
3602 The base class version returns \false, but this method is overridden in
3603 \helpref{wxControl}{wxcontrol} where it returns \true.
3604
3605
3606 \membersection{wxWindow::Show}\label{wxwindowshow}
3607
3608 \func{virtual bool}{Show}{\param{bool}{ show = {\tt true}}}
3609
3610 Shows or hides the window. You may need to call \helpref{Raise}{wxwindowraise}
3611 for a top level window if you want to bring it to top, although this is not
3612 needed if Show() is called immediately after the frame creation.
3613
3614 \wxheading{Parameters}
3615
3616 \docparam{show}{If {\tt true} displays the window. Otherwise, hides it.}
3617
3618 \wxheading{Return value}
3619
3620 {\tt true} if the window has been shown or hidden or {\tt false} if nothing was
3621 done because it already was in the requested state.
3622
3623 \wxheading{See also}
3624
3625 \helpref{wxWindow::IsShown}{wxwindowisshown},\rtfsp
3626 \helpref{wxWindow::Hide}{wxwindowhide},\rtfsp
3627 \helpref{wxRadioBox::Show}{wxradioboxshow}
3628
3629
3630 \membersection{wxWindow::Thaw}\label{wxwindowthaw}
3631
3632 \func{virtual void}{Thaw}{\void}
3633
3634 Reenables window updating after a previous call to
3635 \helpref{Freeze}{wxwindowfreeze}. To really thaw the control, it must be called
3636 exactly the same number of times as \helpref{Freeze}{wxwindowfreeze}.
3637
3638 \wxheading{See also}
3639
3640 \helpref{wxWindowUpdateLocker}{wxwindowupdatelocker}
3641
3642
3643 \membersection{wxWindow::ToggleWindowStyle}\label{wxwindowtogglewindowstyle}
3644
3645 \func{bool}{ToggleWindowStyle}{\param{int }{flag}}
3646
3647 Turns the given \arg{flag} on if it's currently turned off and vice versa.
3648 This function cannot be used if the value of the flag is $0$ (which is often
3649 the case for default flags).
3650
3651 Also, please notice that not all styles can be changed after the control
3652 creation.
3653
3654 \wxheading{Return value}
3655
3656 Returns \true if the style was turned on by this function, \false if it was
3657 switched off.
3658
3659 \wxheading{See also}
3660
3661 \helpref{wxWindow::SetWindowStyleFlag}{wxwindowsetwindowstyleflag},\rtfsp
3662 \helpref{wxWindow::HasFlag}{wxwindowhasflag}
3663
3664
3665 \membersection{wxWindow::TransferDataFromWindow}\label{wxwindowtransferdatafromwindow}
3666
3667 \func{virtual bool}{TransferDataFromWindow}{\void}
3668
3669 Transfers values from child controls to data areas specified by their validators. Returns
3670 {\tt false} if a transfer failed.
3671
3672 If the window has {\tt wxWS\_EX\_VALIDATE\_RECURSIVELY} extra style flag set,
3673 the method will also call TransferDataFromWindow() of all child windows.
3674
3675 \wxheading{See also}
3676
3677 \helpref{wxWindow::TransferDataToWindow}{wxwindowtransferdatatowindow},\rtfsp
3678 \helpref{wxValidator}{wxvalidator}, \helpref{wxWindow::Validate}{wxwindowvalidate}
3679
3680
3681 \membersection{wxWindow::TransferDataToWindow}\label{wxwindowtransferdatatowindow}
3682
3683 \func{virtual bool}{TransferDataToWindow}{\void}
3684
3685 Transfers values to child controls from data areas specified by their validators.
3686
3687 If the window has {\tt wxWS\_EX\_VALIDATE\_RECURSIVELY} extra style flag set,
3688 the method will also call TransferDataToWindow() of all child windows.
3689
3690 \wxheading{Return value}
3691
3692 Returns {\tt false} if a transfer failed.
3693
3694 \wxheading{See also}
3695
3696 \helpref{wxWindow::TransferDataFromWindow}{wxwindowtransferdatafromwindow},\rtfsp
3697 \helpref{wxValidator}{wxvalidator}, \helpref{wxWindow::Validate}{wxwindowvalidate}
3698
3699
3700 \membersection{wxWindow::UnregisterHotKey}\label{wxwindowunregisterhotkey}
3701
3702 \func{bool}{UnregisterHotKey}{\param{int}{ hotkeyId}}
3703
3704 Unregisters a system wide hotkey.
3705
3706 \wxheading{Parameters}
3707
3708 \docparam{hotkeyId}{Numeric identifier of the hotkey. Must be the same id that was passed to RegisterHotKey.}
3709
3710 \wxheading{Return value}
3711
3712 {\tt true} if the hotkey was unregistered successfully, {\tt false} if the id was invalid.
3713
3714 \wxheading{Remarks}
3715
3716 This function is currently only implemented under MSW.
3717
3718 \wxheading{See also}
3719
3720 \helpref{wxWindow::RegisterHotKey}{wxwindowregisterhotkey}
3721
3722
3723 \membersection{wxWindow::Update}\label{wxwindowupdate}
3724
3725 \func{virtual void}{Update}{\void}
3726
3727 Calling this method immediately repaints the invalidated area of the window and
3728 all of its children recursively while this would usually only happen when the
3729 flow of control returns to the event loop.
3730 Notice that this function doesn't invalidate any area of the window so
3731 nothing happens if nothing has been invalidated (i.e. marked as requiring
3732 a redraw). Use \helpref{Refresh}{wxwindowrefresh} first if you want to
3733 immediately redraw the window unconditionally.
3734
3735
3736 \membersection{wxWindow::UpdateWindowUI}\label{wxwindowupdatewindowui}
3737
3738 \func{virtual void}{UpdateWindowUI}{\param{long}{ flags = wxUPDATE\_UI\_NONE}}
3739
3740 This function sends \helpref{wxUpdateUIEvents}{wxupdateuievent} to
3741 the window. The particular implementation depends on the window; for
3742 example a wxToolBar will send an update UI event for each toolbar button,
3743 and a wxFrame will send an update UI event for each menubar menu item.
3744 You can call this function from your application to ensure that your
3745 UI is up-to-date at this point (as far as your wxUpdateUIEvent handlers
3746 are concerned). This may be necessary if you have called
3747 \helpref{wxUpdateUIEvent::SetMode}{wxupdateuieventsetmode} or
3748 \helpref{wxUpdateUIEvent::SetUpdateInterval}{wxupdateuieventsetupdateinterval} to
3749 limit the overhead that wxWidgets incurs by sending update UI events in idle time.
3750
3751 {\it flags} should be a bitlist of one or more of the following values.
3752
3753 \begin{verbatim}
3754 enum wxUpdateUI
3755 {
3756 wxUPDATE_UI_NONE = 0x0000, // No particular value
3757 wxUPDATE_UI_RECURSE = 0x0001, // Call the function for descendants
3758 wxUPDATE_UI_FROMIDLE = 0x0002 // Invoked from On(Internal)Idle
3759 };
3760 \end{verbatim}
3761
3762 If you are calling this function from an OnInternalIdle or OnIdle
3763 function, make sure you pass the wxUPDATE\_UI\_FROMIDLE flag, since
3764 this tells the window to only update the UI elements that need
3765 to be updated in idle time. Some windows update their elements
3766 only when necessary, for example when a menu is about to be shown.
3767 The following is an example of how to call UpdateWindowUI from
3768 an idle function.
3769
3770 \begin{verbatim}
3771 void MyWindow::OnInternalIdle()
3772 {
3773 if (wxUpdateUIEvent::CanUpdate(this))
3774 UpdateWindowUI(wxUPDATE_UI_FROMIDLE);
3775 }
3776 \end{verbatim}
3777
3778 \wxheading{See also}
3779
3780 \helpref{wxUpdateUIEvent}{wxupdateuievent},
3781 \helpref{wxWindow::DoUpdateWindowUI}{wxwindowdoupdatewindowui},
3782 \helpref{wxWindow::OnInternalIdle}{wxwindowoninternalidle}
3783
3784
3785 \membersection{wxWindow::Validate}\label{wxwindowvalidate}
3786
3787 \func{virtual bool}{Validate}{\void}
3788
3789 Validates the current values of the child controls using their validators.
3790
3791 If the window has {\tt wxWS\_EX\_VALIDATE\_RECURSIVELY} extra style flag set,
3792 the method will also call Validate() of all child windows.
3793
3794 \wxheading{Return value}
3795
3796 Returns {\tt false} if any of the validations failed.
3797
3798 \wxheading{See also}
3799
3800 \helpref{wxWindow::TransferDataFromWindow}{wxwindowtransferdatafromwindow},\rtfsp
3801 \helpref{wxWindow::TransferDataToWindow}{wxwindowtransferdatatowindow},\rtfsp
3802 \helpref{wxValidator}{wxvalidator}
3803
3804
3805 \membersection{wxWindow::WarpPointer}\label{wxwindowwarppointer}
3806
3807 \func{void}{WarpPointer}{\param{int}{ x}, \param{int}{ y}}
3808
3809 Moves the pointer to the given position on the window.
3810
3811 {\bf NB: } This function is not supported under Mac because Apple Human
3812 Interface Guidelines forbid moving the mouse cursor programmatically.
3813
3814 \wxheading{Parameters}
3815
3816 \docparam{x}{The new x position for the cursor.}
3817
3818 \docparam{y}{The new y position for the cursor.}
3819