static gboolean gimp_thumb_box_progress_is_active (GimpProgress *progress) { GimpThumbBox *box = GIMP_THUMB_BOX (progress); return box->progress_active; }
static void gimp_file_dialog_update_preview (GtkFileChooser *chooser, GimpFileDialog *dialog) { gimp_thumb_box_take_uri (GIMP_THUMB_BOX (dialog->thumb_box), gtk_file_chooser_get_preview_uri (chooser)); }
static GimpProgress * gimp_thumb_box_progress_start (GimpProgress *progress, const gchar *message, gboolean cancelable) { GimpThumbBox *box = GIMP_THUMB_BOX (progress); if (! box->progress_active) { GtkProgressBar *bar = GTK_PROGRESS_BAR (box->progress); GtkWidget *toplevel; gtk_progress_bar_set_fraction (bar, 0.0); box->progress_active = TRUE; toplevel = gtk_widget_get_toplevel (GTK_WIDGET (box)); if (GIMP_IS_FILE_DIALOG (toplevel)) gtk_dialog_set_response_sensitive (GTK_DIALOG (toplevel), GTK_RESPONSE_CANCEL, cancelable); return progress; } return NULL; }
static void gimp_file_dialog_selection_changed (GtkFileChooser *chooser, GimpFileDialog *dialog) { gimp_thumb_box_take_uris (GIMP_THUMB_BOX (dialog->thumb_box), gtk_file_chooser_get_uris (chooser)); }
static void gimp_file_dialog_add_preview (GimpFileDialog *dialog, Gimp *gimp) { if (gimp->config->thumbnail_size <= 0) return; gtk_file_chooser_set_use_preview_label (GTK_FILE_CHOOSER (dialog), FALSE); g_signal_connect (dialog, "selection-changed", G_CALLBACK (gimp_file_dialog_selection_changed), dialog); g_signal_connect (dialog, "update-preview", G_CALLBACK (gimp_file_dialog_update_preview), dialog); dialog->thumb_box = gimp_thumb_box_new (gimp_get_user_context (gimp)); gtk_widget_set_sensitive (GTK_WIDGET (dialog->thumb_box), FALSE); gtk_file_chooser_set_preview_widget (GTK_FILE_CHOOSER (dialog), dialog->thumb_box); gtk_widget_show (dialog->thumb_box); #ifdef ENABLE_FILE_SYSTEM_ICONS GIMP_VIEW_RENDERER_IMAGEFILE (GIMP_VIEW (GIMP_THUMB_BOX (dialog->thumb_box)->preview)->renderer)->file_system = _gtk_file_chooser_get_file_system (GTK_FILE_CHOOSER (dialog)); #endif }
static void gimp_thumb_box_progress_pulse (GimpProgress *progress) { if (gimp_thumb_box_progress_is_active (progress)) { GimpThumbBox *box = GIMP_THUMB_BOX (progress); GtkProgressBar *bar = GTK_PROGRESS_BAR (box->progress); gtk_progress_bar_pulse (bar); } }
static void gimp_thumb_box_progress_set_value (GimpProgress *progress, gdouble percentage) { if (gimp_thumb_box_progress_is_active (progress)) { GimpThumbBox *box = GIMP_THUMB_BOX (progress); GtkProgressBar *bar = GTK_PROGRESS_BAR (box->progress); gtk_progress_bar_set_fraction (bar, percentage); } }
static void gimp_thumb_box_dispose (GObject *object) { GimpThumbBox *box = GIMP_THUMB_BOX (object); if (box->idle_id) { g_source_remove (box->idle_id); box->idle_id = 0; } G_OBJECT_CLASS (parent_class)->dispose (object); }
static gdouble gimp_thumb_box_progress_get_value (GimpProgress *progress) { if (gimp_thumb_box_progress_is_active (progress)) { GimpThumbBox *box = GIMP_THUMB_BOX (progress); GtkProgressBar *bar = GTK_PROGRESS_BAR (box->progress); return gtk_progress_bar_get_fraction (bar); } return 0.0; }
static void gimp_thumb_box_progress_end (GimpProgress *progress) { if (gimp_thumb_box_progress_is_active (progress)) { GimpThumbBox *box = GIMP_THUMB_BOX (progress); GtkProgressBar *bar = GTK_PROGRESS_BAR (box->progress); gtk_progress_bar_set_fraction (bar, 0.0); box->progress_active = FALSE; } }
static void gimp_thumb_box_finalize (GObject *object) { GimpThumbBox *box = GIMP_THUMB_BOX (object); gimp_thumb_box_take_uris (box, NULL); if (box->imagefile) { g_object_unref (box->imagefile); box->imagefile = NULL; } G_OBJECT_CLASS (parent_class)->finalize (object); }
static void gimp_thumb_box_style_set (GtkWidget *widget, GtkStyle *prev_style) { GimpThumbBox *box = GIMP_THUMB_BOX (widget); GtkWidget *ebox; GTK_WIDGET_CLASS (parent_class)->style_set (widget, prev_style); gtk_widget_modify_bg (box->preview, GTK_STATE_NORMAL, &widget->style->base[GTK_STATE_NORMAL]); gtk_widget_modify_bg (box->preview, GTK_STATE_INSENSITIVE, &widget->style->base[GTK_STATE_NORMAL]); ebox = gtk_bin_get_child (GTK_BIN (widget)); gtk_widget_modify_bg (ebox, GTK_STATE_NORMAL, &widget->style->base[GTK_STATE_NORMAL]); gtk_widget_modify_bg (ebox, GTK_STATE_INSENSITIVE, &widget->style->base[GTK_STATE_NORMAL]); }