62 lines
822 B
Go
62 lines
822 B
Go
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()
|
|
}
|