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

На главную


Widget. Описание виджета.

Виджет

Виджет - это один минимальный элемент интерфейса (панель, кнопка, текстовый элемент, поле ввода и т.п.). Есть несколько типов виджетов (описаны ниже), но их реализация всегда наследована от базового класса Widget, описанного на этой странице. Объекты базового класса Widget создавать нельзя.

Система виджетов - это система, занимающаяся визуализацией интерфейса и обработкой пользовательского ввода. Каждый виджет может быть представлен его ресурсом в ресурсной системе (файл xdb) и реальным экземпляром (с полями, методами и реакциями) во время работы программы.

Типы виджетов

Существует несколько типов виджетов и соответствующих типов ресурсов:

Простые виджеты:

Контейнеры:

Специальные виджеты:

Все эти типы ресурсов наследуют, то есть содержат поля базового класса Widget. То есть, например, поле BackLayer есть и в WidgetPanel и в WidgetTextView. Также все типы виджетов могут посылать перечисленные ниже реакции.

Можно создавать только виджеты конкретных реализаций, перечисленные выше. То есть нельзя создать виджет типа Widget, WidgetContainer, WidgetScrollBar, WidgetSlider.

Поля Widget

ВАЖНО! Названия полей чувствительны к регистру букв.

Существующие поля в базовом классе Widget:

Базовые поля:

Расположение

Дочерние виджеты:

Отображение:

Отслеживание и ограничение реакций:

Специальные поля:

Реакции Widget

Для виджета можно объявить реакции, а потом подписать на них обработчики в скрипте аддона.

Для этого надо объявить реакцию (её имя) в файле ресурса виджета и подписаться на её обработчик (функцию Lua) в скрипте аддона, используя common.RegisterReactionHandler( reactionFunction, sysReactionName ).

В этом случае при возникновении события, инициирующего реакцию, в срипте будет вызван подписанный обработчик с параметрами params. См. OnReaction<ReactionName>( params ).

Реакции могут быть мышиные (нажатие, наведение и т.п.) и клавиатурные.

Клавиатурные реакции Widget

Клавиатурные реакции могут быть реализованы только для клавиш забаинденых в файле input.cfg. Для пользовательских аддонов клавиатурные реакции не предусмотренны. клавиатурные реакции объявляются только в WidgetForm и WidgetButton.

Мышиные реакции Widget

Чтобы обработать мышиное событие с помощью виджета, нужно объявить реакцию в соответствующем поле ресурса, а потом подписаться на реакцию в скрипте аддона с помощью common.RegisterReactionHandler( reactionFunction, sysReactionName ).

Возможные реакции для базового класса Widget:

Имеются методы (см. CategoryAllowedInReactions), которые можно использовать в пользовательских аддонах только в обработчиках мышиных кликов.

Пример

Некий виджет "MyWidget.(WidgetPanel).xdb":


При прокручивании колеса мыши над этим виджетом в скрипт аддона будут присылаться реакции "wheel_up" и "wheel_down", даже если курсор мыши будет в данный момент находиться над кликабельным дочерним виджетом "Slider.(WidgetButton).xdb".

Связанные страницы: "CategoryLuaApi" "CategoryWidgetMembers"

CategoryWidgetMembers
TextFileRef
Widget
WidgetButton
WidgetButtonState
WidgetButtonVariant
WidgetContainer
WidgetDiscreteScrollBar
WidgetDiscreteSlider
WidgetEditBase
WidgetEditBox
WidgetEditLine
WidgetForm
WidgetGlideScrollBar
WidgetGlideSlider
WidgetLayer
WidgetPanel
WidgetPlacementLua
WidgetPlacementXY
WidgetsArrangement
WidgetScrollableContainer
WidgetScrollBar
WidgetSlider
WidgetTextContainer
WidgetTextStyle
WidgetTextView

Связанные страницы: "CategoryLuaApi" "CategoryWidget"

