// package wui_text -- WUI текст. package wui_text import ( "strings" "sync" "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs" mWt "gitp78su.ipnodns.ru/svi/kern/v4/lev2/wui/wui_types" "gitp78su.ipnodns.ru/svi/kern/v4/lev2/wui/wui_widget" ) // WuiText -- текст для WUI. type WuiText struct { mWt.IWuiWidget sync.RWMutex val defs.ITxtFix } // NewWuiText -- возвращает новый текст WUI. func NewWuiText(val defs.ITxtFix) *WuiText { sf := &WuiText{ IWuiWidget: wui_widget.NewWuiWidget(), val: val, } _ = mWt.IWuiText(sf) return sf } const ( strBeg = `{.txt}` ) // Html -- возвращает HTML-представление текста. func (sf *WuiText) Html() defs.ITxtFix { sf.RLock() defer sf.RUnlock() strRes := strings.ReplaceAll(strBeg, "{.id}", sf.Id().String()) strRes = strings.ReplaceAll(strRes, "{.txt}", sf.val.String()) return defs.Txt(strRes) } // Set -- устанавливает хранимое значение. func (sf *WuiText) Set(val defs.ITxtFix) { sf.Lock() defer sf.Unlock() sf.val = val } // Caption -- возвращает хранимое значение. func (sf *WuiText) Caption() defs.ITxtFix { sf.RLock() defer sf.RUnlock() return sf.val }