chart2/source/view/inc/DummyXShape.hxx | 5 +++ chart2/source/view/main/DummyXShape.cxx | 52 ++++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+)
New commits: commit 30f8d566bb11d2b514af0c449d00683a445505d8 Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Mon Feb 3 22:17:48 2014 +0100 improve diagram rendering Size and positioning look much better right now. Change-Id: I3422087967af1231e9e9fbaf87f1c7c2db25958a diff --git a/chart2/source/view/inc/DummyXShape.hxx b/chart2/source/view/inc/DummyXShape.hxx index eae679b..4ce530a 100644 --- a/chart2/source/view/inc/DummyXShape.hxx +++ b/chart2/source/view/inc/DummyXShape.hxx @@ -417,6 +417,11 @@ class DummyGroup2D : public DummyXShapes { public: DummyGroup2D(const OUString& rName); + + virtual ::com::sun::star::awt::Point SAL_CALL getPosition() throw(::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::awt::Size SAL_CALL getSize() throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setPosition( const ::com::sun::star::awt::Point& aPosition ) throw(::com::sun::star::uno::RuntimeException); + virtual void SAL_CALL setSize( const ::com::sun::star::awt::Size& aSize ) throw(::com::sun::star::beans::PropertyVetoException, ::com::sun::star::uno::RuntimeException); }; class DummyGroup3D : public DummyXShapes diff --git a/chart2/source/view/main/DummyXShape.cxx b/chart2/source/view/main/DummyXShape.cxx index 003afd2..9e957d2 100644 --- a/chart2/source/view/main/DummyXShape.cxx +++ b/chart2/source/view/main/DummyXShape.cxx @@ -805,6 +805,58 @@ DummyGroup2D::DummyGroup2D(const OUString& rName) setName(rName); } +awt::Point DummyGroup2D::getPosition() + throw(uno::RuntimeException) +{ + long nTop = std::numeric_limits<long>::max(); + long nLeft = std::numeric_limits<long>::max(); + for(std::vector<DummyXShape*>::iterator itr = maShapes.begin(), + itrEnd = maShapes.end(); itr != itrEnd; ++itr) + { + awt::Point aPoint = (*itr)->getPosition(); + if(aPoint.X >= 0 && aPoint.Y >= 0) + { + nLeft = std::min<long>(nLeft, aPoint.X); + nTop = std::min<long>(nTop, aPoint.Y); + } + } + + return awt::Point(nTop, nLeft); +} + +awt::Size DummyGroup2D::getSize() + throw(uno::RuntimeException) +{ + long nTop = std::numeric_limits<long>::max(); + long nLeft = std::numeric_limits<long>::max(); + long nBottom = 0; + long nRight = 0; + for(std::vector<DummyXShape*>::iterator itr = maShapes.begin(), + itrEnd = maShapes.end(); itr != itrEnd; ++itr) + { + awt::Point aPoint = (*itr)->getPosition(); + nLeft = std::min<long>(nLeft, aPoint.X); + nTop = std::min<long>(nTop, aPoint.Y); + awt::Size aSize = (*itr)->getSize(); + nRight = std::max<long>(nRight, aPoint.X + aSize.Width); + nBottom = std::max<long>(nBottom, aPoint.Y + aSize.Height); + } + + return awt::Size(nRight - nLeft, nBottom - nTop); +} + +void DummyGroup2D::setPosition( const awt::Point& ) + throw(uno::RuntimeException) +{ + SAL_WARN("chart2.opengl", "set position on group shape"); +} + +void DummyGroup2D::setSize( const awt::Size& ) + throw( beans::PropertyVetoException, uno::RuntimeException ) +{ + SAL_WARN("chart2.opengl", "set size on group shape"); +} + DummyGraphic2D::DummyGraphic2D(const drawing::Position3D& rPos, const drawing::Direction3D& rSize, const uno::Reference< graphic::XGraphic > xGraphic ): mxGraphic(xGraphic) _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits