This commit was manufactured by cvs2svn to create tag 'WX_2_2_9'.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/tags/WX_2_2_9@13364 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Bryan Petty
2002-01-04 16:15:08 +00:00
parent dc3d889d0b
commit f7f6abe24d
2324 changed files with 375095 additions and 121526 deletions

View File

@@ -2,8 +2,8 @@
Classes: \helpref{wxLayoutConstraints}{wxlayoutconstraints}, \helpref{wxIndividualLayoutConstraint}{wxindividuallayoutconstraint}.
Objects of class wxLayoutConstraint can be associated with a window to define the
way its subwindows are laid out, with respect to their siblings or parent.
Objects of class wxLayoutConstraint can be associated with a window to define
the way it is laid out, with respect to its siblings or the parent.
The class consists of the following eight constraints of class wxIndividualLayoutConstraint,
some or all of which should be accessed directly to set the appropriate
@@ -34,9 +34,12 @@ label).
The constrains calculation is done in \helpref{wxWindow::Layout}{wxwindowlayout}
function which evaluates constraints. To call it you can either call
wxWindow::SetAutoLayout to tell default OnSize handlers to call Layout
automatically whenever the window size changes, or override OnSize and call Layout
yourself.
\helpref{wxWindow::SetAutoLayout}{wxwindowsetautolayout} if the parent window
is a frame, panel or a dialog to tell default OnSize handlers to call Layout
automatically whenever the window size changes, or override OnSize and call
Layout yourself (note that you do have to call
\helpref{Layout}{wxwindowlayout} yourself if the parent window is not a
frame, panel or dialog).
\subsection{Constraint layout: more detail}
@@ -69,13 +72,13 @@ When the user sets constraints, many of the constraints for windows
edges and dimensions remain unconstrained. For a given window,
the wxWindow::Layout algorithm first resets all constraints
in all children to have unknown edge or dimension values, and then iterates through the constraints,
evaulating them. For unconstrained edges and dimensions, it
evaluating them. For unconstrained edges and dimensions, it
tries to find the value using known relationships that always hold. For example,
an unconstrained {\it width} may be calculated from the {\it left} and {\it right edges}, if
both are currently known. For edges and dimensions with user-supplied constraints, these
constraints are evaulated if the inputs of the constraint are known.
constraints are evaluated if the inputs of the constraint are known.
The algorithm stops when all child edges and dimension are known (success), or there
The algorithm stops when all child edges and dimension are known (success), or
there are unknown edges or dimensions but there has been no change in this cycle (failure).
It then sets all the window positions and sizes according to the values it has found.
@@ -85,7 +88,7 @@ irrelevant, however you may reduce the number of iterations (and thus speed up
the layout calculations) by creating the controls in such order that as many
constraints as possible can be calculated during the first iteration. For example, if
you have 2 buttons which you'd like to position in the lower right corner, it is
slighty more efficient to first create the second button and specify that its
slightly more efficient to first create the second button and specify that its
right border IsSameAs(parent, wxRight) and then create the first one by
specifying that it should be LeftOf() the second one than to do in a more
natural left-to-right order.