public static StackOptions Create( bool constrainStart = true, bool constrainSides = true, bool constrainEnd = true, ClStrength strength = null, EdgeInsets?insets = null, bool intrinsicIfNotSet = false, bool alignToCenter = false, double spacing = 0, EdgeConstraints edgeConstraints = null) { var options = new StackOptions(); options.ConstrainStart = constrainStart; options.ConstrainSides = constrainSides; options.ConstrainEnd = constrainEnd; options.Strength = strength ?? ClStrength.Default; options.Insets = insets.HasValue ? insets.Value : EdgeInsets.Zero; options.IntrinsicIfNotSet = intrinsicIfNotSet; options.AlignToCenter = alignToCenter; options.Spacing = spacing; options.EdgeConstraints = edgeConstraints; return(options); }
public static StackOptions Create( bool constrainStart, bool constrainSides, bool constrainEnd, ClStrength strength, EdgeInsets?insets, bool intrinsicIfNotSet, bool alignToCenter, double spacing) { return(Create(constrainStart, constrainSides, constrainEnd, strength, insets, intrinsicIfNotSet, alignToCenter, spacing, null)); }
/// <summary> /// Adds multiple constraints. /// </summary> /// <param name="strength">constraints strengh override. Not changed if null</param> /// <param name="constraints">constraints list</param> /// <remarks>Every variable of the constraint should belong to current view tree</remarks> public CElement AddConstraints(ClStrength strength, IEnumerable <ClConstraint> constraints) { foreach (var cn in constraints) { AddConstraint(cn, strength); } return(this); }
protected ClEditOrStayConstraint(ClVariable var, ClStrength strength, double weight = 1.0) : base(strength, weight) { _variable = var; _expression = new ClLinearExpression(_variable, -1.0, _variable.Value); }
public static void Center(this CElement parent, CElement child, ClStrength strength = null) { if (strength == null) { strength = ClStrength.Default; } parent.AddConstraint(parent.centerX ^ child.centerX, strength); parent.AddConstraint(parent.centerY ^ child.centerY, strength); }
public static void MakeSizeIntristic(this CElement element, ClStrength strength = null) { if (strength == null) { strength = ClStrength.Default; } element.AddConstraint(element.width ^ element.intrinsicWidth, strength); element.AddConstraint(element.height ^ element.intrinsicHeight, strength); }
public static void Embed(this CElement parent, CElement child, ClStrength strength = null) { if (strength == null) { strength = ClStrength.Default; } parent.AddConstraint(new ClLinearConstraint(parent.top, child.top, strength)); parent.AddConstraint(new ClLinearConstraint(parent.right, child.right, strength)); parent.AddConstraint(new ClLinearConstraint(parent.bottom, child.bottom, strength)); parent.AddConstraint(new ClLinearConstraint(parent.left, child.left, strength)); }
protected void SetValue(ClVariable v, double x, ClStrength s) { // TODO: Find a better way then manually adding/removing constriants. if (VarConstraints.ContainsKey(v.Name)) { ClLinearEquation eq = (ClLinearEquation)VarConstraints[v.Name]; solver.RemoveConstraint(eq); VarConstraints.Remove(v.Name); } ClLinearEquation eq2 = new ClLinearEquation(v, new ClLinearExpression(x), s); solver.AddConstraint(eq2); VarConstraints.Add(v.Name, eq2); }
/// <summary> /// Adds constraint. /// </summary> /// <param name="constraint">the constraint</param> /// <param name="strength">constraints strengh override. Not changed if null</param> /// <remarks>Every variable of the constraint should belong to current view tree</remarks> public CElement AddConstraint(ClConstraint constraint, ClStrength strength = null) { ValidateVariables(constraint); if (strength != null) { constraint.SetStrength(strength); } constraints.Add(constraint); Solver.AddConstraint(constraint); SetNeedsUpdateLayout(); return(this); }
/// <summary> /// Creates constraints to make window resizable /// </summary> /// <param name="vertical">make vertically resizable</param> /// <param name="horizontal">make horizontally resizable</param> /// <param name="strength">strength of created constraints</param> public virtual void MakeResizable(bool vertical, bool horizontal, ClStrength strength) { if (strength == null) { strength = ClStrength.Weak; } if (horizontal) { Gui.AddConstraint(Gui.width ^ Gui.WindowSize.width, strength); } if (vertical) { Gui.AddConstraint(Gui.height ^ Gui.WindowSize.height, strength); } resizeable = true; }
public ConstraintPrototype(XmlElement node) : base(node) { Strength = node.HasAttribute("strength") ? GetStrength(node.GetAttribute("strength")) : ClStrength.Default; Constraint = new ConstraintParser().Parse(node.InnerText.Trim(" \n\r\t".ToCharArray())); }
public static void Center(this CElement parent, CElement child, EdgeInsets insets, ClStrength strength = null) { if (strength == null) { strength = ClStrength.Default; } parent.AddConstraint(parent.centerX ^ ((insets.Left - insets.Right) / 2) + child.centerX, strength); parent.AddConstraint(parent.centerY ^ ((insets.Top - insets.Bottom) / 2) + child.centerY, strength); }
/// <summary> /// Adds multiple constraints. /// </summary> /// <param name="strength">constraints strengh override. Not changed if null</param> /// <param name="constraints">constraints list</param> /// <remarks>Every variable of the constraint should belong to current view tree</remarks> public CElement AddConstraints(ClStrength strength, params ClConstraint[] constraints) { AddConstraints(strength, (IEnumerable <ClConstraint>)constraints); return(this); }
public ClEditConstraint(ClVariable clv, ClStrength strength, double weight) : base(clv, strength, weight) { }
public static void ConstrainSize(this CElement element, double width, double height, ClStrength strength = null) { if (strength == null) { strength = ClStrength.Default; } element.AddConstraint(new ClLinearConstraint(element.width, toLinearExpression(width), strength)); element.AddConstraint(new ClLinearConstraint(element.height, toLinearExpression(height), strength)); }
public ClLinearConstraint(ClLinearExpression cle, ClStrength strength, double weight) : base(strength, weight) { ExpressionField = cle; }
public ClLinearEquation(ClLinearExpression cle, ClAbstractVariable clv, ClStrength strength, double weight = 1.0) : base(cle.Clone(), strength, weight) { ExpressionField.AddVariable(clv, -1.0); }
public ClLinearEquation(ClLinearExpression cle, ClStrength strength) : base(cle, strength) { }
public ClStayConstraint(ClVariable var, ClStrength strength) : base(var, strength, 1.0) { }
public ClEditConstraint(ClVariable clv, ClStrength strength) : base(clv, strength) { }
public ClStayConstraint(ClVariable var, ClStrength strength, double weight) : base(var, strength, weight) { }
public ClLinearInequality(ClLinearExpression cle, ClStrength strength, double weight) : base(cle, strength, weight) { }
public ClLinearEquation(ClLinearExpression cle, ClStrength strength, double weight) : base(cle, strength, weight) { }
public ClLinearInequality(ClLinearExpression cle, ClStrength strength) : base(cle, strength) { }
public ClLinearEquation(ClAbstractVariable clv, double val, ClStrength strength, double weight = 1.0) : base(new ClLinearExpression(val), strength, weight) { ExpressionField.AddVariable(clv, -1.0); }
public ClLinearInequality(ClLinearExpression cle, Cl.Operator op, ClAbstractVariable clv, ClStrength strength, double weight = 1.0) : this(cle, op, new ClLinearExpression(clv), strength, weight) /* throws ExClInternalError */ { }
public ClLinearEquation(ClLinearExpression cle1, ClLinearExpression cle2, ClStrength strength, double weight = 1.0) : base(cle1.Clone(), strength, weight) { ExpressionField.AddExpression(cle2, -1.0); }
public ClLinearInequality(ClLinearExpression cle1, Cl.Operator op, ClLinearExpression cle2, ClStrength strength, double weight = 1.0) : base(cle2.Clone(), strength, weight) /* throws ExClInternalError */ { const double EPSILON = 1e-8; switch (op) { case Cl.Operator.GreaterThanOrEqualTo: SetupGreaterThanOrEqualTo(cle1); break; case Cl.Operator.GreaterThan: SetupGreaterThanOrEqualTo(cle1); ExpressionField.IncrementConstant(-EPSILON); break; case Cl.Operator.LessThanOrEqualTo: SetupLessThanOrEqualTo(cle1); break; case Cl.Operator.LessThan: SetupLessThanOrEqualTo(cle1); ExpressionField.IncrementConstant(-EPSILON); break; default: // invalid operator throw new CassowaryInternalException("Invalid operator in ClLinearInequality constructor"); } }
public ClLinearConstraint(ClLinearExpression cle, ClStrength strength) : base(strength, 1.0) { ExpressionField = cle; }
public static StackOptions Create( bool constrainStart, bool constrainSides, bool constrainEnd, ClStrength strength, EdgeInsets?insets, bool intrinsicIfNotSet) { return(Create(constrainStart, constrainSides, constrainEnd, strength, insets, intrinsicIfNotSet, false, 0, null)); }