[gimp] Bug 773462 - Color Picker should support range...
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] Bug 773462 - Color Picker should support range...
- Date: Tue, 3 Jan 2017 00:22:21 +0000 (UTC)
commit 237d83dc7fdbe758a61fb2047a9953f9a7f79213
Author: Michael Natterer <mitch gimp org>
Date: Tue Jan 3 01:20:30 2017 +0100
Bug 773462 - Color Picker should support range...
...regardless of image color precision
Split enum value GIMP_COLOR_FRAME_MODE_RGB into RGB_PERCENT and RGB_U8,
which display the current % values, and values in a range of 0..255.
app/display/gimpcursorview.c | 2 +-
app/tools/gimpcolorpickertool.c | 2 +-
app/widgets/gimpcolorframe.c | 34 +++++++++++++++++++++-------------
app/widgets/widgets-enums.c | 6 ++++--
app/widgets/widgets-enums.h | 9 +++++----
5 files changed, 32 insertions(+), 21 deletions(-)
---
diff --git a/app/display/gimpcursorview.c b/app/display/gimpcursorview.c
index 89c4590..0e35aab 100644
--- a/app/display/gimpcursorview.c
+++ b/app/display/gimpcursorview.c
@@ -321,7 +321,7 @@ gimp_cursor_view_init (GimpCursorView *view)
view->priv->color_frame_2 = gimp_color_frame_new ();
gimp_color_frame_set_mode (GIMP_COLOR_FRAME (view->priv->color_frame_2),
- GIMP_COLOR_FRAME_MODE_RGB);
+ GIMP_COLOR_FRAME_MODE_RGB_PERCENT);
gtk_box_pack_start (GTK_BOX (view->priv->color_hbox), view->priv->color_frame_2,
TRUE, TRUE, 0);
gtk_widget_show (view->priv->color_frame_2);
diff --git a/app/tools/gimpcolorpickertool.c b/app/tools/gimpcolorpickertool.c
index 70e3a09..8b92b04 100644
--- a/app/tools/gimpcolorpickertool.c
+++ b/app/tools/gimpcolorpickertool.c
@@ -376,7 +376,7 @@ gimp_color_picker_tool_info_create (GimpColorPickerTool *picker_tool)
gimp_color_frame_set_color_config (GIMP_COLOR_FRAME (picker_tool->color_frame2),
context->gimp->config->color_management);
gimp_color_frame_set_mode (GIMP_COLOR_FRAME (picker_tool->color_frame2),
- GIMP_COLOR_FRAME_MODE_RGB);
+ GIMP_COLOR_FRAME_MODE_RGB_PERCENT);
gtk_box_pack_start (GTK_BOX (hbox), picker_tool->color_frame2,
FALSE, FALSE, 0);
gtk_widget_show (picker_tool->color_frame2);
diff --git a/app/widgets/gimpcolorframe.c b/app/widgets/gimpcolorframe.c
index 5784bc2..2d52477 100644
--- a/app/widgets/gimpcolorframe.c
+++ b/app/widgets/gimpcolorframe.c
@@ -660,7 +660,8 @@ gimp_color_frame_update (GimpColorFrame *frame)
}
break;
- case GIMP_COLOR_FRAME_MODE_RGB:
+ case GIMP_COLOR_FRAME_MODE_RGB_PERCENT:
+ case GIMP_COLOR_FRAME_MODE_RGB_U8:
names[0] = _("Red:");
names[1] = _("Green:");
names[2] = _("Blue:");
@@ -668,23 +669,30 @@ gimp_color_frame_update (GimpColorFrame *frame)
if (has_alpha)
names[3] = _("Alpha:");
- if (frame->sample_valid)
- {
- values = g_new0 (gchar *, 6);
-
- values[0] = g_strdup_printf ("%.01f %%", frame->color.r * 100.0);
- values[1] = g_strdup_printf ("%.01f %%", frame->color.g * 100.0);
- values[2] = g_strdup_printf ("%.01f %%", frame->color.b * 100.0);
- values[3] = g_strdup_printf ("%.01f %%", frame->color.a * 100.0);
- }
-
names[4] = _("Hex:");
if (frame->sample_valid)
{
- guchar r, g, b;
+ guchar r, g, b, a;
+
+ values = g_new0 (gchar *, 6);
+
+ gimp_rgba_get_uchar (&frame->color, &r, &g, &b, &a);
- gimp_rgb_get_uchar (&frame->color, &r, &g, &b);
+ if (frame->frame_mode == GIMP_COLOR_FRAME_MODE_RGB_PERCENT)
+ {
+ values[0] = g_strdup_printf ("%.01f %%", frame->color.r * 100.0);
+ values[1] = g_strdup_printf ("%.01f %%", frame->color.g * 100.0);
+ values[2] = g_strdup_printf ("%.01f %%", frame->color.b * 100.0);
+ values[3] = g_strdup_printf ("%.01f %%", frame->color.a * 100.0);
+ }
+ else
+ {
+ values[0] = g_strdup_printf ("%d", r);
+ values[1] = g_strdup_printf ("%d", g);
+ values[2] = g_strdup_printf ("%d", b);
+ values[3] = g_strdup_printf ("%d", a);
+ }
values[4] = g_strdup_printf ("%.2x%.2x%.2x", r, g, b);
}
diff --git a/app/widgets/widgets-enums.c b/app/widgets/widgets-enums.c
index bf14943..d8365f1 100644
--- a/app/widgets/widgets-enums.c
+++ b/app/widgets/widgets-enums.c
@@ -103,7 +103,8 @@ gimp_color_frame_mode_get_type (void)
static const GEnumValue values[] =
{
{ GIMP_COLOR_FRAME_MODE_PIXEL, "GIMP_COLOR_FRAME_MODE_PIXEL", "pixel" },
- { GIMP_COLOR_FRAME_MODE_RGB, "GIMP_COLOR_FRAME_MODE_RGB", "rgb" },
+ { GIMP_COLOR_FRAME_MODE_RGB_PERCENT, "GIMP_COLOR_FRAME_MODE_RGB_PERCENT", "rgb-percent" },
+ { GIMP_COLOR_FRAME_MODE_RGB_U8, "GIMP_COLOR_FRAME_MODE_RGB_U8", "rgb-u8" },
{ GIMP_COLOR_FRAME_MODE_HSV, "GIMP_COLOR_FRAME_MODE_HSV", "hsv" },
{ GIMP_COLOR_FRAME_MODE_CMYK, "GIMP_COLOR_FRAME_MODE_CMYK", "cmyk" },
{ 0, NULL, NULL }
@@ -112,7 +113,8 @@ gimp_color_frame_mode_get_type (void)
static const GimpEnumDesc descs[] =
{
{ GIMP_COLOR_FRAME_MODE_PIXEL, NC_("color-frame-mode", "Pixel"), NULL },
- { GIMP_COLOR_FRAME_MODE_RGB, NC_("color-frame-mode", "RGB"), NULL },
+ { GIMP_COLOR_FRAME_MODE_RGB_PERCENT, NC_("color-frame-mode", "RGB (%)"), NULL },
+ { GIMP_COLOR_FRAME_MODE_RGB_U8, NC_("color-frame-mode", "RGB (0..255)"), NULL },
{ GIMP_COLOR_FRAME_MODE_HSV, NC_("color-frame-mode", "HSV"), NULL },
{ GIMP_COLOR_FRAME_MODE_CMYK, NC_("color-frame-mode", "CMYK"), NULL },
{ 0, NULL, NULL }
diff --git a/app/widgets/widgets-enums.h b/app/widgets/widgets-enums.h
index 0bd7ead..a1f2780 100644
--- a/app/widgets/widgets-enums.h
+++ b/app/widgets/widgets-enums.h
@@ -63,10 +63,11 @@ GType gimp_color_frame_mode_get_type (void) G_GNUC_CONST;
typedef enum
{
- GIMP_COLOR_FRAME_MODE_PIXEL, /*< desc="Pixel" >*/
- GIMP_COLOR_FRAME_MODE_RGB, /*< desc="RGB" >*/
- GIMP_COLOR_FRAME_MODE_HSV, /*< desc="HSV" >*/
- GIMP_COLOR_FRAME_MODE_CMYK /*< desc="CMYK" >*/
+ GIMP_COLOR_FRAME_MODE_PIXEL, /*< desc="Pixel" >*/
+ GIMP_COLOR_FRAME_MODE_RGB_PERCENT, /*< desc="RGB (%)" >*/
+ GIMP_COLOR_FRAME_MODE_RGB_U8, /*< desc="RGB (0..255)" >*/
+ GIMP_COLOR_FRAME_MODE_HSV, /*< desc="HSV" >*/
+ GIMP_COLOR_FRAME_MODE_CMYK /*< desc="CMYK" >*/
} GimpColorFrameMode;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]