#!/bin/bash
yad --form \
--field="!/usr/share/icons/gnome/48x48/apps/libreoffice-calc.png!Rodrigues":FBTN "bash -c yad" \
--field="!/usr/share/icons/gnome/48x48/apps/libreoffice-writer.png!Daniel Dias":FBTN "bash -c yad" \
--field="<b>Bold -</b> Text here":LBL \
--field="<b>Bold -</b> Long text here":LBL \
--columns=2Deixei estes dois tipos para o fim (mas ainda mostrarei opções do --form), porque confesso que tive dificuldade em imaginar um exemplo criativo para o uso de cores, com campos do tipo :CLR, mas antes de mostrar os exemplos, quero explicar como funciona o campo do tipo :BTN e de tipo :FBTN.
Sua sintaxe é a seguinte:
--field ROTULO[!ICONE[!DICA]]:[F]BTN CMD
Onde:
ROTULO é o texto que estará escrito no botão (pode usar um caractere sublinha (_) antes de uma letra para que ela apareça sublinhada e você possa usar <ALT>+<letra> para substituir o clique do botão);
ICONE Caminho do ícone que aparecerá no botão;
DICA é um texto opcional que aparecerá quando o ponteiro do mouse estiver sobre o botão;
CMD Comando que será executado quando o botão for clicado.
Em CMD, o YAD dá tratamento especial a 2 caracteres :
Em campos no formato @CMD N:TEXTO, onde N é um número, o conteúdo de TEXTO será enviado para o eNésimo campo;
Em CMD que ocorra uma cadeia do tipo %N, onde N é um número, %N será substituído pelo valor do eNésimo campo;
Resumindo: N:TEXTO - O campo número N recebe TEXTO; %N - O campo N fornece TEXTO.
Agora veja os exemplos:
$ yad --form --field='Frutas de A a M':FBTN \
"@echo 3:$(grep ^\[a-m\] frutas | tr \\\n \!)" \
--field='Frutas de N a Z':FBTN \
"@echo 3:$(grep ^\[n-z\] frutas | tr \\\n \!)" \
--field Frutas:CB ''
Nesta linha de comandos, temos 2 campos do tipo :BTN. Em ambos a arroba (@) informa que o comando echo, mandará a saída para o campo 3, que é uma ComboBox (e por isso, o tr trocou os fins de linha por um ponto de exclamação). No 1º botão seleciona todas as frutas que comecem com letras entre a e m e o 2º escolhe frutas iniciadas por letras entre n e z.
Um outro exemplo:
$ cat form6.yad
#!/bin/bash
# Demo do diálogo --form, usando campos dos tipos:
#+ Campo de seleção de cores :CLR
#+ Campo botão:BTN
if Saida=$(yad --form \
--title "Teste de cores para terminais" \
--text "\tEscolha cores e clique <b>Testar</b>\t\t" \
--field "Cor da fonte:CLR" 'White' \
--field "Cor de fundo:CLR" 'Black' \
--field '_Testar!!Clique para testar cores:FBTN' \
"xterm -bg '%2' -fg '%1' -T 'Terminal com %1 e %2' \
-e 'echo -e Cor da Fonte=\%1\\\nCor de fundo=\%2\\\n\
Tecle algo para novo teste...; read -n1'")
then
IFS='|' read Fonte Fundo lx <<< "$Saida"
xterm -bg "$Fundo" -fg "$Fonte" \
-maximized -e '/bin/bash' &
else
exit 1
fi


A figura foi cortada pelo software de captura de tela, mas repare que aparece um pedaço da dica DICA que foi estipulada. Lembre-se que para DICA aparecer é necessário que seja declarada e que o mouse esteja sobre BOTAO, como é o caso. Veja ainda na figura que o T de Testar está sublinhado, porque foi definido como _Testar e, nesse caso, um <ALT>+T equivale a um clique no botão.
No comando xterm:
A opção -bg define a cor de fundo (background) e o %2 passa a cor escolhida no 2º campo;
A opção -fg define a cor de frente (foreground) e o %1 passa a cor escolhida no 1º campo;
A opção -T (-title também é aceito) informa o título da janela e escolhi passar o valor hexadecimal (produzido pelos campos no formato :CLR) das cores
A opção -e, que tem de ser a última, passa o(s) comando(s) que será(ão) executado(s) na janela. O monte de contrabarras é porque já estava usando as aspas e os apóstrofos na proteção dos campos, só sobrou contrabarra...
--
You received this message because you are subscribed to the Google Groups "yad-common" group.
To unsubscribe from this group and stop receiving emails from it, send an email to yad-common+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/yad-common/4c238945-aa62-45bf-9366-6ef26b233d52%40googlegroups.com.
--
You received this message because you are subscribed to the Google Groups "yad-common" group.
To unsubscribe from this group and stop receiving emails from it, send an email to yad-common+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/yad-common/caa70cb1-a711-4e3c-914f-c4094a244c0d%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/yad-common/CAJ%3Dpi6k9arvdott7LgrN1AS_C_bkpbPkSpiTvFORcaNeAPFOzA%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/yad-common/20200601152904.319ecd3c%40sanana.kiev.ua.