Bỏ qua để đến nội dung

Đ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
propertyTên biến bạn muốn gán cho điều khiển.String
labelNhãn được hiển thị cho người dùng.String
typeLoạ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à textfieldString
defaultGiá trị mặc định cho điều khiển.Khác nhau

Đ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
propertyTên biến bạn muốn gán cho điều khiển.String
labelNhãn được hiển thị cho người dùng.String
type”number”String
defaultGiá trị mặc định cho điều khiển.String, Int
minGiá 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
maxGiá trị thanh trượt tối đa có thể chọn.String, Int
stepBước mà thanh trượt tăng và giảm.String, Int

Đ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
propertyTên biến bạn muốn gán cho điều khiển.String
labelNhãn được hiển thị cho người dùng.String
type”boolean”String
defaultGiá 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

Đ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
propertyTên biến bạn muốn gán cho điều khiển.String
labelNhãn được hiển thị cho người dùng.String
type”hue”String, Int
defaultGiá trị mặc định cho thanh trượt sắc độ.String
minGiá 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
maxGiá 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

Đ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
propertyTên biến bạn muốn gán cho điều khiển.String
labelNhãn được hiển thị cho người dùng.String
type”color”String
defaultGiá 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
minGiá 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
maxGiá 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

Đ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
propertyTên biến bạn muốn gán cho điều khiển.String
labelNhãn được hiển thị cho người dùng.String
type”combobox”String
defaultGiá 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
valuesMả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]

Đ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
propertyTên biến bạn muốn gán cho điều khiển.String
labelNhãn được hiển thị cho người dùng.String
type”textfield”String
defaultGiá trị mặc định cho trường văn bản.String, Int
filterBộ lọc RegEx tùy chọn để giới hạn nhập liệu người dùng.RegEx-String

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);
}

Các callback này có sẵn mà không cần mục tương ứng trong ControllableParameters:

HàmMô tả
onBrightnessChanged()Được gọi khi người dùng di chuyển thanh trượt độ sáng thiết bị chính.