changed "guint history" to "gint history".

2004-09-01  Michael Natterer  <mitch@gimp.org>

	* plug-ins/script-fu/script-fu-types.h (struct SFOptions): changed
	"guint history" to "gint history".

	* plug-ins/script-fu/script-fu-interface.c: added callbacks for
	string entries and combo boxes and connect *all* widgets to callbacks.

	(script_fu_ok): don't touch the widgets at all but get the values
	directly now that the callbacks correctly write them to their
	structs.

	(script_fu_reset): don't copy the default values manually but
	simply set the default values on the widgets; their callbacks will
	do the rest.

	* plug-ins/script-fu/script-fu-scripts.c (script_fu_add_script):
	added some line breaks and spaces to make it more readable.
This commit is contained in:
Michael Natterer 2004-09-01 13:51:51 +00:00 committed by Michael Natterer
parent 527f33bb65
commit aeb2888657
4 changed files with 123 additions and 86 deletions

View File

@ -1,3 +1,22 @@
2004-09-01 Michael Natterer <mitch@gimp.org>
* plug-ins/script-fu/script-fu-types.h (struct SFOptions): changed
"guint history" to "gint history".
* plug-ins/script-fu/script-fu-interface.c: added callbacks for
string entries and combo boxes and connect *all* widgets to callbacks.
(script_fu_ok): don't touch the widgets at all but get the values
directly now that the callbacks correctly write them to their
structs.
(script_fu_reset): don't copy the default values manually but
simply set the default values on the widgets; their callbacks will
do the rest.
* plug-ins/script-fu/script-fu-scripts.c (script_fu_add_script):
added some line breaks and spaces to make it more readable.
2004-09-01 Michael Natterer <mitch@gimp.org>
* libgimp/Makefile.am

View File

