]> git.saurik.com Git - wxWidgets.git/commitdiff
No changes, just clean up duplicate colour functions in wxAUI.
authorVadim Zeitlin <vadim@wxwidgets.org>
Fri, 3 Dec 2010 12:40:23 +0000 (12:40 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Fri, 3 Dec 2010 12:40:23 +0000 (12:40 +0000)
Reuse wxcolour::AlphaBlend() and ChangeLightness() methods instead of
duplicating them in wxAUI-specific wxAui{Blend,Step}Colour().

See #12532.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66312 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/aui/auibar.cpp
src/aui/auibook.cpp
src/aui/dockart.cpp

index b9039efd55eeb182dfb3d11b3aad26d7f6e905f9..3885fdf078960efd0d3922a54f035ebbbfc1bb71 100644 (file)
@@ -69,9 +69,6 @@ const int BUTTON_DROPDOWN_WIDTH = 10;
 wxBitmap wxAuiBitmapFromBits(const unsigned char bits[], int w, int h,
                              const wxColour& color);
 
-unsigned char wxAuiBlendColour(unsigned char fg, unsigned char bg, double alpha);
-wxColor wxAuiStepColour(const wxColor& c, int percent);
-
 static wxBitmap MakeDisabledBitmap(wxBitmap& bmp)
 {
     wxImage image = bmp.ConvertToImage();
@@ -98,9 +95,9 @@ static wxBitmap MakeDisabledBitmap(wxBitmap& bmp)
             if (has_mask && *r == mr && *g == mg && *b == mb)
                 continue;
 
-            *r = wxAuiBlendColour(*r, 255, 0.4);
-            *g = wxAuiBlendColour(*g, 255, 0.4);
-            *b = wxAuiBlendColour(*b, 255, 0.4);
+            *r = wxColour::AlphaBlend(*r, 255, 0.4);
+            *g = wxColour::AlphaBlend(*g, 255, 0.4);
+            *b = wxColour::AlphaBlend(*b, 255, 0.4);
         }
     }
 
@@ -122,7 +119,7 @@ static wxColor GetBaseColor()
         (255-base_colour.Green()) +
         (255-base_colour.Blue()) < 60)
     {
-        base_colour = wxAuiStepColour(base_colour, 92);
+        base_colour = base_colour.ChangeLightness(92);
     }
 
     return base_colour;
@@ -158,7 +155,7 @@ private:
 
 
 static const unsigned char
-    DISABLED_TEXT_GREY_HUE = wxAuiBlendColour(0, 255, 0.4);
+    DISABLED_TEXT_GREY_HUE = wxColour::AlphaBlend(0, 255, 0.4);
 const wxColour DISABLED_TEXT_COLOR(DISABLED_TEXT_GREY_HUE,
                                    DISABLED_TEXT_GREY_HUE,
                                    DISABLED_TEXT_GREY_HUE);
@@ -175,11 +172,11 @@ wxAuiDefaultToolBarArt::wxAuiDefaultToolBarArt()
     m_gripper_size = 7;
     m_overflow_size = 16;
 
-    wxColor darker1_colour = wxAuiStepColour(m_base_colour, 85);
-    wxColor darker2_colour = wxAuiStepColour(m_base_colour, 75);
-    wxColor darker3_colour = wxAuiStepColour(m_base_colour, 60);
-    wxColor darker4_colour = wxAuiStepColour(m_base_colour, 50);
-    wxColor darker5_colour = wxAuiStepColour(m_base_colour, 40);
+    wxColor darker1_colour = m_base_colour.ChangeLightness(85);
+    wxColor darker2_colour = m_base_colour.ChangeLightness(75);
+    wxColor darker3_colour = m_base_colour.ChangeLightness(60);
+    wxColor darker4_colour = m_base_colour.ChangeLightness(50);
+    wxColor darker5_colour = m_base_colour.ChangeLightness(40);
 
     m_gripper_pen1 = wxPen(darker5_colour);
     m_gripper_pen2 = wxPen(darker3_colour);
