[haiku-commits] haiku: hrev48614 - src/kits/interface

  • From: pulkomandy@xxxxxxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Tue, 6 Jan 2015 11:41:47 +0100 (CET)

hrev48614 adds 1 changeset to branch 'master'
old head: 449e7cdde3711a50f80b405e416dfa51f9cb1622
new head: 2ba93e7d81442ec0ec0f2fc69de582dcb8added6
overview: http://cgit.haiku-os.org/haiku/log/?qt=range&q=2ba93e7+%5E449e7cd

----------------------------------------------------------------------------

2ba93e7: ColorControl: show the correct colors.
  
  BColorControl was recently modified to preview the colors in the
  sliders. However the computation was not correct and the colors shown
  were not useful.
  
  Fix the code so the correct colors are used. Since this can result in
  the sliders having very bright colors, change the selection rings to use
  black and white colors instead of just white, so they are always easily
  visible.

                                 [ Adrien Destugues <pulkomandy@xxxxxxxxx> ]

----------------------------------------------------------------------------

Revision:    hrev48614
Commit:      2ba93e7d81442ec0ec0f2fc69de582dcb8added6
URL:         http://cgit.haiku-os.org/haiku/commit/?id=2ba93e7
Author:      Adrien Destugues <pulkomandy@xxxxxxxxx>
Date:        Tue Jan  6 10:40:32 2015 UTC

----------------------------------------------------------------------------

1 file changed, 22 insertions(+), 34 deletions(-)
src/kits/interface/ColorControl.cpp | 56 +++++++++++++--------------------

----------------------------------------------------------------------------

diff --git a/src/kits/interface/ColorControl.cpp 
b/src/kits/interface/ColorControl.cpp
index 4488cec..1da6e90 100644
--- a/src/kits/interface/ColorControl.cpp
+++ b/src/kits/interface/ColorControl.cpp
@@ -462,11 +462,10 @@ BColorControl::_DrawColorArea(BView* target, BRect 
updateRect)
                        }
                }
        } else {
-               rgb_color color = ValueAsColor();
                rgb_color white = { 255, 255, 255, 255 };
-               rgb_color red   = { 255, color.green, color.blue, 255 };
-               rgb_color green = { color.red, 255, color.blue, 255 };
-               rgb_color blue  = { color.red, color.green, 255, 255 };
+               rgb_color red   = { 255, 0, 0, 255 };
+               rgb_color green = { 0, 255, 0, 255 };
+               rgb_color blue  = { 0, 0, 255, 255 };
 
                rgb_color compColor = { 0, 0, 0, 255 };
                if (!enabled) {
@@ -500,36 +499,22 @@ BColorControl::_DrawSelectors(BView* target)
        } else {
                rgb_color color = ValueAsColor();
                target->SetHighColor(255, 255, 255);
+               target->SetLowColor(0, 0, 0);
 
-               BPoint center = _SelectorPosition(_RampFrame(1), color.red);
-               if (fFocusedRamp == 1) {
-                       target->SetPenSize(kSelectorPenSize / 2);
-                       target->StrokeEllipse(center, kSelectorSize, 
kSelectorSize);
-                       target->StrokeEllipse(center, kSelectorSize / 2, 
kSelectorSize / 2);
-               } else {
-                       target->SetPenSize(kSelectorPenSize);
-                       target->StrokeEllipse(center, kSelectorSize / 2, 
kSelectorSize / 2);
-               }
-
-               center = _SelectorPosition(_RampFrame(2), color.green);
-               if (fFocusedRamp == 2) {
-                       target->SetPenSize(kSelectorPenSize / 2);
-                       target->StrokeEllipse(center, kSelectorSize, 
kSelectorSize);
-                       target->StrokeEllipse(center, kSelectorSize / 2, 
kSelectorSize / 2);
-               } else {
-                       target->SetPenSize(kSelectorPenSize);
-                       target->StrokeEllipse(center, kSelectorSize / 2, 
kSelectorSize / 2);
-               }
+               int components[4] = { color.alpha, color.red, color.green, 
color.blue };
 
+               for (int i = 1; i < 4; i++) {
+                       BPoint center = _SelectorPosition(_RampFrame(i), 
components[i]);
 
-               center = _SelectorPosition(_RampFrame(3), color.blue);
-               if (fFocusedRamp == 3) {
-                       target->SetPenSize(kSelectorPenSize / 2);
-                       target->StrokeEllipse(center, kSelectorSize, 
kSelectorSize);
-                       target->StrokeEllipse(center, kSelectorSize / 2, 
kSelectorSize / 2);
-               } else {
                        target->SetPenSize(kSelectorPenSize);
                        target->StrokeEllipse(center, kSelectorSize / 2, 
kSelectorSize / 2);
+                       target->SetPenSize(kSelectorPenSize / 2);
+                       target->StrokeEllipse(center, kSelectorSize, 
kSelectorSize,
+                               B_SOLID_LOW);
+                       if (i == fFocusedRamp) {
+                               target->StrokeEllipse(center,
+                                       kSelectorSize / 2, kSelectorSize / 2, 
B_SOLID_LOW);
+                       }
                }
 
                target->SetPenSize(1.0f);
@@ -543,7 +528,7 @@ BColorControl::_DrawColorRamp(BRect rect, BView* target,
        BRect updateRect)
 {
        float width = rect.Width() + 1;
-       rgb_color color;
+       rgb_color color = ValueAsColor();
        color.alpha = 255;
 
        updateRect = updateRect & rect;
@@ -553,10 +538,13 @@ BColorControl::_DrawColorRamp(BRect rect, BView* target,
 
                for (float i = (updateRect.left - rect.left);
                                i <= (updateRect.right - rect.left) + 1; i++) {
-                       color.red = (uint8)(i * baseColor.red / width) + 
compColor.red;
-                       color.green = (uint8)(i * baseColor.green / width)
-                               + compColor.green;
-                       color.blue = (uint8)(i * baseColor.blue / width) + 
compColor.blue;
+                       if (baseColor.red == 255)
+                               color.red = (uint8)(i * 255 / width) + 
compColor.red;
+                       if (baseColor.green == 255)
+                               color.green = (uint8)(i * 255 / width) + 
compColor.green;
+                       if (baseColor.blue == 255)
+                               color.blue = (uint8)(i * 255 / width) + 
compColor.blue;
+
                        target->AddLine(BPoint(rect.left + i, rect.top),
                                BPoint(rect.left + i, rect.bottom - 1), color);
                }


Other related posts:

  • » [haiku-commits] haiku: hrev48614 - src/kits/interface - pulkomandy