static gboolean gimp_display_shell_progress_message (GimpProgress *progress, Gimp *gimp, GimpMessageSeverity severity, const gchar *domain, const gchar *message) { GimpDisplayShell *shell = GIMP_DISPLAY_SHELL (progress); GimpStatusbar *statusbar = gimp_display_shell_get_statusbar (shell); switch (severity) { case GIMP_MESSAGE_ERROR: /* error messages are never handled here */ break; case GIMP_MESSAGE_WARNING: /* warning messages go to the statusbar, if it's visible */ if (! gimp_statusbar_get_visible (statusbar)) break; else return gimp_progress_message (GIMP_PROGRESS (statusbar), gimp, severity, domain, message); case GIMP_MESSAGE_INFO: /* info messages go to the statusbar; * if they are not handled there, they are swallowed */ gimp_progress_message (GIMP_PROGRESS (statusbar), gimp, severity, domain, message); return TRUE; } return FALSE; }
static gboolean gimp_sub_progress_message (GimpProgress *progress, Gimp *gimp, GimpMessageSeverity severity, const gchar *domain, const gchar *message) { GimpSubProgress *sub = GIMP_SUB_PROGRESS (progress); if (sub->progress) return gimp_progress_message (sub->progress, gimp, severity, domain, message); return FALSE; }
static gboolean gimp_display_progress_message (GimpProgress *progress, Gimp *gimp, GimpMessageSeverity severity, const gchar *domain, const gchar *message) { GimpDisplay *display = GIMP_DISPLAY (progress); if (display->shell) return gimp_progress_message (GIMP_PROGRESS (display->shell), gimp, severity, domain, message); return FALSE; }
void gimp_show_message (Gimp *gimp, GObject *handler, GimpMessageSeverity severity, const gchar *domain, const gchar *message) { const gchar *desc = "Message"; g_return_if_fail (GIMP_IS_GIMP (gimp)); g_return_if_fail (handler == NULL || G_IS_OBJECT (handler)); g_return_if_fail (message != NULL); if (! domain) domain = GIMP_ACRONYM; if (! gimp->console_messages) { if (gimp->gui.show_message) { gimp->gui.show_message (gimp, handler, severity, domain, message); return; } else if (GIMP_IS_PROGRESS (handler) && gimp_progress_message (GIMP_PROGRESS (handler), gimp, severity, domain, message)) { /* message has been handled by GimpProgress */ return; } } gimp_enum_get_value (GIMP_TYPE_MESSAGE_SEVERITY, severity, NULL, NULL, &desc, NULL); g_printerr ("%s-%s: %s\n\n", domain, desc, message); }
static gboolean gui_message_error_dialog (Gimp *gimp, GObject *handler, GimpMessageSeverity severity, const gchar *domain, const gchar *message) { GtkWidget *dialog; if (GIMP_IS_PROGRESS (handler)) { /* If there's already an error dialog associated with this * progress, then continue without trying gimp_progress_message(). */ if (! g_object_get_data (handler, "gimp-error-dialog") && gimp_progress_message (GIMP_PROGRESS (handler), gimp, severity, domain, message)) { return TRUE; } } else if (GTK_IS_WIDGET (handler)) { GtkWidget *parent = GTK_WIDGET (handler); GtkMessageType type = GTK_MESSAGE_ERROR; switch (severity) { case GIMP_MESSAGE_INFO: type = GTK_MESSAGE_INFO; break; case GIMP_MESSAGE_WARNING: type = GTK_MESSAGE_WARNING; break; case GIMP_MESSAGE_ERROR: type = GTK_MESSAGE_ERROR; break; } dialog = gtk_message_dialog_new (GTK_WINDOW (gtk_widget_get_toplevel (parent)), GTK_DIALOG_DESTROY_WITH_PARENT, type, GTK_BUTTONS_OK, "%s", message); g_signal_connect (dialog, "response", G_CALLBACK (gtk_widget_destroy), NULL); gtk_widget_show (dialog); return TRUE; } if (GIMP_IS_PROGRESS (handler) && ! GIMP_IS_PROGRESS_DIALOG (handler)) dialog = progress_error_dialog (GIMP_PROGRESS (handler)); else dialog = global_error_dialog (); if (dialog) { gimp_error_dialog_add (GIMP_ERROR_DIALOG (dialog), gimp_get_message_stock_id (severity), domain, message); gtk_window_present (GTK_WINDOW (dialog)); return TRUE; } return FALSE; }