static void webx_dialog_update (WebxDialog *dlg, WebxPipelineOutput *output) { gchar text[256]; g_return_if_fail (WEBX_DIALOG (dlg)); if (output->background) { webx_preview_update (WEBX_PREVIEW (dlg->preview), output->background, output->target, &output->target_rect, output->file_size); webx_crop_widget_update (WEBX_CROP_WIDGET (dlg->crop), &output->target_rect, output->bg_width, output->bg_height); webx_resize_widget_update (WEBX_RESIZE_WIDGET (dlg->resize), output->bg_width, output->bg_height); } else { webx_preview_update_target (WEBX_PREVIEW (dlg->preview), output->target, output->file_size); } g_snprintf (text, sizeof (text), _("File size: %02.01f kB"), (gdouble) output->file_size / 1024.0); gtk_label_set_text (GTK_LABEL (dlg->file_size_label), text); }
static void webx_dialog_destroy (GtkObject *object) { WebxDialog *dlg = WEBX_DIALOG (object); if (dlg->pipeline) { g_object_unref (dlg->pipeline); dlg->pipeline = NULL; } if (dlg->target_list) { g_slist_free (dlg->target_list); dlg->target_list = NULL; } if (dlg->radio_list) { g_slist_free (dlg->radio_list); dlg->radio_list = NULL; } if (GTK_OBJECT_CLASS (parent_class)->destroy) GTK_OBJECT_CLASS (parent_class)->destroy (GTK_OBJECT (dlg)); }
static void webx_dialog_target_changed (WebxTarget *target, WebxDialog *dlg) { g_return_if_fail (WEBX_DIALOG (dlg)); webx_pipeline_set_target (WEBX_PIPELINE (dlg->pipeline), GTK_OBJECT (target)); }
static void webx_dialog_response (GtkWidget *widget, gint response_id, gpointer data) { switch (response_id) { case GTK_RESPONSE_OK: if (webx_dialog_save_dialog (WEBX_DIALOG (widget))) { webx_dialog_close (WEBX_DIALOG (widget)); } break; default: webx_dialog_close (WEBX_DIALOG (widget)); break; } }
void webx_dialog_run (WebxDialog *dlg) { g_return_if_fail (WEBX_IS_DIALOG (dlg)); if (! dlg->target) webx_dialog_format_set (WEBX_DIALOG (dlg), WEBX_TARGET (dlg->target_list->data)); webx_dialog_reset (dlg); webx_pipeline_run (WEBX_PIPELINE (dlg->pipeline)); gtk_window_present (GTK_WINDOW (dlg)); gtk_main(); }
static void webx_run (gint32 image_ID, gint32 drawable_ID) { GtkWidget *dlg; gimp_ui_init (PLUG_IN_BINARY, FALSE); global_image_ID = image_ID; global_drawable_ID = drawable_ID; dlg = webx_dialog_new (image_ID, drawable_ID); webx_dialog_run (WEBX_DIALOG (dlg)); }
static void webx_dialog_format_changed (GtkToggleButton *togglebutton, WebxDialog *dlg) { g_return_if_fail (WEBX_IS_DIALOG (dlg)); if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (togglebutton))) { GtkWidget *widget; gint position; position = g_slist_index (dlg->radio_list, togglebutton); widget = GTK_WIDGET (g_slist_nth (dlg->target_list, position)->data); webx_dialog_format_set (WEBX_DIALOG (dlg), WEBX_TARGET (widget)); } }
static void webx_dialog_crop_changed (GtkWidget *widget, GdkRectangle *crop, WebxDialog *dlg) { g_return_if_fail (WEBX_DIALOG (dlg)); if (! webx_pipeline_crop (WEBX_PIPELINE (dlg->pipeline), crop->width, crop->height, crop->x, crop->y, FALSE)) return; webx_crop_widget_update_target (WEBX_CROP_WIDGET (dlg->crop), crop); webx_preview_crop (WEBX_PREVIEW (dlg->preview), crop); }
static void webx_run (gint32 image_ID, gint32 drawable_ID) { GtkWidget *dlg; gimp_ui_init (PLUG_IN_BINARY, FALSE); global_image_ID = image_ID; global_drawable_ID = drawable_ID; if (gimp_image_width (image_ID) > WEBX_MAX_SIZE || gimp_image_height (image_ID) > WEBX_MAX_SIZE) { gimp_message (_("The image is too large for Save for Web!")); return; } dlg = webx_dialog_new (image_ID, drawable_ID); webx_dialog_run (WEBX_DIALOG (dlg)); }