Изменяет значения атрибутов у тега(ов) в ValuedText
Выбор изменяемого тега
Если isRTag == true, то тег ищется по имени подстановки. Именем подстановки обладают теги <r>, <rs>
Если isRTag == false, то тег ищется по имени тега. Если tagName является пустой строкой, то будут затронуты все теги
'''Тег ищется только в текущем ValuedText, но не во вложенных, корректная работа функции при использовании вложенных текстов не гарантирована'''
Таблица tagAttributes должна состоять из пар ключ - значение, где ключ это имя редактируемого атрибута (WString) а значение это его значение (string/WString) или признак того что атрибут необходимо удалить (булево значение false). Пары ключ-значение не соответствующие этим критериям считаются ошибочными и, при их наличии, функция выбросит исключение.
Тег не проверяется на существование, если искомый тег не будет найден, то функция не возымеет эффекта (без вывода ошибок)
Имена атрибутов не проверяются на существование, задание несуществующего (не имеющего поддержки в коде) атрибута вызовет внутреннюю ошибку ValuedText. В пользовательских дополнениях ее отображение не представляется возможным. Все допустимые атрибуты смотри ниже.
Рассмотрим пример
<h1 class="hightlight" fontsize="15">Test text</h1>
Порядок применения стилей в рамках одного тега
Сначала будет применен внутренний класс - highlight
Затем внешний класс - h1 (с перезаписью значений)
И затем - атрибуты внешнего класса - в данном примере fontsize
Атрибуты вложенных тегов имеют приоритет над атрибутами внешних тегов.
'''Изменение атрибутов тегов напрямую НЕ рекомендуется. По возможности следует использовать стили и подстановку через SetClassVal / SetTextValues'''
-- класс
ValuedText
-- семантика
function SetTagAttributes( self, isRTag, tagName, tagAttributes )
-- параметры
self - ValuedText - экземпляр ValuedText
isRTag - bool - выбор типа тега для редактирования
tagName - WString - имя тега для редактирования
tagAttributes - table - hash_map< WString, false/string/WString > - таблица модифицируемых атрибутов
-- возвращаемые значения:
нет
-- пример:
--- <header><r name="unitName"/></header>
local tag = ToWs( "unitName" )
local fontsize = ToWs( "fontsize" )
local color = ToWs( "color" )
vt:SetTagAttributes( true, tag, {
[ fontsize ] = tostring( 18 ),
[ color ] = "0xFFEEDDCC"
} )
Список всех существующих атрибутов и их допустимые значения (помните, при использовании данной API значения должны задаваться в виде string/WString!)
fontname: "AllodsFantasy", "AllodsSystem", "AllodsConsole", "Content", --- Шрифт
"ContentNarrow", "ContentNarrowBold", "ContentNarrowItalic",
"ContentNarrowBoldItalic",
fontsize: (int >0) --- Размер шрифта
alignX: (0), "left"(1), "center"(2), "right"(3), "justify"(4) --- Тип выравнивания по X
alignY: "top"(0), "middle"(1), "bottom"(2) --- Тип выравнивания по Y
color: (int), (hexint) --- Цвет
shadow: (int 0-10) --- Тень
shadowcolor: (int), (hexint) --- Цвет тени
outline: (int 0-2) --- Обводка
outlinecolor: (int), (hexint) --- Цвет обводки
paragraph: "false"(0), "true"(1) --- Начать текст с нового абзаца
lineSpasing: (float) --- Межстрочный интервал
before: (int >=0) --- Отступ первой строки абзаца
rightToLeft: (0), (1) --- Написание справа налево (DEPRECATED)