]> git.saurik.com Git - wxWidgets.git/blobdiff - docs/latex/wx/sizer.tex
cleanup (mainly wrapping lines to be < 80 chars); added IsExpanded()
[wxWidgets.git] / docs / latex / wx / sizer.tex
index 3c249db4e27e13545294f0cbb12d0f8925d12179..b3442af356e696919f8558a4b6b01b380b27d76e 100644 (file)
@@ -133,13 +133,13 @@ use that size to calculate the layout. This allows layouts to
 adjust when an item changes and its \arg{best size} becomes
 different. If you would rather have a window item stay the size it
 started with then use wxFIXED\_MINSIZE.}
-\twocolitem{\windowstyle{wxALIGN\_CENTER}\\
+\twocolitem{\windowstyle{wxALIGN\_CENTER wxALIGN\_CENTRE}\\
 \windowstyle{wxALIGN\_LEFT}\\
 \windowstyle{wxALIGN\_RIGHT}\\
 \windowstyle{wxALIGN\_TOP}\\
 \windowstyle{wxALIGN\_BOTTOM}\\
-\windowstyle{wxALIGN\_CENTER\_VERTICAL}\\
-\windowstyle{wxALIGN\_CENTER\_HORIZONTAL}}{The wxALIGN flags allow you to
+\windowstyle{wxALIGN\_CENTER\_VERTICAL wxALIGN\_CENTRE\_VERTICAL}\\
+\windowstyle{wxALIGN\_CENTER\_HORIZONTAL wxALIGN\_CENTRE\_HORIZONTAL}}{The wxALIGN flags allow you to
 specify the alignment of the item within the space allotted to it by
 the sizer, adjusted for the border if any.}
 \end{twocollist}
@@ -233,6 +233,13 @@ windows which manage it.
 \helpref{wxSizer::SetVirtualSizeHints}{wxsizersetvirtualsizehints}
 
 
+\membersection{wxSizer::GetContainingWindow}\label{wxsizergetcontainingwindow}
+
+\constfunc{wxWindow *}{GetContainingWindow}{\void}
+
+Returns the window this sizer is used in or \NULL if none.
+
+
 \membersection{wxSizer::GetItem}\label{wxsizergetitem}
 
 \func{wxSizerItem *}{GetItem}{\param{wxWindow* }{window}, \param{bool }{recursive = false}}
@@ -400,16 +407,42 @@ and sizes.
 
 \func{bool}{Remove}{\param{size\_t }{index}}
 
-Removes a child from the sizer and destroys it.  \arg{sizer} is the wxSizer to be removed,
-\arg{index} is the position of the child in the sizer, typically 0 for the first item.
+Removes a child from the sizer and destroys it if it is a sizer or a spacer,
+but not if it is a window (because windows are owned by their parent window,
+not the sizer).  \arg{sizer} is the wxSizer to be removed,
+\arg{index} is the position of the child in the sizer, e.g. $0$ for the first item.
 This method does not cause any layout or resizing to take place, call
 \helpref{wxSizer::Layout}{wxsizerlayout} to update the layout "on screen" after removing a
 child from the sizer.
 
-{\bf NB:} The method taking a wxWindow* parameter is deprecated.  For historical reasons
-it does not destroy the window as would usually be expected from Remove.  You should use
-\helpref{wxSizer::Detach}{wxsizerdetach} in new code instead.  There is currently no wxSizer
-method that will both detach and destroy a wxWindow item.
+{\bf NB:} The method taking a wxWindow* parameter is deprecated as it does not
+destroy the window as would usually be expected from Remove.  You should use 
+\helpref{wxSizer::Detach}{wxsizerdetach} in new code instead.  There is
+currently no wxSizer method that will both detach and destroy a wxWindow item.
+
+Returns true if the child item was found and removed, false otherwise.
+
+
+\membersection{wxSizer::Replace}\label{wxsizerreplace}
+
+\func{bool}{Replace}{\param{wxWindow* }{oldwin}, \param{wxWindow* }{newwin}, \param{bool }{recursive = false}}
+
+\func{bool}{Replace}{\param{wxSizer* }{oldsz}, \param{wxSizer* }{newsz}, \param{bool }{recursive = false}}
+
+\func{bool}{Remove}{\param{size\_t }{oldindex}, \param{wxSizerItem* }{newitem}}
+
+Detaches the given \arg{oldwin}, \arg{oldsz} child from the sizer and 
+replaces it with the given window, sizer, or wxSizerItem.
+
+The detached child is removed {\bf only} if it is a sizer or a spacer
+(because windows are owned by their parent window, not the sizer).
+
+Use parameter \arg{recursive} to search the given element recursively in subsizers.
+
+
+This method does not cause any layout or resizing to take place, call
+\helpref{wxSizer::Layout}{wxsizerlayout} to update the layout "on screen" after replacing a
+child from the sizer.
 
 Returns true if the child item was found and removed, false otherwise.
 
@@ -495,27 +528,49 @@ Returns true if the child item was found, false otherwise.
 
 \section{\class{wxSizerFlags}}\label{wxsizerflags}
 
-PRELIMINARY.
+Normally, when you add an item to a sizer via 
+\helpref{wxSizer::Add}{wxsizeradd}, you have to specify a lot of flags and
+parameters which can be unwieldy. This is where wxSizerFlags comes in: it
+allows you to specify all parameters using the named methods instead. For
+example, instead of
+
+\begin{verbatim}
+    sizer->Add(ctrl, 0, wxEXPAND | wxBORDER, 10);
+\end{verbatim}
+
+you can now write
 
-Normally, when you add something to a sizer via \helpref{wxSizer::Add}{wxsizeradd}, you have to specify a lot of flags and parameters.  This can be unwieldy.
+\begin{verbatim}
+    sizer->Add(ctrl, wxSizerFlags().Expand().Border(10));
+\end{verbatim}
 
-This is where wxSizerFlags comes in.  Instead of a bunch of flags and other stuff, you can use wxSizerFlags, which is a convenient class for doing so.
+This is more readable and also allows you to create wxSizerFlags objects which
+can be reused for several sizer items.
+\begin{verbatim}
+    wxSizerFlags flagsExpand(1);
+    flagsExpand.Expand().Border(10);
 
-Note that by specification, all methods of wxSizerFlags return the wxSizerFlags object itself to ease the calling of multiple methods at a time.
+    sizer->Add(ctrl1, flagsExpand);
+    sizer->Add(ctrl2, flagsExpand);
+\end{verbatim}
+
+Note that by specification, all methods of wxSizerFlags return the wxSizerFlags
+object itself to allowing chaining multiple methods calls like in the examples
+above.
 
 
 \membersection{wxSizerFlags::wxSizerFlags}\label{wxsizerflagsctor}
 
 \func{}{wxSizerFlags}{\param{int }{proportion = 0}}
 
-Creates the wxSizer with the proportion specified by \tt{proportion}.
+Creates the wxSizer with the proportion specified by \arg{proportion}.
 
 
 \membersection{wxSizerFlags::Align}\label{wxsizerflagsalign}
 
 \func{wxSizerFlags\& }{Align}{\param{int }{align = 0}}
 
-Sets the alignment of this wxSizerFlags to \tt{align}.
+Sets the alignment of this wxSizerFlags to \arg{align}.
 
 Note that if this method is not called, the wxSizerFlags has no specified alignment.
 
@@ -530,11 +585,14 @@ Note that if this method is not called, the wxSizerFlags has no specified alignm
 
 \func{wxSizerFlags\& }{Border}{\param{int }{direction}, \param{int }{borderinpixels}}
 
-Sets the wxSizerFlags to have a border of a number of pixels specified by \tt{borderinpixels} with the directions specified by \tt{direction}.
-
 \func{wxSizerFlags\& }{Border}{\param{int }{direction = wxALL}}
 
-Sets the wxSizerFlags to have a border of a default size with the directions specified by \tt{direction}.
+Sets the wxSizerFlags to have a border of a number of pixels specified by
+\arg{borderinpixels} with the directions specified by \arg{direction}.
+
+In the overloaded version without \arg{borderinpixels} parameter, the border of
+default size, as returned by \helpref{GetDefaultBorder}{wxsizerflagsgetdefaultborder},
+is used.
 
 
 \membersection{wxSizerFlags::Center}\label{wxsizerflagscenter}
@@ -551,6 +609,22 @@ Sets the object of the wxSizerFlags to center itself in the area it is given.
 \helpref{wxSizerFlags::Center}{wxsizerflagscenter} for people with the other dialect of english.
 
 
+\membersection{wxSizerFlags::DoubleBorder}\label{wxsizerflagsdoubleborder}
+
+\func{wxSizerFlags\& }{DoubleBorder}{\param{int }{direction = wxALL}}
+
+Sets the border in the given \arg{direction} having twice the default border
+size.
+
+
+\membersection{wxSizerFlags::DoubleHorzBorder}\label{wxsizerflagsdoublehorzborder}
+
+\func{wxSizerFlags\& }{DoubleHorzBorder}{\void}
+
+Sets the border in left and right directions having twice the default border
+size.
+
+
 \membersection{wxSizerFlags::Expand}\label{wxsizerflagsexpand}
 
 \func{wxSizerFlags\& }{Expand}{\void}
@@ -558,6 +632,13 @@ Sets the object of the wxSizerFlags to center itself in the area it is given.
 Sets the object of the wxSizerFlags to expand to fill as much area as it can.
 
 
+\membersection{wxSizerFlags::GetDefaultBorder}\label{wxsizerflagsgetdefaultborder}
+
+\func{static int}{GetDefaultBorder}{\void}
+
+Returns the border used by default in \helpref{Border}{wxsizerflagsborder} method.
+
+
 \membersection{wxSizerFlags::Left}\label{wxsizerflagsleft}
 
 \func{wxSizerFlags\& }{Left}{\void}
@@ -573,7 +654,7 @@ Aligns the object to the left, shortcut for \texttt{Align(wxALIGN\_LEFT)}
 
 \func{wxSizerFlags\& }{Proportion}{\param{int }{proportion = 0}}
 
-Sets the proportion of this wxSizerFlags to \tt{proportion}
+Sets the proportion of this wxSizerFlags to \arg{proportion}
 
 
 \membersection{wxSizerFlags::Right}\label{wxsizerflagsright}
@@ -586,3 +667,12 @@ Aligns the object to the right, shortcut for \texttt{Align(wxALIGN\_RIGHT)}
 
 \helpref{Align}{wxsizerflagsalign}
 
+
+\membersection{wxSizerFlags::TripleBorder}\label{wxsizerflagstriplebleborder}
+
+\func{wxSizerFlags\& }{TripleBorder}{\param{int }{direction = wxALL}}
+
+Sets the border in the given \arg{direction} having thrice the default border
+size.
+
+