mirror of https://github.com/GNOME/gimp.git
plug-ins/FractalExplorer/Dialogs.c plug-ins/common/CEL.c
2003-11-19 Michael Natterer <mitch@gimp.org> * plug-ins/FractalExplorer/Dialogs.c * plug-ins/common/CEL.c * plug-ins/common/CML_explorer.c * plug-ins/common/curve_bend.c * plug-ins/common/gqbist.c * plug-ins/common/spheredesigner.c * plug-ins/flame/flame.c * plug-ins/gfig/gfig.c * plug-ins/gimpressionist/brush.c * plug-ins/ifscompose/ifscompose.c * plug-ins/imagemap/imap_browse.c * plug-ins/imagemap/imap_file.c: GtkFileSelection cleanup: connect to "response" instead of accessing the "ok_button" and "cancel_button" members.
This commit is contained in:
parent
fca3f8b3db
commit
86f45eabc2
17
ChangeLog
17
ChangeLog
|
@ -1,3 +1,20 @@
|
|||
2003-11-19 Michael Natterer <mitch@gimp.org>
|
||||
|
||||
* plug-ins/FractalExplorer/Dialogs.c
|
||||
* plug-ins/common/CEL.c
|
||||
* plug-ins/common/CML_explorer.c
|
||||
* plug-ins/common/curve_bend.c
|
||||
* plug-ins/common/gqbist.c
|
||||
* plug-ins/common/spheredesigner.c
|
||||
* plug-ins/flame/flame.c
|
||||
* plug-ins/gfig/gfig.c
|
||||
* plug-ins/gimpressionist/brush.c
|
||||
* plug-ins/ifscompose/ifscompose.c
|
||||
* plug-ins/imagemap/imap_browse.c
|
||||
* plug-ins/imagemap/imap_file.c: GtkFileSelection cleanup:
|
||||
connect to "response" instead of accessing the "ok_button"
|
||||
and "cancel_button" members.
|
||||
|
||||
2003-11-19 Michael Natterer <mitch@gimp.org>
|
||||
|
||||
* libgimpwidgets/gimpwidgetstypes.h: renamed "data" parameter
|
||||
|
|
|
@ -71,16 +71,18 @@ static explorer_vals_t standardvals =
|
|||
FORWARD DECLARATIONS
|
||||
*********************************************************************/
|
||||
|
||||
static void load_file_selection_ok (GtkWidget *widget,
|
||||
GtkFileSelection *fs);
|
||||
static void file_selection_ok (GtkWidget *widget,
|
||||
GtkFileSelection *fs);
|
||||
static void create_load_file_selection (GtkWidget *widget,
|
||||
GtkWidget *dialog);
|
||||
static void create_file_selection (GtkWidget *widget,
|
||||
GtkWidget *dialog);
|
||||
static void load_file_selection_response (GtkFileSelection *fs,
|
||||
gint response_id,
|
||||
gpointer data);
|
||||
static void file_selection_response (GtkFileSelection *fs,
|
||||
gint response_id,
|
||||
gpointer data);
|
||||
static void create_load_file_selection (GtkWidget *widget,
|
||||
GtkWidget *dialog);
|
||||
static void create_file_selection (GtkWidget *widget,
|
||||
GtkWidget *dialog);
|
||||
|
||||
static void explorer_logo_dialog (GtkWidget *parent);
|
||||
static void explorer_logo_dialog (GtkWidget *parent);
|
||||
|
||||
/**********************************************************************
|
||||
CALLBACKS
|
||||
|
@ -1821,49 +1823,58 @@ save_callback (void)
|
|||
}
|
||||
|
||||
static void
|
||||
file_selection_ok (GtkWidget *w,
|
||||
GtkFileSelection *fs)
|
||||
file_selection_response (GtkFileSelection *fs,
|
||||
gint response_id,
|
||||
gpointer data)
|
||||
{
|
||||
const gchar *filenamebuf;
|
||||
|
||||
filenamebuf = gtk_file_selection_get_filename (GTK_FILE_SELECTION(fs));
|
||||
|
||||
/* Get the name */
|
||||
if (!filenamebuf || strlen (filenamebuf) == 0)
|
||||
if (response_id == GTK_RESPONSE_OK)
|
||||
{
|
||||
g_message (_("Save: No filename given"));
|
||||
return;
|
||||
const gchar *filenamebuf;
|
||||
|
||||
filenamebuf = gtk_file_selection_get_filename (fs);
|
||||
|
||||
/* Get the name */
|
||||
if (!filenamebuf || strlen (filenamebuf) == 0)
|
||||
{
|
||||
g_message (_("Save: No filename given"));
|
||||
return;
|
||||
}
|
||||
|
||||
if (g_file_test (filenamebuf, G_FILE_TEST_IS_DIR))
|
||||
{
|
||||
/* Can't save to directory */
|
||||
g_message (_("Cannot save to a folder."));
|
||||
return;
|
||||
}
|
||||
|
||||
filename = g_strdup (filenamebuf);
|
||||
save_callback ();
|
||||
}
|
||||
|
||||
if (g_file_test (filenamebuf, G_FILE_TEST_IS_DIR))
|
||||
{
|
||||
/* Can't save to directory */
|
||||
g_message (_("Cannot save to a folder."));
|
||||
return;
|
||||
}
|
||||
|
||||
filename = g_strdup (filenamebuf);
|
||||
save_callback ();
|
||||
gtk_widget_destroy (GTK_WIDGET (fs));
|
||||
}
|
||||
|
||||
static void
|
||||
load_file_selection_ok (GtkWidget *w,
|
||||
GtkFileSelection *fs)
|
||||
load_file_selection_response (GtkFileSelection *fs,
|
||||
gint response_id,
|
||||
gpointer data)
|
||||
{
|
||||
filename =
|
||||
g_strdup (gtk_file_selection_get_filename (GTK_FILE_SELECTION (fs)));
|
||||
|
||||
if (g_file_test (filename, G_FILE_TEST_IS_REGULAR))
|
||||
if (response_id == GTK_RESPONSE_OK)
|
||||
{
|
||||
explorer_load ();
|
||||
filename = g_strdup (gtk_file_selection_get_filename (fs));
|
||||
|
||||
if (g_file_test (filename, G_FILE_TEST_IS_REGULAR))
|
||||
{
|
||||
explorer_load ();
|
||||
}
|
||||
|
||||
gtk_widget_show (maindlg);
|
||||
dialog_change_scale ();
|
||||
set_cmap_preview ();
|
||||
dialog_update_preview ();
|
||||
}
|
||||
|
||||
gtk_widget_destroy (GTK_WIDGET (fs));
|
||||
gtk_widget_show (maindlg);
|
||||
dialog_change_scale ();
|
||||
set_cmap_preview ();
|
||||
dialog_update_preview ();
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -1882,18 +1893,12 @@ create_load_file_selection (GtkWidget *widget,
|
|||
g_signal_connect (window, "destroy",
|
||||
G_CALLBACK (gtk_widget_destroyed),
|
||||
&window);
|
||||
|
||||
g_signal_connect (GTK_FILE_SELECTION (window)->ok_button, "clicked",
|
||||
G_CALLBACK (load_file_selection_ok),
|
||||
g_signal_connect (window, "response",
|
||||
G_CALLBACK (load_file_selection_response),
|
||||
window);
|
||||
|
||||
g_signal_connect_swapped (GTK_FILE_SELECTION (window)->cancel_button,
|
||||
"clicked",
|
||||
G_CALLBACK (gtk_widget_destroy),
|
||||
window);
|
||||
}
|
||||
|
||||
gtk_widget_show (window);
|
||||
gtk_window_present (GTK_WINDOW (window));
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -1912,15 +1917,9 @@ create_file_selection (GtkWidget *widget,
|
|||
g_signal_connect (window, "destroy",
|
||||
G_CALLBACK (gtk_widget_destroyed),
|
||||
&window);
|
||||
|
||||
g_signal_connect (GTK_FILE_SELECTION (window)->ok_button, "clicked",
|
||||
G_CALLBACK (file_selection_ok),
|
||||
g_signal_connect (window, "response",
|
||||
G_CALLBACK (file_selection_response),
|
||||
window);
|
||||
|
||||
g_signal_connect_swapped (GTK_FILE_SELECTION(window)->cancel_button,
|
||||
"clicked",
|
||||
G_CALLBACK (gtk_widget_destroy),
|
||||
window);
|
||||
}
|
||||
|
||||
if (tpath)
|
||||
|
@ -1949,7 +1948,7 @@ create_file_selection (GtkWidget *widget,
|
|||
gtk_file_selection_set_filename (GTK_FILE_SELECTION (window), "/tmp");
|
||||
}
|
||||
|
||||
gtk_widget_show (window);
|
||||
gtk_window_present (GTK_WINDOW (window));
|
||||
}
|
||||
|
||||
gchar*
|
||||
|
|
|
@ -582,18 +582,6 @@ save_image (const gchar *file,
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
palette_ok (GtkWidget *widget,
|
||||
GtkWidget **fs)
|
||||
{
|
||||
g_free (palette_file);
|
||||
palette_file =
|
||||
g_strdup (gtk_file_selection_get_filename (GTK_FILE_SELECTION (fs)));
|
||||
data_length = strlen (palette_file) + 1;
|
||||
|
||||
gtk_widget_destroy (GTK_WIDGET (fs));
|
||||
}
|
||||
|
||||
static void
|
||||
palette_dialog (const gchar *title)
|
||||
{
|
||||
|
@ -605,24 +593,18 @@ palette_dialog (const gchar *title)
|
|||
gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_MOUSE);
|
||||
gtk_file_selection_set_filename (GTK_FILE_SELECTION (dialog), palette_file);
|
||||
|
||||
g_signal_connect
|
||||
(GTK_FILE_SELECTION (dialog)->ok_button, "clicked",
|
||||
G_CALLBACK (palette_ok),
|
||||
dialog);
|
||||
g_signal_connect_swapped
|
||||
(GTK_FILE_SELECTION (dialog)->cancel_button, "clicked",
|
||||
G_CALLBACK (gtk_widget_destroy),
|
||||
dialog);
|
||||
|
||||
g_signal_connect (dialog, "destroy",
|
||||
G_CALLBACK (gtk_main_quit),
|
||||
NULL);
|
||||
|
||||
gimp_help_connect (dialog, gimp_standard_help_func,
|
||||
"filters/cel.html", NULL);
|
||||
|
||||
gtk_widget_show (dialog);
|
||||
|
||||
gtk_main ();
|
||||
gdk_flush ();
|
||||
if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_OK)
|
||||
{
|
||||
g_free (palette_file);
|
||||
palette_file =
|
||||
g_strdup (gtk_file_selection_get_filename (GTK_FILE_SELECTION (dialog)));
|
||||
data_length = strlen (palette_file) + 1;
|
||||
}
|
||||
|
||||
gtk_widget_destroy (dialog);
|
||||
}
|
||||
|
|
|
@ -368,25 +368,27 @@ static void CML_copy_parameters_callback (GtkWidget *widget,
|
|||
gpointer data);
|
||||
static void CML_initial_value_sensitives_update (void);
|
||||
|
||||
static void CML_save_to_file_callback (GtkWidget *widget,
|
||||
gpointer data);
|
||||
static void CML_execute_save_to_file (GtkWidget *widget,
|
||||
gpointer data);
|
||||
static gint force_overwrite (const gchar *filename,
|
||||
GtkWidget *parent);
|
||||
static void CML_save_to_file_callback (GtkWidget *widget,
|
||||
gpointer data);
|
||||
static void CML_save_to_file_response (GtkFileSelection *fs,
|
||||
gint response_id,
|
||||
gpointer data);
|
||||
static gint force_overwrite (const gchar *filename,
|
||||
GtkWidget *parent);
|
||||
|
||||
static void CML_preview_update_callback (GtkWidget *widget,
|
||||
gpointer data);
|
||||
static void CML_load_from_file_callback (GtkWidget *widget,
|
||||
gpointer data);
|
||||
static gboolean CML_load_parameter_file (const gchar *filename,
|
||||
gboolean interactive_mode);
|
||||
static void CML_execute_load_from_file (GtkWidget *widget,
|
||||
gpointer data);
|
||||
static gint parse_line_to_gint (FILE *file,
|
||||
gboolean *flag);
|
||||
static gdouble parse_line_to_gdouble (FILE *file,
|
||||
gboolean *flag);
|
||||
static void CML_preview_update_callback (GtkWidget *widget,
|
||||
gpointer data);
|
||||
static void CML_load_from_file_callback (GtkWidget *widget,
|
||||
gpointer data);
|
||||
static gboolean CML_load_parameter_file (const gchar *filename,
|
||||
gboolean interactive_mode);
|
||||
static void CML_load_from_file_response (GtkFileSelection *fs,
|
||||
gint response_id,
|
||||
gpointer data);
|
||||
static gint parse_line_to_gint (FILE *file,
|
||||
gboolean *flag);
|
||||
static gdouble parse_line_to_gdouble (FILE *file,
|
||||
gboolean *flag);
|
||||
|
||||
|
||||
GimpPlugInInfo PLUG_IN_INFO =
|
||||
|
@ -2054,22 +2056,16 @@ CML_save_to_file_callback (GtkWidget *widget,
|
|||
gtk_window_set_transient_for (GTK_WINDOW (filesel),
|
||||
GTK_WINDOW (gtk_widget_get_toplevel (widget)));
|
||||
|
||||
g_signal_connect (GTK_FILE_SELECTION (filesel)->ok_button,
|
||||
"clicked",
|
||||
G_CALLBACK (CML_execute_save_to_file),
|
||||
filesel);
|
||||
|
||||
g_signal_connect_swapped (filesel, "delete_event",
|
||||
G_CALLBACK (gtk_widget_hide),
|
||||
filesel);
|
||||
|
||||
g_signal_connect_swapped (GTK_FILE_SELECTION (filesel)->cancel_button,
|
||||
"clicked",
|
||||
G_CALLBACK (gtk_widget_hide),
|
||||
filesel);
|
||||
|
||||
gimp_help_connect (filesel, gimp_standard_help_func,
|
||||
"filters/cml_explorer.html", NULL);
|
||||
|
||||
g_signal_connect (filesel, "response",
|
||||
G_CALLBACK (CML_save_to_file_response),
|
||||
NULL);
|
||||
g_signal_connect (filesel, "delete_event",
|
||||
G_CALLBACK (gtk_true),
|
||||
NULL);
|
||||
|
||||
}
|
||||
|
||||
if (strlen (VALS.last_file_name) > 0)
|
||||
|
@ -2080,8 +2076,9 @@ CML_save_to_file_callback (GtkWidget *widget,
|
|||
}
|
||||
|
||||
static void
|
||||
CML_execute_save_to_file (GtkWidget *widget,
|
||||
gpointer data)
|
||||
CML_save_to_file_response (GtkFileSelection *fs,
|
||||
gint response_id,
|
||||
gpointer data)
|
||||
{
|
||||
const gchar *filename;
|
||||
struct stat buf;
|
||||
|
@ -2089,7 +2086,13 @@ CML_execute_save_to_file (GtkWidget *widget,
|
|||
gint channel_id;
|
||||
gint err;
|
||||
|
||||
filename = gtk_file_selection_get_filename (GTK_FILE_SELECTION (data));
|
||||
if (response_id != GTK_RESPONSE_OK)
|
||||
{
|
||||
gtk_widget_hide (GTK_WIDGET (fs));
|
||||
return;
|
||||
}
|
||||
|
||||
filename = gtk_file_selection_get_filename (fs);
|
||||
if (! filename)
|
||||
return;
|
||||
|
||||
|
@ -2106,24 +2109,16 @@ CML_execute_save_to_file (GtkWidget *widget,
|
|||
|
||||
if (filename[strlen (filename) - 1] != '/')
|
||||
g_string_append_c (s, '/');
|
||||
gtk_file_selection_set_filename (GTK_FILE_SELECTION (data),
|
||||
s->str);
|
||||
gtk_file_selection_set_filename (fs, s->str);
|
||||
g_string_free (s, TRUE);
|
||||
return;
|
||||
}
|
||||
else if (buf.st_mode & S_IFREG) /* already exists */
|
||||
{
|
||||
gtk_widget_set_sensitive (GTK_WIDGET (data), FALSE);
|
||||
if (! force_overwrite (filename, GTK_WIDGET (fs)))
|
||||
return;
|
||||
|
||||
if (! force_overwrite (filename, gtk_widget_get_toplevel (widget)))
|
||||
{
|
||||
gtk_widget_set_sensitive (GTK_WIDGET (data), TRUE);
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
file = fopen (filename, "w");
|
||||
}
|
||||
file = fopen (filename, "w");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2133,62 +2128,62 @@ CML_execute_save_to_file (GtkWidget *widget,
|
|||
filename, g_strerror (errno));
|
||||
return;
|
||||
}
|
||||
else
|
||||
|
||||
fprintf (file, "; This is a parameter file for CML_explorer\n");
|
||||
fprintf (file, "; File format version: %1.1f\n", PARAM_FILE_FORMAT_VERSION);
|
||||
fprintf (file, ";\n");
|
||||
|
||||
for (channel_id = 0; channel_id < 3; channel_id++)
|
||||
{
|
||||
fprintf (file, "; This is a parameter file for CML_explorer\n");
|
||||
fprintf (file, "; File format version: %1.1f\n", PARAM_FILE_FORMAT_VERSION);
|
||||
fprintf (file, ";\n");
|
||||
for (channel_id = 0; channel_id < 3; channel_id++)
|
||||
{
|
||||
gchar buf[G_ASCII_DTOSTR_BUF_SIZE];
|
||||
gchar buf[G_ASCII_DTOSTR_BUF_SIZE];
|
||||
|
||||
CML_PARAM param = *(CML_PARAM *)(channel_params[channel_id]);
|
||||
CML_PARAM param = *(CML_PARAM *)(channel_params[channel_id]);
|
||||
|
||||
fprintf (file, "\t%s\n", channel_names[channel_id]);
|
||||
fprintf (file, "Function_type : %d (%s)\n",
|
||||
param.function, function_names[param.function]);
|
||||
fprintf (file, "Compostion_type : %d (%s)\n",
|
||||
param.composition, composition_names[param.composition]);
|
||||
fprintf (file, "Arrange : %d (%s)\n",
|
||||
param.arrange, arrange_names[param.arrange]);
|
||||
fprintf (file, "Cyclic_range : %d (%s)\n",
|
||||
param.cyclic_range, (param.cyclic_range ? "TRUE" : "FALSE"));
|
||||
fprintf (file, "Mod. rate : %s\n",
|
||||
g_ascii_dtostr (buf, sizeof (buf), param.mod_rate));
|
||||
fprintf (file, "Env_sensitivtiy : %s\n",
|
||||
g_ascii_dtostr (buf, sizeof (buf), param.env_sensitivity));
|
||||
fprintf (file, "Diffusion dist. : %d\n", param.diffusion_dist);
|
||||
fprintf (file, "Ch. sensitivity : %s\n",
|
||||
g_ascii_dtostr (buf, sizeof (buf), param.ch_sensitivity));
|
||||
fprintf (file, "Num. of Subranges: %d\n", param.range_num);
|
||||
fprintf (file, "Power_factor : %s\n",
|
||||
g_ascii_dtostr (buf, sizeof (buf), param.power));
|
||||
fprintf (file, "Parameter_k : %s\n",
|
||||
g_ascii_dtostr (buf, sizeof (buf), param.parameter_k));
|
||||
fprintf (file, "Range_low : %s\n",
|
||||
g_ascii_dtostr (buf, sizeof (buf), param.range_l));
|
||||
fprintf (file, "Range_high : %s\n",
|
||||
g_ascii_dtostr (buf, sizeof (buf), param.range_h));
|
||||
fprintf (file, "Mutation_rate : %s\n",
|
||||
g_ascii_dtostr (buf, sizeof (buf), param.mutation_rate));
|
||||
fprintf (file, "Mutation_distance: %s\n",
|
||||
g_ascii_dtostr (buf, sizeof (buf), param.mutation_dist));
|
||||
}
|
||||
fprintf (file, "\n");
|
||||
fprintf (file, "Initial value : %d (%s)\n",
|
||||
VALS.initial_value, initial_value_names[VALS.initial_value]);
|
||||
fprintf (file, "Zoom scale : %d\n", VALS.scale);
|
||||
fprintf (file, "Start offset : %d\n", VALS.start_offset);
|
||||
fprintf (file, "Random seed : %d\n", VALS.seed);
|
||||
fclose(file);
|
||||
|
||||
g_message (_("Parameters were Saved to '%s'"), filename);
|
||||
|
||||
strncpy (VALS.last_file_name, filename,
|
||||
sizeof (VALS.last_file_name) - 1);
|
||||
fprintf (file, "\t%s\n", channel_names[channel_id]);
|
||||
fprintf (file, "Function_type : %d (%s)\n",
|
||||
param.function, function_names[param.function]);
|
||||
fprintf (file, "Compostion_type : %d (%s)\n",
|
||||
param.composition, composition_names[param.composition]);
|
||||
fprintf (file, "Arrange : %d (%s)\n",
|
||||
param.arrange, arrange_names[param.arrange]);
|
||||
fprintf (file, "Cyclic_range : %d (%s)\n",
|
||||
param.cyclic_range, (param.cyclic_range ? "TRUE" : "FALSE"));
|
||||
fprintf (file, "Mod. rate : %s\n",
|
||||
g_ascii_dtostr (buf, sizeof (buf), param.mod_rate));
|
||||
fprintf (file, "Env_sensitivtiy : %s\n",
|
||||
g_ascii_dtostr (buf, sizeof (buf), param.env_sensitivity));
|
||||
fprintf (file, "Diffusion dist. : %d\n", param.diffusion_dist);
|
||||
fprintf (file, "Ch. sensitivity : %s\n",
|
||||
g_ascii_dtostr (buf, sizeof (buf), param.ch_sensitivity));
|
||||
fprintf (file, "Num. of Subranges: %d\n", param.range_num);
|
||||
fprintf (file, "Power_factor : %s\n",
|
||||
g_ascii_dtostr (buf, sizeof (buf), param.power));
|
||||
fprintf (file, "Parameter_k : %s\n",
|
||||
g_ascii_dtostr (buf, sizeof (buf), param.parameter_k));
|
||||
fprintf (file, "Range_low : %s\n",
|
||||
g_ascii_dtostr (buf, sizeof (buf), param.range_l));
|
||||
fprintf (file, "Range_high : %s\n",
|
||||
g_ascii_dtostr (buf, sizeof (buf), param.range_h));
|
||||
fprintf (file, "Mutation_rate : %s\n",
|
||||
g_ascii_dtostr (buf, sizeof (buf), param.mutation_rate));
|
||||
fprintf (file, "Mutation_distance: %s\n",
|
||||
g_ascii_dtostr (buf, sizeof (buf), param.mutation_dist));
|
||||
}
|
||||
|
||||
gtk_widget_hide (GTK_WIDGET (data));
|
||||
fprintf (file, "\n");
|
||||
fprintf (file, "Initial value : %d (%s)\n",
|
||||
VALS.initial_value, initial_value_names[VALS.initial_value]);
|
||||
fprintf (file, "Zoom scale : %d\n", VALS.scale);
|
||||
fprintf (file, "Start offset : %d\n", VALS.start_offset);
|
||||
fprintf (file, "Random seed : %d\n", VALS.seed);
|
||||
fclose(file);
|
||||
|
||||
g_message (_("Parameters were Saved to '%s'"), filename);
|
||||
|
||||
strncpy (VALS.last_file_name, filename,
|
||||
sizeof (VALS.last_file_name) - 1);
|
||||
|
||||
gtk_widget_hide (GTK_WIDGET (fs));
|
||||
}
|
||||
|
||||
static gint
|
||||
|
@ -2202,7 +2197,7 @@ force_overwrite (const gchar *filename,
|
|||
gboolean overwrite;
|
||||
|
||||
dlg = gimp_dialog_new (_("CML File Operation Warning"), "cml_explorer",
|
||||
parent, 0,
|
||||
parent, GTK_DIALOG_MODAL,
|
||||
gimp_standard_help_func, "filters/cml_explorer.html",
|
||||
|
||||
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
|
||||
|
@ -2246,22 +2241,12 @@ CML_load_from_file_callback (GtkWidget *widget,
|
|||
gtk_window_set_transient_for (GTK_WINDOW (filesel),
|
||||
GTK_WINDOW (gtk_widget_get_toplevel (widget)));
|
||||
|
||||
g_signal_connect (GTK_FILE_SELECTION (filesel)->ok_button,
|
||||
"clicked",
|
||||
G_CALLBACK (CML_execute_load_from_file),
|
||||
filesel);
|
||||
|
||||
g_signal_connect_swapped (filesel, "delete_event",
|
||||
G_CALLBACK (gtk_widget_hide),
|
||||
filesel);
|
||||
|
||||
g_signal_connect_swapped (GTK_FILE_SELECTION (filesel)->cancel_button,
|
||||
"clicked",
|
||||
G_CALLBACK (gtk_widget_hide),
|
||||
filesel);
|
||||
|
||||
gimp_help_connect (filesel, gimp_standard_help_func,
|
||||
"filters/cml_explorer.html", NULL);
|
||||
|
||||
g_signal_connect (filesel, "response",
|
||||
G_CALLBACK (CML_load_from_file_response),
|
||||
NULL);
|
||||
}
|
||||
|
||||
if ((selective_load_source == 0) || (selective_load_destination == 0))
|
||||
|
@ -2273,52 +2258,52 @@ CML_load_from_file_callback (GtkWidget *widget,
|
|||
gtk_file_selection_set_filename (GTK_FILE_SELECTION (filesel),
|
||||
VALS.last_file_name);
|
||||
|
||||
if (GTK_WIDGET_VISIBLE (filesel))
|
||||
gdk_window_raise (filesel->window);
|
||||
else
|
||||
gtk_widget_show (filesel);
|
||||
gtk_window_present (GTK_WINDOW (filesel));
|
||||
}
|
||||
|
||||
static void
|
||||
CML_execute_load_from_file (GtkWidget *widget,
|
||||
gpointer data)
|
||||
CML_load_from_file_response (GtkFileSelection *fs,
|
||||
gint response_id,
|
||||
gpointer data)
|
||||
{
|
||||
const gchar *filename;
|
||||
gint channel_id;
|
||||
gint flag = TRUE;
|
||||
|
||||
filename = gtk_file_selection_get_filename (GTK_FILE_SELECTION (data));
|
||||
|
||||
gtk_widget_set_sensitive (GTK_WIDGET (data), FALSE);
|
||||
flag = CML_load_parameter_file (filename, TRUE);
|
||||
gtk_widget_destroy (GTK_WIDGET(data));
|
||||
|
||||
if (flag)
|
||||
if (response_id == GTK_RESPONSE_OK)
|
||||
{
|
||||
gint index;
|
||||
WidgetEntry *widgets;
|
||||
const gchar *filename;
|
||||
gint channel_id;
|
||||
gint flag = TRUE;
|
||||
|
||||
CML_preview_defer = TRUE;
|
||||
filename = gtk_file_selection_get_filename (fs);
|
||||
|
||||
for (channel_id = 0; channel_id < 3; channel_id++)
|
||||
{
|
||||
widgets = widget_pointers[channel_id];
|
||||
for (index = 0; index < CML_PARAM_NUM; index++)
|
||||
if (widgets[index].widget && widgets[index].updater)
|
||||
(widgets[index].updater) (widgets + index);
|
||||
}
|
||||
/* channel independent parameters */
|
||||
widgets = widget_pointers[3];
|
||||
for (index = 0; index < 4; index++)
|
||||
if (widgets[index].widget && widgets[index].updater)
|
||||
(widgets[index].updater) (widgets + index);
|
||||
gtk_widget_set_sensitive (GTK_WIDGET (fs), FALSE);
|
||||
flag = CML_load_parameter_file (filename, TRUE);
|
||||
|
||||
gdk_flush ();
|
||||
if (flag)
|
||||
{
|
||||
gint index;
|
||||
WidgetEntry *widgets;
|
||||
|
||||
CML_preview_defer = FALSE;
|
||||
CML_preview_defer = TRUE;
|
||||
|
||||
preview_update ();
|
||||
for (channel_id = 0; channel_id < 3; channel_id++)
|
||||
{
|
||||
widgets = widget_pointers[channel_id];
|
||||
for (index = 0; index < CML_PARAM_NUM; index++)
|
||||
if (widgets[index].widget && widgets[index].updater)
|
||||
(widgets[index].updater) (widgets + index);
|
||||
}
|
||||
/* channel independent parameters */
|
||||
widgets = widget_pointers[3];
|
||||
for (index = 0; index < 4; index++)
|
||||
if (widgets[index].widget && widgets[index].updater)
|
||||
(widgets[index].updater) (widgets + index);
|
||||
|
||||
CML_preview_defer = FALSE;
|
||||
|
||||
preview_update ();
|
||||
}
|
||||
}
|
||||
|
||||
gtk_widget_destroy (GTK_WIDGET (fs));
|
||||
}
|
||||
|
||||
static gint
|
||||
|
|
|
@ -268,8 +268,10 @@ static void bender_antialias_callback (GtkWidget *, gpointer);
|
|||
static void bender_work_on_copy_callback (GtkWidget *, gpointer);
|
||||
static void bender_preview_update (GtkWidget *, gpointer);
|
||||
static void bender_preview_update_once (GtkWidget *, gpointer);
|
||||
static void bender_load_callback (GtkWidget *, gpointer);
|
||||
static void bender_save_callback (GtkWidget *, gpointer);
|
||||
static void bender_load_callback (GtkWidget *,
|
||||
BenderDialog *);
|
||||
static void bender_save_callback (GtkWidget *,
|
||||
BenderDialog *);
|
||||
static gint bender_pv_widget_events (GtkWidget *, GdkEvent *,
|
||||
BenderDialog *);
|
||||
static gint bender_graph_events (GtkWidget *, GdkEvent *,
|
||||
|
@ -1964,113 +1966,95 @@ bender_preview_update_once (GtkWidget *widget,
|
|||
}
|
||||
|
||||
static void
|
||||
p_filesel_close_cb (GtkWidget *widget,
|
||||
gpointer data)
|
||||
p_points_save_to_file_response (GtkFileSelection *fs,
|
||||
gint response_id,
|
||||
BenderDialog *cd)
|
||||
{
|
||||
BenderDialog *cd = (BenderDialog*) data;
|
||||
if (response_id == GTK_RESPONSE_OK)
|
||||
{
|
||||
const gchar *filename;
|
||||
|
||||
gtk_widget_destroy (GTK_WIDGET (cd->filesel));
|
||||
cd->filesel = NULL; /* now filesel is closed */
|
||||
filename = gtk_file_selection_get_filename (fs);
|
||||
p_save_pointfile (cd, filename);
|
||||
}
|
||||
|
||||
gtk_widget_destroy (GTK_WIDGET (fs));
|
||||
}
|
||||
|
||||
static void
|
||||
p_points_save_to_file (GtkWidget *widget,
|
||||
gpointer data)
|
||||
p_points_load_from_file_response (GtkFileSelection *fs,
|
||||
gint response_id,
|
||||
BenderDialog *cd)
|
||||
{
|
||||
BenderDialog *cd = (BenderDialog*) data;
|
||||
const char *filename;
|
||||
if (response_id == GTK_RESPONSE_OK)
|
||||
{
|
||||
const gchar *filename;
|
||||
|
||||
filename = gtk_file_selection_get_filename(GTK_FILE_SELECTION (cd->filesel));
|
||||
p_save_pointfile(cd, filename);
|
||||
gtk_widget_destroy(GTK_WIDGET(cd->filesel));
|
||||
cd->filesel = NULL;
|
||||
filename = gtk_file_selection_get_filename (fs);
|
||||
p_load_pointfile (cd, filename);
|
||||
bender_update (cd, UP_ALL);
|
||||
}
|
||||
|
||||
gtk_widget_destroy (GTK_WIDGET (fs));
|
||||
}
|
||||
|
||||
static void
|
||||
p_points_load_from_file (GtkWidget *widget,
|
||||
gpointer data)
|
||||
bender_load_callback (GtkWidget *w,
|
||||
BenderDialog *cd)
|
||||
{
|
||||
BenderDialog *cd = (BenderDialog*) data;
|
||||
const char *filename;
|
||||
|
||||
filename = gtk_file_selection_get_filename(GTK_FILE_SELECTION (cd->filesel));
|
||||
p_load_pointfile(cd, filename);
|
||||
gtk_widget_destroy(GTK_WIDGET(cd->filesel));
|
||||
cd->filesel = NULL;
|
||||
bender_update (cd, UP_ALL);
|
||||
}
|
||||
|
||||
static void
|
||||
bender_load_callback (GtkWidget *w,
|
||||
gpointer data)
|
||||
{
|
||||
BenderDialog *cd;
|
||||
GtkWidget *filesel;
|
||||
|
||||
cd = (BenderDialog *) data;
|
||||
if (cd->filesel)
|
||||
return; /* filesel is already open */
|
||||
{
|
||||
gtk_window_present (GTK_WINDOW (cd->filesel));
|
||||
return;
|
||||
}
|
||||
|
||||
filesel = gtk_file_selection_new ( _("Load Curve Points from file"));
|
||||
cd->filesel = filesel;
|
||||
cd->filesel = gtk_file_selection_new (_("Load Curve Points from file"));
|
||||
|
||||
gtk_window_set_transient_for (GTK_WINDOW (filesel),
|
||||
gtk_window_set_transient_for (GTK_WINDOW (cd->filesel),
|
||||
GTK_WINDOW (gtk_widget_get_toplevel (w)));
|
||||
|
||||
g_signal_connect (GTK_FILE_SELECTION (filesel)->ok_button,
|
||||
"clicked",
|
||||
G_CALLBACK (p_points_load_from_file),
|
||||
cd);
|
||||
g_signal_connect (GTK_FILE_SELECTION (filesel)->cancel_button,
|
||||
"clicked",
|
||||
G_CALLBACK (p_filesel_close_cb),
|
||||
cd);
|
||||
g_signal_connect (filesel, "destroy",
|
||||
G_CALLBACK (p_filesel_close_cb),
|
||||
g_signal_connect (cd->filesel, "response",
|
||||
G_CALLBACK (p_points_load_from_file_response),
|
||||
cd);
|
||||
g_signal_connect (cd->filesel, "destroy",
|
||||
G_CALLBACK (gtk_widget_destroyed),
|
||||
&cd->filesel);
|
||||
|
||||
gtk_file_selection_set_filename (GTK_FILE_SELECTION (filesel),
|
||||
gtk_file_selection_set_filename (GTK_FILE_SELECTION (cd->filesel),
|
||||
"curve_bend.points");
|
||||
gtk_widget_show (filesel);
|
||||
gtk_widget_show (cd->filesel);
|
||||
}
|
||||
|
||||
static void
|
||||
bender_save_callback (GtkWidget *w,
|
||||
gpointer data)
|
||||
bender_save_callback (GtkWidget *w,
|
||||
BenderDialog *cd)
|
||||
{
|
||||
BenderDialog *cd;
|
||||
GtkWidget *filesel;
|
||||
if (cd->filesel)
|
||||
{
|
||||
gtk_window_present (GTK_WINDOW (cd->filesel));
|
||||
return;
|
||||
}
|
||||
|
||||
cd = (BenderDialog *) data;
|
||||
if(cd->filesel != NULL)
|
||||
return; /* filesel is already open */
|
||||
cd->filesel = gtk_file_selection_new (_("Save Curve Points to file"));
|
||||
|
||||
filesel = gtk_file_selection_new ( _("Save Curve Points to file"));
|
||||
cd->filesel = filesel;
|
||||
|
||||
gtk_window_set_transient_for (GTK_WINDOW (filesel),
|
||||
gtk_window_set_transient_for (GTK_WINDOW (cd->filesel),
|
||||
GTK_WINDOW (gtk_widget_get_toplevel (w)));
|
||||
|
||||
g_signal_connect (GTK_FILE_SELECTION (filesel)->ok_button,
|
||||
"clicked",
|
||||
G_CALLBACK (p_points_save_to_file),
|
||||
cd);
|
||||
g_signal_connect (GTK_FILE_SELECTION (filesel)->cancel_button,
|
||||
"clicked",
|
||||
G_CALLBACK (p_filesel_close_cb),
|
||||
cd);
|
||||
g_signal_connect (filesel, "destroy",
|
||||
G_CALLBACK (p_filesel_close_cb),
|
||||
g_signal_connect (cd->filesel, "response",
|
||||
G_CALLBACK (p_points_save_to_file_response),
|
||||
cd);
|
||||
g_signal_connect (cd->filesel, "destroy",
|
||||
G_CALLBACK (gtk_widget_destroyed),
|
||||
&cd->filesel);
|
||||
|
||||
gtk_file_selection_set_filename (GTK_FILE_SELECTION (filesel),
|
||||
gtk_file_selection_set_filename (GTK_FILE_SELECTION (cd->filesel),
|
||||
"curve_bend.points");
|
||||
gtk_widget_show (filesel);
|
||||
gtk_widget_show (cd->filesel);
|
||||
}
|
||||
|
||||
static void
|
||||
bender_smoothing_callback (GtkWidget *w,
|
||||
gpointer data)
|
||||
gpointer data)
|
||||
{
|
||||
BenderDialog *cd = (BenderDialog*) data;
|
||||
|
||||
|
|
|
@ -703,26 +703,34 @@ save_data (gchar *name)
|
|||
}
|
||||
|
||||
static void
|
||||
file_selection_save (GtkWidget *widget,
|
||||
GtkWidget *file_select)
|
||||
file_selection_save_response (GtkFileSelection *fs,
|
||||
gint response_id,
|
||||
gpointer data)
|
||||
{
|
||||
strcpy (qbist_info.path,
|
||||
gtk_file_selection_get_filename (GTK_FILE_SELECTION (file_select)));
|
||||
save_data (qbist_info.path);
|
||||
if (response_id == GTK_RESPONSE_OK)
|
||||
{
|
||||
strcpy (qbist_info.path, gtk_file_selection_get_filename (fs));
|
||||
save_data (qbist_info.path);
|
||||
}
|
||||
|
||||
gtk_widget_destroy (file_select);
|
||||
gtk_widget_destroy (GTK_WIDGET (fs));
|
||||
}
|
||||
|
||||
static void
|
||||
file_selection_load (GtkWidget *widget,
|
||||
GtkWidget *file_select)
|
||||
file_selection_load_response (GtkFileSelection *fs,
|
||||
gint response_id,
|
||||
gpointer data)
|
||||
{
|
||||
strcpy (qbist_info.path,
|
||||
gtk_file_selection_get_filename (GTK_FILE_SELECTION (file_select)));
|
||||
load_data (qbist_info.path);
|
||||
gtk_widget_destroy (file_select);
|
||||
dialog_new_variations (widget, NULL);
|
||||
dialog_update_previews (widget, NULL);
|
||||
if (response_id == GTK_RESPONSE_OK)
|
||||
{
|
||||
strcpy (qbist_info.path, gtk_file_selection_get_filename (fs));
|
||||
load_data (qbist_info.path);
|
||||
|
||||
dialog_new_variations (NULL, NULL);
|
||||
dialog_update_previews (NULL, NULL);
|
||||
}
|
||||
|
||||
gtk_widget_destroy (GTK_WIDGET (fs));
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -742,14 +750,9 @@ dialog_load (GtkWidget *widget,
|
|||
gtk_file_selection_set_filename (GTK_FILE_SELECTION (file_select),
|
||||
qbist_info.path);
|
||||
|
||||
g_signal_connect (GTK_FILE_SELECTION (file_select)->ok_button,
|
||||
"clicked",
|
||||
G_CALLBACK (file_selection_load),
|
||||
file_select);
|
||||
g_signal_connect_swapped (GTK_FILE_SELECTION (file_select)->cancel_button,
|
||||
"clicked",
|
||||
G_CALLBACK (gtk_widget_destroy),
|
||||
file_select);
|
||||
g_signal_connect (file_select, "response",
|
||||
G_CALLBACK (file_selection_load_response),
|
||||
NULL);
|
||||
|
||||
gtk_widget_show (file_select);
|
||||
}
|
||||
|
@ -772,14 +775,9 @@ dialog_save (GtkWidget *widget,
|
|||
gtk_file_selection_set_filename (GTK_FILE_SELECTION (file_select),
|
||||
qbist_info.path);
|
||||
|
||||
g_signal_connect (GTK_FILE_SELECTION (file_select)->ok_button,
|
||||
"clicked",
|
||||
G_CALLBACK (file_selection_save),
|
||||
file_select);
|
||||
g_signal_connect_swapped (GTK_FILE_SELECTION (file_select)->cancel_button,
|
||||
"clicked",
|
||||
G_CALLBACK (gtk_widget_destroy),
|
||||
file_select);
|
||||
g_signal_connect (file_select, "response",
|
||||
G_CALLBACK (file_selection_save_response),
|
||||
NULL);
|
||||
|
||||
gtk_widget_show (file_select);
|
||||
}
|
||||
|
|
|
@ -2052,16 +2052,21 @@ loadit (const gchar * fn)
|
|||
}
|
||||
|
||||
static void
|
||||
loadpreset_ok (GtkWidget *widget,
|
||||
GtkFileSelection *fs)
|
||||
loadpreset_response (GtkFileSelection *fs,
|
||||
gint response_id,
|
||||
gpointer data)
|
||||
{
|
||||
const gchar *fn = gtk_file_selection_get_filename (GTK_FILE_SELECTION (fs));
|
||||
if (response_id == GTK_RESPONSE_OK)
|
||||
{
|
||||
const gchar *fn = gtk_file_selection_get_filename (fs);
|
||||
|
||||
gtk_list_store_clear (GTK_LIST_STORE (gtk_tree_view_get_model (texturelist)));
|
||||
loadit (fn);
|
||||
rebuildlist ();
|
||||
restartrender ();
|
||||
}
|
||||
|
||||
gtk_widget_hide (GTK_WIDGET (fs));
|
||||
gtk_list_store_clear (GTK_LIST_STORE (gtk_tree_view_get_model (texturelist)));
|
||||
loadit (fn);
|
||||
rebuildlist ();
|
||||
restartrender ();
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -2115,12 +2120,18 @@ saveit (const gchar *fn)
|
|||
}
|
||||
|
||||
static void
|
||||
savepreset_ok (GtkWidget *widget,
|
||||
GtkFileSelection *fs)
|
||||
savepreset_response (GtkFileSelection *fs,
|
||||
gint response_id,
|
||||
gpointer data)
|
||||
{
|
||||
const char *fn = gtk_file_selection_get_filename (GTK_FILE_SELECTION (fs));
|
||||
if (response_id == GTK_RESPONSE_OK)
|
||||
{
|
||||
const char *fn = gtk_file_selection_get_filename (fs);
|
||||
|
||||
saveit (fn);
|
||||
}
|
||||
|
||||
gtk_widget_hide (GTK_WIDGET (fs));
|
||||
saveit (fn);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -2143,8 +2154,8 @@ fileselect (gint action,
|
|||
{
|
||||
static GtkWidget *windows[2] = { NULL, NULL };
|
||||
|
||||
gchar *titles[] = { N_("Open File"), N_("Save File") };
|
||||
void *handlers[] = { loadpreset_ok, savepreset_ok };
|
||||
gchar *titles[] = { N_("Open File"), N_("Save File") };
|
||||
void *handlers[] = { loadpreset_response, savepreset_response };
|
||||
|
||||
if (!windows[action])
|
||||
{
|
||||
|
@ -2153,23 +2164,21 @@ fileselect (gint action,
|
|||
gtk_window_set_transient_for (GTK_WINDOW (windows[action]),
|
||||
GTK_WINDOW (parent));
|
||||
|
||||
g_signal_connect (windows[action], "destroy",
|
||||
G_CALLBACK (gtk_widget_destroy), &windows[action]);
|
||||
g_signal_connect (windows[action], "delete_event",
|
||||
G_CALLBACK (gtk_widget_hide), &windows[action]);
|
||||
|
||||
g_signal_connect (GTK_FILE_SELECTION (windows[action])->ok_button,
|
||||
"clicked",
|
||||
G_CALLBACK (handlers[action]), windows[action]);
|
||||
g_signal_connect_swapped (GTK_FILE_SELECTION (windows[action])->
|
||||
cancel_button, "clicked",
|
||||
G_CALLBACK (gtk_widget_hide),
|
||||
windows[action]);
|
||||
|
||||
gimp_help_connect (windows[action], gimp_standard_help_func,
|
||||
"filters/spheredesigner.html", NULL);
|
||||
|
||||
g_signal_connect (windows[action], "destroy",
|
||||
G_CALLBACK (gtk_widget_destroyed),
|
||||
&windows[action]);
|
||||
g_signal_connect (windows[action], "delete_event",
|
||||
G_CALLBACK (gtk_true),
|
||||
NULL);
|
||||
g_signal_connect (windows[action], "response",
|
||||
G_CALLBACK (handlers[action]),
|
||||
NULL);
|
||||
}
|
||||
gtk_widget_show (windows[action]);
|
||||
|
||||
gtk_window_present (GTK_WINDOW (windows[action]));
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
@ -371,87 +371,80 @@ doit (GimpDrawable *drawable)
|
|||
gimp_drawable_update (drawable->drawable_id, 0, 0, width, height);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
file_cancel_callback (GtkWidget *widget,
|
||||
gpointer data)
|
||||
static void
|
||||
file_response_callback (GtkFileSelection *fs,
|
||||
gint response_id,
|
||||
gpointer data)
|
||||
{
|
||||
gtk_widget_hide (widget);
|
||||
if (response_id == GTK_RESPONSE_OK)
|
||||
{
|
||||
const gchar *filename;
|
||||
|
||||
filename = gtk_file_selection_get_filename (fs);
|
||||
|
||||
if (load_save)
|
||||
{
|
||||
FILE *f;
|
||||
gint i, c;
|
||||
gchar *ss;
|
||||
|
||||
if (!g_file_test (filename, G_FILE_TEST_IS_REGULAR))
|
||||
{
|
||||
g_message (_("'%s' is not a regular file"), filename);
|
||||
return;
|
||||
}
|
||||
|
||||
f = fopen (filename, "r");
|
||||
|
||||
if (f == NULL)
|
||||
{
|
||||
g_message (_("Could not open '%s' for reading: %s"),
|
||||
filename, g_strerror (errno));
|
||||
return;
|
||||
}
|
||||
|
||||
i = 0;
|
||||
ss = buffer;
|
||||
do
|
||||
{
|
||||
c = getc (f);
|
||||
if (EOF == c)
|
||||
break;
|
||||
ss[i++] = c;
|
||||
}
|
||||
while (i < BUFFER_SIZE && ';' != c);
|
||||
parse_control_point (&ss, &config.cp);
|
||||
fclose (f);
|
||||
/* i want to update the existing dialogue, but it's
|
||||
too painful */
|
||||
gimp_set_data ("plug_in_flame", &config, sizeof (config));
|
||||
/* gtk_widget_destroy(dlg); */
|
||||
set_flame_preview ();
|
||||
set_edit_preview ();
|
||||
}
|
||||
else
|
||||
{
|
||||
FILE *f = fopen (filename, "w");
|
||||
|
||||
if (NULL == f)
|
||||
{
|
||||
g_message (_("Could not open '%s' for writing: %s"),
|
||||
filename, g_strerror (errno));
|
||||
return;
|
||||
}
|
||||
|
||||
print_control_point (f, &config.cp, 0);
|
||||
fclose (f);
|
||||
}
|
||||
}
|
||||
|
||||
gtk_widget_hide (GTK_WIDGET (fs));
|
||||
|
||||
if (! GTK_WIDGET_SENSITIVE (load_button))
|
||||
gtk_widget_set_sensitive (load_button, TRUE);
|
||||
|
||||
if (! GTK_WIDGET_SENSITIVE (save_button))
|
||||
gtk_widget_set_sensitive (save_button, TRUE);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
file_ok_callback (GtkWidget *widget,
|
||||
gpointer data)
|
||||
{
|
||||
GtkFileSelection *fs;
|
||||
const gchar *filename;
|
||||
|
||||
fs = GTK_FILE_SELECTION (data);
|
||||
filename = gtk_file_selection_get_filename (fs);
|
||||
|
||||
if (load_save)
|
||||
{
|
||||
FILE *f;
|
||||
gint i, c;
|
||||
gchar *ss;
|
||||
|
||||
if (!g_file_test (filename, G_FILE_TEST_IS_REGULAR))
|
||||
{
|
||||
g_message (_("'%s' is not a regular file"), filename);
|
||||
return;
|
||||
}
|
||||
|
||||
f = fopen (filename, "r");
|
||||
|
||||
if (f == NULL)
|
||||
{
|
||||
g_message (_("Could not open '%s' for reading: %s"),
|
||||
filename, g_strerror (errno));
|
||||
return;
|
||||
}
|
||||
|
||||
i = 0;
|
||||
ss = buffer;
|
||||
do
|
||||
{
|
||||
c = getc (f);
|
||||
if (EOF == c)
|
||||
break;
|
||||
ss[i++] = c;
|
||||
}
|
||||
while (i < BUFFER_SIZE && ';' != c);
|
||||
parse_control_point (&ss, &config.cp);
|
||||
fclose (f);
|
||||
/* i want to update the existing dialogue, but it's
|
||||
too painful */
|
||||
gimp_set_data ("plug_in_flame", &config, sizeof (config));
|
||||
/* gtk_widget_destroy(dlg); */
|
||||
set_flame_preview ();
|
||||
set_edit_preview ();
|
||||
}
|
||||
else
|
||||
{
|
||||
FILE *f = fopen (filename, "w");
|
||||
|
||||
if (NULL == f)
|
||||
{
|
||||
g_message (_("Could not open '%s' for writing: %s"),
|
||||
filename, g_strerror (errno));
|
||||
return;
|
||||
}
|
||||
|
||||
print_control_point (f, &config.cp, 0);
|
||||
fclose (f);
|
||||
}
|
||||
|
||||
file_cancel_callback (GTK_WIDGET (data), NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -463,16 +456,13 @@ make_file_dlg (GtkWidget *parent)
|
|||
gtk_window_set_destroy_with_parent (GTK_WINDOW (file_dlg), TRUE);
|
||||
|
||||
gtk_window_set_position (GTK_WINDOW (file_dlg), GTK_WIN_POS_MOUSE);
|
||||
g_signal_connect_swapped (file_dlg, "delete_event",
|
||||
G_CALLBACK (file_cancel_callback),
|
||||
file_dlg);
|
||||
g_signal_connect (GTK_FILE_SELECTION (file_dlg)->ok_button, "clicked",
|
||||
G_CALLBACK (file_ok_callback),
|
||||
file_dlg);
|
||||
g_signal_connect_swapped (GTK_FILE_SELECTION (file_dlg)->cancel_button,
|
||||
"clicked",
|
||||
G_CALLBACK (file_cancel_callback),
|
||||
file_dlg);
|
||||
|
||||
g_signal_connect (file_dlg, "delete_event",
|
||||
G_CALLBACK (gtk_true),
|
||||
NULL);
|
||||
g_signal_connect (file_dlg, "response",
|
||||
G_CALLBACK (file_response_callback),
|
||||
NULL);
|
||||
|
||||
gimp_help_connect (file_dlg, gimp_standard_help_func,
|
||||
"filters/flame.html", NULL);
|
||||
|
|
|
@ -1073,38 +1073,39 @@ gfig_save_callbk (void)
|
|||
}
|
||||
|
||||
static void
|
||||
file_selection_ok (GtkWidget *w,
|
||||
GtkFileSelection *fs,
|
||||
gpointer data)
|
||||
file_selection_response (GtkFileSelection *fs,
|
||||
gint response_id,
|
||||
GFigObj *obj)
|
||||
{
|
||||
const gchar *filenamebuf;
|
||||
GFigObj *obj = g_object_get_data (G_OBJECT (fs), "user_data");
|
||||
GFigObj *real_current;
|
||||
|
||||
filenamebuf = gtk_file_selection_get_filename (GTK_FILE_SELECTION (fs));
|
||||
|
||||
/* Get the name */
|
||||
if (strlen (filenamebuf) == 0)
|
||||
if (response_id == GTK_RESPONSE_OK)
|
||||
{
|
||||
g_message ("Save: No filename given");
|
||||
return;
|
||||
const gchar *filenamebuf;
|
||||
GFigObj *real_current;
|
||||
|
||||
filenamebuf = gtk_file_selection_get_filename (fs);
|
||||
|
||||
/* Get the name */
|
||||
if (strlen (filenamebuf) == 0)
|
||||
{
|
||||
g_message ("Save: No filename given");
|
||||
return;
|
||||
}
|
||||
|
||||
if (g_file_test (filenamebuf, G_FILE_TEST_IS_DIR))
|
||||
{
|
||||
g_message (_("Cannot save to a folder."));
|
||||
return;
|
||||
}
|
||||
|
||||
obj->filename = g_strdup (filenamebuf);
|
||||
|
||||
real_current = current_obj;
|
||||
current_obj = obj;
|
||||
gfig_save_callbk ();
|
||||
current_obj = current_obj;
|
||||
}
|
||||
|
||||
if (g_file_test (filenamebuf, G_FILE_TEST_IS_DIR))
|
||||
{
|
||||
g_message (_("Cannot save to a folder."));
|
||||
return;
|
||||
}
|
||||
|
||||
obj->filename = g_strdup (filenamebuf);
|
||||
|
||||
real_current = current_obj;
|
||||
current_obj = obj;
|
||||
gfig_save_callbk ();
|
||||
current_obj = current_obj;
|
||||
|
||||
gtk_widget_destroy (GTK_WIDGET (fs));
|
||||
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -1124,15 +1125,9 @@ create_file_selection (GFigObj *obj,
|
|||
g_signal_connect (window, "destroy",
|
||||
G_CALLBACK (gtk_widget_destroyed),
|
||||
&window);
|
||||
|
||||
g_object_set_data (G_OBJECT (window), "user_data", obj);
|
||||
g_signal_connect (GTK_FILE_SELECTION (window)->ok_button, "clicked",
|
||||
G_CALLBACK (file_selection_ok),
|
||||
window);
|
||||
g_signal_connect_swapped (GTK_FILE_SELECTION (window)->cancel_button,
|
||||
"clicked",
|
||||
G_CALLBACK (gtk_widget_destroy),
|
||||
window);
|
||||
g_signal_connect (window, "response",
|
||||
G_CALLBACK (file_selection_response),
|
||||
obj);
|
||||
}
|
||||
|
||||
if (tpath)
|
||||
|
@ -3365,35 +3360,38 @@ list_button_update (GFigObj *obj)
|
|||
|
||||
|
||||
static void
|
||||
gfig_load_file_selection_ok (GtkWidget *widget,
|
||||
GtkFileSelection *fs,
|
||||
gpointer data)
|
||||
gfig_load_file_selection_response (GtkFileSelection *fs,
|
||||
gint response_id,
|
||||
gpointer data)
|
||||
{
|
||||
const gchar *filename;
|
||||
GFigObj *gfig;
|
||||
GFigObj *current_saved;
|
||||
|
||||
filename = gtk_file_selection_get_filename (GTK_FILE_SELECTION (fs));
|
||||
|
||||
if (g_file_test (filename, G_FILE_TEST_IS_REGULAR))
|
||||
if (response_id == GTK_RESPONSE_OK)
|
||||
{
|
||||
/* Hack - current object MUST be NULL to prevent setup_undo ()
|
||||
* from kicking in.
|
||||
*/
|
||||
current_saved = current_obj;
|
||||
current_obj = NULL;
|
||||
gfig = gfig_load (filename, filename);
|
||||
current_obj = current_saved;
|
||||
const gchar *filename;
|
||||
GFigObj *gfig;
|
||||
GFigObj *current_saved;
|
||||
|
||||
if (gfig)
|
||||
{
|
||||
/* Read only ?*/
|
||||
if (access (filename, W_OK))
|
||||
gfig->obj_status |= GFIG_READONLY;
|
||||
filename = gtk_file_selection_get_filename (fs);
|
||||
|
||||
gfig_list_add (gfig);
|
||||
new_obj_2edit (gfig);
|
||||
}
|
||||
if (g_file_test (filename, G_FILE_TEST_IS_REGULAR))
|
||||
{
|
||||
/* Hack - current object MUST be NULL to prevent setup_undo ()
|
||||
* from kicking in.
|
||||
*/
|
||||
current_saved = current_obj;
|
||||
current_obj = NULL;
|
||||
gfig = gfig_load (filename, filename);
|
||||
current_obj = current_saved;
|
||||
|
||||
if (gfig)
|
||||
{
|
||||
/* Read only ?*/
|
||||
if (access (filename, W_OK))
|
||||
gfig->obj_status |= GFIG_READONLY;
|
||||
|
||||
gfig_list_add (gfig);
|
||||
new_obj_2edit (gfig);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
gtk_widget_destroy (GTK_WIDGET (fs));
|
||||
|
@ -3415,15 +3413,10 @@ load_button_callback (GtkWidget *widget,
|
|||
g_signal_connect (window, "destroy",
|
||||
G_CALLBACK (gtk_widget_destroyed),
|
||||
&window);
|
||||
|
||||
g_signal_connect (GTK_FILE_SELECTION (window)->ok_button, "clicked",
|
||||
G_CALLBACK (gfig_load_file_selection_ok),
|
||||
g_signal_connect (window, "response",
|
||||
G_CALLBACK (gfig_load_file_selection_response),
|
||||
window);
|
||||
|
||||
g_signal_connect_swapped (GTK_FILE_SELECTION (window)->cancel_button,
|
||||
"clicked",
|
||||
G_CALLBACK (gtk_widget_destroy),
|
||||
window);
|
||||
gtk_widget_show (window);
|
||||
}
|
||||
|
||||
|
|
|
@ -158,40 +158,45 @@ void dummybrushdmenuselect(GtkWidget *w, gpointer data)
|
|||
updatebrushprev(NULL);
|
||||
}
|
||||
|
||||
static void destroy_window (GtkWidget *widget, GtkWidget **window)
|
||||
{
|
||||
*window = NULL;
|
||||
}
|
||||
|
||||
static void brushlistrefresh(void)
|
||||
{
|
||||
gtk_list_store_clear (brushstore);
|
||||
readdirintolist("Brushes", brushlist, NULL);
|
||||
}
|
||||
|
||||
void savebrush_ok(GtkWidget *w, GtkFileSelection *fs, gpointer data)
|
||||
void
|
||||
savebrush_response (GtkFileSelection *fs,
|
||||
gint response_id,
|
||||
gpointer data)
|
||||
{
|
||||
const gchar *fn;
|
||||
fn = gtk_file_selection_get_filename (GTK_FILE_SELECTION(fs));
|
||||
if (response_id == GTK_RESPONSE_OK)
|
||||
{
|
||||
const gchar *fn;
|
||||
|
||||
saveppm(&brushppm, fn);
|
||||
fn = gtk_file_selection_get_filename (fs);
|
||||
|
||||
gtk_widget_destroy(GTK_WIDGET(fs));
|
||||
brushlistrefresh();
|
||||
saveppm (&brushppm, fn);
|
||||
brushlistrefresh ();
|
||||
}
|
||||
|
||||
gtk_widget_destroy (GTK_WIDGET (fs));
|
||||
}
|
||||
|
||||
void savebrush(GtkWidget *wg, gpointer data)
|
||||
void
|
||||
savebrush (GtkWidget *wg,
|
||||
gpointer data)
|
||||
{
|
||||
static GtkWidget *window = NULL;
|
||||
GList *thispath = parsepath();
|
||||
char path[200];
|
||||
static GtkWidget *window = NULL;
|
||||
GList *thispath = parsepath ();
|
||||
gchar path[200];
|
||||
|
||||
if(!brushppm.col) {
|
||||
g_message( _("Can only save drawables!"));
|
||||
return;
|
||||
}
|
||||
if(! brushppm.col)
|
||||
{
|
||||
g_message( _("Can only save drawables!"));
|
||||
return;
|
||||
}
|
||||
|
||||
sprintf(path, "%s/Brushes/", (char *)thispath->data);
|
||||
sprintf (path, "%s/Brushes/", (char *)thispath->data);
|
||||
|
||||
window = gtk_file_selection_new (_("Save Brush"));
|
||||
|
||||
|
@ -202,18 +207,13 @@ void savebrush(GtkWidget *wg, gpointer data)
|
|||
gtk_file_selection_set_filename (GTK_FILE_SELECTION (window), path);
|
||||
|
||||
g_signal_connect (window, "destroy",
|
||||
G_CALLBACK (destroy_window), &window);
|
||||
G_CALLBACK (gtk_widget_destroyed),
|
||||
&window);
|
||||
g_signal_connect (window, "response",
|
||||
G_CALLBACK (savebrush_response),
|
||||
NULL);
|
||||
|
||||
g_signal_connect (GTK_FILE_SELECTION (window)->ok_button, "clicked",
|
||||
G_CALLBACK (savebrush_ok), window);
|
||||
|
||||
g_signal_connect_swapped (GTK_FILE_SELECTION (window)->cancel_button,
|
||||
"clicked",
|
||||
G_CALLBACK (gtk_widget_destroy),
|
||||
window);
|
||||
gtk_widget_show(window);
|
||||
|
||||
return;
|
||||
gtk_widget_show (window);
|
||||
}
|
||||
|
||||
static gboolean validdrawable(gint32 imageid, gint32 drawableid, gpointer data)
|
||||
|
|
|
@ -2572,32 +2572,37 @@ ifscompose_message_dialog (GtkMessageType type,
|
|||
|
||||
/* save an ifs file */
|
||||
static void
|
||||
ifsfile_save (GtkWidget *widget,
|
||||
GtkWidget *file_select)
|
||||
ifsfile_save_response (GtkFileSelection *file_select,
|
||||
gint response_id,
|
||||
gpointer data)
|
||||
{
|
||||
const gchar *filename;
|
||||
gchar *str;
|
||||
FILE *fh;
|
||||
|
||||
filename = gtk_file_selection_get_filename (GTK_FILE_SELECTION (file_select));
|
||||
|
||||
str = ifsvals_stringify (&ifsvals, elements);
|
||||
|
||||
fh = fopen (filename, "w");
|
||||
if (fh)
|
||||
if (response_id == GTK_RESPONSE_OK)
|
||||
{
|
||||
const gchar *filename;
|
||||
gchar *str;
|
||||
FILE *fh;
|
||||
|
||||
filename = gtk_file_selection_get_filename (file_select);
|
||||
|
||||
str = ifsvals_stringify (&ifsvals, elements);
|
||||
|
||||
fh = fopen (filename, "w");
|
||||
if (! fh)
|
||||
{
|
||||
gchar *message =
|
||||
g_strdup_printf (_("Could not open '%s' for writing: %s"),
|
||||
filename, g_strerror (errno));
|
||||
ifscompose_message_dialog (GTK_MESSAGE_ERROR, GTK_WINDOW (file_select),
|
||||
"Save failed", message);
|
||||
g_free (message);
|
||||
return;
|
||||
}
|
||||
|
||||
fputs (str, fh);
|
||||
fclose (fh);
|
||||
gtk_widget_hide (file_select);
|
||||
}
|
||||
else
|
||||
{
|
||||
gchar *message = g_strdup_printf (_("Could not open '%s' for writing: %s"),
|
||||
filename, g_strerror (errno));
|
||||
ifscompose_message_dialog (GTK_MESSAGE_ERROR, GTK_WINDOW (file_select),
|
||||
"Save failed", message);
|
||||
g_free (message);
|
||||
}
|
||||
|
||||
gtk_widget_destroy (GTK_WIDGET (file_select));
|
||||
}
|
||||
|
||||
/* replace ifsvals and elements with specified new values
|
||||
|
@ -2648,55 +2653,59 @@ ifsfile_replace_ifsvals (IfsComposeVals *new_ifsvals,
|
|||
|
||||
/* load an ifs file */
|
||||
static void
|
||||
ifsfile_load (GtkWidget *widget,
|
||||
GtkWidget *file_select)
|
||||
ifsfile_load_response (GtkFileSelection *file_select,
|
||||
gint response_id,
|
||||
gpointer data)
|
||||
{
|
||||
const gchar *filename;
|
||||
gchar *buffer;
|
||||
AffElement **new_elements;
|
||||
IfsComposeVals new_ifsvals;
|
||||
GError *error = NULL;
|
||||
|
||||
filename = gtk_file_selection_get_filename (GTK_FILE_SELECTION (file_select));
|
||||
|
||||
if (g_file_get_contents (filename, &buffer, NULL, &error))
|
||||
if (response_id == GTK_RESPONSE_OK)
|
||||
{
|
||||
if (ifsvals_parse_string (buffer, &new_ifsvals, &new_elements))
|
||||
{
|
||||
guint i;
|
||||
const gchar *filename;
|
||||
gchar *buffer;
|
||||
AffElement **new_elements;
|
||||
IfsComposeVals new_ifsvals;
|
||||
GError *error = NULL;
|
||||
guint i;
|
||||
|
||||
undo_begin ();
|
||||
for (i = 0; i < ifsvals.num_elements; i++)
|
||||
undo_update (i);
|
||||
filename = gtk_file_selection_get_filename (file_select);
|
||||
|
||||
ifsfile_replace_ifsvals (&new_ifsvals, new_elements);
|
||||
if (! g_file_get_contents (filename, &buffer, NULL, &error))
|
||||
{
|
||||
ifscompose_message_dialog (GTK_MESSAGE_ERROR,
|
||||
GTK_WINDOW (file_select),
|
||||
_("Open failed"), error->message);
|
||||
g_error_free (error);
|
||||
return;
|
||||
}
|
||||
|
||||
if (ifsD->auto_preview)
|
||||
ifs_compose_preview ();
|
||||
if (! ifsvals_parse_string (buffer, &new_ifsvals, &new_elements))
|
||||
{
|
||||
gchar *message = g_strdup_printf (_("File '%s' doesn't seem to be "
|
||||
"an IFS Compose file."),
|
||||
filename);
|
||||
ifscompose_message_dialog (GTK_MESSAGE_ERROR,
|
||||
GTK_WINDOW (file_select),
|
||||
_("Open failed"), message);
|
||||
g_free (message);
|
||||
g_free (buffer);
|
||||
|
||||
gtk_widget_hide (file_select);
|
||||
design_area_redraw ();
|
||||
}
|
||||
else
|
||||
{
|
||||
gchar *message = g_strdup_printf (_("File '%s' doesn't seem to be "
|
||||
"an IFS Compose file."),
|
||||
filename);
|
||||
ifscompose_message_dialog (GTK_MESSAGE_ERROR,
|
||||
GTK_WINDOW (file_select),
|
||||
_("Load failed"), message);
|
||||
g_free (message);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
g_free (buffer);
|
||||
|
||||
undo_begin ();
|
||||
for (i = 0; i < ifsvals.num_elements; i++)
|
||||
undo_update (i);
|
||||
|
||||
ifsfile_replace_ifsvals (&new_ifsvals, new_elements);
|
||||
|
||||
if (ifsD->auto_preview)
|
||||
ifs_compose_preview ();
|
||||
|
||||
design_area_redraw ();
|
||||
}
|
||||
else
|
||||
{
|
||||
ifscompose_message_dialog (GTK_MESSAGE_ERROR,
|
||||
GTK_WINDOW (file_select),
|
||||
_("Load failed"), error->message);
|
||||
g_error_free (error);
|
||||
}
|
||||
|
||||
gtk_widget_destroy (GTK_WIDGET (file_select));
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -2704,7 +2713,7 @@ ifs_compose_save (GtkWidget *parent)
|
|||
{
|
||||
static GtkWidget *file_select = NULL;
|
||||
|
||||
if (!file_select)
|
||||
if (! file_select)
|
||||
{
|
||||
file_select = gtk_file_selection_new (_("Save as IFS file"));
|
||||
|
||||
|
@ -2714,16 +2723,15 @@ ifs_compose_save (GtkWidget *parent)
|
|||
gimp_help_connect (file_select, gimp_standard_help_func,
|
||||
"filters/ifscompose.html", NULL);
|
||||
|
||||
g_signal_connect (GTK_FILE_SELECTION (file_select)->ok_button, "clicked",
|
||||
G_CALLBACK (ifsfile_save),
|
||||
file_select);
|
||||
g_signal_connect_swapped (GTK_FILE_SELECTION (file_select)->cancel_button,
|
||||
"clicked",
|
||||
G_CALLBACK (gtk_widget_hide),
|
||||
file_select);
|
||||
g_signal_connect (file_select, "destroy",
|
||||
G_CALLBACK (gtk_widget_destroyed),
|
||||
&file_select);
|
||||
g_signal_connect (file_select, "response",
|
||||
G_CALLBACK (ifsfile_save_response),
|
||||
NULL);
|
||||
}
|
||||
|
||||
gtk_window_present (GTK_WINDOW (file_select));
|
||||
gtk_window_present (GTK_WINDOW (file_select));
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -2731,9 +2739,9 @@ ifs_compose_load (GtkWidget *parent)
|
|||
{
|
||||
static GtkWidget *file_select = NULL;
|
||||
|
||||
if (!file_select)
|
||||
if (! file_select)
|
||||
{
|
||||
file_select = gtk_file_selection_new (_("Load IFS file"));
|
||||
file_select = gtk_file_selection_new (_("Open IFS file"));
|
||||
|
||||
gtk_window_set_transient_for (GTK_WINDOW (file_select),
|
||||
GTK_WINDOW (parent));
|
||||
|
@ -2741,13 +2749,12 @@ ifs_compose_load (GtkWidget *parent)
|
|||
gimp_help_connect (file_select, gimp_standard_help_func,
|
||||
"filters/ifscompose.html", NULL);
|
||||
|
||||
g_signal_connect (GTK_FILE_SELECTION (file_select)->ok_button, "clicked",
|
||||
G_CALLBACK (ifsfile_load),
|
||||
file_select);
|
||||
g_signal_connect_swapped (GTK_FILE_SELECTION (file_select)->cancel_button,
|
||||
"clicked",
|
||||
G_CALLBACK (gtk_widget_hide),
|
||||
file_select);
|
||||
g_signal_connect (file_select, "destroy",
|
||||
G_CALLBACK (gtk_widget_destroyed),
|
||||
&file_select);
|
||||
g_signal_connect (file_select, "response",
|
||||
G_CALLBACK (ifsfile_load_response),
|
||||
NULL);
|
||||
}
|
||||
|
||||
gtk_window_present (GTK_WINDOW (file_select));
|
||||
|
|
|
@ -32,44 +32,51 @@ static GtkTargetEntry target_table[] = {
|
|||
};
|
||||
|
||||
static void
|
||||
select_cb(GtkWidget *widget, gpointer data)
|
||||
select_cb (GtkWidget *dialog,
|
||||
gint response_id,
|
||||
BrowseWidget_t *browse)
|
||||
{
|
||||
BrowseWidget_t *browse = (BrowseWidget_t*) data;
|
||||
gchar *p;
|
||||
const gchar *file;
|
||||
if (response_id == GTK_RESPONSE_OK)
|
||||
{
|
||||
gchar *p;
|
||||
const gchar *file;
|
||||
|
||||
file = gtk_file_selection_get_filename(
|
||||
GTK_FILE_SELECTION(browse->file_selection));
|
||||
file = gtk_file_selection_get_filename (GTK_FILE_SELECTION (dialog));
|
||||
|
||||
p = (browse->filter) ? browse->filter(file, browse->filter_data) : (gchar *) file;
|
||||
p = (browse->filter) ? browse->filter (file, browse->filter_data) : (gchar *) file;
|
||||
|
||||
gtk_entry_set_text(GTK_ENTRY(browse->file), p);
|
||||
gtk_entry_set_text (GTK_ENTRY (browse->file), p);
|
||||
|
||||
if (browse->filter)
|
||||
g_free (p);
|
||||
if (browse->filter)
|
||||
g_free (p);
|
||||
}
|
||||
|
||||
gtk_widget_hide(browse->file_selection);
|
||||
gtk_widget_grab_focus(browse->file);
|
||||
gtk_widget_hide (dialog);
|
||||
gtk_widget_grab_focus (browse->file);
|
||||
}
|
||||
|
||||
static void
|
||||
browse_cb(GtkWidget *widget, gpointer data)
|
||||
browse_cb (GtkWidget *widget,
|
||||
BrowseWidget_t *browse)
|
||||
{
|
||||
BrowseWidget_t *browse = (BrowseWidget_t*) data;
|
||||
if (! browse->file_selection)
|
||||
{
|
||||
GtkWidget *dialog;
|
||||
|
||||
if (!browse->file_selection) {
|
||||
GtkWidget *dialog;
|
||||
dialog = browse->file_selection = gtk_file_selection_new(browse->name);
|
||||
dialog = browse->file_selection = gtk_file_selection_new (browse->name);
|
||||
|
||||
gtk_window_set_transient_for (GTK_WINDOW (dialog),
|
||||
GTK_WINDOW (gtk_widget_get_toplevel (widget)));
|
||||
gtk_window_set_transient_for (GTK_WINDOW (dialog),
|
||||
GTK_WINDOW (gtk_widget_get_toplevel (widget)));
|
||||
|
||||
g_signal_connect_swapped(GTK_FILE_SELECTION(dialog)->cancel_button,
|
||||
"clicked", G_CALLBACK(gtk_widget_hide), dialog);
|
||||
g_signal_connect(GTK_FILE_SELECTION(dialog)->ok_button,
|
||||
"clicked", G_CALLBACK(select_cb), data);
|
||||
}
|
||||
gtk_widget_show(browse->file_selection);
|
||||
g_signal_connect (dialog, "delete_event",
|
||||
G_CALLBACK (gtk_true),
|
||||
NULL);
|
||||
g_signal_connect (dialog, "response",
|
||||
G_CALLBACK (select_cb),
|
||||
browse);
|
||||
}
|
||||
|
||||
gtk_window_present (GTK_WINDOW (browse->file_selection));
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
@ -35,33 +35,46 @@
|
|||
|
||||
|
||||
static void
|
||||
open_cb(GtkWidget *widget, gpointer data)
|
||||
open_cb (GtkFileSelection *fs,
|
||||
gint response_id,
|
||||
gpointer data)
|
||||
{
|
||||
const gchar *filename;
|
||||
if (response_id == GTK_RESPONSE_OK)
|
||||
{
|
||||
const gchar *filename;
|
||||
|
||||
filename = gtk_file_selection_get_filename(GTK_FILE_SELECTION(data));
|
||||
if (g_file_test(filename, G_FILE_TEST_IS_REGULAR)) {
|
||||
gtk_widget_hide((GtkWidget*) data);
|
||||
load(filename);
|
||||
} else {
|
||||
do_file_error_dialog(_("Error opening file"), filename);
|
||||
}
|
||||
filename = gtk_file_selection_get_filename (fs);
|
||||
|
||||
if (! g_file_test (filename, G_FILE_TEST_IS_REGULAR))
|
||||
{
|
||||
do_file_error_dialog (_("Error opening file"), filename);
|
||||
return;
|
||||
}
|
||||
|
||||
load (filename);
|
||||
}
|
||||
|
||||
gtk_widget_hide (GTK_WIDGET (fs));
|
||||
}
|
||||
|
||||
void
|
||||
do_file_open_dialog(void)
|
||||
do_file_open_dialog (void)
|
||||
{
|
||||
static GtkWidget *dialog;
|
||||
if (!dialog) {
|
||||
dialog = gtk_file_selection_new(_("Load Imagemap"));
|
||||
g_signal_connect_swapped(GTK_FILE_SELECTION(dialog)->cancel_button,
|
||||
"clicked", G_CALLBACK(gtk_widget_hide), dialog);
|
||||
g_signal_connect(GTK_FILE_SELECTION(dialog)->ok_button,
|
||||
"clicked", G_CALLBACK(open_cb), dialog);
|
||||
g_signal_connect(dialog, "delete_event",
|
||||
G_CALLBACK(gtk_widget_hide), NULL);
|
||||
}
|
||||
gtk_widget_show(dialog);
|
||||
|
||||
if (! dialog)
|
||||
{
|
||||
dialog = gtk_file_selection_new (_("Load Imagemap"));
|
||||
|
||||
g_signal_connect (dialog, "delete_event",
|
||||
G_CALLBACK (gtk_true),
|
||||
NULL);
|
||||
g_signal_connect (dialog, "response",
|
||||
G_CALLBACK (open_cb),
|
||||
NULL);
|
||||
}
|
||||
|
||||
gtk_window_present (GTK_WINDOW (dialog));
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -89,33 +102,46 @@ do_file_exists_dialog(gpointer data)
|
|||
}
|
||||
|
||||
static void
|
||||
save_cb(GtkWidget *widget, gpointer data)
|
||||
save_cb (GtkFileSelection *fs,
|
||||
gint response_id,
|
||||
gpointer data)
|
||||
{
|
||||
const gchar *filename;
|
||||
if (response_id == GTK_RESPONSE_OK)
|
||||
{
|
||||
const gchar *filename;
|
||||
|
||||
filename = gtk_file_selection_get_filename(GTK_FILE_SELECTION(data));
|
||||
if (g_file_test(filename, G_FILE_TEST_IS_REGULAR)) {
|
||||
do_file_exists_dialog(data);
|
||||
} else {
|
||||
gtk_widget_hide((GtkWidget*) data);
|
||||
save_as(filename);
|
||||
}
|
||||
filename = gtk_file_selection_get_filename (fs);
|
||||
|
||||
if (g_file_test (filename, G_FILE_TEST_IS_REGULAR))
|
||||
{
|
||||
do_file_exists_dialog (fs);
|
||||
return;
|
||||
}
|
||||
|
||||
save_as (filename);
|
||||
}
|
||||
|
||||
gtk_widget_hide (GTK_WIDGET (fs));
|
||||
}
|
||||
|
||||
void
|
||||
do_file_save_as_dialog(void)
|
||||
do_file_save_as_dialog (void)
|
||||
{
|
||||
static GtkWidget *dialog;
|
||||
if (!dialog) {
|
||||
dialog = gtk_file_selection_new(_("Save Imagemap"));
|
||||
g_signal_connect_swapped(GTK_FILE_SELECTION(dialog)->cancel_button,
|
||||
"clicked", G_CALLBACK(gtk_widget_hide), dialog);
|
||||
g_signal_connect(GTK_FILE_SELECTION(dialog)->ok_button,
|
||||
"clicked", G_CALLBACK(save_cb), dialog);
|
||||
g_signal_connect(dialog, "delete_event",
|
||||
G_CALLBACK(gtk_widget_hide), NULL);
|
||||
}
|
||||
gtk_widget_show(dialog);
|
||||
|
||||
if (! dialog)
|
||||
{
|
||||
dialog = gtk_file_selection_new (_("Save Imagemap"));
|
||||
|
||||
g_signal_connect (dialog, "delete_event",
|
||||
G_CALLBACK (gtk_true),
|
||||
NULL);
|
||||
g_signal_connect (dialog, "response",
|
||||
G_CALLBACK (save_cb),
|
||||
NULL);
|
||||
}
|
||||
|
||||
gtk_window_present (GTK_WINDOW (dialog));
|
||||
}
|
||||
|
||||
void
|
||||
|
|
Loading…
Reference in New Issue