\section{\class{wxIndividualLayoutConstraint}}\label{wxindividuallayoutconstraint}

Objects of this class are stored in the wxLayoutConstraint class
as one of eight possible constraints that a window can be involved in.

Constraints are initially set to have the relationship wxUnconstrained,
which means that their values should be calculated by looking at known constraints.

\wxheading{Derived from}

\helpref{wxObject}{wxobject}

\wxheading{Include files}

<wx/layout.h>

\wxheading{See also}

\helpref{Overview and examples}{constraintsoverview},\rtfsp
\helpref{wxLayoutConstraints}{wxlayoutconstraints}, \helpref{wxWindow::SetConstraints}{wxwindowsetconstraints}.

\latexignore{\rtfignore{\wxheading{Members}}}

\subsection{Edges and relationships}\label{edgesandrelationships}

The {\it wxEdge}\index{wxEdge} enumerated type specifies the type of edge or dimension of a window.

\begin{twocollist}\itemsep=0pt
\twocolitem{wxLeft}{The left edge.}
\twocolitem{wxTop}{The top edge.}
\twocolitem{wxRight}{The right edge.}
\twocolitem{wxBottom}{The bottom edge.}
\twocolitem{wxCentreX}{The x-coordinate of the centre of the window.}
\twocolitem{wxCentreY}{The y-coordinate of the centre of the window.}
\end{twocollist}

The {\it wxRelationship}\index{wxRelationship} enumerated type specifies the relationship that
this edge or dimension has with another specified edge or dimension. Normally, the user
doesn't use these directly because functions such as {\it Below} and {\it RightOf} are a convenience
for using the more general {\it Set} function.

\begin{twocollist}\itemsep=0pt
\twocolitem{wxUnconstrained}{The edge or dimension is unconstrained (the default for edges.}
\twocolitem{wxAsIs}{The edge or dimension is to be taken from the current window position or size (the
default for dimensions.}
\twocolitem{wxAbove}{The edge should be above another edge.}
\twocolitem{wxBelow}{The edge should be below another edge.}
\twocolitem{wxLeftOf}{The edge should be to the left of another edge.}
\twocolitem{wxRightOf}{The edge should be to the right of another edge.}
\twocolitem{wxSameAs}{The edge or dimension should be the same as another edge or dimension.}
\twocolitem{wxPercentOf}{The edge or dimension should be a percentage of another edge or dimension.}
\twocolitem{wxAbsolute}{The edge or dimension should be a given absolute value.}
\end{twocollist}

\membersection{wxIndividualLayoutConstraint::wxIndividualLayoutConstraint}\label{wxindividuallayoutconstraintctor}

\func{void}{wxIndividualLayoutConstraint}{\void}

Constructor. Not used by the end-user.

\membersection{wxIndividualLayoutConstraint::Above}\label{wxindividuallayoutconstraintabove}

\func{void}{Above}{\param{wxWindow *}{otherWin}, \param{int}{ margin = 0}}

Constrains this edge to be above the given window, with an
optional margin. Implicitly, this is relative to the top edge of the other window.

\membersection{wxIndividualLayoutConstraint::Absolute}\label{wxindividuallayoutconstraintabsolute}

\func{void}{Absolute}{\param{int}{ value}}

Constrains this edge or dimension to be the given absolute value.

\membersection{wxIndividualLayoutConstraint::AsIs}\label{wxindividuallayoutconstraintasis}

\func{void}{AsIs}{\void}

Sets this edge or constraint to be whatever the window's value is
at the moment. If either of the width and height constraints
are {\it as is}, the window will not be resized, but moved instead.
This is important when considering panel items which are intended
to have a default size, such as a button, which may take its size
from the size of the button label.

\membersection{wxIndividualLayoutConstraint::Below}\label{wxindividuallayoutconstraintbelow}

\func{void}{Below}{\param{wxWindow *}{otherWin}, \param{int}{ margin = 0}}

Constrains this edge to be below the given window, with an
optional margin. Implicitly, this is relative to the bottom edge of the other window.

\membersection{wxIndividualLayoutConstraint::Unconstrained}\label{wxindividuallayoutconstraintunconstrained}

\func{void}{Unconstrained}{\void}

Sets this edge or dimension to be unconstrained, that is, dependent on
other edges and dimensions from which this value can be deduced.

\membersection{wxIndividualLayoutConstraint::LeftOf}\label{wxindividuallayoutconstraintleftof}

\func{void}{LeftOf}{\param{wxWindow *}{otherWin}, \param{int}{ margin = 0}}

Constrains this edge to be to the left of the given window, with an
optional margin. Implicitly, this is relative to the left edge of the other window.

\membersection{wxIndividualLayoutConstraint::PercentOf}\label{wxindividuallayoutconstraintpercentof}

\func{void}{PercentOf}{\param{wxWindow *}{otherWin}, \param{wxEdge}{ edge}, \param{int}{ per}}

Constrains this edge or dimension to be to a percentage of the given window, with an
optional margin.

\membersection{wxIndividualLayoutConstraint::RightOf}\label{wxindividuallayoutconstraintrightof}

\func{void}{RightOf}{\param{wxWindow *}{otherWin}, \param{int}{ margin = 0}}

Constrains this edge to be to the right of the given window, with an
optional margin. Implicitly, this is relative to the right edge of the other window.

\membersection{wxIndividualLayoutConstraint::SameAs}\label{wxindividuallayoutconstraintsameas}

\func{void}{SameAs}{\param{wxWindow *}{otherWin}, \param{wxEdge}{ edge}, \param{int}{ margin = 0}}

Constrains this edge or dimension to be to the same as the edge of the given window, with an
optional margin.

\membersection{wxIndividualLayoutConstraint::Set}\label{wxindividuallayoutconstraintset}

\func{void}{Set}{\param{wxRelationship}{ rel}, \param{wxWindow *}{otherWin}, \param{wxEdge}{ otherEdge},
 \param{int}{ value = 0}, \param{int}{ margin = 0}}

Sets the properties of the constraint. Normally called by one of the convenience
functions such as Above, RightOf, SameAs.


