1*3334a7e6SAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 3*3334a7e6SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4*3334a7e6SAndrew Rist * or more contributor license agreements. See the NOTICE file 5*3334a7e6SAndrew Rist * distributed with this work for additional information 6*3334a7e6SAndrew Rist * regarding copyright ownership. The ASF licenses this file 7*3334a7e6SAndrew Rist * to you under the Apache License, Version 2.0 (the 8*3334a7e6SAndrew Rist * "License"); you may not use this file except in compliance 9*3334a7e6SAndrew Rist * with the License. You may obtain a copy of the License at 10cdf0e10cSrcweir * 11*3334a7e6SAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12cdf0e10cSrcweir * 13*3334a7e6SAndrew Rist * Unless required by applicable law or agreed to in writing, 14*3334a7e6SAndrew Rist * software distributed under the License is distributed on an 15*3334a7e6SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*3334a7e6SAndrew Rist * KIND, either express or implied. See the License for the 17*3334a7e6SAndrew Rist * specific language governing permissions and limitations 18*3334a7e6SAndrew Rist * under the License. 19cdf0e10cSrcweir * 20*3334a7e6SAndrew Rist *************************************************************/ 21*3334a7e6SAndrew Rist 22*3334a7e6SAndrew Rist 23cdf0e10cSrcweir 24cdf0e10cSrcweir #ifndef INCLUDED_SDR_PRIMITIVE2D_SDCUSTOMSHAPEPRIMITIVE2D_HXX 25cdf0e10cSrcweir #define INCLUDED_SDR_PRIMITIVE2D_SDCUSTOMSHAPEPRIMITIVE2D_HXX 26cdf0e10cSrcweir 27cdf0e10cSrcweir #include <drawinglayer/primitive2d/baseprimitive2d.hxx> 28cdf0e10cSrcweir #include <basegfx/matrix/b2dhommatrix.hxx> 29cdf0e10cSrcweir #include <svx/sdr/attribute/sdrshadowtextattribute.hxx> 30cdf0e10cSrcweir 31cdf0e10cSrcweir ////////////////////////////////////////////////////////////////////////////// 32cdf0e10cSrcweir // predefines 33cdf0e10cSrcweir 34cdf0e10cSrcweir ////////////////////////////////////////////////////////////////////////////// 35cdf0e10cSrcweir 36cdf0e10cSrcweir namespace drawinglayer 37cdf0e10cSrcweir { 38cdf0e10cSrcweir namespace primitive2d 39cdf0e10cSrcweir { 40cdf0e10cSrcweir class SdrCustomShapePrimitive2D : public BufferedDecompositionPrimitive2D 41cdf0e10cSrcweir { 42cdf0e10cSrcweir private: 43cdf0e10cSrcweir attribute::SdrShadowTextAttribute maSdrSTAttribute; 44cdf0e10cSrcweir Primitive2DSequence maSubPrimitives; 45cdf0e10cSrcweir basegfx::B2DHomMatrix maTextBox; 46cdf0e10cSrcweir 47cdf0e10cSrcweir // bitfield 48cdf0e10cSrcweir // defines if SdrTextWordWrapItem was set at SdrObjCustomShape which means 49cdf0e10cSrcweir // that the text needs to be block formatted 50cdf0e10cSrcweir unsigned mbWordWrap : 1; 51cdf0e10cSrcweir 52cdf0e10cSrcweir // defines that the object contains/is a 3D AutoShape. Needed for 53cdf0e10cSrcweir // making exceptions with shadow generation 54cdf0e10cSrcweir unsigned mb3DShape : 1; 55cdf0e10cSrcweir 56cdf0e10cSrcweir // #SJ# Allow text clipping against TextBox in special cases (used for SC) 57cdf0e10cSrcweir unsigned mbForceTextClipToTextRange : 1; 58cdf0e10cSrcweir 59cdf0e10cSrcweir protected: 60cdf0e10cSrcweir // local decomposition. 61cdf0e10cSrcweir virtual Primitive2DSequence create2DDecomposition(const geometry::ViewInformation2D& aViewInformation) const; 62cdf0e10cSrcweir 63cdf0e10cSrcweir public: 64cdf0e10cSrcweir SdrCustomShapePrimitive2D( 65cdf0e10cSrcweir const attribute::SdrShadowTextAttribute& rSdrSTAttribute, 66cdf0e10cSrcweir const Primitive2DSequence& rSubPrimitives, 67cdf0e10cSrcweir const basegfx::B2DHomMatrix& rTextBox, 68cdf0e10cSrcweir bool bWordWrap, 69cdf0e10cSrcweir bool b3DShape, 70cdf0e10cSrcweir bool bForceTextClipToTextRange); 71cdf0e10cSrcweir 72cdf0e10cSrcweir // data access getSdrSTAttribute() const73cdf0e10cSrcweir const attribute::SdrShadowTextAttribute& getSdrSTAttribute() const { return maSdrSTAttribute; } getSubPrimitives() const74cdf0e10cSrcweir const Primitive2DSequence& getSubPrimitives() const { return maSubPrimitives; } getTextBox() const75cdf0e10cSrcweir const basegfx::B2DHomMatrix& getTextBox() const { return maTextBox; } getWordWrap() const76cdf0e10cSrcweir bool getWordWrap() const { return mbWordWrap; } get3DShape() const77cdf0e10cSrcweir bool get3DShape() const { return mb3DShape; } isForceTextClipToTextRange() const78cdf0e10cSrcweir bool isForceTextClipToTextRange() const { return mbForceTextClipToTextRange; } 79cdf0e10cSrcweir 80cdf0e10cSrcweir // compare operator 81cdf0e10cSrcweir virtual bool operator==(const BasePrimitive2D& rPrimitive) const; 82cdf0e10cSrcweir 83cdf0e10cSrcweir // provide unique ID 84cdf0e10cSrcweir DeclPrimitrive2DIDBlock() 85cdf0e10cSrcweir }; 86cdf0e10cSrcweir } // end of namespace primitive2d 87cdf0e10cSrcweir } // end of namespace drawinglayer 88cdf0e10cSrcweir 89cdf0e10cSrcweir ////////////////////////////////////////////////////////////////////////////// 90cdf0e10cSrcweir 91cdf0e10cSrcweir #endif //INCLUDED_SDR_PRIMITIVE2D_SDCUSTOMSHAPEPRIMITIVE2D_HXX 92cdf0e10cSrcweir 93cdf0e10cSrcweir // eof 94