From 0b5c7de337fa0721b0f53b39508fbc2306a6296b Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Tue, 28 Jan 2025 22:47:16 -0600 Subject: [PATCH] test code --- windowApply.go | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 windowApply.go 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() +}