make a buttonMap

Signed-off-by: Jeff Carr <jcarr@wit.com>
This commit is contained in:
Jeff Carr 2019-06-02 22:22:04 -07:00
parent a030afb2bd
commit 584e3b60d4
4 changed files with 7 additions and 6 deletions

View File

@ -50,7 +50,7 @@ func guiButtonClick(button *GuiButton) {
}
}
func NewCreateButton(box *GuiBox, custom func(*GuiButton), name string, values interface {}) *GuiButton {
func CreateButton(box *GuiBox, custom func(*GuiButton), name string, values interface {}) *GuiButton {
newUiB := ui.NewButton(name)
newUiB.OnClicked(defaultButtonClick)

View File

@ -19,7 +19,7 @@ func WatchGUI() {
for {
if (count > 20) {
log.Println("Sleep() in watchGUI() Data.State =", Data.State)
log.Println("Sleep() in watchGUI()")
for i, window := range Data.Windows {
log.Println("watchGUI() Data.Windows", i, "Name =", window.Name)
for name, abox := range window.BoxMap {

4
gui.go
View File

@ -11,6 +11,7 @@ const Xaxis = 0
const Yaxis = 1
func GuiInit() {
Data.buttonMap = make(map[*ui.Button]*GuiButton)
ui.OnShouldQuit(func() bool {
ui.Quit()
return true
@ -31,6 +32,9 @@ func InitGuiWindow(action string, gw *GuiWindow) *GuiWindow {
newGuiWindow.EntryMap["test"] = nil
Data.Windows = append(Data.Windows, &newGuiWindow)
if (Data.buttonMap == nil) {
GuiInit()
}
log.Println("InitGuiWindow() END *GuiWindow =", &newGuiWindow)
return &newGuiWindow
}

View File

@ -22,8 +22,6 @@ type GuiConfig struct {
}
type GuiData struct {
State string // used like a state machine
// a fallback default function to handle mouse events
// if nothing else is defined to handle them
MouseClick func(*GuiButton)
@ -39,6 +37,7 @@ type GuiData struct {
// This has to work this way because of how
// andlabs/ui & andlabs/libui work
AllButtons []*GuiButton
buttonMap map[*ui.Button]*GuiButton
}
//
@ -61,7 +60,6 @@ type GuiData struct {
//
type GuiWindow struct {
Name string // field for human readable name
// Action string
Width int
Height int
@ -108,7 +106,6 @@ type GuiButton struct {
// text entry fields
type GuiEntry struct {
Name string // field for human readable name
// Action string // what type of button
Edit bool
Last string // the last value
Normalize func (string) string // function to 'normalize' the data