]> git.saurik.com Git - wxWidgets.git/blobdiff - src/aui/dockart.cpp
DoGetBestSize fix, the lbWidth was not getting updated because of a
[wxWidgets.git] / src / aui / dockart.cpp
index 44c84e3b498eb163af30f4fdf78b4eb7a2559ce1..f2bfb08188d9835337b89255f6ca5f8171a8e3c4 100644 (file)
@@ -103,7 +103,7 @@ wxColor wxAuiStepColour(const wxColor& c, int ialpha)
     g = wxAuiBlendColour(g, bg, alpha);
     b = wxAuiBlendColour(b, bg, alpha);
     
-    return wxColour((int)r, (int)g, (int)b);
+    return wxColour((unsigned char)r, (unsigned char)g, (unsigned char)b);
 }
 
 
@@ -153,9 +153,9 @@ static void DrawGradientRectangle(wxDC& dc,
         int r,g,b;
         
         
-        r = start_color.Red() + ((i*rd*100)/high)/100;
-        g = start_color.Green() + ((i*gd*100)/high)/100;
-        b = start_color.Blue() + ((i*bd*100)/high)/100;
+        r = start_color.Red() + (high <= 0 ? 0 : (((i*rd*100)/high)/100));
+        g = start_color.Green() + (high <= 0 ? 0 : (((i*gd*100)/high)/100));
+        b = start_color.Blue() + (high <= 0 ? 0 : (((i*bd*100)/high)/100));
 
         wxPen p(wxColor((unsigned char)r,
                         (unsigned char)g,
@@ -207,6 +207,15 @@ wxAuiDefaultDockArt::wxAuiDefaultDockArt()
     wxColor base_colour = wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE);
 #endif
 
+    // the base_colour is too pale to use as our base colour,
+    // so darken it a bit --
+    if ((255-base_colour.Red()) +
+        (255-base_colour.Green()) +
+        (255-base_colour.Blue()) < 60)
+    {
+        base_colour = wxAuiStepColour(base_colour, 92);
+    }
+    
     m_base_colour = base_colour;
     wxColor darker1_colour = wxAuiStepColour(base_colour, 85);
     wxColor darker2_colour = wxAuiStepColour(base_colour, 75);