37
37
#define GIMP_ERROR_DIALOG_MAX_MESSAGES 3
40
static void gimp_error_dialog_class_init (GimpErrorDialogClass *klass);
41
static void gimp_error_dialog_init (GimpErrorDialog *dialog);
42
static void gimp_error_dialog_finalize (GObject *object);
43
static void gimp_error_dialog_response (GtkDialog *dialog,
47
static GimpDialogClass *parent_class = NULL;
51
gimp_error_dialog_get_type (void)
53
static GType dialog_type = 0;
57
static const GTypeInfo dialog_info =
59
sizeof (GimpErrorDialogClass),
61
(GBaseFinalizeFunc) NULL,
62
(GClassInitFunc) gimp_error_dialog_class_init,
63
NULL, /* class_finalize */
64
NULL, /* class_data */
65
sizeof (GimpErrorDialog),
67
(GInstanceInitFunc) gimp_error_dialog_init
70
dialog_type = g_type_register_static (GIMP_TYPE_DIALOG,
40
static void gimp_error_dialog_finalize (GObject *object);
41
static void gimp_error_dialog_response (GtkDialog *dialog,
45
G_DEFINE_TYPE (GimpErrorDialog, gimp_error_dialog, GIMP_TYPE_DIALOG)
47
#define parent_class gimp_error_dialog_parent_class
79
51
gimp_error_dialog_class_init (GimpErrorDialogClass *klass)
81
53
GObjectClass *object_class = G_OBJECT_CLASS (klass);
82
54
GtkDialogClass *dialog_class = GTK_DIALOG_CLASS (klass);
84
parent_class = g_type_class_peek_parent (klass);
86
56
object_class->finalize = gimp_error_dialog_finalize;
88
58
dialog_class->response = gimp_error_dialog_response;
143
gimp_error_dialog_set_icon (GtkWidget *dialog,
144
const gchar *stock_id)
146
GtkIconSet *icon_set;
148
gtk_widget_ensure_style (dialog);
150
icon_set = gtk_style_lookup_icon_set (dialog->style, stock_id);
158
gtk_icon_set_get_sizes (icon_set, &sizes, &n_sizes);
160
for (i = 0; i < n_sizes; i++)
162
if (sizes[i] < GTK_ICON_SIZE_DIALOG) /* skip the large version */
163
icons = g_list_prepend (icons,
164
gtk_widget_render_icon (dialog,
173
gtk_window_set_icon_list (GTK_WINDOW (dialog), icons);
175
g_list_foreach (icons, (GFunc) g_object_unref, NULL);
182
112
/* public functions */
185
gimp_error_dialog_new (const gchar *title,
186
const gchar *stock_id)
115
gimp_error_dialog_new (const gchar *title)
190
117
g_return_val_if_fail (title != NULL, NULL);
192
dialog = g_object_new (GIMP_TYPE_ERROR_DIALOG,
197
gimp_error_dialog_set_icon (dialog, stock_id);
119
return g_object_new (GIMP_TYPE_ERROR_DIALOG,