跳到內容

使用者控制項

外掛程式中的使用者控制項採用可由終端使用者修改的全域變數形式。它們都透過 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]

文字欄位控制項允許使用者自由輸入文字,帶有可選的 RegEx 篩選器。

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

此控制項支援以下屬性:

參數類型
property您希望分配給控制項的變數名稱。String
label顯示給使用者的標籤。String
type”textfield”String
default文字欄位的預設值。String、Int
filter可選的 RegEx 篩選器以限制使用者輸入RegEx 字串

每當使用者更改控制項時,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()當使用者移動裝置主要亮度滑桿時呼叫。