1 ///////////////////////////////////////////////////////////////////////////// 
   3 // Purpose:     interface of wxWindow 
   4 // Author:      wxWidgets team 
   6 // Licence:     wxWindows license 
   7 ///////////////////////////////////////////////////////////////////////////// 
  11     Background styles. See wxWindow::SetBackgroundStyle(). 
  13 enum wxBackgroundStyle
 
  15     /// Use the default background, as determined by 
  16     /// the system or the current theme. 
  19     /// Use a solid colour for the background, this style is set automatically if you call 
  20     /// SetBackgroundColour() so you only need to set it explicitly if you had 
  21     /// changed the background style to something else before. 
  24     /// Don't draw the background at all, it's supposed that it is drawn by 
  25     /// the user-defined erase background event handler. 
  26     /// This style should be used to avoid flicker when the background is entirely 
  30     /// The background is (partially) transparent,this style is automatically set if you call 
  31     /// SetTransparent() which is used to set the transparency level. 
  32     wxBG_STYLE_TRANSPARENT
 
  37     Valid values for wxWindow::ShowWithEffect() and wxWindow::HideWithEffect(). 
  41     /// Roll window to the left 
  42     wxSHOW_EFFECT_ROLL_TO_LEFT
, 
  44     /// Roll window to the right 
  45     wxSHOW_EFFECT_ROLL_TO_RIGHT
, 
  47     /// Roll window to the top 
  48     wxSHOW_EFFECT_ROLL_TO_TOP
, 
  50     /// Roll window to the bottom 
  51     wxSHOW_EFFECT_ROLL_TO_BOTTOM
, 
  53     /// Slide window to the left 
  54     wxSHOW_EFFECT_SLIDE_TO_LEFT
, 
  56     /// Slide window to the right 
  57     wxSHOW_EFFECT_SLIDE_TO_RIGHT
, 
  59     /// Slide window to the top 
  60     wxSHOW_EFFECT_SLIDE_TO_TOP
, 
  62     /// Slide window to the bottom 
  63     wxSHOW_EFFECT_SLIDE_TO_BOTTOM
, 
  65     /// Fade in or out effect 
  68     /// Expanding or collapsing effect 
  73     Different window variants, on platforms like eg mac uses different 
  78     wxWINDOW_VARIANT_NORMAL
,  //!< Normal size 
  79     wxWINDOW_VARIANT_SMALL
,   //!< Smaller size (about 25 % smaller than normal) 
  80     wxWINDOW_VARIANT_MINI
,    //!< Mini size (about 33 % smaller than normal) 
  81     wxWINDOW_VARIANT_LARGE
,   //!< Large size (about 25 % larger than normal) 
  87     Flags which can be used in wxWindow::UpdateWindowUI(). 
  93     wxUPDATE_UI_FROMIDLE  
/**<  Invoked from On(Internal)Idle */ 
 100     wxWindow is the base class for all windows and represents any visible object 
 101     om screen. All controls, top level windows and so on are windows. Sizers and 
 102     device contexts are not, however, as they don't appear on screen themselves. 
 104     Please note that all children of the window will be deleted automatically by 
 105     the destructor before the window itself is deleted which means that you don't 
 106     have to worry about deleting them manually. Please see the @ref 
 107     overview_windowdeletion "window deletion overview" for more information. 
 109     Also note that in this, and many others, wxWidgets classes some 
 110     @c GetXXX() methods may be overloaded (as, for example, 
 111     wxWindow::GetSize or wxWindow::GetClientSize). In this case, the overloads 
 112     are non-virtual because having multiple virtual functions with the same name 
 113     results in a virtual function name hiding at the derived class level (in 
 114     English, this means that the derived class has to override all overloaded 
 115     variants if it overrides any of them). To allow overriding them in the derived 
 116     class, wxWidgets uses a unique protected virtual @c DoGetXXX() method 
 117     and all @c GetXXX() ones are forwarded to it, so overriding the former 
 118     changes the behaviour of the latter. 
 121     @style{wxBORDER_DEFAULT} 
 122            The window class will decide the kind of border to show, if any. 
 123     @style{wxBORDER_SIMPLE} 
 124            Displays a thin border around the window. wxSIMPLE_BORDER is the 
 125            old name for this style. 
 126     @style{wxBORDER_SUNKEN} 
 127            Displays a sunken border. wxSUNKEN_BORDER is the old name for this 
 129     @style{wxBORDER_RAISED} 
 130            Displays a raised border. wxRAISED_BORDER is the old name for this 
 132     @style{wxBORDER_STATIC} 
 133            Displays a border suitable for a static control.  wxSTATIC_BORDER 
 134            is the old name for this style. Windows only. 
 135     @style{wxBORDER_THEME} 
 136            Displays a native border suitable for a control, on the current 
 137            platform. On Windows XP or Vista, this will be a themed border; on 
 138            most other platforms a sunken border will be used. For more 
 139            information for themed borders on Windows, please see Themed 
 141     @style{wxBORDER_NONE} 
 142            Displays no border, overriding the default border style for the 
 143            window. wxNO_BORDER is the old name for this style. 
 144     @style{wxBORDER_DOUBLE} 
 145            This style is obsolete and should not be used. 
 146     @style{wxTRANSPARENT_WINDOW} 
 147            The window is transparent, that is, it will not receive paint 
 148            events. Windows only. 
 149     @style{wxTAB_TRAVERSAL} 
 150            Use this to enable tab traversal for non-dialog windows. 
 151     @style{wxWANTS_CHARS} 
 152            Use this to indicate that the window wants to get all char/key 
 153            events for all keys - even for keys like TAB or ENTER which are 
 154            usually used for dialog navigation and which wouldn't be generated 
 155            without this style.  If you need to use this style in order to get 
 156            the arrows or etc., but would still like to have normal keyboard 
 157            navigation take place, you should call Navigate in response to the 
 158            key events for Tab and Shift-Tab. 
 159     @style{wxNO_FULL_REPAINT_ON_RESIZE} 
 160            On Windows, this style used to disable repainting the window 
 161            completely when its size is changed. Since this behaviour is now 
 162            the default, the style is now obsolete and no longer has an effect. 
 164            Use this style to enable a vertical scrollbar. Notice that this 
 165            style cannot be used with native controls which don't support 
 166            scrollbars nor with top-level windows in most ports. 
 168            Use this style to enable a horizontal scrollbar. The same 
 169            limitations as for wxVSCROLL apply to this style. 
 170     @style{wxALWAYS_SHOW_SB} 
 171            If a window has scrollbars, disable them instead of hiding them 
 172            when they are not needed (i.e. when the size of the window is big 
 173            enough to not require the scrollbars to navigate it). This style is 
 174            currently implemented for wxMSW, wxGTK and wxUniversal and does 
 175            nothing on the other platforms. 
 176     @style{wxCLIP_CHILDREN} 
 177            Use this style to eliminate flicker caused by the background being 
 178            repainted, then children being painted over them. Windows only. 
 179     @style{wxFULL_REPAINT_ON_RESIZE} 
 180            Use this style to force a complete redraw of the window whenever it 
 181            is resized instead of redrawing just the part of the window 
 182            affected by resizing. Note that this was the behaviour by default 
 183            before 2.5.1 release and that if you experience redraw problems 
 184            with code which previously used to work you may want to try this. 
 185            Currently this style applies on GTK+ 2 and Windows only, and full 
 186            repainting is always done on other platforms. 
 189     @beginExtraStyleTable 
 190     @style{wxWS_EX_VALIDATE_RECURSIVELY} 
 191            By default, Validate/TransferDataTo/FromWindow() only work on 
 192            direct children of the window (compatible behaviour). Set this flag 
 193            to make them recursively descend into all subwindows. 
 194     @style{wxWS_EX_BLOCK_EVENTS} 
 195            wxCommandEvents and the objects of the derived classes are 
 196            forwarded to the parent window and so on recursively by default. 
 197            Using this flag for the given window allows to block this 
 198            propagation at this window, i.e. prevent the events from being 
 199            propagated further upwards. Dialogs have this flag on by default 
 200            for the reasons explained in the @ref overview_eventhandling "Event Handling Overview". 
 201     @style{wxWS_EX_TRANSIENT} 
 202            Don't use this window as an implicit parent for the other windows: 
 203            this must be used with transient windows as otherwise there is the 
 204            risk of creating a dialog/frame with this window as a parent which 
 205            would lead to a crash if the parent is destroyed before the child. 
 206     @style{wxWS_EX_CONTEXTHELP} 
 207            Under Windows, puts a query button on the caption. When pressed, 
 208            Windows will go into a context-sensitive help mode and wxWidgets 
 209            will send a wxEVT_HELP event if the user clicked on an application window. 
 210            This style cannot be used (because of the underlying native behaviour) 
 211            together with @c wxMAXIMIZE_BOX or @c wxMINIMIZE_BOX, so these two styles 
 212            are automatically turned off if this one is used. 
 213     @style{wxWS_EX_PROCESS_IDLE} 
 214            This window should always process idle events, even if the mode set 
 215            by wxIdleEvent::SetMode is wxIDLE_PROCESS_SPECIFIED. 
 216     @style{wxWS_EX_PROCESS_UI_UPDATES} 
 217            This window should always process UI update events, even if the 
 218            mode set by wxUpdateUIEvent::SetMode is wxUPDATE_UI_PROCESS_SPECIFIED. 
 224     @see @ref overview_eventhandling "Event handling overview", 
 225          @ref overview_windowsizing "Window sizing overview" 
 227 class wxWindow 
