64 lines
1.9 KiB
Go
64 lines
1.9 KiB
Go
package main
|
|
|
|
import (
|
|
"go.wit.com/gui/widget"
|
|
"go.wit.com/gui/toolkits/tree"
|
|
|
|
"go.wit.com/dev/andlabs/ui"
|
|
_ "go.wit.com/dev/andlabs/ui/winmanifest"
|
|
)
|
|
|
|
// make new Box here
|
|
func newBox(n *tree.Node) {
|
|
if notNew(n) { return }
|
|
newt := new(guiWidget)
|
|
var box *ui.Box
|
|
|
|
if n.State.Direction == widget.Horizontal {
|
|
box = ui.NewHorizontalBox()
|
|
} else {
|
|
box = ui.NewVerticalBox()
|
|
}
|
|
box.SetPadded(true)
|
|
|
|
newt.uiBox = box
|
|
newt.uiControl = box
|
|
newt.boxC = 0
|
|
n.TK = newt
|
|
place(n.Parent, n)
|
|
}
|
|
|
|
/*
|
|
rawBox -- hack to arbitrarily add a box in andlabs to work
|
|
around the problem that a "group" can not have one entry in it
|
|
TODO: fix this so that a box is "added on demand" that is,
|
|
if "go.wit.com/gui/gui" sends you a 2nd thing to add to a group,
|
|
automatically add a box then. The problem with this, is the macos, windows and linux gtk
|
|
will panic on a move when an chind object is disasociated from the group
|
|
I haven't had time to try to debug this, so, instead, it's just probably better to always
|
|
add a box here. There doesn't seem to be any real issue with forcing a box to be inserted
|
|
into the toolkits that is "outside" the binary tree of widgets. This only means, that on
|
|
a destroy of the tree, this box must be checked
|
|
|
|
even that is a probably not senario however since clicking on the close box in the toolkit
|
|
has the operating system destroy everything in the window. it may or may not be possible
|
|
to control that behavior. at this time, it's "undetermined" and the best course of action
|
|
is to detect the window is destroyed and then remove all the toolkit information
|
|
from all the nodes in the binary tree
|
|
|
|
TODO: handle user killing/closing a window using the OS
|
|
*/
|
|
// func (n *node) rawBox() *ui.Box {
|
|
func rawBox(n *tree.Node) *ui.Box {
|
|
var box *ui.Box
|
|
|
|
if n.State.Direction == widget.Horizontal {
|
|
box = ui.NewHorizontalBox()
|
|
} else {
|
|
box = ui.NewVerticalBox()
|
|
}
|
|
box.SetPadded(true)
|
|
|
|
return box
|
|
}
|