[gnome-photos/wip/uajain/shadows_highlights: 1/3] shadows and highlights: Add basic UI structure
- From: Umang Jain <uajain src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-photos/wip/uajain/shadows_highlights: 1/3] shadows and highlights: Add basic UI structure
- Date: Sat, 7 Oct 2017 15:24:54 +0000 (UTC)
commit 59bdf90d0624f74cede06a35ec795ea1a3c5bd44
Author: Umang Jain <mailumangjain gmail com>
Date: Sat Oct 7 13:37:12 2017 +0530
shadows and highlights: Add basic UI structure
src/photos-tool-colors.c | 79 ++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 79 insertions(+), 0 deletions(-)
---
diff --git a/src/photos-tool-colors.c b/src/photos-tool-colors.c
index d2b37f7..7bdd447 100644
--- a/src/photos-tool-colors.c
+++ b/src/photos-tool-colors.c
@@ -45,7 +45,9 @@ struct _PhotosToolColors
GtkWidget *contrast_scale;
GtkWidget *exposure_scale;
GtkWidget *grid;
+ GtkWidget *highlights_scale;
GtkWidget *saturation_scale;
+ GtkWidget *shadows_scale;
guint blacks_exposure_value_changed_id;
guint brightness_contrast_value_changed_id;
guint saturation_value_changed_id;
@@ -76,10 +78,18 @@ static const gdouble EXPOSURE_DEFAULT = 0.0;
static const gdouble EXPOSURE_MAXIMUM = 3.0;
static const gdouble EXPOSURE_MINIMUM = -3.0;
static const gdouble EXPOSURE_STEP = 0.3;
+static const gdouble HIGHLIGHTS_DEFAULT = 1.0;
+static const gdouble HIGHLIGHTS_MAXIMUM = 2.0;
+static const gdouble HIGHLIGHTS_MINIMUM = 0.0;
+static const gdouble HIGHLIGHTS_STEP = 0.1;
static const gdouble SATURATION_DEFAULT = 1.0;
static const gdouble SATURATION_MAXIMUM = 2.0;
static const gdouble SATURATION_MINIMUM = 0.0;
static const gdouble SATURATION_STEP = 0.1;
+static const gdouble SHADOWS_DEFAULT = 1.0;
+static const gdouble SHADOWS_MAXIMUM = 2.0;
+static const gdouble SHADOWS_MINIMUM = 0.0;
+static const gdouble SHADOWS_STEP = 0.1;
static gboolean
@@ -186,6 +196,16 @@ photos_tool_colors_saturation_value_changed (PhotosToolColors *self)
static void
+photos_tool_colors_highlights_value_changed (PhotosToolColors *self)
+{}
+
+
+static void
+photos_tool_colors_shadows_value_changed (PhotosToolColors *self)
+{}
+
+
+static void
photos_tool_colors_activate (PhotosTool *tool, PhotosBaseItem *item, PhotosImageView *view)
{
PhotosToolColors *self = PHOTOS_TOOL_COLORS (tool);
@@ -194,7 +214,9 @@ photos_tool_colors_activate (PhotosTool *tool, PhotosBaseItem *item, PhotosImage
gdouble contrast;
gdouble contrast_real;
gdouble exposure;
+ gdouble highlights;
gdouble saturation;
+ gdouble shadows;
if (photos_base_item_operation_get (item,
"gegl:brightness-contrast",
@@ -219,11 +241,23 @@ photos_tool_colors_activate (PhotosTool *tool, PhotosBaseItem *item, PhotosImage
if (!photos_base_item_operation_get (item, "photos:saturation", "scale", &saturation, NULL))
saturation = SATURATION_DEFAULT;
+ if (!photos_base_item_operation_get (item,
+ "gegl:shadows-highlights",
+ "shadows", &shadows,
+ "highlights", &highlights,
+ NULL))
+ {
+ shadows = SHADOWS_DEFAULT;
+ highlights = HIGHLIGHTS_DEFAULT;
+ }
+
blacks = CLAMP (blacks, BLACKS_MINIMUM, BLACKS_MAXIMUM);
brightness = CLAMP (brightness, BRIGHTNESS_MINIMUM, BRIGHTNESS_MAXIMUM);
contrast = CLAMP (contrast, CONTRAST_MINIMUM, CONTRAST_MAXIMUM);
exposure = CLAMP (exposure, EXPOSURE_MINIMUM, EXPOSURE_MAXIMUM);
+ highlights = CLAMP (highlights, HIGHLIGHTS_MINIMUM, HIGHLIGHTS_MAXIMUM);
saturation = CLAMP (saturation, SATURATION_MINIMUM, SATURATION_MAXIMUM);
+ shadows = CLAMP (shadows, SHADOWS_MINIMUM, SHADOWS_MAXIMUM);
g_signal_handlers_block_by_func (self->blacks_scale, photos_tool_colors_blacks_exposure_value_changed,
self);
g_signal_handlers_block_by_func (self->brightness_scale,
@@ -233,12 +267,16 @@ photos_tool_colors_activate (PhotosTool *tool, PhotosBaseItem *item, PhotosImage
photos_tool_colors_brightness_contrast_value_changed,
self);
g_signal_handlers_block_by_func (self->exposure_scale, photos_tool_colors_blacks_exposure_value_changed,
self);
+ g_signal_handlers_block_by_func (self->highlights_scale, photos_tool_colors_highlights_value_changed,
self);
g_signal_handlers_block_by_func (self->saturation_scale, photos_tool_colors_saturation_value_changed,
self);
+ g_signal_handlers_block_by_func (self->shadows_scale, photos_tool_colors_shadows_value_changed, self);
gtk_range_set_value (GTK_RANGE (self->blacks_scale), blacks);
gtk_range_set_value (GTK_RANGE (self->brightness_scale), brightness);
gtk_range_set_value (GTK_RANGE (self->contrast_scale), contrast);
gtk_range_set_value (GTK_RANGE (self->exposure_scale), exposure);
+ gtk_range_set_value (GTK_RANGE (self->highlights_scale), highlights);
gtk_range_set_value (GTK_RANGE (self->saturation_scale), saturation);
+ gtk_range_set_value (GTK_RANGE (self->shadows_scale), shadows);
g_signal_handlers_unblock_by_func (self->blacks_scale, photos_tool_colors_blacks_exposure_value_changed,
self);
g_signal_handlers_unblock_by_func (self->brightness_scale,
photos_tool_colors_brightness_contrast_value_changed,
@@ -247,7 +285,9 @@ photos_tool_colors_activate (PhotosTool *tool, PhotosBaseItem *item, PhotosImage
photos_tool_colors_brightness_contrast_value_changed,
self);
g_signal_handlers_unblock_by_func (self->exposure_scale, photos_tool_colors_blacks_exposure_value_changed,
self);
+ g_signal_handlers_unblock_by_func (self->highlights_scale, photos_tool_colors_highlights_value_changed,
self);
g_signal_handlers_unblock_by_func (self->saturation_scale, photos_tool_colors_saturation_value_changed,
self);
+ g_signal_handlers_unblock_by_func (self->shadows_scale, photos_tool_colors_shadows_value_changed, self);
g_signal_emit_by_name (self, "activated");
}
@@ -413,6 +453,45 @@ photos_tool_colors_init (PhotosToolColors *self)
"value-changed",
G_CALLBACK (photos_tool_colors_saturation_value_changed),
self);
+
+ label = gtk_label_new (_("Shadows"));
+ gtk_widget_set_halign (label, GTK_ALIGN_START);
+ context = gtk_widget_get_style_context (label);
+ gtk_style_context_add_class (context, "dim-label");
+ gtk_container_add (GTK_CONTAINER (box), label);
+
+ self->shadows_scale = gtk_scale_new_with_range (GTK_ORIENTATION_HORIZONTAL,
+ SHADOWS_MINIMUM,
+ SHADOWS_MAXIMUM,
+ SHADOWS_STEP);
+ gtk_widget_set_hexpand (self->shadows_scale, TRUE);
+ gtk_scale_add_mark (GTK_SCALE (self->shadows_scale), SHADOWS_DEFAULT, GTK_POS_BOTTOM, NULL);
+ gtk_scale_set_draw_value (GTK_SCALE (self->shadows_scale), FALSE);
+ gtk_container_add (GTK_CONTAINER (box), self->shadows_scale);
+ g_signal_connect_swapped (self->shadows_scale,
+ "value-changed",
+ G_CALLBACK (photos_tool_colors_shadows_value_changed),
+ self);
+
+ label = gtk_label_new (_("Highlights"));
+ gtk_widget_set_halign (label, GTK_ALIGN_START);
+ context = gtk_widget_get_style_context (label);
+ gtk_style_context_add_class (context, "dim-label");
+ gtk_container_add (GTK_CONTAINER (box), label);
+
+ self->highlights_scale = gtk_scale_new_with_range (GTK_ORIENTATION_HORIZONTAL,
+ HIGHLIGHTS_MINIMUM,
+ HIGHLIGHTS_MAXIMUM,
+ HIGHLIGHTS_STEP);
+ gtk_widget_set_hexpand (self->highlights_scale, TRUE);
+ gtk_scale_add_mark (GTK_SCALE (self->highlights_scale), SHADOWS_DEFAULT, GTK_POS_BOTTOM, NULL);
+ gtk_scale_set_draw_value (GTK_SCALE (self->highlights_scale), FALSE);
+ gtk_container_add (GTK_CONTAINER (box), self->highlights_scale);
+ g_signal_connect_swapped (self->highlights_scale,
+ "value-changed",
+ G_CALLBACK (photos_tool_colors_highlights_value_changed),
+ self);
+
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]