: public wxEvtHandler
 
 236         Constructs a window, which can be a child of a frame, dialog or any other 
 240             Pointer to a parent window. 
 242             Window identifier. If wxID_ANY, will automatically create an identifier. 
 244             Window position. wxDefaultPosition indicates that wxWidgets 
 245             should generate a default position for the window. 
 246             If using the wxWindow class directly, supply an actual position. 
 248             Window size. wxDefaultSize indicates that wxWidgets should generate 
 249             a default size for the window. If no suitable size can  be found, the 
 250             window will be sized to 20x20 pixels so that the window is visible but 
 251             obviously not correctly sized. 
 253             Window style. For generic window styles, please see wxWindow. 
 257     wxWindow(wxWindow
* parent
, wxWindowID id
, 
 258              const wxPoint
& pos 
= wxDefaultPosition
, 
 259              const wxSize
& size 
= wxDefaultSize
, 
 261              const wxString
& name 
= wxPanelNameStr
); 
 266         Deletes all sub-windows, then deletes itself. Instead of using 
 267         the @b delete operator explicitly, you should normally  use Destroy() 
 268         so that wxWidgets can delete a window only when it is safe to do so, in idle time. 
 270         @see @ref overview_windowdeletion "Window Deletion Overview", 
 271              Destroy(), wxCloseEvent 
 276         This method may be overridden in the derived classes to return @false to 
 277         indicate that this control doesn't accept input at all (i.e. behaves like 
 278         e.g. wxStaticText) and so doesn't need focus. 
 280         @see AcceptsFocusFromKeyboard() 
 282     virtual bool AcceptsFocus() const; 
 285         This method may be overridden in the derived classes to return @false to 
 286         indicate that while this control can, in principle, have focus if the user 
 287         clicks it with the mouse, it shouldn't be included in the TAB traversal chain 
 288         when using the keyboard. 
 290     virtual bool AcceptsFocusFromKeyboard() const; 
 293         Overridden to indicate wehter this window or one of its children accepts 
 294         focus. Usually it's the same as AcceptsFocus() but is overridden for 
 297     virtual bool AcceptsFocusRecursively() const; 
 300         Adds a child window. This is called automatically by window creation 
 301         functions so should not be required by the application programmer. 
 302         Notice that this function is mostly internal to wxWidgets and shouldn't be 
 303         called by the user code. 
 308     virtual void AddChild(wxWindow
* child
); 
 311         Call this function to force one or both scrollbars to be always shown, even if 
 312         the window is big enough to show its entire contents without scrolling. 
 317             Whether the horizontal scroll bar should always be visible. 
 319             Whether the vertical scroll bar should always be visible. 
 321         @remarks This function is currently only implemented under Mac/Carbon. 
 323     virtual void AlwaysShowScrollbars(bool hflag 
= true, bool vflag 
= true); 
 326         Sets the cached best size value. 
 328     void CacheBestSize(const wxSize
& size
) const; 
 331         Returns @true if the system supports transparent windows and calling 
 332         SetTransparent() may succeed. If this function returns @false, transparent 
 333         windows are definitely not supported by the current system. 
 335     virtual bool CanSetTransparent(); 
 338         Directs all mouse input to this window. 
 339         Call ReleaseMouse() to release the capture. 
 341         Note that wxWidgets maintains the stack of windows having captured the mouse 
 342         and when the mouse is released the capture returns to the window which had had 
 343         captured it previously and it is only really released if there were no previous 
 344         window. In particular, this means that you must release the mouse as many times 
 345         as you capture it, unless the window receives the wxMouseCaptureLostEvent event. 
 347         Any application which captures the mouse in the beginning of some operation 
 348         must handle wxMouseCaptureLostEvent and cancel this operation when it receives 
 349         the event. The event handler must not recapture mouse. 
 351         @see ReleaseMouse(), wxMouseCaptureLostEvent 
 356         A synonym for Centre(). 
 358     void Center(int dir 
= wxBOTH
); 
 361         A synonym for CentreOnParent(). 
 363     void CenterOnParent(int dir 
= wxBOTH
); 
 369             Specifies the direction for the centering. May be wxHORIZONTAL, wxVERTICAL 
 370             or wxBOTH. It may also include wxCENTRE_ON_SCREEN flag 
 371             if you want to center the window on the entire screen and not on its 
 374         @remarks If the window is a top level one (i.e. doesn't have a parent), 
 375                  it will be centered relative to the screen anyhow. 
 379     void Centre(int direction 
= wxBOTH
); 
 382         Centres the window on its parent. This is a more readable synonym for Centre(). 
 385             Specifies the direction for the centering. May be wxHORIZONTAL, wxVERTICAL 
 388         @remarks This methods provides for a way to center top level windows over 
 389                  their parents instead of the entire screen.  If there 
 390                  is no parent or if the window is not a top level 
 391                  window, then behaviour is the same as Centre(). 
 393         @see wxTopLevelWindow::CentreOnScreen 
 395     void CentreOnParent(int direction 
= wxBOTH
); 
 398         Clears the window by filling it with the current background colour. Does not 
 399         cause an erase background event to be generated. 
 401     virtual void ClearBackground(); 
 404         Converts to screen coordinates from coordinates relative to this window. 
 407             A pointer to a integer value for the x coordinate. Pass the client 
 408             coordinate in, and a screen coordinate will be passed out. 
 410             A pointer to a integer value for the y coordinate. Pass the client 
 411             coordinate in, and a screen coordinate will be passed out. 
 414         In place of a single overloaded method name, wxPython implements the following methods: 
 415             - ClientToScreen(point): Accepts and returns a wxPoint 
 416             - ClientToScreenXY(x, y): Returns a 2-tuple, (x, y) 
 419     void ClientToScreen(int* x
, int* y
) const; 
 422         Converts to screen coordinates from coordinates relative to this window. 
 425             The client position for the second form of the function. 
 427     wxPoint 
ClientToScreen(const wxPoint
& pt
) const; 
 430         Converts client area size @a size to corresponding window size. 
 432         In other words, the returned value is what would GetSize() return if this 
 433         window had client area of given size.  Components with wxDefaultCoord 
 434         value are left unchanged.  Note that the conversion is not always 
 435         exact, it assumes that non-client area doesn't change and so doesn't 
 436         take into account things like menu bar (un)wrapping or (dis)appearance 
 441         @see WindowToClientSize() 
 443     virtual wxSize 
ClientToWindowSize(const wxSize
& size
) const; 
 446         Converts window size @a size to corresponding client area size 
 447         In other words, the returned value is what would GetClientSize() return if 
 448         this window had given window size. Components with wxDefaultCoord value 
 451         Note that the conversion is not always exact, it assumes that 
 452         non-client area doesn't change and so doesn't take into account things 
 453         like menu bar (un)wrapping or (dis)appearance of the scrollbars. 
 457         @see ClientToWindowSize() 
 459     virtual wxSize 
WindowToClientSize(const wxSize
& size
) const; 
 462         This function simply generates a wxCloseEvent whose handler usually tries 
 463         to close the window. It doesn't close the window itself, however. 
 466             @false if the window's close handler should be able to veto the destruction 
 467             of this window, @true if it cannot. 
 469         @remarks Close calls the close handler for the window, providing an 
 470                  opportunity for the window to choose whether to destroy 
 471                  the window. Usually it is only used with the top level 
 472                  windows (wxFrame and wxDialog classes) as the others 
 473                  are not supposed to have any special OnClose() logic. 
 474                 The close handler should check whether the window is being deleted 
 475                 forcibly, using wxCloseEvent::CanVeto, in which case it should 
 476                 destroy the window using wxWindow::Destroy. 
 477                 Note that calling Close does not guarantee that the window will 
 478                 be destroyed; but it provides a way to simulate a manual close 
 479                 of a window, which may or may not be implemented by destroying 
 480                 the window. The default implementation of wxDialog::OnCloseWindow 
 481                 does not necessarily delete the dialog, since it will simply 
 482                 simulate an wxID_CANCEL event which is handled by the appropriate 
 483                 button event handler and may do anything at all. 
 484                 To guarantee that the window will be destroyed, call 
 485                 wxWindow::Destroy instead 
 487         @see @ref overview_windowdeletion "Window Deletion Overview", 
 488              Destroy(), wxCloseEvent 
 490     bool Close(bool force 
= false); 
 494         Converts a point or size from dialog units to pixels. 
 496         For the x dimension, the dialog units are multiplied by the average character 
 497         width and then divided by 4. 
 498         For the y dimension, the dialog units are multiplied by the average character 
 499         height and then divided by 8. 
 501         @remarks Dialog units are used for maintaining a dialog's proportions 
 502                  even if the font changes. 
 503                 You can also use these functions programmatically. 
 504                 A convenience macro is defined: 
 506                 #define wxDLG_UNIT(parent, pt) parent->ConvertDialogToPixels(pt) 
 509         @see ConvertPixelsToDialog() 
 511     wxPoint 
ConvertDialogToPixels(const wxPoint
& pt
); 
 512     wxSize 
ConvertDialogToPixels(const wxSize
& sz
); 
 517         Converts a point or size from pixels to dialog units. 
 519         For the x dimension, the pixels are multiplied by 4 and then divided by the 
 520         average character width. 
 521         For the y dimension, the pixels are multiplied by 8 and then divided by the 
 522         average character height. 
 524         @remarks Dialog units are used for maintaining a dialog's proportions 
 525                  even if the font changes. 
 527         @see ConvertDialogToPixels() 
 529     wxPoint 
ConvertPixelsToDialog(const wxPoint
& pt
); 
 530     wxSize 
ConvertPixelsToDialog(const wxSize
& sz
); 
 534         Destroys the window safely. Use this function instead of the delete operator, 
 535         since different window classes can be destroyed differently. Frames and dialogs 
 536         are not destroyed immediately when this function is called -- they are added 
 537         to a list of windows to be deleted on idle time, when all the window's events 
 538         have been processed. This prevents problems with events being sent to 
 539         non-existent windows. 
 541         @return @true if the window has either been successfully deleted, or it 
 542                  has been added to the list of windows pending real deletion. 
 544     virtual bool Destroy(); 
 547         Destroys all children of a window. Called automatically by the destructor. 
 549     bool DestroyChildren(); 
 552         Returns true if this window is in process of being destroyed. 
 554         The top level windows are not deleted immediately but are rather 
 555         scheduled for later destruction to give them time to process any 
 556         pending messages, see Destroy() description. 
 558         This function returns @true if this window, or one of its parent 
 559         windows, is scheduled for destruction and can be useful to avoid 
 560         manipulating it as it's usually useless to do something with a window 
 561         which is on the point of disappearing anyhow. 
 563     bool IsBeingDeleted() const; 
 566         Disables the window. Same as @ref Enable() Enable(@false). 
 568         @return Returns @true if the window has been disabled, @false if it had 
 569                 been already disabled before the call to this function. 
 574         Does the window-specific updating after processing the update event. 
 575         This function is called by UpdateWindowUI() in order to check return 
 576         values in the wxUpdateUIEvent and act appropriately. 
 577         For example, to allow frame and dialog title updating, wxWidgets 
 578         implements this function as follows: 
 581         // do the window-specific processing after processing the update event 
 582         void wxTopLevelWindowBase::DoUpdateWindowUI(wxUpdateUIEvent& event) 
 584             if ( event.GetSetEnabled() ) 
 585                 Enable(event.GetEnabled()); 
 587             if ( event.GetSetText() ) 
 589                 if ( event.GetText() != GetTitle() ) 
 590                     SetTitle(event.GetText()); 
 595     virtual void DoUpdateWindowUI(wxUpdateUIEvent
& event
); 
 598         Enables or disables eligibility for drop file events (OnDropFiles). 
 601             If @true, the window is eligible for drop file events. 
 602             If @false, the window will not accept drop file events. 
 604         @remarks Windows only until version 2.8.9, available on all platforms 
 605                  since 2.8.10. Cannot be used together with SetDropTarget() on 
 606                  non-Windows platforms. 
 610     virtual void DragAcceptFiles(bool accept
); 
 613         Enable or disable the window for user input. Note that when a parent window is 
 614         disabled, all of its children are disabled as well and they are reenabled again 
 618             If @true, enables the window for input. If @false, disables the window. 
 620         @return Returns @true if the window has been enabled or disabled, @false 
 621                 if nothing was done, i.e. if the window had already 
 622                 been in the specified state. 
 624         @see IsEnabled(), Disable(), wxRadioBox::Enable 
 626     virtual bool Enable(bool enable 
= true); 
 629         Finds the window or control which currently has the keyboard focus. 
 631         @remarks Note that this is a static function, so it can be called without 
 632                  needing a wxWindow pointer. 
 634         @see SetFocus(), HasFocus() 
 636     static wxWindow
* FindFocus(); 
 639         Find a child of this window, by @a id. 
 640         May return @a this if it matches itself. 
 642     wxWindow
* FindWindow(long id
) const; 
 645         Find a child of this window, by name. 
 646         May return @a this if it matches itself. 
 648     wxWindow
* FindWindow(const wxString
& name
) const; 
 651         Find the first window with the given @e id. 
 653         If @a parent is @NULL, the search will start from all top-level frames 
 654         and dialog boxes; if non-@NULL, the search will be limited to the given 
 656         The search is recursive in both cases. 
 660     static wxWindow
* FindWindowById(long id
, wxWindow
* parent 
= NULL
); 
 663         Find a window by its label. 
 665         Depending on the type of window, the label may be a window title 
 666         or panel item label. If @a parent is @NULL, the search will start from all 
 667         top-level frames and dialog boxes; if non-@NULL, the search will be 
 668         limited to the given window hierarchy. 
 669         The search is recursive in both cases. 
 673     static wxWindow
* FindWindowByLabel(const wxString
& label
, 
 674                                        wxWindow
* parent 
= NULL
); 
 677         Find a window by its name (as given in a window constructor or @b Create 
 680         If @a parent is @NULL, the search will start from all top-level frames 
 681         and dialog boxes; if non-@NULL, the search will be limited to the given 
 684         The search is recursive in both cases. If no window with such name is found, 
 685         FindWindowByLabel() is called. 
 689     static wxWindow
* FindWindowByName(const wxString
& name
, 
 690                                       wxWindow
* parent 
= NULL
); 
 693         Sizes the window so that it fits around its subwindows. 
 695         This function won't do anything if there are no subwindows and will only really 
 696         work correctly if sizers are used for the subwindows layout. 
 698         Also, if the window has exactly one subwindow it is better (faster and the result 
 699         is more precise as Fit() adds some margin to account for fuzziness of its calculations) 
 703         window->SetClientSize(child->GetSize()); 
 706         instead of calling Fit(). 
 708         @see @ref overview_windowsizing 
 713         Similar to Fit(), but sizes the interior (virtual) size of a window. 
 715         Mainly useful with scrolled windows to reset scrollbars after sizing 
 716         changes that do not trigger a size event, and/or scrolled windows without 
 717         an interior sizer.  This function similarly won't do anything if there are 
 720     virtual void FitInside(); 
 723         Freezes the window or, in other words, prevents any updates from taking 
 724         place on screen, the window is not redrawn at all. 
 726         Thaw() must be called to reenable window redrawing. Calls to these two 
 727         functions may be nested but to ensure that the window is properly 
 728         repainted again, you must thaw it exactly as many times as you froze it. 
 730         If the window has any children, they are recursively frozen too. 
 732         This method is useful for visual appearance optimization (for example, 
 733         it is a good idea to use it before doing many large text insertions in 
 734         a row into a wxTextCtrl under wxGTK) but is not implemented on all 
 735         platforms nor for all controls so it is mostly just a hint to wxWidgets 
 736         and not a mandatory directive. 
 738         @see wxWindowUpdateLocker, Thaw(), IsFrozen() 
 743         Gets the accelerator table for this window. See wxAcceleratorTable. 
 745     wxAcceleratorTable
* GetAcceleratorTable(); 
 748         Returns the accessible object for this window, if any. 
 749         See also wxAccessible. 
 751     wxAccessible
* GetAccessible(); 
 754         Returns the background colour of the window. 
 756         @see SetBackgroundColour(), SetForegroundColour(), GetForegroundColour() 
 758     wxColour 
GetBackgroundColour() const; 
 761         Returns the background style of the window. 
 762         The background style can be one of the wxBackgroundStyle. 
 764         @see SetBackgroundColour(), GetForegroundColour(), 
 765              SetBackgroundStyle(), SetTransparent() 
 767     virtual wxBackgroundStyle 
GetBackgroundStyle() const; 
 770         This functions returns the best acceptable minimal size for the window. 
 772         For example, for a static control, it will be the minimal size such that the 
 773         control label is not truncated. For windows containing subwindows (typically 
 774         wxPanel), the size returned by this function will be the same as the size 
 775         the window would have had after calling Fit(). 
 777     wxSize 
GetBestSize() const; 
 780         Returns the currently captured window. 
 782         @see HasCapture(), CaptureMouse(), ReleaseMouse(), 
 783              wxMouseCaptureLostEvent, wxMouseCaptureChangedEvent 
 785     static wxWindow
* GetCapture(); 
 788         Returns the caret() associated with the window. 
 790     wxCaret
* GetCaret() const; 
 793         Returns the character height for this window. 
 795     virtual int GetCharHeight() const; 
 798         Returns the average character width for this window. 
 800     virtual int GetCharWidth() const; 
 804         Returns a reference to the list of the window's children. @c wxWindowList 
 805         is a type-safe wxList-like class whose elements are of type @c wxWindow*. 
 807     wxWindowList
& GetChildren(); 
 808     const wxWindowList
& GetChildren() const; 
 812         Returns the default font and colours which are used by the control. 
 814         This is useful if you want to use the same font or colour in your own control 
 815         as in a standard control -- which is a much better idea than hard coding specific 
 816         colours or fonts which might look completely out of place on the users 
 817         system, especially if it uses themes. 
 819         The @a variant parameter is only relevant under Mac currently and is 
 820         ignore under other platforms. Under Mac, it will change the size of the 
 821         returned font. See SetWindowVariant() for more about this. 
 823         This static method is "overridden" in many derived classes and so calling, 
 824         for example, wxButton::GetClassDefaultAttributes() will typically 
 825         return the values appropriate for a button which will be normally different 
 826         from those returned by, say, wxListCtrl::GetClassDefaultAttributes(). 
 828         The @c wxVisualAttributes structure has at least the fields 
 829         @c font, @c colFg and @c colBg. All of them may be invalid 
 830         if it was not possible to determine the default control appearance or, 
 831         especially for the background colour, if the field doesn't make sense as is 
 832         the case for @c colBg for the controls with themed background. 
 834         @see InheritAttributes() 
 836     static wxVisualAttributes 
GetClassDefaultAttributes(wxWindowVariant variant 
= wxWINDOW_VARIANT_NORMAL
); 
 840         Returns the size of the window 'client area' in pixels. 
 842         The client area is the area which may be drawn on by the programmer, 
 843         excluding title bar, border, scrollbars, etc. 
 844         Note that if this window is a top-level one and it is currently minimized, the 
 845         return size is empty (both width and height are 0). 
 847         @see GetSize(), GetVirtualSize() 
 849     void GetClientSize(int* width
, int* height
) const; 
 850     wxSize 
GetClientSize() const; 
 854         Returns a pointer to the window's layout constraints, or @NULL if there are none. 
 856     wxLayoutConstraints
* GetConstraints() const; 
 859         Return the sizer that this window is a member of, if any, otherwise @NULL. 
 861     wxSizer
* GetContainingSizer() const; 
 864         Return the cursor associated with this window. 
 868     const wxCursor
& GetCursor() const; 
 871         Currently this is the same as calling 
 872         wxWindow::GetClassDefaultAttributes(wxWindow::GetWindowVariant()). 
 874         One advantage of using this function compared to the static version is that 
 875         the call is automatically dispatched to the correct class (as usual with 
 876         virtual functions) and you don't have to specify the class name explicitly. 
 878         The other one is that in the future this function could return different 
 879         results, for example it might return a different font for an "Ok" button 
 880         than for a generic button if the users GUI is configured to show such buttons 
 881         in bold font. Of course, the down side is that it is impossible to call this 
 882         function without actually having an object to apply it to whereas the static 
 883         version can be used without having to create an object first. 
 885     virtual wxVisualAttributes 
GetDefaultAttributes() const; 
 888         Returns the associated drop target, which may be @NULL. 
 890         @see SetDropTarget(), @ref overview_dnd 
 892     virtual wxDropTarget
* GetDropTarget() const; 
 895         Merges the window's best size into the min size and returns the result. 
 896         This is the value used by sizers to determine the appropriate 
 897         ammount of space to allocate for the widget. 
 899         @see GetBestSize(), SetInitialSize(), @ref overview_windowsizing 
 901     wxSize 
GetEffectiveMinSize() const; 
 904         Returns the event handler for this window. 
 905         By default, the window is its own event handler. 
 907         @see SetEventHandler(), PushEventHandler(), 
 908              PopEventHandler(), wxEvtHandler::ProcessEvent, wxEvtHandler 
 910     wxEvtHandler
* GetEventHandler() const; 
 913         Returns the extra style bits for the window. 
 915     long GetExtraStyle() const; 
 918         Returns the font for this window. 
 922     wxFont 
GetFont() const; 
 925         Returns the foreground colour of the window. 
 927         @remarks The interpretation of foreground colour is open to 
 928                  interpretation according to the window class; it may be 
 929                  the text colour or other colour, or it may not be used at all. 
 931         @see SetForegroundColour(), SetBackgroundColour(), 
 932              GetBackgroundColour() 
 934     wxColour 
GetForegroundColour() const; 
 937         Returns the grandparent of a window, or @NULL if there isn't one. 
 939     wxWindow
* GetGrandParent() const; 
 942         Returns the platform-specific handle of the physical window. 
 943         Cast it to an appropriate handle, such as @b HWND for Windows, 
 944         @b Widget for Motif, @b GtkWidget for GTK or @b WinHandle for PalmOS. 
 946     virtual WXWidget 
GetHandle() const; 
 949         Gets the help text to be used as context-sensitive help for this window. 
 950         Note that the text is actually stored by the current wxHelpProvider 
 951         implementation, and not in the window object itself. 
 953         @see SetHelpText(), GetHelpTextAtPoint(), wxHelpProvider 
 955     wxString 
GetHelpText() const; 
 958         Gets the help text to be used as context-sensitive help for this window. 
 959         This method should be overridden if the help message depends on the position 
 960         inside the window, otherwise GetHelpText() can be used. 
 963             Coordinates of the mouse at the moment of help event emission. 
 965             Help event origin, see also wxHelpEvent::GetOrigin. 
 967     virtual wxString 
GetHelpTextAtPoint(const wxPoint
& point
, 
 968                                         wxHelpEvent::Origin origin
) const; 
 971         Returns the identifier of the window. 
 973         @remarks Each window has an integer identifier. If the application 
 974                  has not provided one (or the default wxID_ANY) an unique 
 975                  identifier with a negative value will be generated. 
 977         @see SetId(), @ref overview_windowids 
 979     wxWindowID 
GetId() const; 
 982         Generic way of getting a label from any window, for 
 983         identification purposes. 
 985         @remarks The interpretation of this function differs from class to class. 
 986                  For frames and dialogs, the value returned is the 
 987                  title. For buttons or static text controls, it is the 
 988                  button text. This function can be useful for 
 989                  meta-programs (such as testing tools or special-needs 
 990                  access programs) which need to identify windows by name. 
 992     virtual wxString 
GetLabel() const; 
 995         Returns the maximum size of window's client area. 
 997         This is an indication to the sizer layout mechanism that this is the maximum 
 998         possible size as well as the upper bound on window's size settable using 
1003     virtual wxSize 
GetMaxClientSize() const; 
1006         Returns the maximum size of the window. 
1008         This is an indication to the sizer layout mechanism that this is the maximum 
1009         possible size as well as the upper bound on window's size settable using SetSize(). 
1011         @see GetMaxClientSize() 
1013     virtual wxSize 
GetMaxSize() const; 
1016         Returns the minimum size of window's client area, an indication to the sizer 
1017         layout mechanism that this is the minimum required size of its client area. 
1019         It normally just returns the value set by SetMinClientSize(), but it can be 
1020         overridden to do the calculation on demand. 
1024     virtual wxSize 
GetMinClientSize() const; 
1027         Returns the minimum size of the window, an indication to the sizer layout 
1028         mechanism that this is the minimum required size. 
1030         This method normally just returns the value set by SetMinSize(), but it 
1031         can be overridden to do the calculation on demand. 
1033         @see GetMinClientSize() 
1035     virtual wxSize 
GetMinSize() const; 
1038         Returns the window's name. 
1040         @remarks This name is not guaranteed to be unique; it is up to the 
1041                  programmer to supply an appropriate name in the window 
1042                  constructor or via SetName(). 
1046     virtual wxString 
GetName() const; 
1049         Returns the next window after this one among the parent children or @NULL 
1050         if this window is the last child. 
1054         @see GetPrevSibling() 
1056     wxWindow
* GetNextSibling() const; 
1059         Returns the parent of the window, or @NULL if there is no parent. 
1061     wxWindow
* GetParent() const; 
1064         This function shows a popup menu at the given position in this window and 
1065         returns the selected id. It can be more convenient than the general purpose 
1066         PopupMenu() function for simple menus proposing a choice in a list of 
1067         strings to the user. 
1072             The position at which to show the menu in client coordinates 
1074         @return The selected menu item id or wxID_NONE if none selected or an 
1077     int GetPopupMenuSelectionFromUser(wxMenu
& menu
, const wxPoint
& pos
); 
1080         See the GetPopupMenuSelectionFromUser(wxMenu&, const wxPoint&) overload. 
1081         This overload differs only because it takes two integers for the 
1082         menu position instead of a wxPoint. 
1084     int GetPopupMenuSelectionFromUser(wxMenu
& menu
, int x
, int y
); 
1087         This gets the position of the window in pixels, relative to the parent window 
1088         for the child windows or relative to the display origin for the top level windows. 
1091             Receives the x position of the window if non-@NULL. 
1093             Receives the y position of the window if non-@NULL. 
1095         @see GetScreenPosition() 
1097     void GetPosition(int* x
, int* y
) const; 
1100         This gets the position of the window in pixels, relative to the parent window 
1101         for the child windows or relative to the display origin for the top level windows. 
1103         @see GetScreenPosition() 
1105     wxPoint 
GetPosition() const; 
1108         Returns the previous window before this one among the parent children or @c 
1109         @NULL if this window is the first child. 
1113         @see GetNextSibling() 
1115     wxWindow
* GetPrevSibling() const; 
1118         Returns the position and size of the window as a wxRect object. 
1120         @see GetScreenRect() 
1122     wxRect 
GetRect() const; 
1125         Returns the window position in screen coordinates, whether the window is a 
1126         child window or a top level one. 
1129             Receives the x position of the window on the screen if non-@NULL. 
1131             Receives the y position of the window on the screen if non-@NULL. 
1135     void GetScreenPosition(int* x
, int* y
) const; 
1138         Returns the window position in screen coordinates, whether the window is a 
1139         child window or a top level one. 
1143     wxPoint 
GetScreenPosition() const; 
1146         Returns the position and size of the window on the screen as a wxRect object. 
1150     wxRect 
GetScreenRect() const; 
1153         Returns the built-in scrollbar position. 
1155         @see See SetScrollbar() 
1157     virtual int GetScrollPos(int orientation
) const; 
1160         Returns the built-in scrollbar range. 
1164     virtual int GetScrollRange(int orientation
) const; 
1167         Returns the built-in scrollbar thumb size. 
1171     virtual int GetScrollThumb(int orientation
) const; 
1174         Returns the size of the entire window in pixels, including title bar, border, 
1177         Note that if this window is a top-level one and it is currently minimized, the 
1178         returned size is the restored window size, not the size of the window icon. 
1181             Receives the window width. 
1183             Receives the window height. 
1185         @see GetClientSize(), GetVirtualSize() 
1187     void GetSize(int* width
, int* height
) const; 
1190         See the GetSize(int*,int*) overload for more info. 
1192     wxSize 
GetSize() const; 
1195         Return the sizer associated with the window by a previous call to 
1196         SetSizer() or @NULL. 
1198     wxSizer
* GetSizer() const; 
1201         Gets the dimensions of the string as it would be drawn on the 
1202         window with the currently selected font. 
1204         The text extent is returned in @a w and @a h pointers. 
1207             String whose extent is to be measured. 
1209             Return value for width. 
1211             Return value for height. 
1213             Return value for descent (optional). 
1214         @param externalLeading 
1215             Return value for external leading (optional). 
1217             Font to use instead of the current window font (optional). 
1219     virtual void GetTextExtent(const wxString
& string
, int* w
, int* h
, 
1220                                int* descent 
= NULL
, 
1221                                int* externalLeading 
= NULL
, 
1222                                const wxFont
* font 
= NULL
) const; 
1225         Gets the dimensions of the string as it would be drawn on the 
1226         window with the currently selected font. 
1228     wxSize  
GetTextExtent(const wxString
& string
) const; 
1231         Get the associated tooltip or @NULL if none. 
1233     wxToolTip
* GetToolTip() const; 
1236         Returns the region specifying which parts of the window have been damaged. 
1237         Should only be called within an wxPaintEvent handler. 
1239         @see wxRegion, wxRegionIterator 
1241     const wxRegion
& GetUpdateRegion() const; 
1244         Returns a pointer to the current validator for the window, or @NULL if 
1247     virtual wxValidator
* GetValidator(); 
1251         This gets the virtual size of the window in pixels. 
1252         By default it returns the client size of the window, but after a call to 
1253         SetVirtualSize() it will return the size set with that method. 
1255     wxSize 
GetVirtualSize() const; 
1258         Like the other GetVirtualSize() overload but uses pointers instead. 
1261             Receives the window virtual width. 
1263             Receives the window virtual height. 
1265     void GetVirtualSize(int* width
, int* height
) const; 
1269         Returns the size of the left/right and top/bottom borders of this window in x 
1270         and y components of the result respectively. 
1272     virtual wxSize 
GetWindowBorderSize() const; 
1275         Gets the window style that was passed to the constructor or @b Create 
1276         method. @b GetWindowStyle() is another name for the same function. 
1278     virtual long GetWindowStyleFlag() const; 
1281         Returns the value previously passed to SetWindowVariant(). 
1283     wxWindowVariant 
GetWindowVariant() const; 
1286         This function will generate the appropriate call to 
1287         Navigate() if the key event is one normally used for 
1288         keyboard navigation and return @true in this case. 
1290         @return Returns @true if the key pressed was for navigation and was 
1291                 handled, @false otherwise. 
1295     bool HandleAsNavigationKey(const wxKeyEvent
& event
); 
1300         GetEventHandler()->SafelyProcessEvent(event); 
1303     bool HandleWindowEvent(wxEvent
& event
) const; 
1306         Returns @true if this window has the current mouse capture. 
1308         @see CaptureMouse(), ReleaseMouse(), wxMouseCaptureLostEvent, 
1309              wxMouseCaptureChangedEvent 
1311     virtual bool HasCapture() const; 
1314         Returns @true if the window has the given @a exFlag bit set in its 
1317         @see SetExtraStyle() 
1319     bool HasExtraStyle(int exFlag
) const; 
1322         Returns @true if the window has the given @a flag bit set. 
1324     bool HasFlag(int flag
) const; 
1327         Returns @true if the window (or in case of composite controls, its main 
1328         child window) has focus. 
1332     virtual bool HasFocus() const; 
1335         This method should be overridden to return @true if this window has 
1336         multiple pages. All standard class with multiple pages such as 
1337         wxNotebook, wxListbook and wxTreebook already override it to return @true 
1338         and user-defined classes with similar behaviour should do it as well to 
1339         allow the library to handle such windows appropriately. 
1341     virtual bool HasMultiplePages() const; 
1344         Returns @true if this window has a scroll bar for this orientation. 
1347             Orientation to check, either wxHORIZONTAL or wxVERTICAL. 
1349     bool HasScrollbar(int orient
) const; 
1352         Returns @true if this window background is transparent (as, for example, 
1353         for wxStaticText) and should show the parent window background. 
1355         This method is mostly used internally by the library itself and you normally 
1356         shouldn't have to call it. You may, however, have to override it in your 
1357         wxWindow-derived class to ensure that background is painted correctly. 
1359     virtual bool HasTransparentBackground(); 
1362         Equivalent to calling wxWindow::Show(@false). 
1367         This function hides a window, like Hide(), but using a special visual 
1370         The parameters of this function are the same as for ShowWithEffect(), 
1371         please see their description there. 
1375     virtual bool HideWithEffect(wxShowEffect effect
, 
1376                                 unsigned int timeout 
= 0); 
1379         This function is (or should be, in case of custom controls) called during 
1380         window creation to intelligently set up the window visual attributes, that is 
1381         the font and the foreground and background colours. 
1383         By "intelligently" the following is meant: by default, all windows use their 
1384         own @ref GetClassDefaultAttributes() default attributes. 
1385         However if some of the parents attributes are explicitly (that is, using 
1386         SetFont() and not wxWindow::SetOwnFont) changed and if the corresponding 
1387         attribute hadn't been explicitly set for this window itself, then this 
1388         window takes the same value as used by the parent. 
1389         In addition, if the window overrides ShouldInheritColours() to return @false, 
1390         the colours will not be changed no matter what and only the font might. 
1392         This rather complicated logic is necessary in order to accommodate the 
1393         different usage scenarios. The most common one is when all default attributes 
1394         are used and in this case, nothing should be inherited as in modern GUIs 
1395         different controls use different fonts (and colours) than their siblings so 
1396         they can't inherit the same value from the parent. However it was also deemed 
1397         desirable to allow to simply change the attributes of all children at once by 
1398         just changing the font or colour of their common parent, hence in this case we 
1399         do inherit the parents attributes. 
1401     virtual void InheritAttributes(); 
1404         Sends an @c wxEVT_INIT_DIALOG event, whose handler usually transfers data 
1405         to the dialog via validators. 
1407     virtual void InitDialog(); 
1410         Resets the cached best size value so it will be recalculated the next time it 
1413     void InvalidateBestSize(); 
1416         Returns @true if the window contents is double-buffered by the system, i.e. if 
1417         any drawing done on the window is really done on a temporary backing surface 
1418         and transferred to the screen all at once later. 
1422     virtual bool IsDoubleBuffered() const; 
1425         Returns @true if the window is enabled, i.e. if it accepts user input, 
1428         Notice that this method can return @false even if this window itself hadn't 
1429         been explicitly disabled when one of its parent windows is disabled. 
1430         To get the intrinsic status of this window, use IsThisEnabled() 
1434     bool IsEnabled() const; 
1438         Returns @true if the given point or rectangle area has been exposed since the 
1439         last repaint. Call this in an paint event handler to optimize redrawing by 
1440         only redrawing those areas, which have been exposed. 
1442     bool IsExposed(int x
, int y
) const; 
1443     bool IsExposed(wxPoint
& pt
) const; 
1444     bool IsExposed(int x
, int y
, int w
, int h
) const; 
1445     bool IsExposed(wxRect
& rect
) const; 
1449         Returns @true if the window is currently frozen by a call to Freeze(). 
1451         @see Freeze(), Thaw() 
1453     bool IsFrozen() const; 
1456         Returns @true if the window is retained, @false otherwise. 
1458         @remarks Retained windows are only available on X platforms. 
1460     virtual bool IsRetained() const; 
1463         Return whether a scrollbar is always shown. 
1466             Orientation to check, either wxHORIZONTAL or wxVERTICAL. 
1468         @see AlwaysShowScrollbars() 
1470     virtual bool IsScrollbarAlwaysShown(int orient
) const; 
1473         Returns @true if the window is shown, @false if it has been hidden. 
1475         @see IsShownOnScreen() 
1477     virtual bool IsShown() const; 
1480         Returns @true if the window is physically visible on the screen, i.e. it 
1481         is shown and all its parents up to the toplevel window are shown as well. 
1485     virtual bool IsShownOnScreen() const; 
1488         Returns @true if this window is intrinsically enabled, @false otherwise, 
1489         i.e. if @ref Enable() Enable(@false) had been called. This method is 
1490         mostly used for wxWidgets itself, user code should normally use 
1491         IsEnabled() instead. 
1493     bool IsThisEnabled() const; 
1496         Returns @true if the given window is a top-level one. Currently all frames and 
1497         dialogs are considered to be top-level windows (even if they have a parent 
1500     virtual bool IsTopLevel() const; 
1503         Invokes the constraint-based layout algorithm or the sizer-based algorithm 
1506         This function does not get called automatically when the window is resized 
1507         because lots of windows deriving from wxWindow does not need this functionality. 
1508         If you want to have Layout() called automatically, you should derive 
1509         from wxPanel (see wxPanel::Layout). 
1511         @see @ref overview_windowsizing 
1513     virtual bool Layout(); 
1516         Lowers the window to the bottom of the window hierarchy (Z-order). 
1519         This function only works for wxTopLevelWindow-derived classes. 
1523     virtual void Lower(); 
1526         Disables all other windows in the application so that 
1527         the user can only interact with this window. 
1530             If @true, this call disables all other windows in the application so that 
1531             the user can only interact with this window. If @false, the effect is 
1534     virtual void MakeModal(bool modal 
= true); 
1537         Moves the window to the given position. 
1540             Required x position. 
1542             Required y position. 
1544             See SetSize() for more info about this parameter. 
1546         @remarks Implementations of SetSize can also implicitly implement the 
1547                  Move() function, which is defined in the base wxWindow class as the call: 
1549                  SetSize(x, y, wxDefaultCoord, wxDefaultCoord, wxSIZE_USE_EXISTING); 
1554     void Move(int x
, int y
, int flags 
= wxSIZE_USE_EXISTING
); 
1557         Moves the window to the given position. 
1560             wxPoint object representing the position. 
1562             See SetSize() for more info about this parameter. 
1564         @remarks Implementations of SetSize() can also implicitly implement the 
1565                  Move() function, which is defined in the base wxWindow class as the call: 
1567                  SetSize(x, y, wxDefaultCoord, wxDefaultCoord, wxSIZE_USE_EXISTING); 
1572     void Move(const wxPoint
& pt
, int flags 
= wxSIZE_USE_EXISTING
); 
1575         Moves this window in the tab navigation order after the specified @e win. 
1576         This means that when the user presses @c TAB key on that other window, 
1577         the focus switches to this window. 
1579         Default tab order is the same as creation order, this function and 
1580         MoveBeforeInTabOrder() allow to change 
1581         it after creating all the windows. 
1584             A sibling of this window which should precede it in tab order, 
1587     void MoveAfterInTabOrder(wxWindow
* win
); 
1590         Same as MoveAfterInTabOrder() except that it inserts this window just 
1591         before @a win instead of putting it right after it. 
1593     void MoveBeforeInTabOrder(wxWindow
* win
); 
1596         Performs a keyboard navigation action starting from this window. 
1597         This method is equivalent to calling NavigateIn() method on the 
1601             A combination of wxNavigationKeyEvent::IsForward and 
1602             wxNavigationKeyEvent::WinChange. 
1604         @return Returns @true if the focus was moved to another window or @false 
1607         @remarks You may wish to call this from a text control custom keypress 
1608                  handler to do the default navigation behaviour for the 
1609                  tab key, since the standard default behaviour for a 
1610                  multiline text control with the wxTE_PROCESS_TAB style 
1611                  is to insert a tab and not navigate to the next 
1612                  control. See also wxNavigationKeyEvent and 
1613                  HandleAsNavigationKey. 
1615     bool Navigate(int flags 
= IsForward
); 
1618         Performs a keyboard navigation action inside this window. 
1619         See Navigate() for more information. 
1621     bool NavigateIn(int flags 
= IsForward
); 
1624         Create a new ID or range of IDs that are not currently in use. 
1625         The IDs will be reserved until assigned to a wxWindow ID 
1626         or unreserved with UnreserveControlId(). 
1628         See @ref overview_windowids for more information. 
1631             The number of sequential IDs to reserve. 
1633         @return Returns the ID or the first ID of the range, or wxID_NONE if the 
1634                 specified number of identifiers couldn't be allocated. 
1636         @see UnreserveControlId(), wxIdManager, 
1637              @ref overview_windowids 
1639     static wxWindowID 
NewControlId(int count 
= 1); 
1642         This virtual function is normally only used internally, but 
1643         sometimes an application may need it to implement functionality 
1644         that should not be disabled by an application defining an OnIdle 
1645         handler in a derived class. 
1647         This function may be used to do delayed painting, for example, 
1648         and most implementations call UpdateWindowUI() 
1649         in order to send update events to the window in idle time. 
1651     virtual void OnInternalIdle(); 
1654         Same as #ScrollLines (-1). 
1659         Same as #ScrollLines (1). 
1664         Same as #ScrollPages (-1). 
1669         Same as #ScrollPages (1). 
1675         Removes and returns the top-most event handler on the event handler stack. 
1677         @param deleteHandler 
1678             If this is @true, the handler will be deleted after it is removed. 
1679             The default value is @false. 
1681         @see SetEventHandler(), GetEventHandler(), 
1682              PushEventHandler(), wxEvtHandler::ProcessEvent, wxEvtHandler 
1684     wxEvtHandler
* PopEventHandler(bool deleteHandler 
= false); 
1688         Pops up the given menu at the specified coordinates, relative to this 
1689         window, and returns control when the user has dismissed the menu. 
1691         If a menu item is selected, the corresponding menu event is generated and will be 
1692         processed as usually. If the coordinates are not specified, current mouse 
1693         cursor position is used. 
1695         @a menu is the menu to pop up. 
1697         The position where the menu will appear can be specified either as a 
1698         wxPoint @a pos or by two integers (@a x and @a y). 
1700         @remarks Just before the menu is popped up, wxMenu::UpdateUI is called to 
1701                  ensure that the menu items are in the correct state. 
1702                  The menu does not get deleted by the window. 
1703                  It is recommended to not explicitly specify coordinates when 
1704                  calling PopupMenu in response to mouse click, because some of 
1705                  the ports (namely, wxGTK) can do a better job of positioning 
1706                  the menu in that case. 
1710     bool PopupMenu(wxMenu
* menu
, 
1711                    const wxPoint
& pos 
= wxDefaultPosition
); 
1712     bool PopupMenu(wxMenu
* menu
, int x
, int y
); 
1716         Posts a size event to the window. 
1718         This is the same as SendSizeEvent() with @c wxSEND_EVENT_POST argument. 
1720     void PostSizeEvent(); 
1723         Posts a size event to the parent of this window. 
1725         This is the same as SendSizeEventToParent() with @c wxSEND_EVENT_POST 
1728     void PostSizeEventToParent(); 
1731         Pushes this event handler onto the event stack for the window. 
1734             Specifies the handler to be pushed. 
1736         @remarks An event handler is an object that is capable of processing the 
1737                  events sent to a window. By default, the window is its 
1738                  own event handler, but an application may wish to 
1739                  substitute another, for example to allow central 
1740                  implementation of event-handling for a variety of 
1741                  different window classes. 
1742                  wxWindow::PushEventHandler allows an application to set up a 
1743                  chain of event handlers, where an event not handled by one event 
1744                  handler is handed to the next one in the chain. 
1745                  Use wxWindow::PopEventHandler to remove the event handler. 
1747         @see SetEventHandler(), GetEventHandler(), 
1748              PopEventHandler(), wxEvtHandler::ProcessEvent, wxEvtHandler 
1750     void PushEventHandler(wxEvtHandler
* handler
); 
1753         Raises the window to the top of the window hierarchy (Z-order). 
1756         This function only works for wxTopLevelWindow-derived classes. 
1760     virtual void Raise(); 
1763         Causes this window, and all of its children recursively (except under wxGTK1 
1764         where this is not implemented), to be repainted. Note that repainting doesn't 
1765         happen immediately but only during the next event loop iteration, if you need 
1766         to update the window immediately you should use Update() instead. 
1768         @param eraseBackground 
1769             If @true, the background will be erased. 
1771             If non-@NULL, only the given rectangle will be treated as damaged. 
1775     virtual void Refresh(bool eraseBackground 
= true, 
1776                          const wxRect
* rect 
= NULL
); 
1779         Redraws the contents of the given rectangle: only the area inside it will be 
1782         This is the same as Refresh() but has a nicer syntax as it can be called 
1783         with a temporary wxRect object as argument like this @c RefreshRect(wxRect(x, y, w, h)). 
1785     void RefreshRect(const wxRect
& rect
, bool eraseBackground 
= true); 
1788         Registers a system wide hotkey. Every time the user presses the hotkey 
1789         registered here, this window will receive a hotkey event. 
1791         It will receive the event even if the application is in the background 
1792         and does not have the input focus because the user is working with some 
1796             Numeric identifier of the hotkey. For applications this must be between 0 
1797             and 0xBFFF. If this function is called from a shared DLL, it must be a 
1798             system wide unique identifier between 0xC000 and 0xFFFF. 
1799             This is a MSW specific detail. 
1801             A bitwise combination of wxMOD_SHIFT, wxMOD_CONTROL, wxMOD_ALT 
1802             or wxMOD_WIN specifying the modifier keys that have to be pressed along 
1804         @param virtualKeyCode 
1805             The virtual key code of the hotkey. 
1807         @return @true if the hotkey was registered successfully. @false if some 
1808                  other application already registered a hotkey with this 
1809                  modifier/virtualKeyCode combination. 
1811         @remarks Use EVT_HOTKEY(hotkeyId, fnc) in the event table to capture the 
1812                  event. This function is currently only implemented 
1813                  under Windows. It is used in the Windows CE port for 
1814                  detecting hardware button presses. 
1816         @see UnregisterHotKey() 
1818     virtual bool RegisterHotKey(int hotkeyId
, int modifiers
, 
1819                                 int virtualKeyCode
); 
1822         Releases mouse input captured with CaptureMouse(). 
1824         @see CaptureMouse(), HasCapture(), ReleaseMouse(), 
1825              wxMouseCaptureLostEvent, wxMouseCaptureChangedEvent 
1827     void ReleaseMouse(); 
1830         Removes a child window. 
1832         This is called automatically by window deletion functions so should not 
1833         be required by the application programmer. 
1834         Notice that this function is mostly internal to wxWidgets and shouldn't be 
1835         called by the user code. 
1838             Child window to remove. 
1840     virtual void RemoveChild(wxWindow
* child
); 
1843         Find the given @a handler in the windows event handler chain and remove 
1844         (but not delete) it from it. 
1847             The event handler to remove, must be non-@NULL and 
1848             must be present in this windows event handlers chain 
1850         @return Returns @true if it was found and @false otherwise (this also 
1851                 results in an assert failure so this function should 
1852                 only be called when the handler is supposed to be there). 
1854         @see PushEventHandler(), PopEventHandler() 
1856     bool RemoveEventHandler(wxEvtHandler
* handler
); 
1859         Reparents the window, i.e the window will be removed from its 
1860         current parent window (e.g. a non-standard toolbar in a wxFrame) 
1861         and then re-inserted into another. 
1866     virtual bool Reparent(wxWindow
* newParent
); 
1869         Converts from screen to client window coordinates. 
1872             Stores the screen x coordinate and receives the client x coordinate. 
1874             Stores the screen x coordinate and receives the client x coordinate. 
1876     void ScreenToClient(int* x
, int* y
) const; 
1879         Converts from screen to client window coordinates. 
1882             The screen position. 
1884     wxPoint 
ScreenToClient(const wxPoint
& pt
) const; 
1887         Scrolls the window by the given number of lines down (if @a lines is 
1890         @return Returns @true if the window was scrolled, @false if it was already 
1891                 on top/bottom and nothing was done. 
1893         @remarks This function is currently only implemented under MSW and 
1894                  wxTextCtrl under wxGTK (it also works for wxScrolled classes 
1895                  under all platforms). 
1899     virtual bool ScrollLines(int lines
); 
1902         Scrolls the window by the given number of pages down (if @a pages is 
1905         @return Returns @true if the window was scrolled, @false if it was already 
1906                 on top/bottom and nothing was done. 
1908         @remarks This function is currently only implemented under MSW and wxGTK. 
1912     virtual bool ScrollPages(int pages
); 
1915         Physically scrolls the pixels in the window and move child windows accordingly. 
1918             Amount to scroll horizontally. 
1920             Amount to scroll vertically. 
1922             Rectangle to scroll, if it is @NULL, the whole window is 
1923             scrolled (this is always the case under wxGTK which doesn't support this 
1926         @remarks Note that you can often use wxScrolled instead of using this 
1929     virtual void ScrollWindow(int dx
, int dy
, 
1930                               const wxRect
* rect 
= NULL
); 
1933         This function sends a dummy @ref wxSizeEvent "size event" to 
1934         the window allowing it to re-layout its children positions. 
1936         It is sometimes useful to call this function after adding or deleting a 
1937         children after the frame creation or if a child size changes. Note that 
1938         if the frame is using either sizers or constraints for the children 
1939         layout, it is enough to call wxWindow::Layout() directly and this 
1940         function should not be used in this case. 
1942         If @a flags includes @c wxSEND_EVENT_POST value, this function posts 
1943         the event, i.e. schedules it for later processing, instead of 
1944         dispatching it directly. You can also use PostSizeEvent() as a more 
1945         readable equivalent of calling this function with this flag. 
1948             May include @c wxSEND_EVENT_POST. Default value is 0. 
1950     virtual void SendSizeEvent(int flags 
= 0); 
1953         Safe wrapper for GetParent()->SendSizeEvent(). 
1955         This function simply checks that the window has a valid parent which is 
1956         not in process of being deleted and calls SendSizeEvent() on it. It is 
1957         used internally by windows such as toolbars changes to whose state 
1958         should result in parent re-layout (e.g. when a toolbar is added to the 
1959         top of the window, all the other windows must be shifted down). 
1961         @see PostSizeEventToParent() 
1964             See description of this parameter in SendSizeEvent() documentation. 
1966     void SendSizeEventToParent(int flags 
= 0); 
1969         Sets the accelerator table for this window. See wxAcceleratorTable. 
1971     virtual void SetAcceleratorTable(const wxAcceleratorTable
& accel
); 
1974         Sets the accessible for this window. Any existing accessible for this window 
1975         will be deleted first, if not identical to @e accessible. 
1976         See also wxAccessible. 
1978     void SetAccessible(wxAccessible
* accessible
); 
1981         Determines whether the Layout() function will be called automatically 
1982         when the window is resized. Please note that this only happens for the 
1983         windows usually used to contain children, namely wxPanel and wxTopLevelWindow 
1984         (and the classes deriving from them). 
1986         This method is called implicitly by SetSizer() but if you use SetConstraints() 
1987         you should call it manually or otherwise the window layout won't be correctly 
1988         updated when its size changes. 
1991             Set this to @true if you wish the Layout() function to be 
1992             called automatically when the window is resized 
1993             (really happens only if you derive from wxPanel or wxTopLevelWindow). 
1995         @see SetConstraints() 
1997     void SetAutoLayout(bool autoLayout
); 
2000         Sets the background colour of the window. 
2001         Please see InheritAttributes() for explanation of the difference between 
2002         this method and SetOwnBackgroundColour(). 
2005             The colour to be used as the background colour, pass 
2006             wxNullColour to reset to the default colour. 
2008         @remarks The background colour is usually painted by the default 
2009                  wxEraseEvent event handler function under Windows and 
2010                  automatically under GTK. 
2011                  Note that setting the background colour does not cause an 
2012                  immediate refresh, so you may wish to call wxWindow::ClearBackground 
2013                  or wxWindow::Refresh after calling this function. 
2014                  Using this function will disable attempts to use themes for 
2015                  this window, if the system supports them. Use with care since 
2016                  usually the themes represent the appearance chosen by the user 
2017                  to be used for all applications on the system. 
2019         @see GetBackgroundColour(), SetForegroundColour(), 
2020              GetForegroundColour(), ClearBackground(), 
2021              Refresh(), wxEraseEvent 
2023     virtual bool SetBackgroundColour(const wxColour
& colour
); 
2026         Sets the background style of the window. see GetBackgroundStyle() for 
2027         the description of the possible style values. 
2029         @see SetBackgroundColour(), GetForegroundColour(), 
2032     virtual bool SetBackgroundStyle(wxBackgroundStyle style
); 
2035         This method is only implemented by ports which have support for 
2036         native TAB traversal (such as GTK+ 2.0). 
2038         It is called by wxWidgets' container control code to give the native 
2039         system a hint when doing TAB traversal. A call to this does not disable 
2040         or change the effect of programmatically calling SetFocus(). 
2042         @see wxFocusEvent, wxPanel::SetFocus, wxPanel::SetFocusIgnoringChildren 
2044     virtual void SetCanFocus(bool canFocus
); 
2047         Sets the caret() associated with the window. 
2049     void SetCaret(wxCaret
* caret
); 
2053         This sets the size of the window client area in pixels. 
2055         Using this function to size a window tends to be more device-independent 
2056         than SetSize(), since the application need not worry about what dimensions 
2057         the border or title bar have when trying to fit the window around panel 
2060     virtual void SetClientSize(int width
, int height
); 
2061     virtual void SetClientSize(const wxSize
& size
); 
2065         Sets the window to have the given layout constraints. The window 
2066         will then own the object, and will take care of its deletion. 
2067         If an existing layout constraints object is already owned by the 
2068         window, it will be deleted. 
2071             The constraints to set. Pass @NULL to disassociate and delete the window's 
2074         @remarks You must call SetAutoLayout() to tell a window to use 
2075                  the constraints automatically in OnSize; otherwise, you 
2076                  must override OnSize and call Layout() explicitly. When 
2077                  setting both a wxLayoutConstraints and a wxSizer, only 
2078                  the sizer will have effect. 
2080     void SetConstraints(wxLayoutConstraints
* constraints
); 
2083         This normally does not need to be called by user code. 
2084         It is called when a window is added to a sizer, and is used so the window 
2085         can remove itself from the sizer when it is destroyed. 
2087     void SetContainingSizer(wxSizer
* sizer
); 
2090         Sets the window's cursor. Notice that the window cursor also sets it for the 
2091         children of the window implicitly. 
2093         The @a cursor may be @c wxNullCursor in which case the window cursor will 
2094         be reset back to default. 
2097             Specifies the cursor that the window should normally display. 
2099         @see ::wxSetCursor, wxCursor 
2101     virtual bool SetCursor(const wxCursor
& cursor
); 
2104         Associates a drop target with this window. 
2105         If the window already has a drop target, it is deleted. 
2107         @see GetDropTarget(), @ref overview_dnd 
2109     virtual void SetDropTarget(wxDropTarget
* target
); 
2112         Sets the event handler for this window. 
2115             Specifies the handler to be set. 
2117         @remarks An event handler is an object that is capable of processing the 
2118                  events sent to a window. By default, the window is its 
2119                  own event handler, but an application may wish to 
2120                  substitute another, for example to allow central 
2121                  implementation of event-handling for a variety of 
2122                  different window classes. 
2123                  It is usually better to use wxWindow::PushEventHandler since 
2124                  this sets up a chain of event handlers, where an event not 
2125                 handled by one event handler is handed to the next one in the chain. 
2127         @see GetEventHandler(), PushEventHandler(), 
2128              PopEventHandler(), wxEvtHandler::ProcessEvent, wxEvtHandler 
2130     void SetEventHandler(wxEvtHandler
* handler
); 
2133         Sets the extra style bits for the window. 
2134         The currently defined extra style bits are reported in the class 
2137     virtual void SetExtraStyle(long exStyle
); 
2140         This sets the window to receive keyboard input. 
2142         @see HasFocus(), wxFocusEvent, wxPanel::SetFocus, 
2143              wxPanel::SetFocusIgnoringChildren 
2145     virtual void SetFocus(); 
2148         This function is called by wxWidgets keyboard navigation code when the user 
2149         gives the focus to this window from keyboard (e.g. using @c TAB key). 
2151         By default this method simply calls SetFocus() but 
2152         can be overridden to do something in addition to this in the derived classes. 
2154     virtual void SetFocusFromKbd(); 
2157         Sets the font for this window. This function should not be called for the 
2158         parent window if you don't want its font to be inherited by its children, 
2159         use SetOwnFont() instead in this case and see InheritAttributes() for more 
2162         Please notice that the given font is not automatically used for 
2163         wxPaintDC objects associated with this window, you need to 
2164         call wxDC::SetFont too. However this font is used by 
2165         any standard controls for drawing their text as well as by 
2169             Font to associate with this window, pass 
2170             wxNullFont to reset to the default font. 
2172         @return @true if the want was really changed, @false if it was already set 
2173                 to this  font and so nothing was done. 
2175         @see GetFont(), InheritAttributes() 
2177     virtual bool SetFont(const wxFont
& font
); 
2180         Sets the foreground colour of the window. 
2181         Please see InheritAttributes() for explanation of the difference between 
2182         this method and SetOwnForegroundColour(). 
2185             The colour to be used as the foreground colour, pass 
2186             wxNullColour to reset to the default colour. 
2188         @remarks The interpretation of foreground colour is open to 
2189                  interpretation according to the window class; it may be 
2190                  the text colour or other colour, or it may not be used at all. 
2192         @see GetForegroundColour(), SetBackgroundColour(), 
2193              GetBackgroundColour(), ShouldInheritColours() 
2195     virtual bool SetForegroundColour(const wxColour
& colour
); 
2198         Sets the help text to be used as context-sensitive help for this window. 
2199         Note that the text is actually stored by the current wxHelpProvider 
2200         implementation, and not in the window object itself. 
2202         @see GetHelpText(), wxHelpProvider::AddHelp() 
2204     void SetHelpText(const wxString
& helpText
); 
2207         Sets the identifier of the window. 
2209         @remarks Each window has an integer identifier. If the application has 
2210                  not provided one, an identifier will be generated. 
2211                  Normally, the identifier should be provided on creation 
2212                  and should not be modified subsequently. 
2214         @see GetId(), @ref overview_windowids 
2216     void SetId(wxWindowID winid
); 
2219         A @e smart SetSize that will fill in default size components with the 
2220         window's @e best size values. 
2222         Also sets the window's minsize to the value passed in for use with sizers. 
2223         This means that if a full or partial size is passed to this function then 
2224         the sizers will use that size instead of the results of GetBestSize() to 
2225         determine the minimum needs of the window for layout. 
2227         Most controls will use this to set their initial size, and their min 
2228         size to the passed in value (if any.) 
2230         @see SetSize(), GetBestSize(), GetEffectiveMinSize(), 
2231              @ref overview_windowsizing 
2233     void SetInitialSize(const wxSize
& size 
= wxDefaultSize
); 
2236         Sets the window's label. 
2243     virtual void SetLabel(const wxString
& label
); 
2246         Sets the maximum client size of the window, to indicate to the sizer 
2247         layout mechanism that this is the maximum possible size of its client area. 
2251     virtual void SetMaxClientSize(const wxSize
& size
); 
2254         Sets the maximum size of the window, to indicate to the sizer layout mechanism 
2255         that this is the maximum possible size. 
2257         @see SetMaxClientSize() 
2259     virtual void SetMaxSize(const wxSize
& size
); 
2262         Sets the minimum client size of the window, to indicate to the sizer 
2263         layout mechanism that this is the minimum required size of window's client 
2266         You may need to call this if you change the window size after 
2267         construction and before adding to its parent sizer. 
2269         Note, that just as with SetMinSize(), calling this method doesn't 
2270         prevent the program from explicitly making the window smaller than the 
2275     virtual void SetMinClientSize(const wxSize
& size
); 
2278         Sets the minimum size of the window, to indicate to the sizer layout 
2279         mechanism that this is the minimum required size. 
2281         You may need to call this if you change the window size after 
2282         construction and before adding to its parent sizer. 
2284         Notice that calling this method doesn't prevent the program from making 
2285         the window explicitly smaller than the specified size by calling 
2286         SetSize(), it just ensures that it won't become smaller than this size 
2287         during the automatic layout. 
2289         @see SetMinClientSize() 
2291     virtual void SetMinSize(const wxSize
& size
); 
2294         Sets the window's name. 
2297             A name to set for the window. 
2301     virtual void SetName(const wxString
& name
); 
2304         Sets the background colour of the window but prevents it from being inherited 
2305         by the children of this window. 
2307         @see SetBackgroundColour(), InheritAttributes() 
2309     void SetOwnBackgroundColour(const wxColour
& colour
); 
2312         Sets the font of the window but prevents it from being inherited by the 
2313         children of this window. 
2315         @see SetFont(), InheritAttributes() 
2317     void SetOwnFont(const wxFont
& font
); 
2320         Sets the foreground colour of the window but prevents it from being inherited 
2321         by the children of this window. 
2323         @see SetForegroundColour(), InheritAttributes() 
2325     void SetOwnForegroundColour(const wxColour
& colour
); 
2328         @deprecated use wxDC::SetPalette instead. 
2330     void SetPalette(const wxPalette
& pal
); 
2333         Sets the position of one of the built-in scrollbars. 
2336             Determines the scrollbar whose position is to be set. 
2337             May be wxHORIZONTAL or wxVERTICAL. 
2339             Position in scroll units. 
2341             @true to redraw the scrollbar, @false otherwise. 
2343         @remarks This function does not directly affect the contents of the 
2344                  window: it is up to the application to take note of 
2345                  scrollbar attributes and redraw contents accordingly. 
2347         @see SetScrollbar(), GetScrollPos(), GetScrollThumb(), wxScrollBar, 
2350     virtual void SetScrollPos(int orientation
, int pos
, 
2351                               bool refresh 
= true); 
2354         Sets the scrollbar properties of a built-in scrollbar. 
2357             Determines the scrollbar whose page size is to be set. 
2358             May be wxHORIZONTAL or wxVERTICAL. 
2360             The position of the scrollbar in scroll units. 
2362             The size of the thumb, or visible portion of the scrollbar, in scroll units. 
2364             The maximum position of the scrollbar. 
2366             @true to redraw the scrollbar, @false otherwise. 
2369             Let's say you wish to display 50 lines of text, using the same font. 
2370             The window is sized so that you can only see 16 lines at a time. 
2373             SetScrollbar(wxVERTICAL, 0, 16, 50); 
2375             Note that with the window at this size, the thumb position can never 
2376             go above 50 minus 16, or 34. You can determine how many lines are 
2377             currently visible by dividing the current view size by the character 
2379             When defining your own scrollbar behaviour, you will always need 
2380             to recalculate the scrollbar settings when the window size changes. 
2381             You could therefore put your scrollbar calculations and SetScrollbar 
2382             call into a function named AdjustScrollbars, which can be called 
2383             initially and also from your wxSizeEvent handler function. 
2385         @see @ref overview_scrolling, wxScrollBar, wxScrolled, wxScrollWinEvent 
2387     virtual void SetScrollbar(int orientation
, int position
, 
2388                               int thumbSize
, int range
, 
2389                               bool refresh 
= true); 
2392         Sets the size of the window in pixels. 
2395             Required x position in pixels, or wxDefaultCoord to indicate that the 
2396             existing value should be used. 
2398             Required y position in pixels, or wxDefaultCoord to indicate that the 
2399             existing value should be used. 
2401             Required width in pixels, or wxDefaultCoord to indicate that the existing 
2402             value should be used. 
2404             Required height position in pixels, or wxDefaultCoord to indicate that the 
2405             existing value should be used. 
2407             Indicates the interpretation of other parameters. 
2408             It is a bit list of the following: 
2409             - @c wxSIZE_AUTO_WIDTH: a wxDefaultCoord width value is taken to indicate 
2410                                     a wxWidgets-supplied default width. 
2411             - @c wxSIZE_AUTO_HEIGHT: a wxDefaultCoord height value is taken to indicate 
2412                                      a wxWidgets-supplied default height. 
2413             - @c wxSIZE_AUTO: wxDefaultCoord size values are taken to indicate 
2414                               a wxWidgets-supplied default size. 
2415             - @c wxSIZE_USE_EXISTING: existing dimensions should be used 
2416                                       if wxDefaultCoord values are supplied. 
2417             - @c wxSIZE_ALLOW_MINUS_ONE: allow negative dimensions (i.e. value of 
2418                                          wxDefaultCoord) to be interpreted as real 
2419                                          dimensions, not default values. 
2420             - @c wxSIZE_FORCE: normally, if the position and the size of the window are 
2421                                already the same as the parameters of this function, 
2422                                nothing is done. but with this flag a window resize may 
2423                                be forced even in this case (supported in wx 2.6.2 and 
2424                                later and only implemented for MSW and ignored elsewhere 
2427         @remarks This overload sets the position and optionally size, of the window. 
2428                  Parameters may be wxDefaultCoord to indicate either that a default 
2429                  should be supplied by wxWidgets, or that the current value of the 
2430                  dimension should be used. 
2434     void SetSize(int x
, int y
, int width
, int height
, 
2435                  int sizeFlags 
= wxSIZE_AUTO
); 
2439         Sets the size of the window in pixels. 
2440         The size is specified using a wxRect, wxSize or by a couple of @c int objects. 
2442         @remarks This form must be used with non-default width and height values. 
2446     virtual void SetSize(const wxRect
& rect
); 
2447     virtual void SetSize(const wxSize
& size
); 
2448     virtual void SetSize(int width
, int height
); 
2452         Sets the window to have the given layout sizer. 
2453         The window will then own the object, and will take care of its deletion. 
2454         If an existing layout constraints object is already owned by the 
2455         window, it will be deleted if the deleteOld parameter is @true. 
2457         Note that this function will also call SetAutoLayout() implicitly with @true 
2458         parameter if the @a sizer is non-@NULL and @false otherwise. 
2461             The sizer to set. Pass @NULL to disassociate and conditionally delete 
2462             the window's sizer. See below. 
2464             If @true (the default), this will delete any pre-existing sizer. 
2465             Pass @false if you wish to handle deleting the old sizer yourself. 
2467         @remarks SetSizer enables and disables Layout automatically. 
2469     void SetSizer(wxSizer
* sizer
, bool deleteOld 
= true); 
2472         This method calls SetSizer() and then wxSizer::SetSizeHints which sets the initial 
2473         window size to the size needed to accommodate all sizer elements and sets the 
2474         size hints which, if this window is a top level one, prevent the user from 
2475         resizing it to be less than this minimial size. 
2477     void SetSizerAndFit(wxSizer
* sizer
, bool deleteOld 
= true); 
2480         This function tells a window if it should use the system's "theme" code 
2481         to draw the windows' background instead if its own background drawing 
2482         code. This does not always have any effect since the underlying platform 
2483         obviously needs to support the notion of themes in user defined windows. 
2484         One such platform is GTK+ where windows can have (very colourful) backgrounds 
2485         defined by a user's selected theme. 
2487         Dialogs, notebook pages and the status bar have this flag set to @true 
2488         by default so that the default look and feel is simulated best. 
2490     virtual void SetThemeEnabled(bool enable
); 
2494         Attach a tooltip to the window. 
2496         wxToolTip pointer can be @NULL in the overload taking the pointer, 
2497         meaning to unset any existing tooltips, however UnsetToolTip() provides 
2498         a more readable alternative to this operation. 
2500         Notice that these methods are always available, even if wxWidgets was 
2501         compiled with @c wxUSE_TOOLTIPS set to 0, but don't do anything in this 
2504         @see GetToolTip(), wxToolTip 
2506     void SetToolTip(const wxString
& tip
); 
2507     void SetToolTip(wxToolTip
* tip
); 
2511         Set the transparency of the window. If the system supports transparent windows, 
2512         returns @true, otherwise returns @false and the window remains fully opaque. 
2513         See also CanSetTransparent(). 
2515         The parameter @a alpha is in the range 0..255 where 0 corresponds to a 
2516         fully transparent window and 255 to the fully opaque one. The constants 
2517         @c wxIMAGE_ALPHA_TRANSPARENT and @c wxIMAGE_ALPHA_OPAQUE can be used. 
2519     virtual bool SetTransparent(wxByte alpha
); 
2522         Deletes the current validator (if any) and sets the window validator, having 
2523         called wxValidator::Clone to create a new validator of this type. 
2525     virtual void SetValidator(const wxValidator
& validator
); 
2529         Sets the virtual size of the window in pixels. 
2531     void SetVirtualSize(int width
, int height
); 
2532     void SetVirtualSize(const wxSize
& size
); 
2536         Identical to SetWindowStyleFlag(). 
2538     void SetWindowStyle(long style
); 
2541         Sets the style of the window. Please note that some styles cannot be changed 
2542         after the window creation and that Refresh() might need to be be called 
2543         after changing the others for the change to take place immediately. 
2545         See @ref overview_windowstyles "Window styles" for more information about flags. 
2547         @see GetWindowStyleFlag() 
2549     virtual void SetWindowStyleFlag(long style
); 
2552         This function can be called under all platforms but only does anything under 
2553         Mac OS X 10.3+ currently. Under this system, each of the standard control can 
2554         exist in several sizes which correspond to the elements of wxWindowVariant enum. 
2556         By default the controls use the normal size, of course, but this function can 
2557         be used to change this. 
2559     void SetWindowVariant(wxWindowVariant variant
); 
2562         Return @true from here to allow the colours of this window to be changed by 
2563         InheritAttributes(), returning @false forbids inheriting them from the parent window. 
2565         The base class version returns @false, but this method is overridden in 
2566         wxControl where it returns @true. 
2568     virtual bool ShouldInheritColours() const; 
2571         Shows or hides the window. You may need to call Raise() 
2572         for a top level window if you want to bring it to top, although this is not 
2573         needed if Show() is called immediately after the frame creation. 
2576             If @true displays the window. Otherwise, hides it. 
2578         @return @true if the window has been shown or hidden or @false if nothing 
2579                  was done because it already was in the requested state. 
2581         @see IsShown(), Hide(), wxRadioBox::Show, wxShowEvent. 
2583     virtual bool Show(bool show 
= true); 
2586         This function shows a window, like Show(), but using a special visual 
2593             The @a timeout parameter specifies the time of the animation, in 
2594             milliseconds. If the default value of 0 is used, the default 
2595             animation time for the current platform is used. 
2597         @note Currently this function is only implemented in wxMSW and does the 
2598               same thing as Show() in the other ports. 
2602         @see HideWithEffect() 
2604     virtual bool ShowWithEffect(wxShowEffect effect
, 
2605                                 unsigned int timeout 
= 0); 
2608         Reenables window updating after a previous call to Freeze(). 
2610         To really thaw the control, it must be called exactly the same number 
2611         of times as Freeze(). 
2613         If the window has any children, they are recursively thawn too. 
2615         @see wxWindowUpdateLocker, Freeze(), IsFrozen() 
2620         Turns the given @a flag on if it's currently turned off and vice versa. 
2621         This function cannot be used if the value of the flag is 0 (which is often 
2622         the case for default flags). 
2624         Also, please notice that not all styles can be changed after the control 
2627         @return Returns @true if the style was turned on by this function, @false 
2628                  if it was switched off. 
2630         @see SetWindowStyleFlag(), HasFlag() 
2632     bool ToggleWindowStyle(int flag
); 
2635         Transfers values from child controls to data areas specified by their 
2636         validators. Returns @false if a transfer failed. 
2638         If the window has @c wxWS_EX_VALIDATE_RECURSIVELY extra style flag set, 
2639         the method will also call TransferDataFromWindow() of all child windows. 
2641         @see TransferDataToWindow(), wxValidator, Validate() 
2643     virtual bool TransferDataFromWindow(); 
2646         Transfers values to child controls from data areas specified by their 
2649         If the window has @c wxWS_EX_VALIDATE_RECURSIVELY extra style flag set, 
2650         the method will also call TransferDataToWindow() of all child windows. 
2652         @return Returns @false if a transfer failed. 
2654         @see TransferDataFromWindow(), wxValidator, Validate() 
2656     virtual bool TransferDataToWindow(); 
2659         Unregisters a system wide hotkey. 
2662             Numeric identifier of the hotkey. Must be the same id that was passed to 
2665         @return @true if the hotkey was unregistered successfully, @false if the 
2668         @remarks This function is currently only implemented under MSW. 
2670         @see RegisterHotKey() 
2672     virtual bool UnregisterHotKey(int hotkeyId
); 
2675         Unreserve an ID or range of IDs that was reserved by NewControlId(). 
2676         See @ref overview_windowids for more information. 
2679             The starting ID of the range of IDs to unreserve. 
2681             The number of sequential IDs to unreserve. 
2683         @see NewControlId(), wxIdManager, @ref overview_windowids 
2685     static void UnreserveControlId(wxWindowID id
, int count 
= 1); 
2688         Unset any existing tooltip. 
2694     void UnsetToolTip(); 
2697         Calling this method immediately repaints the invalidated area of the window and 
2698         all of its children recursively while this would usually only happen when the 
2699         flow of control returns to the event loop. 
2701         Notice that this function doesn't invalidate any area of the window so 
2702         nothing happens if nothing has been invalidated (i.e. marked as requiring 
2703         a redraw). Use Refresh() first if you want to immediately redraw the 
2704         window unconditionally. 
2706     virtual void Update(); 
2709         This function sends one or more wxUpdateUIEvent to the window. 
2710         The particular implementation depends on the window; for example a 
2711         wxToolBar will send an update UI event for each toolbar button, 
2712         and a wxFrame will send an update UI event for each menubar menu item. 
2714         You can call this function from your application to ensure that your 
2715         UI is up-to-date at this point (as far as your wxUpdateUIEvent handlers 
2716         are concerned). This may be necessary if you have called 
2717         wxUpdateUIEvent::SetMode() or wxUpdateUIEvent::SetUpdateInterval() to limit 
2718         the overhead that wxWidgets incurs by sending update UI events in idle time. 
2719         @a flags should be a bitlist of one or more of the wxUpdateUI enumeration. 
2721         If you are calling this function from an OnInternalIdle or OnIdle 
2722         function, make sure you pass the wxUPDATE_UI_FROMIDLE flag, since 
2723         this tells the window to only update the UI elements that need 
2724         to be updated in idle time. Some windows update their elements 
2725         only when necessary, for example when a menu is about to be shown. 
2726         The following is an example of how to call UpdateWindowUI from 
2730         void MyWindow::OnInternalIdle() 
2732             if (wxUpdateUIEvent::CanUpdate(this)) 
2733                 UpdateWindowUI(wxUPDATE_UI_FROMIDLE); 
2737         @see wxUpdateUIEvent, DoUpdateWindowUI(), OnInternalIdle() 
2739     virtual void UpdateWindowUI(long flags 
= wxUPDATE_UI_NONE
); 
2742         Validates the current values of the child controls using their validators. 
2743         If the window has @c wxWS_EX_VALIDATE_RECURSIVELY extra style flag set, 
2744         the method will also call Validate() of all child windows. 
2746         @return Returns @false if any of the validations failed. 
2748         @see TransferDataFromWindow(), TransferDataToWindow(), 
2751     virtual bool Validate(); 
2754         Moves the pointer to the given position on the window. 
2756         @note This function is not supported under Mac because Apple Human 
2757               Interface Guidelines forbid moving the mouse cursor programmatically. 
2760             The new x position for the cursor. 
2762             The new y position for the cursor. 
2764     virtual void WarpPointer(int x
, int y
); 
2770         Gets the size which best suits the window: for a control, it would be 
2771         the minimal size which doesn't truncate the control, for a panel - the 
2772         same size as it would have after a call to Fit(). 
2774         The default implementation of this function is designed for use in container 
2775         windows, such as wxPanel, and works something like this: 
2776         -# If the window has a sizer then it is used to calculate the best size. 
2777         -# Otherwise if the window has layout constraints then those are used to 
2778            calculate the best size. 
2779         -# Otherwise if the window has children then the best size is set to be large 
2780            enough to show all the children. 
2781         -# Otherwise if there are no children then the window's minimal size will be 
2782            used as its best size. 
2783         -# Otherwise if there is no minimal size set, then the current size is used 
2786         @see @ref overview_windowsizing 
2788     virtual wxSize 
DoGetBestSize() const; 
2792         Sets the initial window size if none is given (i.e. at least one of the 
2793         components of the size passed to ctor/Create() is wxDefaultCoord). 
2794         @deprecated @todo provide deprecation description 
2796     virtual void SetInitialBestSize(const wxSize
& size
); 
2801 // ============================================================================ 
2802 // Global functions/macros 
2803 // ============================================================================ 
2805 /** @ingroup group_funcmacro_misc */ 
2809     Find the deepest window at the mouse pointer position, returning the window 
2810     and current pointer position in screen coordinates. 
2812     @header{wx/window.h} 
2814 wxWindow
* wxFindWindowAtPointer(wxPoint
& pt
); 
2817     Gets the currently active window (implemented for MSW and GTK only 
2818     currently, always returns @NULL in the other ports). 
2820     @header{wx/window.h} 
2822 wxWindow
* wxGetActiveWindow(); 
2825     Returns the first top level parent of the given window, or in other words, 
2826     the frame or dialog containing it, or @NULL. 
2828     @header{wx/window.h} 
2830 wxWindow
* wxGetTopLevelParent(wxWindow
* window
);