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