diff options
| author | Jeff Carr <[email protected]> | 2025-01-28 22:47:16 -0600 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2025-01-29 12:28:36 -0600 |
| commit | 0b5c7de337fa0721b0f53b39508fbc2306a6296b (patch) | |
| tree | 72280387a8f2cf32a13334c6f5afa09ca077c176 | |
| parent | fb372aad6f0cca032c1ed7577cd7747b4daca7fb (diff) | |
| -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() +} |