CategoryButton
CategoryControl3D
CategoryDiscreteSlider
CategoryEditBase
CategoryEditBox
CategoryEditLine
CategoryForm
CategoryPanel
CategoryScrollableContainer
CategorySimpleTable
CategoryTextContainer
CategoryTextView
CategoryWidget
CategoryWidgetEffects
EnumAFCT
EnumAlignX
EnumAlignY
EnumColorType
EnumKeyboardFlags
EnumMouseButton
EventEffectFinished
EventEffectSequenceFinished
EventEffectSequenceStep
EventUpdateShrinkRatio
EventValuedObjectClicked
EventValuedObjectDoubleClicked
EventValuedObjectMouseOver
EventWidgetShowChanged
FunctionFormCreateWidgetByDesc
FunctionTextContainerInsertText
FunctionTextContainerPushBackRawText
FunctionTextContainerPushBackValuedText
FunctionTextContainerPushFrontRawText
FunctionTextContainerPushFrontValuedText
FunctionTextViewFinishTextScaleEffect
FunctionTextViewPlayTextScaleEffect
FunctionTextViewPlayTextScaleEffectSequence
FunctionWidgetAddChild
FunctionWidgetDestroyWidget
FunctionWidgetEnable
FunctionWidgetFinishAllEffects
FunctionWidgetFinishFadeEffect
FunctionWidgetFinishMoveEffect
FunctionWidgetFinishResizeEffect
FunctionWidgetFinishRotationEffect
FunctionWidgetGetAddonName
FunctionWidgetGetAddonType
FunctionWidgetGetBackgroundColor
FunctionWidgetGetChildChecked
FunctionWidgetGetChildUnchecked
FunctionWidgetGetFade
FunctionWidgetGetForegroundColor
FunctionWidgetGetName
FunctionWidgetGetNamedChildren
FunctionWidgetGetParent
FunctionWidgetGetPlacementPlain
FunctionWidgetGetPriority
FunctionWidgetGetRealRect
FunctionWidgetGetRotation
FunctionWidgetGetSmartPlacementPlain
FunctionWidgetGetTabOrder
FunctionWidgetGetTransparentInput
FunctionWidgetGetWidgetDesc
FunctionWidgetHasActiveEffects
FunctionWidgetIsClipContent
FunctionWidgetIsEnabled
FunctionWidgetIsFocused
FunctionWidgetIsValid
FunctionWidgetIsVisible
FunctionWidgetIsVisibleEx
FunctionWidgetPlayBackground
FunctionWidgetPlayEffectSequencePack
FunctionWidgetPlayFadeEffect
FunctionWidgetPlayFadeEffectSequence
FunctionWidgetPlayMoveEffect
FunctionWidgetPlayMoveEffectSequence
FunctionWidgetPlayResizeEffect
FunctionWidgetPlayResizeEffectSequence
FunctionWidgetPlayRotationEffect
FunctionWidgetPlayRotationEffectSequence
FunctionWidgetPlayRotationWithChildrenEffect
FunctionWidgetPlayRotationWithChildrenEffectSequence
FunctionWidgetRotate
FunctionWidgetRotateWithChildren
FunctionWidgetSetBackgroundBlendEffect
FunctionWidgetSetBackgroundClearMaskEffect
FunctionWidgetSetBackgroundColor
FunctionWidgetSetBackgroundTexture
FunctionWidgetSetClipContent
FunctionWidgetSetFade
FunctionWidgetSetFocus
FunctionWidgetSetForegroundBlendEffect
FunctionWidgetSetForegroundClearMaskEffect
FunctionWidgetSetForegroundColor
FunctionWidgetSetForegroundTexture
FunctionWidgetSetName
FunctionWidgetSetOnShowNotification
FunctionWidgetSetPlacementPlain
FunctionWidgetSetPriority
FunctionWidgetSetSmartPlacementPlain
FunctionWidgetSetTabOrder
FunctionWidgetSetTransparentInput
FunctionWidgetShow
TypeWidgetDesc
Widget
WidgetControlDescription
WidgetsEffectsAlgorithms
WidgetsEffectsFinishEffectTemplate
WidgetsEffectsPlayEffectSequenceTemplate
WidgetsEffectsPlayEffectTemplate
WidgetsEffectsTypes


CategoryLuaApi CategoryWidget CategoryWidgetMembers

На главную