]> git.saurik.com Git - wxWidgets.git/blobdiff - docs/latex/wx/window.tex
1. improved wxKill() implementation for Win32
[wxWidgets.git] / docs / latex / wx / window.tex
index 5a22deae3d58314f515c7d3374a08b5aec5dac6c..a2d41a8df362b5dd522e97127156bc1bc0e4207e 100644 (file)
@@ -42,9 +42,9 @@ the application-wide policy is for 3D controls. Windows only.}
 wants to get all char events - even for keys like TAB or ENTER which are
 usually used for dialog navigation and which wouldn't be generated without
 this style}
-\twocolitem{\windowstyle{wxNO\_FULLREPAINT\_ON\_RESIZE}}{Disables repainting
+\twocolitem{\windowstyle{wxNO\_FULL\_REPAINT\_ON\_RESIZE}}{Disables repainting
 the window completely when its size is changed - you will have to repaint the
-new window area manually if you use style. Currently only has effect for
+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?) }
@@ -60,7 +60,7 @@ See also \helpref{window styles overview}{windowstyles}.
 
 \latexignore{\rtfignore{\wxheading{Members}}}
 
-\membersection{wxWindow::wxWindow}
+\membersection{wxWindow::wxWindow}\label{wxwindowctor}
 
 \func{}{wxWindow}{\void}
 
@@ -143,9 +143,15 @@ A synonym for \helpref{Centre}{wxwindowcentre}.
 
 A synonym for \helpref{CentreOnParent}{wxwindowcentreonparent}.
 
+\membersection{wxWindow::CenterOnScreen}\label{wxwindowcenteronscreen}
+
+\func{void}{CenterOnScreen}{\param{int}{ direction}}
+
+A synonym for \helpref{CentreOnScreen}{wxwindowcentreonscreen}.
+
 \membersection{wxWindow::Centre}\label{wxwindowcentre}
 
-\func{void}{Centre}{\param{int}{ direction = wxHORIZONTAL}}
+\func{void}{Centre}{\param{int}{ direction = wxBOTH}}
 
 Centres the window.
 
@@ -156,7 +162,8 @@ or {\tt wxBOTH}. It may also include {\tt wxCENTRE\_ON\_SCREEN} flag
 if you want to center the window on the entire screen and not on its
 parent window.}
 
-The flag {\tt wxCENTRE\_FRAME} is obsolete and should not be used any longer.
+The flag {\tt wxCENTRE\_FRAME} is obsolete and should not be used any longer
+(it has no effect).
 
 \wxheading{Remarks}
 
@@ -169,9 +176,10 @@ centered relative to the screen anyhow.
 
 \membersection{wxWindow::CentreOnParent}\label{wxwindowcentreonparent}
 
-\func{void}{CentreOnParent}{\param{int}{ direction = wxHORIZONTAL}}
+\func{void}{CentreOnParent}{\param{int}{ direction = wxBOTH}}
 
-Centres the window.
+Centres the window on its parent. This is a more readable synonym for
+\helpref{Centre}{wxwindowcentre}.
 
 \wxheading{Parameters}
 
@@ -187,7 +195,23 @@ window is not a top level window, then behaviour is the same as
 
 \wxheading{See also}
 
-\helpref{wxWindow::CenterOnParent}{wxwindowcenteronparent}
+\helpref{wxWindow::CentreOnScreen}{wxwindowcenteronscreen}
+
+\membersection{wxWindow::CentreOnScreen}\label{wxwindowcentreonscreen}
+
+\func{void}{CentreOnScreen}{\param{int}{ direction = wxBOTH}}
+
+Centres the window on screen. This only works for top level windows -
+otherwise, the window will still be centered on its parent.
+
+\wxheading{Parameters}
+
+\docparam{direction}{Specifies the direction for the centering. May be {\tt wxHORIZONTAL}, {\tt wxVERTICAL}\rtfsp
+or {\tt wxBOTH}.}
+
+\wxheading{See also}
+
+\helpref{wxWindow::CentreOnParent}{wxwindowcenteronparent}
 
 \membersection{wxWindow::Clear}\label{wxwindowclear}
 
