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