contato: [email protected]
Este é um documento que tem como finalidade o esclarecimento sobre a funcionabilidade de algumas caixas de dialogo do 'zenity', que é, como veremos mais adiante, o programa responsável por criar as caixas de dialogo no ambiente grafico Gnome. Veremos exemplos prontos das principais caixas de dialogo e o que cada uma delas faz, juntamente com se código para que ( caso você esteja usando o Gnome ) você possa testá-los ai na sua máquina.
O zenity é atualmente o "Dialog" oficial do gnome, forçando a aposentadoria do gDialog, este novo conceito de caixa de dialogos do gnome vem com a promessa de ser mais leve e facil de usar e ainda mais funcional. Não podemos duvidar disto levando-se em conta que temos a frente do projeto nomes como Alan Cox e Glynn Foster que são seus idealizadores.
Está tudo muito lindo até aqui, mas antes de darmos continuidade eu preciso perguntar-lhe algumas coisas. Primeiro: você tem conhecimento em programação shell-script?
Caso a resposta seja não então corra pra cá /home/plastico/minha ou pra cá /home/plastico/minha para obter algum material introdutorio, treine e volte daqui algum tempo.
Caso a resposta seja sim então prossiga.
Segundo: você que conhece shell já pelo menos brincou com dialog?
Caso a resposta seja não então de uma passadinha na página do Aurélio sobre dialog e se familiarize um pouco com este conceito de caixas de dialogo em teminal só para ter uma base antes de prosseguir ok...
Caso a resposta seja sim então prossiga, pois a meu ver, a não ser que você esteja mentindo ou esteja muito curioso para ver um pouco de zenity, então você está apto para continuar.
Info
A caixa de dialogo Info como o próprio nome ja diz, serve pra passar alguma informação ao usuário. veja no exemplo.
| zenity --title="Caixa Info" --info --text="Estes eh um exemplo de caixas Info" |
Question
A caixa Question tem a mesma função da caixa yesno do dialog, no qual o usuário responde a uma pergunta e dependendo da resposta retorna-se 0 (zero) para SIM ( OK ) e 1 (um) para NÃO ( Cancel ) na saida padrão, podendo a resposta ser redirecionada normalmente como em qualquer script.
| zenity --title="Question" --question --text="Esta eh uma caixa Question, sabia?" |
Warning
Esta é uma caixa de aviso do sistema comunicando um determinado aviso ao usuário.
| zenity --title="Warning" --warning --text="Aviso, esta eh uma caixa Warning" |
Error
Caixa utilizada pelo sistema para comunicar ao usuário quando alguma coisa não deu certo. Bastante conhecida em "outros sistemas oparacionais" :P.
| zenity --title="Error" --error --text="Ops, algo deu errado" |
Entry
Esta caixa é usada para fazer interface com o usuário onde serão inseridos certos dados que um script pode aproveitar alimentando uma variavél ou um array por exemplo.
| zenity --title="Entry" --entry --text="insira os dados por aqui" |
File Info
Uma caixa bem versátil, que mostra o conteúdo de um arquivo especificado e passando-se a opção --editable , por exemplo, você pode editar o arquivo diretamente desta caixa.
| zenity --title="File Info" --text-info --filename ola.txt |
File Selection
Esta é uma caixa bem popular, que mostra a lista de arquivos contidos em sua maquina para serem selecionados para abrir em algum aplicativo ou fazer upload por exemplo.
| zenity --file-selection |
List
A caixa 'list' tem várias vertentes, talvez sendo uma das mais trabalhadas no zenity, ela pode mostrar um conteúdo definido ou uma relação de arquivos texto por exemplo. Estas caixas tem uma particularidade que se deve dar bastante atenção para que os dados sejam inseridos corretamente nas caixas. A entrada de dados precisa ficar de duas formas.
| zenity --text="Primeiro exemplo de Caixa List" --list --column "Letras" a 1 b 2 c 3 --column "Numeros" |
Neste exemplo os dados aparecem em duas colunas ( Letras e Numeros ), que foram declaradas no começo e no final como colunas e os dados ficaram no meio intercalados entre Letras ( a b c ) e Numeros ( 1 2 3 ). A ordem dos dados precisa ser mantida nesse padrão para que os dados sejam inseridos corretamente tendo-se três ou mais colunas, já a declaração das colunas tambem pode ser feita como no exemplo a seguir.
Checklist
Aqui a caixa checklist é usada para se selecionar uma ou mais opções para que sejam alimentadas num array por exemplo. Pode-se definir alguns campo pré selecionados trocando FALSE por TRUE.
| zenity --text="Segundo exemplo de Caixa List - Checklist" --list --checklist --column "Comprar" --column "Itens" FALSE fita FALSE cds FALSE disquetes |
Repare que a declaração de todas as coluna foram feitas primeiro e depois vem a declaração dos dados sempre intercalados.
A definição é sempre a mesma, se você declara duas colunas o programa pega os dados em pares para inserir na caixa, para tres colunas um trio e assim por diante. Por exemplo, se declararmos tres colunas ( Letra, Numero e Posição ) os dados precisam ser inseridos em trios também, exemplo: a 1 primeiro.
Radiolist
A caixa radiolist a exemplo da checklist também da a opção de selecionar dados na caixa, mas somente um dos dados.
| zenity --text="Terceiro exemplo de Caixa List - Radiolist" --list --radiolist --column selecionar FALSE primeiro FALSE segundo FALSE terceiro --column |
List ( Arquivos )
E este é um exemplo de caixa list que mostra o resultado da pesquisa de um determinado tipo de arquivos na maquina.
| find . -name '*.txt' /(troque aqui por pipe) zenity --text="Quarto exemplo de Caixa List - Voce tem arquivos texto ai?" --list --column "Arquivos" |
Progress
Outra caixa classica, que mostra ao usuário o progresso gradativo de um arquivo que está sendo baixado, ou a instalação de um software por exemplo. Esta talvez seja uma das caixas mais dificeis de se implementar.
| find `echo $HOME` '*.bsh' /(troque aqui por pipe) zenity --text="Vou procurar arquivos .bsh para mostra a caixa progress" --progress --pulsate |
Neste exemplo mostramos a caixa com a opção --pulsate que mostra uma barra que fica indo e voltando enquanto não finaliza o processo.
Calendar
Assim como no dialog, também aqui temos uma opção de caixa que mostra um calendario, caso não seja passado nenhum parametro na chamada desta caixa, ela tem por default mostrar o dia e mês correntes.
| zenity --calendar |
Considerações Finais
E aqui finalizamos um tour rapido por algumas das caixas de dialogo do programa 'zenity', caso você queira ter mais algumas informações de parametros para algumas caixas pode clicar aqui e dar uma lida na tradução feita por mim do manual do zenity ( man zenity ) E você também pode pegar um script que eu criei para dar um passeio pelas caixas de dialogo do zenity sem precisar ficar copiando os codigos do site e colando no terminal, basta clicar aqui.
Muito obrigado por acessarem minha página, espero que a navegação tenha sido proveitosa e que você tenha conseguido absorver algo nas informações contidas aqui. Tentarei manter esta seção atualizada caso tenha mais algum conteudo a ser iserido.
valeu
[]'s Plastico
:wq