Tutorial Allegro 5 #15 – Utilizando Caixas de Diálogo Nativas

Padrão

Olá pessoal! Hoje vamos ter um tutorial bastante simples, mas bem legal, mostrando como utilizar caixas de diálogo nativas do sistema operacional em seu aplicativo usando a Allegro 5.

Para o uso de tal recurso, utilizamos a extensão allegro_dialog, que é quem se encarrega de adaptar a chamada à função de exibição ao estilo de janela do seu sistema operacional (Windows, Linux ou MacOS).

Vamos observar o código e já comentamos sobre ele:

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

int main(void)
{
    if (al_show_native_message_box(NULL, "www.rafaeltoledo.net",
            "Pergunta:", "Deseja exibir a mensagem de erro?",
            NULL, ALLEGRO_MESSAGEBOX_YES_NO))
    {
        al_show_native_message_box(NULL, "www.rafaeltoledo.net",
                "Então...", "Estou exibindo a mensagem de erro.",
                NULL, ALLEGRO_MESSAGEBOX_ERROR);
    }
    else
    {
        al_show_native_message_box(NULL, "www.rafaeltoledo.net",
                "Então", "Vamos com essa mensagem de dúvida...",
                NULL, ALLEGRO_MESSAGEBOX_QUESTION);
    }

    if (al_show_native_message_box(NULL, "www.rafaeltoledo.net",
                "Outra pergunta...", "Vou exibir uma última mensagem antes de sair, certo?",
                NULL, ALLEGRO_MESSAGEBOX_OK_CANCEL))
    {
        al_show_native_message_box(NULL, "www.rafaeltoledo.net",
                "É a última mensagem, prometo!", "Mensagem, mensagem, mensagem, mensagem",
                NULL, ALLEGRO_MESSAGEBOX_WARN);
    }

    return 0;
}

No código acima, criamos uma sequência de janelas, procurando demonstrar as várias opções que a Allegro nos oferece. Basicamente, todo o processo gira em torno da chamada a função al_show_native_message_box(). Seus parâmetros são: (1) a janela a qual ela pertence. No nosso caso, passei como argumento NULL, pois não há uma janela (ALLEGRO_DISPLAY). No caso, você pode passar nesse argumento a função al_get_current_display(), que retorna a janela ativa; (2) título da caixa de diálogo; (3) título do texto; (4) botões – não encontrei documentação clara sobre a utilização deste parâmetro, mas aparentemente serve para a utilização de botões personalizados – e; (5) tipo de caixa de diálogo. No nosso exemplo, utilizei todos os tipos disponíveis na biblioteca Allegro.

Basicamente, a função al_show_native_message_box() retorna um valor verdadeiro quando clica-se em um botão afirmativo (sim ou OK) e falso ao clicar em um botão negativo (Não, Cancelar ou mesmo fechar a caixinha). Através disso, criei o fluxo do programa.

Para compilar, precisamos lembrar de linkar com o add-on allegro_dialog.

  • Windows: -lallegro-5.0.5-mt -lallegro_dialog-5.0.5-mt
  • Linux: -lallegro -lallegro_dialog

Até a próxima! 🙂

2 comentários sobre “Tutorial Allegro 5 #15 – Utilizando Caixas de Diálogo Nativas

  1. Alexandre Morais

    Muito bom o tutorial! Obrigado. Mas gostaria de saber se é possível adicionar o valor de uma variável ao meu texto. Obrigado

  2. Cicero Rafael

    Cara, na realidade essa funçao nn retorna um bool retorna um int, pelo menos na versão gtk da implementaçaõ (nn, eu nn olhei a versão do windows) ele retorna no final bem sucedido uma var chamada mb_pressed_button que recebe seu valor numa funçao chamada msgbox_response atraves de um switch onde é 0 no caso GTK_RESPONSE_DELETE_EVENT, 1 nos casos GTK_RESPONSE_YES e GTK_RESPONSE_OK, 2 nos casos GTK_RESPONSE_NO e GTK_RESPONSE_CANCEL e response_id pro caso default.

Deixe uma resposta