// 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 }