1 /************************************************************************* 2 * 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * Copyright 2000, 2010 Oracle and/or its affiliates. 6 * 7 * OpenOffice.org - a multi-platform office productivity suite 8 * 9 * This file is part of OpenOffice.org. 10 * 11 * OpenOffice.org is free software: you can redistribute it and/or modify 12 * it under the terms of the GNU Lesser General Public License version 3 13 * only, as published by the Free Software Foundation. 14 * 15 * OpenOffice.org is distributed in the hope that it will be useful, 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * GNU Lesser General Public License version 3 for more details 19 * (a copy is included in the LICENSE file that accompanied this code). 20 * 21 * You should have received a copy of the GNU Lesser General Public License 22 * version 3 along with OpenOffice.org. If not, see 23 * <http://www.openoffice.org/license.html> 24 * for a copy of the LGPLv3 License. 25 * 26 ************************************************************************/ 27 28 #ifndef _CHART2_VIEW_LABELPOSITIONHELPER_HXX 29 #define _CHART2_VIEW_LABELPOSITIONHELPER_HXX 30 31 #include "LabelAlignment.hxx" 32 #include "PropertyMapper.hxx" 33 #include <com/sun/star/awt/Point.hpp> 34 #include <com/sun/star/drawing/Position3D.hpp> 35 #include <com/sun/star/drawing/XShapes.hpp> 36 37 //............................................................................. 38 namespace chart 39 { 40 //............................................................................. 41 42 //----------------------------------------------------------------------------- 43 /** 44 */ 45 class PlottingPositionHelper; 46 class ShapeFactory; 47 48 class LabelPositionHelper 49 { 50 public: 51 LabelPositionHelper( 52 PlottingPositionHelper* pPosHelper 53 , sal_Int32 nDimensionCount 54 , const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShapes >& xLogicTarget 55 , ShapeFactory* pShapeFactory ); 56 virtual ~LabelPositionHelper(); 57 58 ::com::sun::star::awt::Point transformSceneToScreenPosition( 59 const ::com::sun::star::drawing::Position3D& rScenePosition3D ) const; 60 61 static void changeTextAdjustment( tAnySequence& rPropValues, const tNameSequence& rPropNames, LabelAlignment eAlignment); 62 static void doDynamicFontResize( tAnySequence& rPropValues, const tNameSequence& rPropNames 63 , const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& xAxisModelProps 64 , const ::com::sun::star::awt::Size& rNewReferenceSize ); 65 66 static void correctPositionForRotation( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape >& xShape2DText 67 , LabelAlignment eLabelAlignment, const double fRotationAngle, bool bRotateAroundCenter ); 68 69 private: 70 LabelPositionHelper(); 71 72 protected: 73 PlottingPositionHelper* m_pPosHelper; 74 sal_Int32 m_nDimensionCount; 75 76 private: 77 //these members are only necessary for transformation from 3D to 2D 78 ::com::sun::star::uno::Reference< 79 ::com::sun::star::drawing::XShapes > m_xLogicTarget; 80 ShapeFactory* m_pShapeFactory; 81 }; 82 83 //............................................................................. 84 } //namespace chart 85 //............................................................................. 86 #endif 87