93 lines
1.5 KiB
Go
93 lines
1.5 KiB
Go
|
// Copyright 2017-2025 WIT.COM Inc. All rights reserved.
|
||
|
// Use of this source code is governed by the GPL 3.0
|
||
|
|
||
|
package main
|
||
|
|
||
|
import (
|
||
|
"go.wit.com/lib/gadgets"
|
||
|
"go.wit.com/log"
|
||
|
|
||
|
"go.wit.com/gui"
|
||
|
)
|
||
|
|
||
|
type genericWindow struct {
|
||
|
win *gadgets.BasicWindow // the window widget itself
|
||
|
box *gui.Node // the top box of the repolist window
|
||
|
group *gui.Node // the default group
|
||
|
}
|
||
|
|
||
|
func (r *genericWindow) Hidden() bool {
|
||
|
if r == nil {
|
||
|
return true
|
||
|
}
|
||
|
if r.win == nil {
|
||
|
return true
|
||
|
}
|
||
|
return r.win.Hidden()
|
||
|
}
|
||
|
|
||
|
func (r *genericWindow) Toggle() {
|
||
|
if r.Hidden() {
|
||
|
r.Show()
|
||
|
} else {
|
||
|
r.Hide()
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func (r *genericWindow) Show() {
|
||
|
if r == nil {
|
||
|
return
|
||
|
}
|
||
|
if r.win == nil {
|
||
|
return
|
||
|
}
|
||
|
r.win.Show()
|
||
|
}
|
||
|
|
||
|
func (r *genericWindow) Hide() {
|
||
|
if r == nil {
|
||
|
return
|
||
|
}
|
||
|
if r.win == nil {
|
||
|
return
|
||
|
}
|
||
|
r.win.Hide()
|
||
|
}
|
||
|
|
||
|
func (r *genericWindow) Disable() {
|
||
|
if r == nil {
|
||
|
return
|
||
|
}
|
||
|
if r.box == nil {
|
||
|
return
|
||
|
}
|
||
|
r.box.Disable()
|
||
|
}
|
||
|
|
||
|
func (r *genericWindow) Enable() {
|
||
|
if r == nil {
|
||
|
return
|
||
|
}
|
||
|
if r.box == nil {
|
||
|
return
|
||
|
}
|
||
|
r.box.Enable()
|
||
|
}
|
||
|
|
||
|
func initGenericWindow(title string, grouptxt string) *genericWindow {
|
||
|
gw := new(genericWindow)
|
||
|
gw.win = gadgets.RawBasicWindow(title)
|
||
|
gw.win.Make()
|
||
|
|
||
|
gw.box = gw.win.Box().Vertical() // a vertical box (like a stack of books)
|
||
|
gw.win.Custom = func() {
|
||
|
log.Warn("Found Window close. setting hidden=true")
|
||
|
// sets the hidden flag to false so Toggle() works
|
||
|
gw.win.Hide()
|
||
|
}
|
||
|
gw.group = gw.box.NewGroup(grouptxt)
|
||
|
gw.Show()
|
||
|
|
||
|
return gw
|
||
|
}
|