wxWindow is the base class for all windows. Any children of the window will be deleted
automatically by the destructor before the window itself is deleted.
-Please note that we documented a number of handler functions (OnChar(), OnMouse() etc.) in this
-help text. These must not be called by a user program and are documented only for illustration.
-On several platforms, only a few of these handlers are actually written (they are not always
-needed) and if you are uncertain on how to add a certain behaviour to a window class, intercept
-the respective event as usual and call \helpref{wxEvent::Skip}{wxeventskip} so that the native
-platform can implement its native behaviour or just ignore the event if nothing needs to be
-done.
+%Please note that we documented a number of handler functions (OnChar(), OnMouse() etc.) in this
+%help text. These must not be called by a user program and are documented only for illustration.
+%On several platforms, only a few of these handlers are actually written (they are not always
+%needed) and if you are uncertain on how to add a certain behaviour to a window class, intercept
+%the respective event as usual and call \helpref{wxEvent::Skip}{wxeventskip} so that the native
+%platform can implement its native behaviour or just ignore the event if nothing needs to be
+%done.
\wxheading{Derived from}
the window completely when its size is changed - you will have to repaint the
new window area manually if you use this style. Currently only has an effect for
Windows.}
-\twocolitem{\windowstyle{wxVSCROLL}}{Use this style to enable a vertical scrollbar. (Still used?) }
-\twocolitem{\windowstyle{wxHSCROLL}}{Use this style to enable a horizontal scrollbar. (Still used?) }
+\twocolitem{\windowstyle{wxVSCROLL}}{Use this style to enable a vertical scrollbar.}
+\twocolitem{\windowstyle{wxHSCROLL}}{Use this style to enable a horizontal scrollbar.}
\twocolitem{\windowstyle{wxCLIP\_CHILDREN}}{Use this style to eliminate flicker caused by the background being
repainted, then children being painted over them. Windows only.}
\end{twocollist}
\membersection{wxWindow::Close}\label{wxwindowclose}
-\func{virtual bool}{Close}{\param{bool}{ force = {\tt FALSE}}}
+\func{bool}{Close}{\param{bool}{ force = {\tt FALSE}}}
-The purpose of this call is to provide a safer way of destroying a window than using
-the {\it delete} operator.
+This function simply generates a \helpref{wxCloseEvent}{wxcloseevent} whose
+handler usually tries to close the window. It doesn't close the window itself,
+however.
\wxheading{Parameters}
\wxheading{Remarks}
-Close calls the \helpref{close handler}{wxcloseevent} for the window, providing an opportunity for the window to
-choose whether to destroy the window.
+Close calls the \helpref{close handler}{wxcloseevent} for the window, providing
+an opportunity for the window to choose whether to destroy the window.
+Usually it is only used with the top level windows (wxFrame and wxDialog
+classes) as the others are not supposed to have any special OnClose() logic.
The close handler should check whether the window is being deleted forcibly,
-using \helpref{wxCloseEvent::GetForce}{wxcloseeventgetforce}, in which case it should
-destroy the window using \helpref{wxWindow::Destroy}{wxwindowdestroy}.
+using \helpref{wxCloseEvent::GetForce}{wxcloseeventgetforce}, in which case it
+should destroy the window using \helpref{wxWindow::Destroy}{wxwindowdestroy}.
-Applies to managed windows (wxFrame and wxDialog classes) only.
+{\it Note} that calling Close does not guarantee that the window will be
+destroyed; but it provides a way to simulate a manual close of a window, which
+may or may not be implemented by destroying the window. The default
+implementation of wxDialog::OnCloseWindow does not necessarily delete the
+dialog, since it will simply simulate an wxID\_CANCEL event which is handled by
+the appropriate button event handler and may do anything at all.
-{\it Note} that calling Close does not guarantee that the window will be destroyed; but it
-provides a way to simulate a manual close of a window, which may or may not be implemented by
-destroying the window. The default implementation of wxDialog::OnCloseWindow does not
-necessarily delete the dialog, since it will simply simulate an wxID\_CANCEL event which
-itself only hides the dialog.
-
-To guarantee that the window will be destroyed, call \helpref{wxWindow::Destroy}{wxwindowdestroy} instead.
+To guarantee that the window will be destroyed, call
+\helpref{wxWindow::Destroy}{wxwindowdestroy} instead
\wxheading{See also}
Destroys the window safely. Use this function instead of the delete operator, since
different window classes can be destroyed differently. Frames and dialogs
-are not destroyed immediately when this function is called - they are added
+are not destroyed immediately when this function is called -- they are added
to a list of windows to be deleted on idle time, when all the window's events
have been processed. This prevents problems with events being sent to non-existent
windows.
\func{virtual bool}{Enable}{\param{bool}{ enable = {\tt TRUE}}}
-Enable or disable the window for user input.
+Enable or disable the window for user input. Note that when a parent window is
+disabled, all of its children are disabled as well and they are reenabled again
+when the parent is.
\wxheading{Parameters}
Sizes the window so that it fits around its subwindows. This function won't do
anything if there are no subwindows.
+\membersection{wxWindow::FitInside}\label{wxwindowfitinside}
+
+\func{virtual void}{FitInside}{\void}
+
+Similar to \helpref{Fit}{wxwindowfit}, but sizes the interior (virtual) size
+of a window. Mainly useful with scrolled windows to reset scrollbars after
+sizing changes that do not trigger a size event, and/or scrolled windows without
+an interior sizer. This function similarly won't do anything if there are no
+subwindows.
+
\membersection{wxWindow::Freeze}\label{wxwindowfreeze}
\func{virtual void}{Freeze}{\void}
controls so it is mostly just a hint to wxWindows and not a mandatory
directive.
+\membersection{wxWindow::GetAdjustedBestSize}\label{wxwindowgetadjustedbestsize}
+
+\constfunc{wxSize}{GetAdjustedBestSize}{\void}
+
+This method is similar to \helpref{GetBestSize}{wxwindowgetbestsize}, except
+in one thing. GetBestSize should return the minimum untruncated size of the
+window, while this method will return the largest of BestSize and any user
+specified minimum size. ie. it is the minimum size the window should currently
+be drawn at, not the minimal size it can possibly tolerate.
+
\membersection{wxWindow::GetBackgroundColour}\label{wxwindowgetbackgroundcolour}
\constfunc{virtual wxColour}{GetBackgroundColour}{\void}
\pythonnote{This method will return an integer in wxPython.}
+\perlnote{This method will return an integer in wxPerl.}
+
\membersection{wxWindow::GetHelpText}\label{wxwindowgethelptext}
\constfunc{virtual wxString}{GetHelpText}{\void}
Invokes the constraint-based layout algorithm or the sizer-based algorithm
for this window.
-See \helpref{wxWindow::SetAutoLayout}{wxwindowsetautolayout} on when
-this function gets called automatically using auto layout.
+See \helpref{wxWindow::SetAutoLayout}{wxwindowsetautolayout}: when auto
+layout is on, this function gets called automatically when the window is resized.
\membersection{wxWindow::LoadFromResource}\label{wxwindowloadfromresource}
\docparam{rect}{If non-NULL, only the given rectangle will
be treated as damaged.}
+\wxheading{See also}
+
+\helpref{wxWindow::RefreshRect}{wxwindowrefreshrect}
+
+\membersection{wxWindow::RefreshRect}\label{wxwindowrefreshrect}
+
+\func{virtual void}{Refresh}{\param{const wxRect\& }{rect}}
+
+Redraws the contents of the given rectangle: the area inside it will be
+repainted.
+
+This is the same as \helpref{Refresh}{wxwindowrefresh} but has a nicer syntax.
+
\membersection{wxWindow::ReleaseMouse}\label{wxwindowreleasemouse}
\func{virtual void}{ReleaseMouse}{\void}
\func{void}{SetAutoLayout}{\param{bool}{ autoLayout}}
Determines whether the \helpref{wxWindow::Layout}{wxwindowlayout} function will
-be called automatically when the window is resized. Use in connection with
-\helpref{wxWindow::SetSizer}{wxwindowsetsizer} and
-\helpref{wxWindow::SetConstraints}{wxwindowsetconstraints} for laying out
-subwindows.
+be called automatically when the window is resized. It is called implicitly by
+\helpref{wxWindow::SetSizer}{wxwindowsetsizer} but if you use
+\helpref{wxWindow::SetConstraints}{wxwindowsetconstraints} you should call it
+manually or otherwise the window layout won't be correctly updated when its
+size changes.
\wxheading{Parameters}
If an existing layout constraints object is already owned by the
window, it will be deleted if the deleteOld parameter is TRUE.
+Note that this function will also call
+\helpref{SetAutoLayout}{wxwindowsetautolayout} implicitly with {\tt TRUE}
+parameter if the {\it sizer}\/ is non-NULL and {\tt FALSE} otherwise.
+
\wxheading{Parameters}
\docparam{sizer}{The sizer to set. Pass NULL to disassociate and conditionally delete
\helpref{wxWindow::TransferDataFromWindow}{wxwindowtransferdatafromwindow},\rtfsp
\helpref{wxValidator}{wxvalidator}, \helpref{wxWindow::Validate}{wxwindowvalidate}
+\membersection{wxWindow::Update}\label{wxwindowupdate}
+
+\func{virtual void}{Update}{\void}
+
+Calling this method immediately repaints the invalidated area of the window
+while this would usually only happen when the flow of control returns to the
+event loop. Notice that this function doesn't refresh the window and does
+nothing if the window hadn't been already repainted. Use
+\helpref{Refresh}{wxwindowrefresh} first if you want to immediately redraw the
+window unconditionally.
+
\membersection{wxWindow::Validate}\label{wxwindowvalidate}
\func{virtual bool}{Validate}{\void}