diff options
Diffstat (limited to 'windowPatches.go')
| -rw-r--r-- | windowPatches.go | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/windowPatches.go b/windowPatches.go new file mode 100644 index 0000000..cab0323 --- /dev/null +++ b/windowPatches.go @@ -0,0 +1,94 @@ +package main + +import ( + "sync" + + "go.wit.com/lib/gadgets" + "go.wit.com/log" + + "go.wit.com/gui" +) + +type patchesWindow struct { + once sync.Once + win *gadgets.BasicWindow + stack *gui.Node + + // the top box of the repolist window + shelf *gui.Node + + summary *patchSummary +} + +func (r *patchesWindow) Hidden() bool { + return r.win.Hidden() +} + +func (r *patchesWindow) Toggle() { + if r.Hidden() { + r.Show() + } else { + r.Hide() + } +} + +func (r *patchesWindow) Show() { + r.win.Show() +} + +func (r *patchesWindow) Hide() { + r.win.Hide() +} + +func (r *patchesWindow) Disable() { + r.stack.Disable() +} + +func (r *patchesWindow) Enable() { + r.stack.Enable() +} + +// you can only have one of these +func (r *patchesWindow) initWindow() { + // sync.Once() + r.win = gadgets.RawBasicWindow("Forge Patchesets") + r.win.Make() + + r.stack = r.win.Box().NewBox("bw vbox", false) + // me.reposwin.Draw() + r.win.Custom = func() { + log.Warn("Patchset Window close. setting hidden=true") + // sets the hidden flag to false so Toggle() works + r.win.Hide() + } + + r.shelf = r.initGroup() + r.summary = submitPatchesBox(r.stack) +} + +func (r *patchesWindow) initGroup() *gui.Node { + // reposbox.SetExpand(false) + group1 := r.stack.NewGroup("stuff") + + vbox := group1.Box() + // hbox.Horizontal() + vbox.Vertical() + + hbox := vbox.Box().Horizontal() + /* + */ + + dirty := hbox.NewCheckbox("dirty") + dirty.Custom = func() { + log.Info("filter dirty =", dirty.Checked()) + } + + hbox.NewButton("update patch summary", func() { + r.summary.Update() + }) + hbox.NewButton("test add", func() { + me.patchWin.initGroup() + }) + + return vbox +} |
