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:
Michael Natterer 2003-11-19 14:51:52 +00:00 committed by Michael Natterer
parent fca3f8b3db
commit 86f45eabc2
13 changed files with 688 additions and 691 deletions

View File

@ -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

View File

@ -71,10 +71,12 @@ 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 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,
@ -1821,12 +1823,15 @@ save_callback (void)
}
static void
file_selection_ok (GtkWidget *w,
GtkFileSelection *fs)
file_selection_response (GtkFileSelection *fs,
gint response_id,
gpointer data)
{
if (response_id == GTK_RESPONSE_OK)
{
const gchar *filenamebuf;
filenamebuf = gtk_file_selection_get_filename (GTK_FILE_SELECTION(fs));
filenamebuf = gtk_file_selection_get_filename (fs);
/* Get the name */
if (!filenamebuf || strlen (filenamebuf) == 0)
@ -1844,26 +1849,32 @@ file_selection_ok (GtkWidget *w,
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 (response_id == GTK_RESPONSE_OK)
{
filename = g_strdup (gtk_file_selection_get_filename (fs));
if (g_file_test (filename, G_FILE_TEST_IS_REGULAR))
{
explorer_load ();
}
gtk_widget_destroy (GTK_WIDGET (fs));
gtk_widget_show (maindlg);
dialog_change_scale ();
set_cmap_preview ();
dialog_update_preview ();
}
gtk_widget_destroy (GTK_WIDGET (fs));
}
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),
window);
g_signal_connect_swapped (GTK_FILE_SELECTION (window)->cancel_button,
"clicked",
G_CALLBACK (gtk_widget_destroy),
g_signal_connect (window, "response",
G_CALLBACK (load_file_selection_response),
window);
}
gtk_widget_show (window);
gtk_window_present (GTK_WINDOW (window));
}
static void
@ -1912,14 +1917,8 @@ 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),
window);
g_signal_connect_swapped (GTK_FILE_SELECTION(window)->cancel_button,
"clicked",
G_CALLBACK (gtk_widget_destroy),
g_signal_connect (window, "response",
G_CALLBACK (file_selection_response),
window);
}
@ -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*

View File

@ -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);
}

View File

@ -370,7 +370,8 @@ 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,
static void CML_save_to_file_response (GtkFileSelection *fs,
gint response_id,
gpointer data);
static gint force_overwrite (const gchar *filename,
GtkWidget *parent);
@ -381,7 +382,8 @@ 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,
static void CML_load_from_file_response (GtkFileSelection *fs,
gint response_id,
gpointer data);
static gint parse_line_to_gint (FILE *file,
gboolean *flag);
@ -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,7 +2076,8 @@ CML_save_to_file_callback (GtkWidget *widget,
}
static void
CML_execute_save_to_file (GtkWidget *widget,
CML_save_to_file_response (GtkFileSelection *fs,
gint response_id,
gpointer data)
{
const gchar *filename;
@ -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,26 +2109,18 @@ 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_get_toplevel (widget)))
{
gtk_widget_set_sensitive (GTK_WIDGET (data), TRUE);
if (! force_overwrite (filename, GTK_WIDGET (fs)))
return;
}
else
{
file = fopen (filename, "w");
}
}
}
if ((err != 0) && (file == NULL))
{
@ -2133,11 +2128,11 @@ 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++)
{
gchar buf[G_ASCII_DTOSTR_BUF_SIZE];
@ -2174,6 +2169,7 @@ CML_execute_save_to_file (GtkWidget *widget,
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]);
@ -2186,9 +2182,8 @@ CML_execute_save_to_file (GtkWidget *widget,
strncpy (VALS.last_file_name, filename,
sizeof (VALS.last_file_name) - 1);
}
gtk_widget_hide (GTK_WIDGET (data));
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,25 +2258,24 @@ 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,
CML_load_from_file_response (GtkFileSelection *fs,
gint response_id,
gpointer data)
{
if (response_id == GTK_RESPONSE_OK)
{
const gchar *filename;
gint channel_id;
gint flag = TRUE;
filename = gtk_file_selection_get_filename (GTK_FILE_SELECTION (data));
filename = gtk_file_selection_get_filename (fs);
gtk_widget_set_sensitive (GTK_WIDGET (data), FALSE);
gtk_widget_set_sensitive (GTK_WIDGET (fs), FALSE);
flag = CML_load_parameter_file (filename, TRUE);
gtk_widget_destroy (GTK_WIDGET(data));
if (flag)
{
@ -2313,12 +2297,13 @@ CML_execute_load_from_file (GtkWidget *widget,
if (widgets[index].widget && widgets[index].updater)
(widgets[index].updater) (widgets + index);
gdk_flush ();
CML_preview_defer = FALSE;
preview_update ();
}
}
gtk_widget_destroy (GTK_WIDGET (fs));
}
static gint

View File

@ -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,108 +1966,90 @@ 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;
}
static void
p_points_load_from_file (GtkWidget *widget,
gpointer data)
{
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;
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
bender_load_callback (GtkWidget *w,
gpointer data)
BenderDialog *cd)
{
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)
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

View File

@ -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)));
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)));
if (response_id == GTK_RESPONSE_OK)
{
strcpy (qbist_info.path, gtk_file_selection_get_filename (fs));
load_data (qbist_info.path);
gtk_widget_destroy (file_select);
dialog_new_variations (widget, NULL);
dialog_update_previews (widget, NULL);
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);
}

