]> git.saurik.com Git - wxWidgets.git/blobdiff - docs/latex/wx/window.tex
some doc updates
[wxWidgets.git] / docs / latex / wx / window.tex
index 4c15ed17196ad2feef0bc39e3af1a6d8cf48b05b..7b639b37a03c583ff002433b473d643a60bf40ae 100644 (file)
@@ -74,7 +74,7 @@ and no longer has an effect.}
 \twocolitem{\windowstyle{wxALWAYS\_SHOW\_SB}}{If a window has scrollbars,
 disable them instead of hiding them when they are not needed (i.e. when the
 size of the window is big enough to not require the scrollbars to navigate it).
-This style is currently only implemented for wxMSW and wxUniversal and does
+This style is currently implemented for wxMSW, wxGTK and wxUniversal and does
 nothing on the other platforms.}
 \twocolitem{\windowstyle{wxCLIP\_CHILDREN}}{Use this style to eliminate flicker caused by the background being
 repainted, then children being painted over them. Windows only.}
@@ -115,7 +115,8 @@ even if the mode set by \helpref{wxUpdateUIEvent::SetMode}{wxupdateuieventsetmod
 
 \wxheading{See also}
 
-\helpref{Event handling overview}{eventhandlingoverview}
+\helpref{Event handling overview}{eventhandlingoverview}\\
+\helpref{Window sizing overview}{windowsizingoverview}
 
 \latexignore{\rtfignore{\wxheading{Members}}}
 
@@ -203,11 +204,18 @@ Note that wxWidgets maintains the stack of windows having captured the mouse
 and when the mouse is released the capture returns to the window which had had
 captured it previously and it is only really released if there were no previous
 window. In particular, this means that you must release the mouse as many times
-as you capture it.
+as you capture it, unless the window receives
+the \helpref{wxMouseCaptureLostEvent}{wxmousecapturelostevent} event.
+
+Any application which captures the mouse in the beginning of some operation
+{\em must} handle \helpref{wxMouseCaptureLostEvent}{wxmousecapturelostevent}
+and cancel this operation when it receives the event. The event handler must
+not recapture mouse.
 
 \wxheading{See also}
 
 \helpref{wxWindow::ReleaseMouse}{wxwindowreleasemouse}
+\helpref{wxMouseCaptureLostEvent}{wxmousecapturelostevent}
 
 
 \membersection{wxWindow::Center}\label{wxwindowcenter}
@@ -751,17 +759,18 @@ background, such as a tiled bitmap. Currently the style has no effect on other p
 \helpref{wxWindow::GetForegroundColour}{wxwindowgetforegroundcolour},\rtfsp
 \helpref{wxWindow::SetBackgroundStyle}{wxwindowsetbackgroundstyle}
 
-\membersection{wxWindow::GetBestFittingSize}\label{wxwindowgetbestfittingsize}
+\membersection{wxWindow::GetEffectiveMinSize}\label{wxwindowgeteffectiveminsize}
 
-\constfunc{wxSize}{GetBestFittingSize}{\void}
+\constfunc{wxSize}{GetEffectiveMinSize}{\void}
 
-Merges the window's best size into the min size and returns the result.
+Merges the window's best size into the min size and returns the
+result.  This is the value used by sizers to determine the appropriate
+ammount of sapce to allocate for the widget.
 
 \wxheading{See also}
 
 \helpref{wxWindow::GetBestSize}{wxwindowgetbestsize},\rtfsp
-\helpref{wxWindow::SetBestFittingSize}{wxwindowsetbestfittingsize},\rtfsp
-\helpref{wxWindow::SetSizeHints}{wxwindowsetsizehints}
+\helpref{wxWindow::SetInitialSize}{wxwindowsetinitialsize}
 
 
 \membersection{wxWindow::GetBestSize}\label{wxwindowgetbestsize}
@@ -787,6 +796,7 @@ Returns the currently captured window.
 \helpref{wxWindow::HasCapture}{wxwindowhascapture},
 \helpref{wxWindow::CaptureMouse}{wxwindowcapturemouse},
 \helpref{wxWindow::ReleaseMouse}{wxwindowreleasemouse},
+\helpref{wxMouseCaptureLostEvent}{wxmousecapturelostevent}
 \helpref{wxMouseCaptureChangedEvent}{wxmousecapturechangedevent}
 
 
@@ -1016,6 +1026,23 @@ handle, such as {\bf HWND} for Windows, {\bf Widget} for Motif, {\bf GtkWidget}
 \perlnote{This method will return an integer in wxPerl.}
 
 
+\membersection{wxWindow::GetHelpTextAtPoint}\label{wxwindowgethelptextatpoint}
+
+\constfunc{virtual wxString}{GetHelpTextAtPoint}{\param{const wxPoint &}{point}, \param{wxHelpEvent::Origin }{origin}}
+
+Gets the help text to be used as context-sensitive help for this window. This
+method should be overridden if the help message depends on the position inside
+the window, otherwise \helpref{GetHelpText}{wxwindowgethelptext} can be used.
+
+\wxheading{Parameters}
+
+\docparam{point}{Coordinates of the mouse at the moment of help event emission.}
+
+\docparam{origin}{Help event origin, see also \helpref{wxHelpEvent::GetOrigin}{wxhelpeventgetorigin}.}
+
+\newsince{2.7.0}
+
+
 \membersection{wxWindow::GetHelpText}\label{wxwindowgethelptext}
 
 \constfunc{virtual wxString}{GetHelpText}{\void}
@@ -1027,7 +1054,7 @@ and not in the window object itself.
 
 \wxheading{See also}
 
-\helpref{SetHelpText}{wxwindowsethelptext}, \helpref{wxHelpProvider}{wxhelpprovider}
+\helpref{SetHelpText}{wxwindowsethelptext}, \helpref{GetHelpTextAtPoint}{wxwindowgethelptextatpoint}, \helpref{wxHelpProvider}{wxhelpprovider}
 
 
 \membersection{wxWindow::GetId}\label{wxwindowgetid}
@@ -1067,14 +1094,16 @@ by name.
 \constfunc{wxSize}{GetMaxSize}{\void}
 
 Returns the maximum size of the window, an indication to the sizer layout mechanism
-that this is the maximum possible size.
+that this is the maximum possible size. 
 
 \membersection{wxWindow::GetMinSize}\label{wxwindowgetminsize}
 
-\constfunc{wxSize}{GetMinSize}{\void}
+\constfunc{virtual wxSize}{GetMinSize}{\void}
 
 Returns the minimum size of the window, an indication to the sizer layout mechanism
-that this is the minimum required size.
+that this is the minimum required size. It normally just returns the value set
+by \helpref{SetMinSize}{wxwindowsetminsize}, but it can be overridden to do the
+calculation on demand.
 
 \membersection{wxWindow::GetName}\label{wxwindowgetname}
 
@@ -1373,6 +1402,7 @@ Returns {\tt true} if this window has the current mouse capture.
 
 \helpref{wxWindow::CaptureMouse}{wxwindowcapturemouse},
 \helpref{wxWindow::ReleaseMouse}{wxwindowreleasemouse},
+\helpref{wxMouseCaptureLostEvent}{wxmousecapturelostevent}
 \helpref{wxMouseCaptureChangedEvent}{wxmousecapturechangedevent}
 
 
@@ -1383,6 +1413,18 @@ Returns {\tt true} if this window has the current mouse capture.
 Returns \texttt{true} if the window has the given \arg{flag} bit set.
 
 
+\membersection{wxWindow::HasMultiplePages}\label{wxwindowhasmultiplepages}
+
+\constfunc{virtual bool}{HasMultiplePages}{\void}
+
+This method should be overridden to return \texttt{true} if this window has
+multiple pages. All standard class with multiple pages such as 
+\helpref{wxNotebook}{wxnotebook}, \helpref{wxListbook}{wxlistbook} and 
+\helpref{wxTreebook}{wxtreebook} already override it to return \texttt{true}
+and user-defined classes with similar behaviour should do it as well to allow
+the library to handle such windows appropriately.
+
+
 \membersection{wxWindow::HasScrollbar}\label{wxwindowhasscrollbar}
 
 \constfunc{virtual bool}{HasScrollbar}{\param{int }{orient}}
@@ -1457,6 +1499,19 @@ to the dialog via validators.
 Resets the cached best size value so it will be recalculated the next time it is needed.
 
 
+\membersection{wxWindow::IsDoubleBuffered}\label{wxwindowisdoublebuffered}
+
+\constfunc{virtual bool}{IsDoubleBuffered}{\void}
+
+Returns \true if the window contents is double-buffered by the system, i.e. if
+any drawing done on the window is really done on a temporary backing surface
+and transferred to the screen all at once later.
+
+\wxheading{See also}
+
+\helpref{wxBufferedDC}{wxbuffereddc}
+
+
 \membersection{wxWindow::IsEnabled}\label{wxwindowisenabled}
 
 \constfunc{virtual bool}{IsEnabled}{\void}
@@ -1491,6 +1546,18 @@ implements the following methods:\par
 \end{twocollist}}}
 
 
