]> git.saurik.com Git - wxWidgets.git/blobdiff - docs/latex/wx/sizer.tex
fix various latex errors
[wxWidgets.git] / docs / latex / wx / sizer.tex
index a17b14ece8cb69eb7f4b02c08d1da44ab5845ca4..4eb9e0c36a2f1e6fa62bdaad4ece36d193ae5a23 100644 (file)
@@ -4,19 +4,19 @@ 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{wxNotebookSizer}{wxnotebooksizer}, \helpref{wxGridSizer}{wxgridsizer} 
+\helpref{wxGridSizer}{wxgridsizer} 
 \helpref{wxFlexGridSizer}{wxflexgridsizer} 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
 based upon the idea of the individual subwindows reporting their minimal required
 size and their ability to get stretched if the size of the parent window has changed.
-This will most often mean, that the programmer does not set the original size of
-a dialog in the beginning, rather the dialog will assigned a sizer and this sizer
+This will most often mean that the programmer does not set the original size of
+a dialog in the beginning, rather the dialog will be assigned a sizer and this sizer
 will be queried about the recommended size. The sizer in turn will query its
 children, which can be normal windows, empty space or other sizers, so that
 a hierarchy of sizers can be constructed. Note that wxSizer does not derive from wxWindow
-and thus do not interfere with tab ordering and requires very little resources compared
+and thus does not interfere with tab ordering and requires very little resources compared
 to a real window on screen.
 
 What makes sizers so well fitted for use in wxWidgets is the fact that every control
@@ -31,7 +31,12 @@ capabilities for the various virtual methods.}
 
 \wxheading{Derived from}
 
-\helpref{wxObject}{wxobject}
+\helpref{wxObject}{wxobject}\\
+\helpref{wxClientDataContainer}{wxclientdatacontainer}
+
+\wxheading{Include files}
+
+<wx/sizer.h>
 
 \wxheading{See also}
 
@@ -57,11 +62,11 @@ The destructor.
 
 \membersection{wxSizer::Add}\label{wxsizeradd}
 
-\func{void}{Add}{\param{wxWindow* }{window}, \param{int }{proportion = 0},\param{int }{flag = 0}, \param{int }{border = 0}, \param{wxObject* }{userData = NULL}}
+\func{wxSizerItem*}{Add}{\param{wxWindow* }{window}, \param{int }{proportion = 0},\param{int }{flag = 0}, \param{int }{border = 0}, \param{wxObject* }{userData = NULL}}
 
-\func{void}{Add}{\param{wxSizer* }{sizer}, \param{int }{proportion = 0}, \param{int }{flag = 0}, \param{int }{border = 0}, \param{wxObject* }{userData = NULL}}
+\func{wxSizerItem*}{Add}{\param{wxSizer* }{sizer}, \param{int }{proportion = 0}, \param{int }{flag = 0}, \param{int }{border = 0}, \param{wxObject* }{userData = NULL}}
 
-\func{void}{Add}{\param{int }{width}, \param{int }{height}, \param{int }{proportion = 0}, \param{int }{flag = 0}, \param{int }{border = 0}, \param{wxObject* }{userData = NULL}}
+\func{wxSizerItem*}{Add}{\param{int }{width}, \param{int }{height}, \param{int }{proportion = 0}, \param{int }{flag = 0}, \param{int }{border = 0}, \param{wxObject* }{userData = NULL}}
 
 Appends a child to the sizer.  wxSizer itself is an abstract class, but the parameters are
 equivalent in the derived classes that you will instantiate to use it so they are described
@@ -107,17 +112,17 @@ dependent on the specific kind of sizer used.
 \windowstyle{wxALL}}{These flags are used to specify which side(s) of
   the sizer item the {\it border} width will apply to. }
 
-\twocolitem{\windowstyle{wxEXAPAND}}{The item will be expanded to fill
-the space allotted to the item.}
+\twocolitem{\windowstyle{wxEXPAND}}{The item will be expanded to fill
+the space assigned to the item.}
 \twocolitem{\windowstyle{wxSHAPED}}{The item will be expanded as much
 as possible while also maintaining its aspect ratio}
