// package win_base -- базовое окно терминального клиента package win_base import ( "fmt" tea "github.com/charmbracelet/bubbletea" "wartank/pkg/alias" "wartank/pkg/types" ) // WinBase -- базовое окно терминального клиента type WinBase struct { desk types.IDesktop model tea.Model // Модель для обработки name alias.AWinName // Имя экрана } // NewWinBase -- возвращает новое базовое окно терминального клиента func NewWinBase(desk types.IDesktop, name alias.AWinName) (*WinBase, error) { if desk == nil { return nil, fmt.Errorf("NewWinBase(): IDesktop==nil") } if name == "" { return nil, fmt.Errorf("NewWinBase(): name is empty") } sf := &WinBase{ desk: desk, name: name, } _ = types.IWinBase(sf) return sf, nil } // Desk -- возвращает терминальный клиент func (sf *WinBase) Desk() types.IDesktop { return sf.desk } // Name -- возвращает собственное имя func (sf *WinBase) Name() alias.AWinName { return sf.name } func (sf *WinBase) Init() tea.Cmd { // Просто вернуть `nil`, т.е. никаких команд return nil }