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 // MARKER(update_precomp.py): autogen include statement, do not remove 29 #include "precompiled_svx.hxx" 30 #include <drawinglayer/primitive2d/unifiedtransparenceprimitive2d.hxx> 31 #include <svx/sdr/overlay/overlaybitmapex.hxx> 32 #include <vcl/salbtype.hxx> 33 #include <vcl/outdev.hxx> 34 #include <basegfx/matrix/b2dhommatrix.hxx> 35 #include <svx/sdr/overlay/overlaytools.hxx> 36 37 ////////////////////////////////////////////////////////////////////////////// 38 39 namespace sdr 40 { 41 namespace overlay 42 { 43 drawinglayer::primitive2d::Primitive2DSequence OverlayBitmapEx::createOverlayObjectPrimitive2DSequence() 44 { 45 drawinglayer::primitive2d::Primitive2DReference aReference( 46 new drawinglayer::primitive2d::OverlayBitmapExPrimitive( 47 getBitmapEx(), 48 getBasePosition(), 49 getCenterX(), 50 getCenterY())); 51 52 if(basegfx::fTools::more(mfAlpha, 0.0)) 53 { 54 const drawinglayer::primitive2d::Primitive2DSequence aNewTransPrimitiveVector(&aReference, 1L); 55 aReference = drawinglayer::primitive2d::Primitive2DReference( 56 new drawinglayer::primitive2d::UnifiedTransparencePrimitive2D(aNewTransPrimitiveVector, mfAlpha)); 57 } 58 59 return drawinglayer::primitive2d::Primitive2DSequence(&aReference, 1); 60 } 61 62 OverlayBitmapEx::OverlayBitmapEx( 63 const basegfx::B2DPoint& rBasePos, 64 const BitmapEx& rBitmapEx, 65 sal_uInt16 nCenX, sal_uInt16 nCenY, double fAlpha) 66 : OverlayObjectWithBasePosition(rBasePos, Color(COL_WHITE)), 67 maBitmapEx(rBitmapEx), 68 mnCenterX(nCenX), 69 mnCenterY(nCenY), 70 mfAlpha(fAlpha) 71 { 72 } 73 74 OverlayBitmapEx::~OverlayBitmapEx() 75 { 76 } 77 78 void OverlayBitmapEx::setBitmapEx(const BitmapEx& rNew) 79 { 80 if(rNew != maBitmapEx) 81 { 82 // remember new Bitmap 83 maBitmapEx = rNew; 84 85 // register change (after change) 86 objectChange(); 87 } 88 } 89 90 void OverlayBitmapEx::setCenterXY(sal_uInt16 nNewX, sal_uInt16 nNewY) 91 { 92 if(nNewX != mnCenterX || nNewY != mnCenterY) 93 { 94 // remember new values 95 if(nNewX != mnCenterX) 96 { 97 mnCenterX = nNewX; 98 } 99 100 if(nNewY != mnCenterY) 101 { 102 mnCenterY = nNewY; 103 } 104 105 // register change (after change) 106 objectChange(); 107 } 108 } 109 } // end of namespace overlay 110 } // end of namespace sdr 111 112 ////////////////////////////////////////////////////////////////////////////// 113 // eof 114