summaryrefslogtreecommitdiff
path: root/toolkit/democui/view.go
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/democui/view.go')
-rw-r--r--toolkit/democui/view.go349
1 files changed, 0 insertions, 349 deletions
diff --git a/toolkit/democui/view.go b/toolkit/democui/view.go
deleted file mode 100644
index 5ff44ad..0000000
--- a/toolkit/democui/view.go
+++ /dev/null
@@ -1,349 +0,0 @@
-package main
-
-import (
- "fmt"
- "errors"
- "strconv"
-
- "github.com/awesome-gocui/gocui"
- "git.wit.org/wit/gui/toolkit"
-)
-
-var adjusted bool = false
-
-// expands the logical size of the parents
-func (w *cuiWidget) setParentLogical(p *cuiWidget) {
- if (w.visable) {
- // expand the parent logicalsize to include the widget realSize
- if (p.logicalSize.w0 > w.realSize.w0) {
- p.logicalSize.w0 = w.realSize.w0
- adjusted = true
- }
- if (p.logicalSize.h0 > w.realSize.h0) {
- p.logicalSize.h0 = w.realSize.h0
- adjusted = true
- }
- if (p.logicalSize.w1 < w.realSize.w1) {
- p.logicalSize.w1 = w.realSize.w1
- adjusted = true
- }
- if (p.logicalSize.h1 < w.realSize.h1) {
- p.logicalSize.h1 = w.realSize.h1
- adjusted = true
- }
- } else {
- // expand the parent logicalsize to include the widget logicalsize
- if (p.logicalSize.w0 > w.logicalSize.w0) {
- p.logicalSize.w0 = w.logicalSize.w0
- adjusted = true
- }
- if (p.logicalSize.h0 > w.logicalSize.h0) {
- p.logicalSize.h0 = w.logicalSize.h0
- adjusted = true
- }
- if (p.logicalSize.w1 < w.logicalSize.w1) {
- p.logicalSize.w1 = w.logicalSize.w1
- adjusted = true
- }
- if (p.logicalSize.h1 < w.logicalSize.h1) {
- p.logicalSize.h1 = w.logicalSize.h1
- adjusted = true
- }
- }
- if (w.visable) {
- // adjust the widget realSize to the top left corner of the logicalsize
- if (w.logicalSize.w0 > w.realSize.w0) {
- w.realSize.w0 = w.logicalSize.w0
- w.realSize.w1 = w.realSize.w0 + w.realWidth
- adjusted = true
- }
- if (w.logicalSize.h0 > w.realSize.h0) {
- w.realSize.h0 = w.logicalSize.h0
- w.realSize.h1 = w.realSize.h0 + w.realHeight
- adjusted = true
- }
- }
- w.showWidgetPlacement(logNow, "setParentLogical() widget")
- p.showWidgetPlacement(logNow, "setParentLogical() parent")
- if (w.id == 0) || (p.id == 0) {
- // stop resizing when you hit the root widget
- return
- }
- // pass the logical resizing up
- pP := me.widgets[p.parentId]
- if (pP != nil) {
- p.setParentLogical(pP)
- }
-}
-
-var fakeStartWidth int = 80
-var fakeStartHeight int = 0
-func (w *cuiWidget) setFake() {
- if (w.visable) {
- return
- }
- // setup fake labels for non-visable things off screen
- w.realWidth = me.defaultWidth
- w.realHeight = me.defaultHeight
- w.realSize.w0 = fakeStartWidth
- w.realSize.h0 = fakeStartHeight
- w.realSize.w1 = w.realSize.w0 + me.defaultWidth
- w.realSize.h1 = w.realSize.h0 + me.defaultHeight
- fakeStartHeight += 2
- w.showWidgetPlacement(logNow, "setFake()")
-}
-
-func drawView(w *cuiWidget) *gocui.View {
- var newName string = ""
- newName = strconv.Itoa(w.id)
- if (me.baseGui == nil) {
- log(logError, "drawView() me.baseGui == nil")
- return nil
- }
-
- a := w.realSize.w0
- b := w.realSize.h0
- c := w.realSize.w1
- d := w.realSize.h1
- v, err := me.baseGui.SetView(newName, a, b, c, d, 0)
- if err == nil {
- log(logError, "drawView() internal plugin error err = nil")
- return nil
- }
- if !errors.Is(err, gocui.ErrUnknownView) {
- log(logError, "drawView() internal plugin error error.IS()", err)
- return nil
- }
- w.v = v
-
- return v
-}
-
-func boxedPlace(w *cuiWidget) {
- t := len(w.name)
- if (w.id == 0) {
- w.realWidth = 0
- w.realHeight = 0
- return
- }
- p := me.widgets[w.parentId]
- if (p == nil) {
- log(logError, "ERRRRRRRRRRRORRRRRRRRRRRRR: parentId widget == nil")
- return
- }
-
- switch p.widgetType {
- case toolkit.Box:
- w.realWidth = t + 3
- w.realHeight = me.defaultHeight
- w.realSize.w0 = p.nextX
- w.realSize.h0 = p.nextY
- w.realSize.w1 = p.nextX + w.realWidth
- w.realSize.h1 = p.nextY + w.realHeight
-
- w.logicalSize.w0 = p.nextX
- w.logicalSize.h0 = p.nextY
- w.logicalSize.w1 = p.nextX + w.realWidth
- w.logicalSize.h1 = p.nextY + w.realHeight
-
- w.nextX = p.nextX
- w.nextY = p.nextY
- if (w.horizontal) {
- log(logNow, "PARENT BOX IS HORIZONTAL")
- p.nextX += w.realWidth
- } else {
- log(logNow, "PARENT BOX IS VERTICAL")
- p.nextY += w.realHeight
- }
- case toolkit.Group:
- w.realWidth = t + 3
- w.realHeight = me.defaultHeight
-
- w.realSize.w0 = p.nextX
- w.realSize.h0 = p.nextY
- w.realSize.w1 = p.nextX + w.realWidth
- w.realSize.h1 = p.nextY + w.realHeight
-
- w.logicalSize.w0 = p.nextX
- w.logicalSize.h0 = p.nextY
- w.logicalSize.w1 = p.nextX + w.realWidth
- w.logicalSize.h1 = p.nextY + w.realHeight
-
- w.nextX = w.logicalSize.w0 + 3 // default group padding
- w.nextY = w.logicalSize.h1
-
- // increment parent
- p.nextY += w.realHeight
- default:
- w.realWidth = t + 3
- w.realHeight = me.defaultHeight
- w.realSize.w0 = p.nextX
- w.realSize.h0 = p.nextY
- w.realSize.w1 = w.realSize.w0 + w.realWidth
- w.realSize.h1 = w.realSize.h0 + w.realHeight
-
- // increment parent
- p.nextY += w.realHeight
- }
- p.showWidgetPlacement(logNow, "bP parent")
- w.showWidgetPlacement(logNow, "bP widget")
-}
-
-func findPlace(w *cuiWidget, a *toolkit.Action) {
- t := len(w.name)
- w.visable = true
- switch w.widgetType {
- case toolkit.Root:
- w.visable = false
- w.setFake()
- w.showWidgetPlacement(logNow, "Root:")
- case toolkit.Flag:
- w.visable = false
- w.setFake()
- w.showWidgetPlacement(logNow, "Flag:")
- case toolkit.Window:
- w.realWidth = t + 3
- w.realHeight = me.defaultHeight
-
- w.realSize.w0 = me.nextW
- w.realSize.h0 = 0
- w.realSize.w1 = w.realSize.w0 + w.realWidth
- w.realSize.h1 = w.realHeight
-
- w.logicalSize.w0 = me.nextW
- w.logicalSize.h0 = 0
- w.logicalSize.w1 = w.logicalSize.w0 + w.realWidth
- w.logicalSize.h1 = w.realHeight
-
- w.nextX = w.logicalSize.w0 + t // default group padding
- w.nextY = w.logicalSize.h1
-
- me.nextW += w.realWidth
- w.showWidgetPlacement(logNow, "window:")
- case toolkit.Tab:
- w.realWidth = t + 3
- w.realHeight = me.defaultHeight
-
- w.realSize.w0 = me.nextW
- w.realSize.h0 = 0
- w.realSize.w1 = w.realSize.w0 + w.realWidth
- w.realSize.h1 = w.realHeight
-
- w.logicalSize.w0 = me.nextW
- w.logicalSize.h0 = 0
- w.logicalSize.w1 = w.logicalSize.w0 + w.realWidth
- w.logicalSize.h1 = w.realHeight
-
- w.nextX = w.logicalSize.w0 + t // default group padding
- w.nextY = w.logicalSize.h1
- me.nextW += w.realWidth
- w.showWidgetPlacement(logNow, "tab:")
- case toolkit.Grid:
- p := me.widgets[w.parentId]
- w.horizontal = a.B
- w.visable = false
- w.setFake()
-
- if (p == nil) {
- log(logError, "ERRRRRRRRRRRORRRRRRRRRRRRR: parentId widget == nil")
- return
- }
- w.logicalSize.w0 = p.nextX
- w.logicalSize.h0 = p.nextY
- w.logicalSize.w1 = p.nextX
- w.logicalSize.h1 = p.nextY
-
- w.nextX = p.nextX
- w.nextY = p.nextY
- w.showWidgetPlacement(logNow, "grid:")
- case toolkit.Box:
- p := me.widgets[w.parentId]
- w.horizontal = a.B
- w.visable = false
- w.setFake()
-
- if (p == nil) {
- log(logError, "ERRRRRRRRRRRORRRRRRRRRRRRR: parentId widget == nil")
- return
- }
- w.logicalSize.w0 = p.nextX
- w.logicalSize.h0 = p.nextY
- w.logicalSize.w1 = p.nextX
- w.logicalSize.h1 = p.nextY
-
- w.nextX = p.nextX
- w.nextY = p.nextY
- w.showWidgetPlacement(logNow, "box:")
- case toolkit.Group:
- p := me.widgets[w.parentId]
- w.horizontal = a.B
- w.visable = false
- w.setFake()
-
- if (p == nil) {
- log(logError, "ERRRRRRRRRRRORRRRRRRRRRRRR: parentId widget == nil")
- return
- }
- w.logicalSize.w0 = p.nextX
- w.logicalSize.h0 = p.nextY
- w.logicalSize.w1 = p.nextX
- w.logicalSize.h1 = p.nextY
-
- w.nextX = p.nextX
- w.nextY = p.nextY
- w.showWidgetPlacement(logNow, "group:")
- default:
- boxedPlace(w)
- }
-}
-
-func place(w *cuiWidget, a *toolkit.Action) {
- log(logInfo, "place() START")
- findPlace(w, a)
- v := drawView(w)
- if (v == nil) {
- log(logError, "place() drawView(w) returned nil")
- return
- }
- me.baseGui.SetKeybinding(v.Name(), gocui.MouseLeft, gocui.ModNone, click)
-
- v.Wrap = true
- fmt.Fprintln(v, " " + w.name)
-
- w.SetDefaultWidgetColor()
-
- log(logInfo, "place() END")
- return
-}
-
-func (w *cuiWidget) drawView() {
- var err error
- if (me.baseGui == nil) {
- log(logError, "drawView() me.baseGui == nil")
- return
- }
-
- a := w.realSize.w0
- b := w.realSize.h0
- c := w.realSize.w1
- d := w.realSize.h1
-
- var newName string = ""
- newName = strconv.Itoa(w.id)
- w.v, err = me.baseGui.SetView(newName, a, b, c, d, 0)
- if err == nil {
- log(logError, "drawView() internal plugin error err = nil")
- return
- }
- if !errors.Is(err, gocui.ErrUnknownView) {
- log(logError, "drawView() internal plugin error error.IS()", err)
- return
- }
-
- me.baseGui.SetKeybinding(w.v.Name(), gocui.MouseLeft, gocui.ModNone, click)
-
- w.v.Wrap = true
- fmt.Fprintln(w.v, " " + w.text)
-
- w.SetDefaultWidgetColor()
-}