Programação em GUI/Janelas de diálogo modal
Imagine-se a seguinte situação: o aplicativo GUI inclui um botão que tem como função apagar tudo que foi feito e reiniciar. Se um botão destes for pressionado por acidente, pode-se perder todo o trabalho feito.
Nestes casos, é comum que o aplicativo trave, e apareça em cima de tudo uma janela com a pergunta singela: Você tem certeza que quer destruir tudo?
Esta janela, muitas vezes, não pode ser fechada, e não é possível voltar ao programa sem responder ao que a janela pede.
Esta janela é uma caixa de mensagens e inclui o que se chama um diálogo modal.
Uma caixa de mensagens é uma janela que mostra uma mensagem e recebe um input (normalmente simples, como Sim/Não; mas pode também receber textos ou dados mais complexos). O diálogo é chamado de modal porque este diálogo interrompe todas as demais execuções do programa, que fica à espera da resposta do diálogo.
Implantação
editarNote-se que, por violar algumas das regras da programação em interface gráfica - ou seja, ao se chamar uma janela de diálogo modal, o programa para e fica esperando sua resposta - a implantação em um programa de uma janela modal muitas vezes é mais simples do que a implantação de outras janelas.
É comum encontrar janelas de diálogo modal sendo invocadas com expressões da forma
valor = chama.janela(titulo, texto, tamanho, imagem)
Exemplos
editarExemplos em outras línguas
- Na linguagem Tcl, toolkit Tcl/Tk - en:Tcl Programming/Tk#Dialogs
- Em C++, toolkit wxWidgets - fr:Interfaces graphiques en C++ avec wxWidget/Dialogues
- Na linguagem C, usando o toolkit GTK+: fr:Programmation GTK+/Boîtes de dialogue
- Em Visual Basic: en:Visual Basic/Windows Dialogs
- Em Python, usando o toolkit Qt: de:Python unter Linux: Qt4 (inclui um exemplo de diálogo)