app: make layer blend color space and compositing color space configurable

...they say it's going to get worse before it gets better...
This commit is contained in:
Michael Natterer
2017-02-12 23:49:26 +01:00
parent b119fc995a
commit 8634b5cbc3
41 changed files with 816 additions and 211 deletions

View File

@ -51,7 +51,9 @@ struct _LayerOptionsDialog
{
GimpLayer *layer;
GimpLayerMode mode;
GimpLayerCompositeMode composite;
GimpLayerColorSpace blend_space;
GimpLayerColorSpace composite_space;
GimpLayerCompositeMode composite_mode;
gdouble opacity;
GimpFillType fill_type;
gboolean lock_alpha;
@ -97,7 +99,9 @@ layer_options_dialog_new (GimpImage *image,
const gchar *help_id,
const gchar *layer_name,
GimpLayerMode layer_mode,
GimpLayerCompositeMode layer_composite,
GimpLayerColorSpace layer_blend_space,
GimpLayerColorSpace layer_composite_space,
GimpLayerCompositeMode layer_composite_mode,
gdouble layer_opacity,
GimpFillType layer_fill_type,
gboolean layer_visible,
@ -131,7 +135,9 @@ layer_options_dialog_new (GimpImage *image,
private->layer = layer;
private->mode = layer_mode;
private->composite = layer_composite;
private->blend_space = layer_blend_space;
private->composite_space = layer_composite_space;
private->composite_mode = layer_composite_mode;
private->opacity = layer_opacity * 100.0;
private->fill_type = layer_fill_type;
private->lock_alpha = layer_lock_alpha;
@ -166,14 +172,32 @@ layer_options_dialog_new (GimpImage *image,
gimp_layer_mode_box_set_mode (GIMP_LAYER_MODE_BOX (private->mode_box),
private->mode);
combo = gimp_enum_combo_box_new (GIMP_TYPE_LAYER_COLOR_SPACE);
item_options_dialog_add_widget (dialog, _("Blend space:"), combo);
gimp_enum_combo_box_set_icon_prefix (GIMP_ENUM_COMBO_BOX (combo),
"gimp-layer-color-space");
gimp_int_combo_box_connect (GIMP_INT_COMBO_BOX (combo),
private->blend_space,
G_CALLBACK (gimp_int_combo_box_get_active),
&private->blend_space);
combo = gimp_enum_combo_box_new (GIMP_TYPE_LAYER_COLOR_SPACE);
item_options_dialog_add_widget (dialog, _("Composite space:"), combo);
gimp_enum_combo_box_set_icon_prefix (GIMP_ENUM_COMBO_BOX (combo),
"gimp-layer-color-space");
gimp_int_combo_box_connect (GIMP_INT_COMBO_BOX (combo),
private->composite_space,
G_CALLBACK (gimp_int_combo_box_get_active),
&private->composite_space);
combo = gimp_enum_combo_box_new (GIMP_TYPE_LAYER_COMPOSITE_MODE);
item_options_dialog_add_widget (dialog, _("Composite:"), combo);
item_options_dialog_add_widget (dialog, _("Composite mode:"), combo);
gimp_enum_combo_box_set_icon_prefix (GIMP_ENUM_COMBO_BOX (combo),
"gimp-layer-composite");
gimp_int_combo_box_connect (GIMP_INT_COMBO_BOX (combo),
private->composite,
private->composite_mode,
G_CALLBACK (gimp_int_combo_box_get_active),
&private->composite);
&private->composite_mode);
adjustment = GTK_ADJUSTMENT (gtk_adjustment_new (private->opacity, 0.0, 100.0,
1.0, 10.0, 0.0));
@ -458,7 +482,9 @@ layer_options_dialog_callback (GtkWidget *dialog,
context,
item_name,
private->mode,
private->composite,
private->blend_space,
private->composite_space,
private->composite_mode,
private->opacity / 100.0,
private->fill_type,
width,