summaryrefslogtreecommitdiff
path: root/treeDraw.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-03-25 07:27:37 -0500
committerJeff Carr <[email protected]>2025-03-25 13:17:00 -0500
commit1552eedc185e85b46498898e68867afaef308301 (patch)
tree8fc5cdfbc77cde184842197b2cde5cce8d85d34b /treeDraw.go
parent4523eda0fa2372d97fb5db800b79b53c218ef627 (diff)
save the output window state
Diffstat (limited to 'treeDraw.go')
-rw-r--r--treeDraw.go271
1 files changed, 0 insertions, 271 deletions
diff --git a/treeDraw.go b/treeDraw.go
deleted file mode 100644
index d678678..0000000
--- a/treeDraw.go
+++ /dev/null
@@ -1,271 +0,0 @@
-// Copyright 2017-2025 WIT.COM Inc. All rights reserved.
-// Use of this source code is governed by the GPL 3.0
-
-package main
-
-import (
- "errors"
- "fmt"
- "strconv"
-
- "github.com/awesome-gocui/gocui"
- log "go.wit.com/log"
- "go.wit.com/widget"
-)
-
-// don't draw widgets that are too far down the window
-func (tk *guiWidget) doNotDraw() bool {
- var check bool
- switch tk.WidgetType() {
- case widget.Button:
- check = true
- case widget.Label:
- check = true
- default:
- }
- if !check {
- return false
- }
- win := tk.findParentWindow()
- if win == nil {
- // don't draw anything if you can't find the parent window
- return true
- }
-
- h := tk.gocuiSize.h0 - win.gocuiSize.h0
-
- if h > 20 {
- return true
- }
-
- return false
-}
-
-// page widgets in the window
-func (tk *guiWidget) pageWidget() *rectType {
- r := new(rectType)
-
- var check bool
- switch tk.WidgetType() {
- case widget.Button:
- check = true
- case widget.Label:
- check = true
- default:
- }
- if !check {
- return nil
- }
- win := tk.findParentWindow()
- if win == nil {
- // don't draw anything if you can't find the parent window
- return nil
- }
-
- r.w0 = tk.gocuiSize.w0
- r.h0 = tk.gocuiSize.h0
- r.w1 = tk.gocuiSize.w1
- r.h1 = tk.gocuiSize.h1
-
- // r.h0 = tk.gocuiSize.h0 - win.gocuiSize.h0
-
- if r.h0 > 20 {
- return r
- }
-
- return r
-}
-
-// display's the text of the widget in gocui
-// deletes the old view if it exists and recreates it
-func (tk *guiWidget) drawView() {
- var err error
- log.Log(INFO, "drawView() START", tk.WidgetType(), tk.String())
- if me.baseGui == nil {
- log.Log(ERROR, "drawView() ERROR: me.baseGui == nil", tk)
- return
- }
-
- if tk.cuiName == "" {
- log.Log(ERROR, "drawView() tk.cuiName was not set for widget", tk)
- tk.cuiName = strconv.Itoa(tk.WidgetId()) + " TK"
- }
- log.Log(INFO, "drawView() labelN =", tk.labelN)
-
- // this deletes the button from gocui
- me.baseGui.DeleteView(tk.cuiName)
- tk.v = nil
-
- a := tk.gocuiSize.w0
- b := tk.gocuiSize.h0
- c := tk.gocuiSize.w1
- d := tk.gocuiSize.h1
-
- /*
- // testing code for paging large windows
- if tk.doNotDraw() {
- return
- }
-
- if tk.window.pager != 0 {
- if r := tk.pageWidget(); r == nil {
- // if nil, draw whatever it is anyway
- } else {
- if r.Width() == 0 && r.Height() == 0 {
- // don't draw empty stuff
- return
- }
- a = r.w0
- b = r.h0
- c = r.w1
- d = r.h1
- }
- }
-
- if tk.WidgetType() == widget.Window || tk.WidgetType() == widget.Flag {
- if tk.window.pager != 0 {
- if tk.gocuiSize.Height() > 40 {
- tk.window.large = true
- tk.gocuiSize.h1 = tk.gocuiSize.h0 + 40
- d = tk.gocuiSize.h1
- }
- }
- }
- */
-
- // this is all terrible. This sets the title. kinda
- if tk.WidgetType() == widget.Window {
- tk.textResize()
- tk.full.w0 = tk.force.w0
- tk.full.h0 = tk.force.h0
-
- // for windows, make it the full size
- a = tk.full.w0
- b = tk.full.h0
- c = tk.full.w0 + tk.gocuiSize.Width()
- d = tk.full.h0 + tk.gocuiSize.Height()
- } else {
- if tk.internal {
- // do nothing
- } else {
- tk.textResize() // resize gocui frame to the widget text
- }
- a = tk.gocuiSize.w0
- b = tk.gocuiSize.h0
- c = tk.gocuiSize.w1
- d = tk.gocuiSize.h1
- }
-
- tk.v, err = me.baseGui.SetView(tk.cuiName, a, b, c, d, 0)
- if err == nil {
- tk.dumpWidget("drawView() err")
- log.Log(ERROR, "drawView() internal plugin error err = nil")
- return
- }
-
- if !errors.Is(err, gocui.ErrUnknownView) {
- tk.dumpWidget("drawView() err")
- log.Log(ERROR, "drawView() internal plugin error error.IS()", err)
- return
- }
-
- if tk.v == nil {
- log.Info("MUTEX FAIL. tk.v == nil here in drawView()")
- log.Info("MUTEX FAIL. tk.v == nil here in drawView()")
- log.Info("MUTEX FAIL. tk.v == nil here in drawView()")
- return
- }
-
- // this actually sends the text to display to gocui
- tk.v.Wrap = true
- tk.v.Frame = tk.frame
- tk.v.Clear()
- fmt.Fprint(tk.v, tk.labelN)
-
- // tmp hack to disable buttons on window open
- if tk.WidgetType() == widget.Button {
- if tk.IsEnabled() {
- } else {
- tk.setColorDisable()
- }
- }
-
- switch tk.WidgetType() {
- case widget.Button:
- if tk.IsEnabled() {
- if tk.isWindowDense() && tk.isInGrid() {
- tk.setColorButtonDense()
- } else {
- tk.setColorButton()
- }
- } else {
- tk.setColorDisable()
- }
- default:
- }
-
- if tk.v == nil {
- log.Info("MUTEX FAIL 2. tk.v was deleted somehow tk.v == nil here in drawView()")
- log.Info("MUTEX FAIL 2. tk.v == nil here in drawView()")
- log.Info("MUTEX FAIL 2. tk.v == nil here in drawView()")
- return
- }
-
- // if you don't do this here, it will be black & white only
- if tk.color != nil {
- tk.v.FrameColor = tk.color.frame
- tk.v.FgColor = tk.color.fg
- tk.v.BgColor = tk.color.bg
- tk.v.SelFgColor = tk.color.selFg
- tk.v.SelBgColor = tk.color.selBg
- }
-
- log.Log(INFO, "drawView() END")
-}
-
-func (w *guiWidget) DrawAt(offsetW, offsetH int) {
- // w.setColor(&colorActiveW)
- w.placeWidgets(offsetW, offsetH) // compute the sizes & places for each widget
- // w.dumpWidget(fmt.Sprintf("DrawAt(%d,%d)", offsetW, offsetH))
-}
-
-func (w *guiWidget) simpleDrawAt(offsetW, offsetH int) {
- // w.setColor(&colorActiveW)
- w.dumpWidget("simpleDrawAt()")
-}
-
-// display the widgets in the binary tree
-func (w *guiWidget) drawTree(draw bool) {
- if w == nil {
- return
- }
- w.dumpWidget("in drawTree()")
- if draw {
- // w.textResize()
- w.Show()
- } else {
- w.Hide()
- }
-
- for _, child := range w.children {
- child.drawTree(draw)
- }
-}
-
-func (w *guiWidget) Show() {
- if w.isFake {
- // don't display fake widgets
- return
- }
-
- if w.Hidden() {
- // recursively checks if the parent is hidden
- // never show hidden widgets
- return
- }
- if me.debug {
- w.dumpWidget("drawView()")
- }
-
- w.drawView()
-}