]> git.saurik.com Git - wxWidgets.git/blobdiff - docs/latex/wx/sizer.tex
don't assign the returned value in wxMDIParentFrame::OnCreateClient() to any member...
[wxWidgets.git] / docs / latex / wx / sizer.tex
index 3688d09adcce3e16b0a10c86ea5be148aa4dacac..a1e1ef5c64b7094de604617f60b0cfe801af46c3 100644 (file)
@@ -4,8 +4,10 @@ wxSizer is the abstract base class used for laying out subwindows in a window. Y
 cannot use wxSizer directly; instead, you will have to use one of the sizer
 classes derived from it. Currently there are \helpref{wxBoxSizer}{wxboxsizer}, 
 \helpref{wxStaticBoxSizer}{wxstaticboxsizer},
-\helpref{wxGridSizer}{wxgridsizer} 
-\helpref{wxFlexGridSizer}{wxflexgridsizer} and \helpref{wxGridBagSizer}{wxgridbagsizer}.
+\helpref{wxGridSizer}{wxgridsizer},
+\helpref{wxFlexGridSizer}{wxflexgridsizer},
+\helpref{wxWrapSizer}{wxwrapsizer}
+ and \helpref{wxGridBagSizer}{wxgridbagsizer}.
 
 The layout algorithm used by sizers in wxWidgets is closely related to layout
 in other GUI toolkits, such as Java's AWT, the GTK toolkit or the Qt toolkit. It is
@@ -185,7 +187,7 @@ Adds stretchable space to the sizer. More readable way of calling
 \func{wxSize}{CalcMin}{\void}
 
 This method is abstract and has to be overwritten by any derived class.
-Here, the sizer will do the actual calculation of its children minimal sizes.
+Here, the sizer will do the actual calculation of its children's minimal sizes.
 
 
 \membersection{wxSizer::Clear}\label{wxsizerclear}
@@ -195,6 +197,44 @@ Here, the sizer will do the actual calculation of its children minimal sizes.
 Detaches all children from the sizer. If \arg{delete\_windows} is \true then child windows will also be deleted.
 
 
+\membersection{wxSizer::ComputeFittingClientSize}\label{wxsizercomputefittingclientsize}
+
+\func{wxSize}{ComputeFittingClientSize}{\param{wxWindow* }{window}}
+
+Computes client area size for \arg{window} so that it matches the 
+sizer's minimal size. Unlike \helpref{GetMinSize}{wxsizergetminsize}, this
+method accounts for other constraints imposed on \arg{window}, namely display's
+size (returned size will never be too large for the display) and maximum
+window size if previously set by
+\helpref{wxWindow::SetMaxSize}{wxwindowsetmaxsize}.
+
+The returned value is suitable for passing to
+\helpref{wxWindow::SetClientSize}{wxwindowsetclientsize} or
+\helpref{wxWindow::SetMinClientSize}{wxwindowsetminclientsize}.
+
+\wxheading{See also}
+
+\helpref{ComputeFittingWindowSize}{wxsizercomputefittingwindowsize},
+\helpref{Fit}{wxsizerfit}
+
+
+\membersection{wxSizer::ComputeFittintWindowSize}\label{wxsizercomputefittingwindowsize}
+
+\func{wxSize}{ComputeFittingWindowSize}{\param{wxWindow* }{window}}
+
+Like \helpref{ComputeFittingClientSize}{wxsizercomputefittingclientsize},
+but converts the result into \emph{window} size.
+
+The returned value is suitable for passing to
+\helpref{wxWindow::SetSize}{wxwindowsetsize} or
+\helpref{wxWindow::SetMinSize}{wxwindowsetminsize}.
+
+\wxheading{See also}
+
+\helpref{ComputeFittingClientSize}{wxsizercomputefittingclientsize},
+\helpref{Fit}{wxsizerfit}
+
+
 \membersection{wxSizer::Detach}\label{wxsizerdetach}
 
 \func{bool}{Detach}{\param{wxWindow* }{window}}
@@ -220,11 +260,18 @@ Returns true if the child item was found and detached, false otherwise.
 
 \func{wxSize}{Fit}{\param{wxWindow* }{window}}
 
-Tell the sizer to resize the \arg{window} to match the sizer's minimal size. This
-is commonly done in the constructor of the window itself, see sample in the description
-of \helpref{wxBoxSizer}{wxboxsizer}. Returns the new size.
+Tell the sizer to resize the \arg{window} so that its client area matches the 
+sizer's minimal size
+(\helpref{ComputeFittingClientSize}{wxsizercomputefittingclientsize} is called
+to determine it).
+This is commonly done in the constructor of the window
+itself, see sample in the description
+of \helpref{wxBoxSizer}{wxboxsizer}. Returns the new \emph{window} size.
 
-For a top level window this is the total window size, not client size.
+\wxheading{See also}
+
+\helpref{ComputeFittingClientSize}{wxsizercomputefittingclientsize},
+\helpref{ComputeFittingWindowSize}{wxsizercomputefittingwindowsize}
 
 
 \membersection{wxSizer::FitInside}\label{wxsizerfitinside}
@@ -274,6 +321,18 @@ Use parameter \arg{recursive} to search in subsizers too.
 
 Returns pointer to item or NULL.
 
+\membersection{wxSizer::GetItemById}\label{wxsizergetitembyid}
+
+\func{wxSizerItem *}{GetItemById}{\param{int }{id}, \param{bool }{recursive = false}}
+
+Finds item of the sizer which has the given \arg{id}.  This \arg{id} is not the
+window id but the id of the wxSizerItem itself.  This is mainly useful for
+retrieving the sizers created from XRC resources. 
+
+Use parameter \arg{recursive} to search in subsizers too.
+
+Returns pointer to item or \NULL.
+
 
 \membersection{wxSizer::GetSize}\label{wxsizergetsize}
 
@@ -297,6 +356,13 @@ Returns the minimal size of the sizer. This is either the combined minimal
 size of all the children and their borders or the minimal size set by 
 \helpref{SetMinSize}{wxsizersetminsize}, depending on which is bigger.
 
+Note that the returned value is \emph{client} size, not window size.
+In particular, if you use the value to set toplevel window's minimal or
+actual size, use \helpref{wxWindow::SetMinClientSize}{wxwindowsetminclientsize}
+or \helpref{wxWindow::SetClientSize}{wxwindowsetclientsize}, \emph{not}
+\helpref{wxWindow::SetMinSize}{wxwindowsetminsize}
+or \helpref{wxWindow::SetSize}{wxwindowsetsize}.
+
 
 \membersection{wxSizer::Hide}\label{wxsizerhide}
 
@@ -513,10 +579,12 @@ passed to it. This only makes sense when {\it window} is actually a
 wxDialog, since SetSizeHints only has any effect in these classes. 
 It does nothing in normal windows or controls.
 
-This method is commonly invoked in the constructor of a toplevel window itself
-(see the sample in the description of \helpref{wxBoxSizer}{wxboxsizer}) if the
+This method is implicitly used by \helpref{wxWindow::SetSizerAndFit}{wxwindowsetsizerandfit} 
+which is commonly invoked in the constructor of a toplevel window itself (see
+the sample in the description of \helpref{wxBoxSizer}{wxboxsizer}) if the
 toplevel window is resizable.
 
+
 \membersection{wxSizer::SetVirtualSizeHints}\label{wxsizersetvirtualsizehints}
 
 \func{void}{SetVirtualSizeHints}{\param{wxWindow* }{window}}