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