From f70caa9cc54d41e632932ef9be147b23f603fa93 Mon Sep 17 00:00:00 2001 From: Sven Neumann Date: Mon, 24 May 2004 22:01:56 +0000 Subject: [PATCH] plug-ins/rcm/rcm.h rearranged and HIG-ified dialog. 2004-05-24 Sven Neumann * plug-ins/rcm/rcm.h * plug-ins/rcm/rcm_dialog.[ch]: rearranged and HIG-ified dialog. --- ChangeLog | 5 + plug-ins/rcm/rcm.h | 37 ++-- plug-ins/rcm/rcm_dialog.c | 447 ++++++++++++++++---------------------- plug-ins/rcm/rcm_dialog.h | 2 +- 4 files changed, 217 insertions(+), 274 deletions(-) diff --git a/ChangeLog b/ChangeLog index 12804d3ba7..ed4549d3f2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2004-05-24 Sven Neumann + + * plug-ins/rcm/rcm.h + * plug-ins/rcm/rcm_dialog.[ch]: rearranged and HIG-ified dialog. + 2004-05-24 Michael Natterer * app/widgets/gimptoolbox.c (toolbox_create_tools): added an evil diff --git a/plug-ins/rcm/rcm.h b/plug-ins/rcm/rcm.h index 37229d7aab..1f2b6afe9d 100644 --- a/plug-ins/rcm/rcm.h +++ b/plug-ins/rcm/rcm.h @@ -53,15 +53,15 @@ typedef enum { VIRGIN, DRAG_START, DRAGING, DO_NOTHING } RcmOp; typedef struct { - float alpha; - float beta; - int cw_ccw; + gfloat alpha; + gfloat beta; + gint cw_ccw; } RcmAngle; typedef struct { - gint width; - gint height; + gint width; + gint height; guchar *rgb; gdouble *hsv; guchar *mask; @@ -87,10 +87,10 @@ typedef struct GtkWidget *beta_entry; GtkWidget *beta_units_label; gfloat *target; - gint mode; + gint mode; RcmAngle *angle; - RcmOp action_flag; - gfloat prev_clicked; + RcmOp action_flag; + gfloat prev_clicked; } RcmCircle; typedef struct @@ -105,24 +105,23 @@ typedef struct { GtkWidget *preview; GtkWidget *frame; - float gray_sat; - float hue; - float satur; - GtkWidget *gray_sat_entry; + gfloat gray_sat; + gfloat hue; + gfloat satur; GtkWidget *hue_entry; GtkWidget *hue_units_label; GtkWidget *satur_entry; - RcmOp action_flag; + RcmOp action_flag; } RcmGray; typedef struct { - gint Slctn; - gint RealTime; - gint Units; - gint Gray_to_from; - GimpDrawable *drawable; - GimpDrawable *mask; + gint Slctn; + gint RealTime; + gint Units; + gint Gray_to_from; + GimpDrawable *drawable; + GimpDrawable *mask; ReducedImage *reduced; RcmCircle *To; RcmCircle *From; diff --git a/plug-ins/rcm/rcm_dialog.c b/plug-ins/rcm/rcm_dialog.c index fe8182ebe4..e0cc2c1eb2 100644 --- a/plug-ins/rcm/rcm_dialog.c +++ b/plug-ins/rcm/rcm_dialog.c @@ -100,50 +100,82 @@ rcm_create_one_preview (GtkWidget **preview, /* Previews */ -static GtkWidget* +static GtkWidget * rcm_create_previews (void) { - GtkWidget *frame, *blabel, *alabel, *bframe, *aframe, *table; + GtkWidget *top_vbox; + GtkWidget *vbox; + GtkWidget *frame; + GtkWidget *hbox; + GtkWidget *label; + GtkWidget *button; + GtkWidget *combo; - /* Previews: create the previews */ + top_vbox = gtk_vbox_new (FALSE, 12); - rcm_create_one_preview (&Current.Bna->before, &bframe, + vbox = gtk_vbox_new (FALSE, 6); + gtk_box_pack_start (GTK_BOX (top_vbox), vbox, TRUE, TRUE, 0); + gtk_widget_show (vbox); + + label = gtk_label_new (_("Original")); + gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); + gtk_widget_show (label); + + rcm_create_one_preview (&Current.Bna->before, &frame, Current.reduced->width, Current.reduced->height); - - rcm_create_one_preview (&Current.Bna->after, &aframe, - Current.reduced->width, Current.reduced->height); - - /* Previews: frame */ - frame = gtk_frame_new (_("Preview")); - - alabel = gtk_label_new (_("Rotated")); - gtk_widget_show (alabel); - - blabel = gtk_label_new (_("Original")); - gtk_widget_show (blabel); - - table = gtk_table_new (4, 1, FALSE); - gtk_container_set_border_width (GTK_CONTAINER (table), 4); - gtk_table_set_col_spacings (GTK_TABLE (table), 4); - - gtk_container_add (GTK_CONTAINER (frame), table); - - gtk_table_attach (GTK_TABLE (table), blabel, 0, 1, 0, 1, - GTK_EXPAND, GTK_EXPAND | GTK_FILL, 0, 0); - - gtk_table_attach (GTK_TABLE (table), bframe, 0, 1, 1, 2, - GTK_EXPAND, GTK_EXPAND, 0, 0); - - gtk_table_attach (GTK_TABLE (table), alabel, 0, 1, 2, 3, - GTK_EXPAND, GTK_EXPAND | GTK_FILL, 0, 0); - - gtk_table_attach (GTK_TABLE (table), aframe, 0, 1, 3, 4, - GTK_EXPAND, GTK_EXPAND, 0, 0); - - gtk_widget_show (table); + gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0); gtk_widget_show (frame); - return frame; + vbox = gtk_vbox_new (FALSE, 6); + gtk_box_pack_start (GTK_BOX (top_vbox), vbox, TRUE, TRUE, 0); + gtk_widget_show (vbox); + + label = gtk_label_new (_("Rotated")); + gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); + gtk_widget_show (label); + + rcm_create_one_preview (&Current.Bna->after, &frame, + Current.reduced->width, Current.reduced->height); + gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0); + gtk_widget_show (frame); + + vbox = gtk_vbox_new (FALSE, 6); + gtk_box_pack_start (GTK_BOX (top_vbox), vbox, FALSE, FALSE, 0); + gtk_widget_show (vbox); + + button = gtk_check_button_new_with_label (_("Continuous update")); + gtk_box_pack_start(GTK_BOX (vbox), button, FALSE, FALSE, 0); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), Current.RealTime); + gtk_widget_show (button); + + g_signal_connect (button, "clicked", + G_CALLBACK (rcm_preview_as_you_drag), + &(Current.RealTime)); + + hbox = gtk_hbox_new (FALSE, 6); + gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); + gtk_widget_show (hbox); + + label = gtk_label_new (_("Area:")); + gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0); + gtk_widget_show (label); + + combo = gimp_int_combo_box_new (_("Entire Layer"), ENTIRE_IMAGE, + _("Selection"), SELECTION, + _("Context"), SELECTION_IN_CONTEXT, + NULL); + gimp_int_combo_box_set_active (GIMP_INT_COMBO_BOX (combo), Current.Slctn); + + gtk_box_pack_start (GTK_BOX (hbox), combo, TRUE, TRUE, 0); + gtk_widget_show (combo); + + g_signal_connect (combo, "changed", + G_CALLBACK (rcm_combo_callback), + NULL); + + gtk_widget_show (top_vbox); + + return top_vbox; } @@ -151,7 +183,7 @@ rcm_create_previews (void) static void rcm_create_pixmap_button (GtkWidget **label, - GtkWidget **xpm_button, + GtkWidget **button, GtkWidget **label_box, GCallback callback, gpointer data, @@ -160,13 +192,13 @@ rcm_create_pixmap_button (GtkWidget **label, gint pos) { /* create button */ - *xpm_button = gtk_button_new (); - g_signal_connect (*xpm_button, "clicked", + *button = gtk_button_new (); + g_signal_connect (*button, "clicked", callback, data); - gtk_widget_show (*xpm_button); + gtk_widget_show (*button); - gtk_table_attach (GTK_TABLE (parent), *xpm_button, + gtk_table_attach (GTK_TABLE (parent), *button, 0, 1, pos, pos + 1, GTK_EXPAND | GTK_FILL, GTK_FILL, 4, 2); @@ -182,7 +214,7 @@ rcm_create_pixmap_button (GtkWidget **label, 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 (*button), *label_box); } @@ -207,7 +239,7 @@ rcm_create_one_circle (gint height, gchar *label_content) { GtkWidget *frame, *button_table, *legend_table; - GtkWidget *label, *label_box, *xpm_button, *entry; + GtkWidget *label, *label_box, *button, *entry; GtkAdjustment *adj; RcmCircle *st; @@ -220,7 +252,7 @@ rcm_create_one_circle (gint height, st->angle->cw_ccw = 1; /** Main: Circle: create (main) frame **/ - st->frame = gtk_frame_new (label_content); + st->frame = gimp_frame_new (label_content); gtk_widget_show (st->frame); /** Main: Circle: create frame & preview **/ @@ -262,31 +294,31 @@ rcm_create_one_circle (gint height, gtk_widget_show (button_table); /** Main: Circle: Buttons **/ - rcm_create_pixmap_button (&label, &xpm_button, &label_box, + rcm_create_pixmap_button (&label, &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_button = button; st->cw_ccw_box = label_box; st->cw_ccw_label = label; - rcm_create_pixmap_button (&label, &xpm_button, &label_box, + rcm_create_pixmap_button (&label, &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_button = xpm_button; + st->a_b_button = button; - rcm_create_pixmap_button (&label, &xpm_button, &label_box, + rcm_create_pixmap_button (&label, &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_button = xpm_button; + st->f360_button = button; /** Main: Circle: Legend **/ legend_table = gtk_table_new (1, 6, FALSE); @@ -311,10 +343,11 @@ rcm_create_one_circle (gint height, st); /* label */ - st->alpha_units_label = gtk_label_new(rcm_units_string(Current.Units)); + st->alpha_units_label = gtk_label_new (rcm_units_string (Current.Units)); gtk_widget_show (st->alpha_units_label); - gtk_table_attach (GTK_TABLE (legend_table), st->alpha_units_label, 2, 3, 0, 1, + gtk_table_attach (GTK_TABLE (legend_table), + st->alpha_units_label, 2, 3, 0, 1, 0, GTK_EXPAND, 4, 4); /* spinbutton 2 */ @@ -324,7 +357,8 @@ rcm_create_one_circle (gint height, 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); + 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, @@ -364,7 +398,7 @@ rcm_create_one_circle (gint height, /* Main */ -static GtkWidget* +static GtkWidget * rcm_create_main (void) { GtkWidget *vbox; @@ -372,54 +406,68 @@ rcm_create_main (void) Current.From = rcm_create_one_circle (SUM, _("From")); Current.To = rcm_create_one_circle (SUM, _("To")); - vbox = gtk_vbox_new (FALSE, 4); + vbox = gtk_vbox_new (FALSE, 12); + gtk_container_set_border_width (GTK_CONTAINER (vbox), 12); + gtk_widget_show (vbox); gtk_box_pack_start (GTK_BOX (vbox), Current.From->frame, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (vbox), Current.To->frame, FALSE, FALSE, 0); - gtk_widget_show (vbox); - return vbox; } /* Misc: Gray */ -static RcmGray* +static GtkWidget * rcm_create_gray (void) { - GtkWidget *frame, *preview, *as_or_to_frame; - GtkWidget *table, *previewframe, *legend_table; - GtkWidget *mini_table; - GtkWidget *label, *entry; - GtkWidget *gray_sat_frame; - GtkWidget *radio_box, *button; + GtkWidget *top_vbox, *vbox; + GtkWidget *frame, *preview; + GtkWidget *table; + GtkWidget *entry; + GtkWidget *radio_box; + GtkWidget *hbox; + GtkWidget *label; + GtkWidget *button; GSList *group = NULL; RcmGray *st; GtkAdjustment *adj; - st = g_new (RcmGray, 1); + Current.Gray = st = g_new (RcmGray, 1); st->hue = 0; st->satur = 0; st->action_flag = VIRGIN; - /** Gray **/ - st->frame = frame = gtk_frame_new (_("Gray")); + top_vbox = gtk_vbox_new (FALSE, 12); + gtk_container_set_border_width (GTK_CONTAINER (top_vbox), 12); + gtk_widget_show (top_vbox); + + frame = gimp_frame_new (_("Gray")); + gtk_box_pack_start (GTK_BOX (top_vbox), frame, FALSE, FALSE, 0); gtk_widget_show (frame); - /* Gray: Circle: Circle (Preview) */ - previewframe = gtk_frame_new (NULL); - gtk_frame_set_shadow_type (GTK_FRAME (previewframe), GTK_SHADOW_IN); - gtk_widget_show (previewframe); + vbox = gtk_vbox_new (FALSE, 6); + gtk_container_add (GTK_CONTAINER (frame), vbox); + gtk_widget_show (vbox); + + hbox = gtk_hbox_new (FALSE, 0); + gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); + gtk_widget_show (hbox); + + frame = gtk_frame_new (NULL); + gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN); + gtk_box_pack_start (GTK_BOX (hbox), frame, FALSE, FALSE, 0); + gtk_widget_show (frame); st->preview = preview = gtk_preview_new (GTK_PREVIEW_COLOR); gtk_preview_size (GTK_PREVIEW (preview), GRAY_SUM, GRAY_SUM); + gtk_container_add (GTK_CONTAINER (frame), preview); gtk_widget_show (preview); - gtk_container_add (GTK_CONTAINER (previewframe), preview); - gtk_widget_set_events (preview, RANGE_ADJUST_MASK); + gtk_widget_add_events (preview, RANGE_ADJUST_MASK); g_signal_connect_after (preview, "expose_event", G_CALLBACK (rcm_gray_expose_event), @@ -438,24 +486,26 @@ rcm_create_gray (void) st); /* Gray: Circle: Legend */ - legend_table = gtk_table_new (2, 3, FALSE); - gtk_table_set_col_spacings (GTK_TABLE (legend_table), 4); - gtk_table_set_row_spacings (GTK_TABLE (legend_table), 2); - gtk_widget_show (legend_table); + table = gtk_table_new (2, 3, FALSE); + gtk_box_pack_start (GTK_BOX (vbox), table, FALSE, FALSE, 0); + gtk_table_set_col_spacings (GTK_TABLE (table), 6); + gtk_table_set_row_spacings (GTK_TABLE (table), 6); + gtk_widget_show (table); /* Gray: Circle: Spinbutton 1 */ label = gtk_label_new(_("Hue:")); - gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5); - gtk_table_attach (GTK_TABLE (legend_table), label, 0, 1, 0, 1, + gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); + gtk_table_attach (GTK_TABLE (table), label, 0, 1, 0, 1, GTK_FILL, GTK_FILL, 0, 0); gtk_widget_show (label); st->hue = INITIAL_GRAY_HUE; - adj = (GtkAdjustment *) gtk_adjustment_new (st->hue, 0.0, 2.0, 0.0001, 0.001, 0.0); + adj = (GtkAdjustment *) gtk_adjustment_new (st->hue, + 0.0, 2.0, 0.0001, 0.001, 0.0); st->hue_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, 1, 2, 0, 1, - GTK_EXPAND | GTK_FILL, GTK_EXPAND, 0, 0); + gtk_table_attach (GTK_TABLE (table), entry, 1, 2, 0, 1, + GTK_FILL, GTK_FILL, 0, 0); gtk_widget_show (entry); g_signal_connect (entry, "changed", @@ -465,23 +515,24 @@ rcm_create_gray (void) /* Gray: Circle: units label */ st->hue_units_label = gtk_label_new (rcm_units_string (Current.Units)); gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); - gtk_table_attach (GTK_TABLE (legend_table), st->hue_units_label, 2, 3, 0, 1, - GTK_EXPAND, GTK_EXPAND, 0, 0); + gtk_table_attach (GTK_TABLE (table), st->hue_units_label, 2, 3, 0, 1, + GTK_FILL, GTK_FILL, 0, 0); gtk_widget_show (st->hue_units_label); /* Gray: Circle: Spinbutton 2 */ label = gtk_label_new (_("Saturation:")); gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5); - gtk_table_attach (GTK_TABLE (legend_table), label, 0, 1, 1, 2, + gtk_table_attach (GTK_TABLE (table), label, 0, 1, 1, 2, GTK_FILL, GTK_FILL, 0, 0); gtk_widget_show (label); st->satur = INITIAL_GRAY_SAT; - adj = (GtkAdjustment *) gtk_adjustment_new (st->satur, 0.0, 1.0, 0.0001, 0.001, 0.0); + adj = (GtkAdjustment *) gtk_adjustment_new (st->satur, + 0.0, 1.0, 0.0001, 0.001, 0.0); st->satur_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, 1, 2, 1, 2, - GTK_EXPAND | GTK_FILL, GTK_EXPAND, 0, 2); + gtk_table_attach (GTK_TABLE (table), entry, 1, 2, 1, 2, + GTK_FILL, GTK_FILL, 0, 2); gtk_widget_show (entry); g_signal_connect (entry, "changed", @@ -489,12 +540,12 @@ rcm_create_gray (void) st); /** Gray: Operation-Mode **/ - as_or_to_frame = gtk_frame_new (_("Mode")); - gtk_widget_show (as_or_to_frame); + frame = gimp_frame_new (_("Gray Mode")); + gtk_box_pack_start (GTK_BOX (top_vbox), frame, FALSE, FALSE, 0); + gtk_widget_show (frame); - radio_box = gtk_vbox_new (FALSE, 2); - gtk_container_add (GTK_CONTAINER (as_or_to_frame), radio_box); - gtk_container_set_border_width (GTK_CONTAINER (radio_box), 4); + radio_box = gtk_vbox_new (FALSE, 6); + gtk_container_add (GTK_CONTAINER (frame), radio_box); gtk_widget_show (radio_box); /* Gray: Operation-Mode: two radio buttons */ @@ -523,105 +574,60 @@ rcm_create_gray (void) &(Current.Gray_to_from)); /** Gray: What is gray? **/ - gray_sat_frame = gtk_frame_new (_("What is Gray?")); - gtk_widget_show (gray_sat_frame); + frame = gimp_frame_new (_("Gray Threshold")); + gtk_box_pack_start (GTK_BOX (top_vbox), frame, FALSE, FALSE, 0); + gtk_widget_show (frame); - table = gtk_table_new (1, 3, FALSE); - gtk_table_set_col_spacings (GTK_TABLE (table), 4); - gtk_container_set_border_width (GTK_CONTAINER (table), 4); - gtk_widget_show (table); + hbox = gtk_hbox_new (FALSE, 6); + gtk_container_add (GTK_CONTAINER (frame), hbox); + gtk_widget_show (hbox); label = gtk_label_new (_("Saturation")); + gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0); gtk_widget_show (label); - gtk_table_attach (GTK_TABLE (table), label, 0, 1, 0, 1, - GTK_EXPAND | GTK_FILL, GTK_EXPAND, 0, 0); - - label = gtk_label_new ("<="); - gtk_widget_show (label); - gtk_table_attach (GTK_TABLE (table), label, 1, 2, 0, 1, - GTK_EXPAND | GTK_FILL, GTK_EXPAND, 0, 0); st->gray_sat = INITIAL_GRAY_RSAT; - adj = (GtkAdjustment *) gtk_adjustment_new (st->gray_sat, 0.0, 1.0, 0.0001, 0.001, 0.0); + adj = (GtkAdjustment *) gtk_adjustment_new (st->gray_sat, + 0.0, 1.0, 0.0001, 0.001, 0.0); - st->gray_sat_entry = entry = gtk_spin_button_new (adj, 0.01, 4); - gtk_table_attach (GTK_TABLE (table), entry, 2, 3, 0, 1, - GTK_EXPAND | GTK_FILL, GTK_EXPAND, 0, 0); + entry = gtk_spin_button_new (adj, 0.01, 4); + gtk_box_pack_start (GTK_BOX (hbox), entry, FALSE, FALSE, 0); gtk_widget_show (entry); g_signal_connect (entry, "changed", G_CALLBACK (rcm_set_gray_sat), st); - gtk_container_add (GTK_CONTAINER (gray_sat_frame), table); - - /** add all frames to table **/ - - /* add preview and legend to table */ - mini_table = gtk_table_new (2, 1, FALSE); - gtk_table_set_row_spacings (GTK_TABLE (mini_table), 4); - gtk_widget_show (mini_table); - - gtk_table_attach (GTK_TABLE (mini_table), previewframe, 0, 1, 0, 1, - GTK_SHRINK, GTK_SHRINK, 0, 0); - - gtk_table_attach (GTK_TABLE (mini_table), legend_table, 0, 1, 1, 2, - GTK_SHRINK, GTK_SHRINK, 0, 0); - - /* add mini_table & two frames to table */ - table = gtk_table_new (2, 2, FALSE); - gtk_table_set_col_spacings (GTK_TABLE (table), 4); - gtk_table_set_row_spacings (GTK_TABLE (table), 4); - gtk_container_set_border_width (GTK_CONTAINER (table), 4); - gtk_widget_show (table); - - gtk_table_attach (GTK_TABLE (table), mini_table, 0, 1, 0, 2, - GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); - - gtk_table_attach (GTK_TABLE (table), as_or_to_frame, 1, 2, 0, 1, - GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); - - gtk_table_attach (GTK_TABLE (table), gray_sat_frame, 1, 2, 1, 2, - GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); - - gtk_container_add (GTK_CONTAINER (frame), table); - /* update circle (preview) */ rcm_render_circle (preview, GRAY_SUM, GRAY_MARGIN); - return st; + return top_vbox; } /* Misc */ static GtkWidget * -rcm_create_misc (void) +rcm_create_units (void) { - GtkWidget *label, *table; - GtkWidget *units_frame, *units_vbox; - GtkWidget *preview_frame, *preview_vbox; - GtkWidget *hbox; - GtkWidget *combo; + GtkWidget *frame; + GtkWidget *vbox; GtkWidget *button; - GSList *units_group = NULL; - - /** Misc: Gray circle **/ - Current.Gray = rcm_create_gray (); + GSList *group = NULL; /** Misc: Used unit selection **/ - units_frame = gtk_frame_new (_("Units")); - gtk_widget_show (units_frame); + frame = gimp_frame_new (_("Units")); + gtk_container_set_border_width (GTK_CONTAINER (frame), 12); + gtk_widget_show (frame); - units_vbox = gtk_vbox_new (FALSE, 2); - gtk_container_add (GTK_CONTAINER (units_frame), units_vbox); - gtk_container_set_border_width (GTK_CONTAINER (units_vbox), 4); - gtk_widget_show (units_vbox); + vbox = gtk_vbox_new (FALSE, 6); + gtk_container_add (GTK_CONTAINER (frame), vbox); + gtk_widget_show (vbox); /* Misc: Used unit selection: 3 radio buttons */ - button = gtk_radio_button_new_with_label (units_group, _("Radians")); - units_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (button)); - gtk_box_pack_start (GTK_BOX (units_vbox), button, FALSE, FALSE, 0); + button = gtk_radio_button_new_with_label (group, _("Radians")); + group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (button)); + gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0); gtk_widget_show (button); if (Current.Units == RADIANS) @@ -631,9 +637,9 @@ rcm_create_misc (void) G_CALLBACK (rcm_switch_to_radians), NULL); - button = gtk_radio_button_new_with_label (units_group, _("Radians/Pi")); - units_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (button)); - gtk_box_pack_start (GTK_BOX (units_vbox), button, FALSE, FALSE, 0); + button = gtk_radio_button_new_with_label (group, _("Radians/Pi")); + group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (button)); + gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0); gtk_widget_show (button); if (Current.Units == RADIANS_OVER_PI) @@ -643,8 +649,8 @@ rcm_create_misc (void) G_CALLBACK (rcm_switch_to_radians_over_PI), NULL); - button = gtk_radio_button_new_with_label (units_group, _("Degrees")); - gtk_box_pack_start (GTK_BOX (units_vbox), button, FALSE, FALSE, 0); + button = gtk_radio_button_new_with_label (group, _("Degrees")); + gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0); gtk_widget_show (button); if (Current.Units == DEGREES) @@ -654,77 +660,17 @@ rcm_create_misc (void) G_CALLBACK (rcm_switch_to_degrees), NULL); - /** Misc: Preview settings **/ - - /* Misc: Preview settings: Continuous update ?! */ - preview_frame = gtk_frame_new (_("Preview")); - preview_vbox = gtk_vbox_new (FALSE, 4); - gtk_container_set_border_width (GTK_CONTAINER (preview_vbox), 4); - gtk_widget_show (preview_vbox); - - gtk_container_add (GTK_CONTAINER (preview_frame), preview_vbox); - gtk_widget_show (preview_frame); - - button = gtk_check_button_new_with_label (_("Continuous update")); - gtk_box_pack_start(GTK_BOX(preview_vbox), button, FALSE, FALSE, 0); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), Current.RealTime); - gtk_widget_show (button); - - g_signal_connect (button, "clicked", - G_CALLBACK (rcm_preview_as_you_drag), - &(Current.RealTime)); - - /* Misc: Preview settings: Area */ - hbox = gtk_hbox_new (FALSE, 4); - gtk_widget_show (hbox); - gtk_box_pack_start (GTK_BOX (preview_vbox), hbox, FALSE, FALSE, 4); - - label = gtk_label_new (_("Area:")); - gtk_widget_show (label); - gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0); - - - combo = gimp_int_combo_box_new (_("Entire Layer"), ENTIRE_IMAGE, - _("Selection"), SELECTION, - _("Context"), SELECTION_IN_CONTEXT, - NULL); - gimp_int_combo_box_set_active (GIMP_INT_COMBO_BOX (combo), Current.Slctn); - - g_signal_connect (combo, "changed", - G_CALLBACK (rcm_combo_callback), - NULL); - - gtk_box_pack_start (GTK_BOX (hbox), combo, FALSE, FALSE, 0); - gtk_widget_show (combo); - - table = gtk_table_new (2, 2, FALSE); - gtk_table_set_col_spacings (GTK_TABLE (table), 4); - gtk_table_set_row_spacings (GTK_TABLE (table), 4); - gtk_container_set_border_width (GTK_CONTAINER (table), 4); - - /** add frames (gray/preview/units) to table **/ - gtk_table_attach (GTK_TABLE (table), Current.Gray->frame, 0, 2, 0, 1, - GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0); - - gtk_table_attach (GTK_TABLE (table), preview_frame, 0, 1, 1, 2, - GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0); - - gtk_table_attach (GTK_TABLE (table), units_frame, 1, 2, 1, 2, - GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0); - - gtk_widget_show (table); - - return table; + return frame; } /* create and call main dialog */ -gint +gboolean rcm_dialog (void) { - GtkWidget *table, *dlg, *hbox, *notebook; - GtkWidget *previews, *mains, *miscs; + GtkWidget *dlg, *hbox, *notebook; + GtkWidget *previews; gboolean run; Current.Bna = g_new (RcmBna, 1); @@ -748,21 +694,15 @@ rcm_dialog (void) Current.reduced = rcm_reduce_image (Current.drawable, Current.mask, MAX_PREVIEW_SIZE, Current.Slctn); - previews = rcm_create_previews (); - mains = rcm_create_main (); - miscs = rcm_create_misc (); - Current.Bna->bna_frame = previews; - - rcm_render_preview (Current.Bna->before, ORIGINAL); - rcm_render_preview (Current.Bna->after, CURRENT); + Current.Bna->bna_frame = previews = rcm_create_previews (); /* H-Box */ - hbox = gtk_hbox_new (FALSE, 6); - gtk_container_set_border_width (GTK_CONTAINER (hbox), 6); - gtk_box_pack_start (GTK_BOX (GTK_DIALOG(dlg)->vbox), hbox, TRUE, TRUE, 0); + hbox = gtk_hbox_new (FALSE, 12); + gtk_container_set_border_width (GTK_CONTAINER (hbox), 12); + gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dlg)->vbox), hbox, TRUE, TRUE, 0); gtk_widget_show (hbox); - gtk_box_pack_start (GTK_BOX(hbox), previews, TRUE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (hbox), previews, TRUE, TRUE, 0); /* Notebook */ notebook = gtk_notebook_new (); @@ -770,21 +710,20 @@ rcm_dialog (void) gtk_box_pack_start (GTK_BOX (hbox), notebook, TRUE, TRUE, 0); gtk_widget_show (notebook); - table = gtk_table_new (1, 2, FALSE); - gtk_container_set_border_width (GTK_CONTAINER (table), 4); - gtk_widget_show (table); + gtk_notebook_append_page (GTK_NOTEBOOK (notebook), rcm_create_main (), + gtk_label_new (_("Main Options"))); - gtk_table_attach (GTK_TABLE (table), mains, 1, 2, 0, 1, - GTK_EXPAND | GTK_FILL, GTK_EXPAND|GTK_FILL, 0, 0); + gtk_notebook_append_page (GTK_NOTEBOOK (notebook), rcm_create_gray (), + gtk_label_new (_("Gray Options"))); - gtk_notebook_append_page (GTK_NOTEBOOK (notebook), table, - gtk_label_new (_("Main"))); - - gtk_notebook_append_page (GTK_NOTEBOOK (notebook), miscs, - gtk_label_new (_("Misc"))); + gtk_notebook_append_page (GTK_NOTEBOOK (notebook), rcm_create_units (), + gtk_label_new (_("Units"))); gtk_widget_show (dlg); + rcm_render_preview (Current.Bna->before, ORIGINAL); + rcm_render_preview (Current.Bna->after, CURRENT); + rcm_set_pixmaps (Current.From); rcm_set_pixmaps (Current.To); diff --git a/plug-ins/rcm/rcm_dialog.h b/plug-ins/rcm/rcm_dialog.h index 7cd6dd4263..f398134e4b 100644 --- a/plug-ins/rcm/rcm_dialog.h +++ b/plug-ins/rcm/rcm_dialog.h @@ -44,4 +44,4 @@ /* Procedures */ -gint rcm_dialog (void); +gboolean rcm_dialog (void);