Przejdź do głównej zawartości

Kontrolki użytkownika

Kontrolki użytkownika w wtyczce mają postać globalnej zmiennej, którą użytkownik końcowy może zmieniać. Wszystkie są eksportowane z wtyczki przez ControllableParameters(), która zwraca tablicę obiektów ustawień jak pokazano poniżej.

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"}
];
}

Te obiekty ustawień zawsze mają kilka podstawowych parametrów. Są one prawidłowe dla wszystkich kontrolek użytkownika wtyczki.

ParametrWartośćTyp
propertyNazwa zmiennej, którą chcesz powiązać z kontrolką.String
labelEtykieta wyświetlana użytkownikowi.String
typeTyp kontrolki. Aktualnie prawidłowe opcje to: boolean, number, hue, color, combobox i textfieldString
defaultDomyślna wartość kontrolki.Zmienny

Kontrolka liczb pozwala użytkownikowi wybrać wartość liczby za pomocą suwaka.

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

Ta kontrolka obsługuje następujące atrybuty:

ParametrWartośćTyp
propertyNazwa zmiennej, którą chcesz powiązać z kontrolką.String
labelEtykieta wyświetlana użytkownikowi.String
type”number”String
defaultDomyślna wartość kontrolki.String, Int
minMinimalna możliwa do wybrania wartość dla suwaka. Ten atrybut obsługuje wartości ujemne.String, Int
maxMaksymalna możliwa do wybrania wartość dla suwaka.String, Int
stepWartość kroku, o którą suwak jest zwiększany i zmniejszany.String, Int

Kontrolka logiczna pozwala użytkownikowi wybrać wartość zmiennej logicznej za pomocą przełącznika.

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

Ta kontrolka obsługuje następujące atrybuty:

ParametrWartośćTyp
propertyNazwa zmiennej, którą chcesz powiązać z kontrolką.String
labelEtykieta wyświetlana użytkownikowi.String
type”boolean”String
defaultDomyślna wartość przełącznika. Ustaw na 1, aby ustawić “włączony” jako stan domyślny.String, Int

Kontrolka odcienia pozwala użytkownikowi wybrać komponent odcienia koloru za pomocą suwaka.

Ta kontrolka obsługuje następujące atrybuty:

ParametrWartośćTyp
propertyNazwa zmiennej, którą chcesz powiązać z kontrolką.String
labelEtykieta wyświetlana użytkownikowi.String
type”hue”String, Int
defaultDomyślna wartość suwaka odcienia.String
minMinimalna możliwa do wybrania wartość odcienia. Ta wartość musi być między 0 a 359.String, Int
maxMaksymalna możliwa do wybrania wartość odcienia. Ta wartość musi być między 1 a 360.String, Int

Kontrolka koloru pozwala użytkownikowi wybrać kolor za pomocą pierścienia odcienia, suwaka nasycenia i suwaka jasności. Ikona klucza otwiera bardziej zaawansowaną paletę kolorów.

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

Ta kontrolka obsługuje następujące atrybuty:

ParametrWartośćTyp
propertyNazwa zmiennej, którą chcesz powiązać z kontrolką.String
labelEtykieta wyświetlana użytkownikowi.String
type”color”String
defaultDomyślna wartość selektora koloru. Musi być podana jako wartość hex w formacie #RRGGBB.String
minMinimalna możliwa do wybrania wartość odcienia. Ta wartość musi być między 0 a 359.Int
maxMaksymalna możliwa do wybrania wartość odcienia. Ta wartość musi być między 1 a 360.Int

Kontrolka pola kombi pozwala użytkownikowi wybrać z menu rozwijanego z wstępnie ustawionymi wartościami.

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

Ta kontrolka obsługuje następujące atrybuty:

ParametrWartośćTyp
propertyNazwa zmiennej, którą chcesz powiązać z kontrolką.String
labelEtykieta wyświetlana użytkownikowi.String
type”combobox”String
defaultDomyślna wartość pola kombi. Ta wartość musi znajdować się w tablicy wartości.String, Int
valuesTablica wartości dla menu rozwijanego. Prawidłowe typy to stringi i liczby całkowite.[String, Int]

Kontrolka pola tekstowego pozwala użytkownikowi swobodnie wpisywać tekst z opcjonalnym filtrem RegEx.

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

Ta kontrolka obsługuje następujące atrybuty:

ParametrWartośćTyp
propertyNazwa zmiennej, którą chcesz powiązać z kontrolką.String
labelEtykieta wyświetlana użytkownikowi.String
type”textfield”String
defaultDomyślna wartość pola tekstowego.String, Int
filterOpcjonalny filtr RegEx ograniczający wprowadzanie danych przez użytkownika.Ciąg RegEx

Gdy użytkownik zmienia kontrolkę, SignalRGB wywołuje odpowiednią funkcję on[property]Changed() przed następnym wywołaniem Render(). Nazwa funkcji musi dokładnie odpowiadać nazwie właściwości z ControllableParameters(), poprzedzonej on i zakończonej Changed. Rozróżniana jest wielkość liter.

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

Te callbacki są dostępne bez odpowiadającego wpisu ControllableParameters:

FunkcjaOpis
onBrightnessChanged()Wywoływana, gdy użytkownik przesuwa główny suwak jasności urządzenia.