Điều khiển người dùng
Các điều khiển người dùng trong plugin có dạng biến toàn cục mà người dùng cuối có thể thay đổi. Tất cả đều được xuất từ plugin thông qua ControllableParameters(), trả về một mảng các đối tượng cài đặt, như được hiển thị bên dưới.
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"} ];}Các đối tượng cài đặt này luôn có một số tham số cơ bản. Những tham số này áp dụng cho tất cả các điều khiển người dùng plugin.
| Tham số | Giá trị | Kiểu |
|---|---|---|
| property | Tên biến bạn muốn gán cho điều khiển. | String |
| label | Nhãn được hiển thị cho người dùng. | String |
| type | Loại điều khiển. Các tùy chọn hợp lệ hiện tại là: boolean, number, hue, color, combobox và textfield | String |
| default | Giá trị mặc định cho điều khiển. | Khác nhau |
Thanh trượt số
Phần tiêu đề “Thanh trượt số”Điều khiển number cho phép người dùng chọn giá trị số thông qua thanh trượt.
{"property":"dpi1", "label":"DPI","step":"50", "type":"number","min":"200", "max":"18000","default":"800"},
Điều khiển này hỗ trợ các thuộc tính sau:
| Tham số | Giá trị | Kiểu |
|---|---|---|
| property | Tên biến bạn muốn gán cho điều khiển. | String |
| label | Nhãn được hiển thị cho người dùng. | String |
| type | ”number” | String |
| default | Giá trị mặc định cho điều khiển. | String, Int |
| min | Giá trị thanh trượt tối thiểu có thể chọn. Thuộc tính này hỗ trợ giá trị âm. | String, Int |
| max | Giá trị thanh trượt tối đa có thể chọn. | String, Int |
| step | Bước mà thanh trượt tăng và giảm. | String, Int |
Công tắc boolean
Phần tiêu đề “Công tắc boolean”Điều khiển boolean cho phép người dùng chọn giá trị boolean thông qua công tắc.
{"property":"AngleSnap", "label":"Angle Snapping", "type":"boolean", "default":"0"},
Điều khiển này hỗ trợ các thuộc tính sau:
| Tham số | Giá trị | Kiểu |
|---|---|---|
| property | Tên biến bạn muốn gán cho điều khiển. | String |
| label | Nhãn được hiển thị cho người dùng. | String |
| type | ”boolean” | String |
| default | Giá trị mặc định cho công tắc. Đặt thành 1 để đặt “Bật” làm trạng thái mặc định. | String, Int |
Thanh trượt sắc độ
Phần tiêu đề “Thanh trượt sắc độ”Điều khiển hue cho phép người dùng chọn thành phần sắc độ màu thông qua thanh trượt.

Điều khiển này hỗ trợ các thuộc tính sau:
| Tham số | Giá trị | Kiểu |
|---|---|---|
| property | Tên biến bạn muốn gán cho điều khiển. | String |
| label | Nhãn được hiển thị cho người dùng. | String |
| type | ”hue” | String, Int |
| default | Giá trị mặc định cho thanh trượt sắc độ. | String |
| min | Giá trị sắc độ tối thiểu có thể chọn. Giá trị này phải nằm trong khoảng từ 0 đến 359. | String, Int |
| max | Giá trị sắc độ tối đa có thể chọn. Giá trị này phải nằm trong khoảng từ 1 đến 360. | String, Int |
Bộ chọn màu
Phần tiêu đề “Bộ chọn màu”Điều khiển color cho phép người dùng chọn màu thông qua bánh sắc độ, thanh trượt độ bão hòa và thanh trượt độ sáng. Biểu tượng chìa khóa mở bảng màu mở rộng để chọn.
{"property":"forcedColor", "label":"Forced Color","min":"0","max":"360","type":"color","default":"#009bde"},
Điều khiển này hỗ trợ các thuộc tính sau:
| Tham số | Giá trị | Kiểu |
|---|---|---|
| property | Tên biến bạn muốn gán cho điều khiển. | String |
| label | Nhãn được hiển thị cho người dùng. | String |
| type | ”color” | String |
| default | Giá trị mặc định cho bộ chọn màu. Phải được chỉ định dưới dạng giá trị hex ở dạng #RRGGBB. | String |
| min | Giá trị sắc độ tối thiểu có thể chọn. Giá trị này phải nằm trong khoảng từ 0 đến 359. | Int |
| max | Giá trị sắc độ tối đa có thể chọn. Giá trị này phải nằm trong khoảng từ 1 đến 360. | Int |
Danh sách kết hợp
Phần tiêu đề “Danh sách kết hợp”Điều khiển combobox cho phép người dùng chọn từ menu thả xuống với các giá trị được xác định trước.
{"property":"SleepModeTime", "label":"Sleep After x Minutes", "type":"combobox", "values":[5,10,15,30,60], "default":10},
Điều khiển này hỗ trợ các thuộc tính sau:
| Tham số | Giá trị | Kiểu |
|---|---|---|
| property | Tên biến bạn muốn gán cho điều khiển. | String |
| label | Nhãn được hiển thị cho người dùng. | String |
| type | ”combobox” | String |
| default | Giá trị mặc định cho danh sách kết hợp. Giá trị này phải có trong mảng values. | String, Int |
| values | Mảng các giá trị cho menu thả xuống. Các kiểu hợp lệ là chuỗi và số nguyên. | [String, Int] |
Trường văn bản
Phần tiêu đề “Trường văn bản”Điều khiển textfield cho phép người dùng nhập văn bản tự do, tùy chọn với bộ lọc RegEx.
{"property":"textBox", "label":"Text Field", "type":"textfield", "default":"3"},
Điều khiển này hỗ trợ các thuộc tính sau:
| Tham số | Giá trị | Kiểu |
|---|---|---|
| property | Tên biến bạn muốn gán cho điều khiển. | String |
| label | Nhãn được hiển thị cho người dùng. | String |
| type | ”textfield” | String |
| default | Giá trị mặc định cho trường văn bản. | String, Int |
| filter | Bộ lọc RegEx tùy chọn để giới hạn nhập liệu người dùng. | RegEx-String |
on*Changed callbacks
Phần tiêu đề “on*Changed callbacks”Mỗi khi người dùng thay đổi một điều khiển, SignalRGB gọi hàm on[property]Changed() tương ứng trước lần gọi Render() tiếp theo. Tên hàm phải khớp chính xác với tên thuộc tính từ ControllableParameters(), với tiền tố on và hậu tố Changed. Phân biệt chữ hoa chữ thường.
// ControllableParameters entry:{"property":"dpi1", "label":"DPI", "step":"50", "type":"number", "min":"200", "max":"18000", "default":"800"},
// Corresponding callback:export function ondpi1Changed() { setDpi(dpi1);}Callbacks tích hợp sẵn
Phần tiêu đề “Callbacks tích hợp sẵn”Các callback này có sẵn mà không cần mục tương ứng trong ControllableParameters:
| Hàm | Mô tả |
|---|---|
onBrightnessChanged() | Được gọi khi người dùng di chuyển thanh trượt độ sáng thiết bị chính. |