diff options
Diffstat (limited to 'windowApply.go')
| -rw-r--r-- | windowApply.go | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/windowApply.go b/windowApply.go new file mode 100644 index 0000000..11bb4fa --- /dev/null +++ b/windowApply.go @@ -0,0 +1,61 @@ +package main + +import ( + "sync" + + "go.wit.com/lib/gadgets" + "go.wit.com/log" + + "go.wit.com/gui" +) + +// Shout out to "Go Generics 101" by Tapir Liu. Buy this book! + +type Lockable[T any] struct { + mu sync.Mutex + data T +} + +func (l *Lockable[T]) Do(f func(*T)) { +} + +func (l *Lockable[T]) Hide() { + log.Info("testing:", l) +} + +type applyWindow struct { + win *gadgets.BasicWindow + box *gui.Node + + // the top box of the repolist window + topbox *gui.Node +} + +type C3 = interface { + Show() + Hide() + Hidden() bool + Enable() + Disable() + ~*gadgets.BasicWindow | ~*gui.Node +} + +func (r applyWindow) Hidden() bool { + return r.win.Hidden() +} + +func (r applyWindow) Show() { + r.win.Show() +} + +func (r applyWindow) Hide() { + r.win.Hide() +} + +func (r applyWindow) Disable() { + r.box.Disable() +} + +func (r applyWindow) Enable() { + r.box.Enable() +} |
