[gimp] app: peek/poke much less in GimpGradientEditor internals
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] app: peek/poke much less in GimpGradientEditor internals
- Date: Sun, 24 Jun 2018 14:00:38 +0000 (UTC)
commit 025a13b5196268c8d720ff93b86bad0ebbca7fc7
Author: Michael Natterer <mitch gimp org>
Date: Sun Jun 24 15:58:59 2018 +0200
app: peek/poke much less in GimpGradientEditor internals
Add gimp_gradient_editor_get_selection() and set_selection()
and use them in gradient-editor-commands.c
app/actions/gradient-editor-commands.c | 324 +++++++++++++++++----------------
app/widgets/gimpgradienteditor.c | 31 ++++
app/widgets/gimpgradienteditor.h | 26 ++-
3 files changed, 218 insertions(+), 163 deletions(-)
---
diff --git a/app/actions/gradient-editor-commands.c b/app/actions/gradient-editor-commands.c
index a16a242913..5e0b4a89db 100644
--- a/app/actions/gradient-editor-commands.c
+++ b/app/actions/gradient-editor-commands.c
@@ -64,36 +64,32 @@ gradient_editor_left_color_type_cmd_callback (GtkAction *action,
GtkAction *current,
gpointer data)
{
- GimpGradientEditor *editor = GIMP_GRADIENT_EDITOR (data);
- GimpGradient *gradient;
- GimpGradientColor color_type;
+ GimpGradientEditor *editor = GIMP_GRADIENT_EDITOR (data);
+ GimpGradient *gradient;
+ GimpGradientSegment *left;
+ GimpGradientColor color_type;
- gradient = GIMP_GRADIENT (GIMP_DATA_EDITOR (editor)->data);
+ gimp_gradient_editor_get_selection (editor, &gradient, &left, NULL);
color_type = gtk_radio_action_get_current_value (GTK_RADIO_ACTION (action));
if (gradient &&
color_type >= 0 &&
color_type !=
- gimp_gradient_segment_get_left_color_type (gradient,
- editor->control_sel_l))
+ gimp_gradient_segment_get_left_color_type (gradient, left))
{
GimpRGB color;
- gimp_gradient_segment_get_left_flat_color (
- gradient, GIMP_DATA_EDITOR (editor)->context, editor->control_sel_l,
- &color);
+ gimp_gradient_segment_get_left_flat_color (gradient,
+ GIMP_DATA_EDITOR (editor)->context,
+ left, &color);
gimp_data_freeze (GIMP_DATA (gradient));
- gimp_gradient_segment_set_left_color_type (gradient,
- editor->control_sel_l,
- color_type);
+ gimp_gradient_segment_set_left_color_type (gradient, left, color_type);
if (color_type == GIMP_GRADIENT_COLOR_FIXED)
- gimp_gradient_segment_set_left_color (gradient,
- editor->control_sel_l,
- &color);
+ gimp_gradient_segment_set_left_color (gradient, left, &color);
gimp_data_thaw (GIMP_DATA (gradient));
}
@@ -107,27 +103,29 @@ gradient_editor_load_left_cmd_callback (GtkAction *action,
GimpGradientEditor *editor = GIMP_GRADIENT_EDITOR (data);
GimpDataEditor *data_editor = GIMP_DATA_EDITOR (data);
GimpGradient *gradient;
+ GimpGradientSegment *left;
+ GimpGradientSegment *right;
GimpGradientSegment *seg;
GimpRGB color;
GimpGradientColor color_type = GIMP_GRADIENT_COLOR_FIXED;
- gradient = GIMP_GRADIENT (data_editor->data);
+ gimp_gradient_editor_get_selection (editor, &gradient, &left, &right);
switch (value)
{
case GRADIENT_EDITOR_COLOR_NEIGHBOR_ENDPOINT:
- if (editor->control_sel_l->prev != NULL)
- seg = editor->control_sel_l->prev;
+ if (left->prev != NULL)
+ seg = left->prev;
else
- seg = gimp_gradient_segment_get_last (editor->control_sel_l);
+ seg = gimp_gradient_segment_get_last (left);
color = seg->right_color;
color_type = seg->right_color_type;
break;
case GRADIENT_EDITOR_COLOR_OTHER_ENDPOINT:
- color = editor->control_sel_r->right_color;
- color_type = editor->control_sel_l->right_color_type;
+ color = right->right_color;
+ color_type = right->right_color_type;
break;
case GRADIENT_EDITOR_COLOR_FOREGROUND:
@@ -145,15 +143,11 @@ gradient_editor_load_left_cmd_callback (GtkAction *action,
gimp_data_freeze (GIMP_DATA (gradient));
- gimp_gradient_segment_range_blend (gradient,
- editor->control_sel_l,
- editor->control_sel_r,
+ gimp_gradient_segment_range_blend (gradient, left, right,
&color,
- &editor->control_sel_r->right_color,
+ &right->right_color,
TRUE, TRUE);
- gimp_gradient_segment_set_left_color_type (gradient,
- editor->control_sel_l,
- color_type);
+ gimp_gradient_segment_set_left_color_type (gradient, left, color_type);
gimp_data_thaw (GIMP_DATA (gradient));
}
@@ -163,12 +157,13 @@ gradient_editor_save_left_cmd_callback (GtkAction *action,
gint value,
gpointer data)
{
- GimpGradientEditor *editor = GIMP_GRADIENT_EDITOR (data);
- GimpGradient *gradient;
+ GimpGradientEditor *editor = GIMP_GRADIENT_EDITOR (data);
+ GimpGradient *gradient;
+ GimpGradientSegment *left;
- gradient = GIMP_GRADIENT (GIMP_DATA_EDITOR (editor)->data);
+ gimp_gradient_editor_get_selection (editor, &gradient, &left, NULL);
- gimp_gradient_segment_get_left_color (gradient, editor->control_sel_l,
+ gimp_gradient_segment_get_left_color (gradient, left,
&editor->saved_colors[value]);
}
@@ -186,36 +181,32 @@ gradient_editor_right_color_type_cmd_callback (GtkAction *action,
GtkAction *current,
gpointer data)
{
- GimpGradientEditor *editor = GIMP_GRADIENT_EDITOR (data);
- GimpGradient *gradient;
- GimpGradientColor color_type;
+ GimpGradientEditor *editor = GIMP_GRADIENT_EDITOR (data);
+ GimpGradient *gradient;
+ GimpGradientSegment *right;
+ GimpGradientColor color_type;
- gradient = GIMP_GRADIENT (GIMP_DATA_EDITOR (editor)->data);
+ gimp_gradient_editor_get_selection (editor, &gradient, NULL, &right);
color_type = gtk_radio_action_get_current_value (GTK_RADIO_ACTION (action));
if (gradient &&
color_type >= 0 &&
color_type !=
- gimp_gradient_segment_get_right_color_type (gradient,
- editor->control_sel_r))
+ gimp_gradient_segment_get_right_color_type (gradient, right))
{
GimpRGB color;
- gimp_gradient_segment_get_right_flat_color (
- gradient, GIMP_DATA_EDITOR (editor)->context, editor->control_sel_r,
- &color);
+ gimp_gradient_segment_get_right_flat_color (gradient,
+ GIMP_DATA_EDITOR (editor)->context,
+ right, &color);
gimp_data_freeze (GIMP_DATA (gradient));
- gimp_gradient_segment_set_right_color_type (gradient,
- editor->control_sel_r,
- color_type);
+ gimp_gradient_segment_set_right_color_type (gradient, right, color_type);
if (color_type == GIMP_GRADIENT_COLOR_FIXED)
- gimp_gradient_segment_set_right_color (gradient,
- editor->control_sel_r,
- &color);
+ gimp_gradient_segment_set_right_color (gradient, right, &color);
gimp_data_thaw (GIMP_DATA (gradient));
}
@@ -229,27 +220,29 @@ gradient_editor_load_right_cmd_callback (GtkAction *action,
GimpGradientEditor *editor = GIMP_GRADIENT_EDITOR (data);
GimpDataEditor *data_editor = GIMP_DATA_EDITOR (data);
GimpGradient *gradient;
+ GimpGradientSegment *left;
+ GimpGradientSegment *right;
GimpGradientSegment *seg;
GimpRGB color;
GimpGradientColor color_type = GIMP_GRADIENT_COLOR_FIXED;
- gradient = GIMP_GRADIENT (data_editor->data);
+ gimp_gradient_editor_get_selection (editor, &gradient, &left, &right);
switch (value)
{
case GRADIENT_EDITOR_COLOR_NEIGHBOR_ENDPOINT:
- if (editor->control_sel_r->next != NULL)
- seg = editor->control_sel_r->next;
+ if (right->next != NULL)
+ seg = right->next;
else
- seg = gimp_gradient_segment_get_first (editor->control_sel_r);
+ seg = gimp_gradient_segment_get_first (right);
color = seg->left_color;
color_type = seg->left_color_type;
break;
case GRADIENT_EDITOR_COLOR_OTHER_ENDPOINT:
- color = editor->control_sel_l->left_color;
- color_type = editor->control_sel_l->left_color_type;
+ color = left->left_color;
+ color_type = left->left_color_type;
break;
case GRADIENT_EDITOR_COLOR_FOREGROUND:
@@ -267,15 +260,11 @@ gradient_editor_load_right_cmd_callback (GtkAction *action,
gimp_data_freeze (GIMP_DATA (gradient));
- gimp_gradient_segment_range_blend (gradient,
- editor->control_sel_l,
- editor->control_sel_r,
- &editor->control_sel_l->left_color,
+ gimp_gradient_segment_range_blend (gradient, left, right,
+ &left->left_color,
&color,
TRUE, TRUE);
- gimp_gradient_segment_set_right_color_type (gradient,
- editor->control_sel_l,
- color_type);
+ gimp_gradient_segment_set_right_color_type (gradient, left, color_type);
gimp_data_thaw (GIMP_DATA (gradient));
}
@@ -285,12 +274,13 @@ gradient_editor_save_right_cmd_callback (GtkAction *action,
gint value,
gpointer data)
{
- GimpGradientEditor *editor = GIMP_GRADIENT_EDITOR (data);
- GimpGradient *gradient;
+ GimpGradientEditor *editor = GIMP_GRADIENT_EDITOR (data);
+ GimpGradient *gradient;
+ GimpGradientSegment *right;
- gradient = GIMP_GRADIENT (GIMP_DATA_EDITOR (editor)->data);
+ gimp_gradient_editor_get_selection (editor, &gradient, NULL, &right);
- gimp_gradient_segment_get_right_color (gradient, editor->control_sel_r,
+ gimp_gradient_segment_get_right_color (gradient, right,
&editor->saved_colors[value]);
}
@@ -301,10 +291,12 @@ gradient_editor_blending_func_cmd_callback (GtkAction *action,
{
GimpGradientEditor *editor = GIMP_GRADIENT_EDITOR (data);
GimpGradient *gradient;
+ GimpGradientSegment *left;
+ GimpGradientSegment *right;
GEnumClass *enum_class = NULL;
GimpGradientSegmentType type;
- gradient = GIMP_GRADIENT (GIMP_DATA_EDITOR (editor)->data);
+ gimp_gradient_editor_get_selection (editor, &gradient, &left, &right);
type = gtk_radio_action_get_current_value (GTK_RADIO_ACTION (action));
@@ -313,8 +305,7 @@ gradient_editor_blending_func_cmd_callback (GtkAction *action,
if (gradient && g_enum_get_value (enum_class, type))
{
gimp_gradient_segment_range_set_blending_function (gradient,
- editor->control_sel_l,
- editor->control_sel_r,
+ left, right,
type);
}
@@ -328,10 +319,12 @@ gradient_editor_coloring_type_cmd_callback (GtkAction *action,
{
GimpGradientEditor *editor = GIMP_GRADIENT_EDITOR (data);
GimpGradient *gradient;
+ GimpGradientSegment *left;
+ GimpGradientSegment *right;
GEnumClass *enum_class = NULL;
GimpGradientSegmentColor color;
- gradient = GIMP_GRADIENT (GIMP_DATA_EDITOR (editor)->data);
+ gimp_gradient_editor_get_selection (editor, &gradient, &left, &right);
color = gtk_radio_action_get_current_value (GTK_RADIO_ACTION (action));
@@ -340,8 +333,7 @@ gradient_editor_coloring_type_cmd_callback (GtkAction *action,
if (gradient && g_enum_get_value (enum_class, color))
{
gimp_gradient_segment_range_set_coloring_type (gradient,
- editor->control_sel_l,
- editor->control_sel_r,
+ left, right,
color);
}
@@ -352,33 +344,39 @@ void
gradient_editor_flip_cmd_callback (GtkAction *action,
gpointer data)
{
- GimpGradientEditor *editor = GIMP_GRADIENT_EDITOR (data);
- GimpGradient *gradient;
+ GimpGradientEditor *editor = GIMP_GRADIENT_EDITOR (data);
+ GimpGradient *gradient;
+ GimpGradientSegment *left;
+ GimpGradientSegment *right;
- gradient = GIMP_GRADIENT (GIMP_DATA_EDITOR (editor)->data);
+ gimp_gradient_editor_get_selection (editor, &gradient, &left, &right);
gimp_gradient_segment_range_flip (gradient,
- editor->control_sel_l,
- editor->control_sel_r,
- &editor->control_sel_l,
- &editor->control_sel_r);
+ left, right,
+ &left, &right);
+
+ gimp_gradient_editor_set_selection (editor, left, right);
}
void
gradient_editor_replicate_cmd_callback (GtkAction *action,
gpointer data)
{
- GimpGradientEditor *editor = GIMP_GRADIENT_EDITOR (data);
- GimpDataEditor *data_editor = GIMP_DATA_EDITOR (data);
- GtkWidget *dialog;
- GtkWidget *vbox;
- GtkWidget *label;
- GtkWidget *scale;
- GtkAdjustment *scale_data;
- const gchar *title;
- const gchar *desc;
-
- if (editor->control_sel_l == editor->control_sel_r)
+ GimpGradientEditor *editor = GIMP_GRADIENT_EDITOR (data);
+ GimpDataEditor *data_editor = GIMP_DATA_EDITOR (data);
+ GimpGradientSegment *left;
+ GimpGradientSegment *right;
+ GtkWidget *dialog;
+ GtkWidget *vbox;
+ GtkWidget *label;
+ GtkWidget *scale;
+ GtkAdjustment *scale_data;
+ const gchar *title;
+ const gchar *desc;
+
+ gimp_gradient_editor_get_selection (editor, NULL, &left, &right);
+
+ if (left == right)
{
title = _("Replicate Segment");
desc = _("Replicate Gradient Segment");
@@ -419,7 +417,7 @@ gradient_editor_replicate_cmd_callback (GtkAction *action,
gtk_widget_show (vbox);
/* Instructions */
- if (editor->control_sel_l == editor->control_sel_r)
+ if (left == right)
label = gtk_label_new (_("Select the number of times\n"
"to replicate the selected segment."));
else
@@ -454,34 +452,42 @@ void
gradient_editor_split_midpoint_cmd_callback (GtkAction *action,
gpointer data)
{
- GimpGradientEditor *editor = GIMP_GRADIENT_EDITOR (data);
- GimpDataEditor *data_editor = GIMP_DATA_EDITOR (data);
- GimpGradient *gradient = GIMP_GRADIENT (data_editor->data);
+ GimpGradientEditor *editor = GIMP_GRADIENT_EDITOR (data);
+ GimpDataEditor *data_editor = GIMP_DATA_EDITOR (data);
+ GimpGradient *gradient;
+ GimpGradientSegment *left;
+ GimpGradientSegment *right;
+
+ gimp_gradient_editor_get_selection (editor, &gradient, &left, &right);
gimp_gradient_segment_range_split_midpoint (gradient,
data_editor->context,
- editor->control_sel_l,
- editor->control_sel_r,
+ left, right,
editor->blend_color_space,
- &editor->control_sel_l,
- &editor->control_sel_r);
+ &left, &right);
+
+ gimp_gradient_editor_set_selection (editor, left, right);
}
void
gradient_editor_split_uniformly_cmd_callback (GtkAction *action,
gpointer data)
{
- GimpGradientEditor *editor = GIMP_GRADIENT_EDITOR (data);
- GimpDataEditor *data_editor = GIMP_DATA_EDITOR (data);
- GtkWidget *dialog;
- GtkWidget *vbox;
- GtkWidget *label;
- GtkWidget *scale;
- GtkAdjustment *scale_data;
- const gchar *title;
- const gchar *desc;
-
- if (editor->control_sel_l == editor->control_sel_r)
+ GimpGradientEditor *editor = GIMP_GRADIENT_EDITOR (data);
+ GimpDataEditor *data_editor = GIMP_DATA_EDITOR (data);
+ GimpGradientSegment *left;
+ GimpGradientSegment *right;
+ GtkWidget *dialog;
+ GtkWidget *vbox;
+ GtkWidget *label;
+ GtkWidget *scale;
+ GtkAdjustment *scale_data;
+ const gchar *title;
+ const gchar *desc;
+
+ gimp_gradient_editor_get_selection (editor, NULL, &left, &right);
+
+ if (left == right)
{
title = _("Split Segment Uniformly");
desc = _("Split Gradient Segment Uniformly");
@@ -523,7 +529,7 @@ gradient_editor_split_uniformly_cmd_callback (GtkAction *action,
gtk_widget_show (vbox);
/* Instructions */
- if (editor->control_sel_l == editor->control_sel_r)
+ if (left == right)
label = gtk_label_new (_("Select the number of uniform parts\n"
"in which to split the selected segment."));
else
@@ -558,60 +564,62 @@ void
gradient_editor_delete_cmd_callback (GtkAction *action,
gpointer data)
{
- GimpGradientEditor *editor = GIMP_GRADIENT_EDITOR (data);
- GimpGradient *gradient;
+ GimpGradientEditor *editor = GIMP_GRADIENT_EDITOR (data);
+ GimpGradient *gradient;
+ GimpGradientSegment *left;
+ GimpGradientSegment *right;
- gradient = GIMP_GRADIENT (GIMP_DATA_EDITOR (editor)->data);
+ gimp_gradient_editor_get_selection (editor, &gradient, &left, &right);
gimp_gradient_segment_range_delete (gradient,
- editor->control_sel_l,
- editor->control_sel_r,
- &editor->control_sel_l,
- &editor->control_sel_r);
+ left, right,
+ &left, &right);
+
+ gimp_gradient_editor_set_selection (editor, left, right);
}
void
gradient_editor_recenter_cmd_callback (GtkAction *action,
gpointer data)
{
- GimpGradientEditor *editor = GIMP_GRADIENT_EDITOR (data);
- GimpGradient *gradient;
+ GimpGradientEditor *editor = GIMP_GRADIENT_EDITOR (data);
+ GimpGradient *gradient;
+ GimpGradientSegment *left;
+ GimpGradientSegment *right;
- gradient = GIMP_GRADIENT (GIMP_DATA_EDITOR (editor)->data);
+ gimp_gradient_editor_get_selection (editor, &gradient, &left, &right);
- gimp_gradient_segment_range_recenter_handles (gradient,
- editor->control_sel_l,
- editor->control_sel_r);
+ gimp_gradient_segment_range_recenter_handles (gradient, left, right);
}
void
gradient_editor_redistribute_cmd_callback (GtkAction *action,
gpointer data)
{
- GimpGradientEditor *editor = GIMP_GRADIENT_EDITOR (data);
- GimpGradient *gradient;
+ GimpGradientEditor *editor = GIMP_GRADIENT_EDITOR (data);
+ GimpGradient *gradient;
+ GimpGradientSegment *left;
+ GimpGradientSegment *right;
- gradient = GIMP_GRADIENT (GIMP_DATA_EDITOR (editor)->data);
+ gimp_gradient_editor_get_selection (editor, &gradient, &left, &right);
- gimp_gradient_segment_range_redistribute_handles (gradient,
- editor->control_sel_l,
- editor->control_sel_r);
+ gimp_gradient_segment_range_redistribute_handles (gradient, left, right);
}
void
gradient_editor_blend_color_cmd_callback (GtkAction *action,
gpointer data)
{
- GimpGradientEditor *editor = GIMP_GRADIENT_EDITOR (data);
- GimpGradient *gradient;
+ GimpGradientEditor *editor = GIMP_GRADIENT_EDITOR (data);
+ GimpGradient *gradient;
+ GimpGradientSegment *left;
+ GimpGradientSegment *right;
- gradient = GIMP_GRADIENT (GIMP_DATA_EDITOR (editor)->data);
+ gimp_gradient_editor_get_selection (editor, &gradient, &left, &right);
- gimp_gradient_segment_range_blend (gradient,
- editor->control_sel_l,
- editor->control_sel_r,
- &editor->control_sel_l->left_color,
- &editor->control_sel_r->right_color,
+ gimp_gradient_segment_range_blend (gradient, left, right,
+ &left->left_color,
+ &right->right_color,
TRUE, FALSE);
}
@@ -619,16 +627,16 @@ void
gradient_editor_blend_opacity_cmd_callback (GtkAction *action,
gpointer data)
{
- GimpGradientEditor *editor = GIMP_GRADIENT_EDITOR (data);
- GimpGradient *gradient;
+ GimpGradientEditor *editor = GIMP_GRADIENT_EDITOR (data);
+ GimpGradient *gradient;
+ GimpGradientSegment *left;
+ GimpGradientSegment *right;
- gradient = GIMP_GRADIENT (GIMP_DATA_EDITOR (editor)->data);
+ gimp_gradient_editor_get_selection (editor, &gradient, &left, &right);
- gimp_gradient_segment_range_blend (gradient,
- editor->control_sel_l,
- editor->control_sel_r,
- &editor->control_sel_l->left_color,
- &editor->control_sel_r->right_color,
+ gimp_gradient_segment_range_blend (gradient, left, right,
+ &left->left_color,
+ &right->right_color,
FALSE, TRUE);
}
@@ -657,17 +665,21 @@ gradient_editor_split_uniform_response (GtkWidget *widget,
if (response_id == GTK_RESPONSE_OK)
{
- GimpDataEditor *data_editor = GIMP_DATA_EDITOR (editor);
- GimpGradient *gradient = GIMP_GRADIENT (data_editor->data);
+ GimpDataEditor *data_editor = GIMP_DATA_EDITOR (editor);
+ GimpGradient *gradient;
+ GimpGradientSegment *left;
+ GimpGradientSegment *right;
+
+ gimp_gradient_editor_get_selection (editor, &gradient, &left, &right);
gimp_gradient_segment_range_split_uniform (gradient,
data_editor->context,
- editor->control_sel_l,
- editor->control_sel_r,
+ left, right,
editor->split_parts,
editor->blend_color_space,
- &editor->control_sel_l,
- &editor->control_sel_r);
+ &left, &right);
+
+ gimp_gradient_editor_set_selection (editor, left, right);
}
}
@@ -683,13 +695,17 @@ gradient_editor_replicate_response (GtkWidget *widget,
if (response_id == GTK_RESPONSE_OK)
{
- GimpGradient *gradient = GIMP_GRADIENT (GIMP_DATA_EDITOR (editor)->data);
+ GimpGradient *gradient;
+ GimpGradientSegment *left;
+ GimpGradientSegment *right;
+
+ gimp_gradient_editor_get_selection (editor, &gradient, &left, &right);
gimp_gradient_segment_range_replicate (gradient,
- editor->control_sel_l,
- editor->control_sel_r,
+ left, right,
editor->replicate_times,
- &editor->control_sel_l,
- &editor->control_sel_r);
+ &left, &right);
+
+ gimp_gradient_editor_set_selection (editor, left, right);
}
}
diff --git a/app/widgets/gimpgradienteditor.c b/app/widgets/gimpgradienteditor.c
index dc877ad6e0..b71d0a1972 100644
--- a/app/widgets/gimpgradienteditor.c
+++ b/app/widgets/gimpgradienteditor.c
@@ -551,6 +551,37 @@ gimp_gradient_editor_new (GimpContext *context,
NULL);
}
+void
+gimp_gradient_editor_get_selection (GimpGradientEditor *editor,
+ GimpGradient **gradient,
+ GimpGradientSegment **left,
+ GimpGradientSegment **right)
+{
+ g_return_if_fail (GIMP_IS_GRADIENT_EDITOR (editor));
+
+ if (gradient)
+ *gradient = GIMP_GRADIENT (GIMP_DATA_EDITOR (editor)->data);
+
+ if (left)
+ *left = editor->control_sel_l;
+
+ if (right)
+ *right = editor->control_sel_r;
+}
+
+void
+gimp_gradient_editor_set_selection (GimpGradientEditor *editor,
+ GimpGradientSegment *left,
+ GimpGradientSegment *right)
+{
+ g_return_if_fail (GIMP_IS_GRADIENT_EDITOR (editor));
+ g_return_if_fail (left != NULL);
+ g_return_if_fail (right != NULL);
+
+ editor->control_sel_l = left;
+ editor->control_sel_r = right;
+}
+
void
gimp_gradient_editor_edit_left_color (GimpGradientEditor *editor)
{
diff --git a/app/widgets/gimpgradienteditor.h b/app/widgets/gimpgradienteditor.h
index 2dcfc21e24..eb0f11bd76 100644
--- a/app/widgets/gimpgradienteditor.h
+++ b/app/widgets/gimpgradienteditor.h
@@ -108,15 +108,23 @@ struct _GimpGradientEditorClass
GType gimp_gradient_editor_get_type (void) G_GNUC_CONST;
-GtkWidget * gimp_gradient_editor_new (GimpContext *context,
- GimpMenuFactory *menu_factory);
-
-void gimp_gradient_editor_edit_left_color (GimpGradientEditor *editor);
-void gimp_gradient_editor_edit_right_color (GimpGradientEditor *editor);
-
-void gimp_gradient_editor_zoom (GimpGradientEditor *editor,
- GimpZoomType zoom_type,
- gdouble delta);
+GtkWidget * gimp_gradient_editor_new (GimpContext *context,
+ GimpMenuFactory *menu_factory);
+
+void gimp_gradient_editor_get_selection (GimpGradientEditor *editor,
+ GimpGradient **gradient,
+ GimpGradientSegment **left,
+ GimpGradientSegment **right);
+void gimp_gradient_editor_set_selection (GimpGradientEditor *editor,
+ GimpGradientSegment *left,
+ GimpGradientSegment *right);
+
+void gimp_gradient_editor_edit_left_color (GimpGradientEditor *editor);
+void gimp_gradient_editor_edit_right_color (GimpGradientEditor *editor);
+
+void gimp_gradient_editor_zoom (GimpGradientEditor *editor,
+ GimpZoomType zoom_type,
+ gdouble delta);
#endif /* __GIMP_GRADIENT_EDITOR_H__ */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]