Preferências e tema
O que a aplicação lembra entre uma abertura e outra, na pasta certa de cada sistema — e o tema claro, escuro ou o do sistema.
Preferências#
t.pref(chave, padrão) lê; t.guardar_pref(chave, valor) grava na hora, num preferencias.json. A gravação escreve ao lado e troca o arquivo: uma aplicação fechada no meio não deixa um JSON pela metade. E um arquivo corrompido não impede a aplicação de abrir — ela volta aos padrões.
dataforge
adopt Arcane.Bigorna as B
adopt Arcane.OS as OS
pasta := $"{OS.temp_dir()}/df-doc-{randint(100000, 999999)}"
app := B.app("Notas", pasta_de_config := pasta)
action tela(t):
tamanho := t.pref("fonte", 14)
t.texto($"fonte {tamanho}")
given t.botao("Aumentar"):
t.guardar_pref("fonte", tamanho + 2)
t.atualizar()
app.tela("t", tela)
B.testar(app).clicar("Aumentar")
// Outra execução da aplicação lê o que ficou gravado.
de_novo := B.app("Notas", pasta_de_config := pasta)
de_novo.tela("t", tela)
assert B.testar(de_novo).tem("fonte 16")Onde elas ficam#
| Sistema | Pasta |
|---|---|
| macOS | ~/Library/Application Support/<nome> |
| Windows | %APPDATA%\<nome> |
| Linux | $XDG_CONFIG_HOME/<nome>, ou ~/.config/<nome> |
dataforge
adopt Arcane.Bigorna as B
out B.pasta_de_config("Minha Aplicação")Tema#
dataforge
adopt Arcane.Bigorna as B
assert B.temas() is ["claro", "escuro", "sistema"]
escuro := B.app("Painel", tema := "escuro")
out escuro.temasistema (o padrão) deixa o Tk seguir o sistema — no macOS, o modo escuro vem sozinho. claro e escuro pintam fundo, campos, tabela e barra de status com uma paleta própria, igual nos três sistemas.