Aprendendo Allegro 5
Início Janela Imagens Mensagem Fontes e texto Eventos Mouse Teclado Audio Timer Animações Sprites Jogo exemplo

Mostrando caixas de texto

Podemos usar o allegro para mostrar caixas de texto nativas da interface gráfica do sistema operacional. Esta função é útil quando queremos reportar algum erro no allegro, como por exemplo falha ao encontrar arquivos de imagens, sons, etc. Vamos ao código:

#include <allegro5/allegro.h>
#include <allegro5/allegro_native_dialog.h>
#include <stdio.h>

int main(void){
    //guarda o título da caixa de texto
    char tcaixa[50] = "Meu titulo";
    //o título da mensagem dentro da caixa
    char titulo[100] = "Sou uma caixa de texto";
    //o conteúdo da mensagem exibida
    char texto[200] = "A mensagem a ser exibida deve ficar aqui";
    //mostra a caixa de texto
    int r = al_show_native_message_box(NULL,tcaixa,titulo,texto,NULL,ALLEGRO_MESSAGEBOX_OK_CANCEL);
    printf("%i",r);
    return 0;
}

Na linha 2 fazemos o include do módulo allegro_native_dialog, que permite a chamada da janela.

Nas linha 7, linha 9 e linha 11 declaramos strings que contém o título da caixa de mensagem, o título do texto que fica dentro da caixa, e o próprio texto da caixa.

al_show_native_message_box()

Na linha 13 chamamos a função al_show_native_message_box(). Esta função recebe 6 parâmetros, definidos a seguir:

  • O display sobre o qual a caixa será mostrada, ou NULL.
  • A string contendo o título da caixa.
  • A string contendo o título da mensagem da caixa.
  • A string contendo a mensagem da caixa.
  • O texto dos botões que serão mostrados. No Windows 10, este parâmetro não está funcionando. Informamos NULL por padrão.
  • A flag que indica o tipo de caixa de texto que será mostrada. Os valores possíveis são os seguintes:
    • ALLEGRO_MESSAGEBOX_WARN - Mensagem de aviso com botão OK
    • ALLEGRO_MESSAGEBOX_ERROR - Mensagem de erro com botão OK
    • ALLEGRO_MESSAGEBOX_QUESTION - Pergunta com botão OK
    • ALLEGRO_MESSAGEBOX_OK_CANCEL - Informação com botões OK e Cancelar
    • ALLEGRO_MESSAGEBOX_YES_NO - Informação com botões Sim e Não

A função retorna 0 caso o botão pressionado por OK/Sim, ou 1 caso seja Cancelar/Não.

Uma observação importante a ser feita sobre a função é que ela não requer que a biblioteca allegro tenha sido inicializada (com al_init()), portanto esta caixa de texto pode ser usada para reportar erros de inicialização dos diferentes módulos do allegro. Nos exemplos a seguir, usaremos os valores de retorno das funções de inicialização do allegro para testar se houve erro ou não.

Outros links