1 /************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 23 24 #ifndef _SDR_OVERLAY_OVERLAYANIMATEDBITMAPEX_HXX 25 #define _SDR_OVERLAY_OVERLAYANIMATEDBITMAPEX_HXX 26 27 #include <svx/sdr/overlay/overlayobject.hxx> 28 #include <vcl/bitmapex.hxx> 29 30 ////////////////////////////////////////////////////////////////////////////// 31 32 namespace sdr 33 { 34 namespace overlay 35 { 36 class SVX_DLLPUBLIC OverlayAnimatedBitmapEx : public OverlayObjectWithBasePosition 37 { 38 protected: 39 // the Bitmaps 40 BitmapEx maBitmapEx1; 41 BitmapEx maBitmapEx2; 42 43 // position of the basePosition inside the Bitmaps, in pixels 44 sal_uInt16 mnCenterX1; 45 sal_uInt16 mnCenterY1; 46 sal_uInt16 mnCenterX2; 47 sal_uInt16 mnCenterY2; 48 49 // #i53216# added CursorBlinkTime (in ms) 50 sal_uInt32 mnBlinkTime; 51 52 // optional shear and rotation 53 double mfShearX; 54 double mfRotation; 55 56 /// bitfield 57 // Flag to remember which state to draw. Inited with false (0) 58 bool mbOverlayState : 1; 59 60 // geometry creation for OverlayObject 61 virtual drawinglayer::primitive2d::Primitive2DSequence createOverlayObjectPrimitive2DSequence(); 62 63 public: 64 OverlayAnimatedBitmapEx( 65 const basegfx::B2DPoint& rBasePos, 66 const BitmapEx& rBitmapEx1, 67 const BitmapEx& rBitmapEx2, 68 sal_uInt32 nBlinkTime = 500, 69 sal_uInt16 nCenX1 = 0, 70 sal_uInt16 nCenY1 = 0, 71 sal_uInt16 nCenX2 = 0, 72 sal_uInt16 nCenY2 = 0, 73 double fShearX = 0.0, 74 double fRotation = 0.0); 75 virtual ~OverlayAnimatedBitmapEx(); 76 getBitmapEx1() const77 const BitmapEx& getBitmapEx1() const { return maBitmapEx1; } getBitmapEx2() const78 const BitmapEx& getBitmapEx2() const { return maBitmapEx2; } 79 void setBitmapEx1(const BitmapEx& rNew); 80 void setBitmapEx2(const BitmapEx& rNew); 81 getCenterX1() const82 sal_uInt16 getCenterX1() const { return mnCenterX1; } getCenterY1() const83 sal_uInt16 getCenterY1() const { return mnCenterY1; } getCenterX2() const84 sal_uInt16 getCenterX2() const { return mnCenterX2; } getCenterY2() const85 sal_uInt16 getCenterY2() const { return mnCenterY2; } 86 void setCenterXY1(sal_uInt16 nNewX, sal_uInt16 nNewY); 87 void setCenterXY2(sal_uInt16 nNewX, sal_uInt16 nNewY); 88 89 // #i53216# added CursorBlinkTime (in ms) getBlinkTime() const90 sal_uInt32 getBlinkTime() const { return mnBlinkTime; } 91 void setBlinkTime(sal_uInt32 nNew); 92 93 // execute event from base class ::sdr::animation::Event. Default 94 // implementation does nothing and does not create a new event. 95 virtual void Trigger(sal_uInt32 nTime); 96 97 // get shearX and rotation getShearX() const98 double getShearX() const { return mfShearX; } getRotation() const99 double getRotation() const { return mfRotation; } 100 }; 101 } // end of namespace overlay 102 } // end of namespace sdr 103 104 ////////////////////////////////////////////////////////////////////////////// 105 106 #endif //_SDR_OVERLAY_OVERLAYANIMATEDBITMAPEX_HXX 107 108 // eof 109