gui.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. // package gui -- графический интерфейс для сервера бото-фермы
  2. package gui
  3. import (
  4. "fmt"
  5. "log"
  6. "fyne.io/fyne/v2"
  7. "fyne.io/fyne/v2/app"
  8. "wartank/pkg/types"
  9. "wartank/server/gui/win_main"
  10. )
  11. // Gui -- интерфейс к графике бото-фермы
  12. type Gui struct {
  13. serv types.ИСервер
  14. app fyne.App
  15. winMain *win_main.WinMain
  16. }
  17. // NewGui -- возвращает новый гуй для бото-фермы
  18. func NewGui(serv types.ИСервер) (*Gui, error) {
  19. if serv == nil {
  20. return nil, fmt.Errorf("NewGui(): IServer==nil")
  21. }
  22. sf := &Gui{
  23. serv: serv,
  24. app: app.New(),
  25. }
  26. return sf, nil
  27. }
  28. // Run -- запускает графику в работу
  29. func (sf *Gui) Run() {
  30. log.Printf("Gui.Run()\n")
  31. var err error
  32. sf.winMain, err = win_main.NewWinMain(sf.serv)
  33. if err != nil {
  34. log.Printf("Gui.Run(): in create winMain, err=\n\t%v\n", err)
  35. sf.serv.CancelApp()
  36. return
  37. }
  38. sf.winMain.Show()
  39. sf.app.Run()
  40. }
  41. // ФайнПрилож -- возвращает Fyne-приложение
  42. func (sf *Gui) ФайнПрилож() fyne.App {
  43. return sf.app
  44. }