X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f6bcfd974ef26faf6f91a62cac09827e09463fd1..44cf9b50eef370cc94a6c1f249693dee3776d619:/docs/latex/wx/flexsizr.tex diff --git a/docs/latex/wx/flexsizr.tex b/docs/latex/wx/flexsizr.tex index 7004c0e1fa..92c1f8d5c2 100644 --- a/docs/latex/wx/flexsizr.tex +++ b/docs/latex/wx/flexsizr.tex @@ -1,15 +1,31 @@ \section{\class{wxFlexGridSizer}}\label{wxflexgridsizer} A flex grid sizer is a sizer which lays out its children in a two-dimensional -table with all table fields in one row having the same -height and all fields in one column having the same width. +table with all table fields in one row having the same +height and all fields in one column having the same width, but all +rows or all columns are not necessarily the same height or width as in +the \helpref{wxGridSizer}{wxgridsizer}. + +Since wxWindows 2.5.0, wxFlexGridSizer can also size items equally in one +direction but unequally ("flexibly") in the other. If the sizer is only +flexible in one direction (this can be changed using +\helpref{SetFlexibleDrection}{wxflexgridsizersetflexibledirection}), +it needs to be decided how the sizer should grow in the other ("non flexible") +direction in order to fill the available space. The +\helpref{SetNonFlexibleGrowMode}{wxflexgridsizersetnonflexiblegrowmode} method +serves this purpose. \wxheading{Derived from} -\helpref{wxGridSizer}{wxsizer}\\ +\helpref{wxGridSizer}{wxgridsizer}\\ \helpref{wxSizer}{wxsizer}\\ \helpref{wxObject}{wxobject} +\wxheading{See also} + +\helpref{wxSizer}{wxsizer}, \helpref{Sizer overview}{sizeroverview} + + \membersection{wxFlexGridSizer::wxFlexGridSizer}\label{wxflexgridsizerwxflexgridsizer} \func{}{wxFlexGridSizer}{\param{int }{rows}, \param{int }{cols}, \param{int }{vgap}, \param{int }{hgap}} @@ -22,3 +38,116 @@ calculated to form the total number of children in the sizer, thus making the sizer grow dynamically. {\it vgap} and {\it hgap} define extra space between all children. + +\membersection{wxFlexGridSizer::AddGrowableCol}\label{wxflexgridsizeraddgrowablecol} + +\func{void}{AddGrowableCol}{\param{size\_t }{idx}, \param{int }{proportion = $0$}} + +Specifies that column {\it idx} (starting from zero) should be grown if +there is extra space available to the sizer. + +The {\it proportion} parameter has the same meaning as the stretch factor for +the \helpref{sizers}{sizeroverview} except that if all proportions are $0$, +then all columns are resized equally (instead of not being resized at all). + +\membersection{wxFlexGridSizer::AddGrowableRow}\label{wxflexgridsizeraddgrowablerow} + +\func{void}{AddGrowableRow}{\param{size\_t }{idx}, \param{int }{proportion = $0$}} + +Specifies that row idx (starting from zero) should be grown if there +is extra space available to the sizer. + +See \helpref{AddGrowableCol}{wxflexgridsizeraddgrowablecol} for the description +of {\it proportion} parameter. + +\membersection{wxFlexGridSizer::GetFlexibleDirection}\label{wxflexgridsizergetflexibledrection} + +\constfunc{int}{GetFlexibleDirections}{\void} + +Returns a wxOrientation value that specifies whether the sizer flexibly +resizes its columns, rows, or both (default). + +\wxheading{Return value} + +One of the following values: + +\begin{twocollist} +\twocolitem{wxVERTICAL}{Rows are flexibly sized.} +\twocolitem{wxHORIZONTAL}{Columns are flexibly sized.} +\twocolitem{wxBOTH}{Both rows and columns are flexibly sized (this is the default value).} +\end{twocollist} + +\wxheading{See also} + +\helpref{SetFlexibleDrection}{wxflexgridsizersetflexibledirection} + + +\membersection{wxFlexGridSizer::GetNonFlexibleGrowMode}\label{wxflexgridsizergetnonflexiblegrowmode} + +\constfunc{int}{GetNonFlexibleGrowMode}{\void} + +Returns the value that specifies how the sizer grows in the "non flexible" +direction if there is one. + +\wxheading{Return value} + +One of the following values: + +\begin{twocollist} +\twocolitem{wxFLEX\_GROWMODE\_NONE}{Sizer doesn't grow in the non flexible direction.} +\twocolitem{wxFLEX\_GROWMODE\_SPECIFIED}{Sizer honors growable columns/rows set with +\helpref{AddGrowableCol}{wxflexgridsizeraddgrowablecol} and +\helpref{AddGrowableRow}{wxflexgridsizeraddgrowablerow}. +In this case equal sizing applies to minimum sizes of columns or +rows (this is the default value).} +\twocolitem{wxFLEX\_GROWMODE\_ALL}{Sizer equally stretches all columns or rows +in the non flexible direction, whether they are growable or not in the flexbile +direction.} +\end{twocollist} + +\wxheading{See also} + +\helpref{SetFlexibleDrection}{wxflexgridsizersetflexibledirection}, +\helpref{SetNonFlexibleGrowMode}{wxflexgridsizersetnonflexiblegrowmode} + + +\membersection{wxFlexGridSizer::RemoveGrowableCol}\label{wxflexgridsizerremovegrowablecol} + +\func{void}{RemoveGrowableCol}{\param{size\_t }{idx}} + +Specifies that column idx is no longer growable. + + +\membersection{wxFlexGridSizer::RemoveGrowableRow}\label{wxflexgridsizerremovegrowablerow} + +\func{void}{RemoveGrowableRow}{\param{size\_t }{idx}} + +Specifies that row idx is no longer growable. + + +\membersection{wxFlexGridSizer::SetFlexibleDirection}\label{wxflexgridsizersetflexibledirection} + +\func{void}{SetFlexibleDirections}{\param{int }{direction}} + +Specifies whether the sizer should flexibly resize its columns, rows, or +both. Argument {\tt direction} can be {\tt wxVERTICAL}, {\tt wxHORIZONTAL} +or {\tt wxBOTH} (which is the default value). Any other value is ignored. See +\helpref{GetFlexibleDirection()}{wxflexgridsizergetflexibledrection} for the +explanation of these values. + +Note that this method does not trigger relayout. + + +\membersection{wxFlexGridSizer::SetNonFlexibleGrowMode}\label{wxflexgridsizersetnonflexiblegrowmode} + +\func{void}{SetNonFlexibleGrowMode}{\param{int }{mode}} + +Specifies how the sizer should grow in the non flexible direction if +there is one (so +\helpref{SetFlexibleDirections()}{wxflexgridsizersetflexibledirection} must have +been called previously). Argument {\it mode} can be one of those documented in +\helpref{GetNonFlexibleGrowMode}{wxflexgridsizergetnonflexiblegrowmode}, please +see there for their explanation. + +Note that this method does not trigger relayout. +