Hello,
How can I get error icon on following example of dialog created with code?
For now, dialog pops but icon is missing.
Code:
#include <stdlib.h>
#include <gtk/gtk.h>
GtkWidget *win;
GtkWidget *vbox;
GtkWidget *button;
static void helloDialog (GtkWidget *wid, GtkWidget *win, gpointer user_data)
{
char* message = "Shit happens\nalmost all the time.";
GtkWidget *dialog, *label, *content_area;
dialog = gtk_dialog_new_with_buttons ("May be error",
GTK_WINDOW(win),
GTK_DIALOG_DESTROY_WITH_PARENT|GTK_MESSAGE_ERROR,
"Maybe", 1,
"Possible", 2,
NULL);
gtk_widget_set_size_request(dialog, 350, 200);
gtk_dialog_set_default_response(GTK_DIALOG(dialog), 2);
content_area = gtk_dialog_get_content_area(GTK_DIALOG(dialog));
label = gtk_label_new(message);
g_signal_connect_swapped(dialog, "response", G_CALLBACK(gtk_widget_destroy), dialog);
gtk_container_add(GTK_CONTAINER(content_area), label);
gtk_widget_show_all(dialog);
}
int main (int argc, char *argv[])
{
/* Initialize GTK+ */
g_log_set_handler("Gtk", G_LOG_LEVEL_WARNING, (GLogFunc) gtk_false, NULL);
gtk_init(&argc, &argv);
g_log_set_handler("Gtk", G_LOG_LEVEL_WARNING, g_log_default_handler, NULL);
/* Create the main window */
win = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_container_set_border_width(GTK_CONTAINER(win), 8);
gtk_window_set_title(GTK_WINDOW(win), "Hello");
gtk_window_set_position(GTK_WINDOW(win), GTK_WIN_POS_CENTER);
gtk_widget_realize(win);
g_signal_connect(win, "destroy", gtk_main_quit, NULL);
/* Create a vertical box with buttons */
vbox = gtk_vbox_new(TRUE, 6);
gtk_container_add(GTK_CONTAINER (win), vbox);
button = gtk_button_new_from_stock(GTK_STOCK_DIALOG_INFO);
g_signal_connect(G_OBJECT (button), "clicked", G_CALLBACK(helloDialog), (gpointer)win);
gtk_box_pack_start(GTK_BOX(vbox), button, TRUE, TRUE, 0);
button = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
g_signal_connect(button, "clicked", gtk_main_quit, NULL);
gtk_box_pack_start(GTK_BOX(vbox), button, TRUE, TRUE, 0);
/* Enter the main loop */
gtk_widget_show_all(win);
gtk_main();
return 0;
}
Thanks, nime.