+\membersection{wxWindow::IsFrozen}\label{wxwindowisfrozen}
+
+\constfunc{virtual bool}{IsFrozen}{\void}
+
+Returns \true if the window is currently frozen by a call to 
+\helpref{Freeze()}{wxwindowfreeze}.
+
+\wxheading{See also}
+
+\helpref{Thaw()}{wxwindowthaw}
+
+
 \membersection{wxWindow::IsRetained}\label{wxwindowisretained}
 
 \constfunc{virtual bool}{IsRetained}{\void}
@@ -1508,6 +1575,22 @@ Retained windows are only available on X platforms.
 
 Returns {\tt true} if the window is shown, {\tt false} if it has been hidden.
 
+\wxheading{See also}
+
+\helpref{wxWindow::IsShownOnScreen}{wxwindowisshownonscreen}
+
+
+\membersection{wxWindow::IsShownOnScreen}\label{wxwindowisshownonscreen}
+
+\constfunc{virtual bool}{IsShownOnScreen}{\void}
+
+Returns {\tt true} if the window is physically visible on the screen, i.e. it
+is shown and all its parents up to the toplevel window are shown as well.
+
+\wxheading{See also}
+
+\helpref{wxWindow::IsShown}{wxwindowisshown}
+
 
 \membersection{wxWindow::IsTopLevel}\label{wxwindowistoplevel}
 
