summaryrefslogtreecommitdiff
path: root/toolkit/andlabs/widget.go
blob: e4a2bb769df64d0f0d90af79a19a8ee0b50f25a3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
package main

import (
	"git.wit.org/wit/gui/toolkit"
)

// This is a map between the widgets in wit/gui and the internal structures of gocui

var mapWidgets map[*andlabsT]*toolkit.Widget
var mapToolkits map[*toolkit.Widget]*andlabsT

// This lists out the known mappings
// deprecate and use instead the GUI interface
func listMap(b bool) {
	log(b, "listMap() disabled HERE. output too big")
	return
	for t, w := range mapWidgets {
		log(b, "andlabs =", t.Name, "widget =", w.Name)
	}
	log(b, "listMap() HERE mapToolkits()")
	for w, t := range mapToolkits {
		log(b, "andlabs =", t, "widget =", w.Name)
		t.Dump(b)
	}
	log(b, "listMap() HERE mapWidgets()")
	log(b, "listMap() HERE FIXME. output too big")
}

func mapWidgetsToolkits(a *toolkit.Action, t *andlabsT) {
	w := a.Widget
	if ((mapToolkits[w] == nil) && (mapWidgets[t] == nil)) {
		log(debugToolkit, "map a new widget", w, t)
		mapToolkits[w] = t
		mapWidgets[t] = w
		return
	}

	if (mapToolkits[w] != nil) {
		tw := mapToolkits[w]
		if (tw == nil) {
			// logic corruption somewhere? Have you been deleting things recently?
			log(true, "mapToolkits[w] is set, but mapWidgets[t] is nil")
			panic("WTF mapWidgets[t] == nil")
		}
		log(debugToolkit, "mapToolkits[w] is", tw)
		if (tw == nil) {
			log(debugError, "BAD map? mapWidgets[w] tw == nil")
		} else {
			log(debugError, "BAD map? mapWidgets[w] is", tw)
			tw.Dump(debugError)
		}
	}

	if (mapWidgets[t] != nil) {
		wt := mapWidgets[t]
		if (mapToolkits[w] == nil) {
			// logic corruption somewhere? Have you been deleting things recently?
			log(true, "mapWidgets[t] is set, but mapToolkits[w] is nil")
			panic("WTF mapToolkits[w] == nil")
		}
		if (wt == nil) {
			log(debugError, "BAD map? mapWidgets[t] wt == nil")
		} else {
			log(debugError, "BAD map? mapWidgets[t] is", wt)
			widgetDump(debugError, wt)
		}
	}
	log(debugToolkit, "map of widget worked", w.Type, ",", w.Name)
}