// package gui -- графический интерфейс для сервера бото-фермы
package gui

import (
	"fmt"
	"log"

	"fyne.io/fyne/v2"
	"fyne.io/fyne/v2/app"

	"wartank/pkg/types"
)

// Gui -- интерфейс к графике бото-фермы
type Gui struct {
	serv types.IServer
	app  fyne.App
}

// 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")
	sf.app.Run()
}
