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