@@ -2332,6 +2415,7 @@ Releases mouse input captured with \helpref{wxWindow::CaptureMouse}{wxwindowcapt
 \helpref{wxWindow::CaptureMouse}{wxwindowcapturemouse},
 \helpref{wxWindow::HasCapture}{wxwindowhascapture},
 \helpref{wxWindow::ReleaseMouse}{wxwindowreleasemouse},
+\helpref{wxMouseCaptureLostEvent}{wxmousecapturelostevent}
 \helpref{wxMouseCaptureChangedEvent}{wxmousecapturechangedevent}
 
 
@@ -2380,7 +2464,7 @@ handler is supposed to be there).
 
 Reparents the window, i.e the window will be removed from its
 current parent window (e.g. a non-standard toolbar in a wxFrame)
-and then re-inserted into another. Available on Windows and GTK.
+and then re-inserted into another.
 
 \wxheading{Parameters}
 
@@ -2580,9 +2664,9 @@ background, such as a tiled bitmap. Currently the style has no effect on other p
 \helpref{wxWindow::GetBackgroundStyle}{wxwindowgetbackgroundstyle}
 
 
-\membersection{wxWindow::SetBestFittingSize}\label{wxwindowsetbestfittingsize}
+\membersection{wxWindow::SetInitialSize}\label{wxwindowsetinitialsize}
 
-\func{void}{SetBestFittingSize}{\param{const wxSize\& }{size = wxDefaultSize}}
+\func{void}{SetInitialSize}{\param{const wxSize\& }{size = wxDefaultSize}}
 
 A {\it smart} SetSize that will fill in default size components with the
 window's {\it best} size values.  Also sets the window's minsize to
@@ -2591,12 +2675,15 @@ partial size is passed to this function then the sizers will use that
 size instead of the results of GetBestSize to determine the minimum
 needs of the window for layout.
 
+Most controls will use this to set their initial size, and their min
+size to the passed in value (if any.)
+
+
 \wxheading{See also}
 
 \helpref{wxWindow::SetSize}{wxwindowsetsize},\rtfsp
 \helpref{wxWindow::GetBestSize}{wxwindowgetbestsize},\rtfsp
-\helpref{wxWindow::GetBestFittingSize}{wxwindowgetbestfittingsize},\rtfsp
-\helpref{wxWindow::SetSizeHints}{wxwindowsetsizehints}
+\helpref{wxWindow::GetEffectiveMinSize}{wxwindowgeteffectiveminsize}
 
 
 \membersection{wxWindow::SetCaret}\label{wxwindowsetcaret}
