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