Pular para o conteúdo

Controlos do Utilizador

Os Controlos do Utilizador num plugin assumem a forma de uma variável global que pode ser modificada pelo utilizador final. Todos são exportados do plugin via ControllableParameters(), que retorna um array de objetos de configuração conforme mostrado abaixo.

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

Estes objetos de configuração têm sempre alguns parâmetros base. Estes são válidos para todos os Controlos de Utilizador de plugins.

ParâmetroValorTipo
propertyO nome da variável que deseja atribuir ao controlo.String
labelO rótulo a apresentar ao utilizador.String
typeO tipo de controlo. Atualmente, as seguintes opções são válidas: boolean, number, hue, color, combobox, e textfieldString
defaultO valor predefinido para o controlo.Varia

O controlo numérico permite ao utilizador selecionar o valor de um número usando um slider.

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

Este controlo suporta os seguintes atributos:

ParâmetroValorTipo
propertyO nome da variável que deseja atribuir ao controlo.String
labelO rótulo a apresentar ao utilizador.String
type”number”String
defaultO valor predefinido para o controlo.String, Int
minO valor mínimo selecionável para o slider. Este atributo suporta valores negativos.String, Int
maxO valor máximo selecionável para o slider.String, Int
stepO valor de incremento e decremento do sliderString, Int

O controlo boolean permite ao utilizador selecionar o valor de uma variável boolean usando um controlo de alternância.

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

Este controlo suporta os seguintes atributos:

ParâmetroValorTipo
propertyO nome da variável que deseja atribuir ao controlo.String
labelO rótulo a apresentar ao utilizador.String
type”boolean”String
defaultO valor predefinido para a alternância. Defina como 1 para que “ligado” seja o estado predefinido.String, Int

O controlo de seleção de matiz permite ao utilizador selecionar o componente de matiz de uma cor com um controlo deslizante.

Este controlo suporta os seguintes atributos:

ParâmetroValorTipo
propertyO nome da variável que deseja atribuir ao controlo.String
labelO rótulo a apresentar ao utilizador.String
type”hue”String, Int
defaultO valor predefinido para o slider de matiz.String
minO valor mínimo de matiz selecionável. Este valor deve estar entre 0 e 359.String, Int
maxO valor máximo de matiz selecionável. Este valor deve estar entre 1 e 360.String, Int

O controlo de cor permite ao utilizador selecionar uma cor usando uma roda de matiz, slider de saturação e slider de luminância. O ícone de chave inglesa abrirá uma paleta de cores mais avançada para seleção.

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

Este controlo suporta os seguintes atributos:

ParâmetroValorTipo
propertyO nome da variável que deseja atribuir ao controlo.String
labelO rótulo a apresentar ao utilizador.String
type”color”String
defaultO valor predefinido para o seletor de cor. Deve ser especificado como um valor hex no formato #RRGGBBString
minO valor mínimo de matiz selecionável. Este valor deve estar entre 0 e 359.Int
maxO valor máximo de matiz selecionável. Este valor deve estar entre 1 e 360.Int

O controlo de caixa de combinação permite ao utilizador selecionar a partir de um menu suspenso de valores predefinidos.

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

Este controlo suporta os seguintes atributos:

ParâmetroValorTipo
propertyO nome da variável que deseja atribuir ao controlo.String
labelO rótulo a apresentar ao utilizador.String
type”combobox”String
defaultO valor predefinido para a caixa de combinação. Este valor deve estar no array de valoresString, Int
valuesUm array de valores para o menu suspenso. Os tipos válidos são strings e inteiros.[String, Int]

O controlo de campo de texto permite ao utilizador inserir texto livremente com um filtro RegEx opcional.

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

Este controlo suporta os seguintes atributos:

ParâmetroValorTipo
propertyO nome da variável que deseja atribuir ao controlo.String
labelO rótulo a apresentar ao utilizador.String
type”textfield”String
defaultO valor predefinido para o campo de texto.String, Int
filterum filtro RegEx opcional para limitar a entrada do utilizadorString RegEx

Sempre que um utilizador altera um controlo, o SignalRGB chama a função on[property]Changed() correspondente antes da próxima chamada a Render(). O nome da função deve corresponder exatamente ao nome da propriedade em ControllableParameters(), precedido de on e com o sufixo Changed. Esta correspondência é sensível a maiúsculas e minúsculas.

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

Estes callbacks estão disponíveis sem uma entrada correspondente em ControllableParameters:

FunçãoDescrição
onBrightnessChanged()Chamado quando o utilizador move o slider de brilho principal do dispositivo.