diff options
author | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2012-05-18 13:49:47 +0200 |
---|---|---|
committer | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2012-05-18 13:59:40 +0200 |
commit | 14e1af63faa67c0ec800a8416671e9a9cb1db359 (patch) | |
tree | 12c58fb3a8a3b61a060a0924a404b79976dca6e6 /sc | |
parent | 9804981fa70aa12cbdbca61f1934acbb550768b8 (diff) |
paint gradients in data bars
Change-Id: I2b5488296d3ca8aee92f7999bd4d82a9c9eada88
Diffstat (limited to 'sc')
-rw-r--r-- | sc/source/core/data/colorscale.cxx | 2 | ||||
-rw-r--r-- | sc/source/ui/view/output.cxx | 23 |
2 files changed, 22 insertions, 3 deletions
diff --git a/sc/source/core/data/colorscale.cxx b/sc/source/core/data/colorscale.cxx index 501a094eca03..975e6e9a92de 100644 --- a/sc/source/core/data/colorscale.cxx +++ b/sc/source/core/data/colorscale.cxx @@ -657,6 +657,8 @@ ScDataBarInfo* ScDataBarFormat::GetDataBarInfo(const ScAddress& rAddr) const else pInfo->maColor = mpFormatData->maPositiveColor; + pInfo->mbGradient = mpFormatData->mbGradient; + return pInfo; } diff --git a/sc/source/ui/view/output.cxx b/sc/source/ui/view/output.cxx index c48b4f0faaff..0cb0f006a375 100644 --- a/sc/source/ui/view/output.cxx +++ b/sc/source/ui/view/output.cxx @@ -50,6 +50,7 @@ #include <basegfx/matrix/b2dhommatrix.hxx> #include <svx/sdr/contact/objectcontacttools.hxx> #include <vcl/lineinfo.hxx> +#include <vcl/gradient.hxx> #include <svx/unoapi.hxx> #include "output.hxx" @@ -830,9 +831,25 @@ void drawDataBars( const ScDataBarInfo* pOldDataBarInfo, OutputDevice* pDev, con else return; - //TODO: improve this for gradient fill - pDev->SetFillColor(pOldDataBarInfo->maColor); - pDev->DrawRect(aPaintRect); + if(pOldDataBarInfo->mbGradient) + { + pDev->SetLineColor(pOldDataBarInfo->maColor); + Gradient aGradient(GRADIENT_LINEAR, pOldDataBarInfo->maColor, COL_TRANSPARENT); + + if(pOldDataBarInfo->mnLength < 0) + aGradient.SetAngle(2700); + else + aGradient.SetAngle(900); + + pDev->DrawGradient(aPaintRect, aGradient); + + pDev->SetLineColor(); + } + else + { + pDev->SetFillColor(pOldDataBarInfo->maColor); + pDev->DrawRect(aPaintRect); + } //draw axis if(pOldDataBarInfo->mnZero) |