@ -78,8 +78,12 @@ static void script_fu_ok (SFScript *script);
static void script_fu_reset (SFScript *script);
static void script_fu_about (SFScript *script);
static void script_fu_string_callback (GtkWidget *widget,
gchar **value);
static void script_fu_file_entry_callback (GtkWidget *widget,
SFFilename *file);
static void script_fu_combo_callback (GtkWidget *widget,
SFOption *option);
static void script_fu_pattern_callback (const gchar *name,
gint width,
gint height,
@ -301,6 +305,7 @@ script_fu_interface (SFScript *script)
}
gimp_int_combo_box_set_active (GIMP_INT_COMBO_BOX (widget), *ID_ptr);
g_signal_connect (widget, "changed",
G_CALLBACK (gimp_int_combo_box_get_active),
ID_ptr);
@ -314,6 +319,7 @@ script_fu_interface (SFScript *script)
GIMP_COLOR_AREA_FLAT);
gimp_color_button_set_update (GIMP_COLOR_BUTTON (widget), TRUE);
g_signal_connect (widget, "color_changed",
G_CALLBACK (gimp_color_button_get_color),
&script->arg_values[i].sfa_color);
@ -335,8 +341,13 @@ script_fu_interface (SFScript *script)
case SF_STRING:
widget = gtk_entry_new ();
gtk_widget_set_size_request (widget, TEXT_WIDTH, -1);
gtk_entry_set_text (GTK_ENTRY (widget),
script->arg_values[i].sfa_value);
g_signal_connect (widget, "changed",
G_CALLBACK (script_fu_string_callback),
&script->arg_values[i].sfa_value);
break;
case SF_ADJUSTMENT:
@ -373,6 +384,11 @@ script_fu_interface (SFScript *script)
default:
break;
}
g_signal_connect (script->arg_values[i].sfa_adjustment.adj,
"value_changed",
G_CALLBACK (gimp_double_adjustment_update),
&script->arg_values[i].sfa_adjustment.value);
break;
case SF_FILENAME:
@ -445,6 +461,10 @@ script_fu_interface (SFScript *script)
gtk_combo_box_set_active (GTK_COMBO_BOX (widget),
script->arg_values[i].sfa_option.history);
g_signal_connect (widget, "changed",
G_CALLBACK (script_fu_combo_callback),
&script->arg_values[i].sfa_option);
break;
default:
@ -553,6 +573,16 @@ script_fu_interface_quit (SFScript *script)
gtk_main_quit ();
}
static void
script_fu_string_callback (GtkWidget *widget,
gchar **value)
{
if (*value)
g_free (*value);
*value = g_strdup (gtk_entry_get_text (GTK_ENTRY (widget)));
}
static void
script_fu_file_entry_callback (GtkWidget *widget,
SFFilename *file)
@ -564,6 +594,13 @@ script_fu_file_entry_callback (GtkWidget *widget,
gimp_file_entry_get_filename (GIMP_FILE_ENTRY(file->file_entry));
}
static void
script_fu_combo_callback (GtkWidget *widget,
SFOption *option)
{
option->history = gtk_combo_box_get_active (GTK_COMBO_BOX (widget));
}
static void
script_fu_pattern_callback (const gchar *name,
gint width,
@ -680,8 +717,6 @@ script_fu_ok (SFScript *script)
for (i = 0; i < script->num_args; i++)
{
GtkWidget *widget = sf_interface->args_widgets[i];
switch (script->arg_types[i])
{
case SF_IMAGE:
@ -700,12 +735,11 @@ script_fu_ok (SFScript *script)
break;
case SF_VALUE:
length += strlen (gtk_entry_get_text (GTK_ENTRY (widget))) + 1;
length += strlen (script->arg_values[i].sfa_value) + 1;
break;
case SF_STRING:
escaped = g_strescape (gtk_entry_get_text (GTK_ENTRY (widget)),
NULL);
escaped = g_strescape (script->arg_values[i].sfa_value, NULL);
length += strlen (escaped) + 3;
g_free (escaped);
break;
@ -757,10 +791,9 @@ script_fu_ok (SFScript *script)
sprintf (command, "(%s ", script->script_name);
c += strlen (script->script_name) + 2;
for (i = 0; i < script->num_args; i++)
{
GtkWidget *widget = sf_interface->args_widgets[i];
switch (script->arg_types[i])
{
case SF_IMAGE:
@ -786,37 +819,17 @@ script_fu_ok (SFScript *script)
break;
case SF_VALUE:
text = (gchar *) gtk_entry_get_text (GTK_ENTRY (widget));
g_free (script->arg_values[i].sfa_value);
script->arg_values[i].sfa_value = g_strdup (text);
text = script->arg_values[i].sfa_value;
break;
case SF_STRING:
text = (gchar *) gtk_entry_get_text (GTK_ENTRY (widget));
g_free (script->arg_values[i].sfa_value);
script->arg_values[i].sfa_value = g_strdup (text);
escaped = g_strescape (text, NULL);
escaped = g_strescape (script->arg_values[i].sfa_value, NULL);
g_snprintf (buffer, sizeof (buffer), "\"%s\"", escaped);
g_free (escaped);
text = buffer;
break;
case SF_ADJUSTMENT:
switch (script->arg_defaults[i].sfa_adjustment.type)
{
case SF_SLIDER:
script->arg_values[i].sfa_adjustment.value =
script->arg_values[i].sfa_adjustment.adj->value;
break;
case SF_SPINNER:
script->arg_values[i].sfa_adjustment.value =
gtk_spin_button_get_value (GTK_SPIN_BUTTON (widget));
break;
default:
break;
}
text = g_ascii_dtostr (buffer, sizeof (buffer),
script->arg_values[i].sfa_adjustment.value);
break;
@ -871,9 +884,6 @@ script_fu_ok (SFScript *script)
break;
case SF_OPTION:
script->arg_values[i].sfa_option.history =
gtk_combo_box_get_active (GTK_COMBO_BOX (widget));
g_snprintf (buffer, sizeof (buffer), "%d",
script->arg_values[i].sfa_option.history);
text = buffer;
@ -915,41 +925,31 @@ script_fu_reset (SFScript *script)
break;
case SF_COLOR:
script->arg_values[i].sfa_color = script->arg_defaults[i].sfa_color;
gimp_color_button_set_color (GIMP_COLOR_BUTTON (widget),
&script->arg_values[i].sfa_color);
&script->arg_defaults[i].sfa_color);
break;
case SF_TOGGLE:
script->arg_values[i].sfa_toggle = script->arg_defaults[i].sfa_toggle;
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget),
script->arg_values[i].sfa_toggle);
script->arg_defaults[i].sfa_toggle);
break;
case SF_VALUE:
case SF_STRING:
g_free (script->arg_values[i].sfa_value);
script->arg_values[i].sfa_value =
g_strdup (script->arg_defaults[i].sfa_value);
gtk_entry_set_text (GTK_ENTRY (widget),
script->arg_values[i].sfa_value);
script->arg_defaults[i].sfa_value);
break;
case SF_ADJUSTMENT:
script->arg_values[i].sfa_adjustment.value =
script->arg_defaults[i].sfa_adjustment.value;
gtk_adjustment_set_value (script->arg_values[i].sfa_adjustment.adj,
script->arg_values[i].sfa_adjustment.value);
script->arg_defaults[i].sfa_adjustment.value);
break;
case SF_FILENAME:
case SF_DIRNAME:
g_free (script->arg_values[i].sfa_file.filename);
script->arg_values[i].sfa_file.filename =
g_strdup (script->arg_defaults[i].sfa_file.filename);
gimp_file_entry_set_filename
(GIMP_FILE_ENTRY (script->arg_values[i].sfa_file.file_entry),
script->arg_values[i].sfa_file.filename);
script->arg_defaults[i].sfa_file.filename);
break;
case SF_FONT:
@ -981,10 +981,8 @@ script_fu_reset (SFScript *script)
break;
case SF_OPTION:
script->arg_values[i].sfa_option.history =
script->arg_defaults[i].sfa_option.history;
gtk_combo_box_set_active (GTK_COMBO_BOX (widget),
script->arg_values[i].sfa_option.history);
script->arg_defaults[i].sfa_option.history);
break;
default:

