diff options
Diffstat (limited to 'windowHypervisors.go')
| -rw-r--r-- | windowHypervisors.go | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/windowHypervisors.go b/windowHypervisors.go new file mode 100644 index 0000000..4db757b --- /dev/null +++ b/windowHypervisors.go @@ -0,0 +1,77 @@ +// Copyright 2017-2025 WIT.COM Inc. All rights reserved. +// Use of this source code is governed by the GPL 3.0 + +package main + +import ( + "sync" + + "go.wit.com/gui" + "go.wit.com/lib/gadgets" + "go.wit.com/lib/protobuf/virtpb" + "go.wit.com/log" +) + +type stdHypervisorTableWin struct { + sync.Mutex + win *gadgets.GenericWindow // the machines gui window + box *gui.Node // the machines gui parent box widget + pb *virtpb.Hypervisors // the protobuf + TB *virtpb.HypervisorsTable // the gui table buffer + update bool // if the window should be updated +} + +func (w *stdHypervisorTableWin) Toggle() { + if w == nil { + return + } + if w.win == nil { + return + } + w.win.Toggle() +} + +func newHypervisorsWindow() *stdHypervisorTableWin { + dwin := new(stdHypervisorTableWin) + dwin.win = gadgets.NewGenericWindow("virtigo current hypervisors", "things to do") + dwin.win.Custom = func() { + log.Info("test delete window here") + } + + // make a box at the bottom of the window for the protobuf table + dwin.box = dwin.win.Bottom.Box().SetProgName("TBOX") + return dwin +} + +// default table protobuf window +func (dw *stdHypervisorTableWin) doStdHypervisors(pb *virtpb.Hypervisors) { + dw.Lock() + defer dw.Unlock() + + // erase the old table + if dw.TB != nil { + dw.TB.Delete() + dw.TB = nil + } + + // init the table + dw.pb = pb + t := dw.pb.NewTable("HypervisorsPB Off") + t.NewUuid() + t.SetParent(dw.box) + + // pick the columns + t.AddHostname() + t.AddMemory() + t.AddCpus() + + // display the protobuf + dw.TB = t + f := func(e *virtpb.Hypervisor) { + log.Info("std HypervisorWindow() something here", e.Hostname) + // m.Enabled = true + } + dw.TB.Custom(f) + + dw.TB.ShowTable() +} |
