sc/inc/colorscale.hxx | 7 +++++++ sc/source/core/data/colorscale.cxx | 2 ++ sc/source/ui/view/output.cxx | 27 +++++++++++++++++++++++---- 3 files changed, 32 insertions(+), 4 deletions(-)
New commits: commit 24ad37bdf4edc8b9ea3af4eeb70c8487407d3472 Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Fri May 18 13:56:47 2012 +0200 MSVC needs new_clone for abstract class in ptr_vector See www.boost.org/doc/libs/1_49_0/libs/ptr_container/doc/tutorial.html#cloneability Change-Id: Ie5409c598f2364bc86f296dac4e9f193213d45c4 diff --git a/sc/inc/colorscale.hxx b/sc/inc/colorscale.hxx index a9a5211..b63bc66 100644 --- a/sc/inc/colorscale.hxx +++ b/sc/inc/colorscale.hxx @@ -230,4 +230,11 @@ public: size_t size() const; }; +// see http://www.boost.org/doc/libs/1_49_0/libs/ptr_container/doc/tutorial.html#cloneability +//for MSVC we need: +inline ScColorFormat* new_clone( const ScColorFormat& rFormat ) +{ + return rFormat.Clone(); +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ commit 14e1af63faa67c0ec800a8416671e9a9cb1db359 Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Fri May 18 13:49:47 2012 +0200 paint gradients in data bars Change-Id: I2b5488296d3ca8aee92f7999bd4d82a9c9eada88 diff --git a/sc/source/core/data/colorscale.cxx b/sc/source/core/data/colorscale.cxx index 501a094..975e6e9 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 c48b4f0..0cb0f00 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) commit 9804981fa70aa12cbdbca61f1934acbb550768b8 Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Fri May 18 13:13:32 2012 +0200 really use a dashed line Change-Id: Icbdf76c15a0b5f58f7e95029418ce79f6c9461b6 diff --git a/sc/source/ui/view/output.cxx b/sc/source/ui/view/output.cxx index f0d9827..c48b4f0 100644 --- a/sc/source/ui/view/output.cxx +++ b/sc/source/ui/view/output.cxx @@ -840,7 +840,9 @@ void drawDataBars( const ScDataBarInfo* pOldDataBarInfo, OutputDevice* pDev, con Point aPoint1(nPosZero, rRect.Top()); Point aPoint2(nPosZero, rRect.Bottom()); LineInfo aLineInfo(LINE_DASH, 1); - aLineInfo.SetDashCount( 5 ); + aLineInfo.SetDashCount( 4 ); + aLineInfo.SetDistance( 3 ); + aLineInfo.SetDashLen( 3 ); pDev->SetFillColor(COL_BLACK); pDev->SetLineColor(COL_BLACK); pDev->DrawLine(aPoint1, aPoint2, aLineInfo); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits