Перейти к содержимому

Пользовательские элементы управления

Пользовательские элементы управления в плагине представляют собой глобальные переменные, которые конечный пользователь может изменять. Все они экспортируются из плагина через ControllableParameters(), возвращающую массив объектов настроек, как показано ниже.

export function ControllableParameters(){
return [
{"property":"LightingMode", "label":"Lighting Mode", "type":"combobox", "values":["Canvas","Forced"], "default":"Canvas"},
{"property":"forcedColor", "label":"Forced Color","min":"0","max":"360","type":"color","default":"#009bde"},
{"property":"SettingControl", "label":"Enable Setting Control","type":"boolean","default":"false"},
{"property":"dpi1", "label":"DPI","step":"50", "type":"number","min":"200", "max":"18000","default":"800"}
];
}

Объекты настроек всегда имеют несколько базовых параметров. Они действительны для всех пользовательских элементов управления плагина.

ПараметрЗначениеТип
propertyИмя переменной, которую вы хотите назначить элементу управления.String
labelМетка, отображаемая пользователю.String
typeТип элемента управления. В настоящее время допустимы следующие варианты: boolean, number, hue, color, combobox, textfieldString
defaultЗначение по умолчанию для элемента управления.Varies

Элемент управления number позволяет пользователю выбирать числовое значение с помощью слайдера.

{"property":"dpi1", "label":"DPI","step":"50", "type":"number","min":"200", "max":"18000","default":"800"},

Этот элемент управления поддерживает следующие атрибуты:

ПараметрЗначениеТип
propertyИмя переменной, которую вы хотите назначить элементу управления.String
labelМетка, отображаемая пользователю.String
type”number”String
defaultЗначение по умолчанию для элемента управления.String, Int
minМинимальное доступное значение слайдера. Этот атрибут поддерживает отрицательные значения.String, Int
maxМаксимальное доступное значение слайдера.String, Int
stepШаг, на который слайдер увеличивает и уменьшает значение.String, Int

Элемент управления boolean позволяет пользователю выбирать значение булевой переменной с помощью элемента-переключателя.

{"property":"AngleSnap", "label":"Angle Snapping", "type":"boolean", "default":"0"},

Этот элемент управления поддерживает следующие атрибуты:

ПараметрЗначениеТип
propertyИмя переменной, которую вы хотите назначить элементу управления.String
labelМетка, отображаемая пользователю.String
type”boolean”String
defaultЗначение переключателя по умолчанию. Установите 1, чтобы «включено» было состоянием по умолчанию.String, Int

Элемент управления hue позволяет пользователю выбирать компонент оттенка цвета с помощью слайдера.

Этот элемент управления поддерживает следующие атрибуты:

ПараметрЗначениеТип
propertyИмя переменной, которую вы хотите назначить элементу управления.String
labelМетка, отображаемая пользователю.String
type”hue”String, Int
defaultЗначение по умолчанию для слайдера оттенка.String
minМинимальное выбираемое значение оттенка. Значение должно быть от 0 до 359.String, Int
maxМаксимальное выбираемое значение оттенка. Значение должно быть от 1 до 360.String, Int

Элемент управления color позволяет пользователю выбирать цвет с помощью цветового колеса, слайдера насыщенности и слайдера яркости. Значок гаечного ключа открывает расширенную цветовую палитру для выбора.

{"property":"forcedColor", "label":"Forced Color","min":"0","max":"360","type":"color","default":"#009bde"},

Этот элемент управления поддерживает следующие атрибуты:

ПараметрЗначениеТип
propertyИмя переменной, которую вы хотите назначить элементу управления.String
labelМетка, отображаемая пользователю.String
type”color”String
defaultЗначение по умолчанию для выборщика цвета. Должно быть указано в шестнадцатеричном формате #RRGGBB.String
minМинимальное выбираемое значение оттенка. Значение должно быть от 0 до 359.Int
maxМаксимальное выбираемое значение оттенка. Значение должно быть от 1 до 360.Int

Элемент управления combobox позволяет пользователю выбирать из выпадающего меню с заранее заданными значениями.

{"property":"SleepModeTime", "label":"Sleep After x Minutes", "type":"combobox", "values":[5,10,15,30,60], "default":10},

Этот элемент управления поддерживает следующие атрибуты:

ПараметрЗначениеТип
propertyИмя переменной, которую вы хотите назначить элементу управления.String
labelМетка, отображаемая пользователю.String
type”combobox”String
defaultЗначение по умолчанию для выпадающего списка. Это значение должно быть в массиве values.String, Int
valuesМассив значений для выпадающего меню. Допустимые типы — строки и целые числа.[String, Int]

Элемент управления textfield позволяет пользователю свободно вводить текст с опциональным фильтром RegEx.

{"property":"textBox", "label":"Text Field", "type":"textfield", "default":"3"},

Этот элемент управления поддерживает следующие атрибуты:

ПараметрЗначениеТип
propertyИмя переменной, которую вы хотите назначить элементу управления.String
labelМетка, отображаемая пользователю.String
type”textfield”String
defaultЗначение по умолчанию для текстового поля.String, Int
filterОпциональный фильтр RegEx для ограничения пользовательского ввода.RegEx String

При каждом изменении пользователем элемента управления SignalRGB вызывает соответствующую функцию on[property]Changed() перед следующим вызовом Render(). Имя функции должно точно совпадать с именем свойства из ControllableParameters() с префиксом on и суффиксом Changed. Учитывается регистр.

// ControllableParameters entry:
{"property":"dpi1", "label":"DPI", "step":"50", "type":"number", "min":"200", "max":"18000", "default":"800"},
// Corresponding callback:
export function ondpi1Changed() {
setDpi(dpi1);
}

Эти обратные вызовы доступны без соответствующей записи в ControllableParameters:

ФункцияОписание
onBrightnessChanged()Вызывается, когда пользователь перемещает основной слайдер яркости устройства.