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