summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2024-02-22 19:27:49 -0600
committerJeff Carr <[email protected]>2024-02-22 19:27:49 -0600
commit42048ba99741827972a60a88b8ad03c6a0e4e801 (patch)
treeb9df811e910233e45c1e5af7c8b7303d46002b52
parent2de5864fff19e2f794e85385d075aa8e4049d709 (diff)
seperate mirror codev0.21.0v0.20.9
-rw-r--r--label.go67
-rw-r--r--mirror.go74
-rw-r--r--node.go7
-rw-r--r--table.go3
4 files changed, 82 insertions, 69 deletions
diff --git a/label.go b/label.go
index df33a5a..23e2de4 100644
--- a/label.go
+++ b/label.go
@@ -1,7 +1,6 @@
package gui
import (
- "go.wit.com/log"
"go.wit.com/widget"
)
@@ -14,69 +13,3 @@ func (parent *Node) NewLabel(text string) *Node {
sendAction(newNode, widget.Add)
return newNode
}
-
-// an experiemental idea
-// basically, this is like a cell in a spreadsheet that is viable
-// in one place but also exists sonewhere else
-func (parent *Node) Mirror(m *Node) *Node {
- switch m.WidgetType {
- case widget.Label:
- text := m.label
- newNode := parent.newNode(text, widget.Label)
- newNode.label = text
- newNode.progname = text
- newNode.isMirror = m
- m.hasMirrors = append(m.hasMirrors, newNode)
-
- // inform the toolkits
- sendAction(newNode, widget.Add)
- return newNode
- default:
- return nil
- }
-}
-
-// make a mirror widget without a parent
-func RawMirror(m *Node) *Node {
- switch m.WidgetType {
- case widget.Label:
- newNode := rawNode("MIRROR", widget.Label)
- newNode.isMirror = m
- m.hasMirrors = append(m.hasMirrors, newNode)
- return newNode
- default:
- return nil
- }
-}
-
-func (n *Node) IsMirror() bool {
- if n.isMirror == nil {
- return false
- }
- return true
-}
-
-func (n *Node) hasMirror() bool {
- if len(n.hasMirrors) == 0 {
- return false
- }
- return true
-}
-
-func (n *Node) updateMirrors() {
- if n.IsMirror() {
- // n is a mirror of something else
- return
- }
- for _, m := range n.hasMirrors {
- switch m.WidgetType {
- case widget.Label:
- m.label = n.label
- m.changed = true
- // inform the toolkits
- sendAction(m, widget.SetText)
- default:
- log.Log(WARN, "can not mirror widget type", m.WidgetType)
- }
- }
-}
diff --git a/mirror.go b/mirror.go
new file mode 100644
index 0000000..a89b186
--- /dev/null
+++ b/mirror.go
@@ -0,0 +1,74 @@
+package gui
+
+// an experiemental idea
+
+import (
+ "go.wit.com/log"
+ "go.wit.com/widget"
+)
+
+// an experiemental idea
+// basically, this is like a cell in a spreadsheet that is viable
+// in one place but also exists sonewhere else
+func (parent *Node) Mirror(m *Node) *Node {
+ switch m.WidgetType {
+ case widget.Label:
+ text := m.label
+ newNode := parent.newNode(text, widget.Label)
+ newNode.label = text
+ newNode.progname = text
+ newNode.isMirror = m
+ m.hasMirrors = append(m.hasMirrors, newNode)
+
+ // inform the toolkits
+ sendAction(newNode, widget.Add)
+ return newNode
+ default:
+ return nil
+ }
+}
+
+// make a mirror widget without a parent
+func RawMirror(m *Node) *Node {
+ switch m.WidgetType {
+ case widget.Label:
+ newNode := rawNode("MIRROR", widget.Label)
+ newNode.isMirror = m
+ m.hasMirrors = append(m.hasMirrors, newNode)
+ return newNode
+ default:
+ return nil
+ }
+}
+
+func (n *Node) IsMirror() bool {
+ if n.isMirror == nil {
+ return false
+ }
+ return true
+}
+
+func (n *Node) hasMirror() bool {
+ if len(n.hasMirrors) == 0 {
+ return false
+ }
+ return true
+}
+
+func (n *Node) updateMirrors() {
+ if n.IsMirror() {
+ // n is a mirror of something else
+ return
+ }
+ for _, m := range n.hasMirrors {
+ switch m.WidgetType {
+ case widget.Label:
+ m.label = n.label
+ m.changed = true
+ // inform the toolkits
+ sendAction(m, widget.SetText)
+ default:
+ log.Log(WARN, "can not mirror widget type", m.WidgetType)
+ }
+ }
+}
diff --git a/node.go b/node.go
index 7c314e9..3fdea60 100644
--- a/node.go
+++ b/node.go
@@ -71,6 +71,13 @@ func (parent *Node) Append(n *Node) {
parent.children = append(parent.children, n)
n.parent = parent
+ if n.IsMirror() {
+ m := n.isMirror
+ text := m.label
+ n.label = text
+ n.progname = text
+ }
+
// if the parent is a grid, add it to the next cell
if parent.WidgetType == widget.Grid {
parent.gridIncrement()
diff --git a/table.go b/table.go
index 292bdd1..52a4fee 100644
--- a/table.go
+++ b/table.go
@@ -18,7 +18,7 @@ type mytable struct {
func (t *Table) NewRow() *TableRow {
r := new(myRow)
- r.first =
+ r.first =
r.Cell1 = whatever widget type first is
r.Cell2 = whatever widget type song is
@@ -32,4 +32,3 @@ type songTable TableDef {
func makeSongTable() {
tb := NewTable(5)
*/
-