mirror of
https://gitlab.gnome.org/GNOME/gimp
synced 2024-10-20 07:57:21 +00:00
app/commands.[ch] app/fileops.[ch] app/gdisplay.c Implemented "Save a Copy
2001-01-02 Michael Natterer <mitch@gimp.org> * app/commands.[ch] * app/fileops.[ch] * app/gdisplay.c * app/menus.c: Implemented "Save a Copy as..." which saves the image without changing it's filename. * app/layers_dialogP.h: export layers_dialog_layer_merge_query() here instead of defining it in commands.c * TODO.xml: mark this entry as done :)
This commit is contained in:
parent
6684bb77b0
commit
9ccab8523a
13
ChangeLog
13
ChangeLog
|
@ -1,3 +1,16 @@
|
|||
2001-01-02 Michael Natterer <mitch@gimp.org>
|
||||
|
||||
* app/commands.[ch]
|
||||
* app/fileops.[ch]
|
||||
* app/gdisplay.c
|
||||
* app/menus.c: Implemented "Save a Copy as..." which saves the image
|
||||
without changing it's filename.
|
||||
|
||||
* app/layers_dialogP.h: export layers_dialog_layer_merge_query()
|
||||
here instead of defining it in commands.c
|
||||
|
||||
* TODO.xml: mark this entry as done :)
|
||||
|
||||
2001-01-01 Michael Natterer <mitch@gimp.org>
|
||||
|
||||
* TODO.xml: added a TODO item for "Save a Copy..."
|
||||
|
|
2
TODO.xml
2
TODO.xml
|
@ -235,7 +235,7 @@
|
|||
</contact>
|
||||
</entry>
|
||||
|
||||
<entry size="small" difficulty="easy" status="0%" target="1.4">
|
||||
<entry size="small" difficulty="easy" status="100%" target="1.4">
|
||||
<title>Implement "Save a Copy..."</title>
|
||||
<description>
|
||||
<p>
|
||||
|
|
|
@ -59,6 +59,7 @@
|
|||
#include "invert.h"
|
||||
#include "lc_dialog.h"
|
||||
#include "layer_select.h"
|
||||
#include "layers_dialogP.h"
|
||||
#include "module_db.h"
|
||||
#include "palette.h"
|
||||
#include "pattern_select.h"
|
||||
|
@ -84,20 +85,29 @@
|
|||
gdisp = gdisplay_active (); \
|
||||
if (!gdisp) return
|
||||
|
||||
/* external functions */
|
||||
extern void layers_dialog_layer_merge_query (GImage *, gboolean);
|
||||
|
||||
/* local functions */
|
||||
static void image_resize_callback (GtkWidget *, gpointer);
|
||||
static void image_scale_callback (GtkWidget *, gpointer);
|
||||
static void gimage_mask_feather_callback (GtkWidget *, gdouble, GimpUnit,
|
||||
gpointer);
|
||||
static void gimage_mask_border_callback (GtkWidget *, gdouble, GimpUnit,
|
||||
gpointer);
|
||||
static void gimage_mask_grow_callback (GtkWidget *, gdouble, GimpUnit,
|
||||
gpointer);
|
||||
static void gimage_mask_shrink_callback (GtkWidget *, gdouble, GimpUnit,
|
||||
gpointer);
|
||||
static void image_resize_callback (GtkWidget *,
|
||||
gpointer );
|
||||
static void image_scale_callback (GtkWidget *,
|
||||
gpointer );
|
||||
static void gimage_mask_feather_callback (GtkWidget *,
|
||||
gdouble ,
|
||||
GimpUnit ,
|
||||
gpointer );
|
||||
static void gimage_mask_border_callback (GtkWidget *,
|
||||
gdouble ,
|
||||
GimpUnit ,
|
||||
gpointer );
|
||||
static void gimage_mask_grow_callback (GtkWidget *,
|
||||
gdouble ,
|
||||
GimpUnit ,
|
||||
gpointer );
|
||||
static void gimage_mask_shrink_callback (GtkWidget *,
|
||||
gdouble ,
|
||||
GimpUnit ,
|
||||
gpointer );
|
||||
|
||||
|
||||
/* local variables */
|
||||
static gdouble selection_feather_radius = 5.0;
|
||||
|
@ -130,6 +140,13 @@ file_save_as_cmd_callback (GtkWidget *widget,
|
|||
file_save_as_callback (widget, client_data);
|
||||
}
|
||||
|
||||
void
|
||||
file_save_a_copy_as_cmd_callback (GtkWidget *widget,
|
||||
gpointer client_data)
|
||||
{
|
||||
file_save_a_copy_as_callback (widget, client_data);
|
||||
}
|
||||
|
||||
void
|
||||
file_revert_cmd_callback (GtkWidget *widget,
|
||||
gpointer client_data)
|
||||
|
|
|
@ -20,14 +20,15 @@
|
|||
#define __COMMANDS_H__
|
||||
|
||||
|
||||
void file_new_cmd_callback (GtkWidget *, gpointer, guint);
|
||||
void file_open_cmd_callback (GtkWidget *, gpointer);
|
||||
void file_save_cmd_callback (GtkWidget *, gpointer);
|
||||
void file_save_as_cmd_callback (GtkWidget *, gpointer);
|
||||
void file_revert_cmd_callback (GtkWidget *, gpointer);
|
||||
void file_pref_cmd_callback (GtkWidget *, gpointer);
|
||||
void file_close_cmd_callback (GtkWidget *, gpointer);
|
||||
void file_quit_cmd_callback (GtkWidget *, gpointer);
|
||||
void file_new_cmd_callback (GtkWidget *, gpointer, guint);
|
||||
void file_open_cmd_callback (GtkWidget *, gpointer);
|
||||
void file_save_cmd_callback (GtkWidget *, gpointer);
|
||||
void file_save_as_cmd_callback (GtkWidget *, gpointer);
|
||||
void file_save_a_copy_as_cmd_callback (GtkWidget *, gpointer);
|
||||
void file_revert_cmd_callback (GtkWidget *, gpointer);
|
||||
void file_pref_cmd_callback (GtkWidget *, gpointer);
|
||||
void file_close_cmd_callback (GtkWidget *, gpointer);
|
||||
void file_quit_cmd_callback (GtkWidget *, gpointer);
|
||||
|
||||
void edit_undo_cmd_callback (GtkWidget *, gpointer);
|
||||
void edit_redo_cmd_callback (GtkWidget *, gpointer);
|
||||
|
|
|
@ -59,6 +59,7 @@
|
|||
#include "invert.h"
|
||||
#include "lc_dialog.h"
|
||||
#include "layer_select.h"
|
||||
#include "layers_dialogP.h"
|
||||
#include "module_db.h"
|
||||
#include "palette.h"
|
||||
#include "pattern_select.h"
|
||||
|
@ -84,20 +85,29 @@
|
|||
gdisp = gdisplay_active (); \
|
||||
if (!gdisp) return
|
||||
|
||||
/* external functions */
|
||||
extern void layers_dialog_layer_merge_query (GImage *, gboolean);
|
||||
|
||||
/* local functions */
|
||||
static void image_resize_callback (GtkWidget *, gpointer);
|
||||
static void image_scale_callback (GtkWidget *, gpointer);
|
||||
static void gimage_mask_feather_callback (GtkWidget *, gdouble, GimpUnit,
|
||||
gpointer);
|
||||
static void gimage_mask_border_callback (GtkWidget *, gdouble, GimpUnit,
|
||||
gpointer);
|
||||
static void gimage_mask_grow_callback (GtkWidget *, gdouble, GimpUnit,
|
||||
gpointer);
|
||||
static void gimage_mask_shrink_callback (GtkWidget *, gdouble, GimpUnit,
|
||||
gpointer);
|
||||
static void image_resize_callback (GtkWidget *,
|
||||
gpointer );
|
||||
static void image_scale_callback (GtkWidget *,
|
||||
gpointer );
|
||||
static void gimage_mask_feather_callback (GtkWidget *,
|
||||
gdouble ,
|
||||
GimpUnit ,
|
||||
gpointer );
|
||||
static void gimage_mask_border_callback (GtkWidget *,
|
||||
gdouble ,
|
||||
GimpUnit ,
|
||||
gpointer );
|
||||
static void gimage_mask_grow_callback (GtkWidget *,
|
||||
gdouble ,
|
||||
GimpUnit ,
|
||||
gpointer );
|
||||
static void gimage_mask_shrink_callback (GtkWidget *,
|
||||
gdouble ,
|
||||
GimpUnit ,
|
||||
gpointer );
|
||||
|
||||
|
||||
/* local variables */
|
||||
static gdouble selection_feather_radius = 5.0;
|
||||
|
@ -130,6 +140,13 @@ file_save_as_cmd_callback (GtkWidget *widget,
|
|||
file_save_as_callback (widget, client_data);
|
||||
}
|
||||
|
||||
void
|
||||
file_save_a_copy_as_cmd_callback (GtkWidget *widget,
|
||||
gpointer client_data)
|
||||
{
|
||||
file_save_a_copy_as_callback (widget, client_data);
|
||||
}
|
||||
|
||||
void
|
||||
file_revert_cmd_callback (GtkWidget *widget,
|
||||
gpointer client_data)
|
||||
|
|
|
@ -20,14 +20,15 @@
|
|||
#define __COMMANDS_H__
|
||||
|
||||
|
||||
void file_new_cmd_callback (GtkWidget *, gpointer, guint);
|
||||
void file_open_cmd_callback (GtkWidget *, gpointer);
|
||||
void file_save_cmd_callback (GtkWidget *, gpointer);
|
||||
void file_save_as_cmd_callback (GtkWidget *, gpointer);
|
||||
void file_revert_cmd_callback (GtkWidget *, gpointer);
|
||||
void file_pref_cmd_callback (GtkWidget *, gpointer);
|
||||
void file_close_cmd_callback (GtkWidget *, gpointer);
|
||||
void file_quit_cmd_callback (GtkWidget *, gpointer);
|
||||
void file_new_cmd_callback (GtkWidget *, gpointer, guint);
|
||||
void file_open_cmd_callback (GtkWidget *, gpointer);
|
||||
void file_save_cmd_callback (GtkWidget *, gpointer);
|
||||
void file_save_as_cmd_callback (GtkWidget *, gpointer);
|
||||
void file_save_a_copy_as_cmd_callback (GtkWidget *, gpointer);
|
||||
void file_revert_cmd_callback (GtkWidget *, gpointer);
|
||||
void file_pref_cmd_callback (GtkWidget *, gpointer);
|
||||
void file_close_cmd_callback (GtkWidget *, gpointer);
|
||||
void file_quit_cmd_callback (GtkWidget *, gpointer);
|
||||
|
||||
void edit_undo_cmd_callback (GtkWidget *, gpointer);
|
||||
void edit_redo_cmd_callback (GtkWidget *, gpointer);
|
||||
|
|
|
@ -1777,7 +1777,8 @@ gdisplay_set_menu_sensitivity (GDisplay *gdisp)
|
|||
menus_set_state ("<Image>/" menu, (condition) != 0)
|
||||
|
||||
SET_SENSITIVE ("File/Save", gdisp && drawable);
|
||||
SET_SENSITIVE ("File/Save As...", gdisp && drawable);
|
||||
SET_SENSITIVE ("File/Save as...", gdisp && drawable);
|
||||
SET_SENSITIVE ("File/Save a Copy as...", gdisp && drawable);
|
||||
SET_SENSITIVE ("File/Revert...", gdisp && gdisp->gimage->filename);
|
||||
SET_SENSITIVE ("File/Close", gdisp);
|
||||
|
||||
|
|
|
@ -1777,7 +1777,8 @@ gdisplay_set_menu_sensitivity (GDisplay *gdisp)
|
|||
menus_set_state ("<Image>/" menu, (condition) != 0)
|
||||
|
||||
SET_SENSITIVE ("File/Save", gdisp && drawable);
|
||||
SET_SENSITIVE ("File/Save As...", gdisp && drawable);
|
||||
SET_SENSITIVE ("File/Save as...", gdisp && drawable);
|
||||
SET_SENSITIVE ("File/Save a Copy as...", gdisp && drawable);
|
||||
SET_SENSITIVE ("File/Revert...", gdisp && gdisp->gimage->filename);
|
||||
SET_SENSITIVE ("File/Close", gdisp);
|
||||
|
||||
|
|
575
app/fileops.c
575
app/fileops.c
|
@ -102,6 +102,9 @@ struct _OverwriteData
|
|||
};
|
||||
|
||||
|
||||
static void file_open_dialog_create (void);
|
||||
static void file_save_dialog_create (void);
|
||||
|
||||
static void file_overwrite (gchar *filename,
|
||||
gchar *raw_filename);
|
||||
static void file_overwrite_callback (GtkWidget *widget,
|
||||
|
@ -120,7 +123,8 @@ static GimpImage * file_open_image (const gchar *filename,
|
|||
static gint file_save (GimpImage *gimage,
|
||||
gchar *filename,
|
||||
gchar *raw_filename,
|
||||
RunModeType run_mode);
|
||||
RunModeType run_mode,
|
||||
gboolean set_filename);
|
||||
|
||||
static void file_open_genbutton_callback (GtkWidget *widget,
|
||||
gpointer data);
|
||||
|
@ -191,7 +195,8 @@ GSList *save_procs = NULL;
|
|||
static PlugInProcDef *load_file_proc = NULL;
|
||||
static PlugInProcDef *save_file_proc = NULL;
|
||||
|
||||
static GimpImage *the_gimage = NULL;
|
||||
static GimpImage *the_gimage = NULL;
|
||||
static gboolean set_filename = TRUE;
|
||||
|
||||
extern GSList *display_list; /* from gdisplay.c */
|
||||
|
||||
|
@ -258,163 +263,148 @@ file_ops_post_init (void)
|
|||
}
|
||||
}
|
||||
|
||||
void
|
||||
file_open_callback (GtkWidget *widget,
|
||||
gpointer data)
|
||||
static void
|
||||
file_open_dialog_create (void)
|
||||
{
|
||||
if (!fileload)
|
||||
fileload = gtk_file_selection_new (_("Load Image"));
|
||||
gtk_window_set_position (GTK_WINDOW (fileload), GTK_WIN_POS_MOUSE);
|
||||
gtk_window_set_wmclass (GTK_WINDOW (fileload), "load_image", "Gimp");
|
||||
|
||||
gtk_container_set_border_width (GTK_CONTAINER (fileload), 2);
|
||||
gtk_container_set_border_width
|
||||
(GTK_CONTAINER (GTK_FILE_SELECTION (fileload)->button_area), 2);
|
||||
|
||||
dialog_register_fileload (fileload);
|
||||
|
||||
gtk_signal_connect_object
|
||||
(GTK_OBJECT (GTK_FILE_SELECTION (fileload)->cancel_button), "clicked",
|
||||
GTK_SIGNAL_FUNC (file_dialog_hide),
|
||||
GTK_OBJECT (fileload));
|
||||
gtk_signal_connect (GTK_OBJECT (fileload), "delete_event",
|
||||
GTK_SIGNAL_FUNC (file_dialog_hide),
|
||||
NULL);
|
||||
gtk_signal_connect
|
||||
(GTK_OBJECT (GTK_FILE_SELECTION (fileload)->ok_button), "clicked",
|
||||
GTK_SIGNAL_FUNC (file_open_ok_callback),
|
||||
fileload);
|
||||
gtk_quit_add_destroy (1, GTK_OBJECT (fileload));
|
||||
|
||||
gtk_clist_set_selection_mode
|
||||
(GTK_CLIST (GTK_FILE_SELECTION (fileload)->file_list),
|
||||
GTK_SELECTION_EXTENDED);
|
||||
|
||||
/* Catch file-clist clicks so we can update the preview thumbnail */
|
||||
gtk_signal_connect
|
||||
(GTK_OBJECT (GTK_FILE_SELECTION (fileload)->file_list), "select_row",
|
||||
GTK_SIGNAL_FUNC (file_open_clistrow_callback),
|
||||
fileload);
|
||||
|
||||
/* Connect the "F1" help key */
|
||||
gimp_help_connect_help_accel (fileload,
|
||||
gimp_standard_help_func,
|
||||
"open/dialogs/file_open.html");
|
||||
|
||||
{
|
||||
GtkWidget *frame;
|
||||
GtkWidget *vbox;
|
||||
GtkWidget *hbox;
|
||||
GtkWidget *option_menu;
|
||||
GtkWidget *load_menu;
|
||||
GtkWidget *open_options_genbutton;
|
||||
|
||||
open_options = gtk_hbox_new (TRUE, 1);
|
||||
|
||||
/* format-chooser frame */
|
||||
frame = gtk_frame_new (_("Determine File Type"));
|
||||
gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_ETCHED_IN);
|
||||
gtk_box_pack_start (GTK_BOX (open_options), frame, TRUE, TRUE, 4);
|
||||
|
||||
vbox = gtk_vbox_new (FALSE, 2);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (vbox), 4);
|
||||
gtk_container_add (GTK_CONTAINER (frame), vbox);
|
||||
|
||||
hbox = gtk_hbox_new (FALSE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
|
||||
gtk_widget_show (hbox);
|
||||
|
||||
option_menu = gtk_option_menu_new ();
|
||||
gtk_box_pack_start (GTK_BOX (hbox), option_menu, FALSE, FALSE, 0);
|
||||
gtk_widget_show (option_menu);
|
||||
|
||||
menus_get_load_menu (&load_menu, NULL);
|
||||
gtk_option_menu_set_menu (GTK_OPTION_MENU (option_menu), load_menu);
|
||||
|
||||
gtk_widget_show (vbox);
|
||||
gtk_widget_show (frame);
|
||||
|
||||
/* Preview frame */
|
||||
open_options_frame = frame = gtk_frame_new ("");
|
||||
gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_ETCHED_IN);
|
||||
gtk_box_pack_end (GTK_BOX (open_options), frame, FALSE, TRUE, 4);
|
||||
|
||||
vbox = gtk_vbox_new (FALSE, 2);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (vbox), 4);
|
||||
gtk_container_add (GTK_CONTAINER (frame), vbox);
|
||||
|
||||
hbox = gtk_hbox_new (TRUE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
|
||||
gtk_widget_show (hbox);
|
||||
|
||||
open_options_genbutton = gtk_button_new ();
|
||||
gtk_signal_connect (GTK_OBJECT (open_options_genbutton), "clicked",
|
||||
GTK_SIGNAL_FUNC (file_open_genbutton_callback),
|
||||
fileload);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), open_options_genbutton,
|
||||
TRUE, FALSE, 0);
|
||||
gtk_widget_show (open_options_genbutton);
|
||||
|
||||
open_options_fixed = gtk_fixed_new ();
|
||||
gtk_widget_set_usize (open_options_fixed, 80, 60);
|
||||
gtk_container_add (GTK_CONTAINER (GTK_BIN (open_options_genbutton)),
|
||||
open_options_fixed);
|
||||
gtk_widget_show (open_options_fixed);
|
||||
|
||||
{
|
||||
fileload = gtk_file_selection_new (_("Load Image"));
|
||||
gtk_window_set_position (GTK_WINDOW (fileload), GTK_WIN_POS_MOUSE);
|
||||
gtk_window_set_wmclass (GTK_WINDOW (fileload), "load_image", "Gimp");
|
||||
GtkWidget* abox;
|
||||
GtkWidget* sbox;
|
||||
GtkWidget* align;
|
||||
|
||||
gtk_container_set_border_width (GTK_CONTAINER (fileload), 2);
|
||||
gtk_container_set_border_width
|
||||
(GTK_CONTAINER (GTK_FILE_SELECTION (fileload)->button_area), 2);
|
||||
sbox = gtk_vbox_new (TRUE, 0);
|
||||
gtk_container_add (GTK_CONTAINER (open_options_fixed), sbox);
|
||||
gtk_widget_show (sbox);
|
||||
|
||||
dialog_register_fileload (fileload);
|
||||
align = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
|
||||
gtk_widget_set_usize (align, 80, 60);
|
||||
gtk_box_pack_start (GTK_BOX (sbox), align, FALSE, TRUE, 0);
|
||||
gtk_widget_show (align);
|
||||
|
||||
gtk_signal_connect_object (GTK_OBJECT (GTK_FILE_SELECTION (fileload)->cancel_button),
|
||||
"clicked",
|
||||
GTK_SIGNAL_FUNC (file_dialog_hide),
|
||||
GTK_OBJECT (fileload));
|
||||
gtk_signal_connect (GTK_OBJECT (fileload), "delete_event",
|
||||
GTK_SIGNAL_FUNC (file_dialog_hide),
|
||||
NULL);
|
||||
gtk_signal_connect (GTK_OBJECT (GTK_FILE_SELECTION (fileload)->ok_button),
|
||||
"clicked",
|
||||
GTK_SIGNAL_FUNC (file_open_ok_callback),
|
||||
fileload);
|
||||
gtk_quit_add_destroy (1, GTK_OBJECT (fileload));
|
||||
abox = gtk_hbox_new (FALSE, 0);
|
||||
gtk_container_add (GTK_CONTAINER (align), abox);
|
||||
gtk_widget_show (abox);
|
||||
|
||||
gtk_clist_set_selection_mode (GTK_CLIST
|
||||
(GTK_FILE_SELECTION (fileload)->file_list),
|
||||
GTK_SELECTION_EXTENDED);
|
||||
open_options_preview =
|
||||
GTK_PREVIEW (gtk_preview_new (GTK_PREVIEW_COLOR));
|
||||
gtk_box_pack_start (GTK_BOX (abox), GTK_WIDGET (open_options_preview),
|
||||
FALSE, TRUE, 0);
|
||||
gtk_widget_show (GTK_WIDGET (open_options_preview));
|
||||
|
||||
/* Catch file-clist clicks so we can update the preview thumbnail */
|
||||
gtk_signal_connect (GTK_OBJECT (GTK_FILE_SELECTION (fileload)->file_list),
|
||||
"select_row",
|
||||
GTK_SIGNAL_FUNC (file_open_clistrow_callback),
|
||||
fileload);
|
||||
|
||||
/* Connect the "F1" help key */
|
||||
gimp_help_connect_help_accel (fileload,
|
||||
gimp_standard_help_func,
|
||||
"open/dialogs/file_open.html");
|
||||
}
|
||||
else
|
||||
{
|
||||
gtk_widget_set_sensitive (GTK_WIDGET (fileload), TRUE);
|
||||
if (GTK_WIDGET_VISIBLE (fileload))
|
||||
return;
|
||||
|
||||
gtk_file_selection_set_filename (GTK_FILE_SELECTION (fileload),
|
||||
"." G_DIR_SEPARATOR_S);
|
||||
gtk_window_set_title (GTK_WINDOW (fileload), _("Load Image"));
|
||||
open_options_genbuttonlabel = gtk_label_new (_("Generate\nPreview"));
|
||||
gtk_box_pack_start (GTK_BOX (abox), open_options_genbuttonlabel,
|
||||
FALSE, TRUE, 0);
|
||||
gtk_widget_show (open_options_genbuttonlabel);
|
||||
}
|
||||
|
||||
if (!open_options)
|
||||
{
|
||||
GtkWidget *frame;
|
||||
GtkWidget *vbox;
|
||||
GtkWidget *hbox;
|
||||
GtkWidget *option_menu;
|
||||
GtkWidget *load_menu;
|
||||
GtkWidget *open_options_genbutton;
|
||||
open_options_label = gtk_label_new ("");
|
||||
gtk_box_pack_start (GTK_BOX (vbox), open_options_label, FALSE, FALSE, 0);
|
||||
gtk_widget_show (open_options_label);
|
||||
|
||||
open_options = gtk_hbox_new (TRUE, 1);
|
||||
gtk_widget_show (vbox);
|
||||
gtk_widget_show (frame);
|
||||
|
||||
/* format-chooser frame */
|
||||
frame = gtk_frame_new (_("Determine File Type"));
|
||||
gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_ETCHED_IN);
|
||||
gtk_box_pack_start (GTK_BOX (open_options), frame, TRUE, TRUE, 4);
|
||||
|
||||
vbox = gtk_vbox_new (FALSE, 2);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (vbox), 4);
|
||||
gtk_container_add (GTK_CONTAINER (frame), vbox);
|
||||
|
||||
hbox = gtk_hbox_new (FALSE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
|
||||
gtk_widget_show (hbox);
|
||||
|
||||
option_menu = gtk_option_menu_new ();
|
||||
gtk_box_pack_start (GTK_BOX (hbox), option_menu, FALSE, FALSE, 0);
|
||||
gtk_widget_show (option_menu);
|
||||
|
||||
menus_get_load_menu (&load_menu, NULL);
|
||||
gtk_option_menu_set_menu (GTK_OPTION_MENU (option_menu), load_menu);
|
||||
|
||||
gtk_widget_show (vbox);
|
||||
gtk_widget_show (frame);
|
||||
|
||||
/* Preview frame */
|
||||
open_options_frame = frame = gtk_frame_new ("");
|
||||
gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_ETCHED_IN);
|
||||
gtk_box_pack_end (GTK_BOX (open_options), frame, FALSE, TRUE, 4);
|
||||
|
||||
vbox = gtk_vbox_new (FALSE, 2);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (vbox), 4);
|
||||
gtk_container_add (GTK_CONTAINER (frame), vbox);
|
||||
|
||||
hbox = gtk_hbox_new (TRUE, 0);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
|
||||
gtk_widget_show (hbox);
|
||||
|
||||
open_options_genbutton = gtk_button_new ();
|
||||
gtk_signal_connect (GTK_OBJECT (open_options_genbutton), "clicked",
|
||||
GTK_SIGNAL_FUNC (file_open_genbutton_callback),
|
||||
fileload);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), open_options_genbutton,
|
||||
TRUE, FALSE, 0);
|
||||
gtk_widget_show (open_options_genbutton);
|
||||
|
||||
open_options_fixed = gtk_fixed_new ();
|
||||
gtk_widget_set_usize (open_options_fixed, 80, 60);
|
||||
gtk_container_add (GTK_CONTAINER (GTK_BIN (open_options_genbutton)),
|
||||
open_options_fixed);
|
||||
gtk_widget_show (open_options_fixed);
|
||||
|
||||
{
|
||||
GtkWidget* abox;
|
||||
GtkWidget* sbox;
|
||||
GtkWidget* align;
|
||||
|
||||
sbox = gtk_vbox_new (TRUE, 0);
|
||||
gtk_container_add (GTK_CONTAINER (open_options_fixed), sbox);
|
||||
gtk_widget_show (sbox);
|
||||
|
||||
align = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
|
||||
gtk_widget_set_usize (align, 80, 60);
|
||||
gtk_box_pack_start (GTK_BOX (sbox), align, FALSE, TRUE, 0);
|
||||
gtk_widget_show (align);
|
||||
|
||||
abox = gtk_hbox_new (FALSE, 0);
|
||||
gtk_container_add (GTK_CONTAINER (align), abox);
|
||||
gtk_widget_show (abox);
|
||||
|
||||
open_options_preview =
|
||||
GTK_PREVIEW (gtk_preview_new (GTK_PREVIEW_COLOR));
|
||||
gtk_box_pack_start (GTK_BOX (abox), GTK_WIDGET (open_options_preview),
|
||||
FALSE, TRUE, 0);
|
||||
gtk_widget_show (GTK_WIDGET (open_options_preview));
|
||||
|
||||
open_options_genbuttonlabel = gtk_label_new (_("Generate\nPreview"));
|
||||
gtk_box_pack_start (GTK_BOX (abox), open_options_genbuttonlabel,
|
||||
FALSE, TRUE, 0);
|
||||
gtk_widget_show (open_options_genbuttonlabel);
|
||||
}
|
||||
|
||||
open_options_label = gtk_label_new ("");
|
||||
gtk_box_pack_start (GTK_BOX (vbox), open_options_label, FALSE, FALSE, 0);
|
||||
gtk_widget_show (open_options_label);
|
||||
|
||||
gtk_widget_show (vbox);
|
||||
gtk_widget_show (frame);
|
||||
|
||||
/* pack the containing open_options hbox into the open-dialog */
|
||||
gtk_box_pack_end (GTK_BOX (GTK_FILE_SELECTION (fileload)->main_vbox),
|
||||
open_options, FALSE, FALSE, 0);
|
||||
}
|
||||
/* pack the containing open_options hbox into the open-dialog */
|
||||
gtk_box_pack_end (GTK_BOX (GTK_FILE_SELECTION (fileload)->main_vbox),
|
||||
open_options, FALSE, FALSE, 0);
|
||||
}
|
||||
|
||||
gtk_frame_set_label (GTK_FRAME (open_options_frame), _("Preview"));
|
||||
gtk_label_set_text (GTK_LABEL (open_options_label), _("No Selection."));
|
||||
|
@ -422,8 +412,90 @@ file_open_callback (GtkWidget *widget,
|
|||
gtk_widget_show (GTK_WIDGET (open_options_genbuttonlabel));
|
||||
gtk_widget_hide (GTK_WIDGET (open_options_preview));
|
||||
gtk_widget_set_sensitive (GTK_WIDGET (open_options_frame), FALSE);
|
||||
}
|
||||
|
||||
gtk_widget_show (open_options);
|
||||
static void
|
||||
file_save_dialog_create (void)
|
||||
{
|
||||
filesave = gtk_file_selection_new (_("Save Image"));
|
||||
gtk_window_set_wmclass (GTK_WINDOW (filesave), "save_image", "Gimp");
|
||||
gtk_window_set_position (GTK_WINDOW (filesave), GTK_WIN_POS_MOUSE);
|
||||
|
||||
gtk_container_set_border_width (GTK_CONTAINER (filesave), 2);
|
||||
gtk_container_set_border_width
|
||||
(GTK_CONTAINER (GTK_FILE_SELECTION (filesave)->button_area), 2);
|
||||
|
||||
gtk_signal_connect_object
|
||||
(GTK_OBJECT (GTK_FILE_SELECTION (filesave)->cancel_button), "clicked",
|
||||
GTK_SIGNAL_FUNC (file_dialog_hide),
|
||||
GTK_OBJECT (filesave));
|
||||
gtk_signal_connect (GTK_OBJECT (filesave), "delete_event",
|
||||
GTK_SIGNAL_FUNC (file_dialog_hide),
|
||||
NULL);
|
||||
gtk_signal_connect
|
||||
(GTK_OBJECT (GTK_FILE_SELECTION (filesave)->ok_button), "clicked",
|
||||
GTK_SIGNAL_FUNC (file_save_ok_callback),
|
||||
filesave);
|
||||
gtk_quit_add_destroy (1, GTK_OBJECT (filesave));
|
||||
|
||||
/* Connect the "F1" help key */
|
||||
gimp_help_connect_help_accel (filesave,
|
||||
gimp_standard_help_func,
|
||||
"save/dialogs/file_save.html");
|
||||
|
||||
{
|
||||
GtkWidget *frame;
|
||||
GtkWidget *hbox;
|
||||
GtkWidget *label;
|
||||
GtkWidget *option_menu;
|
||||
GtkWidget *save_menu;
|
||||
|
||||
save_options = gtk_hbox_new (TRUE, 1);
|
||||
|
||||
frame = gtk_frame_new (_("Save Options"));
|
||||
gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_ETCHED_IN);
|
||||
gtk_box_pack_start (GTK_BOX (save_options), frame, TRUE, TRUE, 4);
|
||||
|
||||
hbox = gtk_hbox_new (FALSE, 4);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (hbox), 4);
|
||||
gtk_container_add (GTK_CONTAINER (frame), hbox);
|
||||
gtk_widget_show (hbox);
|
||||
|
||||
label = gtk_label_new (_("Determine File Type:"));
|
||||
gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
|
||||
gtk_widget_show (label);
|
||||
|
||||
option_menu = gtk_option_menu_new ();
|
||||
gtk_box_pack_start (GTK_BOX (hbox), option_menu, TRUE, TRUE, 0);
|
||||
gtk_widget_show (option_menu);
|
||||
|
||||
menus_get_save_menu (&save_menu, NULL);
|
||||
gtk_option_menu_set_menu (GTK_OPTION_MENU (option_menu), save_menu);
|
||||
|
||||
gtk_widget_show (frame);
|
||||
|
||||
/* pack the containing save_options hbox into the save-dialog */
|
||||
gtk_box_pack_end (GTK_BOX (GTK_FILE_SELECTION (filesave)->main_vbox),
|
||||
save_options, FALSE, FALSE, 0);
|
||||
}
|
||||
|
||||
gtk_widget_show (save_options);
|
||||
}
|
||||
|
||||
void
|
||||
file_open_callback (GtkWidget *widget,
|
||||
gpointer data)
|
||||
{
|
||||
if (!fileload)
|
||||
file_open_dialog_create ();
|
||||
|
||||
gtk_widget_set_sensitive (GTK_WIDGET (fileload), TRUE);
|
||||
if (GTK_WIDGET_VISIBLE (fileload))
|
||||
return;
|
||||
|
||||
gtk_file_selection_set_filename (GTK_FILE_SELECTION (fileload),
|
||||
"." G_DIR_SEPARATOR_S);
|
||||
gtk_window_set_title (GTK_WINDOW (fileload), _("Load Image"));
|
||||
|
||||
file_dialog_show (fileload);
|
||||
}
|
||||
|
@ -460,7 +532,8 @@ file_save_callback (GtkWidget *widget,
|
|||
status = file_save (gdisplay->gimage,
|
||||
filename,
|
||||
raw_filename,
|
||||
RUN_WITH_LAST_VALS);
|
||||
RUN_WITH_LAST_VALS,
|
||||
TRUE);
|
||||
|
||||
if (status != PDB_SUCCESS &&
|
||||
status != PDB_CANCEL)
|
||||
|
@ -488,83 +561,21 @@ file_save_as_callback (GtkWidget *widget,
|
|||
|
||||
the_gimage = gdisplay->gimage;
|
||||
|
||||
set_filename = TRUE;
|
||||
|
||||
if (!filesave)
|
||||
{
|
||||
filesave = gtk_file_selection_new (_("Save Image"));
|
||||
gtk_window_set_wmclass (GTK_WINDOW (filesave), "save_image", "Gimp");
|
||||
gtk_window_set_position (GTK_WINDOW (filesave), GTK_WIN_POS_MOUSE);
|
||||
file_save_dialog_create ();
|
||||
|
||||
gtk_container_set_border_width (GTK_CONTAINER (filesave), 2);
|
||||
gtk_container_set_border_width
|
||||
(GTK_CONTAINER (GTK_FILE_SELECTION (filesave)->button_area), 2);
|
||||
gtk_widget_set_sensitive (GTK_WIDGET (filesave), TRUE);
|
||||
if (GTK_WIDGET_VISIBLE (filesave))
|
||||
return;
|
||||
|
||||
gtk_signal_connect_object (GTK_OBJECT (GTK_FILE_SELECTION (filesave)->cancel_button),
|
||||
"clicked",
|
||||
GTK_SIGNAL_FUNC (file_dialog_hide),
|
||||
GTK_OBJECT (filesave));
|
||||
gtk_signal_connect (GTK_OBJECT (filesave), "delete_event",
|
||||
GTK_SIGNAL_FUNC (file_dialog_hide),
|
||||
NULL);
|
||||
gtk_signal_connect (GTK_OBJECT (GTK_FILE_SELECTION (filesave)->ok_button),
|
||||
"clicked",
|
||||
GTK_SIGNAL_FUNC (file_save_ok_callback),
|
||||
filesave);
|
||||
gtk_quit_add_destroy (1, GTK_OBJECT (filesave));
|
||||
gtk_window_set_title (GTK_WINDOW (filesave), _("Save Image"));
|
||||
|
||||
/* Connect the "F1" help key */
|
||||
gimp_help_connect_help_accel (filesave,
|
||||
gimp_standard_help_func,
|
||||
"save/dialogs/file_save.html");
|
||||
}
|
||||
else
|
||||
{
|
||||
gtk_widget_set_sensitive (GTK_WIDGET (filesave), TRUE);
|
||||
if (GTK_WIDGET_VISIBLE (filesave))
|
||||
return;
|
||||
|
||||
gtk_window_set_title (GTK_WINDOW (filesave), _("Save Image"));
|
||||
}
|
||||
|
||||
gtk_file_selection_set_filename (GTK_FILE_SELECTION(filesave),
|
||||
gdisplay->gimage->has_filename
|
||||
? gimp_image_filename (gdisplay->gimage)
|
||||
: "." G_DIR_SEPARATOR_S);
|
||||
if (!save_options)
|
||||
{
|
||||
GtkWidget *frame;
|
||||
GtkWidget *hbox;
|
||||
GtkWidget *label;
|
||||
GtkWidget *option_menu;
|
||||
GtkWidget *save_menu;
|
||||
|
||||
save_options = gtk_hbox_new (TRUE, 1);
|
||||
|
||||
frame = gtk_frame_new (_("Save Options"));
|
||||
gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_ETCHED_IN);
|
||||
gtk_box_pack_start (GTK_BOX (save_options), frame, TRUE, TRUE, 4);
|
||||
|
||||
hbox = gtk_hbox_new (FALSE, 4);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (hbox), 4);
|
||||
gtk_container_add (GTK_CONTAINER (frame), hbox);
|
||||
gtk_widget_show (hbox);
|
||||
|
||||
label = gtk_label_new (_("Determine File Type:"));
|
||||
gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
|
||||
gtk_widget_show (label);
|
||||
|
||||
option_menu = gtk_option_menu_new ();
|
||||
gtk_box_pack_start (GTK_BOX (hbox), option_menu, TRUE, TRUE, 0);
|
||||
gtk_widget_show (option_menu);
|
||||
|
||||
menus_get_save_menu (&save_menu, NULL);
|
||||
gtk_option_menu_set_menu (GTK_OPTION_MENU (option_menu), save_menu);
|
||||
|
||||
gtk_widget_show (frame);
|
||||
|
||||
/* pack the containing save_options hbox into the save-dialog */
|
||||
gtk_box_pack_end (GTK_BOX (GTK_FILE_SELECTION (filesave)->main_vbox),
|
||||
save_options, FALSE, FALSE, 0);
|
||||
}
|
||||
gtk_file_selection_set_filename (GTK_FILE_SELECTION (filesave),
|
||||
gdisplay->gimage->has_filename ?
|
||||
gimp_image_filename (gdisplay->gimage) :
|
||||
"." G_DIR_SEPARATOR_S);
|
||||
|
||||
switch (gimp_drawable_type (gimp_image_active_drawable (gdisplay->gimage)))
|
||||
{
|
||||
|
@ -588,7 +599,63 @@ file_save_as_callback (GtkWidget *widget,
|
|||
break;
|
||||
}
|
||||
|
||||
gtk_widget_show (save_options);
|
||||
file_dialog_show (filesave);
|
||||
}
|
||||
|
||||
void
|
||||
file_save_a_copy_as_callback (GtkWidget *widget,
|
||||
gpointer data)
|
||||
{
|
||||
GDisplay *gdisplay;
|
||||
|
||||
gdisplay = gdisplay_active ();
|
||||
if (! gdisplay)
|
||||
return;
|
||||
|
||||
if (! gimp_image_active_drawable (gdisplay->gimage))
|
||||
return;
|
||||
|
||||
g_print ("Save a Copy\n");
|
||||
|
||||
the_gimage = gdisplay->gimage;
|
||||
|
||||
set_filename = FALSE;
|
||||
|
||||
if (!filesave)
|
||||
file_save_dialog_create ();
|
||||
|
||||
gtk_widget_set_sensitive (GTK_WIDGET (filesave), TRUE);
|
||||
if (GTK_WIDGET_VISIBLE (filesave))
|
||||
return;
|
||||
|
||||
gtk_window_set_title (GTK_WINDOW (filesave), _("Save a Copy of the Image"));
|
||||
|
||||
gtk_file_selection_set_filename (GTK_FILE_SELECTION (filesave),
|
||||
gdisplay->gimage->has_filename ?
|
||||
gimp_image_filename (gdisplay->gimage) :
|
||||
"." G_DIR_SEPARATOR_S);
|
||||
|
||||
switch (gimp_drawable_type (gimp_image_active_drawable (gdisplay->gimage)))
|
||||
{
|
||||
case RGB_GIMAGE:
|
||||
file_update_menus (save_procs, PLUG_IN_RGB_IMAGE);
|
||||
break;
|
||||
case RGBA_GIMAGE:
|
||||
file_update_menus (save_procs, PLUG_IN_RGBA_IMAGE);
|
||||
break;
|
||||
case GRAY_GIMAGE:
|
||||
file_update_menus (save_procs, PLUG_IN_GRAY_IMAGE);
|
||||
break;
|
||||
case GRAYA_GIMAGE:
|
||||
file_update_menus (save_procs, PLUG_IN_GRAYA_IMAGE);
|
||||
break;
|
||||
case INDEXED_GIMAGE:
|
||||
file_update_menus (save_procs, PLUG_IN_INDEXED_IMAGE);
|
||||
break;
|
||||
case INDEXEDA_GIMAGE:
|
||||
file_update_menus (save_procs, PLUG_IN_INDEXEDA_IMAGE);
|
||||
break;
|
||||
}
|
||||
|
||||
file_dialog_show (filesave);
|
||||
}
|
||||
|
@ -1122,15 +1189,16 @@ static gint
|
|||
file_save (GimpImage *gimage,
|
||||
gchar *filename,
|
||||
gchar *raw_filename,
|
||||
RunModeType run_mode)
|
||||
RunModeType run_mode,
|
||||
gboolean set_filename)
|
||||
{
|
||||
PlugInProcDef *file_proc;
|
||||
ProcRecord *proc;
|
||||
Argument *args;
|
||||
Argument *return_vals;
|
||||
gint status;
|
||||
gint i;
|
||||
struct stat statbuf;
|
||||
ProcRecord *proc;
|
||||
Argument *args;
|
||||
Argument *return_vals;
|
||||
gint status;
|
||||
gint i;
|
||||
struct stat statbuf;
|
||||
|
||||
if (gimp_image_active_drawable (gimage) == NULL)
|
||||
return PDB_EXECUTION_ERROR;
|
||||
|
@ -1232,9 +1300,12 @@ file_save (GimpImage *gimage,
|
|||
}
|
||||
}
|
||||
|
||||
/* set the image title */
|
||||
gimp_image_set_filename (gimage, filename);
|
||||
/* note: 'filename' may have been free'd by above call! */
|
||||
if (set_filename)
|
||||
{
|
||||
/* set the image title */
|
||||
gimp_image_set_filename (gimage, filename);
|
||||
/* note: 'filename' may have been free'd by above call! */
|
||||
}
|
||||
}
|
||||
|
||||
g_free (return_vals);
|
||||
|
@ -1740,10 +1811,11 @@ clist_to_slist (GtkCList *file_list)
|
|||
* error happened and leave the dialog up. Make sure it's sensitive.
|
||||
*/
|
||||
static void
|
||||
file_save_with_proc (GImage *gimage,
|
||||
gchar *full_filename,
|
||||
gchar *raw_filename,
|
||||
PlugInProcDef *save_proc)
|
||||
file_save_with_proc (GImage *gimage,
|
||||
gchar *full_filename,
|
||||
gchar *raw_filename,
|
||||
PlugInProcDef *save_proc,
|
||||
gboolean set_filename)
|
||||
{
|
||||
gint status = PDB_EXECUTION_ERROR;
|
||||
|
||||
|
@ -1753,7 +1825,8 @@ file_save_with_proc (GImage *gimage,
|
|||
status = file_save (gimage,
|
||||
full_filename,
|
||||
raw_filename,
|
||||
RUN_INTERACTIVE);
|
||||
RUN_INTERACTIVE,
|
||||
set_filename);
|
||||
|
||||
/* hide the file save dialog on success */
|
||||
if (status == PDB_SUCCESS)
|
||||
|
@ -1775,12 +1848,12 @@ file_save_ok_callback (GtkWidget *widget,
|
|||
gpointer data)
|
||||
{
|
||||
GtkFileSelection *fs;
|
||||
gchar *filename;
|
||||
gchar *raw_filename;
|
||||
gchar *dot;
|
||||
gint x;
|
||||
struct stat buf;
|
||||
gint err;
|
||||
gchar *filename;
|
||||
gchar *raw_filename;
|
||||
gchar *dot;
|
||||
gint x;
|
||||
struct stat buf;
|
||||
gint err;
|
||||
|
||||
fs = GTK_FILE_SELECTION (data);
|
||||
filename = gtk_file_selection_get_filename (fs);
|
||||
|
@ -1849,7 +1922,8 @@ file_save_ok_callback (GtkWidget *widget,
|
|||
{
|
||||
gtk_widget_set_sensitive (GTK_WIDGET (fs), FALSE);
|
||||
|
||||
file_save_with_proc (the_gimage, filename, raw_filename, save_file_proc);
|
||||
file_save_with_proc (the_gimage, filename, raw_filename, save_file_proc,
|
||||
set_filename);
|
||||
|
||||
gtk_widget_set_sensitive (GTK_WIDGET (fs), TRUE);
|
||||
}
|
||||
|
@ -1861,7 +1935,8 @@ file_dialog_show (GtkWidget *filesel)
|
|||
menus_set_sensitive ("<Toolbox>/File/Open...", FALSE);
|
||||
menus_set_sensitive ("<Image>/File/Open...", FALSE);
|
||||
menus_set_sensitive ("<Image>/File/Save", FALSE);
|
||||
menus_set_sensitive ("<Image>/File/Save As...", FALSE);
|
||||
menus_set_sensitive ("<Image>/File/Save as...", FALSE);
|
||||
menus_set_sensitive ("<Image>/File/Save a Copy as...", FALSE);
|
||||
|
||||
gtk_widget_grab_focus (GTK_FILE_SELECTION (filesel)->selection_entry);
|
||||
gtk_widget_show (filesel);
|
||||
|
@ -1878,7 +1953,8 @@ file_dialog_hide (GtkWidget *filesel)
|
|||
if (gdisplay_active ())
|
||||
{
|
||||
menus_set_sensitive ("<Image>/File/Save", TRUE);
|
||||
menus_set_sensitive ("<Image>/File/Save As...", TRUE);
|
||||
menus_set_sensitive ("<Image>/File/Save as...", TRUE);
|
||||
menus_set_sensitive ("<Image>/File/Save a Copy as...", TRUE);
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
|
@ -1927,7 +2003,8 @@ file_overwrite_callback (GtkWidget *widget,
|
|||
file_save_with_proc (the_gimage,
|
||||
overwrite_data->full_filename,
|
||||
overwrite_data->raw_filename,
|
||||
save_file_proc);
|
||||
save_file_proc,
|
||||
set_filename);
|
||||
}
|
||||
|
||||
/* always make file save dialog sensitive */
|
||||
|
|
|
@ -34,6 +34,8 @@ void file_save_callback (GtkWidget *widget,
|
|||
gpointer data);
|
||||
void file_save_as_callback (GtkWidget *widget,
|
||||
gpointer data);
|
||||
void file_save_a_copy_as_callback (GtkWidget *widget,
|
||||
gpointer data);
|
||||
|
||||
void file_revert_callback (GtkWidget *widget,
|
||||
gpointer data);
|
||||
|
|
|
@ -1777,7 +1777,8 @@ gdisplay_set_menu_sensitivity (GDisplay *gdisp)
|
|||
menus_set_state ("<Image>/" menu, (condition) != 0)
|
||||
|
||||
SET_SENSITIVE ("File/Save", gdisp && drawable);
|
||||
SET_SENSITIVE ("File/Save As...", gdisp && drawable);
|
||||
SET_SENSITIVE ("File/Save as...", gdisp && drawable);
|
||||
SET_SENSITIVE ("File/Save a Copy as...", gdisp && drawable);
|
||||
SET_SENSITIVE ("File/Revert...", gdisp && gdisp->gimage->filename);
|
||||
SET_SENSITIVE ("File/Close", gdisp);
|
||||
|
||||
|
|
|
@ -59,6 +59,7 @@
|
|||
#include "invert.h"
|
||||
#include "lc_dialog.h"
|
||||
#include "layer_select.h"
|
||||
#include "layers_dialogP.h"
|
||||
#include "module_db.h"
|
||||
#include "palette.h"
|
||||
#include "pattern_select.h"
|
||||
|
@ -84,20 +85,29 @@
|
|||
gdisp = gdisplay_active (); \
|
||||
if (!gdisp) return
|
||||
|
||||
/* external functions */
|
||||
extern void layers_dialog_layer_merge_query (GImage *, gboolean);
|
||||
|
||||
/* local functions */
|
||||
static void image_resize_callback (GtkWidget *, gpointer);
|
||||
static void image_scale_callback (GtkWidget *, gpointer);
|
||||
static void gimage_mask_feather_callback (GtkWidget *, gdouble, GimpUnit,
|
||||
gpointer);
|
||||
static void gimage_mask_border_callback (GtkWidget *, gdouble, GimpUnit,
|
||||
gpointer);
|
||||
static void gimage_mask_grow_callback (GtkWidget *, gdouble, GimpUnit,
|
||||
gpointer);
|
||||
static void gimage_mask_shrink_callback (GtkWidget *, gdouble, GimpUnit,
|
||||
gpointer);
|
||||
static void image_resize_callback (GtkWidget *,
|
||||
gpointer );
|
||||
static void image_scale_callback (GtkWidget *,
|
||||
gpointer );
|
||||
static void gimage_mask_feather_callback (GtkWidget *,
|
||||
gdouble ,
|
||||
GimpUnit ,
|
||||
gpointer );
|
||||
static void gimage_mask_border_callback (GtkWidget *,
|
||||
gdouble ,
|
||||
GimpUnit ,
|
||||
gpointer );
|
||||
static void gimage_mask_grow_callback (GtkWidget *,
|
||||
gdouble ,
|
||||
GimpUnit ,
|
||||
gpointer );
|
||||
static void gimage_mask_shrink_callback (GtkWidget *,
|
||||
gdouble ,
|
||||
GimpUnit ,
|
||||
gpointer );
|
||||
|
||||
|
||||
/* local variables */
|
||||
static gdouble selection_feather_radius = 5.0;
|
||||
|
@ -130,6 +140,13 @@ file_save_as_cmd_callback (GtkWidget *widget,
|
|||
file_save_as_callback (widget, client_data);
|
||||
}
|
||||
|
||||
void
|
||||
file_save_a_copy_as_cmd_callback (GtkWidget *widget,
|
||||
gpointer client_data)
|
||||
{
|
||||
file_save_a_copy_as_callback (widget, client_data);
|
||||
}
|
||||
|
||||
void
|
||||
file_revert_cmd_callback (GtkWidget *widget,
|
||||
gpointer client_data)
|
||||
|
|
|
@ -20,14 +20,15 @@
|
|||
#define __COMMANDS_H__
|
||||
|
||||
|
||||
void file_new_cmd_callback (GtkWidget *, gpointer, guint);
|
||||
void file_open_cmd_callback (GtkWidget *, gpointer);
|
||||
void file_save_cmd_callback (GtkWidget *, gpointer);
|
||||
void file_save_as_cmd_callback (GtkWidget *, gpointer);
|
||||
void file_revert_cmd_callback (GtkWidget *, gpointer);
|
||||
void file_pref_cmd_callback (GtkWidget *, gpointer);
|
||||
void file_close_cmd_callback (GtkWidget *, gpointer);
|
||||
void file_quit_cmd_callback (GtkWidget *, gpointer);
|
||||
void file_new_cmd_callback (GtkWidget *, gpointer, guint);
|
||||
void file_open_cmd_callback (GtkWidget *, gpointer);
|
||||
void file_save_cmd_callback (GtkWidget *, gpointer);
|
||||
void file_save_as_cmd_callback (GtkWidget *, gpointer);
|
||||
void file_save_a_copy_as_cmd_callback (GtkWidget *, gpointer);
|
||||
void file_revert_cmd_callback (GtkWidget *, gpointer);
|
||||
void file_pref_cmd_callback (GtkWidget *, gpointer);
|
||||
void file_close_cmd_callback (GtkWidget *, gpointer);
|
||||
void file_quit_cmd_callback (GtkWidget *, gpointer);
|
||||
|
||||
void edit_undo_cmd_callback (GtkWidget *, gpointer);
|
||||
void edit_redo_cmd_callback (GtkWidget *, gpointer);
|
||||
|
|
|
@ -59,6 +59,7 @@
|
|||
#include "invert.h"
|
||||
#include "lc_dialog.h"
|
||||
#include "layer_select.h"
|
||||
#include "layers_dialogP.h"
|
||||
#include "module_db.h"
|
||||
#include "palette.h"
|
||||
#include "pattern_select.h"
|
||||
|
@ -84,20 +85,29 @@
|
|||
gdisp = gdisplay_active (); \
|
||||
if (!gdisp) return
|
||||
|
||||
/* external functions */
|
||||
extern void layers_dialog_layer_merge_query (GImage *, gboolean);
|
||||
|
||||
/* local functions */
|
||||
static void image_resize_callback (GtkWidget *, gpointer);
|
||||
static void image_scale_callback (GtkWidget *, gpointer);
|
||||
static void gimage_mask_feather_callback (GtkWidget *, gdouble, GimpUnit,
|
||||
gpointer);
|
||||
static void gimage_mask_border_callback (GtkWidget *, gdouble, GimpUnit,
|
||||
gpointer);
|
||||
static void gimage_mask_grow_callback (GtkWidget *, gdouble, GimpUnit,
|
||||
gpointer);
|
||||
static void gimage_mask_shrink_callback (GtkWidget *, gdouble, GimpUnit,
|
||||
gpointer);
|
||||
static void image_resize_callback (GtkWidget *,
|
||||
gpointer );
|
||||
static void image_scale_callback (GtkWidget *,
|
||||
gpointer );
|
||||
static void gimage_mask_feather_callback (GtkWidget *,
|
||||
gdouble ,
|
||||
GimpUnit ,
|
||||
gpointer );
|
||||
static void gimage_mask_border_callback (GtkWidget *,
|
||||
gdouble ,
|
||||
GimpUnit ,
|
||||
gpointer );
|
||||
static void gimage_mask_grow_callback (GtkWidget *,
|
||||
gdouble ,
|
||||
GimpUnit ,
|
||||
gpointer );
|
||||
static void gimage_mask_shrink_callback (GtkWidget *,
|
||||
gdouble ,
|
||||
GimpUnit ,
|
||||
gpointer );
|
||||
|
||||
|
||||
/* local variables */
|
||||
static gdouble selection_feather_radius = 5.0;
|
||||
|
@ -130,6 +140,13 @@ file_save_as_cmd_callback (GtkWidget *widget,
|
|||
file_save_as_callback (widget, client_data);
|
||||
}
|
||||
|
||||
void
|
||||
file_save_a_copy_as_cmd_callback (GtkWidget *widget,
|
||||
gpointer client_data)
|
||||
{
|
||||
file_save_a_copy_as_callback (widget, client_data);
|
||||
}
|
||||
|
||||
void
|
||||
file_revert_cmd_callback (GtkWidget *widget,
|
||||
gpointer client_data)
|
||||
|
|
|
@ -20,14 +20,15 @@
|
|||
#define __COMMANDS_H__
|
||||
|
||||
|
||||
void file_new_cmd_callback (GtkWidget *, gpointer, guint);
|
||||
void file_open_cmd_callback (GtkWidget *, gpointer);
|
||||
void file_save_cmd_callback (GtkWidget *, gpointer);
|
||||
void file_save_as_cmd_callback (GtkWidget *, gpointer);
|
||||
void file_revert_cmd_callback (GtkWidget *, gpointer);
|
||||
void file_pref_cmd_callback (GtkWidget *, gpointer);
|
||||
void file_close_cmd_callback (GtkWidget *, gpointer);
|
||||
void file_quit_cmd_callback (GtkWidget *, gpointer);
|
||||
void file_new_cmd_callback (GtkWidget *, gpointer, guint);
|
||||
void file_open_cmd_callback (GtkWidget *, gpointer);
|
||||
void file_save_cmd_callback (GtkWidget *, gpointer);
|
||||
void file_save_as_cmd_callback (GtkWidget *, gpointer);
|
||||
void file_save_a_copy_as_cmd_callback (GtkWidget *, gpointer);
|
||||
void file_revert_cmd_callback (GtkWidget *, gpointer);
|
||||
void file_pref_cmd_callback (GtkWidget *, gpointer);
|
||||
void file_close_cmd_callback (GtkWidget *, gpointer);
|
||||
void file_quit_cmd_callback (GtkWidget *, gpointer);
|
||||
|
||||
void edit_undo_cmd_callback (GtkWidget *, gpointer);
|
||||
void edit_redo_cmd_callback (GtkWidget *, gpointer);
|
||||
|
|
|
@ -215,7 +215,9 @@ static GimpItemFactoryEntry image_entries[] =
|
|||
"file/dialogs/file_open.html", NULL },
|
||||
{ { N_("/File/Save"), "<control>S", file_save_cmd_callback, 0 },
|
||||
"file/dialogs/file_save.html", NULL },
|
||||
{ { N_("/File/Save As..."), NULL, file_save_as_cmd_callback, 0 },
|
||||
{ { N_("/File/Save as..."), NULL, file_save_as_cmd_callback, 0 },
|
||||
"file/dialogs/file_save.html", NULL },
|
||||
{ { N_("/File/Save a Copy as..."), NULL, file_save_a_copy_as_cmd_callback, 0 },
|
||||
"file/dialogs/file_save.html", NULL },
|
||||
{ { N_("/File/Revert..."), NULL, file_revert_cmd_callback, 0 },
|
||||
"file/revert.html", NULL },
|
||||
|
|
|
@ -15,11 +15,21 @@
|
|||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef __LAYERS_DIALOG_P_H__
|
||||
#define __LAYERS_DIALOG_P_H__
|
||||
|
||||
void render_fs_preview (GtkWidget *, GdkPixmap *);
|
||||
void render_preview (TempBuf *, GtkWidget *, int, int, int);
|
||||
void layers_dialog_invalidate_previews (GimpImage *gimage);
|
||||
|
||||
void render_fs_preview (GtkWidget *widget,
|
||||
GdkPixmap *pixmap);
|
||||
void render_preview (TempBuf *preview_buf,
|
||||
GtkWidget *preview_widget,
|
||||
gint width,
|
||||
gint height,
|
||||
gint channel);
|
||||
void layers_dialog_invalidate_previews (GimpImage *gimage);
|
||||
void layers_dialog_layer_merge_query (GImage *gimage,
|
||||
gboolean merge_visible);
|
||||
|
||||
|
||||
#endif /* __LAYERS_DIALOG_P_H__ */
|
||||
|
|
|
@ -215,7 +215,9 @@ static GimpItemFactoryEntry image_entries[] =
|
|||
"file/dialogs/file_open.html", NULL },
|
||||
{ { N_("/File/Save"), "<control>S", file_save_cmd_callback, 0 },
|
||||
"file/dialogs/file_save.html", NULL },
|
||||
{ { N_("/File/Save As..."), NULL, file_save_as_cmd_callback, 0 },
|
||||
{ { N_("/File/Save as..."), NULL, file_save_as_cmd_callback, 0 },
|
||||
"file/dialogs/file_save.html", NULL },
|
||||
{ { N_("/File/Save a Copy as..."), NULL, file_save_a_copy_as_cmd_callback, 0 },
|
||||
"file/dialogs/file_save.html", NULL },
|
||||
{ { N_("/File/Revert..."), NULL, file_revert_cmd_callback, 0 },
|
||||
"file/revert.html", NULL },
|
||||
|
|
|
@ -215,7 +215,9 @@ static GimpItemFactoryEntry image_entries[] =
|
|||
"file/dialogs/file_open.html", NULL },
|
||||
{ { N_("/File/Save"), "<control>S", file_save_cmd_callback, 0 },
|
||||
"file/dialogs/file_save.html", NULL },
|
||||
{ { N_("/File/Save As..."), NULL, file_save_as_cmd_callback, 0 },
|
||||
{ { N_("/File/Save as..."), NULL, file_save_as_cmd_callback, 0 },
|
||||
"file/dialogs/file_save.html", NULL },
|
||||
{ { N_("/File/Save a Copy as..."), NULL, file_save_a_copy_as_cmd_callback, 0 },
|
||||
"file/dialogs/file_save.html", NULL },
|
||||
{ { N_("/File/Revert..."), NULL, file_revert_cmd_callback, 0 },
|
||||
"file/revert.html", NULL },
|
||||
|
|
|
@ -215,7 +215,9 @@ static GimpItemFactoryEntry image_entries[] =
|
|||
"file/dialogs/file_open.html", NULL },
|
||||
{ { N_("/File/Save"), "<control>S", file_save_cmd_callback, 0 },
|
||||
"file/dialogs/file_save.html", NULL },
|
||||
{ { N_("/File/Save As..."), NULL, file_save_as_cmd_callback, 0 },
|
||||
{ { N_("/File/Save as..."), NULL, file_save_as_cmd_callback, 0 },
|
||||
"file/dialogs/file_save.html", NULL },
|
||||
{ { N_("/File/Save a Copy as..."), NULL, file_save_a_copy_as_cmd_callback, 0 },
|
||||
"file/dialogs/file_save.html", NULL },
|
||||
{ { N_("/File/Revert..."), NULL, file_revert_cmd_callback, 0 },
|
||||
"file/revert.html", NULL },
|
||||
|
|
Loading…
Reference in a new issue