diff options
| author | Sam Anthony <sam@samanthony.xyz> | 2026-03-02 17:38:55 -0500 |
|---|---|---|
| committer | Sam Anthony <sam@samanthony.xyz> | 2026-03-02 17:38:55 -0500 |
| commit | 8858a54b5ddb3a2d8a42ecb1a837c02800bc934f (patch) | |
| tree | 2428c445936eb8865c0b7c8f52560e97a44082f3 /lay/strain/constraint.go | |
| parent | c6cd37a6b80d4e5ad1dbf8c8968b818811b8aa54 (diff) | |
| download | gui-8858a54b5ddb3a2d8a42ecb1a837c02800bc934f.zip | |
create lay/strain package
The lay/strain package uses the Cassowary algorithm to solve systems of
layout constraints.
Diffstat (limited to 'lay/strain/constraint.go')
| -rw-r--r-- | lay/strain/constraint.go | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/lay/strain/constraint.go b/lay/strain/constraint.go new file mode 100644 index 0000000..44c9e0a --- /dev/null +++ b/lay/strain/constraint.go @@ -0,0 +1,28 @@ +package strain + +import ( + "github.com/lithdew/casso" + "golang.org/x/exp/shiny/unit" +) + +// Constraint imposes a restriction on the size of a widget or layout. +type Constraint struct { + // Dimension is the dimension to constrain: width/height. + Dimension + + // Relation declares whether the constraint is an upper, lower, + // or exact bound. + casso.Op + + // Value is the target or threshold value. + unit.Value +} + +// Dim is a dimension of a widget or layout that can be constrained. +type Dimension int + +const ( + _ Dimension = iota + Width + Height +) |