@@ -200,6 +224,9 @@ cause an erase background event to be generated.
 
 \constfunc{virtual void}{ClientToScreen}{\param{int* }{x}, \param{int* }{y}}
 
+\perlnote{In wxPerl this method returns a 2-element list intead of
+modifying its parameters.}
+
 \constfunc{virtual wxPoint}{ClientToScreen}{\param{const wxPoint\&}{ pt}}
 
 Converts to screen coordinates from coordinates relative to this window.
@@ -220,7 +247,6 @@ implements the following methods:\par
 \end{twocollist}}
 }
 
-
 \membersection{wxWindow::Close}\label{wxwindowclose}
 
 \func{virtual bool}{Close}{\param{bool}{ force = FALSE}}
@@ -452,11 +478,17 @@ Returns the background colour of the window.
 
 This functions returns the best acceptable minimal size for the window. For
 example, for a static control, it will be the minimal size such that the
-control label is not truncated. For windows containing subwindows (typically 
+control label is not truncated. For windows containing subwindows (typically
 \helpref{wxPanel}{wxpanel}), the size returned by this function will be the
-same as the size the window would have had after calling 
+same as the size the window would have had after calling
 \helpref{Fit}{wxwindowfit}.
 
+\membersection{wxWindow::GetCaret}\label{wxwindowgetcaret}
+
+\constfunc{wxCaret *}{GetCaret}{\void}
+
+Returns the \helpref{caret}{wxcaret} associated with the window.
+
 \membersection{wxWindow::GetCharHeight}
 
 \constfunc{virtual int}{GetCharHeight}{\void}
@@ -479,6 +511,9 @@ Returns a reference to the list of the window's children.
 
 \constfunc{virtual void}{GetClientSize}{\param{int* }{width}, \param{int* }{height}}
 
+\perlnote{In wxPerl this method takes no parameter and returns
+a 2-element list {\tt ( width, height )}.}
+
 \constfunc{virtual wxSize}{GetClientSize}{\void}
 
 This gets the size of the window `client area' in pixels.  The client area is the
@@ -493,8 +528,8 @@ area which may be drawn on by the programmer, excluding title bar, border etc.
 \pythonnote{In place of a single overloaded method name, wxPython
 implements the following methods:\par
 \indented{2cm}{\begin{twocollist}
-\twocolitem{{\bf wxGetClientSizeTuple()}}{Returns a 2-tuple of (width, height)}
-\twocolitem{{\bf wxGetClientSize()}}{Returns a wxSize object}
+\twocolitem{{\bf GetClientSizeTuple()}}{Returns a 2-tuple of (width, height)}
+\twocolitem{{\bf GetClientSize()}}{Returns a wxSize object}
 \end{twocollist}}
 }
 
@@ -504,12 +539,6 @@ implements the following methods:\par
 
 Returns a pointer to the window's layout constraints, or NULL if there are none.
 
-\membersection{wxWindow::GetDefaultItem}\label{wxwindowgetdefaultitem}
-
-\constfunc{wxButton*}{GetDefaultItem}{\void}
-
-Returns a pointer to the button which is the default for this window, or NULL.
-
 \membersection{wxWindow::GetDropTarget}\label{wxwindowgetdroptarget}
 
 \constfunc{wxDropTarget*}{GetDropTarget}{\void}
@@ -576,7 +605,7 @@ be used at all.
 
 Returns the grandparent of a window, or NULL if there isn't one.
 
-\membersection{wxWindow::GetHandle}
+\membersection{wxWindow::GetHandle}\label{wxwindowgethandle}
 
 \constfunc{void*}{GetHandle}{\void}
 
@@ -585,6 +614,19 @@ handle, such as {\bf HWND} for Windows, {\bf Widget} for Motif or {\bf GtkWidget
 
 \pythonnote{This method will return an integer in wxPython.}
 
+\membersection{wxWindow::GetHelpText}\label{wxwindowgethelptext}
+
+\constfunc{virtual wxString}{GetHelpText}{\void}
+
+Gets the help text to be used as context-sensitive help for this window.
+
+Note that the text is actually stored by the current \helpref{wxHelpProvider}{wxhelpprovider} implementation,
+and not in the window object itself.
+
+\wxheading{See also}
+
+\helpref{SetHelpText}{wxwindowsethelptext}, \helpref{wxHelpProvider}{wxhelpprovider}
+
 \membersection{wxWindow::GetId}\label{wxwindowgetid}
 
 \constfunc{int}{GetId}{\void}
@@ -598,30 +640,9 @@ Each window has an integer identifier. If the application has not provided one
 
 \wxheading{See also}
 
-\helpref{wxWindow::SetId}{wxwindowsetid}\rtfsp
+\helpref{wxWindow::SetId}{wxwindowsetid},\rtfsp
 \helpref{Window identifiers}{windowids}
 
-\membersection{wxWindow::GetPosition}
-
-\constfunc{virtual void}{GetPosition}{\param{int* }{x}, \param{int* }{y}}
-
-This gets the position of the window in pixels, relative to the parent window or
-if no parent, relative to the whole display.
-
-\wxheading{Parameters}
-
-\docparam{x}{Receives the x position of the window.}
-
-\docparam{y}{Receives the y position of the window.}
-
-\pythonnote{In place of a single overloaded method name, wxPython
-implements the following methods:\par
-\indented{2cm}{\begin{twocollist}
-\twocolitem{{\bf GetPosition()}}{Returns a wxPoint}
-\twocolitem{{\bf GetPositionTuple()}}{Returns a tuple (x, y)}
-\end{twocollist}}
-}
-
 \membersection{wxWindow::GetLabel}
 
 \constfunc{virtual wxString }{GetLabel}{\void}
@@ -658,6 +679,38 @@ name in the window constructor or via \helpref{wxWindow::SetName}{wxwindowsetnam
 
 Returns the parent of the window, or NULL if there is no parent.
 
+\membersection{wxWindow::GetPosition}\label{wxwindowgetposition}
+
+\constfunc{virtual void}{GetPosition}{\param{int* }{x}, \param{int* }{y}}
+
+\constfunc{wxPoint}{GetPosition}{\void}
+
+This gets the position of the window in pixels, relative to the parent window or
+if no parent, relative to the whole display.
+
+\wxheading{Parameters}
+
+\docparam{x}{Receives the x position of the window.}
+
+\docparam{y}{Receives the y position of the window.}
+
+\pythonnote{In place of a single overloaded method name, wxPython
+implements the following methods:\par
+\indented{2cm}{\begin{twocollist}
+\twocolitem{{\bf GetPosition()}}{Returns a wxPoint}
+\twocolitem{{\bf GetPositionTuple()}}{Returns a tuple (x, y)}
+\end{twocollist}}
+}
+
+\perlnote{In wxPerl there are two methods instead of a single overloaded
+method:\par
+\indented{2cm}{\begin{twocollist}
+\twocolitem{{\bf GetPosition()}}{Returns a Wx::Point}
+\twocolitem{{\bf GetPositionXY()}}{Returns a 2-element list
+ {\tt ( x, y )}}
+\end{twocollist}
+}}
+
 \membersection{wxWindow::GetRect}\label{wxwindowgetrect}
 
 \constfunc{virtual wxRect}{GetRect}{\void}
@@ -716,6 +769,15 @@ implements the following methods:\par
 \end{twocollist}}
 }
 
+\perlnote{In wxPerl there are two methods instead of a single overloaded
+method:\par
+\indented{2cm}{\begin{twocollist}
+\twocolitem{{\bf GetSize()}}{Returns a Wx::Size}
+\twocolitem{{\bf GetSizeWH()}}{Returns a 2-element list
+ {\tt ( width, height )}}
+\end{twocollist}
+}}
+
 \membersection{wxWindow::GetTextExtent}
 
 \constfunc{virtual void}{GetTextExtent}{\param{const wxString\& }{string}, \param{int* }{x}, \param{int* }{y},
@@ -751,6 +813,9 @@ implements the following methods:\par
 \end{twocollist}}
 }
 
+\perlnote{In wxPerl this method takes only the {\tt string} and optionally
+ {\tt font} parameters, and returns a 4-element list
+ {\tt ( x, y, descent, externalLeading )}.}
 
 \membersection{wxWindow::GetTitle}\label{wxwindowgettitle}
 
@@ -821,6 +886,14 @@ Returns TRUE if the given point or rectange area has been exposed since the
 last repaint. Call this in an paint event handler to optimize redrawing by
 only redrawing those areas, which have been exposed.
 
+\pythonnote{In place of a single overloaded method name, wxPython
+implements the following methods:\par
+\indented{2cm}{\begin{twocollist}
+\twocolitem{{\bf IsExposed(x,y, w=0,h=0}}{}
+\twocolitem{{\bf IsExposedPoint(pt)}}{}
+\twocolitem{{\bf IsExposedRect(rect)}}{}
+\end{twocollist}}}
+
 \membersection{wxWindow::IsRetained}\label{wxwindowisretained}
 
 \constfunc{virtual bool}{IsRetained}{\void}
@@ -979,6 +1052,9 @@ keypresses, then you will need to use \helpref{wxWindow::OnKeyDown}{wxwindowonke
 
 Most, but not all, windows allow keypresses to be intercepted.
 
+{\bf Tip:} be sure to call {\tt event.Skip()} for events that you don't process in this function,
+otherwise menu shortcuts may cease to work under Windows.
+
 \wxheading{See also}
 
 \helpref{wxWindow::OnKeyDown}{wxwindowonkeydown}, \helpref{wxWindow::OnKeyUp}{wxwindowonkeyup},\rtfsp
@@ -1144,7 +1220,8 @@ Called when the background of the window needs to be erased.
 
 \wxheading{Remarks}
 
-This event is only generated under Windows. It is therefore recommended that
+Under non-Windows platforms, this event is simulated (simply generated just before the
+paint event) and may cause flicker. It is therefore recommended that
 you set the text background colour explicitly in order to prevent flicker.
 The default background colour under GTK is grey.
 
@@ -1178,6 +1255,9 @@ keys, such as shift, control, and function keys, then you will need to use \help
 
 Most, but not all, windows allow keypresses to be intercepted.
 
+{\bf Tip:} be sure to call {\tt event.Skip()} for events that you don't process in this function,
+otherwise menu shortcuts may cease to work under Windows.
+
 \wxheading{See also}
 
 \helpref{wxWindow::OnChar}{wxwindowonchar}, \helpref{wxWindow::OnKeyUp}{wxwindowonkeyup},\rtfsp
@@ -1379,7 +1459,8 @@ Sent to the event handler when the window must be refreshed.
 
 Use the EVT\_PAINT macro in an event table definition to intercept paint events.
 
-In a paint event handler, the application should always create a \helpref{wxPaintDC}{wxpaintdc} object.
+Note that In a paint event handler, the application must {\it always} create a \helpref{wxPaintDC}{wxpaintdc} object,
+even if you do not use it. Otherwise, under MS Windows, refreshing for this and other windows will go wrong.
 
 For example:
 
@@ -1504,6 +1585,11 @@ Note that the size passed is of
 the whole window: call \helpref{wxWindow::GetClientSize}{wxwindowgetclientsize} for the area which may be
 used by the application.
 
+When a window is resized, usually only a small part of the window is damaged and you
+may only need to repaint that area. However, if your drawing depends on the size of the window,
+you may need to clear the DC explicitly and repaint the whole window. In which case, you
+may need to call \helpref{wxWindow::Refresh}{wxwindowrefresh} to invalidate the entire window.
+
 \wxheading{See also}
 
 \helpref{wxSizeEvent}{wxsizeevent},\rtfsp
@@ -1708,7 +1794,7 @@ Physically scrolls the pixels in the window and move child windows accordingly.
 
 \docparam{rect}{Rectangle to invalidate. If this is NULL, the whole window is invalidated. If you
 pass a rectangle corresponding to the area of the window exposed by the scroll, your painting handler
-can optimise painting by checking for the invalidated region. This paramter is ignored under GTK.}
+can optimize painting by checking for the invalidated region. This parameter is ignored under GTK.}
 
 \wxheading{Remarks}
 
@@ -1728,7 +1814,7 @@ Sets the accelerator table for this window. See \helpref{wxAcceleratorTable}{wxa
 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 layouting subwindows.
+\helpref{wxWindow::SetConstraints}{wxwindowsetconstraints} for laying out subwindows.
 
 \wxheading{Parameters}
 
@@ -1772,6 +1858,12 @@ look as the user wishes with run-time loadable modules.
 \helpref{wxWindow::Refresh}{wxwindowrefresh},\rtfsp
 \helpref{wxWindow::OnEraseBackground}{wxwindowonerasebackground}
 
+\membersection{wxWindow::SetCaret}\label{wxwindowsetcaret}
+
+\constfunc{void}{SetCaret}{\param{wxCaret *}{caret}}
+
+Sets the \helpref{caret}{wxcaret} associated with the window.
+
 \membersection{wxWindow::SetClientSize}\label{wxwindowsetclientsize}
 
 \func{virtual void}{SetClientSize}{\param{int}{ width}, \param{int}{ height}}
@@ -1803,9 +1895,13 @@ implements the following methods:\par
 
 \func{virtual void}{SetCursor}{\param{const wxCursor\&}{cursor}}
 
-Sets the window's cursor. Notice that setting the cursor for this window does
-not set it for its children so you'll need to explicitly call SetCursor() for
-them too if you need it.
+% VZ: the docs are correct, if the code doesn't behave like this, it must be
+%     changed
+Sets the window's cursor. Notice that the window cursor also sets it for the
+children of the window implicitly.
+
+The {\it cursor} may be {\tt wxNullCursor} in which case the window cursor will
+be reset back to default.
 
 \wxheading{Parameters}
 
@@ -1815,36 +1911,6 @@ them too if you need it.
 
 \helpref{::wxSetCursor}{wxsetcursor}, \helpref{wxCursor}{wxcursor}
 
-\membersection{wxWindow::SetEventHandler}\label{wxwindowseteventhandler}
-
-\func{void}{SetEventHandler}{\param{wxEvtHandler* }{handler}}
-
-Sets the event handler for this window.
-
-\wxheading{Parameters}
-
-\docparam{handler}{Specifies the handler to be set.}
-
-\wxheading{Remarks}
-
-An event handler is an object that is capable of processing the events
-sent to a window. By default, the window is its own event handler, but
-an application may wish to substitute another, for example to allow
-central implementation of event-handling for a variety of different
-window classes.
-
-It is usually better to use \helpref{wxWindow::PushEventHandler}{wxwindowpusheventhandler} since
-this sets up a chain of event handlers, where an event not handled by one event handler is
-handed to the next one in the chain.
-
-\wxheading{See also}
-
-\helpref{wxWindow::GetEventHandler}{wxwindowgeteventhandler},\rtfsp
-\helpref{wxWindow::PushEventHandler}{wxwindowpusheventhandler},\rtfsp
-\helpref{wxWindow::PopEventHandler}{wxwindowpusheventhandler},\rtfsp
-\helpref{wxEvtHandler::ProcessEvent}{wxevthandlerprocessevent},\rtfsp
-\helpref{wxEvtHandler}{wxevthandler}
-
 \membersection{wxWindow::SetConstraints}\label{wxwindowsetconstraints}
 
 \func{void}{SetConstraints}{\param{wxLayoutConstraints* }{constraints}}
@@ -1879,6 +1945,36 @@ If the window already has a drop target, it is deleted.
 \helpref{wxWindow::GetDropTarget}{wxwindowgetdroptarget},
 \helpref{Drag and drop overview}{wxdndoverview}
 
+\membersection{wxWindow::SetEventHandler}\label{wxwindowseteventhandler}
+
+\func{void}{SetEventHandler}{\param{wxEvtHandler* }{handler}}
+
+Sets the event handler for this window.
+
+\wxheading{Parameters}
+
+\docparam{handler}{Specifies the handler to be set.}
+
+\wxheading{Remarks}
+
+An event handler is an object that is capable of processing the events
+sent to a window. By default, the window is its own event handler, but
+an application may wish to substitute another, for example to allow
+central implementation of event-handling for a variety of different
+window classes.
+
+It is usually better to use \helpref{wxWindow::PushEventHandler}{wxwindowpusheventhandler} since
+this sets up a chain of event handlers, where an event not handled by one event handler is
+handed to the next one in the chain.
+
+\wxheading{See also}
+
+\helpref{wxWindow::GetEventHandler}{wxwindowgeteventhandler},\rtfsp
+\helpref{wxWindow::PushEventHandler}{wxwindowpusheventhandler},\rtfsp
+\helpref{wxWindow::PopEventHandler}{wxwindowpusheventhandler},\rtfsp
+\helpref{wxEvtHandler::ProcessEvent}{wxevthandlerprocessevent},\rtfsp
+\helpref{wxEvtHandler}{wxevthandler}
+
 \membersection{wxWindow::SetExtraStyle}\label{wxwindowsetextrastyle}
 
 \func{void}{SetExtraStyle}{\param{long }{exStyle}}
@@ -1939,6 +2035,19 @@ their parent windows.
 \helpref{wxWindow::SetBackgroundColour}{wxwindowsetbackgroundcolour},\rtfsp
 \helpref{wxWindow::GetBackgroundColour}{wxwindowgetbackgroundcolour}
 
+\membersection{wxWindow::SetHelpText}\label{wxwindowsethelptext}
+
+\func{virtual void}{SetHelpText}{\param{const wxString\& }{helpText}}
+
+Sets the help text to be used as context-sensitive help for this window.
+
+Note that the text is actually stored by the current \helpref{wxHelpProvider}{wxhelpprovider} implementation,
+and not in the window object itself.
+
+\wxheading{See also}
+
+\helpref{GetHelpText}{wxwindowgethelptext}, \helpref{wxHelpProvider}{wxhelpprovider}
+
 \membersection{wxWindow::SetId}\label{wxwindowsetid}
 
 \func{void}{SetId}{\param{int}{ id}}
@@ -2263,9 +2372,25 @@ Sets the window's title. Applicable only to frames and dialogs.
 Deletes the current validator (if any) and sets the window validator, having called wxValidator::Clone to
 create a new validator of this type.
 
-\membersection{wxWindow::SetWindowStyleFlag}\label{wxwindowsetwindowstyleflag}
+\membersection{wxWindow::SetToolTip}\label{wxwindowsettooltip}
+
+\func{void}{SetToolTip}{\param{const wxString\& }{tip}}
+
+\func{void}{SetToolTip}{\param{wxToolTip* }{tip}}
+
+Attach a tooltip to the window.
+
+See also: \helpref{GetToolTip}{wxwindowgettooltip},
+          \helpref{wxToolTip}{wxtooltip}
+
+
+\membersection{wxWindow::GetToolTip}\label{wxwindowgettooltip}
+
+\constfunc{wxToolTip*}{GetToolTip}{\void}
+
+Get the associated tooltip or NULL if none.
+
 
-\func{virtual void}{SetWindowStyleFlag}{\param{long}{ style}}
 
 \membersection{wxWindow::SetWindowStyle}\label{wxwindowsetwindowstyle}
 
@@ -2281,7 +2406,7 @@ Sets the style of the window. Please note that some styles cannot be changed
 after the window creation and that \helpref{Refresh()}{wxwindowrefresh} might
 be called after changing the others for the change to take place immediately.
 
-See \helpref{Windowstyles}{windowstyles} for more information about flags.
+See \helpref{Window styles}{windowstyles} for more information about flags.
 
 \wxheading{See also}