summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRené 'Necoro' Neumann <necoro@necoro.eu>2022-02-01 21:37:53 +0100
committerRené 'Necoro' Neumann <necoro@necoro.eu>2022-02-01 21:37:53 +0100
commitd3a709c945002c5fbb1123ab8dbe25cb509e01e2 (patch)
tree5dfeedb2e6b796a1e424de9efcadc5a5e7171c01
parentec2c47a63d25e54d6d08e75448510244ddc76f4d (diff)
downloadengarde-importer-d3a709c945002c5fbb1123ab8dbe25cb509e01e2.tar.gz
engarde-importer-d3a709c945002c5fbb1123ab8dbe25cb509e01e2.tar.bz2
engarde-importer-d3a709c945002c5fbb1123ab8dbe25cb509e01e2.zip
Make grid context global, i.e. all labels count into the size.
-rw-r--r--gui.go17
1 files changed, 8 insertions, 9 deletions
diff --git a/gui.go b/gui.go
index 14a1e77..fff4fd6 100644
--- a/gui.go
+++ b/gui.go
@@ -44,7 +44,6 @@ var (
)
type GridLayout struct {
- size float32
widgets []g.Widget
labels []*g.LabelWidget
}
@@ -58,32 +57,32 @@ func Line(label string, widget g.Widget) GridLine {
return GridLine{label, widget}
}
+const gridPadding = 10
+
+var gridSize float32 = gridPadding
+
func Grid(lines ...GridLine) *GridLayout {
- var size float32
widgets := make([]g.Widget, len(lines))
labels := make([]*g.LabelWidget, len(lines))
for i, line := range lines {
labelSize, _ := g.CalcTextSize(line.label)
- if labelSize > size {
- size = labelSize
+ if labelSize+gridPadding > gridSize {
+ gridSize = labelSize + gridPadding
}
labels[i] = g.Label(line.label)
widgets[i] = line.widget
}
- // add a default padding
- size = size + 10
-
- return &GridLayout{size, widgets, labels}
+ return &GridLayout{widgets, labels}
}
func (grid *GridLayout) Build() {
for i := range grid.labels {
g.AlignTextToFramePadding()
grid.labels[i].Build()
- imgui.SameLineV(grid.size, 0)
+ imgui.SameLineV(gridSize, 0)
grid.widgets[i].Build()
}
}