// package frm_status -- статусная панель package frm_status import ( "time" tk "modernc.org/tk9.0" ) type FrmStatus struct { winMain *tk.Window lblLive *tk.LabelWidget strLive string } func NewFrmStatus() *FrmStatus { sf := &FrmStatus{ winMain: tk.App, } frmStatus := sf.winMain.Frame(tk.Border(1), tk.Relief(tk.SUNKEN)) tk.Pack(frmStatus, tk.Fill(tk.FILL_X), tk.Side(tk.BOTTOM)) fontLive := tk.Font("Courier") sf.lblLive = frmStatus.Label(tk.Txt(sf.strLive), tk.Relief(tk.RAISED), tk.Background(tk.Yellow), fontLive, ) tk.Pack(sf.lblLive, tk.Side(tk.LEFT)) lblSeparator0 := frmStatus.Label(tk.Txt(" ")) tk.Pack(lblSeparator0, tk.Side(tk.LEFT)) sf.strLive = "[|]" sf.liveUpdate() return sf } func (sf *FrmStatus) liveUpdate() { switch sf.strLive { case "[|]": sf.strLive = "[/]" case "[/]": sf.strLive = "[-]" case "[-]": sf.strLive = "[\\]" case "[\\]": sf.strLive = "[|]" } sf.lblLive.Configure(tk.Txt(sf.strLive)) tk.TclAfter(time.Millisecond*250, sf.liveUpdate) }