Кнопка - это виджет типа WidgetButton, наследованный от базового типа Widget. Предназначен для создания специальных виджетов, способных взаимодействовать с мышью. Их можно нажимать/отжимать/наводиться на них и в зависимости от этого состояния кнопка будет отображаться по разному. Также кнопка может иметь несколько вариантов, каждый из которых может находится в разных состояниях.
Например. у нас есть чекбокс. Он может быть пустым и может быть с установленной галкой. Это два разных варианта отображения кнопки. Но и в том и в другом варианте чекбокс должен по разному отображаться в обычном состоянии, при наведении мыши, при нажатии и удержании мыши. Это состояния. Соответственно, художник может нарисовать текстуры для всех комбинаций вариантов и состояний кнопки. Если кнопка обычная, то она может иметь один вариант.
Вариант кнопки - основной элемент. В нём описаны текстурные слои и реакции.
TextTag: string - название текстового тэга в строке форматирования текущего варианта, в который будет подставляться текст из выбранного варианта при вызове ButtonSafe:SetVariant( self, variant )
Variants: table of WidgetButtonVariant - список вариантов кнопки, между которыми она может переключаться
TextStyle : WidgetTextStyle - текстовый стиль кнопки
useDefaultSounds: boolean - использовать звук клика по умолчанию. По умолчанию true
pushingBindSections: table of BindSection - реакции, которые кнопка будет переводить в нажатия для текущего варианта (независимо от bindedReactions). См. Widget