From a6a21841a1dffab91e4aceb30c31b9a0247cbc20 Mon Sep 17 00:00:00 2001 From: Michael Natterer Date: Fri, 30 Jan 2004 11:53:28 +0000 Subject: [PATCH] fixed help ID. 2004-01-30 Michael Natterer * plug-ins/rcm/rcm_dialog.c (rcm_dialog): fixed help ID. * plug-ins/rcm/rcm.[ch] * plug-ins/rcm/rcm_callback.[ch] * plug-ins/rcm/rcm_dialog.[ch] * plug-ins/rcm/rcm_gdk.[ch] * plug-ins/rcm/rcm_misc.[ch]: completely reindented, removed overly long /*---...---*/ comment lines, fixed spacing. --- ChangeLog | 11 + plug-ins/rcm/rcm.c | 260 ++++++++------- plug-ins/rcm/rcm.h | 19 +- plug-ins/rcm/rcm_callback.c | 624 ++++++++++++++++++------------------ plug-ins/rcm/rcm_callback.h | 141 ++++---- plug-ins/rcm/rcm_dialog.c | 228 +++++++------ plug-ins/rcm/rcm_dialog.h | 16 +- plug-ins/rcm/rcm_gdk.c | 149 +++++---- plug-ins/rcm/rcm_gdk.h | 30 +- plug-ins/rcm/rcm_misc.c | 397 +++++++++++------------ plug-ins/rcm/rcm_misc.h | 65 ++-- 11 files changed, 955 insertions(+), 985 deletions(-) diff --git a/ChangeLog b/ChangeLog index 50b8dfa4b7..c1bea5bb20 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2004-01-30 Michael Natterer + + * plug-ins/rcm/rcm_dialog.c (rcm_dialog): fixed help ID. + + * plug-ins/rcm/rcm.[ch] + * plug-ins/rcm/rcm_callback.[ch] + * plug-ins/rcm/rcm_dialog.[ch] + * plug-ins/rcm/rcm_gdk.[ch] + * plug-ins/rcm/rcm_misc.[ch]: completely reindented, removed + overly long /*---...---*/ comment lines, fixed spacing. + 2004-01-30 Michael Schumacher * libgimpwidgets/gimpwidgets.def: added missing symbols. diff --git a/plug-ins/rcm/rcm.c b/plug-ins/rcm/rcm.c index f1f092d47a..205c119a07 100644 --- a/plug-ins/rcm/rcm.c +++ b/plug-ins/rcm/rcm.c @@ -24,9 +24,9 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*----------------------------------------------------------------------------------- +/*---------------------------------------------------------------------------- * Change log: - * + * * Version 2.0, 04 April 1999. * Nearly complete rewrite, made plug-in stable. * (Works with GIMP 1.1 and GTK+ 1.2) @@ -34,24 +34,25 @@ * Version 1.0, 27 March 1997. * Initial (unstable) release by Pavel Grinfeld * - *-----------------------------------------------------------------------------------*/ - -#include -#include + *----------------------------------------------------------------------------*/ #include "config.h" + +#include + #include + #include "libgimp/gimp.h" -#include "libgimp/stdplugins-intl.h" #include "rcm.h" #include "rcm_misc.h" #include "rcm_dialog.h" #include "rcm_callback.h" -/*-----------------------------------------------------------------------------------*/ +#include "libgimp/stdplugins-intl.h" + + /* Forward declarations */ -/*-----------------------------------------------------------------------------------*/ static void query (void); static void run (const gchar *name, @@ -60,9 +61,8 @@ static void run (const gchar *name, gint *nreturn_vals, GimpParam **return_vals); -/*-----------------------------------------------------------------------------------*/ + /* Global variables */ -/*-----------------------------------------------------------------------------------*/ RcmParams Current = { @@ -72,10 +72,6 @@ RcmParams Current = GRAY_TO }; -/*-----------------------------------------------------------------------------------*/ -/* Local variables */ -/*-----------------------------------------------------------------------------------*/ - GimpPlugInInfo PLUG_IN_INFO = { NULL, /* init_proc */ @@ -84,17 +80,12 @@ GimpPlugInInfo PLUG_IN_INFO = run, /* run_proc */ }; -/*-----------------------------------------------------------------------------------*/ -/* Dummy function */ -/*-----------------------------------------------------------------------------------*/ - MAIN() -/*-----------------------------------------------------------------------------------*/ -/* Query plug-in */ -/*-----------------------------------------------------------------------------------*/ -static void +/* Query plug-in */ + +static void query (void) { GimpParamDef args[] = @@ -119,95 +110,95 @@ query (void) args, NULL); } -/*-----------------------------------------------------------------------------------*/ -/* Rotate colormap of a single row */ -/*-----------------------------------------------------------------------------------*/ -void -rcm_row (const guchar *src_row, +/* Rotate colormap of a single row */ + +void +rcm_row (const guchar *src_row, guchar *dest_row, - gint row, - gint row_width, + gint row, + gint row_width, gint bytes) { - gint col, bytenum, skip; - gdouble H,S,V; - guchar rgb[3]; - - for (col=0; col < row_width; col++) - { - skip = 0; - - rgb[0] = src_row[col*bytes + 0]; - rgb[1] = src_row[col*bytes + 1]; - rgb[2] = src_row[col*bytes + 2]; - - gimp_rgb_to_hsv4 (rgb, &H, &S, &V); - - if (rcm_is_gray(S)) - { - if (Current.Gray_to_from == GRAY_FROM) - { - if (rcm_angle_inside_slice(Current.Gray->hue,Current.From->angle) <= 1) - { - H = Current.Gray->hue / TP; - S = Current.Gray->satur; - } - else - { - skip = 1; - } - } - else - { - skip = 1; - gimp_hsv_to_rgb4 (rgb, Current.Gray->hue/TP, Current.Gray->satur, V); - } - } - - if (!skip) - { - H = rcm_linear(rcm_left_end(Current.From->angle), - rcm_right_end(Current.From->angle), - rcm_left_end(Current.To->angle), - rcm_right_end(Current.To->angle), - H*TP); + gint col, bytenum, skip; + gdouble H, S, V; + guchar rgb[3]; - H = angle_mod_2PI(H) / TP; - gimp_hsv_to_rgb4 (rgb, H, S, V); - } - - dest_row[col * bytes + 0] = rgb[0]; - dest_row[col * bytes + 1] = rgb[1]; - dest_row[col * bytes + 2] = rgb[2]; - - if (bytes > 3) + for (col = 0; col < row_width; col++) { - for (bytenum=3; bytenumhue, + Current.From->angle) <= 1) + { + H = Current.Gray->hue / TP; + S = Current.Gray->satur; + } + else + { + skip = 1; + } + } + else + { + skip = 1; + gimp_hsv_to_rgb4 (rgb, Current.Gray->hue / TP, + Current.Gray->satur, V); + } + } + + if (! skip) + { + H = rcm_linear( rcm_left_end (Current.From->angle), + rcm_right_end (Current.From->angle), + rcm_left_end (Current.To->angle), + rcm_right_end (Current.To->angle), + H * TP); + + H = angle_mod_2PI (H) / TP; + gimp_hsv_to_rgb4 (rgb, H, S, V); + } + + dest_row[col * bytes + 0] = rgb[0]; + dest_row[col * bytes + 1] = rgb[1]; + dest_row[col * bytes + 2] = rgb[2]; + + if (bytes > 3) + { + for (bytenum = 3; bytenum < bytes; bytenum++) + dest_row[col * bytes + bytenum] = src_row[col * bytes + bytenum]; + } } - } } -/*-----------------------------------------------------------------------------------*/ -/* Rotate colormap row by row ... */ -/*-----------------------------------------------------------------------------------*/ -void +/* Rotate colormap row by row ... */ + +void rcm (GimpDrawable *drawable) { GimpPixelRgn srcPR, destPR; - gint width, height; - gint bytes; - guchar *src_row, *dest_row; - gint row; - gint x1, y1, x2, y2; - + gint width, height; + gint bytes; + guchar *src_row, *dest_row; + gint row; + gint x1, y1, x2, y2; + gimp_drawable_mask_bounds (drawable->drawable_id, &x1, &y1, &x2, &y2); - width = drawable->width; + width = drawable->width; height = drawable->height; - bytes = drawable->bpp; + bytes = drawable->bpp; src_row = g_new (guchar, (x2 - x1) * bytes); dest_row = g_new (guchar, (x2 - x1) * bytes); @@ -215,31 +206,30 @@ rcm (GimpDrawable *drawable) gimp_pixel_rgn_init (&srcPR, drawable, 0, 0, width, height, FALSE, FALSE); gimp_pixel_rgn_init (&destPR, drawable, 0, 0, width, height, TRUE, TRUE); - for (row=y1; row < y2; row++) - { - gimp_pixel_rgn_get_row(&srcPR, src_row, x1, row, (x2 - x1)); + for (row = y1; row < y2; row++) + { + gimp_pixel_rgn_get_row (&srcPR, src_row, x1, row, (x2 - x1)); - rcm_row(src_row, dest_row, row, (x2 - x1), bytes); - - gimp_pixel_rgn_set_row(&destPR, dest_row, x1, row, (x2 - x1)); - - if ((row % 10) == 0) - gimp_progress_update((double) row / (double) (y2 - y1)); - } + rcm_row (src_row, dest_row, row, (x2 - x1), bytes); + + gimp_pixel_rgn_set_row (&destPR, dest_row, x1, row, (x2 - x1)); + + if ((row % 10) == 0) + gimp_progress_update ((double) row / (double) (y2 - y1)); + } /* update the processed region */ - gimp_drawable_flush(drawable); - gimp_drawable_merge_shadow(drawable->drawable_id, TRUE); - gimp_drawable_update(drawable->drawable_id, x1, y1, (x2 - x1), (y2 - y1)); - + gimp_drawable_flush (drawable); + gimp_drawable_merge_shadow (drawable->drawable_id, TRUE); + gimp_drawable_update (drawable->drawable_id, x1, y1, (x2 - x1), (y2 - y1)); + g_free (src_row); g_free (dest_row); } -/*-----------------------------------------------------------------------------------*/ + /* STANDARD RUN */ -/*-----------------------------------------------------------------------------------*/ static void run (const gchar *name, @@ -248,43 +238,45 @@ run (const gchar *name, gint *nreturn_vals, GimpParam **return_vals) { - GimpParam values[1]; + GimpParam values[1]; GimpPDBStatusType status = GIMP_PDB_SUCCESS; - + *nreturn_vals = 1; - *return_vals = values; + *return_vals = values; INIT_I18N (); - values[0].type = GIMP_PDB_STATUS; + values[0].type = GIMP_PDB_STATUS; values[0].data.d_status = status; Current.drawable = gimp_drawable_get (param[2].data.d_drawable); Current.mask = gimp_drawable_get (gimp_image_get_selection (param[1].data.d_image)); - /* works not on INDEXED images */ + /* works not on INDEXED images */ if (gimp_drawable_is_indexed (Current.drawable->drawable_id) || gimp_drawable_is_gray (Current.drawable->drawable_id) ) - { - status = GIMP_PDB_EXECUTION_ERROR; - } - else - { - /* call dialog and rotate the colormap */ - if (gimp_drawable_is_rgb(Current.drawable->drawable_id) && rcm_dialog()) { - gimp_progress_init(_("Rotating the colormap...")); - - gimp_tile_cache_ntiles(2 * (Current.drawable->width / gimp_tile_width() + 1)); - rcm(Current.drawable); - gimp_displays_flush(); - } - else status = GIMP_PDB_EXECUTION_ERROR; - } - + } + else + { + /* call dialog and rotate the colormap */ + if (gimp_drawable_is_rgb (Current.drawable->drawable_id) && rcm_dialog ()) + { + gimp_progress_init (_("Rotating the colormap...")); + + gimp_tile_cache_ntiles (2 * (Current.drawable->width / + gimp_tile_width () + 1)); + rcm (Current.drawable); + gimp_displays_flush (); + } + else + status = GIMP_PDB_EXECUTION_ERROR; + } + values[0].data.d_status = status; + if (status == GIMP_PDB_SUCCESS) - gimp_drawable_detach(Current.drawable); + gimp_drawable_detach (Current.drawable); } diff --git a/plug-ins/rcm/rcm.h b/plug-ins/rcm/rcm.h index 04730d67ff..37229d7aab 100644 --- a/plug-ins/rcm/rcm.h +++ b/plug-ins/rcm/rcm.h @@ -24,9 +24,9 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*----------------------------------------------------------------------------------- +/*---------------------------------------------------------------------------- * Change log: - * + * * Version 2.0, 04 April 1999. * Nearly complete rewrite, made plug-in stable. * (Works with GIMP 1.1 and GTK+ 1.2) @@ -34,21 +34,19 @@ * Version 1.0, 27 March 1997. * Initial (unstable) release by Pavel Grinfeld * - *-----------------------------------------------------------------------------------*/ + *----------------------------------------------------------------------------*/ + -/*-----------------------------------------------------------------------------------*/ /* Global defines */ -/*-----------------------------------------------------------------------------------*/ #define TP (2*G_PI) -/*-----------------------------------------------------------------------------------*/ + /* Typedefs */ -/*-----------------------------------------------------------------------------------*/ enum { ENTIRE_IMAGE, SELECTION, SELECTION_IN_CONTEXT, PREVIEW_OPTIONS }; -enum { EACH, BOTH, DEGREES, RADIANS, RADIANS_OVER_PI, +enum { EACH, BOTH, DEGREES, RADIANS, RADIANS_OVER_PI, GRAY_FROM, GRAY_TO, CURRENT, ORIGINAL }; typedef enum { VIRGIN, DRAG_START, DRAGING, DO_NOTHING } RcmOp; @@ -132,10 +130,7 @@ typedef struct RcmBna *Bna; } RcmParams; -/*-----------------------------------------------------------------------------------*/ + /* Global variables */ -/*-----------------------------------------------------------------------------------*/ extern RcmParams Current; - -/*-----------------------------------------------------------------------------------*/ diff --git a/plug-ins/rcm/rcm_callback.c b/plug-ins/rcm/rcm_callback.c index 0eabc34350..a0c7ad9903 100644 --- a/plug-ins/rcm/rcm_callback.c +++ b/plug-ins/rcm/rcm_callback.c @@ -63,9 +63,7 @@ #include "pixmaps/rcm_cw.xpm" -/*---------------------------------------------------------------------------*/ /* Misc functions */ -/*---------------------------------------------------------------------------*/ float rcm_units_factor (gint units) @@ -103,25 +101,23 @@ rcm_set_pixmap (GtkWidget **widget, /* create pixmap */ - style = gtk_widget_get_style(parent); - pixmap = gdk_pixmap_create_from_xpm_d(parent->window, &mask, - &style->bg[GTK_STATE_NORMAL], pixmap_data); + style = gtk_widget_get_style (parent); + pixmap = gdk_pixmap_create_from_xpm_d (parent->window, &mask, + &style->bg[GTK_STATE_NORMAL], + pixmap_data); if (*widget != NULL) - { - gtk_widget_destroy(*widget); - } + gtk_widget_destroy (*widget); - *widget = gtk_pixmap_new(pixmap, mask); + *widget = gtk_pixmap_new (pixmap, mask); - gtk_box_pack_start(GTK_BOX(label_box), *widget, FALSE, FALSE, 3); + gtk_box_pack_start (GTK_BOX (label_box), *widget, FALSE, FALSE, 3); - gtk_widget_show(*widget); + gtk_widget_show (*widget); } -/*---------------------------------------------------------------------------*/ + /* Circle buttons */ -/*---------------------------------------------------------------------------*/ void rcm_360_degrees (GtkWidget *button, @@ -141,14 +137,15 @@ rcm_cw_ccw (GtkWidget *button, { circle->angle->cw_ccw *= -1; - rcm_set_pixmap(&circle->cw_ccw_pixmap, circle->cw_ccw_button->parent, - circle->cw_ccw_box, (circle->angle->cw_ccw>0) ? rcm_cw_xpm : rcm_ccw_xpm); + rcm_set_pixmap (&circle->cw_ccw_pixmap, circle->cw_ccw_button->parent, + circle->cw_ccw_box, + (circle->angle->cw_ccw>0) ? rcm_cw_xpm : rcm_ccw_xpm); gtk_label_set_text (GTK_LABEL (circle->cw_ccw_label), (circle->angle->cw_ccw>0) ? _("Switch to clockwise") : _("Switch to c/clockwise")); - rcm_a_to_b(button, circle); + rcm_a_to_b (button, circle); } void @@ -156,20 +153,19 @@ rcm_a_to_b (GtkWidget *button, RcmCircle *circle) { circle->action_flag = DO_NOTHING; - gtk_widget_queue_draw(circle->preview); + gtk_widget_queue_draw (circle->preview); - SWAP(circle->angle->alpha, circle->angle->beta); + SWAP (circle->angle->alpha, circle->angle->beta); - rcm_draw_arrows(circle->preview->window, circle->preview->style->black_gc, - circle->angle); + rcm_draw_arrows (circle->preview->window, circle->preview->style->black_gc, + circle->angle); circle->action_flag = VIRGIN; - rcm_render_preview(Current.Bna->after, CURRENT); + rcm_render_preview (Current.Bna->after, CURRENT); } -/*---------------------------------------------------------------------------*/ + /* Misc: units buttons */ -/*---------------------------------------------------------------------------*/ static void rcm_spinbutton_to_degrees (GtkWidget *button, @@ -178,52 +174,50 @@ rcm_spinbutton_to_degrees (GtkWidget *button, { GtkAdjustment *adj; - adj = gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(button)); - adj->value = value * rcm_units_factor(Current.Units); + adj = gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (button)); + adj->value = value * rcm_units_factor (Current.Units); adj->upper = 360.0; adj->step_increment = 0.01; adj->page_increment = 1.0; - gtk_spin_button_set_digits(GTK_SPIN_BUTTON(button), 2); + gtk_spin_button_set_digits (GTK_SPIN_BUTTON (button), 2); - gtk_label_set_text (GTK_LABEL(label), rcm_units_string(Current.Units)); + gtk_label_set_text (GTK_LABEL (label), rcm_units_string (Current.Units)); } void rcm_switch_to_degrees (GtkWidget *button, gpointer *value) { - if (GTK_TOGGLE_BUTTON(button)->active) - { - Current.Units = DEGREES; + if (GTK_TOGGLE_BUTTON (button)->active) + { + Current.Units = DEGREES; - rcm_spinbutton_to_degrees(Current.From->alpha_entry, - Current.From->angle->alpha, - Current.From->alpha_units_label); + rcm_spinbutton_to_degrees (Current.From->alpha_entry, + Current.From->angle->alpha, + Current.From->alpha_units_label); - rcm_spinbutton_to_degrees(Current.From->beta_entry, - Current.From->angle->beta, - Current.From->beta_units_label); + rcm_spinbutton_to_degrees (Current.From->beta_entry, + Current.From->angle->beta, + Current.From->beta_units_label); - rcm_spinbutton_to_degrees(Current.To->alpha_entry, - Current.To->angle->alpha, - Current.To->alpha_units_label); + rcm_spinbutton_to_degrees (Current.To->alpha_entry, + Current.To->angle->alpha, + Current.To->alpha_units_label); - rcm_spinbutton_to_degrees(Current.To->beta_entry, - Current.To->angle->beta, - Current.To->beta_units_label); + rcm_spinbutton_to_degrees (Current.To->beta_entry, + Current.To->angle->beta, + Current.To->beta_units_label); - rcm_spinbutton_to_degrees(Current.Gray->hue_entry, - Current.Gray->hue, - Current.Gray->hue_units_label); + rcm_spinbutton_to_degrees (Current.Gray->hue_entry, + Current.Gray->hue, + Current.Gray->hue_units_label); - Current.From->action_flag = VIRGIN; - Current.To->action_flag = VIRGIN; - Current.Gray->action_flag = VIRGIN; - } + Current.From->action_flag = VIRGIN; + Current.To->action_flag = VIRGIN; + Current.Gray->action_flag = VIRGIN; + } } -/*---------------------------------------------------------------------------*/ - static void rcm_spinbutton_to_radians (GtkWidget *button, float value, @@ -231,52 +225,50 @@ rcm_spinbutton_to_radians (GtkWidget *button, { GtkAdjustment *adj; - adj = gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(button)); - adj->value = value * rcm_units_factor(Current.Units); + adj = gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (button)); + adj->value = value * rcm_units_factor (Current.Units); adj->upper = TP; adj->step_increment = 0.0001; adj->page_increment = 0.001; - gtk_spin_button_set_digits(GTK_SPIN_BUTTON(button), 4); + gtk_spin_button_set_digits (GTK_SPIN_BUTTON (button), 4); - gtk_label_set_text (GTK_LABEL(label), rcm_units_string(Current.Units)); + gtk_label_set_text (GTK_LABEL (label), rcm_units_string (Current.Units)); } void rcm_switch_to_radians (GtkWidget *button, gpointer *value) { - if (GTK_TOGGLE_BUTTON(button)->active) - { - Current.Units = RADIANS; + if (GTK_TOGGLE_BUTTON (button)->active) + { + Current.Units = RADIANS; - rcm_spinbutton_to_radians(Current.From->alpha_entry, - Current.From->angle->alpha, - Current.From->alpha_units_label); + rcm_spinbutton_to_radians (Current.From->alpha_entry, + Current.From->angle->alpha, + Current.From->alpha_units_label); - rcm_spinbutton_to_radians(Current.From->beta_entry, - Current.From->angle->beta, - Current.From->beta_units_label); + rcm_spinbutton_to_radians (Current.From->beta_entry, + Current.From->angle->beta, + Current.From->beta_units_label); - rcm_spinbutton_to_radians(Current.To->alpha_entry, - Current.To->angle->alpha, - Current.To->alpha_units_label); + rcm_spinbutton_to_radians (Current.To->alpha_entry, + Current.To->angle->alpha, + Current.To->alpha_units_label); - rcm_spinbutton_to_radians(Current.To->beta_entry, - Current.To->angle->beta, - Current.To->beta_units_label); + rcm_spinbutton_to_radians (Current.To->beta_entry, + Current.To->angle->beta, + Current.To->beta_units_label); - rcm_spinbutton_to_radians(Current.Gray->hue_entry, - Current.Gray->hue, - Current.Gray->hue_units_label); + rcm_spinbutton_to_radians (Current.Gray->hue_entry, + Current.Gray->hue, + Current.Gray->hue_units_label); - Current.From->action_flag = VIRGIN; - Current.To->action_flag = VIRGIN; - Current.Gray->action_flag = VIRGIN; - } + Current.From->action_flag = VIRGIN; + Current.To->action_flag = VIRGIN; + Current.Gray->action_flag = VIRGIN; + } } -/*---------------------------------------------------------------------------*/ - static void rcm_spinbutton_to_radians_over_PI (GtkWidget *button, float value, @@ -284,147 +276,138 @@ rcm_spinbutton_to_radians_over_PI (GtkWidget *button, { GtkAdjustment *adj; - adj = gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(button)); - adj->value = value * rcm_units_factor(Current.Units); + adj = gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (button)); + adj->value = value * rcm_units_factor (Current.Units); adj->upper = 2.0; adj->step_increment = 0.0001; adj->page_increment = 0.001; - gtk_spin_button_set_digits(GTK_SPIN_BUTTON(button), 4); + gtk_spin_button_set_digits (GTK_SPIN_BUTTON (button), 4); - gtk_label_set_text (GTK_LABEL(label), rcm_units_string(Current.Units)); + gtk_label_set_text (GTK_LABEL (label), rcm_units_string (Current.Units)); } void rcm_switch_to_radians_over_PI (GtkWidget *button, gpointer *value) { - if (GTK_TOGGLE_BUTTON(button)->active) - { - Current.Units = RADIANS_OVER_PI; + if (GTK_TOGGLE_BUTTON (button)->active) + { + Current.Units = RADIANS_OVER_PI; - rcm_spinbutton_to_radians_over_PI(Current.From->alpha_entry, - Current.From->angle->alpha, - Current.From->alpha_units_label); + rcm_spinbutton_to_radians_over_PI (Current.From->alpha_entry, + Current.From->angle->alpha, + Current.From->alpha_units_label); - rcm_spinbutton_to_radians_over_PI(Current.From->beta_entry, - Current.From->angle->beta, - Current.From->beta_units_label); + rcm_spinbutton_to_radians_over_PI (Current.From->beta_entry, + Current.From->angle->beta, + Current.From->beta_units_label); - rcm_spinbutton_to_radians_over_PI(Current.To->alpha_entry, - Current.To->angle->alpha, - Current.To->alpha_units_label); + rcm_spinbutton_to_radians_over_PI (Current.To->alpha_entry, + Current.To->angle->alpha, + Current.To->alpha_units_label); - rcm_spinbutton_to_radians_over_PI(Current.To->beta_entry, - Current.To->angle->beta, - Current.To->beta_units_label); + rcm_spinbutton_to_radians_over_PI (Current.To->beta_entry, + Current.To->angle->beta, + Current.To->beta_units_label); - rcm_spinbutton_to_radians_over_PI(Current.Gray->hue_entry, - Current.Gray->hue, - Current.Gray->hue_units_label); + rcm_spinbutton_to_radians_over_PI (Current.Gray->hue_entry, + Current.Gray->hue, + Current.Gray->hue_units_label); - Current.From->action_flag = VIRGIN; - Current.To->action_flag = VIRGIN; - Current.Gray->action_flag = VIRGIN; - } + Current.From->action_flag = VIRGIN; + Current.To->action_flag = VIRGIN; + Current.Gray->action_flag = VIRGIN; + } } -/*---------------------------------------------------------------------------*/ + /* Misc: Gray: mode buttons */ -/*---------------------------------------------------------------------------*/ void rcm_switch_to_gray_to (GtkWidget *button, gpointer *value) { - if (!GTK_TOGGLE_BUTTON(button)->active) return; + if (! GTK_TOGGLE_BUTTON (button)->active) + return; Current.Gray_to_from = GRAY_TO; - rcm_render_preview(Current.Bna->after, CURRENT); + rcm_render_preview (Current.Bna->after, CURRENT); } void rcm_switch_to_gray_from (GtkWidget *button, gpointer *value) { - if (!(GTK_TOGGLE_BUTTON(button)->active)) return; + if (! GTK_TOGGLE_BUTTON (button)->active) + return; Current.Gray_to_from = GRAY_FROM; - rcm_render_preview(Current.Bna->after, CURRENT); + rcm_render_preview (Current.Bna->after, CURRENT); } -/*---------------------------------------------------------------------------*/ + /* Misc: Preview buttons */ -/*---------------------------------------------------------------------------*/ void rcm_preview_as_you_drag (GtkWidget *button, gpointer *value) { - if (GTK_TOGGLE_BUTTON(button)->active) - Current.RealTime = TRUE; - else - Current.RealTime = FALSE; + Current.RealTime = GTK_TOGGLE_BUTTON (button)->active; } -/*---------------------------------------------------------------------------*/ - static void rcm_change_preview (void) { /* must hide and show or resize would not work ... */ - gtk_widget_hide(Current.Bna->before); - gtk_widget_hide(Current.Bna->after); + gtk_widget_hide (Current.Bna->before); + gtk_widget_hide (Current.Bna->after); - gtk_preview_size(GTK_PREVIEW(Current.Bna->before), - Current.reduced->width, Current.reduced->height); + gtk_preview_size (GTK_PREVIEW (Current.Bna->before), + Current.reduced->width, Current.reduced->height); - gtk_preview_size(GTK_PREVIEW(Current.Bna->after), - Current.reduced->width, Current.reduced->height); + gtk_preview_size (GTK_PREVIEW (Current.Bna->after), + Current.reduced->width, Current.reduced->height); - rcm_render_preview(Current.Bna->before, ORIGINAL); - rcm_render_preview(Current.Bna->after, CURRENT); + rcm_render_preview (Current.Bna->before, ORIGINAL); + rcm_render_preview (Current.Bna->after, CURRENT); - gtk_widget_queue_draw(Current.Bna->before); - gtk_widget_queue_draw(Current.Bna->after); + gtk_widget_queue_draw (Current.Bna->before); + gtk_widget_queue_draw (Current.Bna->after); - gtk_widget_show(Current.Bna->before); - gtk_widget_show(Current.Bna->after); + gtk_widget_show (Current.Bna->before); + gtk_widget_show (Current.Bna->after); } -/*---------------------------------------------------------------------------*/ - void rcm_selection_in_context (GtkWidget *button, gpointer *value) { - Current.reduced = rcm_reduce_image(Current.drawable, Current.mask, - MAX_PREVIEW_SIZE, SELECTION_IN_CONTEXT); - rcm_change_preview(); + Current.reduced = rcm_reduce_image (Current.drawable, Current.mask, + MAX_PREVIEW_SIZE, SELECTION_IN_CONTEXT); + rcm_change_preview (); } void rcm_selection (GtkWidget *button, gpointer *value) { - Current.reduced = rcm_reduce_image(Current.drawable, Current.mask, - MAX_PREVIEW_SIZE, SELECTION); - rcm_change_preview(); + Current.reduced = rcm_reduce_image (Current.drawable, Current.mask, + MAX_PREVIEW_SIZE, SELECTION); + rcm_change_preview (); } void rcm_entire_image (GtkWidget *button, gpointer *value) { - Current.reduced = rcm_reduce_image(Current.drawable, Current.mask, - MAX_PREVIEW_SIZE, ENTIRE_IMAGE); - rcm_change_preview(); + Current.reduced = rcm_reduce_image (Current.drawable, Current.mask, + MAX_PREVIEW_SIZE, ENTIRE_IMAGE); + rcm_change_preview (); } -/*---------------------------------------------------------------------------*/ /* Circle events */ -/*---------------------------------------------------------------------------*/ gboolean rcm_expose_event (GtkWidget *widget, @@ -432,7 +415,7 @@ rcm_expose_event (GtkWidget *widget, RcmCircle *circle) { switch (circle->action_flag) - { + { case DO_NOTHING: return FALSE; break; case VIRGIN: rcm_draw_arrows(widget->window, widget->style->black_gc, @@ -446,56 +429,55 @@ rcm_expose_event (GtkWidget *widget, return TRUE; } -/*---------------------------------------------------------------------------*/ - gboolean rcm_button_press_event (GtkWidget *widget, GdkEvent *event, RcmCircle *circle) { - float clicked_angle; - float *alpha; - float *beta; + float clicked_angle; + float *alpha; + float *beta; GdkEventButton *bevent; - alpha = &circle->angle->alpha; - beta = &circle->angle->beta; + alpha = &circle->angle->alpha; + beta = &circle->angle->beta; bevent = (GdkEventButton *) event; circle->action_flag = DRAG_START; - clicked_angle = angle_mod_2PI(arctg(CENTER-bevent->y, bevent->x-CENTER)); + clicked_angle = angle_mod_2PI (arctg (CENTER-bevent->y, bevent->x-CENTER)); circle->prev_clicked = clicked_angle; if ((sqrt (SQR (bevent->y-CENTER) + SQR (bevent->x-CENTER)) > RADIUS * EACH_OR_BOTH) && (min_prox (*alpha, *beta, clicked_angle) < G_PI / 12)) - { - circle->mode = EACH; - circle->target = closest(alpha, beta, clicked_angle); - - if (*(circle->target) != clicked_angle) { - *(circle->target) = clicked_angle; - gtk_widget_queue_draw(circle->preview); - rcm_draw_arrows(widget->window, widget->style->black_gc, circle->angle); + circle->mode = EACH; + circle->target = closest (alpha, beta, clicked_angle); - gtk_spin_button_set_value(GTK_SPIN_BUTTON(circle->alpha_entry), - circle->angle->alpha * rcm_units_factor(Current.Units)); + if (*(circle->target) != clicked_angle) + { + *(circle->target) = clicked_angle; + gtk_widget_queue_draw (circle->preview); + rcm_draw_arrows (widget->window, + widget->style->black_gc, circle->angle); - gtk_spin_button_set_value(GTK_SPIN_BUTTON(circle->beta_entry), - circle->angle->beta * rcm_units_factor(Current.Units)); + gtk_spin_button_set_value (GTK_SPIN_BUTTON (circle->alpha_entry), + circle->angle->alpha * + rcm_units_factor(Current.Units)); - if (Current.RealTime) - rcm_render_preview(Current.Bna->after, CURRENT); + gtk_spin_button_set_value (GTK_SPIN_BUTTON (circle->beta_entry), + circle->angle->beta * + rcm_units_factor(Current.Units)); + + if (Current.RealTime) + rcm_render_preview (Current.Bna->after, CURRENT); + } } - } else circle->mode = BOTH; return TRUE; } -/*---------------------------------------------------------------------------*/ - gboolean rcm_release_event (GtkWidget *widget, GdkEvent *event, @@ -503,82 +485,88 @@ rcm_release_event (GtkWidget *widget, { if (circle->action_flag == DRAGING) { - gtk_widget_queue_draw(circle->preview); - rcm_draw_arrows(widget->window, widget->style->black_gc, circle->angle); + gtk_widget_queue_draw (circle->preview); + rcm_draw_arrows (widget->window, widget->style->black_gc, circle->angle); } + circle->action_flag = VIRGIN; - if (!Current.RealTime) - rcm_render_preview(Current.Bna->after,CURRENT); + if (! Current.RealTime) + rcm_render_preview (Current.Bna->after, CURRENT); return TRUE; } -/*---------------------------------------------------------------------------*/ - gboolean rcm_motion_notify_event (GtkWidget *widget, GdkEvent *event, RcmCircle *circle) { - gint x, y; - float clicked_angle, delta; - float *alpha, *beta; - int cw_ccw; - GdkGCValues values; + gint x, y; + gfloat clicked_angle, delta; + gfloat *alpha, *beta; + gint cw_ccw; + GdkGCValues values; - alpha = &(circle->angle->alpha); - beta = &(circle->angle->beta); + alpha = &(circle->angle->alpha); + beta = &(circle->angle->beta); cw_ccw = circle->angle->cw_ccw; - delta = angle_mod_2PI(cw_ccw * (*beta - *alpha)); + delta = angle_mod_2PI (cw_ccw * (*beta - *alpha)); values.foreground = Current.From->preview->style->white; values.function = GDK_XOR; xor_gc = gdk_gc_new_with_values (Current.From->preview->window, &values, GDK_GC_FOREGROUND | GDK_GC_FUNCTION); - gdk_window_get_pointer(widget->window, &x, &y, NULL); - clicked_angle = angle_mod_2PI(arctg(CENTER-y, x-CENTER)); + gdk_window_get_pointer (widget->window, &x, &y, NULL); + clicked_angle = angle_mod_2PI (arctg (CENTER-y, x-CENTER)); delta = clicked_angle - circle->prev_clicked; circle->prev_clicked = clicked_angle; if (delta) - { - if (circle->action_flag == DRAG_START) { - gtk_widget_queue_draw(circle->preview); - circle->action_flag = DRAGING; - } + if (circle->action_flag == DRAG_START) + { + gtk_widget_queue_draw (circle->preview); + circle->action_flag = DRAGING; + } else - { - /* this should be erasing entire angle */ - rcm_draw_arrows(widget->window, xor_gc, circle->angle); - } - if (circle->mode == EACH) - *(circle->target)=clicked_angle; - else { - circle->angle->alpha=angle_mod_2PI(circle->angle->alpha + delta); - circle->angle->beta =angle_mod_2PI(circle->angle->beta + delta); - } - gdk_window_process_updates(widget->window, FALSE); - rcm_draw_arrows(widget->window, xor_gc, circle->angle); + { + /* this should be erasing entire angle */ + rcm_draw_arrows (widget->window, xor_gc, circle->angle); + } - gtk_spin_button_set_value(GTK_SPIN_BUTTON(circle->alpha_entry), - circle->angle->alpha * rcm_units_factor(Current.Units)); + if (circle->mode == EACH) + { + *(circle->target)=clicked_angle; + } + else + { + circle->angle->alpha=angle_mod_2PI(circle->angle->alpha + delta); + circle->angle->beta =angle_mod_2PI(circle->angle->beta + delta); + } - gtk_spin_button_set_value(GTK_SPIN_BUTTON(circle->beta_entry), - circle->angle->beta * rcm_units_factor(Current.Units)); - if (Current.RealTime) - rcm_render_preview(Current.Bna->after, CURRENT); + gdk_window_process_updates (widget->window, FALSE); + rcm_draw_arrows (widget->window, xor_gc, circle->angle); + + gtk_spin_button_set_value (GTK_SPIN_BUTTON (circle->alpha_entry), + circle->angle->alpha * + rcm_units_factor(Current.Units)); + + gtk_spin_button_set_value (GTK_SPIN_BUTTON (circle->beta_entry), + circle->angle->beta * + rcm_units_factor(Current.Units)); + + if (Current.RealTime) + rcm_render_preview (Current.Bna->after, CURRENT); } return TRUE; } -/*---------------------------------------------------------------------------*/ + /* Gray circle events */ -/*---------------------------------------------------------------------------*/ gboolean rcm_gray_expose_event (GtkWidget *widget, @@ -586,83 +574,83 @@ rcm_gray_expose_event (GtkWidget *widget, RcmGray *circle) { if (circle->action_flag == VIRGIN) - { - rcm_draw_little_circle(widget->window, widget->style->black_gc, - circle->hue, circle->satur); + { + rcm_draw_little_circle (widget->window, widget->style->black_gc, + circle->hue, circle->satur); - rcm_draw_large_circle(widget->window, widget->style->black_gc, circle->gray_sat); - } + rcm_draw_large_circle (widget->window, + widget->style->black_gc, circle->gray_sat); + } else if (Current.RealTime) - rcm_render_preview(Current.Bna->after, CURRENT); + rcm_render_preview (Current.Bna->after, CURRENT); return TRUE; } -/*---------------------------------------------------------------------------*/ - gboolean rcm_gray_button_press_event (GtkWidget *widget, GdkEvent *event, RcmGray *circle) { GdkEventButton *bevent; - int x, y; + int x, y; bevent = (GdkEventButton *) event; - x = bevent->x - GRAY_CENTER - LITTLE_RADIUS; - y = GRAY_CENTER - bevent->y + LITTLE_RADIUS; + x = bevent->x - GRAY_CENTER - LITTLE_RADIUS; + y = GRAY_CENTER - bevent->y + LITTLE_RADIUS; circle->action_flag = DRAG_START; - circle->hue = angle_mod_2PI(arctg(y, x)); - circle->satur = sqrt (SQR (x) + SQR (y)) / GRAY_RADIUS; - if (circle->satur > 1.0) circle->satur = 1; + circle->hue = angle_mod_2PI(arctg(y, x)); + circle->satur = sqrt (SQR (x) + SQR (y)) / GRAY_RADIUS; - gtk_widget_queue_draw(circle->preview); - rcm_draw_little_circle(widget->window, widget->style->black_gc, - circle->hue, circle->satur); + if (circle->satur > 1.0) + circle->satur = 1; - rcm_draw_large_circle(circle->preview->window, circle->preview->style->black_gc, + gtk_widget_queue_draw (circle->preview); + rcm_draw_little_circle (widget->window, widget->style->black_gc, + circle->hue, circle->satur); + + rcm_draw_large_circle (circle->preview->window, + circle->preview->style->black_gc, circle->gray_sat); - gtk_spin_button_set_value(GTK_SPIN_BUTTON(circle->hue_entry), - circle->hue * rcm_units_factor(Current.Units)); + gtk_spin_button_set_value (GTK_SPIN_BUTTON (circle->hue_entry), + circle->hue * rcm_units_factor (Current.Units)); - gtk_spin_button_set_value(GTK_SPIN_BUTTON(circle->satur_entry), circle->satur); + gtk_spin_button_set_value (GTK_SPIN_BUTTON (circle->satur_entry), + circle->satur); if (Current.RealTime) - rcm_render_preview(Current.Bna->after,CURRENT); + rcm_render_preview (Current.Bna->after,CURRENT); return TRUE; } -/*---------------------------------------------------------------------------*/ - gboolean rcm_gray_release_event (GtkWidget *widget, GdkEvent *event, RcmGray *circle) { if (circle->action_flag == DRAGING) - rcm_draw_little_circle(widget->window, - widget->style->black_gc, - circle->hue, - circle->satur); + rcm_draw_little_circle (widget->window, + widget->style->black_gc, + circle->hue, + circle->satur); circle->action_flag = VIRGIN; - if (!Current.RealTime) rcm_render_preview(Current.Bna->after, CURRENT); + if (!Current.RealTime) + rcm_render_preview (Current.Bna->after, CURRENT); return TRUE; } -/*---------------------------------------------------------------------------*/ - gboolean rcm_gray_motion_notify_event (GtkWidget *widget, GdkEvent *event, RcmGray *circle) { - gint x, y; + gint x, y; GdkGCValues values; values.foreground = Current.From->preview->style->white; @@ -671,150 +659,150 @@ rcm_gray_motion_notify_event (GtkWidget *widget, &values, GDK_GC_FOREGROUND | GDK_GC_FUNCTION); if (circle->action_flag == DRAG_START) - { - gtk_widget_queue_draw(circle->preview); - rcm_draw_large_circle(circle->preview->window, circle->preview->style->black_gc, - circle->gray_sat); + { + gtk_widget_queue_draw (circle->preview); + rcm_draw_large_circle (circle->preview->window, + circle->preview->style->black_gc, + circle->gray_sat); - circle->action_flag = DRAGING; - } + circle->action_flag = DRAGING; + } else - rcm_draw_little_circle(widget->window, xor_gc, - circle->hue, circle->satur); /* erase */ + { + rcm_draw_little_circle (widget->window, xor_gc, + circle->hue, circle->satur); /* erase */ + } - gdk_window_get_pointer(widget->window, &x, &y, NULL); + gdk_window_get_pointer (widget->window, &x, &y, NULL); x = x - GRAY_CENTER - LITTLE_RADIUS; y = GRAY_CENTER - y + LITTLE_RADIUS; - circle->hue = angle_mod_2PI (arctg (y, x)); + circle->hue = angle_mod_2PI (arctg (y, x)); circle->satur = sqrt (SQR (x) + SQR (y)) / GRAY_RADIUS; - if (circle->satur > 1.0) circle->satur = 1; - rcm_draw_little_circle(widget->window, xor_gc, circle->hue, circle->satur); + if (circle->satur > 1.0) + circle->satur = 1; - gtk_spin_button_set_value(GTK_SPIN_BUTTON(circle->hue_entry), - circle->hue * rcm_units_factor(Current.Units)); + rcm_draw_little_circle (widget->window, xor_gc, circle->hue, circle->satur); - gtk_spin_button_set_value(GTK_SPIN_BUTTON(circle->satur_entry), circle->satur); + gtk_spin_button_set_value (GTK_SPIN_BUTTON (circle->hue_entry), + circle->hue * rcm_units_factor(Current.Units)); - if (Current.RealTime) rcm_render_preview(Current.Bna->after, CURRENT); + gtk_spin_button_set_value (GTK_SPIN_BUTTON (circle->satur_entry), + circle->satur); + + if (Current.RealTime) + rcm_render_preview (Current.Bna->after, CURRENT); return TRUE; } -/*---------------------------------------------------------------------------*/ + /* Spinbuttons */ -/*---------------------------------------------------------------------------*/ void rcm_set_alpha (GtkWidget *entry, gpointer data) { - RcmCircle *circle; + RcmCircle *circle = data; - circle = (RcmCircle *) data; - if (circle->action_flag != VIRGIN) return; + if (circle->action_flag != VIRGIN) + return; - circle->angle->alpha = gtk_spin_button_get_value(GTK_SPIN_BUTTON(entry)) / - rcm_units_factor(Current.Units); + circle->angle->alpha = (gtk_spin_button_get_value (GTK_SPIN_BUTTON (entry)) / + rcm_units_factor (Current.Units)); - gtk_widget_queue_draw(circle->preview); + gtk_widget_queue_draw (circle->preview); - rcm_draw_arrows(circle->preview->window, circle->preview->style->black_gc, - circle->angle); + rcm_draw_arrows (circle->preview->window, circle->preview->style->black_gc, + circle->angle); - rcm_render_preview(Current.Bna->after, CURRENT); + rcm_render_preview (Current.Bna->after, CURRENT); } -/*---------------------------------------------------------------------------*/ - void rcm_set_beta (GtkWidget *entry, gpointer data) { - RcmCircle *circle; + RcmCircle *circle = data; - circle=(RcmCircle *) data; - if (circle->action_flag != VIRGIN) return; + if (circle->action_flag != VIRGIN) + return; - circle->angle->beta = gtk_spin_button_get_value(GTK_SPIN_BUTTON(entry)) / - rcm_units_factor(Current.Units); + circle->angle->beta = (gtk_spin_button_get_value (GTK_SPIN_BUTTON (entry)) / + rcm_units_factor(Current.Units)); - gtk_widget_queue_draw(circle->preview); + gtk_widget_queue_draw (circle->preview); - rcm_draw_arrows(circle->preview->window, circle->preview->style->black_gc, - circle->angle); + rcm_draw_arrows (circle->preview->window, circle->preview->style->black_gc, + circle->angle); - rcm_render_preview(Current.Bna->after, CURRENT); + rcm_render_preview (Current.Bna->after, CURRENT); } -/*---------------------------------------------------------------------------*/ - void rcm_set_hue (GtkWidget *entry, gpointer data) { - RcmGray *circle; + RcmGray *circle = data; - circle = (RcmGray *) data; - if (circle->action_flag != VIRGIN) return; + if (circle->action_flag != VIRGIN + ) return; - circle->hue = gtk_spin_button_get_value(GTK_SPIN_BUTTON(entry)) / - rcm_units_factor(Current.Units); + circle->hue = (gtk_spin_button_get_value (GTK_SPIN_BUTTON (entry)) / + rcm_units_factor(Current.Units)); - gtk_widget_queue_draw(circle->preview); + gtk_widget_queue_draw (circle->preview); - rcm_draw_little_circle(circle->preview->window, circle->preview->style->black_gc, - circle->hue, circle->satur); + rcm_draw_little_circle (circle->preview->window, + circle->preview->style->black_gc, + circle->hue, circle->satur); - rcm_draw_large_circle(circle->preview->window, circle->preview->style->black_gc, - circle->gray_sat); + rcm_draw_large_circle (circle->preview->window, + circle->preview->style->black_gc, + circle->gray_sat); - rcm_render_preview(Current.Bna->after, CURRENT); + rcm_render_preview (Current.Bna->after, CURRENT); } -/*---------------------------------------------------------------------------*/ - void rcm_set_satur (GtkWidget *entry, gpointer data) { - RcmGray *circle; + RcmGray *circle = data; - circle=(RcmGray *) data; - if (circle->action_flag != VIRGIN) return; + if (circle->action_flag != VIRGIN) + return; - circle->satur = gtk_spin_button_get_value(GTK_SPIN_BUTTON(entry)); + circle->satur = gtk_spin_button_get_value (GTK_SPIN_BUTTON (entry)); - gtk_widget_queue_draw(circle->preview); - rcm_draw_little_circle(circle->preview->window, circle->preview->style->black_gc, - circle->hue, circle->satur); + gtk_widget_queue_draw (circle->preview); - rcm_draw_large_circle(circle->preview->window, circle->preview->style->black_gc, - circle->gray_sat); + rcm_draw_little_circle (circle->preview->window, + circle->preview->style->black_gc, + circle->hue, circle->satur); - rcm_render_preview(Current.Bna->after, CURRENT); + rcm_draw_large_circle (circle->preview->window, + circle->preview->style->black_gc, + circle->gray_sat); + + rcm_render_preview (Current.Bna->after, CURRENT); } -/*---------------------------------------------------------------------------*/ - void rcm_set_gray_sat (GtkWidget *entry, gpointer data) { - RcmGray *circle; + RcmGray *circle = data; - circle=(RcmGray *) data; + circle->gray_sat = gtk_spin_button_get_value (GTK_SPIN_BUTTON (entry)); - circle->gray_sat = gtk_spin_button_get_value(GTK_SPIN_BUTTON(entry)); + gtk_widget_queue_draw (circle->preview); - gtk_widget_queue_draw(circle->preview); + rcm_draw_large_circle (circle->preview->window, + circle->preview->style->black_gc, + circle->gray_sat); - rcm_draw_large_circle(circle->preview->window, circle->preview->style->black_gc, - circle->gray_sat); - - rcm_render_preview(Current.Bna->after, CURRENT); + rcm_render_preview (Current.Bna->after, CURRENT); } - -/*---------------------------------------------------------------------------*/ diff --git a/plug-ins/rcm/rcm_callback.h b/plug-ins/rcm/rcm_callback.h index c8ac46010d..1cdbf485e1 100644 --- a/plug-ins/rcm/rcm_callback.h +++ b/plug-ins/rcm/rcm_callback.h @@ -26,7 +26,7 @@ /*--------------------------------------------------------------------------- * Change log: - * + * * Version 2.0, 04 April 1999. * Nearly complete rewrite, made plug-in stable. * (Works with GIMP 1.1 and GTK+ 1.2) @@ -36,107 +36,106 @@ * *---------------------------------------------------------------------------*/ -/*---------------------------------------------------------------------------*/ + /* Misc functions */ -/*---------------------------------------------------------------------------*/ -float rcm_units_factor(gint units); +float rcm_units_factor (gint units); -gchar *rcm_units_string(gint units); +gchar *rcm_units_string (gint units); + +void rcm_set_pixmap (GtkWidget **widget, + GtkWidget *parent, + GtkWidget *label_box, + gchar **pixmap_data); -void rcm_set_pixmap(GtkWidget **widget, GtkWidget *parent, - GtkWidget *label_box, char **pixmap_data); -/*---------------------------------------------------------------------------*/ /* Ok Button */ -/*---------------------------------------------------------------------------*/ -void rcm_ok_callback(GtkWidget *widget, gpointer data); +void rcm_ok_callback (GtkWidget *widget, + gpointer data); + -/*---------------------------------------------------------------------------*/ /* Circle buttons */ -/*---------------------------------------------------------------------------*/ -void rcm_360_degrees(GtkWidget *button, RcmCircle *circle); +void rcm_360_degrees (GtkWidget *button, + RcmCircle *circle); +void rcm_cw_ccw (GtkWidget *button, + RcmCircle *circle); +void rcm_a_to_b (GtkWidget *button, + RcmCircle *circle); -void rcm_cw_ccw(GtkWidget *button, RcmCircle *circle); -void rcm_a_to_b(GtkWidget *button, RcmCircle *circle); - -/*---------------------------------------------------------------------------*/ /* Misc: units buttons */ -/*---------------------------------------------------------------------------*/ -void rcm_switch_to_degrees(GtkWidget *button, gpointer *value); +void rcm_switch_to_degrees (GtkWidget *button, + gpointer *value); +void rcm_switch_to_radians (GtkWidget *button, + gpointer *value); +void rcm_switch_to_radians_over_PI (GtkWidget *button, + gpointer *value); -void rcm_switch_to_radians(GtkWidget *button, gpointer *value); -void rcm_switch_to_radians_over_PI(GtkWidget *button, gpointer *value); - -/*---------------------------------------------------------------------------*/ /* Misc: Gray: mode buttons */ -/*---------------------------------------------------------------------------*/ -void rcm_switch_to_gray_to(GtkWidget *button, gpointer *value); +void rcm_switch_to_gray_to (GtkWidget *button, + gpointer *value); +void rcm_switch_to_gray_from (GtkWidget *button, + gpointer *value); -void rcm_switch_to_gray_from(GtkWidget *button, gpointer *value); -/*---------------------------------------------------------------------------*/ /* Misc: Preview buttons */ -/*---------------------------------------------------------------------------*/ -void rcm_preview_as_you_drag(GtkWidget *button, gpointer *value); +void rcm_preview_as_you_drag (GtkWidget *button, + gpointer *value); +void rcm_selection_in_context (GtkWidget *button, + gpointer *value); +void rcm_selection (GtkWidget *button, + gpointer *value); +void rcm_entire_image (GtkWidget *button, + gpointer *value); -void rcm_selection_in_context(GtkWidget *button, gpointer *value); -void rcm_selection(GtkWidget *button, gpointer *value); - -void rcm_entire_image(GtkWidget *button, gpointer *value); - -/*---------------------------------------------------------------------------*/ /* Circle events */ -/*---------------------------------------------------------------------------*/ -gboolean rcm_expose_event(GtkWidget *widget, GdkEvent *event, - RcmCircle *circle); +gboolean rcm_expose_event (GtkWidget *widget, + GdkEvent *event, + RcmCircle *circle); +gboolean rcm_button_press_event (GtkWidget *widget, + GdkEvent *event, + RcmCircle *circle); +gboolean rcm_release_event (GtkWidget *widget, + GdkEvent *event, + RcmCircle *circle); +gboolean rcm_motion_notify_event (GtkWidget *widget, + GdkEvent *event, + RcmCircle *circle); -gboolean rcm_button_press_event(GtkWidget *widget, GdkEvent *event, - RcmCircle *circle); -gboolean rcm_release_event(GtkWidget *widget, GdkEvent *event, - RcmCircle *circle); - -gboolean rcm_motion_notify_event(GtkWidget *widget, GdkEvent *event, - RcmCircle *circle); - -/*---------------------------------------------------------------------------*/ /* Gray circle events */ -/*---------------------------------------------------------------------------*/ -gboolean rcm_gray_expose_event(GtkWidget *widget, GdkEvent *event, - RcmGray *circle); +gboolean rcm_gray_expose_event (GtkWidget *widget, + GdkEvent *event, + RcmGray *circle); +gboolean rcm_gray_button_press_event (GtkWidget *widget, + GdkEvent *event, + RcmGray *circle); +gboolean rcm_gray_release_event (GtkWidget *widget, + GdkEvent *event, + RcmGray *circle); +gboolean rcm_gray_motion_notify_event (GtkWidget *widget, + GdkEvent *event, + RcmGray *circle); -gboolean rcm_gray_button_press_event(GtkWidget *widget, GdkEvent *event, - RcmGray *circle); -gboolean rcm_gray_release_event(GtkWidget *widget, GdkEvent *event, - RcmGray *circle); - -gboolean rcm_gray_motion_notify_event(GtkWidget *widget, GdkEvent *event, - RcmGray *circle); - -/*---------------------------------------------------------------------------*/ /* Spinbuttons */ -/*---------------------------------------------------------------------------*/ -void rcm_set_alpha(GtkWidget *entry, gpointer data); - -void rcm_set_beta(GtkWidget *entry, gpointer data); - -void rcm_set_hue(GtkWidget *entry, gpointer data); - -void rcm_set_satur(GtkWidget *entry, gpointer data); - -void rcm_set_gray_sat(GtkWidget *entry, gpointer data); - -/*---------------------------------------------------------------------------*/ +void rcm_set_alpha (GtkWidget *entry, + gpointer data); +void rcm_set_beta (GtkWidget *entry, + gpointer data); +void rcm_set_hue (GtkWidget *entry, + gpointer data); +void rcm_set_satur (GtkWidget *entry, + gpointer data); +void rcm_set_gray_sat (GtkWidget *entry, + gpointer data); diff --git a/plug-ins/rcm/rcm_dialog.c b/plug-ins/rcm/rcm_dialog.c index 06dfdd61b9..abce84490a 100644 --- a/plug-ins/rcm/rcm_dialog.c +++ b/plug-ins/rcm/rcm_dialog.c @@ -46,13 +46,9 @@ #endif #undef GTK_DISABLE_DEPRECATED -#include - #include #include -#include "libgimp/stdplugins-intl.h" - #include "rcm.h" #include "rcm_misc.h" #include "rcm_gdk.h" @@ -63,10 +59,10 @@ #include "pixmaps/rcm_a_b.xpm" #include "pixmaps/rcm_cw.xpm" +#include "libgimp/stdplugins-intl.h" + -/*---------------------------------------------------------------------------*/ /* Defines */ -/*---------------------------------------------------------------------------*/ #define INITIAL_ALPHA 0 #define INITIAL_BETA G_PI_2 @@ -81,9 +77,8 @@ GDK_BUTTON1_MOTION_MASK | \ GDK_POINTER_MOTION_HINT_MASK -/*---------------------------------------------------------------------------*/ + /* Previews: create one preview */ -/*---------------------------------------------------------------------------*/ static void rcm_create_one_preview (GtkWidget **preview, @@ -91,21 +86,19 @@ rcm_create_one_preview (GtkWidget **preview, gint previewWidth, gint previewHeight) { - *frame = gtk_frame_new(NULL); - gtk_frame_set_shadow_type(GTK_FRAME(*frame), GTK_SHADOW_IN); - gtk_container_set_border_width(GTK_CONTAINER(*frame), 0); - gtk_widget_show(*frame); + *frame = gtk_frame_new (NULL); + gtk_frame_set_shadow_type (GTK_FRAME (*frame), GTK_SHADOW_IN); + gtk_widget_show (*frame); - *preview = gtk_preview_new(GTK_PREVIEW_COLOR); + *preview = gtk_preview_new (GTK_PREVIEW_COLOR); - gtk_preview_size(GTK_PREVIEW(*preview), previewWidth, previewHeight); - gtk_widget_show(*preview); - gtk_container_add(GTK_CONTAINER(*frame), *preview); + gtk_preview_size (GTK_PREVIEW (*preview), previewWidth, previewHeight); + gtk_container_add (GTK_CONTAINER (*frame), *preview); + gtk_widget_show (*preview); } -/*---------------------------------------------------------------------------*/ + /* Previews */ -/*---------------------------------------------------------------------------*/ static GtkWidget* rcm_create_previews (void) @@ -153,9 +146,8 @@ rcm_create_previews (void) return frame; } -/*---------------------------------------------------------------------------*/ + /* Main: Create one pixmap button */ -/*---------------------------------------------------------------------------*/ static void rcm_create_pixmap_button (GtkWidget **label, @@ -168,84 +160,84 @@ rcm_create_pixmap_button (GtkWidget **label, gint pos) { /* create button */ - *xpm_button = gtk_button_new(); + *xpm_button = gtk_button_new (); g_signal_connect (*xpm_button, "clicked", callback, data); - gtk_widget_show(*xpm_button); + gtk_widget_show (*xpm_button); - gtk_table_attach(GTK_TABLE(parent), *xpm_button, - 0, 1, pos, pos+1, GTK_EXPAND|GTK_FILL, GTK_FILL, 4, 2); + gtk_table_attach (GTK_TABLE (parent), *xpm_button, + 0, 1, pos, pos + 1, + GTK_EXPAND | GTK_FILL, GTK_FILL, 4, 2); /* create hbox */ - *label_box = gtk_hbox_new(FALSE, 0); - gtk_widget_show(*label_box); + *label_box = gtk_hbox_new (FALSE, 0); + gtk_widget_show (*label_box); /* create label */ - *label = gtk_label_new(text); - gtk_widget_show(*label); + *label = gtk_label_new (text); + gtk_widget_show (*label); /* put label and pixmap in hbox */ - gtk_box_pack_end(GTK_BOX(*label_box), *label, TRUE, FALSE, 0); + gtk_box_pack_end (GTK_BOX (*label_box), *label, TRUE, FALSE, 0); /* create hbox in button */ - gtk_container_add(GTK_CONTAINER(*xpm_button), *label_box); + gtk_container_add (GTK_CONTAINER (*xpm_button), *label_box); } -/*---------------------------------------------------------------------------*/ + /* Set buttons pixmaps */ -/*---------------------------------------------------------------------------*/ static void rcm_set_pixmaps (RcmCircle *circle) { - rcm_set_pixmap(&circle->cw_ccw_pixmap, circle->cw_ccw_button->parent, circle->cw_ccw_box, rcm_cw_xpm); - rcm_set_pixmap(&circle->a_b_pixmap, circle->a_b_button->parent, circle->a_b_box, rcm_a_b_xpm); - rcm_set_pixmap(&circle->f360_pixmap, circle->f360_button->parent, circle->f360_box, rcm_360_xpm); + rcm_set_pixmap (&circle->cw_ccw_pixmap, circle->cw_ccw_button->parent, + circle->cw_ccw_box, rcm_cw_xpm); + rcm_set_pixmap (&circle->a_b_pixmap, circle->a_b_button->parent, + circle->a_b_box, rcm_a_b_xpm); + rcm_set_pixmap (&circle->f360_pixmap, circle->f360_button->parent, + circle->f360_box, rcm_360_xpm); } -/*---------------------------------------------------------------------------*/ + /* Main: One circles with values and buttons */ -/*---------------------------------------------------------------------------*/ static RcmCircle* rcm_create_one_circle (gint height, gchar *label_content) { - GtkWidget *frame, *button_table, *legend_table; - GtkWidget *label, *label_box, *xpm_button, *entry; + GtkWidget *frame, *button_table, *legend_table; + GtkWidget *label, *label_box, *xpm_button, *entry; GtkAdjustment *adj; - RcmCircle *st; + RcmCircle *st; - st = g_new(RcmCircle, 1); + st = g_new (RcmCircle, 1); - st->action_flag = VIRGIN; - st->angle = g_new(RcmAngle, 1); - st->angle->alpha = INITIAL_ALPHA; - st->angle->beta = INITIAL_BETA; + st->action_flag = VIRGIN; + st->angle = g_new (RcmAngle, 1); + st->angle->alpha = INITIAL_ALPHA; + st->angle->beta = INITIAL_BETA; st->angle->cw_ccw = 1; /** Main: Circle: create (main) frame **/ - st->frame = gtk_frame_new(label_content); - gtk_container_set_border_width(GTK_CONTAINER(st->frame), 0); - gtk_widget_show(st->frame); + st->frame = gtk_frame_new (label_content); + gtk_widget_show (st->frame); /** Main: Circle: create frame & preview **/ /* create frame */ - frame = gtk_frame_new(NULL); - gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN); - gtk_container_set_border_width(GTK_CONTAINER(frame), 0); - gtk_widget_show(frame); + frame = gtk_frame_new (NULL); + gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN); + gtk_widget_show (frame); /* create preview */ - st->preview = gtk_preview_new(GTK_PREVIEW_COLOR); - gtk_preview_size(GTK_PREVIEW(st->preview), height, height); - gtk_widget_show(st->preview); - gtk_container_add(GTK_CONTAINER(frame), st->preview); + st->preview = gtk_preview_new (GTK_PREVIEW_COLOR); + gtk_preview_size (GTK_PREVIEW (st->preview), height, height); + gtk_container_add (GTK_CONTAINER (frame), st->preview); + gtk_widget_show (st->preview); /* set signals */ - gtk_widget_set_events(st->preview, RANGE_ADJUST_MASK); + gtk_widget_set_events (st->preview, RANGE_ADJUST_MASK); g_signal_connect_after (st->preview, "expose_event", G_CALLBACK (rcm_expose_event), @@ -263,46 +255,48 @@ rcm_create_one_circle (gint height, G_CALLBACK (rcm_motion_notify_event), st); - rcm_render_circle(st->preview, SUM, MARGIN); + rcm_render_circle (st->preview, SUM, MARGIN); /** Main: Circle: create table for buttons **/ - button_table = gtk_table_new(3, 1, FALSE); - gtk_widget_show(button_table); + button_table = gtk_table_new (3, 1, FALSE); + gtk_widget_show (button_table); /** Main: Circle: Buttons **/ - rcm_create_pixmap_button(&label, &xpm_button, &label_box, - G_CALLBACK (rcm_cw_ccw), st, - (st->angle->cw_ccw>0) ? - _("Switch to clockwise") : _("Switch to c/clockwise"), - button_table, 0); + rcm_create_pixmap_button (&label, &xpm_button, &label_box, + G_CALLBACK (rcm_cw_ccw), st, + (st->angle->cw_ccw>0) ? + _("Switch to clockwise") : _("Switch to c/clockwise"), + button_table, 0); + st->cw_ccw_pixmap = NULL; st->cw_ccw_button = xpm_button; - st->cw_ccw_box = label_box; - st->cw_ccw_label = label; + st->cw_ccw_box = label_box; + st->cw_ccw_label = label; - rcm_create_pixmap_button(&label, &xpm_button, &label_box, - G_CALLBACK (rcm_a_to_b), st, - _("Change order of arrows"), button_table, 1); + rcm_create_pixmap_button (&label, &xpm_button, &label_box, + G_CALLBACK (rcm_a_to_b), st, + _("Change order of arrows"), button_table, 1); st->a_b_pixmap = NULL; - st->a_b_box = label_box; + st->a_b_box = label_box; st->a_b_button = xpm_button; - rcm_create_pixmap_button(&label, &xpm_button, &label_box, - G_CALLBACK (rcm_360_degrees), st, - _("Select all"), button_table, 2); + rcm_create_pixmap_button (&label, &xpm_button, &label_box, + G_CALLBACK (rcm_360_degrees), st, + _("Select all"), button_table, 2); + st->f360_pixmap = NULL; - st->f360_box = label_box; + st->f360_box = label_box; st->f360_button = xpm_button; /** Main: Circle: Legend **/ - legend_table = gtk_table_new(1, 6, FALSE); - gtk_widget_show(legend_table); + legend_table = gtk_table_new (1, 6, FALSE); + gtk_widget_show (legend_table); /* spinbutton 1 */ - label = gtk_label_new(_("From")); - gtk_widget_show(label); - gtk_table_attach(GTK_TABLE(legend_table), label, 0,1, 0,1, - 0, GTK_EXPAND, 5, 5); + label = gtk_label_new (_("From")); + gtk_widget_show (label); + gtk_table_attach (GTK_TABLE (legend_table), label, 0, 1, 0, 1, + 0, GTK_EXPAND, 5, 5); st->angle->alpha = INITIAL_ALPHA; adj = (GtkAdjustment *) gtk_adjustment_new(st->angle->alpha, 0.0, 2.0, 0.0001, 0.001, 0.0); @@ -318,58 +312,57 @@ rcm_create_one_circle (gint height, /* label */ st->alpha_units_label = gtk_label_new(rcm_units_string(Current.Units)); - gtk_widget_show(st->alpha_units_label); + gtk_widget_show (st->alpha_units_label); - gtk_table_attach(GTK_TABLE(legend_table), st->alpha_units_label, 2, 3, 0, 1, - 0, GTK_EXPAND, 4, 4); + gtk_table_attach (GTK_TABLE (legend_table), st->alpha_units_label, 2, 3, 0, 1, + 0, GTK_EXPAND, 4, 4); /* spinbutton 2 */ - label = gtk_label_new(_("To")); - gtk_widget_show(label); - gtk_table_attach(GTK_TABLE(legend_table), label, 3,4, 0,1, - 0, GTK_EXPAND, 4, 4); + label = gtk_label_new (_("To")); + gtk_widget_show (label); + gtk_table_attach (GTK_TABLE (legend_table), label, 3,4, 0,1, + 0, GTK_EXPAND, 4, 4); st->angle->beta = INITIAL_BETA; adj = (GtkAdjustment *) gtk_adjustment_new(st->angle->beta, 0.0, 2.0, 0.0001, 0.001, 0.0); - st->beta_entry = entry = gtk_spin_button_new(adj, 0.01, 4); - gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(entry), TRUE); - gtk_table_attach(GTK_TABLE(legend_table), entry, 4,5, 0,1, - GTK_EXPAND|GTK_FILL, GTK_EXPAND, 2, 4); - gtk_widget_show(entry); + st->beta_entry = entry = gtk_spin_button_new (adj, 0.01, 4); + gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (entry), TRUE); + gtk_table_attach (GTK_TABLE (legend_table), entry, 4,5, 0,1, + GTK_EXPAND|GTK_FILL, GTK_EXPAND, 2, 4); + gtk_widget_show (entry); g_signal_connect (entry, "changed", G_CALLBACK (rcm_set_beta), st); /* label */ - st->beta_units_label = gtk_label_new(rcm_units_string(Current.Units)); - gtk_widget_show(st->beta_units_label); + st->beta_units_label = gtk_label_new (rcm_units_string (Current.Units)); + gtk_widget_show (st->beta_units_label); - gtk_table_attach(GTK_TABLE(legend_table), st->beta_units_label, 5,6, 0,1, - 0, GTK_EXPAND, 4, 4); + gtk_table_attach (GTK_TABLE (legend_table), st->beta_units_label, 5,6, 0,1, + 0, GTK_EXPAND, 4, 4); /* Main: Circle: create table for Preview / Buttons / Legend */ - st->table= gtk_table_new(2, 2, FALSE); - gtk_widget_show(st->table); + st->table= gtk_table_new (2, 2, FALSE); + gtk_widget_show (st->table); - gtk_table_attach(GTK_TABLE(st->table), frame, 0, 1, 0, 1, - 0, GTK_EXPAND, 4, 0); + gtk_table_attach (GTK_TABLE (st->table), frame, 0, 1, 0, 1, + 0, GTK_EXPAND, 4, 0); - gtk_table_attach(GTK_TABLE(st->table), button_table, 1, 2, 0, 1, - 0, GTK_EXPAND, 2, 0); + gtk_table_attach (GTK_TABLE (st->table), button_table, 1, 2, 0, 1, + 0, GTK_EXPAND, 2, 0); - gtk_table_attach(GTK_TABLE(st->table), legend_table, 0, 2, 1, 2, - GTK_EXPAND|GTK_FILL, GTK_EXPAND, 0, 2); + gtk_table_attach (GTK_TABLE (st->table), legend_table, 0, 2, 1, 2, + GTK_EXPAND | GTK_FILL, GTK_EXPAND, 0, 2); /* add table to (main) frame */ - gtk_container_add(GTK_CONTAINER(st->frame), st->table); + gtk_container_add (GTK_CONTAINER (st->frame), st->table); return st; } -/*---------------------------------------------------------------------------*/ + /* Main */ -/*---------------------------------------------------------------------------*/ static GtkWidget* rcm_create_main (void) @@ -391,9 +384,8 @@ rcm_create_main (void) return vbox; } -/*---------------------------------------------------------------------------*/ + /* Misc: Gray */ -/*---------------------------------------------------------------------------*/ static RcmGray* rcm_create_gray (void) @@ -404,8 +396,8 @@ rcm_create_gray (void) GtkWidget *label, *entry; GtkWidget *gray_sat_frame; GtkWidget *radio_box, *button; - GSList *group = NULL; - RcmGray *st; + GSList *group = NULL; + RcmGray *st; GtkAdjustment *adj; st = g_new (RcmGray, 1); @@ -531,7 +523,7 @@ rcm_create_gray (void) &(Current.Gray_to_from)); /** Gray: What is gray? **/ - gray_sat_frame = gtk_frame_new(_("What is Gray?")); + gray_sat_frame = gtk_frame_new (_("What is Gray?")); gtk_widget_show (gray_sat_frame); table = gtk_table_new (1, 3, FALSE); @@ -539,7 +531,7 @@ rcm_create_gray (void) gtk_container_set_border_width (GTK_CONTAINER (table), 4); gtk_widget_show (table); - label = gtk_label_new(_("Saturation")); + label = gtk_label_new (_("Saturation")); gtk_widget_show (label); gtk_table_attach (GTK_TABLE (table), label, 0, 1, 0, 1, GTK_EXPAND | GTK_FILL, GTK_EXPAND, 0, 0); @@ -600,9 +592,8 @@ rcm_create_gray (void) return st; } -/*----------------------------------------------------------------------------*/ + /* Misc */ -/*----------------------------------------------------------------------------*/ static GtkWidget * rcm_create_misc (void) @@ -751,9 +742,8 @@ rcm_create_misc (void) return table; } -/*---------------------------------------------------------------------------*/ + /* create and call main dialog */ -/*---------------------------------------------------------------------------*/ gint rcm_dialog (void) @@ -770,7 +760,7 @@ rcm_dialog (void) /* Create dialog */ dlg = gimp_dialog_new (_("Colormap Rotation"), "rcm", NULL, 0, - gimp_standard_help_func, "filters/rcm.html", + gimp_standard_help_func, "plug-in-rotate-colormap", GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_OK, diff --git a/plug-ins/rcm/rcm_dialog.h b/plug-ins/rcm/rcm_dialog.h index bd158770f3..7cd6dd4263 100644 --- a/plug-ins/rcm/rcm_dialog.h +++ b/plug-ins/rcm/rcm_dialog.h @@ -24,9 +24,9 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*----------------------------------------------------------------------------------- +/*---------------------------------------------------------------------------- * Change log: - * + * * Version 2.0, 04 April 1999. * Nearly complete rewrite, made plug-in stable. * (Works with GIMP 1.1 and GTK+ 1.2) @@ -34,18 +34,14 @@ * Version 1.0, 27 March 1997. * Initial (unstable) release by Pavel Grinfeld * - *-----------------------------------------------------------------------------------*/ + *----------------------------------------------------------------------------*/ + -/*-----------------------------------------------------------------------------------*/ /* Global defines */ -/*-----------------------------------------------------------------------------------*/ #define MAX_PREVIEW_SIZE 150 -/*-----------------------------------------------------------------------------------*/ + /* Procedures */ -/*-----------------------------------------------------------------------------------*/ -gint rcm_dialog(); - -/*-----------------------------------------------------------------------------------*/ +gint rcm_dialog (void); diff --git a/plug-ins/rcm/rcm_gdk.c b/plug-ins/rcm/rcm_gdk.c index 1dc50f8dd8..18c97f77e2 100644 --- a/plug-ins/rcm/rcm_gdk.c +++ b/plug-ins/rcm/rcm_gdk.c @@ -24,9 +24,9 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*----------------------------------------------------------------------------------- +/*---------------------------------------------------------------------------- * Change log: - * + * * Version 2.0, 04 April 1999. * Nearly complete rewrite, made plug-in stable. * (Works with GIMP 1.1 and GTK+ 1.2) @@ -34,135 +34,130 @@ * Version 1.0, 27 March 1997. * Initial (unstable) release by Pavel Grinfeld * - *-----------------------------------------------------------------------------------*/ + *----------------------------------------------------------------------------*/ #include "config.h" #include #include -#include -#include #include +#include #include "rcm.h" #include "rcm_misc.h" #include "rcm_dialog.h" #include "rcm_gdk.h" -/*-----------------------------------------------------------------------------------*/ + /* Global variables */ -/*-----------------------------------------------------------------------------------*/ GdkGC *xor_gc; -/*-----------------------------------------------------------------------------------*/ /* Drawing routines */ -/*-----------------------------------------------------------------------------------*/ -void -rcm_draw_little_circle (GdkWindow *window, - GdkGC *color, - float hue, - float satur) +void +rcm_draw_little_circle (GdkWindow *window, + GdkGC *color, + gfloat hue, + gfloat satur) { - int x,y; + gint x,y; x = GRAY_CENTER + GRAY_RADIUS * satur * cos(hue); y = GRAY_CENTER - GRAY_RADIUS * satur * sin(hue); - gdk_draw_arc(window, color, 0, x-LITTLE_RADIUS, y-LITTLE_RADIUS, - 2*LITTLE_RADIUS, 2*LITTLE_RADIUS, 0, 360*64); + gdk_draw_arc (window, color, 0, x-LITTLE_RADIUS, y-LITTLE_RADIUS, + 2*LITTLE_RADIUS, 2*LITTLE_RADIUS, 0, 360*64); } -/*-----------------------------------------------------------------------------------*/ - -void -rcm_draw_large_circle (GdkWindow *window, - GdkGC *color, - float gray_sat) +void +rcm_draw_large_circle (GdkWindow *window, + GdkGC *color, + gfloat gray_sat) { - int x, y; + gint x, y; x = GRAY_CENTER; y = GRAY_CENTER; - gdk_draw_arc(window, color, 0, - ROUND (x - GRAY_RADIUS * gray_sat), - ROUND (y - GRAY_RADIUS * gray_sat), - ROUND (2 * GRAY_RADIUS * gray_sat), - ROUND (2 * GRAY_RADIUS * gray_sat), - 0, 360 * 64); + gdk_draw_arc (window, color, 0, + ROUND (x - GRAY_RADIUS * gray_sat), + ROUND (y - GRAY_RADIUS * gray_sat), + ROUND (2 * GRAY_RADIUS * gray_sat), + ROUND (2 * GRAY_RADIUS * gray_sat), + 0, 360 * 64); } -/*-----------------------------------------------------------------------------------*/ #define REL .8 #define DEL .1 #define TICK 10 -void -rcm_draw_arrows (GdkWindow *window, - GdkGC *color, +void +rcm_draw_arrows (GdkWindow *window, + GdkGC *color, RcmAngle *angle) { - int dist; - float alpha, beta, cw_ccw, delta; - - alpha = angle->alpha; - beta = angle->beta; + gint dist; + gfloat alpha, beta, cw_ccw, delta; + + alpha = angle->alpha; + beta = angle->beta; cw_ccw = angle->cw_ccw; - delta = angle_mod_2PI(beta - alpha); - if (cw_ccw == -1) delta = delta - TP; + delta = angle_mod_2PI(beta - alpha); - gdk_draw_line(window,color, - CENTER, - CENTER, - ROUND (CENTER + RADIUS * cos(alpha)), - ROUND (CENTER - RADIUS * sin(alpha))); + if (cw_ccw == -1) + delta = delta - TP; - gdk_draw_line(window,color, - CENTER + RADIUS * cos(alpha), - CENTER - RADIUS * sin(alpha), - ROUND (CENTER + RADIUS * REL * cos(alpha - DEL)), - ROUND (CENTER - RADIUS * REL * sin(alpha - DEL))); + gdk_draw_line (window,color, + CENTER, + CENTER, + ROUND (CENTER + RADIUS * cos(alpha)), + ROUND (CENTER - RADIUS * sin(alpha))); - gdk_draw_line(window,color, - CENTER + RADIUS * cos(alpha), - CENTER - RADIUS * sin(alpha), - ROUND (CENTER + RADIUS * REL * cos(alpha + DEL)), - ROUND (CENTER - RADIUS * REL * sin(alpha + DEL))); + gdk_draw_line( window,color, + CENTER + RADIUS * cos(alpha), + CENTER - RADIUS * sin(alpha), + ROUND (CENTER + RADIUS * REL * cos(alpha - DEL)), + ROUND (CENTER - RADIUS * REL * sin(alpha - DEL))); - gdk_draw_line(window,color, - CENTER, - CENTER, - ROUND (CENTER + RADIUS * cos(beta)), - ROUND (CENTER - RADIUS * sin(beta))); + gdk_draw_line (window,color, + CENTER + RADIUS * cos(alpha), + CENTER - RADIUS * sin(alpha), + ROUND (CENTER + RADIUS * REL * cos(alpha + DEL)), + ROUND (CENTER - RADIUS * REL * sin(alpha + DEL))); - gdk_draw_line(window,color, - CENTER + RADIUS * cos(beta), - CENTER - RADIUS * sin(beta), - ROUND (CENTER + RADIUS * REL * cos(beta - DEL)), - ROUND (CENTER - RADIUS * REL * sin(beta - DEL))); + gdk_draw_line (window,color, + CENTER, + CENTER, + ROUND (CENTER + RADIUS * cos(beta)), + ROUND (CENTER - RADIUS * sin(beta))); - gdk_draw_line(window,color, - CENTER + RADIUS * cos(beta), - CENTER - RADIUS * sin(beta), - ROUND (CENTER + RADIUS * REL * cos(beta + DEL)), - ROUND (CENTER - RADIUS * REL * sin(beta + DEL))); + gdk_draw_line (window,color, + CENTER + RADIUS * cos(beta), + CENTER - RADIUS * sin(beta), + ROUND (CENTER + RADIUS * REL * cos(beta - DEL)), + ROUND (CENTER - RADIUS * REL * sin(beta - DEL))); + + gdk_draw_line (window,color, + CENTER + RADIUS * cos(beta), + CENTER - RADIUS * sin(beta), + ROUND (CENTER + RADIUS * REL * cos(beta + DEL)), + ROUND (CENTER - RADIUS * REL * sin(beta + DEL))); dist = RADIUS * EACH_OR_BOTH; - gdk_draw_line(window,color, - CENTER + dist * cos(beta), - CENTER - dist * sin(beta), - ROUND (CENTER + dist * cos(beta) + cw_ccw * TICK * sin(beta)), - ROUND (CENTER - dist * sin(beta) + cw_ccw * TICK * cos(beta))); + gdk_draw_line (window,color, + CENTER + dist * cos(beta), + CENTER - dist * sin(beta), + ROUND (CENTER + dist * cos(beta) + cw_ccw * TICK * sin(beta)), + ROUND (CENTER - dist * sin(beta) + cw_ccw * TICK * cos(beta))); alpha *= 180 * 64 / G_PI; delta *= 180 * 64 / G_PI; - gdk_draw_arc(window, color, 0, CENTER - dist, CENTER - dist, + gdk_draw_arc (window, color, 0, CENTER - dist, CENTER - dist, 2*dist, 2*dist, alpha, delta); } diff --git a/plug-ins/rcm/rcm_gdk.h b/plug-ins/rcm/rcm_gdk.h index 92267aef31..7285978a35 100644 --- a/plug-ins/rcm/rcm_gdk.h +++ b/plug-ins/rcm/rcm_gdk.h @@ -24,9 +24,9 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*----------------------------------------------------------------------------------- +/*---------------------------------------------------------------------------- * Change log: - * + * * Version 2.0, 04 April 1999. * Nearly complete rewrite, made plug-in stable. * (Works with GIMP 1.1 and GTK+ 1.2) @@ -34,11 +34,10 @@ * Version 1.0, 27 March 1997. * Initial (unstable) release by Pavel Grinfeld * - *-----------------------------------------------------------------------------------*/ + *----------------------------------------------------------------------------*/ + -/*-----------------------------------------------------------------------------------*/ /* Global defines */ -/*-----------------------------------------------------------------------------------*/ #define RADIUS 60 #define MARGIN 4 @@ -54,18 +53,19 @@ #define EACH_OR_BOTH 0.3 -/*-----------------------------------------------------------------------------------*/ + /* Global variables */ -/*-----------------------------------------------------------------------------------*/ extern GdkGC *xor_gc; -/*-----------------------------------------------------------------------------------*/ -void rcm_draw_little_circle(GdkWindow *window, GdkGC *color, float hue, float satur); - -void rcm_draw_large_circle(GdkWindow *window, GdkGC *color, float gray_sat); - -void rcm_draw_arrows(GdkWindow *window, GdkGC *color, RcmAngle *angle); - -/*-----------------------------------------------------------------------------------*/ +void rcm_draw_little_circle (GdkWindow *window, + GdkGC *color, + gfloat hue, + gfloat satur); +void rcm_draw_large_circle (GdkWindow *window, + GdkGC *color, + gfloat gray_sat); +void rcm_draw_arrows (GdkWindow *window, + GdkGC *color, + RcmAngle *angle); diff --git a/plug-ins/rcm/rcm_misc.c b/plug-ins/rcm/rcm_misc.c index 306beb5283..f90fad5247 100644 --- a/plug-ins/rcm/rcm_misc.c +++ b/plug-ins/rcm/rcm_misc.c @@ -24,7 +24,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*----------------------------------------------------------------------------------- +/*---------------------------------------------------------------------------- * Change log: * * Version 2.0, 04 April 1999. @@ -34,13 +34,12 @@ * Version 1.0, 27 March 1997. * Initial (unstable) release by Pavel Grinfeld * - *-----------------------------------------------------------------------------------*/ + *----------------------------------------------------------------------------*/ #include "config.h" #include #include -#include #ifdef __GNUC__ #warning GTK_DISABLE_DEPRECATED @@ -68,10 +67,10 @@ min_prox (float alpha, float beta, float angle) { - gfloat temp1 = MIN(angle_mod_2PI(alpha - angle), - TP-angle_mod_2PI(alpha - angle)); - gfloat temp2 = MIN(angle_mod_2PI(beta - angle), - TP-angle_mod_2PI(beta - angle)); + gfloat temp1 = MIN (angle_mod_2PI (alpha - angle), + TP - angle_mod_2PI (alpha - angle)); + gfloat temp2 = MIN (angle_mod_2PI (beta - angle), + TP - angle_mod_2PI (beta - angle)); return MIN(temp1, temp2); } @@ -81,13 +80,13 @@ closest (float *alpha, float *beta, float angle) { - float temp_alpha = MIN(angle_mod_2PI(*alpha-angle), - TP-angle_mod_2PI(*alpha-angle)); + gfloat temp_alpha = MIN (angle_mod_2PI (*alpha-angle), + TP - angle_mod_2PI (*alpha-angle)); - float temp_beta = MIN(angle_mod_2PI(*beta -angle), - TP-angle_mod_2PI(*beta -angle)); + gfloat temp_beta = MIN (angle_mod_2PI (*beta -angle), + TP - angle_mod_2PI (*beta -angle)); - if (temp_alpha-temp_beta<0) + if (temp_alpha-temp_beta < 0) return alpha; else return beta; @@ -104,9 +103,8 @@ angle_mod_2PI (float angle) return angle; } -/*-----------------------------------------------------------------------------------*/ + /* supporting routines */ -/*-----------------------------------------------------------------------------------*/ float rcm_linear (float A, @@ -116,19 +114,23 @@ rcm_linear (float A, float x) { if (B > A) - if (A<=x && x<=B) - return C+(D-C)/(B-A)*(x-A); - else if (A<=x+TP && x+TP<=B) - return C+(D-C)/(B-A)*(x+TP-A); - else - return x; + { + if (A<=x && x<=B) + return C+(D-C)/(B-A)*(x-A); + else if (A<=x+TP && x+TP<=B) + return C+(D-C)/(B-A)*(x+TP-A); + else + return x; + } else - if (B<=x && x<=A) - return C+(D-C)/(B-A)*(x-A); - else if (B<=x+TP && x+TP<=A) - return C+(D-C)/(B-A)*(x+TP-A); - else - return x; + { + if (B<=x && x<=A) + return C+(D-C)/(B-A)*(x-A); + else if (B<=x+TP && x+TP<=A) + return C+(D-C)/(B-A)*(x+TP-A); + else + return x; + } } float @@ -139,10 +141,13 @@ rcm_left_end (RcmAngle *angle) gint cw_ccw = angle->cw_ccw; switch (cw_ccw) - { - case (-1): if (alpha < beta) return alpha + TP; - default: return alpha; /* 1 */ - } + { + case (-1): + if (alpha < beta) return alpha + TP; + + default: + return alpha; /* 1 */ + } } float @@ -153,18 +158,21 @@ rcm_right_end (RcmAngle *angle) gint cw_ccw = angle->cw_ccw; switch (cw_ccw) - { - case 1: if (beta < alpha) return beta + TP; - default: return beta; /* -1 */ - } + { + case 1: + if (beta < alpha) return beta + TP; + + default: + return beta; /* -1 */ + } } float rcm_angle_inside_slice (float angle, RcmAngle *slice) { - return angle_mod_2PI(slice->cw_ccw * (slice->beta-angle)) / - angle_mod_2PI(slice->cw_ccw * (slice->beta-slice->alpha)); + return angle_mod_2PI (slice->cw_ccw * (slice->beta-angle)) / + angle_mod_2PI (slice->cw_ccw * (slice->beta-slice->alpha)); } gboolean @@ -173,9 +181,8 @@ rcm_is_gray (float s) return (s <= Current.Gray->gray_sat); } -/*-----------------------------------------------------------------------------------*/ + /* reduce image/selection for preview */ -/*-----------------------------------------------------------------------------------*/ ReducedImage* rcm_reduce_image (GimpDrawable *drawable, @@ -183,22 +190,22 @@ rcm_reduce_image (GimpDrawable *drawable, gint LongerSize, gint Slctn) { - guint32 gimage; - GimpPixelRgn srcPR, srcMask; + guint32 gimage; + GimpPixelRgn srcPR, srcMask; ReducedImage *temp; - guchar *tempRGB, *src_row, *tempmask, *src_mask_row; - gint i, j, whichcol, whichrow, x1, x2, y1, y2; - gint RH, RW, width, height, bytes; - gint NoSelectionMade; - gint offx, offy; - gdouble *tempHSV, H, S, V; + guchar *tempRGB, *src_row, *tempmask, *src_mask_row; + gint i, j, whichcol, whichrow, x1, x2, y1, y2; + gint RH, RW, width, height, bytes; + gint NoSelectionMade; + gint offx, offy; + gdouble *tempHSV, H, S, V; bytes = drawable->bpp; temp = g_new0 (ReducedImage, 1); /* get bounds of image or selection */ - gimp_drawable_mask_bounds(drawable->drawable_id, &x1, &y1, &x2, &y2); + gimp_drawable_mask_bounds (drawable->drawable_id, &x1, &y1, &x2, &y2); if (((x2-x1) != drawable->width) || ((y2-y1) != drawable->height)) NoSelectionMade = FALSE; @@ -206,7 +213,7 @@ rcm_reduce_image (GimpDrawable *drawable, NoSelectionMade = TRUE; switch (Slctn) - { + { case ENTIRE_IMAGE: x1 = 0; x2 = drawable->width; @@ -223,7 +230,7 @@ rcm_reduce_image (GimpDrawable *drawable, default: break; /* take selection dimensions */ - } + } /* clamp to image size since this is the size of the mask */ @@ -244,15 +251,15 @@ rcm_reduce_image (GimpDrawable *drawable, return temp; if (width > height) - { - RW = LongerSize; - RH = (float) height * (float) LongerSize / (float) width; - } + { + RW = LongerSize; + RH = (float) height * (float) LongerSize / (float) width; + } else - { - RH = LongerSize; - RW = (float)width * (float) LongerSize / (float) height; - } + { + RH = LongerSize; + RW = (float)width * (float) LongerSize / (float) height; + } /* allocate memory */ @@ -269,52 +276,50 @@ rcm_reduce_image (GimpDrawable *drawable, /* reduce image */ - for (i=0; iwidth = RW; + temp->width = RW; temp->height = RH; - temp->rgb = tempRGB; - temp->hsv = tempHSV; - temp->mask = tempmask; + temp->rgb = tempRGB; + temp->hsv = tempHSV; + temp->mask = tempmask; return temp; } -/*-----------------------------------------------------------------------------------*/ + /* render before/after preview */ -/*-----------------------------------------------------------------------------------*/ static gint rcm_fake_transparency (gint i, @@ -331,12 +336,12 @@ rcm_render_preview (GtkWidget *preview, gint version) { ReducedImage *reduced; - gint RW, RH, bytes, i, j, k, unchanged, skip; - guchar *rgb_array, *a; - gdouble H, S, V; - gdouble *hsv_array; - guchar rgb[3]; - float degree, transp; + gint RW, RH, bytes, i, j, k, unchanged, skip; + guchar *rgb_array, *a; + gdouble H, S, V; + gdouble *hsv_array; + guchar rgb[3]; + gfloat degree, transp; /* init some variables */ @@ -352,114 +357,111 @@ rcm_render_preview (GtkWidget *preview, a = g_new (guchar, bytes * RW); if (version == CURRENT) - { - for (i=0; imask[i*RW+j] != 0)) - { - switch (Current.Gray_to_from) - { - case GRAY_FROM: - if (rcm_angle_inside_slice(Current.Gray->hue, Current.From->angle) <= 1) - { - H = Current.Gray->hue/TP; - S = Current.Gray->satur; - } - else - skip = 1; - break; + if (rcm_is_gray(S) && (reduced->mask[i*RW+j] != 0)) + { + switch (Current.Gray_to_from) + { + case GRAY_FROM: + if (rcm_angle_inside_slice (Current.Gray->hue, + Current.From->angle) <= 1) + { + H = Current.Gray->hue/TP; + S = Current.Gray->satur; + } + else + skip = 1; + break; - case GRAY_TO: - unchanged = 0; - skip = 1; - gimp_hsv_to_rgb4 (rgb, Current.Gray->hue/TP, Current.Gray->satur, V); - break; + case GRAY_TO: + unchanged = 0; + skip = 1; + gimp_hsv_to_rgb4 (rgb, Current.Gray->hue/TP, Current.Gray->satur, V); + break; - default: break; - } /* switch */ - } /* if */ + default: + break; + } + } - if (!skip) - { - unchanged = 0; - H = rcm_linear(rcm_left_end(Current.From->angle), - rcm_right_end(Current.From->angle), - rcm_left_end(Current.To->angle), - rcm_right_end(Current.To->angle), - H*TP); + if (!skip) + { + unchanged = 0; + H = rcm_linear (rcm_left_end (Current.From->angle), + rcm_right_end (Current.From->angle), + rcm_left_end (Current.To->angle), + rcm_right_end (Current.To->angle), + H * TP); - H = angle_mod_2PI(H) / TP; - gimp_hsv_to_rgb4 (rgb, H,S,V); - } /* if (!skip) */ + H = angle_mod_2PI(H) / TP; + gimp_hsv_to_rgb4 (rgb, H,S,V); + } - if (unchanged)degree = 0; - else - degree = reduced->mask[i*RW+j] / 255.0; + if (unchanged) + degree = 0; + else + degree = reduced->mask[i*RW+j] / 255.0; - a[j*3+0] = (1-degree) * rgb_array[i*RW*bytes + j*bytes + 0] + degree * rgb[0]; - a[j*3+1] = (1-degree) * rgb_array[i*RW*bytes + j*bytes + 1] + degree * rgb[1]; - a[j*3+2] = (1-degree) * rgb_array[i*RW*bytes + j*bytes + 2] + degree * rgb[2]; + a[j*3+0] = (1-degree) * rgb_array[i*RW*bytes + j*bytes + 0] + degree * rgb[0]; + a[j*3+1] = (1-degree) * rgb_array[i*RW*bytes + j*bytes + 1] + degree * rgb[1]; + a[j*3+2] = (1-degree) * rgb_array[i*RW*bytes + j*bytes + 2] + degree * rgb[2]; - /* apply transparency */ - if (bytes == 4) - { - for (k=0; k<3; k++) - { - /* transp = reduced->mask[i*RW*bytes+j*bytes+3] / 255.0; */ - transp = rgb_array[i*RW*bytes+j*bytes+3] / 255.0; - a[3*j+k] = transp * a[3*j+k] + (1-transp) * rcm_fake_transparency(i,j); - } + /* apply transparency */ + if (bytes == 4) + { + for (k = 0; k < 3; k++) + { + /* transp = reduced->mask[i*RW*bytes+j*bytes+3] / 255.0; */ + transp = rgb_array[i*RW*bytes+j*bytes+3] / 255.0; + a[3*j+k] = transp * a[3*j+k] + (1-transp) * rcm_fake_transparency(i,j); + } + } + } - } /* if */ - - } /* for j */ - - gtk_preview_draw_row(GTK_PREVIEW(preview), a, 0, i, RW); - - } /* for i */ - } + gtk_preview_draw_row (GTK_PREVIEW (preview), a, 0, i, RW); + } + } else /* ORIGINAL */ - { - for (i=0; i 1) - { - a[i*3+0] = 255; - a[i*3+1] = 255; - a[i*3+2] = 255; - } - else - { - h = arctg (sum / 2.0 - j, i - sum / 2.0) / (2 * G_PI); - v = 1 - sqrt (s) / 4; - gimp_hsv_to_rgb4 (&a[i*3], h, s, v); - } + for (i = 0; i < sum; i++) + { + s = sqrt ((SQR (i - sum / 2.0) + SQR (j - sum / 2.0)) / (float) SQR (sum / 2.0 - margin)); + if (s > 1) + { + a[i*3+0] = 255; + a[i*3+1] = 255; + a[i*3+2] = 255; + } + else + { + h = arctg (sum / 2.0 - j, i - sum / 2.0) / (2 * G_PI); + v = 1 - sqrt (s) / 4; + gimp_hsv_to_rgb4 (&a[i*3], h, s, v); + } + } + + gtk_preview_draw_row (GTK_PREVIEW (preview), a, 0, j, sum); } - gtk_preview_draw_row(GTK_PREVIEW(preview), a, 0, j, sum); - } g_free (a); gtk_widget_queue_draw (preview); diff --git a/plug-ins/rcm/rcm_misc.h b/plug-ins/rcm/rcm_misc.h index 9e14404c3b..ac00f30bf3 100644 --- a/plug-ins/rcm/rcm_misc.h +++ b/plug-ins/rcm/rcm_misc.h @@ -24,9 +24,9 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*----------------------------------------------------------------------------------- +/*---------------------------------------------------------------------------- * Change log: - * + * * Version 2.0, 04 April 1999. * Nearly complete rewrite, made plug-in stable. * (Works with GIMP 1.1 and GTK+ 1.2) @@ -34,44 +34,45 @@ * Version 1.0, 27 March 1997. * Initial (unstable) release by Pavel Grinfeld * - *-----------------------------------------------------------------------------------*/ + *----------------------------------------------------------------------------*/ + -/*-----------------------------------------------------------------------------------*/ /* Global defines */ -/*-----------------------------------------------------------------------------------*/ #define SWAP(X,Y) {float t=X; X=Y; Y=t;} -/*-----------------------------------------------------------------------------------*/ + /* used in 'rcm_callback.c' and 'rcm_dialog.c' */ -/*-----------------------------------------------------------------------------------*/ -float arctg(float y, float x); +float arctg (gfloat y, + gfloat x); +float min_prox (gfloat alpha, + gfloat beta, + gfloat angle); +float *closest (gfloat *alpha, + gfloat *beta, + gfloat angle); +float angle_mod_2PI (gfloat angle); +ReducedImage *rcm_reduce_image (GimpDrawable *, + GimpDrawable *, + gint , + gint ); +void rcm_render_preview (GtkWidget *, + gint); +void rcm_render_circle (GtkWidget *preview, + gint sum, + gint margin); -float min_prox(float alpha, float beta, float angle); -float *closest(float *alpha, float *beta, float angle); - -float angle_mod_2PI(float angle); - -ReducedImage *rcm_reduce_image(GimpDrawable *, GimpDrawable *, gint, gint); - -void rcm_render_preview(GtkWidget *, gint); - -void rcm_render_circle(GtkWidget *preview, int sum, int margin); - -/*-----------------------------------------------------------------------------------*/ /* only used in 'rcm.c' (or local) */ -/*-----------------------------------------------------------------------------------*/ -float rcm_angle_inside_slice(float angle, RcmAngle *slice); - -gint rcm_is_gray(float s); - -float rcm_linear(float, float, float, float, float); - -float rcm_left_end(RcmAngle *angle); - -float rcm_right_end(RcmAngle *angle); - -/*-----------------------------------------------------------------------------------*/ +float rcm_angle_inside_slice (float angle, + RcmAngle *slice); +gint rcm_is_gray (float s); +float rcm_linear (float, + float, + float, + float, + float); +float rcm_left_end (RcmAngle *angle); +float rcm_right_end (RcmAngle *angle);