diff options
| author | Jeff Carr <[email protected]> | 2023-04-05 13:06:42 -0500 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2023-04-05 13:06:42 -0500 |
| commit | 29efacf6f60d92231381699bc27d44d515a4063c (patch) | |
| tree | 4116b76bb7c2dc300cb93f92ec2ea66d57eeccf0 /toolkit/gocui/plugin.go | |
| parent | 693a6f4398604e9932d714d24adc5c12472e750b (diff) | |
gocui: rework spacing logic
Signed-off-by: Jeff Carr <[email protected]>
Diffstat (limited to 'toolkit/gocui/plugin.go')
| -rw-r--r-- | toolkit/gocui/plugin.go | 57 |
1 files changed, 56 insertions, 1 deletions
diff --git a/toolkit/gocui/plugin.go b/toolkit/gocui/plugin.go index 01579ab..389b3b7 100644 --- a/toolkit/gocui/plugin.go +++ b/toolkit/gocui/plugin.go @@ -10,14 +10,69 @@ func Quit() { me.baseGui.Close() } +// set the widget start width & height +// re-run this when things change to recalibrate the position of the gocui view rect +func (w *cuiWidget) setStartWH() { + log(logInfo, "setStartWH() w.id =", w.id, "w.name", w.name) + switch w.widgetType { + case toolkit.Root: + log(logInfo, "setStartWH() rootNode w.id =", w.id, "w.name", w.name) + w.startW = 1 + w.startH = 1 + w.id = 0 + w.isFake = true + w.setFake() + w.showWidgetPlacement(logNow, "Tree:") + return + case toolkit.Flag: + w.startW = 1 + w.startH = 1 + w.isFake = true + w.setFake() + w.showWidgetPlacement(logNow, "Tree:") + return + case toolkit.Window: + w.startW = 1 + w.startH = 3 + return + case toolkit.Tab: + w.startW = 1 + w.startH = 3 + return + } + p := w.parent + switch p.widgetType { + case toolkit.Box: + if (w.isFake == false) { + w.isFake = true + w.setFake() + } + w.getBoxWH() + return + case toolkit.Grid: + if (w.isFake == false) { + w.isFake = true + w.setFake() + } + w.getGridWH() + return + case toolkit.Group: + w.getGroupWH() + return + } +} + func Action(a *toolkit.Action) { log(logInfo, "Action() START", a.WidgetId, a.ActionType, a.WidgetType, a.Name) w := findWidget(a.WidgetId, me.rootNode) switch a.ActionType { case toolkit.Add: w = setupWidget(a) - findPlace(w) + w.setStartWH() + w.moveTo(w.startW, w.startH) w.drawView() + + // findPlace(w) case toolkit.Show: if (a.B) { w.drawView() |
