1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- // package serv_gui -- десктопная графика для сервера
- package serv_gui
- import (
- "fmt"
- "github.com/AllenDang/giu"
- "wartank/pkg/types"
- )
- // ServGui -- десктопная графика для сервера
- type ServGui struct {
- serv types.IServer
- wnd *giu.MasterWindow
- }
- // NewServGui -- возвращает новую графику для сервера
- func NewServGui(serv types.IServer) (*ServGui, error) {
- if serv == nil {
- return nil, fmt.Errorf("NewServGui(): IServer==nil")
- }
- sf := &ServGui{
- serv: serv,
- wnd: giu.NewMasterWindow("Hello world", 400, 200, 0),
- }
- return sf, nil
- }
- // Run -- запускает работу графики сервера
- func (sf *ServGui) Run() {
- sf.wnd.Run(sf.loop)
- }
- func (sf *ServGui) onClickMe() {
- fmt.Println("War-tank end work!")
- sf.serv.CancelApp()
- sf.wnd.Close()
- }
- func onImSoCute() {
- fmt.Println("click btn!!")
- }
- func (sf *ServGui) loop() {
- giu.SingleWindow().Layout(
- giu.Row(
- giu.Align(giu.AlignCenter).To(
- giu.Style().SetFontSize(20).To(
- giu.Label("[ WarTank ]"),
- ),
- ),
- ),
- giu.Row(
- giu.Column(
- giu.Button("Выход").OnClick(sf.onClickMe),
- giu.Button("Click me").OnClick(onImSoCute),
- ),
- giu.Column(
- giu.Button("Выход").OnClick(sf.onClickMe),
- giu.Spacing(),
- giu.Button("Click me").OnClick(onImSoCute),
- ),
- ),
- giu.Row(
- giu.Column(
- giu.Button("Выход").OnClick(sf.onClickMe),
- giu.Button("Click me").OnClick(onImSoCute),
- ),
- giu.Column(
- giu.Button("Выход").OnClick(sf.onClickMe),
- giu.Spacing(),
- giu.Button("Click me").OnClick(onImSoCute),
- ),
- ),
- )
- }
|