# Пользовательские дополнения

На главную

## ValuedText - форматированная строка с подстановочными значениями

Форматированный текст представляет собой

- форматную строку с тэгами подстановки. Это WString, содержащий правильно форматированную строку XHTML, возможно, с CSS-тэгами и с тэгами подстановки значений:

- подстановка текстовых значений <r name="..."/>

- подстановка CSS-класса <rs class="...">...</rs>

- и какие-либо подстановочные значения, подставляемый в тэги <r/> и </rs>

Поддерживаются:

- базовые тэги

- <default/>

- <span/>

- <p/>

- CSS-тэги.

Полный список см. в common.GetCSSList()

В скриптах ValuedText - это специальный вариант userdata.

## Создание

ValuedText создаётся с помощью common.CreateValuedText(), а форматирующая строка задаётся, используя метод созданного объекта SetFormat( self, format ).

Замечание. Lua работает с userdata по ссылке, а не по значению. Поэтому, в частности, для создания отдельной копии ValuedText нужно пользоваться специальной функцией (CreateCopy).

## Подстановка значений

Подставляются новые значения с помощью интерфейсного метода SetVal( self, key, value ).

Для подстановки используются только тэги <r/> и <rs>...</rs>.

В качестве подстановочных значений для тэга <r/> можно использовать WString, объекты ValuedText или ValuedObject.

В тэг <rs>...</rs> можно подставлять только имеющиеся CSS-классы (их названия типа string).

Поиск тэга подстановки производится по значению аттрибута "name" для тэга <r/> или значению аттрибута "class" тэга <rs>...</rs>. Эти тэги не должны содержать нетребующихся для форматирования аттрибутов. Если необходимый тэг <r/> не найден, то подстановочное значение сохраняется и потом будет подставлено, если у ValuedText появится такой подстановочный тэг после установки каких-либо других подстановочных значений.

## Например

Форматирующий текст, являющийся related-текстом аддона "FormatText":

    <html> <header> text1 </header> <rs class="class01"> text2 <r name="value01"/> </rs> </html>

Скрипт:

    local valuedText = common.CreateValuedText()
    valuedText:SetFormat( common.GetAddonRelatedText( "FormatText" ) )
    valuedText:SetVal( "value01", common.FormatInt( 2, "%d" ) )
    valuedText:SetVal( "class01", "header" )

## BlurpSearch: CategoryLuaApi CategoryValuedText

CategoryValuedText
EventValuedObjectClicked
EventValuedObjectDoubleClicked
EventValuedObjectMouseOver
FunctionAvatarGetAbilityValuedObject
FunctionAvatarGetBuffValuedObject
FunctionCommonCreateValuedObject
FunctionCommonCreateValuedText
FunctionCommonExtractWStringFromValuedText
FunctionCommonFormatFloat
FunctionCommonFormatInt
FunctionCommonGetApiType
FunctionCommonIsEmptyValuedObject
FunctionCommonIsValuedObject
FunctionCommonIsValuedText
FunctionCommonSetTextValues
FunctionItemLibGetValuedObject
FunctionMountGetValuedObject
FunctionSpellLibGetValuedObject
FunctionTextViewSetValuedText
FunctionUnitGetPlayerValuedObject
FunctionUnitGetUnitValuedObject
FunctionValuedObjectGetId
FunctionValuedObjectGetImage
FunctionValuedObjectGetText
FunctionValuedObjectGetType
FunctionValuedTextClearValues
FunctionValuedTextCreateCopy
FunctionValuedTextSetClassVal
FunctionValuedTextSetFormat
FunctionValuedTextSetPlainText
FunctionValuedTextSetVal
TypeValuedObject
TypeValuedText

CategoryLuaApi CategoryTypes CategoryValuedText

На главную