// package win_add_bot -- добавляет бота package win_add_bot import ( "log" "gitp78su.ipnodns.ru/svi/kern" . "gitp78su.ipnodns.ru/svi/kern/krn/ktypes" tk "modernc.org/tk9.0" . "wartank/app/lev0/types" ) type WinAddBot struct { ctx IKernelCtx winMain *tk.Window entryName *tk.TEntryWidget entryPass *tk.TEntryWidget chBot chan ИБот } func NewWinAddBot(chBot chan ИБот) *WinAddBot { sf := &WinAddBot{ winMain: tk.App, ctx: kern.GetKernelCtx(), chBot: chBot, } winBotAdd := sf.winMain.Toplevel() winBotAdd.WmTitle("Добавить бота") tk.WmGeometry(winBotAdd.Window, "480x320") frmName := winBotAdd.Frame() tk.Pack(frmName, tk.Fill(tk.FILL_X), tk.Side(tk.TOP)) lblName := frmName.Label(tk.Txt("Имя бота")) tk.Pack(lblName, tk.Side(tk.LEFT)) varName := tk.Textvariable("name?") sf.entryName = frmName.TEntry(varName) tk.Pack(sf.entryName, tk.Fill(tk.FILL_X)) frmPass := winBotAdd.Frame() tk.Pack(frmPass, tk.Fill(tk.FILL_X), tk.Side(tk.TOP)) varPass := tk.Textvariable("login?") sf.entryPass = frmName.TEntry(varPass) tk.Pack(sf.entryPass, tk.Fill(tk.FILL_X)) frmBtn := winBotAdd.Frame() tk.Pack(frmBtn, tk.Side(tk.BOTTOM), tk.Fill(tk.FILL_X)) btnSave := frmBtn.Button(tk.Txt("Сохранить"), tk.Command(sf.clickSave)) tk.Pack(btnSave, tk.Side(tk.RIGHT)) return sf } func (sf *WinAddBot) clickSave() { txtLogin := sf.entryName.Textvariable() txtPass := sf.entryPass.Textvariable() log.Printf("entry=%v\tlogin=%v\n", txtLogin, txtPass) ботоФерма := sf.ctx.Get("ботоФерма").Val().(ИБотоФерма) res := ботоФерма.НовБот(txtLogin, txtPass, true) if res.IsErr() { log.Fatalf("Desktop.botAdd(): login=%v, err\n\t%v", txtLogin, res.Error()) } lstBot := ботоФерма.ListBot() for _, bot := range lstBot { if txtLogin == bot.Имя() { sf.chBot <- bot return } } }