diff --git a/generateGui.go b/generateGui.go index c522b20..4f12a67 100644 --- a/generateGui.go +++ b/generateGui.go @@ -109,33 +109,32 @@ func guiMain(w io.Writer, FRUITS string, FRUIT string) { fmt.Fprintln(w, " sf := new("+FRUIT+"StringFunc)") fmt.Fprintln(w, " sf.title = title") fmt.Fprintln(w, " sf.f = f") + fmt.Fprintln(w, " sf.order = t.order") + fmt.Fprintln(w, " t.order += 1") fmt.Fprintln(w, " t.stringFuncs = append(t.stringFuncs, sf)") fmt.Fprintln(w, " return sf") fmt.Fprintln(w, "}") + fmt.Fprintln(w, "") fmt.Fprintln(w, "func (t *"+FRUITS+"Table) AddButtonFunc(title string, f func(*"+FRUIT+") string) *"+FRUIT+"ButtonFunc {") fmt.Fprintln(w, " t.pb.Order = append(t.pb.Order, title)") fmt.Fprintln(w, "") fmt.Fprintln(w, " sf := new("+FRUIT+"ButtonFunc)") fmt.Fprintln(w, " sf.title = title") fmt.Fprintln(w, " sf.f = f") + fmt.Fprintln(w, " sf.order = t.order") + fmt.Fprintln(w, " t.order += 1") fmt.Fprintln(w, " t.buttonFuncs = append(t.buttonFuncs, sf)") fmt.Fprintln(w, " return sf") fmt.Fprintln(w, "}") - fmt.Fprintln(w, "func (sf *"+FRUIT+"StringFunc) SetTitle(title string) {") - fmt.Fprintln(w, " sf.title = title") - fmt.Fprintln(w, "}") - fmt.Fprintln(w, "func (sf *"+FRUIT+"IntFunc) SetTitle(title string) {") - fmt.Fprintln(w, " sf.title = title") - fmt.Fprintln(w, "}") - fmt.Fprintln(w, "func (sf *"+FRUIT+"TimeFunc) SetTitle(title string) {") - fmt.Fprintln(w, " sf.title = title") - fmt.Fprintln(w, "}") + fmt.Fprintln(w, "") fmt.Fprintln(w, "func (t *"+FRUITS+"Table) AddIntFunc(title string, f func(*"+FRUIT+") int) *"+FRUIT+"IntFunc {") fmt.Fprintln(w, " t.pb.Order = append(t.pb.Order, title)") fmt.Fprintln(w, "") fmt.Fprintln(w, " sf := new("+FRUIT+"IntFunc)") fmt.Fprintln(w, " sf.title = title") fmt.Fprintln(w, " sf.f = f") + fmt.Fprintln(w, " sf.order = t.order") + fmt.Fprintln(w, " t.order += 1") fmt.Fprintln(w, " t.intFuncs = append(t.intFuncs, sf)") fmt.Fprintln(w, " return sf") fmt.Fprintln(w, "}") @@ -146,10 +145,22 @@ func guiMain(w io.Writer, FRUITS string, FRUIT string) { fmt.Fprintln(w, " sf := new("+FRUIT+"TimeFunc)") fmt.Fprintln(w, " sf.title = title") fmt.Fprintln(w, " sf.f = f") + fmt.Fprintln(w, " sf.order = t.order") + fmt.Fprintln(w, " t.order += 1") fmt.Fprintln(w, " t.timeFuncs = append(t.timeFuncs, sf)") fmt.Fprintln(w, " return sf") fmt.Fprintln(w, "}") fmt.Fprintln(w, "") + fmt.Fprintln(w, "func (sf *"+FRUIT+"StringFunc) SetTitle(title string) {") + fmt.Fprintln(w, " sf.title = title") + fmt.Fprintln(w, "}") + fmt.Fprintln(w, "func (sf *"+FRUIT+"IntFunc) SetTitle(title string) {") + fmt.Fprintln(w, " sf.title = title") + fmt.Fprintln(w, "}") + fmt.Fprintln(w, "func (sf *"+FRUIT+"TimeFunc) SetTitle(title string) {") + fmt.Fprintln(w, " sf.title = title") + fmt.Fprintln(w, "}") + fmt.Fprintln(w, "") fmt.Fprintln(w, "func (mt *"+FRUITS+"Table) SetParent(p *gui.Node) {") fmt.Fprintln(w, " mt.parent = p") fmt.Fprintln(w, "}") @@ -170,28 +181,31 @@ func guiMain(w io.Writer, FRUITS string, FRUIT string) { fmt.Fprintln(w, " title string") fmt.Fprintln(w, " f func(*"+FRUIT+") string") fmt.Fprintln(w, " Custom func(*"+FRUIT+")") + fmt.Fprintln(w, " order int") fmt.Fprintln(w, "}") fmt.Fprintln(w, "") fmt.Fprintln(w, "type "+FRUIT+"ButtonFunc struct {") fmt.Fprintln(w, " title string") fmt.Fprintln(w, " f func(*"+FRUIT+") string") fmt.Fprintln(w, " Custom func(*"+FRUIT+")") + fmt.Fprintln(w, " order int") fmt.Fprintln(w, "}") fmt.Fprintln(w, "") fmt.Fprintln(w, "type "+FRUIT+"IntFunc struct {") fmt.Fprintln(w, " title string") fmt.Fprintln(w, " f func(*"+FRUIT+") int") fmt.Fprintln(w, " Custom func(*"+FRUIT+")") + fmt.Fprintln(w, " order int") fmt.Fprintln(w, "}") fmt.Fprintln(w, "") fmt.Fprintln(w, "type "+FRUIT+"TimeFunc struct {") fmt.Fprintln(w, " title string") fmt.Fprintln(w, " f func(*"+FRUIT+") time.Time") fmt.Fprintln(w, " Custom func(*"+FRUIT+")") + fmt.Fprintln(w, " order int") fmt.Fprintln(w, "}") fmt.Fprintln(w, "") fmt.Fprintln(w, "type "+FRUITS+"Table struct {") - fmt.Fprintln(w, " // gt *gui.NodeTable") fmt.Fprintln(w, " pb *guipb.Table") fmt.Fprintln(w, " parent *gui.Node") fmt.Fprintln(w, " x *"+FRUITS+"") @@ -201,6 +215,7 @@ func guiMain(w io.Writer, FRUITS string, FRUIT string) { fmt.Fprintln(w, " timeFuncs []*"+FRUIT+"TimeFunc") fmt.Fprintln(w, " buttonFuncs []*"+FRUIT+"ButtonFunc") fmt.Fprintln(w, " CustomFunc func(*"+FRUIT+")") + fmt.Fprintln(w, " order int") fmt.Fprintln(w, "}") } @@ -312,8 +327,6 @@ func guiStringFuncs(w io.Writer, ZOOPB string, FRUITS string, FRUIT string) { func guiAddStringFunc(w io.Writer, FRUITS string, FRUIT string, BRAND string) { fmt.Fprintln(w, "") fmt.Fprintln(w, "func (t *"+FRUITS+"Table) Add"+BRAND+"() *"+FRUIT+"StringFunc {") - fmt.Fprintln(w, " // t.pb.Order = append(t.pb.Order, "+BRAND+")") - fmt.Fprintln(w, "") fmt.Fprintln(w, " sf := t.AddStringFunc(\""+BRAND+"\", func(m *"+FRUIT+") string {") fmt.Fprintln(w, " return m."+BRAND+"") fmt.Fprintln(w, " })") @@ -324,13 +337,12 @@ func guiAddStringFunc(w io.Writer, FRUITS string, FRUIT string, BRAND string) { func guiAddIntFunc(w io.Writer, FRUITS string, FRUIT string, BRAND string) { fmt.Fprintln(w, "") fmt.Fprintln(w, "func (t *"+FRUITS+"Table) Add"+BRAND+"() {") - fmt.Fprintln(w, " // t.pb.Order = append(t.pb.Order, "+BRAND+")") - fmt.Fprintln(w, "") fmt.Fprintln(w, " t.AddIntFunc(\""+BRAND+"\", func(m *"+FRUIT+") int {") fmt.Fprintln(w, " return int(m."+BRAND+")") fmt.Fprintln(w, " })") fmt.Fprintln(w, "}") /* + // examples of what these look like fmt.Fprintln(w, "func (t *"+FRUITS+"Table) AddMemory() {") fmt.Fprintln(w, " t.pb.Order = append(t.pb.Order, \"Memory\")") fmt.Fprintln(w, "}") @@ -349,8 +361,7 @@ func guiUpdate(w io.Writer, FRUITS string, FRUIT string) { fmt.Fprintln(w, "") fmt.Fprintln(w, "// START TABLE UPDATE") - fmt.Fprintln(w, "func (mt *"+FRUITS+"Table) Update() {") - fmt.Fprintln(w, " // log.Info(\"now what?\")") + fmt.Fprintln(w, "func (mt *"+FRUITS+"Table) todoUpdate() {") fmt.Fprintln(w, " for _, name := range mt.pb.Order {") fmt.Fprintln(w, " // log.Info(\""+FRUIT+"pb: trying to update row()\", name)") fmt.Fprintln(w, " if mt.updateStringFunc(name) {") @@ -461,6 +472,18 @@ func guiTableCustom(w io.Writer, FRUITS string, fRUITS string, FRUIT string, fRU fmt.Fprintln(w, "") fmt.Fprintln(w, "func (mt *"+FRUITS+"Table) "+fRUITS+"Custom(w *guipb.Widget) {") fmt.Fprintln(w, " row := mt.x."+FRUITS+"[w.Location.Y-1]") + fmt.Fprintln(w, " // log.Info(\"got to "+fRUITS+"Custom() with\", w.Location.X, w.Location.Y-1)") + fmt.Fprintln(w, "") + fmt.Fprintln(w, " for _, sf := range mt.buttonFuncs {") + fmt.Fprintln(w, " if sf.order == int(w.Location.X) {") + fmt.Fprintln(w, " // log.Info(\"found order\", sf.order)") + fmt.Fprintln(w, " if sf.Custom != nil {") + fmt.Fprintln(w, " log.Info(\"doing Custom() func for button\")") + fmt.Fprintln(w, " sf.Custom(row)") + fmt.Fprintln(w, " return") + fmt.Fprintln(w, " }") + fmt.Fprintln(w, " }") + fmt.Fprintln(w, " }") fmt.Fprintln(w, " mt.CustomFunc(row)") fmt.Fprintln(w, "}") fmt.Fprintln(w, "")