每天练习写代码---创建消息框

/*
 ============================================================================
 Name        : MessageDialog.c
 Author      : yongjian.sun
 Version     :
 Copyright   : Your copyright @ yongjian.sun
 Description :
 ============================================================================
 */


#include <gtk/gtk.h>


/*------------------------------------------------------
 * Name:on_button_clicked
 * Function: callback function for radio button
 * Author:yongjian.sun
 * Date: 2011-03-05
 *-----------------------------------------------------*/

void on_button_clicked(GtkWidget *widget, gpointer data)
{
    GtkWidget *dialog;
    GtkMessageType type;
    gchar *message;
    switch((int)data)
    {
    case 1:
        message = "这十一个消息提示对话框";
        type = GTK_MESSAGE_INFO;
        break;
    case 2:
        message = "这是一个错误提示对话框";
        type = GTK_MESSAGE_ERROR;
        break;
    case 3:
        message = "这是一个问题提示对话框";
        type = GTK_MESSAGE_QUESTION;
        break;
    case 4:
        message = "这是一个警告提示对话框";
        type = GTK_MESSAGE_WARNING;
        break;
    }

    dialog = gtk_message_dialog_new(NULL, GTK_DIALOG_MODAL |GTK_DIALOG_DESTROY_WITH_PARENT, type,GTK_BUTTONS_OK,、message);
    gtk_dialog_run(GTK_DIALOG(dialog));
    gtk_widget_destroy(dialog);
}

int main(int argc, char *argv[])
{
    GtkWidget *window;
    GtkWidget *frame;
    GtkWidget *box;
    GtkWidget *button;

    gtk_init(&argc, &argv);
    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL);
    gtk_container_set_border_width(GTK_CONTAINER(window), 20);

    frame = gtk_frame_new("四种消息对话框");
    gtk_container_add(GTK_CONTAINER(window), frame);

    box = gtk_hbox_new(TRUE, 0);
    gtk_container_add(GTK_CONTAINER(frame), box);
    gtk_container_set_border_width(GTK_CONTAINER(box), 20);

    button = gtk_button_new_from_stock(GTK_STOCK_DIALOG_INFO);
    gtk_box_pack_start(GTK_BOX(box), button, FALSE, FALSE, 5);
    g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(on_button_clicked), (gpointer)1);

    button = gtk_button_new_from_stock(GTK_STOCK_DIALOG_ERROR);
    gtk_box_pack_start(GTK_BOX(box), button, FALSE, FALSE, 5);
    g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(on_button_clicked), (gpointer)2);

    button = gtk_button_new_from_stock(GTK_STOCK_DIALOG_QUESTION);
    gtk_box_pack_start(GTK_BOX(box), button, FALSE, FALSE, 5);
    g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(on_button_clicked), (gpointer)3);

    button = gtk_button_new_from_stock(GTK_STOCK_DIALOG_WARNING);
    gtk_box_pack_start(GTK_BOX(box), button, FALSE, FALSE, 5);
    g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(on_button_clicked), (gpointer)4);

    gtk_widget_show_all(window);
    gtk_main();
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值