@@ -247,8 +244,8 @@ void wxAuiDefaultToolBarArt::DrawBackground(
 {
     wxRect rect = _rect;
     rect.height++;
-    wxColour start_colour = wxAuiStepColour(m_base_colour, 150);
-    wxColour end_colour = wxAuiStepColour(m_base_colour, 90);
+    wxColour start_colour = m_base_colour.ChangeLightness(150);
+    wxColour end_colour = m_base_colour.ChangeLightness(90);
     dc.GradientFillLinear(rect, start_colour, end_colour, wxSOUTH);
 }
 
@@ -334,18 +331,18 @@ void wxAuiDefaultToolBarArt::DrawButton(
         if (item.GetState() & wxAUI_BUTTON_STATE_PRESSED)
         {
             dc.SetPen(wxPen(m_highlight_colour));
-            dc.SetBrush(wxBrush(wxAuiStepColour(m_highlight_colour, 150)));
+            dc.SetBrush(wxBrush(m_highlight_colour.ChangeLightness(150)));
             dc.DrawRectangle(rect);
         }
         else if ((item.GetState() & wxAUI_BUTTON_STATE_HOVER) || item.IsSticky())
         {
             dc.SetPen(wxPen(m_highlight_colour));
-            dc.SetBrush(wxBrush(wxAuiStepColour(m_highlight_colour, 170)));
+            dc.SetBrush(wxBrush(m_highlight_colour.ChangeLightness(170)));
 
             // draw an even lighter background for checked item hovers (since
             // the hover background is the same color as the check background)
             if (item.GetState() & wxAUI_BUTTON_STATE_CHECKED)
-                dc.SetBrush(wxBrush(wxAuiStepColour(m_highlight_colour, 180)));
+                dc.SetBrush(wxBrush(m_highlight_colour.ChangeLightness(180)));
 
             dc.DrawRectangle(rect);
         }
@@ -354,7 +351,7 @@ void wxAuiDefaultToolBarArt::DrawButton(
             // it's important to put this code in an else statment after the
             // hover, otherwise hovers won't draw properly for checked items
             dc.SetPen(wxPen(m_highlight_colour));
-            dc.SetBrush(wxBrush(wxAuiStepColour(m_highlight_colour, 170)));
+            dc.SetBrush(wxBrush(m_highlight_colour.ChangeLightness(170)));
             dc.DrawRectangle(rect);
         }
     }
@@ -454,17 +451,17 @@ void wxAuiDefaultToolBarArt::DrawDropDownButton(
     if (item.GetState() & wxAUI_BUTTON_STATE_PRESSED)
     {
         dc.SetPen(wxPen(m_highlight_colour));
-        dc.SetBrush(wxBrush(wxAuiStepColour(m_highlight_colour, 140)));
+        dc.SetBrush(wxBrush(m_highlight_colour.ChangeLightness(140)));
         dc.DrawRectangle(button_rect);
 
-        dc.SetBrush(wxBrush(wxAuiStepColour(m_highlight_colour, 170)));
+        dc.SetBrush(wxBrush(m_highlight_colour.ChangeLightness(170)));
         dc.DrawRectangle(dropdown_rect);
     }
     else if (item.GetState() & wxAUI_BUTTON_STATE_HOVER ||
              item.IsSticky())
     {
         dc.SetPen(wxPen(m_highlight_colour));
-        dc.SetBrush(wxBrush(wxAuiStepColour(m_highlight_colour, 170)));
+        dc.SetBrush(wxBrush(m_highlight_colour.ChangeLightness(170)));
         dc.DrawRectangle(button_rect);
         dc.DrawRectangle(dropdown_rect);
     }
@@ -641,8 +638,8 @@ void wxAuiDefaultToolBarArt::DrawSeparator(
         rect.width = new_width;
     }
 
-    wxColour start_colour = wxAuiStepColour(m_base_colour, 80);
-    wxColour end_colour = wxAuiStepColour(m_base_colour, 80);
+    wxColour start_colour = m_base_colour.ChangeLightness(80);
+    wxColour end_colour = m_base_colour.ChangeLightness(80);
     dc.GradientFillLinear(rect, start_colour, end_colour, horizontal ? wxSOUTH : wxEAST);
 }
 
@@ -694,7 +691,7 @@ void wxAuiDefaultToolBarArt::DrawOverflowButton(wxDC& dc,
         state & wxAUI_BUTTON_STATE_PRESSED)
     {
         wxRect cli_rect = wnd->GetClientRect();
-        wxColor light_gray_bg = wxAuiStepColour(m_highlight_colour, 170);
+        wxColor light_gray_bg = m_highlight_colour.ChangeLightness(170);
 
         if (m_flags & wxAUI_TB_VERTICAL)
         {
index 1c38e29e9909b2714038e3aa2acbcbc9022d354e..bc109ddec5ba1212ac6c0bbe863afd120f05145a 100644 (file)
@@ -68,8 +68,6 @@ IMPLEMENT_DYNAMIC_CLASS(wxAuiNotebookEvent, wxEvent)
 // these functions live in dockart.cpp -- they'll eventually
 // be moved to a new utility cpp file
 
-wxColor wxAuiStepColour(const wxColor& c, int percent);
-
 wxBitmap wxAuiBitmapFromBits(const unsigned char bits[], int w, int h,
                              const wxColour& color);
 
@@ -92,8 +90,8 @@ static void DrawButtons(wxDC& dc,
     if (button_state == wxAUI_BUTTON_STATE_HOVER ||
         button_state == wxAUI_BUTTON_STATE_PRESSED)
     {
-        dc.SetBrush(wxBrush(wxAuiStepColour(bkcolour, 120)));
-        dc.SetPen(wxPen(wxAuiStepColour(bkcolour, 75)));
+        dc.SetBrush(wxBrush(bkcolour.ChangeLightness(120)));
+        dc.SetPen(wxPen(bkcolour.ChangeLightness(75)));
 
         // draw the background behind the button
         dc.DrawRectangle(rect.x, rect.y, 15, 15);
@@ -205,11 +203,11 @@ wxAuiDefaultTabArt::wxAuiDefaultTabArt()
         (255-base_colour.Green()) +
         (255-base_colour.Blue()) < 60)
     {
-        base_colour = wxAuiStepColour(base_colour, 92);
+        base_colour = base_colour.ChangeLightness(92);
     }
 
     m_base_colour = base_colour;
-    wxColor border_colour = wxAuiStepColour(base_colour, 75);
+    wxColor border_colour = base_colour.ChangeLightness(75);
 
     m_border_pen = wxPen(border_colour);
     m_base_colour_pen = wxPen(m_base_colour);
@@ -281,8 +279,8 @@ void wxAuiDefaultTabArt::DrawBackground(wxDC& dc,
 {
     // draw background
 
-    wxColor top_color       = wxAuiStepColour(m_base_colour, 90);
-    wxColor bottom_color   = wxAuiStepColour(m_base_colour, 170);
+    wxColor top_color       = m_base_colour.ChangeLightness(90);
+    wxColor bottom_color   = m_base_colour.ChangeLightness(170);
     wxRect r;
 
    if (m_flags &wxAUI_NB_BOTTOM)
@@ -483,7 +481,7 @@ void wxAuiDefaultTabArt::DrawTab(wxDC& dc,
 
         // -- draw top gradient fill for glossy look
         wxColor top_color = m_base_colour;
-        wxColor bottom_color = wxAuiStepColour(top_color, 160);
+        wxColor bottom_color = top_color.ChangeLightness(160);
         dc.GradientFillLinear(r, bottom_color, top_color, wxNORTH);
 
         r.y += r.height;
@@ -505,7 +503,7 @@ void wxAuiDefaultTabArt::DrawTab(wxDC& dc,
     if (page.active)
     {
         if (m_flags &wxAUI_NB_BOTTOM)
-            dc.SetPen(wxPen(wxColour(wxAuiStepColour(m_base_colour, 170))));
+            dc.SetPen(wxPen(m_base_colour.ChangeLightness(170)));
         // TODO: else if (m_flags &wxAUI_NB_LEFT) {}
         // TODO: else if (m_flags &wxAUI_NB_RIGHT) {}
         else //for wxAUI_NB_TOP
index 227edd7a3b74edce690af7669cb01ad194b0e1de..eabee0f202849700b4acac2278a0b93671324452 100644 (file)
 // with custom dock art (probably by writing a new stand-alone class derived
 // from the wxAuiDockArt base class). The active dock art class can be set via
 // wxAuiManager::SetDockArt()
-
-
-// wxAuiBlendColour is used by wxAuiStepColour
-unsigned char wxAuiBlendColour(unsigned char fg, unsigned char bg, double alpha)
-{
-    double result = bg + (alpha * (fg - bg));
-    if (result < 0.0)
-        result = 0.0;
-    if (result > 255)
-        result = 255;
-    return (unsigned char)result;
-}
-
-// wxAuiStepColour() it a utility function that simply darkens
-// or lightens a color, based on the specified percentage
-// ialpha of 0 would be completely black, 100 completely white
-// an ialpha of 100 returns the same colour
-wxColor wxAuiStepColour(const wxColor& c, int ialpha)
-{
-    if (ialpha == 100)
-        return c;
-
-    unsigned char r = c.Red(),
-                  g = c.Green(),
-                  b = c.Blue();
-    unsigned char bg;
-
-    // ialpha is 0..200 where 0 is completely black
-    // and 200 is completely white and 100 is the same
-    // convert that to normal alpha 0.0 - 1.0
-    ialpha = wxMin(ialpha, 200);
-    ialpha = wxMax(ialpha, 0);
-    double alpha = ((double)(ialpha - 100.0))/100.0;
-
-    if (ialpha > 100)
-    {
-        // blend with white
-        bg = 255;
-        alpha = 1.0 - alpha;  // 0 = transparent fg; 1 = opaque fg
-    }
-    else
-    {
-        // blend with black
-        bg = 0;
-        alpha = 1.0 + alpha;  // 0 = transparent fg; 1 = opaque fg
-    }
-
-    r = wxAuiBlendColour(r, bg, alpha);
-    g = wxAuiBlendColour(g, bg, alpha);
-    b = wxAuiBlendColour(b, bg, alpha);
-
-    return wxColour(r, g, b);
-}
-
-
 wxColor wxAuiLightContrastColour(const wxColour& c)
 {
     int amount = 120;
@@ -118,7 +63,7 @@ wxColor wxAuiLightContrastColour(const wxColour& c)
     if (c.Red() < 128 && c.Green() < 128 && c.Blue() < 128)
         amount = 160;
 
-    return wxAuiStepColour(c, amount);
+    return c.ChangeLightness(amount);
 }
 
 // wxAuiBitmapFromBits() is a utility function that creates a
@@ -213,21 +158,21 @@ wxAuiDefaultDockArt::wxAuiDefaultDockArt()
         (255-base_colour.Green()) +
         (255-base_colour.Blue()) < 60)
     {
-        base_colour = wxAuiStepColour(base_colour, 92);
+        base_colour = base_colour.ChangeLightness(92);
     }
 
     m_base_colour = base_colour;
-    wxColor darker1_colour = wxAuiStepColour(base_colour, 85);
-    wxColor darker2_colour = wxAuiStepColour(base_colour, 75);
-    wxColor darker3_colour = wxAuiStepColour(base_colour, 60);
-    //wxColor darker4_colour = wxAuiStepColour(base_colour, 50);
-    wxColor darker5_colour = wxAuiStepColour(base_colour, 40);
+    wxColor darker1_colour = base_colour.ChangeLightness(85);
+    wxColor darker2_colour = base_colour.ChangeLightness(75);
+    wxColor darker3_colour = base_colour.ChangeLightness(60);
+    //wxColor darker4_colour = base_colour.ChangeLightness(50);
+    wxColor darker5_colour = base_colour.ChangeLightness(40);
 
     m_active_caption_colour = wxSystemSettings::GetColour(wxSYS_COLOUR_HIGHLIGHT);
     m_active_caption_gradient_colour = wxAuiLightContrastColour(wxSystemSettings::GetColour(wxSYS_COLOUR_HIGHLIGHT));
     m_active_caption_text_colour = wxSystemSettings::GetColour(wxSYS_COLOUR_HIGHLIGHTTEXT);
     m_inactive_caption_colour = darker1_colour;
-    m_inactive_caption_gradient_colour = wxAuiStepColour(base_colour, 97);
+    m_inactive_caption_gradient_colour = base_colour.ChangeLightness(97);
     m_inactive_caption_text_colour = *wxBLACK;
 
     m_sash_brush = wxBrush(base_colour);
@@ -394,8 +339,8 @@ void wxAuiDefaultDockArt::SetColour(int id, const wxColor& colour)
         case wxAUI_DOCKART_BORDER_COLOUR:                    m_border_pen.SetColour(colour); break;
         case wxAUI_DOCKART_GRIPPER_COLOUR:
             m_gripper_brush.SetColour(colour);
-            m_gripper_pen1.SetColour(wxAuiStepColour(colour, 40));
-            m_gripper_pen2.SetColour(wxAuiStepColour(colour, 60));
+            m_gripper_pen1.SetColour(colour.ChangeLightness(40));
+            m_gripper_pen2.SetColour(colour.ChangeLightness(60));
             break;
         default: wxFAIL_MSG(wxT("Invalid Metric Ordinal")); break;
     }
@@ -732,13 +677,13 @@ void wxAuiDefaultDockArt::DrawPaneButton(wxDC& dc, wxWindow *WXUNUSED(window),
     {
         if (pane.state & wxAuiPaneInfo::optionActive)
         {
-            dc.SetBrush(wxBrush(wxAuiStepColour(m_active_caption_colour, 120)));
-            dc.SetPen(wxPen(wxAuiStepColour(m_active_caption_colour, 70)));
+            dc.SetBrush(wxBrush(m_active_caption_colour.ChangeLightness(120)));
+            dc.SetPen(wxPen(m_active_caption_colour.ChangeLightness(70)));
         }
         else
         {
-            dc.SetBrush(wxBrush(wxAuiStepColour(m_inactive_caption_colour, 120)));
-            dc.SetPen(wxPen(wxAuiStepColour(m_inactive_caption_colour, 70)));
+            dc.SetBrush(wxBrush(m_inactive_caption_colour.ChangeLightness(120)));
+            dc.SetPen(wxPen(m_inactive_caption_colour.ChangeLightness(70)));
         }
 
         // draw the background behind the button