Macro Deck UI
Plugins podem trazer sua própria interface
Os plugins não se limitam a adicionar ações e variáveis. O Macro Deck tem seu próprio framework de interface declarativa para C#: você descreve uma view uma única vez como uma árvore de componentes, e o Macro Deck a renderiza onde for preciso, seja como widget de deck, tela de configuração, visualização de pasta ou caixa de diálogo modal.
var muted = new UiState<bool>(false);
var tile = new UiButton
{
Key = "mute",
Justify = UiComponentJustify.Center,
Background = UiValue.From(() => muted.Value ? "#ff3b30" : "#2c2c2e"),
Events = [UiEventHandler.On(UiComponentEvents.Press, () => muted.Value = !muted.Value)],
Children = [new UiTextRun
{
Key = "label",
Text = UiText.From(() => muted.Value ? "Muted" : "Mute"),
Size = 0.14,
}],
};
var view = new UiView(request.Surface, tile);

O Macrogotchi mostra até onde isso vai. Este plugin de código aberto mantém um bichinho virtual no seu deck, com barras de status, um sprite de pixel art desenhado com células coloridas e seis botões, tudo em um único widget.
As views são montadas com componentes do Macro Deck UI, como stacks, grades, gráficos, medidores e controles deslizantes, e não com páginas web incorporadas, por isso combinam com o restante do seu deck.






