]> 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 a90b83bffd921cdb473086c33cad8441364af375..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},
 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
 
 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
@@ -43,13 +45,16 @@ capabilities for the various virtual methods.}
 
 \wxheading{Derived from}
 
 
 \wxheading{Derived from}
 
-\helpref{wxObject}{wxobject}\\
-\helpref{wxClientDataContainer}{wxclientdatacontainer}
+\helpref{wxObject}{wxobject}
 
 \wxheading{Include files}
 
 <wx/sizer.h>
 
 
 \wxheading{Include files}
 
 <wx/sizer.h>
 
+\wxheading{Library}
+
+\helpref{wxCore}{librarieslist}
+
 \wxheading{See also}
 
 \helpref{Sizer overview}{sizeroverview}
 \wxheading{See also}
 
 \helpref{Sizer overview}{sizeroverview}
@@ -182,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.
 \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}
 
 
 \membersection{wxSizer::Clear}\label{wxsizerclear}
@@ -192,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.
 
 
 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}}
 \membersection{wxSizer::Detach}\label{wxsizerdetach}
 
 \func{bool}{Detach}{\param{wxWindow* }{window}}
@@ -217,11 +260,18 @@ Returns true if the child item was found and detached, false otherwise.
 
 \func{wxSize}{Fit}{\param{wxWindow* }{window}}
 
 
 \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}
 
 
 \membersection{wxSizer::FitInside}\label{wxsizerfitinside}
@@ -241,6 +291,8 @@ windows which manage it.
 
 \membersection{wxSizer::GetChildren}\label{wxsizergetchildren}
 
 
 \membersection{wxSizer::GetChildren}\label{wxsizergetchildren}
 
+\constfunc{const wxSizerItemList\&}{GetChildren}{\void}
+
 \func{wxSizerItemList\&}{GetChildren}{\void}
 
 Returns the list of the items in this sizer. The elements of type-safe 
 \func{wxSizerItemList\&}{GetChildren}{\void}
 
 Returns the list of the items in this sizer. The elements of type-safe 
@@ -269,6 +321,18 @@ Use parameter \arg{recursive} to search in subsizers too.
 
 Returns pointer to item or NULL.
 
 
 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}
 
 
 \membersection{wxSizer::GetSize}\label{wxsizergetsize}
 
@@ -292,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.
 
 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}
 
 
 \membersection{wxSizer::Hide}\label{wxsizerhide}
 
@@ -508,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.
 
 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.
 
 toplevel window is resizable.
 
+
 \membersection{wxSizer::SetVirtualSizeHints}\label{wxsizersetvirtualsizehints}
 
 \func{void}{SetVirtualSizeHints}{\param{wxWindow* }{window}}
 \membersection{wxSizer::SetVirtualSizeHints}\label{wxsizersetvirtualsizehints}
 
 \func{void}{SetVirtualSizeHints}{\param{wxWindow* }{window}}
@@ -555,7 +628,7 @@ allows you to specify all parameters using the named methods instead. For
 example, instead of
 
 \begin{verbatim}
 example, instead of
 
 \begin{verbatim}
-    sizer->Add(ctrl, 0, wxEXPAND | wxBORDER, 10);
+    sizer->Add(ctrl, 0, wxEXPAND | wxALL, 10);
 \end{verbatim}
 
 you can now write
 \end{verbatim}
 
 you can now write
@@ -578,6 +651,23 @@ Note that by specification, all methods of wxSizerFlags return the wxSizerFlags
 object itself to allowing chaining multiple methods calls like in the examples
 above.
 
 object itself to allowing chaining multiple methods calls like in the examples
 above.
 
+\wxheading{See also}
+
+\helpref{wxSizer}{wxsizer}
+
+\wxheading{Derived from}
+
+No base class
+
+\wxheading{Include files}
+
+<wx/sizer.h>
+
+\wxheading{Library}
+
+\helpref{wxCore}{librarieslist}
+
+\latexignore{\rtfignore{\wxheading{Members}}}
 
 \membersection{wxSizerFlags::wxSizerFlags}\label{wxsizerflagsctor}
 
 
 \membersection{wxSizerFlags::wxSizerFlags}\label{wxsizerflagsctor}
 
@@ -596,8 +686,10 @@ Note that if this method is not called, the wxSizerFlags has no specified alignm
 
 \wxheading{See also}
 
 
 \wxheading{See also}
 
+\helpref{Top}{wxsizerflagstop},\\
 \helpref{Left}{wxsizerflagsleft},\\
 \helpref{Right}{wxsizerflagsright},\\
 \helpref{Left}{wxsizerflagsleft},\\
 \helpref{Right}{wxsizerflagsright},\\
+\helpref{Bottom}{wxsizerflagsbottom},\\
 \helpref{Centre}{wxsizerflagscentre}
 
 
 \helpref{Centre}{wxsizerflagscentre}
 
 
@@ -615,6 +707,17 @@ default size, as returned by \helpref{GetDefaultBorder}{wxsizerflagsgetdefaultbo
 is used.
 
 
 is used.
 
 
+\membersection{wxSizerFlags::Bottom}\label{wxsizerflagsbottom}
+
+\func{wxSizerFlags\& }{Bottom}{\void}
+
+Aligns the object to the bottom, shortcut for \texttt{Align(wxALIGN\_BOTTOM)}
+
+\wxheading{See also}
+
+\helpref{Align}{wxsizerflagsalign}
+
+
 \membersection{wxSizerFlags::Center}\label{wxsizerflagscenter}
 
 \func{wxSizerFlags\& }{Center}{\void}
 \membersection{wxSizerFlags::Center}\label{wxsizerflagscenter}
 
 \func{wxSizerFlags\& }{Center}{\void}
@@ -704,6 +807,17 @@ Set the \texttt{wx\_SHAPED} flag which indicates that the elements should
 always keep the fixed width to height ratio equal to its original value.
 
 
 always keep the fixed width to height ratio equal to its original value.
 
 
+\membersection{wxSizerFlags::Top}\label{wxsizerflagstop}
+
+\func{wxSizerFlags\& }{Top}{\void}
+
+Aligns the object to the top, shortcut for \texttt{Align(wxALIGN\_TOP)}
+
+\wxheading{See also}
+
+\helpref{Align}{wxsizerflagsalign}
+
+
 \membersection{wxSizerFlags::TripleBorder}\label{wxsizerflagstriplebleborder}
 
 \func{wxSizerFlags\& }{TripleBorder}{\param{int }{direction = wxALL}}
 \membersection{wxSizerFlags::TripleBorder}\label{wxsizerflagstriplebleborder}
 
 \func{wxSizerFlags\& }{TripleBorder}{\param{int }{direction = wxALL}}