]> git.saurik.com Git - wxWidgets.git/blobdiff - docs/latex/wx/window.tex
added wxNode::IndexOf and wxList::IndexOf (patch by Frank McIngvale)
[wxWidgets.git] / docs / latex / wx / window.tex
index 3a85938a2540b8cf0725ada5e2ecfc57f511922c..65a31976593a48ef3e3b26c9c537d7db7c66eb55 100644 (file)
@@ -147,6 +147,8 @@ Clears the window by filling it with the current background colour.
 
 \constfunc{virtual void}{ClientToScreen}{\param{int* }{x}, \param{int* }{y}}
 
+\constfunc{virtual wxPoint}{ClientToScreen}{\param{const wxPoint\&}{ pt}}
+
 Converts to screen coordinates from coordinates relative to this window.
 
 \docparam{x}{A pointer to a integer value for the x coordinate. Pass the client coordinate in, and
@@ -155,6 +157,8 @@ a screen coordinate will be passed out.}
 \docparam{y}{A pointer to a integer value for the y coordinate. Pass the client coordinate in, and
 a screen coordinate will be passed out.}
 
+\docparam{pt}{The client position for the second form of the function.}
+
 \membersection{wxWindow::Close}\label{wxwindowclose}
 
 \func{virtual bool}{Close}{\param{const bool}{ force = FALSE}}
@@ -185,6 +189,60 @@ Applies to managed windows (wxFrame and wxDialog classes) only.
 \helpref{wxWindow::Destroy}{wxwindowdestroy},\rtfsp
 \helpref{wxCloseEvent}{wxcloseevent}
 
+\membersection{wxWindow::ConvertDialogToPixels}\label{wxwindowconvertdialogtopixels}
+
+\func{wxPoint}{ConvertDialogToPixels}{\param{const wxPoint\&}{ pt}}
+
+\func{wxSize}{ConvertDialogToPixels}{\param{const wxSize\&}{ sz}}
+
+Converts a point or size from dialog units to pixels.
+
+For the x dimension, the dialog units are multiplied by the average character width
+and then divided by 4.
+
+For the y dimension, the dialog units are multiplied by the average character height
+and then divided by 8.
+
+\wxheading{Remarks}
+
+Dialog units are used for maintaining a dialog's proportions even if the font changes.
+Dialogs created using Dialog Editor optionally use dialog units.
+
+You can also use these functions programmatically. A convenience macro is defined:
+
+{\small
+\begin{verbatim}
+#define wxDLG_UNIT(parent, pt) parent->ConvertDialogToPixels(pt)
+\end{verbatim}
+}
+
+\wxheading{See also}
+
+\helpref{wxWindow::ConvertPixelsToDialog}{wxwindowconvertpixelstodialog}
+
+\membersection{wxWindow::ConvertPixelsToDialog}\label{wxwindowconvertpixelstodialog}
+
+\func{wxPoint}{ConvertPixelsToDialog}{\param{const wxPoint\&}{ pt}}
+
+\func{wxSize}{ConvertPixelsToDialog}{\param{const wxSize\&}{ sz}}
+
+Converts a point or size from pixels to dialog units.
+
+For the x dimension, the pixels are multiplied by 4 and then divided by the average
+character width.
+
+For the y dimension, the pixels are multipled by 8 and then divided by the average
+character height.
+
+\wxheading{Remarks}
+
+Dialog units are used for maintaining a dialog's proportions even if the font changes.
+Dialogs created using Dialog Editor optionally use dialog units.
+
+\wxheading{See also}
+
+\helpref{wxWindow::ConvertDialogToPixels}{wxwindowconvertdialogtopixels}
+
 \membersection{wxWindow::Destroy}\label{wxwindowdestroy}
 
 \func{virtual bool}{Destroy}{\void}
@@ -278,6 +336,16 @@ Note that this is a static function, so it can be called without needing a wxWin
 
 \helpref{wxWindow::SetFocus}{wxwindowsetfocus}
 
+\membersection{wxWindow::FindWindow}\label{wxwindowfindwindow}
+
+\func{wxWindow*}{FindWindow}{\param{long}{ id}}
+
+Find a child of this window, by identifier.
+
+\func{wxWindow*}{FindWindow}{\param{const wxString\&}{ name}}
+
+Find a child of this window, by name.
+
 \membersection{wxWindow::Fit}\label{wxwindowfit}
 
 \func{virtual void}{Fit}{\void}
@@ -319,6 +387,8 @@ Returns a pointer to the list of the window's children.
 
 \constfunc{virtual void}{GetClientSize}{\param{int* }{width}, \param{int* }{height}}
 
