In some cases, in particular for actions generated from plug-in procedure right now, we were displaying the reason of the insensitivity (typically right now, only the drawable type is cited). This was done by appending the reason to the tooltip, separated by 2 newlines, which resulted in extra ugly design, no nice way to style this info directly (with pango for instance if the widget display allows it, or on a separate info widget in a possible future, or whatnot). Also it would mean that the action search could match a disabled action by mistake if a search word happens to be in the reason message. This improves the situation with the following changes: * gimp_action_set_sensitive() now takes an optional reason string to set the reason message. * Same for gimp_action_group_set_action_sensitive(). * gimp_action_get_sensitive() returns an optional reason string. * gimp_procedure_get_sensitive()'s tooltip return value now becomes a reason (it won't contain anymore the tooltip and the reason concatenated, only the reason for separate processing).
906 lines
37 KiB
C
906 lines
37 KiB
C
/* GIMP - The GNU Image Manipulation Program
|
|
* Copyright (C) 1995 Spencer Kimball and Peter Mattis
|
|
*
|
|
* This program is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
#include "config.h"
|
|
|
|
#include <gegl.h>
|
|
#include <gtk/gtk.h>
|
|
|
|
#include "libgimpwidgets/gimpwidgets.h"
|
|
|
|
#include "actions-types.h"
|
|
|
|
#include "core/gimp.h"
|
|
#include "core/gimpcontext.h"
|
|
#include "core/gimpdatafactory.h"
|
|
#include "core/gimpgradient.h"
|
|
|
|
#include "widgets/gimpactiongroup.h"
|
|
#include "widgets/gimpgradienteditor.h"
|
|
#include "widgets/gimphelp-ids.h"
|
|
|
|
#include "data-editor-commands.h"
|
|
#include "gradient-editor-actions.h"
|
|
#include "gradient-editor-commands.h"
|
|
|
|
#include "gimp-intl.h"
|
|
|
|
|
|
static const GimpActionEntry gradient_editor_actions[] =
|
|
{
|
|
{ "gradient-editor-popup", GIMP_ICON_GRADIENT,
|
|
NC_("gradient-editor-action", "Gradient Editor Menu"), NULL, NULL, NULL,
|
|
GIMP_HELP_GRADIENT_EDITOR_DIALOG },
|
|
|
|
{ "gradient-editor-left-color-type", NULL,
|
|
NC_("gradient-editor-action", "Left Color Type") },
|
|
{ "gradient-editor-load-left-color", GIMP_ICON_DOCUMENT_REVERT,
|
|
NC_("gradient-editor-action", "_Load Left Color From") },
|
|
{ "gradient-editor-save-left-color", GIMP_ICON_DOCUMENT_SAVE,
|
|
NC_("gradient-editor-action", "_Save Left Color To") },
|
|
|
|
{ "gradient-editor-right-color-type", NULL,
|
|
NC_("gradient-editor-action", "Right Color Type") },
|
|
{ "gradient-editor-load-right-color", GIMP_ICON_DOCUMENT_REVERT,
|
|
NC_("gradient-editor-action", "Load Right Color Fr_om") },
|
|
{ "gradient-editor-save-right-color", GIMP_ICON_DOCUMENT_SAVE,
|
|
NC_("gradient-editor-action", "Sa_ve Right Color To") },
|
|
|
|
{ "gradient-editor-blending-func", NULL, "blending-function" },
|
|
{ "gradient-editor-coloring-type", NULL, "coloring-type" },
|
|
|
|
{ "gradient-editor-left-color", NULL,
|
|
NC_("gradient-editor-action", "L_eft Endpoint's Color..."), NULL, NULL,
|
|
gradient_editor_left_color_cmd_callback,
|
|
GIMP_HELP_GRADIENT_EDITOR_LEFT_COLOR },
|
|
|
|
{ "gradient-editor-right-color", NULL,
|
|
NC_("gradient-editor-action", "R_ight Endpoint's Color..."), NULL, NULL,
|
|
gradient_editor_right_color_cmd_callback,
|
|
GIMP_HELP_GRADIENT_EDITOR_RIGHT_COLOR },
|
|
|
|
{ "gradient-editor-flip", GIMP_ICON_OBJECT_FLIP_HORIZONTAL,
|
|
"flip", NULL, NULL,
|
|
gradient_editor_flip_cmd_callback,
|
|
GIMP_HELP_GRADIENT_EDITOR_FLIP },
|
|
|
|
{ "gradient-editor-replicate", GIMP_ICON_OBJECT_DUPLICATE,
|
|
"replicate", NULL, NULL,
|
|
gradient_editor_replicate_cmd_callback,
|
|
GIMP_HELP_GRADIENT_EDITOR_FLIP },
|
|
|
|
{ "gradient-editor-split-midpoint", NULL,
|
|
"splitmidpoint", NULL, NULL,
|
|
gradient_editor_split_midpoint_cmd_callback,
|
|
GIMP_HELP_GRADIENT_EDITOR_SPLIT_MIDPOINT },
|
|
|
|
{ "gradient-editor-split-uniform", NULL,
|
|
"splituniform", NULL, NULL,
|
|
gradient_editor_split_uniformly_cmd_callback,
|
|
GIMP_HELP_GRADIENT_EDITOR_SPLIT_UNIFORM },
|
|
|
|
{ "gradient-editor-delete", GIMP_ICON_EDIT_DELETE,
|
|
"delete", "", NULL,
|
|
gradient_editor_delete_cmd_callback,
|
|
GIMP_HELP_GRADIENT_EDITOR_DELETE },
|
|
|
|
{ "gradient-editor-recenter", NULL,
|
|
"recenter", NULL, NULL,
|
|
gradient_editor_recenter_cmd_callback,
|
|
GIMP_HELP_GRADIENT_EDITOR_RECENTER },
|
|
|
|
{ "gradient-editor-redistribute", NULL,
|
|
"redistribute", NULL, NULL,
|
|
gradient_editor_redistribute_cmd_callback,
|
|
GIMP_HELP_GRADIENT_EDITOR_REDISTRIBUTE },
|
|
|
|
{ "gradient-editor-blend-color", NULL,
|
|
NC_("gradient-editor-action", "Ble_nd Endpoints' Colors"), NULL, NULL,
|
|
gradient_editor_blend_color_cmd_callback,
|
|
GIMP_HELP_GRADIENT_EDITOR_BLEND_COLOR },
|
|
|
|
{ "gradient-editor-blend-opacity", NULL,
|
|
NC_("gradient-editor-action", "Blend Endpoints' Opacit_y"), NULL, NULL,
|
|
gradient_editor_blend_opacity_cmd_callback,
|
|
GIMP_HELP_GRADIENT_EDITOR_BLEND_OPACITY }
|
|
};
|
|
|
|
static const GimpToggleActionEntry gradient_editor_toggle_actions[] =
|
|
{
|
|
{ "gradient-editor-edit-active", GIMP_ICON_LINKED,
|
|
NC_("gradient-editor-action", "Edit Active Gradient"), NULL, NULL,
|
|
data_editor_edit_active_cmd_callback,
|
|
FALSE,
|
|
GIMP_HELP_GRADIENT_EDITOR_EDIT_ACTIVE }
|
|
};
|
|
|
|
|
|
#define LOAD_LEFT_FROM(num,magic) \
|
|
{ "gradient-editor-load-left-" num, NULL, \
|
|
num, NULL, NULL, \
|
|
(magic), FALSE, \
|
|
GIMP_HELP_GRADIENT_EDITOR_LEFT_LOAD }
|
|
#define SAVE_LEFT_TO(num,magic) \
|
|
{ "gradient-editor-save-left-" num, NULL, \
|
|
num, NULL, NULL, \
|
|
(magic), FALSE, \
|
|
GIMP_HELP_GRADIENT_EDITOR_LEFT_SAVE }
|
|
#define LOAD_RIGHT_FROM(num,magic) \
|
|
{ "gradient-editor-load-right-" num, NULL, \
|
|
num, NULL, NULL, \
|
|
(magic), FALSE, \
|
|
GIMP_HELP_GRADIENT_EDITOR_RIGHT_LOAD }
|
|
#define SAVE_RIGHT_TO(num,magic) \
|
|
{ "gradient-editor-save-right-" num, NULL, \
|
|
num, NULL, NULL, \
|
|
(magic), FALSE, \
|
|
GIMP_HELP_GRADIENT_EDITOR_RIGHT_SAVE }
|
|
|
|
static const GimpEnumActionEntry gradient_editor_load_left_actions[] =
|
|
{
|
|
{ "gradient-editor-load-left-left-neighbor", NULL,
|
|
NC_("gradient-editor-action", "_Left Neighbor's Right Endpoint"), NULL, NULL,
|
|
GRADIENT_EDITOR_COLOR_NEIGHBOR_ENDPOINT, FALSE,
|
|
GIMP_HELP_GRADIENT_EDITOR_LEFT_LOAD },
|
|
|
|
{ "gradient-editor-load-left-right-endpoint", NULL,
|
|
NC_("gradient-editor-action", "_Right Endpoint"), NULL, NULL,
|
|
GRADIENT_EDITOR_COLOR_OTHER_ENDPOINT, FALSE,
|
|
GIMP_HELP_GRADIENT_EDITOR_LEFT_LOAD },
|
|
|
|
{ "gradient-editor-load-left-fg", NULL,
|
|
NC_("gradient-editor-action", "_Foreground Color"), NULL, NULL,
|
|
GRADIENT_EDITOR_COLOR_FOREGROUND, FALSE,
|
|
GIMP_HELP_GRADIENT_EDITOR_LEFT_LOAD },
|
|
|
|
{ "gradient-editor-load-left-bg", NULL,
|
|
NC_("gradient-editor-action", "_Background Color"), NULL, NULL,
|
|
GRADIENT_EDITOR_COLOR_BACKGROUND, FALSE,
|
|
GIMP_HELP_GRADIENT_EDITOR_LEFT_LOAD },
|
|
|
|
LOAD_LEFT_FROM ("01", GRADIENT_EDITOR_COLOR_FIRST_CUSTOM + 0),
|
|
LOAD_LEFT_FROM ("02", GRADIENT_EDITOR_COLOR_FIRST_CUSTOM + 1),
|
|
LOAD_LEFT_FROM ("03", GRADIENT_EDITOR_COLOR_FIRST_CUSTOM + 2),
|
|
LOAD_LEFT_FROM ("04", GRADIENT_EDITOR_COLOR_FIRST_CUSTOM + 3),
|
|
LOAD_LEFT_FROM ("05", GRADIENT_EDITOR_COLOR_FIRST_CUSTOM + 4),
|
|
LOAD_LEFT_FROM ("06", GRADIENT_EDITOR_COLOR_FIRST_CUSTOM + 5),
|
|
LOAD_LEFT_FROM ("07", GRADIENT_EDITOR_COLOR_FIRST_CUSTOM + 6),
|
|
LOAD_LEFT_FROM ("08", GRADIENT_EDITOR_COLOR_FIRST_CUSTOM + 7),
|
|
LOAD_LEFT_FROM ("09", GRADIENT_EDITOR_COLOR_FIRST_CUSTOM + 8),
|
|
LOAD_LEFT_FROM ("10", GRADIENT_EDITOR_COLOR_FIRST_CUSTOM + 9)
|
|
};
|
|
|
|
static const GimpEnumActionEntry gradient_editor_save_left_actions[] =
|
|
{
|
|
SAVE_LEFT_TO ("01", 0),
|
|
SAVE_LEFT_TO ("02", 1),
|
|
SAVE_LEFT_TO ("03", 2),
|
|
SAVE_LEFT_TO ("04", 3),
|
|
SAVE_LEFT_TO ("05", 4),
|
|
SAVE_LEFT_TO ("06", 5),
|
|
SAVE_LEFT_TO ("07", 6),
|
|
SAVE_LEFT_TO ("08", 7),
|
|
SAVE_LEFT_TO ("09", 8),
|
|
SAVE_LEFT_TO ("10", 9)
|
|
};
|
|
|
|
static const GimpEnumActionEntry gradient_editor_load_right_actions[] =
|
|
{
|
|
{ "gradient-editor-load-right-right-neighbor", NULL,
|
|
NC_("gradient-editor-action", "_Right Neighbor's Left Endpoint"), NULL, NULL,
|
|
GRADIENT_EDITOR_COLOR_NEIGHBOR_ENDPOINT, FALSE,
|
|
GIMP_HELP_GRADIENT_EDITOR_RIGHT_LOAD },
|
|
|
|
{ "gradient-editor-load-right-left-endpoint", NULL,
|
|
NC_("gradient-editor-action", "_Left Endpoint"), NULL, NULL,
|
|
GRADIENT_EDITOR_COLOR_OTHER_ENDPOINT, FALSE,
|
|
GIMP_HELP_GRADIENT_EDITOR_RIGHT_LOAD },
|
|
|
|
{ "gradient-editor-load-right-fg", NULL,
|
|
NC_("gradient-editor-action", "_Foreground Color"), NULL, NULL,
|
|
GRADIENT_EDITOR_COLOR_FOREGROUND, FALSE,
|
|
GIMP_HELP_GRADIENT_EDITOR_RIGHT_LOAD },
|
|
|
|
{ "gradient-editor-load-right-bg", NULL,
|
|
NC_("gradient-editor-action", "_Background Color"), NULL, NULL,
|
|
GRADIENT_EDITOR_COLOR_BACKGROUND, FALSE,
|
|
GIMP_HELP_GRADIENT_EDITOR_RIGHT_LOAD },
|
|
|
|
LOAD_RIGHT_FROM ("01", GRADIENT_EDITOR_COLOR_FIRST_CUSTOM + 0),
|
|
LOAD_RIGHT_FROM ("02", GRADIENT_EDITOR_COLOR_FIRST_CUSTOM + 1),
|
|
LOAD_RIGHT_FROM ("03", GRADIENT_EDITOR_COLOR_FIRST_CUSTOM + 2),
|
|
LOAD_RIGHT_FROM ("04", GRADIENT_EDITOR_COLOR_FIRST_CUSTOM + 3),
|
|
LOAD_RIGHT_FROM ("05", GRADIENT_EDITOR_COLOR_FIRST_CUSTOM + 4),
|
|
LOAD_RIGHT_FROM ("06", GRADIENT_EDITOR_COLOR_FIRST_CUSTOM + 5),
|
|
LOAD_RIGHT_FROM ("07", GRADIENT_EDITOR_COLOR_FIRST_CUSTOM + 6),
|
|
LOAD_RIGHT_FROM ("08", GRADIENT_EDITOR_COLOR_FIRST_CUSTOM + 7),
|
|
LOAD_RIGHT_FROM ("09", GRADIENT_EDITOR_COLOR_FIRST_CUSTOM + 8),
|
|
LOAD_RIGHT_FROM ("10", GRADIENT_EDITOR_COLOR_FIRST_CUSTOM + 9)
|
|
};
|
|
|
|
static const GimpEnumActionEntry gradient_editor_save_right_actions[] =
|
|
{
|
|
SAVE_RIGHT_TO ("01", 0),
|
|
SAVE_RIGHT_TO ("02", 1),
|
|
SAVE_RIGHT_TO ("03", 2),
|
|
SAVE_RIGHT_TO ("04", 3),
|
|
SAVE_RIGHT_TO ("05", 4),
|
|
SAVE_RIGHT_TO ("06", 5),
|
|
SAVE_RIGHT_TO ("07", 6),
|
|
SAVE_RIGHT_TO ("08", 7),
|
|
SAVE_RIGHT_TO ("09", 8),
|
|
SAVE_RIGHT_TO ("10", 9)
|
|
};
|
|
|
|
#undef LOAD_LEFT_FROM
|
|
#undef SAVE_LEFT_TO
|
|
#undef LOAD_RIGHT_FROM
|
|
#undef SAVE_RIGHT_TO
|
|
|
|
|
|
static const GimpRadioActionEntry gradient_editor_left_color_type_actions[] =
|
|
{
|
|
{ "gradient-editor-left-color-fixed", NULL,
|
|
NC_("gradient-editor-color-type", "_Fixed"), NULL, NULL,
|
|
GIMP_GRADIENT_COLOR_FIXED,
|
|
GIMP_HELP_GRADIENT_EDITOR_LEFT_COLOR },
|
|
|
|
{ "gradient-editor-left-color-foreground", NULL,
|
|
NC_("gradient-editor-color-type", "F_oreground Color"), NULL, NULL,
|
|
GIMP_GRADIENT_COLOR_FOREGROUND,
|
|
GIMP_HELP_GRADIENT_EDITOR_LEFT_COLOR },
|
|
|
|
{ "gradient-editor-left-color-foreground-transparent", NULL,
|
|
NC_("gradient-editor-color-type",
|
|
"Fo_reground Color (Transparent)"), NULL, NULL,
|
|
GIMP_GRADIENT_COLOR_FOREGROUND_TRANSPARENT,
|
|
GIMP_HELP_GRADIENT_EDITOR_LEFT_COLOR },
|
|
|
|
{ "gradient-editor-left-color-background", NULL,
|
|
NC_("gradient-editor-color-type", "_Background Color"), NULL, NULL,
|
|
GIMP_GRADIENT_COLOR_BACKGROUND,
|
|
GIMP_HELP_GRADIENT_EDITOR_LEFT_COLOR },
|
|
|
|
{ "gradient-editor-left-color-background-transparent", NULL,
|
|
NC_("gradient-editor-color-type",
|
|
"B_ackground Color (Transparent)"), NULL, NULL,
|
|
GIMP_GRADIENT_COLOR_BACKGROUND_TRANSPARENT,
|
|
GIMP_HELP_GRADIENT_EDITOR_LEFT_COLOR }
|
|
};
|
|
|
|
static const GimpRadioActionEntry gradient_editor_right_color_type_actions[] =
|
|
{
|
|
{ "gradient-editor-right-color-fixed", NULL,
|
|
NC_("gradient-editor-color-type", "_Fixed"), NULL, NULL,
|
|
GIMP_GRADIENT_COLOR_FIXED,
|
|
GIMP_HELP_GRADIENT_EDITOR_RIGHT_COLOR },
|
|
|
|
{ "gradient-editor-right-color-foreground", NULL,
|
|
NC_("gradient-editor-color-type", "F_oreground Color"), NULL, NULL,
|
|
GIMP_GRADIENT_COLOR_FOREGROUND,
|
|
GIMP_HELP_GRADIENT_EDITOR_RIGHT_COLOR },
|
|
|
|
{ "gradient-editor-right-color-foreground-transparent", NULL,
|
|
NC_("gradient-editor-color-type",
|
|
"Fo_reground Color (Transparent)"), NULL, NULL,
|
|
GIMP_GRADIENT_COLOR_FOREGROUND_TRANSPARENT,
|
|
GIMP_HELP_GRADIENT_EDITOR_RIGHT_COLOR },
|
|
|
|
{ "gradient-editor-right-color-background", NULL,
|
|
NC_("gradient-editor-color-type", "_Background Color"), NULL, NULL,
|
|
GIMP_GRADIENT_COLOR_BACKGROUND,
|
|
GIMP_HELP_GRADIENT_EDITOR_RIGHT_COLOR },
|
|
|
|
{ "gradient-editor-right-color-background-transparent", NULL,
|
|
NC_("gradient-editor-color-type",
|
|
"B_ackground Color (Transparent)"), NULL, NULL,
|
|
GIMP_GRADIENT_COLOR_BACKGROUND_TRANSPARENT,
|
|
GIMP_HELP_GRADIENT_EDITOR_RIGHT_COLOR }
|
|
};
|
|
|
|
static const GimpRadioActionEntry gradient_editor_blending_actions[] =
|
|
{
|
|
{ "gradient-editor-blending-linear", NULL,
|
|
NC_("gradient-editor-blending", "_Linear"), NULL, NULL,
|
|
GIMP_GRADIENT_SEGMENT_LINEAR,
|
|
GIMP_HELP_GRADIENT_EDITOR_BLENDING },
|
|
|
|
{ "gradient-editor-blending-curved", NULL,
|
|
NC_("gradient-editor-blending", "_Curved"), NULL, NULL,
|
|
GIMP_GRADIENT_SEGMENT_CURVED,
|
|
GIMP_HELP_GRADIENT_EDITOR_BLENDING },
|
|
|
|
{ "gradient-editor-blending-sine", NULL,
|
|
NC_("gradient-editor-blending", "_Sinusoidal"), NULL, NULL,
|
|
GIMP_GRADIENT_SEGMENT_SINE,
|
|
GIMP_HELP_GRADIENT_EDITOR_BLENDING },
|
|
|
|
{ "gradient-editor-blending-sphere-increasing", NULL,
|
|
NC_("gradient-editor-blending", "Spherical (i_ncreasing)"), NULL, NULL,
|
|
GIMP_GRADIENT_SEGMENT_SPHERE_INCREASING,
|
|
GIMP_HELP_GRADIENT_EDITOR_BLENDING },
|
|
|
|
{ "gradient-editor-blending-sphere-decreasing", NULL,
|
|
NC_("gradient-editor-blending", "Spherical (_decreasing)"), NULL, NULL,
|
|
GIMP_GRADIENT_SEGMENT_SPHERE_DECREASING,
|
|
GIMP_HELP_GRADIENT_EDITOR_BLENDING },
|
|
|
|
{ "gradient-editor-blending-step", NULL,
|
|
NC_("gradient-editor-blending", "S_tep"), NULL, NULL,
|
|
GIMP_GRADIENT_SEGMENT_STEP,
|
|
GIMP_HELP_GRADIENT_EDITOR_BLENDING },
|
|
|
|
{ "gradient-editor-blending-varies", NULL,
|
|
NC_("gradient-editor-blending", "(Varies)"), NULL, NULL,
|
|
-1,
|
|
GIMP_HELP_GRADIENT_EDITOR_BLENDING }
|
|
};
|
|
|
|
static const GimpRadioActionEntry gradient_editor_coloring_actions[] =
|
|
{
|
|
{ "gradient-editor-coloring-rgb", NULL,
|
|
NC_("gradient-editor-coloring", "_RGB"), NULL, NULL,
|
|
GIMP_GRADIENT_SEGMENT_RGB,
|
|
GIMP_HELP_GRADIENT_EDITOR_COLORING },
|
|
|
|
{ "gradient-editor-coloring-hsv-ccw", NULL,
|
|
NC_("gradient-editor-coloring", "HSV (_counter-clockwise hue)"), NULL, NULL,
|
|
GIMP_GRADIENT_SEGMENT_HSV_CCW,
|
|
GIMP_HELP_GRADIENT_EDITOR_COLORING },
|
|
|
|
{ "gradient-editor-coloring-hsv-cw", NULL,
|
|
NC_("gradient-editor-coloring", "HSV (clockwise _hue)"), NULL, NULL,
|
|
GIMP_GRADIENT_SEGMENT_HSV_CW,
|
|
GIMP_HELP_GRADIENT_EDITOR_COLORING },
|
|
|
|
{ "gradient-editor-coloring-varies", NULL,
|
|
NC_("gradient-editor-coloring", "(Varies)"), NULL, NULL,
|
|
-1,
|
|
GIMP_HELP_GRADIENT_EDITOR_COLORING }
|
|
};
|
|
|
|
static const GimpEnumActionEntry gradient_editor_zoom_actions[] =
|
|
{
|
|
{ "gradient-editor-zoom-in", GIMP_ICON_ZOOM_IN,
|
|
N_("Zoom In"), NULL,
|
|
N_("Zoom in"),
|
|
GIMP_ZOOM_IN, FALSE,
|
|
GIMP_HELP_GRADIENT_EDITOR_ZOOM_IN },
|
|
|
|
{ "gradient-editor-zoom-out", GIMP_ICON_ZOOM_OUT,
|
|
N_("Zoom Out"), NULL,
|
|
N_("Zoom out"),
|
|
GIMP_ZOOM_OUT, FALSE,
|
|
GIMP_HELP_GRADIENT_EDITOR_ZOOM_OUT },
|
|
|
|
{ "gradient-editor-zoom-all", GIMP_ICON_ZOOM_FIT_BEST,
|
|
N_("Zoom All"), NULL,
|
|
N_("Zoom all"),
|
|
GIMP_ZOOM_OUT_MAX, FALSE,
|
|
GIMP_HELP_GRADIENT_EDITOR_ZOOM_ALL }
|
|
};
|
|
|
|
|
|
void
|
|
gradient_editor_actions_setup (GimpActionGroup *group)
|
|
{
|
|
gimp_action_group_add_actions (group, "gradient-editor-action",
|
|
gradient_editor_actions,
|
|
G_N_ELEMENTS (gradient_editor_actions));
|
|
|
|
gimp_action_group_add_toggle_actions (group, "gradient-editor-action",
|
|
gradient_editor_toggle_actions,
|
|
G_N_ELEMENTS (gradient_editor_toggle_actions));
|
|
|
|
gimp_action_group_add_enum_actions (group, "gradient-editor-action",
|
|
gradient_editor_load_left_actions,
|
|
G_N_ELEMENTS (gradient_editor_load_left_actions),
|
|
gradient_editor_load_left_cmd_callback);
|
|
|
|
gimp_action_group_add_enum_actions (group, "gradient-editor-action",
|
|
gradient_editor_save_left_actions,
|
|
G_N_ELEMENTS (gradient_editor_save_left_actions),
|
|
gradient_editor_save_left_cmd_callback);
|
|
|
|
gimp_action_group_add_enum_actions (group, "gradient-editor-action",
|
|
gradient_editor_load_right_actions,
|
|
G_N_ELEMENTS (gradient_editor_load_right_actions),
|
|
gradient_editor_load_right_cmd_callback);
|
|
|
|
|
|
gimp_action_group_add_enum_actions (group, "gradient-editor-action",
|
|
gradient_editor_save_right_actions,
|
|
G_N_ELEMENTS (gradient_editor_save_right_actions),
|
|
gradient_editor_save_right_cmd_callback);
|
|
|
|
gimp_action_group_add_radio_actions (group, "gradient-editor-color-type",
|
|
gradient_editor_left_color_type_actions,
|
|
G_N_ELEMENTS (gradient_editor_left_color_type_actions),
|
|
NULL,
|
|
0,
|
|
gradient_editor_left_color_type_cmd_callback);
|
|
|
|
gimp_action_group_add_radio_actions (group, "gradient-editor-color-type",
|
|
gradient_editor_right_color_type_actions,
|
|
G_N_ELEMENTS (gradient_editor_right_color_type_actions),
|
|
NULL,
|
|
0,
|
|
gradient_editor_right_color_type_cmd_callback);
|
|
|
|
gimp_action_group_add_radio_actions (group, "gradient-editor-blending",
|
|
gradient_editor_blending_actions,
|
|
G_N_ELEMENTS (gradient_editor_blending_actions),
|
|
NULL,
|
|
0,
|
|
gradient_editor_blending_func_cmd_callback);
|
|
|
|
gimp_action_group_add_radio_actions (group, "gradient-editor-coloring",
|
|
gradient_editor_coloring_actions,
|
|
G_N_ELEMENTS (gradient_editor_coloring_actions),
|
|
NULL,
|
|
0,
|
|
gradient_editor_coloring_type_cmd_callback);
|
|
|
|
gimp_action_group_add_enum_actions (group, NULL,
|
|
gradient_editor_zoom_actions,
|
|
G_N_ELEMENTS (gradient_editor_zoom_actions),
|
|
gradient_editor_zoom_cmd_callback);
|
|
}
|
|
|
|
void
|
|
gradient_editor_actions_update (GimpActionGroup *group,
|
|
gpointer data)
|
|
{
|
|
GimpGradientEditor *editor = GIMP_GRADIENT_EDITOR (data);
|
|
GimpDataEditor *data_editor = GIMP_DATA_EDITOR (data);
|
|
GimpGradient *gradient;
|
|
gboolean editable = FALSE;
|
|
GimpRGB left_color;
|
|
GimpRGB right_color;
|
|
GimpRGB left_seg_color;
|
|
GimpRGB right_seg_color;
|
|
GimpRGB fg;
|
|
GimpRGB bg;
|
|
gboolean blending_equal = TRUE;
|
|
gboolean coloring_equal = TRUE;
|
|
gboolean left_editable = TRUE;
|
|
gboolean right_editable = TRUE;
|
|
gboolean selection = FALSE;
|
|
gboolean delete = FALSE;
|
|
gboolean edit_active = FALSE;
|
|
|
|
gradient = GIMP_GRADIENT (data_editor->data);
|
|
|
|
if (gradient)
|
|
{
|
|
GimpGradientSegmentType type;
|
|
GimpGradientSegmentColor color;
|
|
GimpGradientSegment *left_seg;
|
|
GimpGradientSegment *right_seg;
|
|
GimpGradientSegment *seg, *aseg;
|
|
|
|
if (data_editor->data_editable)
|
|
editable = TRUE;
|
|
|
|
gimp_gradient_segment_get_left_flat_color (gradient,
|
|
data_editor->context,
|
|
editor->control_sel_l,
|
|
&left_color);
|
|
|
|
if (editor->control_sel_l->prev)
|
|
left_seg = editor->control_sel_l->prev;
|
|
else
|
|
left_seg = gimp_gradient_segment_get_last (editor->control_sel_l);
|
|
|
|
gimp_gradient_segment_get_right_flat_color (gradient,
|
|
data_editor->context,
|
|
left_seg,
|
|
&left_seg_color);
|
|
|
|
gimp_gradient_segment_get_right_flat_color (gradient,
|
|
data_editor->context,
|
|
editor->control_sel_r,
|
|
&right_color);
|
|
|
|
if (editor->control_sel_r->next)
|
|
right_seg = editor->control_sel_r->next;
|
|
else
|
|
right_seg = gimp_gradient_segment_get_first (editor->control_sel_r);
|
|
|
|
gimp_gradient_segment_get_left_flat_color (gradient,
|
|
data_editor->context,
|
|
right_seg,
|
|
&right_seg_color);
|
|
|
|
left_editable = (editor->control_sel_l->left_color_type ==
|
|
GIMP_GRADIENT_COLOR_FIXED);
|
|
right_editable = (editor->control_sel_r->right_color_type ==
|
|
GIMP_GRADIENT_COLOR_FIXED);
|
|
|
|
type = editor->control_sel_l->type;
|
|
color = editor->control_sel_l->color;
|
|
|
|
seg = editor->control_sel_l;
|
|
|
|
do
|
|
{
|
|
blending_equal = blending_equal && (seg->type == type);
|
|
coloring_equal = coloring_equal && (seg->color == color);
|
|
|
|
aseg = seg;
|
|
seg = seg->next;
|
|
}
|
|
while (aseg != editor->control_sel_r);
|
|
|
|
selection = (editor->control_sel_l != editor->control_sel_r);
|
|
delete = (editor->control_sel_l->prev || editor->control_sel_r->next);
|
|
}
|
|
|
|
if (data_editor->context)
|
|
{
|
|
gimp_context_get_foreground (data_editor->context, &fg);
|
|
gimp_context_get_background (data_editor->context, &bg);
|
|
}
|
|
|
|
/* pretend the gradient not being editable while the dialog is
|
|
* insensitive. prevents the gradient from being modified while a
|
|
* dialog is running. bug #161411 --mitch
|
|
*/
|
|
if (! gtk_widget_is_sensitive (GTK_WIDGET (editor)))
|
|
editable = FALSE;
|
|
|
|
if (! editable)
|
|
{
|
|
left_editable = FALSE;
|
|
right_editable = FALSE;
|
|
}
|
|
|
|
edit_active = gimp_data_editor_get_edit_active (data_editor);
|
|
|
|
#define SET_ACTIVE(action,condition) \
|
|
gimp_action_group_set_action_active (group, action, (condition) != 0)
|
|
#define SET_COLOR(action,color,set_label) \
|
|
gimp_action_group_set_action_color (group, action, (color), (set_label))
|
|
#define SET_LABEL(action,label) \
|
|
gimp_action_group_set_action_label (group, action, (label))
|
|
#define SET_SENSITIVE(action,condition) \
|
|
gimp_action_group_set_action_sensitive (group, action, (condition) != 0, NULL)
|
|
#define SET_VISIBLE(action,condition) \
|
|
gimp_action_group_set_action_visible (group, action, (condition) != 0)
|
|
|
|
SET_SENSITIVE ("gradient-editor-left-color-fixed", editable);
|
|
SET_SENSITIVE ("gradient-editor-left-color-foreground", editable);
|
|
SET_SENSITIVE ("gradient-editor-left-color-foreground-transparent", editable);
|
|
SET_SENSITIVE ("gradient-editor-left-color-background", editable);
|
|
SET_SENSITIVE ("gradient-editor-left-color-background-transparent", editable);
|
|
|
|
if (gradient)
|
|
{
|
|
switch (editor->control_sel_l->left_color_type)
|
|
{
|
|
case GIMP_GRADIENT_COLOR_FIXED:
|
|
SET_ACTIVE ("gradient-editor-left-color-fixed", TRUE);
|
|
break;
|
|
case GIMP_GRADIENT_COLOR_FOREGROUND:
|
|
SET_ACTIVE ("gradient-editor-left-color-foreground", TRUE);
|
|
break;
|
|
case GIMP_GRADIENT_COLOR_FOREGROUND_TRANSPARENT:
|
|
SET_ACTIVE ("gradient-editor-left-color-foreground-transparent", TRUE);
|
|
break;
|
|
case GIMP_GRADIENT_COLOR_BACKGROUND:
|
|
SET_ACTIVE ("gradient-editor-left-color-background", TRUE);
|
|
break;
|
|
case GIMP_GRADIENT_COLOR_BACKGROUND_TRANSPARENT:
|
|
SET_ACTIVE ("gradient-editor-left-color-background-transparent", TRUE);
|
|
break;
|
|
}
|
|
}
|
|
|
|
SET_SENSITIVE ("gradient-editor-left-color", left_editable);
|
|
SET_SENSITIVE ("gradient-editor-load-left-left-neighbor", editable);
|
|
SET_SENSITIVE ("gradient-editor-load-left-right-endpoint", editable);
|
|
|
|
if (gradient)
|
|
{
|
|
SET_COLOR ("gradient-editor-left-color",
|
|
&left_color, FALSE);
|
|
SET_COLOR ("gradient-editor-load-left-left-neighbor",
|
|
&left_seg_color, FALSE);
|
|
SET_COLOR ("gradient-editor-load-left-right-endpoint",
|
|
&right_color, FALSE);
|
|
}
|
|
|
|
SET_SENSITIVE ("gradient-editor-load-left-fg", left_editable);
|
|
SET_SENSITIVE ("gradient-editor-load-left-bg", left_editable);
|
|
|
|
SET_COLOR ("gradient-editor-load-left-fg",
|
|
data_editor->context ? &fg : NULL, FALSE);
|
|
SET_COLOR ("gradient-editor-load-left-bg",
|
|
data_editor->context ? &bg : NULL, FALSE);
|
|
|
|
SET_SENSITIVE ("gradient-editor-load-left-01", left_editable);
|
|
SET_SENSITIVE ("gradient-editor-load-left-02", left_editable);
|
|
SET_SENSITIVE ("gradient-editor-load-left-03", left_editable);
|
|
SET_SENSITIVE ("gradient-editor-load-left-04", left_editable);
|
|
SET_SENSITIVE ("gradient-editor-load-left-05", left_editable);
|
|
SET_SENSITIVE ("gradient-editor-load-left-06", left_editable);
|
|
SET_SENSITIVE ("gradient-editor-load-left-07", left_editable);
|
|
SET_SENSITIVE ("gradient-editor-load-left-08", left_editable);
|
|
SET_SENSITIVE ("gradient-editor-load-left-09", left_editable);
|
|
SET_SENSITIVE ("gradient-editor-load-left-10", left_editable);
|
|
|
|
SET_COLOR ("gradient-editor-load-left-01", &editor->saved_colors[0], TRUE);
|
|
SET_COLOR ("gradient-editor-load-left-02", &editor->saved_colors[1], TRUE);
|
|
SET_COLOR ("gradient-editor-load-left-03", &editor->saved_colors[2], TRUE);
|
|
SET_COLOR ("gradient-editor-load-left-04", &editor->saved_colors[3], TRUE);
|
|
SET_COLOR ("gradient-editor-load-left-05", &editor->saved_colors[4], TRUE);
|
|
SET_COLOR ("gradient-editor-load-left-06", &editor->saved_colors[5], TRUE);
|
|
SET_COLOR ("gradient-editor-load-left-07", &editor->saved_colors[6], TRUE);
|
|
SET_COLOR ("gradient-editor-load-left-08", &editor->saved_colors[7], TRUE);
|
|
SET_COLOR ("gradient-editor-load-left-09", &editor->saved_colors[8], TRUE);
|
|
SET_COLOR ("gradient-editor-load-left-10", &editor->saved_colors[9], TRUE);
|
|
|
|
SET_SENSITIVE ("gradient-editor-save-left-01", gradient);
|
|
SET_SENSITIVE ("gradient-editor-save-left-02", gradient);
|
|
SET_SENSITIVE ("gradient-editor-save-left-03", gradient);
|
|
SET_SENSITIVE ("gradient-editor-save-left-04", gradient);
|
|
SET_SENSITIVE ("gradient-editor-save-left-05", gradient);
|
|
SET_SENSITIVE ("gradient-editor-save-left-06", gradient);
|
|
SET_SENSITIVE ("gradient-editor-save-left-07", gradient);
|
|
SET_SENSITIVE ("gradient-editor-save-left-08", gradient);
|
|
SET_SENSITIVE ("gradient-editor-save-left-09", gradient);
|
|
SET_SENSITIVE ("gradient-editor-save-left-10", gradient);
|
|
|
|
SET_COLOR ("gradient-editor-save-left-01", &editor->saved_colors[0], TRUE);
|
|
SET_COLOR ("gradient-editor-save-left-02", &editor->saved_colors[1], TRUE);
|
|
SET_COLOR ("gradient-editor-save-left-03", &editor->saved_colors[2], TRUE);
|
|
SET_COLOR ("gradient-editor-save-left-04", &editor->saved_colors[3], TRUE);
|
|
SET_COLOR ("gradient-editor-save-left-05", &editor->saved_colors[4], TRUE);
|
|
SET_COLOR ("gradient-editor-save-left-06", &editor->saved_colors[5], TRUE);
|
|
SET_COLOR ("gradient-editor-save-left-07", &editor->saved_colors[6], TRUE);
|
|
SET_COLOR ("gradient-editor-save-left-08", &editor->saved_colors[7], TRUE);
|
|
SET_COLOR ("gradient-editor-save-left-09", &editor->saved_colors[8], TRUE);
|
|
SET_COLOR ("gradient-editor-save-left-10", &editor->saved_colors[9], TRUE);
|
|
|
|
SET_SENSITIVE ("gradient-editor-right-color-fixed", editable);
|
|
SET_SENSITIVE ("gradient-editor-right-color-foreground", editable);
|
|
SET_SENSITIVE ("gradient-editor-right-color-foreground-transparent", editable);
|
|
SET_SENSITIVE ("gradient-editor-right-color-background", editable);
|
|
SET_SENSITIVE ("gradient-editor-right-color-background-transparent", editable);
|
|
|
|
if (gradient)
|
|
{
|
|
switch (editor->control_sel_r->right_color_type)
|
|
{
|
|
case GIMP_GRADIENT_COLOR_FIXED:
|
|
SET_ACTIVE ("gradient-editor-right-color-fixed", TRUE);
|
|
break;
|
|
case GIMP_GRADIENT_COLOR_FOREGROUND:
|
|
SET_ACTIVE ("gradient-editor-right-color-foreground", TRUE);
|
|
break;
|
|
case GIMP_GRADIENT_COLOR_FOREGROUND_TRANSPARENT:
|
|
SET_ACTIVE ("gradient-editor-right-color-foreground-transparent", TRUE);
|
|
break;
|
|
case GIMP_GRADIENT_COLOR_BACKGROUND:
|
|
SET_ACTIVE ("gradient-editor-right-color-background", TRUE);
|
|
break;
|
|
case GIMP_GRADIENT_COLOR_BACKGROUND_TRANSPARENT:
|
|
SET_ACTIVE ("gradient-editor-right-color-background-transparent", TRUE);
|
|
break;
|
|
}
|
|
}
|
|
|
|
SET_SENSITIVE ("gradient-editor-right-color", right_editable);
|
|
SET_SENSITIVE ("gradient-editor-load-right-right-neighbor", editable);
|
|
SET_SENSITIVE ("gradient-editor-load-right-left-endpoint", editable);
|
|
|
|
if (gradient)
|
|
{
|
|
SET_COLOR ("gradient-editor-right-color",
|
|
&right_color, FALSE);
|
|
SET_COLOR ("gradient-editor-load-right-right-neighbor",
|
|
&right_seg_color, FALSE);
|
|
SET_COLOR ("gradient-editor-load-right-left-endpoint",
|
|
&left_color, FALSE);
|
|
}
|
|
|
|
SET_SENSITIVE ("gradient-editor-load-right-fg", right_editable);
|
|
SET_SENSITIVE ("gradient-editor-load-right-bg", right_editable);
|
|
|
|
SET_COLOR ("gradient-editor-load-right-fg",
|
|
data_editor->context ? &fg : NULL, FALSE);
|
|
SET_COLOR ("gradient-editor-load-right-bg",
|
|
data_editor->context ? &bg : NULL, FALSE);
|
|
|
|
SET_SENSITIVE ("gradient-editor-load-right-01", right_editable);
|
|
SET_SENSITIVE ("gradient-editor-load-right-02", right_editable);
|
|
SET_SENSITIVE ("gradient-editor-load-right-03", right_editable);
|
|
SET_SENSITIVE ("gradient-editor-load-right-04", right_editable);
|
|
SET_SENSITIVE ("gradient-editor-load-right-05", right_editable);
|
|
SET_SENSITIVE ("gradient-editor-load-right-06", right_editable);
|
|
SET_SENSITIVE ("gradient-editor-load-right-07", right_editable);
|
|
SET_SENSITIVE ("gradient-editor-load-right-08", right_editable);
|
|
SET_SENSITIVE ("gradient-editor-load-right-09", right_editable);
|
|
SET_SENSITIVE ("gradient-editor-load-right-10", right_editable);
|
|
|
|
SET_COLOR ("gradient-editor-load-right-01", &editor->saved_colors[0], TRUE);
|
|
SET_COLOR ("gradient-editor-load-right-02", &editor->saved_colors[1], TRUE);
|
|
SET_COLOR ("gradient-editor-load-right-03", &editor->saved_colors[2], TRUE);
|
|
SET_COLOR ("gradient-editor-load-right-04", &editor->saved_colors[3], TRUE);
|
|
SET_COLOR ("gradient-editor-load-right-05", &editor->saved_colors[4], TRUE);
|
|
SET_COLOR ("gradient-editor-load-right-06", &editor->saved_colors[5], TRUE);
|
|
SET_COLOR ("gradient-editor-load-right-07", &editor->saved_colors[6], TRUE);
|
|
SET_COLOR ("gradient-editor-load-right-08", &editor->saved_colors[7], TRUE);
|
|
SET_COLOR ("gradient-editor-load-right-09", &editor->saved_colors[8], TRUE);
|
|
SET_COLOR ("gradient-editor-load-right-10", &editor->saved_colors[9], TRUE);
|
|
|
|
SET_SENSITIVE ("gradient-editor-save-right-01", gradient);
|
|
SET_SENSITIVE ("gradient-editor-save-right-02", gradient);
|
|
SET_SENSITIVE ("gradient-editor-save-right-03", gradient);
|
|
SET_SENSITIVE ("gradient-editor-save-right-04", gradient);
|
|
SET_SENSITIVE ("gradient-editor-save-right-05", gradient);
|
|
SET_SENSITIVE ("gradient-editor-save-right-06", gradient);
|
|
SET_SENSITIVE ("gradient-editor-save-right-07", gradient);
|
|
SET_SENSITIVE ("gradient-editor-save-right-08", gradient);
|
|
SET_SENSITIVE ("gradient-editor-save-right-09", gradient);
|
|
SET_SENSITIVE ("gradient-editor-save-right-10", gradient);
|
|
|
|
SET_COLOR ("gradient-editor-save-right-01", &editor->saved_colors[0], TRUE);
|
|
SET_COLOR ("gradient-editor-save-right-02", &editor->saved_colors[1], TRUE);
|
|
SET_COLOR ("gradient-editor-save-right-03", &editor->saved_colors[2], TRUE);
|
|
SET_COLOR ("gradient-editor-save-right-04", &editor->saved_colors[3], TRUE);
|
|
SET_COLOR ("gradient-editor-save-right-05", &editor->saved_colors[4], TRUE);
|
|
SET_COLOR ("gradient-editor-save-right-06", &editor->saved_colors[5], TRUE);
|
|
SET_COLOR ("gradient-editor-save-right-07", &editor->saved_colors[6], TRUE);
|
|
SET_COLOR ("gradient-editor-save-right-08", &editor->saved_colors[7], TRUE);
|
|
SET_COLOR ("gradient-editor-save-right-09", &editor->saved_colors[8], TRUE);
|
|
SET_COLOR ("gradient-editor-save-right-10", &editor->saved_colors[9], TRUE);
|
|
|
|
SET_SENSITIVE ("gradient-editor-flip", editable);
|
|
SET_SENSITIVE ("gradient-editor-replicate", editable);
|
|
SET_SENSITIVE ("gradient-editor-split-midpoint", editable);
|
|
SET_SENSITIVE ("gradient-editor-split-uniform", editable);
|
|
SET_SENSITIVE ("gradient-editor-delete", editable && delete);
|
|
SET_SENSITIVE ("gradient-editor-recenter", editable);
|
|
SET_SENSITIVE ("gradient-editor-redistribute", editable);
|
|
|
|
if (! selection)
|
|
{
|
|
SET_LABEL ("gradient-editor-blending-func",
|
|
_("_Blending Function for Segment"));
|
|
SET_LABEL ("gradient-editor-coloring-type",
|
|
_("Coloring _Type for Segment"));
|
|
|
|
SET_LABEL ("gradient-editor-flip",
|
|
_("_Flip Segment"));
|
|
SET_LABEL ("gradient-editor-replicate",
|
|
_("_Replicate Segment..."));
|
|
SET_LABEL ("gradient-editor-split-midpoint",
|
|
_("Split Segment at _Midpoint"));
|
|
SET_LABEL ("gradient-editor-split-uniform",
|
|
_("Split Segment _Uniformly..."));
|
|
SET_LABEL ("gradient-editor-delete",
|
|
_("_Delete Segment"));
|
|
SET_LABEL ("gradient-editor-recenter",
|
|
_("Re-_center Segment's Midpoint"));
|
|
SET_LABEL ("gradient-editor-redistribute",
|
|
_("Re-distribute _Handles in Segment"));
|
|
}
|
|
else
|
|
{
|
|
SET_LABEL ("gradient-editor-blending-func",
|
|
_("_Blending Function for Selection"));
|
|
SET_LABEL ("gradient-editor-coloring-type",
|
|
_("Coloring _Type for Selection"));
|
|
|
|
SET_LABEL ("gradient-editor-flip",
|
|
_("_Flip Selection"));
|
|
SET_LABEL ("gradient-editor-replicate",
|
|
_("_Replicate Selection..."));
|
|
SET_LABEL ("gradient-editor-split-midpoint",
|
|
_("Split Segments at _Midpoints"));
|
|
SET_LABEL ("gradient-editor-split-uniform",
|
|
_("Split Segments _Uniformly..."));
|
|
SET_LABEL ("gradient-editor-delete",
|
|
_("_Delete Selection"));
|
|
SET_LABEL ("gradient-editor-recenter",
|
|
_("Re-_center Midpoints in Selection"));
|
|
SET_LABEL ("gradient-editor-redistribute",
|
|
_("Re-distribute _Handles in Selection"));
|
|
}
|
|
|
|
SET_SENSITIVE ("gradient-editor-blending-varies", FALSE);
|
|
SET_VISIBLE ("gradient-editor-blending-varies", ! blending_equal);
|
|
|
|
SET_SENSITIVE ("gradient-editor-blending-linear", editable);
|
|
SET_SENSITIVE ("gradient-editor-blending-curved", editable);
|
|
SET_SENSITIVE ("gradient-editor-blending-sine", editable);
|
|
SET_SENSITIVE ("gradient-editor-blending-sphere-increasing", editable);
|
|
SET_SENSITIVE ("gradient-editor-blending-sphere-decreasing", editable);
|
|
SET_SENSITIVE ("gradient-editor-blending-step", editable);
|
|
|
|
if (blending_equal && gradient)
|
|
{
|
|
switch (editor->control_sel_l->type)
|
|
{
|
|
case GIMP_GRADIENT_SEGMENT_LINEAR:
|
|
SET_ACTIVE ("gradient-editor-blending-linear", TRUE);
|
|
break;
|
|
case GIMP_GRADIENT_SEGMENT_CURVED:
|
|
SET_ACTIVE ("gradient-editor-blending-curved", TRUE);
|
|
break;
|
|
case GIMP_GRADIENT_SEGMENT_SINE:
|
|
SET_ACTIVE ("gradient-editor-blending-sine", TRUE);
|
|
break;
|
|
case GIMP_GRADIENT_SEGMENT_SPHERE_INCREASING:
|
|
SET_ACTIVE ("gradient-editor-blending-sphere-increasing", TRUE);
|
|
break;
|
|
case GIMP_GRADIENT_SEGMENT_SPHERE_DECREASING:
|
|
SET_ACTIVE ("gradient-editor-blending-sphere-decreasing", TRUE);
|
|
break;
|
|
case GIMP_GRADIENT_SEGMENT_STEP:
|
|
SET_ACTIVE ("gradient-editor-blending-step", TRUE);
|
|
break;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
SET_ACTIVE ("gradient-editor-blending-varies", TRUE);
|
|
}
|
|
|
|
SET_SENSITIVE ("gradient-editor-coloring-varies", FALSE);
|
|
SET_VISIBLE ("gradient-editor-coloring-varies", ! coloring_equal);
|
|
|
|
SET_SENSITIVE ("gradient-editor-coloring-rgb", editable);
|
|
SET_SENSITIVE ("gradient-editor-coloring-hsv-ccw", editable);
|
|
SET_SENSITIVE ("gradient-editor-coloring-hsv-cw", editable);
|
|
|
|
if (coloring_equal && gradient)
|
|
{
|
|
switch (editor->control_sel_l->color)
|
|
{
|
|
case GIMP_GRADIENT_SEGMENT_RGB:
|
|
SET_ACTIVE ("gradient-editor-coloring-rgb", TRUE);
|
|
break;
|
|
case GIMP_GRADIENT_SEGMENT_HSV_CCW:
|
|
SET_ACTIVE ("gradient-editor-coloring-hsv-ccw", TRUE);
|
|
break;
|
|
case GIMP_GRADIENT_SEGMENT_HSV_CW:
|
|
SET_ACTIVE ("gradient-editor-coloring-hsv-cw", TRUE);
|
|
break;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
SET_ACTIVE ("gradient-editor-coloring-varies", TRUE);
|
|
}
|
|
|
|
SET_SENSITIVE ("gradient-editor-blend-color", editable && selection);
|
|
SET_SENSITIVE ("gradient-editor-blend-opacity", editable && selection);
|
|
|
|
SET_SENSITIVE ("gradient-editor-zoom-out", gradient);
|
|
SET_SENSITIVE ("gradient-editor-zoom-in", gradient);
|
|
SET_SENSITIVE ("gradient-editor-zoom-all", gradient);
|
|
|
|
SET_ACTIVE ("gradient-editor-edit-active", edit_active);
|
|
|
|
#undef SET_ACTIVE
|
|
#undef SET_COLOR
|
|
#undef SET_LABEL
|
|
#undef SET_SENSITIVE
|
|
#undef SET_VISIBLE
|
|
}
|