-\twocolitem{\windowstyle{wxFIXED\_MINSIZE}}{Normally wxSizers will use
-  \helpref{GetAdjustedBestSize}{wxwindowgetadjustedbestsize} to
-  determin what the minimal size of window items should be, and will
-  use that size to calculate the layout.  This allows layouts to
-  adjust when an item changes and it's {\it best size} becomes
-  different.  If you would rather have a window item stay the size it
-  started with then use wxFIXED\_MINSIZE.}
+\twocolitem{\windowstyle{wxFIXED\_MINSIZE}}{Normally wxSizers will use 
+\helpref{GetAdjustedBestSize}{wxwindowgetadjustedbestsize} to
+determine what the minimal size of window items should be, and will
+use that size to calculate the layout. This allows layouts to
+adjust when an item changes and its {\it 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}\\
 \windowstyle{wxALIGN\_LEFT}\\
 \windowstyle{wxALIGN\_RIGHT}\\
@@ -125,8 +130,8 @@ as possible while also maintaining its aspect ratio}
 \windowstyle{wxALIGN\_BOTTOM}\\
 \windowstyle{wxALIGN\_CENTER\_VERTICAL}\\
 \windowstyle{wxALIGN\_CENTER\_HORIZONTAL}}{The wxALIGN flags allow you to
-  specify the alignment of the item within the space allotted to it by
-  the sizer, ajusted for the border if any.}
+specify the alignment of the item within the space allotted to it by
+the sizer, adjusted for the border if any.}
 \end{twocollist}
 }
 
@@ -138,6 +143,22 @@ item, for use in derived classes when sizing information is more
 complex than the {\it proportion} and {\it flag} will allow for.}
 
 
+\membersection{wxSizer::AddSpacer}\label{wxsizeraddspacer}
+
+\func{wxSizerItem*}{AddSpacer}{\param{int }{size}}
+
+Adds non-stretchable space to the sizer. More readable way of calling
+\helpref{Add}{wxsizeradd}(size, size, 0).
+
+
+\membersection{wxSizer::AddStretchSpacer}\label{wxsizeraddstretchspacer}
+
+\func{wxSizerItem*}{AddStretchSpacer}{\param{int }{prop = 1}}
+
+Adds stretchable space to the sizer. More readable way of calling
+\helpref{Add}{wxsizeradd}(0, 0, prop).
+
+
 \membersection{wxSizer::CalcMin}\label{wxsizercalcmin}
 
 \func{wxSize}{CalcMin}{\void}
@@ -193,6 +214,21 @@ windows which manage it.
 \helpref{wxSizer::SetVirtualSizeHints}{wxsizersetvirtualsizehints}
 
 
+\membersection{wxSizer::GetItem}\label{wxsizergetitem}
+
+\func{wxSizerItem *}{GetItem}{\param{wxWindow* }{window}, \param{bool }{recursive = false}}
+
+\func{wxSizerItem *}{GetItem}{\param{wxSizer* }{sizer}, \param{bool }{recursive = false}}
+
+\func{wxSizerItem *}{GetItem}{\param{size\_t }{index}}
+
+Finds item of the sizer which holds given {\it window}, {\it sizer} or is located
+in sizer at position {\it index}.
+Use parameter {\it recursive} to search in subsizers too.
+
+Returns pointer to item or NULL.
+
+
 \membersection{wxSizer::GetSize}\label{wxsizergetsize}
 
 \func{wxSize}{GetSize}{\void}
@@ -218,11 +254,11 @@ size of all the children and their borders or the minimal size set by
 
 \membersection{wxSizer::Insert}\label{wxsizerinsert}
 
-\func{void}{Insert}{\param{size\_t }{index}, \param{wxWindow* }{window}, \param{int }{proportion = 0},\param{int }{flag = 0}, \param{int }{border = 0}, \param{wxObject* }{userData = NULL}}
+\func{wxSizerItem*}{Insert}{\param{size\_t }{index}, \param{wxWindow* }{window}, \param{int }{proportion = 0},\param{int }{flag = 0}, \param{int }{border = 0}, \param{wxObject* }{userData = NULL}}
 
-\func{void}{Insert}{\param{size\_t }{index}, \param{wxSizer* }{sizer}, \param{int }{proportion = 0}, \param{int }{flag = 0}, \param{int }{border = 0}, \param{wxObject* }{userData = NULL}}
+\func{wxSizerItem*}{Insert}{\param{size\_t }{index}, \param{wxSizer* }{sizer}, \param{int }{proportion = 0}, \param{int }{flag = 0}, \param{int }{border = 0}, \param{wxObject* }{userData = NULL}}
 
-\func{void}{Insert}{\param{size\_t }{index}, \param{int }{width}, \param{int }{height}, \param{int }{proportion = 0}, \param{int }{flag = 0}, \param{int }{border = 0}, \param{wxObject* }{userData = NULL}}
+\func{wxSizerItem*}{Insert}{\param{size\_t }{index}, \param{int }{width}, \param{int }{height}, \param{int }{proportion = 0}, \param{int }{flag = 0}, \param{int }{border = 0}, \param{wxObject* }{userData = NULL}}
 
 Insert a child into the sizer before any existing item at {\it index}.
 
@@ -231,6 +267,22 @@ Insert a child into the sizer before any existing item at {\it index}.
 See \helpref{wxSizer::Add}{wxsizeradd} for the meaning of the other parameters.
 
 