+\constfunc{virtual wxSize}{GetClientSize}{\void}
+
 This gets the size of the window `client area' in pixels.  The client area is the
 area which may be drawn on by the programmer, excluding title bar, border etc.
 
@@ -463,6 +533,12 @@ 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::GetRect}\label{wxwindowgetrect}
+
+\constfunc{virtual wxRect}{GetRect}{\void}
+
+Returns the size and position of the window as a \helpref{wxRect}{wxrect} object.
+
 \membersection{wxWindow::GetReturnCode}\label{wxwindowgetreturncode}
 
 \func{int}{GetReturnCode}{\void}
@@ -509,10 +585,12 @@ Returns the built-in scrollbar range.
 
 \helpref{wxWindow::SetScrollbar}{wxwindowsetscrollbar}
 
-\membersection{wxWindow::GetSize}
+\membersection{wxWindow::GetSize}\label{wxwindowgetsize}
 
 \constfunc{virtual void}{GetSize}{\param{int* }{width}, \param{int* }{height}}
 
+\constfunc{virtual wxSize}{GetSize}{\void}
+
 This gets the size of the entire window in pixels.
 
 \wxheading{Parameters}
@@ -556,6 +634,17 @@ Gets the window's title. Applicable only to frames and dialogs.
 
 \helpref{wxWindow::SetTitle}{wxwindowsettitle}
 
+\membersection{wxWindow::GetUpdateRegion}\label{wxwindowgetupdateregion}
+
+\constfunc{virtual wxRegion}{GetUpdateRegion}{\void}
+
+Returns the region specifying which parts of the window have been damaged. Should
+only be called within an \helpref{OnPaint}{wxwindowonpaint} event handler.
+
+\wxheading{See also}
+
+\helpref{wxRegion}{wxregion}, \helpref{wxRegionIterator}{wxregioniterator}, \helpref{wxWindow::OnPaint}{wxwindowonpaint}
+
 \membersection{wxWindow::GetWindowStyleFlag}
 
 \constfunc{long}{GetWindowStyleFlag}{\void}
@@ -657,6 +746,8 @@ the user can only interact with this window. If FALSE, the effect is reversed.}
 
 \func{void}{Move}{\param{int}{ x}, \param{int}{ y}}
 
+\func{void}{Move}{\param{const wxPoint\&}{ pt}}
+
 Moves the window to the given position.
 
 \wxheading{Parameters}
@@ -665,6 +756,8 @@ Moves the window to the given position.
 
 \docparam{y}{Required y position.}
 
+\docparam{pt}{\helpref{wxPoint}{wxpoint} object representing the position.}
+
 \wxheading{Remarks}
 
 Implementations of SetSize can also implicitly implement the
@@ -801,7 +894,7 @@ you may delete other windows.
 
 \wxheading{Remarks}
 
-Derive your own class to handle this message. The default handler returns FALSE.
+Derive your own class to handle this message. The default handler returns TRUE.
 
 \wxheading{See also}
 
@@ -826,6 +919,14 @@ using \helpref{wxCloseEvent::GetForce}{wxcloseeventgetforce}. If this is TRUE,
 destroy the window using \helpref{wxWindow::Destroy}{wxwindowdestroy}.
 If not, it is up to you whether you respond by destroying the window.
 
+(Note: GetForce is now superceded by CanVeto. So to test whether forced destruction of
+the window is required, test for the negative of CanVeto. If CanVeto returns FALSE,
+it is not possible to skip window deletion.)
+
+If you don't destroy the window, you should call \helpref{wxCloseEvent::Veto}{wxcloseeventveto} to
+let the calling code know that you did not destroy the window. This allows the \helpref{wxWindow::Close}{wxwindowclose} function
+to return TRUE or FALSE depending on whether the close instruction was honoured or not.
+
 \wxheading{Remarks}
 
 The \helpref{wxWindow::OnClose}{wxwindowonclose} virtual function remains
@@ -839,7 +940,9 @@ destroying the window if it returns TRUE or if the close is being forced.
 \helpref{wxWindow::Close}{wxwindowclose},\rtfsp
 \helpref{wxWindow::OnClose}{wxwindowonclose},\rtfsp
 \helpref{wxWindow::Destroy}{wxwindowdestroy},\rtfsp
-\helpref{wxCloseEvent}{wxcloseevent}
+\helpref{wxCloseEvent}{wxcloseevent},\rtfsp
+\helpref{wxApp::OnQueryEndSession}{wxapponqueryendsession},\rtfsp
+\helpref{wxApp::OnEndSession}{wxapponendsession}
 
 \membersection{wxWindow::OnDropFiles}\label{wxwindowondropfiles}
 
@@ -1072,7 +1175,7 @@ terms of the client area, and are unscrolled, so you will need to do
 some calculations using the current view position to obtain logical,
 scrolled units.
 
-Here is an example of using the \helpref{wxUpdateIterator}{wxupdateiterator} class:
+Here is an example of using the \helpref{wxRegionIterator}{wxregioniterator} class:
 
 {\small%
 \begin{verbatim}
@@ -1086,7 +1189,7 @@ void MyWindow::OnPaint(wxPaintEvent& event)
   ViewStart(&vbX,&vbY);
 
   int vX,vY,vW,vH;                 // Dimensions of client area in pixels
-  wxUpdateIterator upd(this); // get the update rect list
+  wxRegionIterator upd(GetUpdateRegion()); // get the update rect list
 
   while (upd)
   {
@@ -1114,8 +1217,6 @@ void MyWindow::OnPaint(wxPaintEvent& event)
 \helpref{wxPaintDC}{wxpaintdc},\rtfsp
 \helpref{Event handling overview}{eventhandlingoverview}
 
-\membersection{wxWindow::OnScroll}\label{wxwindowonscroll}
-
 \func{void}{OnScroll}{\param{wxScrollEvent\& }{event}}
 
 Called when a scroll event is received from one of the window's built-in scrollbars.
@@ -1312,10 +1413,12 @@ functions so should not be required by the application programmer.
 
 \docparam{child}{Child window to remove.}
 
-\membersection{wxWindow::ScreenToClient}
+\membersection{wxWindow::ScreenToClient}\label{wxwindowscreentoclient}
 
 \constfunc{virtual void}{ScreenToClient}{\param{int* }{x}, \param{int* }{y}}
 
+\constfunc{virtual wxPoint}{ScreenToClient}{\param{const wxPoint\& }{pt}}
+
 Converts from screen to client window coordinates.
 
 \wxheading{Parameters}
@@ -1324,6 +1427,8 @@ Converts from screen to client window coordinates.
 
 \docparam{y}{Stores the screen x coordinate and receives the client x coordinate.}
 
+\docparam{pt}{The screen position for the second form of the function.}
+
 \membersection{wxWindow::ScrollWindow}\label{wxwindowscrollwindow}
 
 \func{virtual void}{ScrollWindow}{\param{int }{dx}, \param{int }{dy}, \param{const wxRect*}{ rect = NULL}}
@@ -1659,10 +1764,14 @@ and usually the scrollbar will be automatically hidden.
 \func{virtual void}{SetSize}{\param{int}{ x}, \param{int}{ y}, \param{int}{ width}, \param{int}{ height},
  \param{int}{ sizeFlags = wxSIZE\_AUTO}}
 
+\func{virtual void}{SetSize}{\param{const wxRect\&}{ rect}}
+
 Sets the size and position of the window in pixels.
 
 \func{virtual void}{SetSize}{\param{int}{ width}, \param{int}{ height}}
 
+\func{virtual void}{SetSize}{\param{const wxSize\&}{ size}}
+
 Sets the size of the window in pixels.
 
 \wxheading{Parameters}
@@ -1679,6 +1788,10 @@ value should be used.}
 \docparam{height}{Required height position in pixels, or -1 to indicate that the existing
 value should be used.}
 
+\docparam{size}{\helpref{wxSize}{wxsize} object for setting the size.}
+
+\docparam{rect}{\helpref{wxRect}{wxrect} object for setting the position and size.}
+
 \docparam{sizeFlags}{Indicates the interpretation of other parameters. It is a bit list of the following:
 
 {\bf wxSIZE\_AUTO\_WIDTH}: a -1 width value is taken to indicate
@@ -1739,6 +1852,8 @@ The resizing increments are only significant under Motif or Xt.
 
 \func{virtual void}{SetClientSize}{\param{int}{ width}, \param{int}{ height}}
 
+\func{virtual void}{SetClientSize}{\param{const wxSize\&}{ size}}
+
 This sets the size of the window client area in pixels. Using this function to size a window
 tends to be more device-independent than \helpref{wxWindow::SetSize}{wxwindowsetsize}, since the application need not
 worry about what dimensions the border or title bar have when trying to fit the window
@@ -1750,6 +1865,8 @@ around panel items, for example.
 
 \docparam{height}{The required client area height.}
 
+\docparam{size}{The required client size.}
+
 \membersection{wxWindow::SetPalette}
 
 \func{virtual void}{SetPalette}{\param{wxPalette* }{palette}}