// 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/forgepb" "go.wit.com/log" ) type stdPatchTableWin struct { sync.Mutex win *gadgets.GenericWindow // the machines gui window box *gui.Node // the machines gui parent box widget TB *forgepb.PatchesTable // the gui table buffer update bool // if the window should be updated } func (w *stdPatchTableWin) Toggle() { if w == nil { return } if w.win == nil { return } w.win.Toggle() } func makePatchesWin() *stdPatchTableWin { dwin := new(stdPatchTableWin) dwin.win = gadgets.NewGenericWindow("forge current patchsets", "who is squirreling around?") dwin.win.Custom = func() { log.Info("test delete window here") } grid := dwin.win.Group.RawGrid() grid.NewButton("reload", func() { }) // make a box at the bottom of the window for the protobuf table dwin.box = dwin.win.Bottom.Box().SetProgName("TBOX") return dwin } func (dwin *stdPatchTableWin) doPatchesTable(currentPatches *forgepb.Patches) { dwin.Lock() defer dwin.Unlock() if dwin.TB != nil { dwin.TB.Delete() dwin.TB = nil } } // define what rows to have in the protobuf table func AddPatchesPB(tbox *gui.Node, pb *forgepb.Patches) *forgepb.PatchesTable { t := pb.NewTable("PatchesPB") t.NewUuid() t.SetParent(tbox) t.AddRepoNamespace() t.AddFilename() t.AddCommitHash() t.ShowTable() return t }