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