#include <gtk/gtk.h>
// função que será chamada quando o botão for clicado
void exibir_mensagem(GtkButton *button, GtkWindow *parent){
GtkWidget *dialog;
dialog = gtk_message_dialog_new(parent, GTK_DIALOG_MODAL,
GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "GTK+ e C são bons demais!");
gtk_window_set_title(GTK_WINDOW(dialog), "Mensagem");
gtk_dialog_run(GTK_DIALOG(dialog));
gtk_widget_destroy(dialog);
}
int main(int argc, char *argv[]){
// inicializamos o GTK+ e as bibliotecas de suporte
gtk_init(&argc, &argv);
// vamos criar uma nova janela e definir seu título
GtkWidget *janela = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(janela), "Estudos GTK+ com C");
// vamos definir a largura e altura da janela
gtk_window_set_default_size(GTK_WINDOW(janela), 400, 200);
// precisamos de uma gerenciador de layout. vamos usar
// GtkFixed
GtkWidget *layout = gtk_fixed_new();
// vamos criar um botão GtkButton
GtkWidget *btn = gtk_button_new_with_label("Clique Aqui");
// vamos definir a largura e altura do botão
gtk_widget_set_size_request(btn, 120, 30);
// quando o botão for clicado nós vamos chamar a função
// exibir_mensagem
g_signal_connect(G_OBJECT(btn), "clicked",
G_CALLBACK(exibir_mensagem), (gpointer)janela);
// adicionamos o botão ao gerenciador de layout
gtk_fixed_put(GTK_FIXED(layout), btn, 10, 10);
// adicionamos o GtkFixed à janela principal
gtk_container_add(GTK_CONTAINER(janela), layout);
// exibimos a janela e seus componentes
gtk_widget_show_all(janela);
// código que destrói a janela principal
g_signal_connect_swapped(G_OBJECT(janela), "destroy",
G_CALLBACK(gtk_main_quit), NULL);
// entramos no loop principal do GTK+
gtk_main();
// a aplicação GTK+ foi fechada, vamos sair
return 0;
}