LG_jc.gif (3670 bytes)
 






Atualizada às terças

Programando um cliente de mail - Parte 4

Nesta parte final, mostraremos como criar a interface para configuração do mailer, salvando em arquivo os dados do usuário. Precisamos de um diálogo auxiliar que nos permitirá introduzir o valor das variáveis mail(host) e mail(addr), discutidas na semana passada. Incluiremos mais um botão na nossa interface (rótulo "config") para abrir esse novo diálogo.


Criação do novo botão "config"

Para o diálogo, simplesmente criamos um toplevel com duas caixas de entrada (tipo "Label and Entry") com estas variáveis escolhidas no atributo -textvariable de cada uma. Adicionalmente, esse toplevel conterá um botão com texto OK, para indicar que estamos satisfeitos com a configuração.

Criaremos também um "alias" com o nome "config" para esse diálogo, para tornar mais conveniente o acesso ao mesmo, como veremos adiante. Para que os dados introduzidos sejam persistentes, isto é, permaneçam depois que finalizarmos o programa e o reutilizarmos, precisamos salvar estas variáveis num arquivo, e esse arquivo será ~/.mailerrc.  Esse nome esquisito tem um til para indicar o "home" do usuário que o está utilizando e iniciado por ponto pois ele deverá ser invisível (como por exemplo o .inputrc ou .profile).

O procedimento para escrita em um arquivo é semelhante ao dos sockets que vimos anteriormente. Abrimos o arquivo com "open ~/.mailerrc w", onde o argumento "w" indica que somente iremos escrever no arquivo. Esse comando devolve um "file handle" que devemos salvar numa variável para a execução de qualquer comando que se refira a esse canal agora aberto.  Quando não precisarmos mais do acesso
ao arquivo, devemos fechá-lo com o comando "close $fd", onde "fd" é a variável onde guardamos o canal devolvido pelo comando "open".  O conteúdo desse arquivo será uma série de comandos "set variável valor", ou seja, comando para introduzir valores em variáveis do tcl.  Efetuando o comando "source ~/.mailerrc", o interpretador executará esses comandos como se eles
fossem introduzidos manualmente.  Observe também que as variáveis mail(user) e mail(from) têm o mesmo valor, pois ambas se referem ao remetente da mensagem.

Na inicialização do programa, que é executada com a função "main", devemos carregar o arquivo ~/.mailerrc, se ele já existir, bem como certificar-nos que o diálogo de configuração não será mostrado inicialmente,
executando: Window hide $widget(config).


O código para salvar nesse arquivo será adicionado ao botão OK do diálogo já descrito.  Após salvar as variáveis relevantes no arquivo ~/.mailerrc, devemos deixar invisível novamente o diálogo.


O botão que chama o diálogo deverá executar um comando que deixa esse diálogo visível, ou seja: Window show $widget(config).  É recomendável mudar o  atributo -state da caixa de entrada com o rótulo
"from" para "disabled", de forma a não permitir que o usuário modifique o endereço do remetente, isto é, dele próprio.

Não foi nossa intenção apresentar uma aplicação sofisticada com muitos aspectos configuráveis, mas algo prático e simples, diria mesmo didático, para introduzir ao iniciante essa ferramenta tão poderosa que é o tcl/tk.

 
Anteriores

Programando um cliente de e-mail (III) (19/10/1999)
Programando um cliente de e-mail (II)
(12/10/1999)
Programando um cliente de e-mail (I)
(05/10/1999)
Visual Tcl Parte 3
(28/09/1999)
Visual Tcl Parte 2
(21/09/1999)
O Visual Tcl 
(14/09/99)
Programando para Linux (08/09/1999)