| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- // 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
- }
|