Added a toggle button to enable/disable preview updating. Should fix

*  plug-ins/common/unsharp.c: Added a toggle button to enable/disable
	preview updating. Should fix #144972.
This commit is contained in:
David Odin
2004-07-28 13:58:08 +00:00
parent e491608fb0
commit d0b0388c38
2 changed files with 65 additions and 32 deletions

View File

@ -1,3 +1,8 @@
2004-07-28 DindinX <david.odin@cpe.fr>
* plug-ins/common/unsharp.c: Added a toggle button to enable/disable
preview updating. Should fix #144972.
2004-07-28 DindinX <david.odin@cpe.fr> 2004-07-28 DindinX <david.odin@cpe.fr>
* plug-ins/common/shift.c * plug-ins/common/shift.c

View File

@ -74,35 +74,36 @@ static void run (const gchar *name,
gint *nreturn_vals, gint *nreturn_vals,
GimpParam **return_vals); GimpParam **return_vals);
static inline void blur_line (gdouble *ctable, static inline void blur_line (gdouble *ctable,
gdouble *cmatrix, gdouble *cmatrix,
gint cmatrix_length, gint cmatrix_length,
guchar *cur_col, guchar *cur_col,
guchar *dest_col, guchar *dest_col,
gint y, gint y,
glong bytes); glong bytes);
static gint gen_convolve_matrix (gdouble std_dev, static gint gen_convolve_matrix (gdouble std_dev,
gdouble **cmatrix); gdouble **cmatrix);
static gdouble * gen_lookup_table (gdouble *cmatrix, static gdouble * gen_lookup_table (gdouble *cmatrix,
gint cmatrix_length); gint cmatrix_length);
static void unsharp_region (GimpPixelRgn srcPTR, static void unsharp_region (GimpPixelRgn srcPTR,
GimpPixelRgn dstPTR, GimpPixelRgn dstPTR,
gint width, gint width,
gint height, gint height,
gint bytes, gint bytes,
gdouble radius, gdouble radius,
gdouble amount, gdouble amount,
gint x1, gint x1,
gint x2, gint x2,
gint y1, gint y1,
gint y2); gint y2);
static void unsharp_mask (GimpDrawable *drawable, static void unsharp_mask (GimpDrawable *drawable,
gdouble radius, gdouble radius,
gdouble amount); gdouble amount);
static gboolean unsharp_mask_dialog (void); static gboolean unsharp_mask_dialog (void);
static void preview_update (void); static void preview_update (void);
static void preview_toggle_callback (GtkWidget *toggle);
/* create a few globals, set default values */ /* create a few globals, set default values */
@ -123,10 +124,11 @@ GimpPlugInInfo PLUG_IN_INFO =
}; };
static GimpRunMode run_mode; static GimpRunMode run_mode;
static GtkWidget *preview = NULL; /* Preview widget */ static GtkWidget *preview = NULL; /* Preview widget */
static GimpDrawable *drawable = NULL; /* Current image */ static gboolean show_preview = TRUE; /* Should we update the preview? */
static gint delta_x = 0; /* preview x offset */ static GimpDrawable *drawable = NULL; /* Current image */
static gint delta_y = 0; /* preview y offset */ static gint delta_x = 0; /* preview x offset */
static gint delta_y = 0; /* preview y offset */
MAIN () MAIN ()
@ -654,6 +656,8 @@ unsharp_preview_new (void)
GtkWidget *frame; GtkWidget *frame;
GtkObject *adj; GtkObject *adj;
GtkWidget *scrollbar; GtkWidget *scrollbar;
GtkWidget *preview_toggle;
gint sel_width; gint sel_width;
gint sel_height; gint sel_height;
gint x1, y1, x2, y2; gint x1, y1, x2, y2;
@ -666,7 +670,7 @@ unsharp_preview_new (void)
preview_width = MIN (sel_width, PREVIEW_SIZE); preview_width = MIN (sel_width, PREVIEW_SIZE);
preview_height = MIN (sel_height, PREVIEW_SIZE); preview_height = MIN (sel_height, PREVIEW_SIZE);
table = gtk_table_new (2, 2, FALSE); table = gtk_table_new (3, 2, FALSE);
frame = gtk_frame_new (NULL); frame = gtk_frame_new (NULL);
gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN);
@ -717,6 +721,15 @@ unsharp_preview_new (void)
0, GTK_FILL, 0, 0); 0, GTK_FILL, 0, 0);
gtk_widget_show (scrollbar); gtk_widget_show (scrollbar);
preview_toggle = gtk_check_button_new_with_mnemonic (_("_Preview"));
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (preview_toggle),
show_preview);
gtk_table_attach (GTK_TABLE (table), preview_toggle,
0, 1, 2, 3, GTK_FILL, GTK_FILL, 0, 0);
gtk_widget_show (preview_toggle);
g_signal_connect (preview_toggle, "toggled",
G_CALLBACK (preview_toggle_callback), NULL);
return table; return table;
} }
@ -824,6 +837,18 @@ unsharp_mask_dialog (void)
} }
/* preview functions */ /* preview functions */
static void
preview_toggle_callback (GtkWidget *toggle)
{
if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (toggle)))
{
show_preview = TRUE;
preview_update ();
}
else
show_preview = FALSE;
}
static void static void
preview_update (void) preview_update (void)
{ {
@ -858,6 +883,9 @@ preview_update (void)
gint row,buf_y, offset; /* Preview loop control */ gint row,buf_y, offset; /* Preview loop control */
if (!show_preview)
return;
/* Get drawable info */ /* Get drawable info */
gimp_drawable_mask_bounds (drawable->drawable_id, &x1, &y1, &x2, &y2); gimp_drawable_mask_bounds (drawable->drawable_id, &x1, &y1, &x2, &y2);
width = drawable->width; width = drawable->width;