+\membersection{wxSizer::InsertSpacer}\label{wxsizerinsertspacer}
+
+\func{wxSizerItem*}{InsertSpacer}{\param{size\_t }{index}, \param{int }{size}}
+
+Inserts non-stretchable space to the sizer. More readable way of calling
+\helpref{Insert}{wxsizerinsert}(size, size, 0).
+
+
+\membersection{wxSizer::InsertStretchSpacer}\label{wxsizerinsertstretchspacer}
+
+\func{wxSizerItem*}{InsertStretchSpacer}{\param{size\_t }{index}, \param{int }{prop = 1}}
+
+Inserts stretchable space to the sizer. More readable way of calling
+\helpref{Insert}{wxsizerinsert}(0, 0, prop).
+
+
 \membersection{wxSizer::Layout}\label{wxsizerlayout}
 
 \func{void}{Layout}{\void}
@@ -242,16 +294,32 @@ the current dimension.
 
 \membersection{wxSizer::Prepend}\label{wxsizerprepend}
 
-\func{void}{Prepend}{\param{wxWindow* }{window}, \param{int }{proportion = 0}, \param{int }{flag = 0}, \param{int }{border = 0}, \param{wxObject* }{userData = NULL}}
+\func{wxSizerItem*}{Prepend}{\param{wxWindow* }{window}, \param{int }{proportion = 0}, \param{int }{flag = 0}, \param{int }{border = 0}, \param{wxObject* }{userData = NULL}}
 
-\func{void}{Prepend}{\param{wxSizer* }{sizer}, \param{int }{proportion = 0}, \param{int }{flag = 0}, \param{int }{border = 0}, \param{wxObject* }{userData = NULL}}
+\func{wxSizerItem*}{Prepend}{\param{wxSizer* }{sizer}, \param{int }{proportion = 0}, \param{int }{flag = 0}, \param{int }{border = 0}, \param{wxObject* }{userData = NULL}}
 
-\func{void}{Prepend}{\param{int }{width}, \param{int }{height}, \param{int }{proportion = 0}, \param{int }{flag = 0}, \param{int }{border= 0}, \param{wxObject* }{userData = NULL}}
+\func{wxSizerItem*}{Prepend}{\param{int }{width}, \param{int }{height}, \param{int }{proportion = 0}, \param{int }{flag = 0}, \param{int }{border= 0}, \param{wxObject* }{userData = NULL}}
 
 Same as \helpref{wxSizer::Add}{wxsizeradd}, but prepends the items to the beginning of the
 list of items (windows, subsizers or spaces) owned by this sizer.
 
 
+\membersection{wxSizer::PrependSpacer}\label{wxsizerprependspacer}
+
+\func{wxSizerItem*}{PrependSpacer}{\param{int }{size}}
+
+Prepends non-stretchable space to the sizer. More readable way of calling
+\helpref{Prepend}{wxsizerprepend}(size, size, 0).
+
+
+\membersection{wxSizer::PrependStretchSpacer}\label{wxsizerprependstretchspacer}
+
+\func{wxSizerItem*}{PrependStretchSpacer}{\param{int }{prop = 1}}
+
+Prepends stretchable space to the sizer. More readable way of calling
+\helpref{Prepend}{wxsizerprepend}(0, 0, prop).
+
+
 \membersection{wxSizer::RecalcSizes}\label{wxsizerrecalcsizes}
 
 \func{void}{RecalcSizes}{\void}
@@ -342,14 +410,17 @@ minimal size. For windows with managed scrollbars this will set them appropriate
 
 \membersection{wxSizer::Show}\label{wxsizershow}
 
-\func{void}{Show}{\param{wxWindow* }{window}, \param{bool }{show = true}}
+\func{bool}{Show}{\param{wxWindow* }{window}, \param{bool }{show = true}, \param{bool }{recursive = false}}
 
-\func{void}{Show}{\param{wxSizer* }{sizer}, \param{bool }{show = true}}
+\func{bool}{Show}{\param{wxSizer* }{sizer}, \param{bool }{show = true}, \param{bool }{recursive = false}}
 
-\func{void}{Show}{\param{size\_t }{index}, \param{bool }{show = true}}
+\func{bool}{Show}{\param{size\_t }{index}, \param{bool }{show = true}}
 
 Shows or hides the {\it window}, {\it sizer}, or item at {\it index}.
 To make a sizer item disappear or reappear, use Show() followed by Layout().
+Use parameter {\it recursive} to show or hide elements found in subsizers.
+
+Returns true if the child item was found, false otherwise.
 
 Note that this only works with wxBoxSizer and wxFlexGridSizer, since they
 are the only two sizer classes that can size rows/columns independently.