View File

@ -247,8 +247,11 @@ script_fu_add_script (LISP a)
case SF_CHANNEL:
if (!TYPEP (car (a), tc_flonum))
return my_err ("script-fu-register: drawable defaults must be integer values", NIL);
script->arg_defaults[i].sfa_image = get_c_long (car (a));
script->arg_values[i].sfa_image = script->arg_defaults[i].sfa_image;
script->arg_defaults[i].sfa_image =
get_c_long (car (a));
script->arg_values[i].sfa_image =
script->arg_defaults[i].sfa_image;
switch (script->arg_types[i])
{
@ -282,6 +285,7 @@ script_fu_add_script (LISP a)
case SF_COLOR:
if (!TYPEP (car (a), tc_cons))
return my_err ("script-fu-register: color defaults must be a list of 3 integers", NIL);
color_list = car (a);
r = CLAMP (get_c_long (car (color_list)), 0, 255);
color_list = cdr (color_list);
@ -303,6 +307,7 @@ script_fu_add_script (LISP a)
case SF_TOGGLE:
if (!TYPEP (car (a), tc_flonum))
return my_err ("script-fu-register: toggle default must be an integer value", NIL);
script->arg_defaults[i].sfa_toggle =
(get_c_long (car (a))) ? TRUE : FALSE;
script->arg_values[i].sfa_toggle =
@ -316,6 +321,7 @@ script_fu_add_script (LISP a)
case SF_VALUE:
if (!TYPEP (car (a), tc_string))
return my_err ("script-fu-register: value defaults must be string values", NIL);
script->arg_defaults[i].sfa_value =
g_strdup (get_c_string (car (a)));
script->arg_values[i].sfa_value =
@ -329,6 +335,7 @@ script_fu_add_script (LISP a)
case SF_STRING:
if (!TYPEP (car (a), tc_string))
return my_err ("script-fu-register: string defaults must be string values", NIL);
script->arg_defaults[i].sfa_value =
g_strdup (get_c_string (car (a)));
script->arg_values[i].sfa_value =
@ -342,6 +349,7 @@ script_fu_add_script (LISP a)
case SF_ADJUSTMENT:
if (!TYPEP (car (a), tc_cons))
return my_err ("script-fu-register: adjustment defaults must be a list", NIL);
adj_list = car (a);
script->arg_defaults[i].sfa_adjustment.value =
get_c_double (car (adj_list));
@ -364,6 +372,7 @@ script_fu_add_script (LISP a)
script->arg_defaults[i].sfa_adjustment.type =
get_c_long (car (adj_list));
script->arg_values[i].sfa_adjustment.adj = NULL;
script->arg_values[i].sfa_adjustment.value =
script->arg_defaults[i].sfa_adjustment.value;
@ -376,9 +385,11 @@ script_fu_add_script (LISP a)
if (!TYPEP (car (a), tc_string))
return my_err ("script-fu-register: filename defaults must be string values", NIL);
/* fallthrough */
case SF_DIRNAME:
if (!TYPEP (car (a), tc_string))
return my_err ("script-fu-register: dirname defaults must be string values", NIL);
script->arg_defaults[i].sfa_file.filename =
g_strdup (get_c_string (car (a)));
@ -408,6 +419,7 @@ script_fu_add_script (LISP a)
case SF_FONT:
if (!TYPEP (car (a), tc_string))
return my_err ("script-fu-register: font defaults must be string values", NIL);
script->arg_defaults[i].sfa_font =
g_strdup (get_c_string (car (a)));
script->arg_values[i].sfa_font =
@ -421,6 +433,7 @@ script_fu_add_script (LISP a)
case SF_PALETTE:
if (!TYPEP (car (a), tc_string))
return my_err ("script-fu-register: palette defaults must be string values", NIL);
script->arg_defaults[i].sfa_palette =
g_strdup (get_c_string (car (a)));
script->arg_values[i].sfa_palette =
@ -434,6 +447,7 @@ script_fu_add_script (LISP a)
case SF_PATTERN:
if (!TYPEP (car (a), tc_string))
return my_err ("script-fu-register: pattern defaults must be string values", NIL);
script->arg_defaults[i].sfa_pattern =
g_strdup (get_c_string (car (a)));
script->arg_values[i].sfa_pattern =
@ -447,6 +461,7 @@ script_fu_add_script (LISP a)
case SF_BRUSH:
if (!TYPEP (car (a), tc_cons))
return my_err ("script-fu-register: brush defaults must be a list", NIL);
brush_list = car (a);
script->arg_defaults[i].sfa_brush.name =
g_strdup (get_c_string (car (brush_list)));
@ -479,6 +494,7 @@ script_fu_add_script (LISP a)
case SF_GRADIENT:
if (!TYPEP (car (a), tc_string))
return my_err ("script-fu-register: gradient defaults must be string values", NIL);
script->arg_defaults[i].sfa_gradient =
g_strdup (get_c_string (car (a)));
script->arg_values[i].sfa_gradient =
@ -492,6 +508,7 @@ script_fu_add_script (LISP a)
case SF_OPTION:
if (!TYPEP (car (a), tc_cons))
return my_err ("script-fu-register: option defaults must be a list", NIL);
for (option_list = car (a);
option_list;
option_list = cdr (option_list))
@ -515,7 +532,10 @@ script_fu_add_script (LISP a)
a = cdr (a);
}
else
return my_err ("script-fu-register: missing default argument", NIL);
{
return my_err ("script-fu-register: missing default argument",
NIL);
}
}
}
@ -542,10 +562,10 @@ script_fu_load_script (const GimpDatafileData *file_data,
if (gimp_datafiles_check_extension (file_data->filename, ".scm"))
{
gchar *command;
gchar *qf = g_strescape (file_data->filename, NULL);
gchar *escaped = g_strescape (file_data->filename, NULL);
command = g_strdup_printf ("(load \"%s\")", qf);
g_free (qf);
command = g_strdup_printf ("(load \"%s\")", escaped);
g_free (escaped);
if (repl_c_string (command, 0, 0, 1) != 0)
script_fu_error_msg (command);
@ -840,7 +860,7 @@ script_fu_lookup_script (gpointer *foo,
*name = script;
return TRUE;
}
else
return FALSE;
}
@ -855,7 +875,7 @@ script_fu_find_script (const gchar *pdb_name)
if (script == pdb_name)
return NULL;
else
return (SFScript *) script;
}

View File

@ -52,7 +52,7 @@ typedef struct
typedef struct
{
GSList *list;
guint history;
gint history;
} SFOption;
typedef union