View File

@ -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_widget_hide (GTK_WIDGET (fs));
gtk_list_store_clear (GTK_LIST_STORE (gtk_tree_view_get_model (texturelist)));
loadit (fn);
rebuildlist ();
restartrender ();
}
gtk_widget_hide (GTK_WIDGET (fs));
}
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));
gtk_widget_hide (GTK_WIDGET (fs));
if (response_id == GTK_RESPONSE_OK)
{
const char *fn = gtk_file_selection_get_filename (fs);
saveit (fn);
}
gtk_widget_hide (GTK_WIDGET (fs));
}
static void
@ -2144,7 +2155,7 @@ fileselect (gint action,
static GtkWidget *windows[2] = { NULL, NULL };
gchar *titles[] = { N_("Open File"), N_("Save File") };
void *handlers[] = { loadpreset_ok, savepreset_ok };
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

View File

@ -371,29 +371,15 @@ doit (GimpDrawable *drawable)
gimp_drawable_update (drawable->drawable_id, 0, 0, width, height);
}
static gboolean
file_cancel_callback (GtkWidget *widget,
gpointer data)
{
gtk_widget_hide (widget);
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,
file_response_callback (GtkFileSelection *fs,
gint response_id,
gpointer data)
{
GtkFileSelection *fs;
if (response_id == GTK_RESPONSE_OK)
{
const gchar *filename;
fs = GTK_FILE_SELECTION (data);
filename = gtk_file_selection_get_filename (fs);
if (load_save)
@ -450,8 +436,15 @@ file_ok_callback (GtkWidget *widget,
print_control_point (f, &config.cp, 0);
fclose (f);
}
}
file_cancel_callback (GTK_WIDGET (data), NULL);
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);
}
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);

View File

@ -1073,15 +1073,16 @@ 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)
{
if (response_id == GTK_RESPONSE_OK)
{
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));
filenamebuf = gtk_file_selection_get_filename (fs);
/* Get the name */
if (strlen (filenamebuf) == 0)
@ -1102,9 +1103,9 @@ file_selection_ok (GtkWidget *w,
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,15 +3360,17 @@ list_button_update (GFigObj *obj)
static void
gfig_load_file_selection_ok (GtkWidget *widget,
GtkFileSelection *fs,
gfig_load_file_selection_response (GtkFileSelection *fs,
gint response_id,
gpointer data)
{
if (response_id == GTK_RESPONSE_OK)
{
const gchar *filename;
GFigObj *gfig;
GFigObj *current_saved;
filename = gtk_file_selection_get_filename (GTK_FILE_SELECTION (fs));
filename = gtk_file_selection_get_filename (fs);
if (g_file_test (filename, G_FILE_TEST_IS_REGULAR))
{
@ -3395,6 +3392,7 @@ gfig_load_file_selection_ok (GtkWidget *widget,
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);
}

View File

@ -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)
{
if (response_id == GTK_RESPONSE_OK)
{
const gchar *fn;
fn = gtk_file_selection_get_filename (GTK_FILE_SELECTION(fs));
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];
GList *thispath = parsepath ();
gchar path[200];
if(!brushppm.col) {
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)

View File

@ -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)
{
if (response_id == GTK_RESPONSE_OK)
{
const gchar *filename;
gchar *str;
FILE *fh;
filename = gtk_file_selection_get_filename (GTK_FILE_SELECTION (file_select));
filename = gtk_file_selection_get_filename (file_select);
str = ifsvals_stringify (&ifsvals, elements);
fh = fopen (filename, "w");
if (fh)
if (! fh)
{
fputs (str, fh);
fclose (fh);
gtk_widget_hide (file_select);
}
else
{
gchar *message = g_strdup_printf (_("Could not open '%s' for writing: %s"),
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_destroy (GTK_WIDGET (file_select));
}
/* replace ifsvals and elements with specified new values
@ -2648,23 +2653,46 @@ 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)
{
if (response_id == GTK_RESPONSE_OK)
{
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 (ifsvals_parse_string (buffer, &new_ifsvals, &new_elements))
{
guint i;
filename = gtk_file_selection_get_filename (file_select);
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 (! 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);
return;
}
g_free (buffer);
undo_begin ();
for (i = 0; i < ifsvals.num_elements; i++)
undo_update (i);
@ -2674,29 +2702,10 @@ ifsfile_load (GtkWidget *widget,
if (ifsD->auto_preview)
ifs_compose_preview ();
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);
}
g_free (buffer);
}
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,13 +2723,12 @@ 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));
@ -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));

View File

@ -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;
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);
}
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) {
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)));
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);
g_signal_connect (dialog, "delete_event",
G_CALLBACK (gtk_true),
NULL);
g_signal_connect (dialog, "response",
G_CALLBACK (select_cb),
browse);
}
gtk_widget_show(browse->file_selection);
gtk_window_present (GTK_WINDOW (browse->file_selection));
}
static void

View File

@ -35,33 +35,46 @@
static void
open_cb(GtkWidget *widget, gpointer data)
open_cb (GtkFileSelection *fs,
gint response_id,
gpointer data)
{
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);
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_widget_show(dialog);
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)
{
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);
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_widget_show(dialog);
gtk_window_present (GTK_WINDOW (dialog));
}
void