// package gui -- графический интерфейс для сервера бото-фермы package gui import ( "fmt" "log" "fyne.io/fyne/v2" "fyne.io/fyne/v2/app" "wartank/pkg/types" "wartank/server/gui/win_main" ) // Gui -- интерфейс к графике бото-фермы type Gui struct { serv types.IServer app fyne.App winMain *win_main.WinMain } // NewGui -- возвращает новый гуй для бото-фермы func NewGui(serv types.IServer) (*Gui, error) { if serv == nil { return nil, fmt.Errorf("NewGui(): IServer==nil") } sf := &Gui{ serv: serv, app: app.New(), } return sf, nil } // Run -- запускает графику в работу func (sf *Gui) Run() { log.Printf("Gui.Run()\n") var err error sf.winMain, err = win_main.NewWinMain(sf.serv) if err != nil { log.Printf("Gui.Run(): in create winMain, err=\n\t%v\n", err) sf.serv.CancelApp() return } sf.winMain.Show() sf.app.Run() } // FyneApp -- возвращает Fyne-приложение func (sf *Gui) FyneApp() fyne.App { return sf.app }