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