跳转到内容

用户控件

插件中的用户控件以可由最终用户修改的全局变量形式存在。它们都通过 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控件的默认值。不定

数值控件允许用户使用滑块选择数字的值。

{"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

布尔控件允许用户使用切换控件选择布尔变量的值。

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

此控件支持以下属性:

参数类型
property您希望分配给控件的变量名称。String
label向用户显示的标签。String
type”boolean”String
default切换开关的默认值。设置为 1 使”开”成为默认状态。String, Int

色调选择器控件允许用户使用滑块控件选择颜色的色调分量。

此控件支持以下属性:

参数类型
property您希望分配给控件的变量名称。String
label向用户显示的标签。String
type”hue”String, Int
default色调滑块的默认值。String
min最小可选色调值。此值必须在 0 到 359 之间。String, Int
max最大可选色调值。此值必须在 1 到 360 之间。String, Int

颜色控件允许用户使用色调轮、饱和度滑块和亮度滑块选择颜色。扳手图标将打开更高级的颜色调色板供选择。

{"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

下拉列表控件允许用户从预设值的下拉菜单中选择。

{"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]

文本输入框控件允许用户使用可选的正则表达式过滤器自由输入文本。

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

此控件支持以下属性:

参数类型
property您希望分配给控件的变量名称。String
label向用户显示的标签。String
type”textfield”String
default文本输入框的默认值。String, Int
filter可选的正则表达式过滤器以限制用户输入RegEx String

每当用户更改控件时,SignalRGB 会在下一次 Render() 调用之前调用相应的 on[property]Changed() 函数。函数名称必须与 ControllableParameters() 中的属性名称完全匹配,前缀为 on,后缀为 Changed。这区分大小写。

// ControllableParameters 条目:
{"property":"dpi1", "label":"DPI", "step":"50", "type":"number", "min":"200", "max":"18000", "default":"800"},
// 对应的回调:
export function ondpi1Changed() {
setDpi(dpi1);
}

这些回调无需对应的 ControllableParameters 条目即可使用:

函数描述
onBrightnessChanged()当用户移动设备的主亮度滑块时调用。