win_main.go 726 B

1234567891011121314151617181920212223242526272829303132333435
  1. // package win_main -- главное окно приложения
  2. package win_main
  3. import (
  4. "github.com/visualfc/atk/tk"
  5. )
  6. type WinMain struct {
  7. *tk.Window
  8. }
  9. // NewWinmain -- возвращает новое главное окно
  10. func NewWinMain() *WinMain {
  11. sf := &WinMain{
  12. Window: tk.RootWindow(),
  13. }
  14. lbl := tk.NewLabel(sf, "Hello ATK")
  15. btn := tk.NewButton(sf, "Quit")
  16. btn.OnCommand(func() {
  17. tk.Quit()
  18. })
  19. tk.NewVPackLayout(sf).AddWidgets(lbl, tk.NewLayoutSpacer(sf, 0, true), btn)
  20. sf.ResizeN(300, 200)
  21. return sf
  22. }
  23. // Запускает графику в работу
  24. func (sf *WinMain) Run() {
  25. fnMake := func() {
  26. sf.SetTitle("ATK Sample")
  27. sf.Center(nil)
  28. sf.ShowNormal()
  29. }
  30. tk.MainLoop(fnMake)
  31. }