@@ -2760,14 +2847,12 @@ default for the reasons explained in the
 window from being used as an implicit parent for the dialogs which were
 created without a parent. It is useful for the windows which can disappear at
 any moment as creating children of such windows results in fatal problems.}
-\twocolitem{\windowstyle{wxFRAME\_EX\_CONTEXTHELP}}{Under Windows, puts a query button on the
-caption. When pressed, Windows will go into a context-sensitive help mode and wxWidgets will send
-a wxEVT\_HELP event if the user clicked on an application window.
+\twocolitem{\windowstyle{wxWS\_EX\_CONTEXTHELP}}{Under Windows, puts a query
+button on the caption. When pressed, Windows will go into a context-sensitive
+help mode and wxWidgets will send a wxEVT\_HELP event if the user clicked on an
+application window.
 This style cannot be used together with wxMAXIMIZE\_BOX or wxMINIMIZE\_BOX, so
-you should use the style of
-{\tt wxDEFAULT\_FRAME\_STYLE \& \textasciitilde(wxMINIMIZE\_BOX | wxMAXIMIZE\_BOX)} for the
-frames having this style (the dialogs don't have minimize nor maximize box by
-default)}
+these two styles are automatically turned of if this one is used.}
 \twocolitem{\windowstyle{wxWS\_EX\_PROCESS\_IDLE}}{This window should always process idle events, even
 if the mode set by \helpref{wxIdleEvent::SetMode}{wxidleeventsetmode} is wxIDLE\_PROCESS\_SPECIFIED.}
 \twocolitem{\windowstyle{wxWS\_EX\_PROCESS\_UI\_UPDATES}}{This window should always process UI update events,
@@ -3214,42 +3299,14 @@ implements the following methods:\par
 
 \membersection{wxWindow::SetSizeHints}\label{wxwindowsetsizehints}
 
-\func{virtual void}{SetSizeHints}{\param{int}{ minW}, \param{int}{ minH}, \param{int}{ maxW=-1}, \param{int}{ maxH=-1},
- \param{int}{ incW=-1}, \param{int}{ incH=-1}}
-
-\func{void}{SetSizeHints}{\param{const wxSize\&}{ minSize},
-\param{const wxSize\&}{ maxSize=wxDefaultSize}, \param{const wxSize\&}{ incSize=wxDefaultSize}}
-
-
-Allows specification of minimum and maximum window sizes, and window size increments.
-If a pair of values is not set (or set to -1), the default values will be used.
-
-\wxheading{Parameters}
-
-\docparam{minW}{Specifies the minimum width allowable.}
-
-\docparam{minH}{Specifies the minimum height allowable.}
-
-\docparam{maxW}{Specifies the maximum width allowable.}
-
-\docparam{maxH}{Specifies the maximum height allowable.}
-
-\docparam{incW}{Specifies the increment for sizing the width (Motif/Xt only).}
-
-\docparam{incH}{Specifies the increment for sizing the height (Motif/Xt only).}
-
-\docparam{minSize}{Minimum size.}
-
-\docparam{maxSize}{Maximum size.}
-
-\docparam{incSize}{Increment size (Motif/Xt only).}
-
-\wxheading{Remarks}
+Use of this function for windows which are not toplevel windows
+(such as wxDialog or wxFrame) is discouraged. Please use 
+\helpref{SetMinSize}{wxwindowsetminsize} and \helpref{SetMaxSize}{wxwindowsetmaxsize}
+instead.
 
-If this function is called, the user will not be able to size the window outside the
-given bounds.
+\wxheading{See also}
 
-The resizing increments are only significant under Motif or Xt.
+\helpref{wxTopLevelWindow::SetSizeHints}{wxtoplevelwindowsetsizehints}.
 
 
 \membersection{wxWindow::SetSizer}\label{wxwindowsetsizer}
@@ -3525,9 +3582,10 @@ This function is currently only implemented under MSW.
 
 Calling this method immediately repaints the invalidated area of the window and
 all of its children recursively 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
+flow of control returns to the event loop. 
+Notice that this function doesn't invalidate any area of the window so
+nothing happens if nothing has been invalidated (i.e. marked as requiring
+a redraw). Use \helpref{Refresh}{wxwindowrefresh} first if you want to
 immediately redraw the window unconditionally.
 
 
@@ -3614,3 +3672,4 @@ Interface Guidelines forbid moving the mouse cursor programmatically.
 \docparam{x}{The new x position for the cursor.}
 
 \docparam{y}{The new y position for the cursor.}
+