starting the table window
This commit is contained in:
parent
57b6efd831
commit
ad34230d67
|
@ -4,9 +4,6 @@
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
// if you include more than just this import
|
|
||||||
// then your plugin might be doing something un-ideal (just a guess from 2023/02/27)
|
|
||||||
|
|
||||||
"github.com/awesome-gocui/gocui"
|
"github.com/awesome-gocui/gocui"
|
||||||
"go.wit.com/log"
|
"go.wit.com/log"
|
||||||
"go.wit.com/toolkits/tree"
|
"go.wit.com/toolkits/tree"
|
||||||
|
|
68
structs.go
68
structs.go
|
@ -21,6 +21,7 @@ import (
|
||||||
"go.wit.com/lib/protobuf/guipb"
|
"go.wit.com/lib/protobuf/guipb"
|
||||||
log "go.wit.com/log"
|
log "go.wit.com/log"
|
||||||
"go.wit.com/toolkits/tree"
|
"go.wit.com/toolkits/tree"
|
||||||
|
"go.wit.com/widget"
|
||||||
)
|
)
|
||||||
|
|
||||||
var initOnce sync.Once // run initPlugin() only once
|
var initOnce sync.Once // run initPlugin() only once
|
||||||
|
@ -182,39 +183,40 @@ type colorT struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
type guiWidget struct {
|
type guiWidget struct {
|
||||||
v *gocui.View // this is nil if the widget is not displayed
|
v *gocui.View // this is nil if the widget is not displayed
|
||||||
cuiName string // what gocui uses to reference the widget (usually "TK <widgetId>"
|
cuiName string // what gocui uses to reference the widget (usually "TK <widgetId>"
|
||||||
parent *guiWidget // mirrors the binary node tree
|
parent *guiWidget // mirrors the binary node tree
|
||||||
children []*guiWidget // mirrors the binary node tree
|
children []*guiWidget // mirrors the binary node tree
|
||||||
node *tree.Node // the pointer back to the tree
|
node *tree.Node // the pointer back to the tree
|
||||||
pb *guipb.Widget // the guipb Widget
|
pb *guipb.Widget // the guipb Widget
|
||||||
windowFrame *guiWidget // this is the frame for a window widget
|
wtype widget.WidgetType // used for Tables for now. todo: fix this correctly
|
||||||
internal bool // indicates the widget is internal to gocui and should be treated differently
|
windowFrame *guiWidget // this is the frame for a window widget
|
||||||
hasTabs bool // does the window have tabs?
|
internal bool // indicates the widget is internal to gocui and should be treated differently
|
||||||
currentTab bool // the visible tab
|
hasTabs bool // does the window have tabs?
|
||||||
window window // holds information specific only to Window widgets
|
currentTab bool // the visible tab
|
||||||
value string // ?
|
window window // holds information specific only to Window widgets
|
||||||
checked bool // ?
|
value string // ?
|
||||||
labelN string // the actual text to display in the console
|
checked bool // ?
|
||||||
vals []string // dropdown menu items
|
labelN string // the actual text to display in the console
|
||||||
enable bool // ?
|
vals []string // dropdown menu items
|
||||||
gocuiSize rectType // should mirror the real display size. todo: verify these are accurate. they are not yet
|
enable bool // ?
|
||||||
full rectType // full size of children (used by widget.Window, etc)
|
gocuiSize rectType // should mirror the real display size. todo: verify these are accurate. they are not yet
|
||||||
force rectType // force widget within these boundries (using this to debug window dragging)
|
full rectType // full size of children (used by widget.Window, etc)
|
||||||
startW int // ?
|
force rectType // force widget within these boundries (using this to debug window dragging)
|
||||||
startH int // ?
|
startW int // ?
|
||||||
lastW int // used during mouse dragging
|
startH int // ?
|
||||||
lastH int // used during mouse dragging
|
lastW int // used during mouse dragging
|
||||||
isFake bool // widget types like 'box' are 'false'
|
lastH int // used during mouse dragging
|
||||||
widths map[int]int // how tall each row in the grid is
|
isFake bool // widget types like 'box' are 'false'
|
||||||
heights map[int]int // how wide each column in the grid is
|
widths map[int]int // how tall each row in the grid is
|
||||||
tainted bool // ?
|
heights map[int]int // how wide each column in the grid is
|
||||||
frame bool // ?
|
tainted bool // ?
|
||||||
selectedTab *tree.Node // for a window, this is currently selected tab
|
frame bool // ?
|
||||||
color *colorT // what color to use
|
selectedTab *tree.Node // for a window, this is currently selected tab
|
||||||
colorLast colorT // the last color the widget had
|
color *colorT // what color to use
|
||||||
defaultColor *colorT // the default colors // TODO: make a function for this instead
|
colorLast colorT // the last color the widget had
|
||||||
isBG bool // means this is the background widget. There is only one of these
|
defaultColor *colorT // the default colors // TODO: make a function for this instead
|
||||||
|
isBG bool // means this is the background widget. There is only one of these
|
||||||
}
|
}
|
||||||
|
|
||||||
// THIS IS GO COMPILER MAGIC
|
// THIS IS GO COMPILER MAGIC
|
||||||
|
|
37
table.go
37
table.go
|
@ -4,6 +4,7 @@
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
"slices"
|
"slices"
|
||||||
|
|
||||||
"go.wit.com/lib/protobuf/guipb"
|
"go.wit.com/lib/protobuf/guipb"
|
||||||
|
@ -12,12 +13,48 @@ import (
|
||||||
"go.wit.com/widget"
|
"go.wit.com/widget"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func initWindowPB(pb *guipb.Widget) *guiWidget {
|
||||||
|
var w *guiWidget
|
||||||
|
w = new(guiWidget)
|
||||||
|
|
||||||
|
w.pb = pb
|
||||||
|
w.parent = me.treeRoot.TK.(*guiWidget)
|
||||||
|
w.wtype = widget.Window
|
||||||
|
w.cuiName = fmt.Sprintf("%d %s", pb.Id, "TK")
|
||||||
|
w.labelN = pb.Name
|
||||||
|
return w
|
||||||
|
}
|
||||||
|
|
||||||
|
func initGridPB(pb *guipb.Widget) *guiWidget {
|
||||||
|
var w *guiWidget
|
||||||
|
w = new(guiWidget)
|
||||||
|
|
||||||
|
w.pb = pb
|
||||||
|
w.wtype = widget.Grid
|
||||||
|
w.cuiName = fmt.Sprintf("%d %s", pb.Id, "TK")
|
||||||
|
w.labelN = pb.Name
|
||||||
|
return w
|
||||||
|
}
|
||||||
|
|
||||||
func showTable(t *guipb.Table) {
|
func showTable(t *guipb.Table) {
|
||||||
log.Info("gocui: should show table here")
|
log.Info("gocui: should show table here")
|
||||||
if t == nil {
|
if t == nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
log.Info("gocui: table.Title", t.Title)
|
log.Info("gocui: table.Title", t.Title)
|
||||||
|
if t.Window == nil {
|
||||||
|
log.Info("gocui: missing window widget. tree plugin error")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
log.Info("gocui: need to add window here id =", t.Window.Id, t.Window.Name)
|
||||||
|
if t.Grid == nil {
|
||||||
|
log.Info("gocui: missing grid widget. tree plugin error")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
log.Info("gocui: need to add grid here id =", t.Grid.Id)
|
||||||
|
win := initWindowPB(t.Window)
|
||||||
|
grid := initWindowPB(t.Window)
|
||||||
|
grid.parent = win
|
||||||
}
|
}
|
||||||
|
|
||||||
func enableWidget(n *tree.Node) {
|
func enableWidget(n *tree.Node) {
|
||||||
|
|
Loading…
Reference in New Issue