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 _SVDOVIRT_HXX 25 #define _SVDOVIRT_HXX 26 27 #include <svx/svdobj.hxx> 28 #include "svx/svxdllapi.h" 29 30 //////////////////////////////////////////////////////////////////////////////////////////////////// 31 // 32 // SdrVirtObj 33 // 34 // Achtung! Das virtuelle Objekt ist noch nicht bis in alle Feinheiten 35 // durchprogrammiert und getestet. Z.Zt. kommt es nur in abgeleiteter 36 // beim Writer zum Einsatz. 37 // 38 //////////////////////////////////////////////////////////////////////////////////////////////////// 39 40 class SVX_DLLPUBLIC SdrVirtObj : public SdrObject 41 { 42 public: 43 virtual sdr::properties::BaseProperties& GetProperties() const; 44 45 protected: 46 virtual sdr::contact::ViewContact* CreateObjectSpecificViewContact(); 47 48 SdrObject& rRefObj; // Referenziertes Zeichenobjekt 49 Rectangle aSnapRect; 50 51 protected: 52 virtual void Notify(SfxBroadcaster& rBC, const SfxHint& rHint); 53 54 virtual SdrObjGeoData* NewGeoData() const; 55 virtual void SaveGeoData(SdrObjGeoData& rGeo) const; 56 virtual void RestGeoData(const SdrObjGeoData& rGeo); 57 58 public: 59 TYPEINFO(); 60 SdrVirtObj(SdrObject& rNewObj); 61 SdrVirtObj(SdrObject& rNewObj, const Point& rAnchorPos); 62 virtual ~SdrVirtObj(); 63 virtual SdrObject& ReferencedObj(); 64 virtual const SdrObject& GetReferencedObj() const; 65 virtual void NbcSetAnchorPos(const Point& rAnchorPos); 66 virtual void SetModel(SdrModel* pNewModel); 67 68 virtual void TakeObjInfo(SdrObjTransformInfoRec& rInfo) const; 69 virtual sal_uInt32 GetObjInventor() const; 70 virtual sal_uInt16 GetObjIdentifier() const; 71 virtual SdrObjList* GetSubList() const; 72 73 virtual const Rectangle& GetCurrentBoundRect() const; 74 virtual const Rectangle& GetLastBoundRect() const; 75 virtual void RecalcBoundRect(); 76 virtual void SetChanged(); 77 virtual SdrObject* Clone() const; 78 virtual void operator=(const SdrObject& rObj); 79 80 virtual void TakeObjNameSingul(String& rName) const; 81 virtual void TakeObjNamePlural(String& rName) const; 82 83 virtual basegfx::B2DPolyPolygon TakeXorPoly() const; 84 virtual sal_uInt32 GetHdlCount() const; 85 virtual SdrHdl* GetHdl(sal_uInt32 nHdlNum) const; 86 virtual sal_uInt32 GetPlusHdlCount(const SdrHdl& rHdl) const; 87 virtual SdrHdl* GetPlusHdl(const SdrHdl& rHdl, sal_uInt32 nPlNum) const; 88 virtual void AddToHdlList(SdrHdlList& rHdlList) const; 89 90 // special drag methods 91 virtual bool hasSpecialDrag() const; 92 virtual bool beginSpecialDrag(SdrDragStat& rDrag) const; 93 virtual bool applySpecialDrag(SdrDragStat& rDrag); 94 virtual String getSpecialDragComment(const SdrDragStat& rDrag) const; 95 virtual basegfx::B2DPolyPolygon getSpecialDragPoly(const SdrDragStat& rDrag) const; 96 97 // FullDrag support 98 virtual bool supportsFullDrag() const; 99 virtual SdrObject* getFullDragClone() const; 100 101 virtual FASTBOOL BegCreate(SdrDragStat& rStat); 102 virtual FASTBOOL MovCreate(SdrDragStat& rStat); 103 virtual FASTBOOL EndCreate(SdrDragStat& rStat, SdrCreateCmd eCmd); 104 virtual FASTBOOL BckCreate(SdrDragStat& rStat); 105 virtual void BrkCreate(SdrDragStat& rStat); 106 virtual basegfx::B2DPolyPolygon TakeCreatePoly(const SdrDragStat& rDrag) const; 107 108 virtual void NbcMove(const Size& rSiz); 109 virtual void NbcResize(const Point& rRef, const Fraction& xFact, const Fraction& yFact); 110 virtual void NbcRotate(const Point& rRef, long nWink, double sn, double cs); 111 virtual void NbcMirror(const Point& rRef1, const Point& rRef2); 112 virtual void NbcShear(const Point& rRef, long nWink, double tn, FASTBOOL bVShear); 113 114 virtual void Move(const Size& rSiz); 115 virtual void Resize(const Point& rRef, const Fraction& xFact, const Fraction& yFact); 116 virtual void Rotate(const Point& rRef, long nWink, double sn, double cs); 117 virtual void Mirror(const Point& rRef1, const Point& rRef2); 118 virtual void Shear(const Point& rRef, long nWink, double tn, FASTBOOL bVShear); 119 120 virtual void RecalcSnapRect(); 121 virtual const Rectangle& GetSnapRect() const; 122 virtual void SetSnapRect(const Rectangle& rRect); 123 virtual void NbcSetSnapRect(const Rectangle& rRect); 124 125 virtual const Rectangle& GetLogicRect() const; 126 virtual void SetLogicRect(const Rectangle& rRect); 127 virtual void NbcSetLogicRect(const Rectangle& rRect); 128 129 virtual long GetRotateAngle() const; 130 virtual long GetShearAngle(FASTBOOL bVertical=sal_False) const; 131 132 virtual sal_uInt32 GetSnapPointCount() const; 133 virtual Point GetSnapPoint(sal_uInt32 i) const; 134 135 virtual sal_Bool IsPolyObj() const; 136 virtual sal_uInt32 GetPointCount() const; 137 virtual Point GetPoint(sal_uInt32 i) const; 138 virtual void NbcSetPoint(const Point& rPnt, sal_uInt32 i); 139 140 virtual SdrObjGeoData* GetGeoData() const; 141 virtual void SetGeoData(const SdrObjGeoData& rGeo); 142 143 virtual void NbcReformatText(); 144 virtual void ReformatText(); 145 146 virtual FASTBOOL HasMacro() const; 147 virtual SdrObject* CheckMacroHit (const SdrObjMacroHitRec& rRec) const; 148 virtual Pointer GetMacroPointer (const SdrObjMacroHitRec& rRec) const; 149 virtual void PaintMacro (OutputDevice& rOut, const Rectangle& rDirtyRect, const SdrObjMacroHitRec& rRec) const; 150 virtual FASTBOOL DoMacro (const SdrObjMacroHitRec& rRec); 151 virtual XubString GetMacroPopupComment(const SdrObjMacroHitRec& rRec) const; 152 153 // OD 30.06.2003 #108784# - virtual <GetOffset()> returns Point(0,0) 154 // #i73248# for default SdrVirtObj, offset is aAnchor, not (0,0) 155 virtual const Point GetOffset() const; 156 }; 157 158 //////////////////////////////////////////////////////////////////////////////////////////////////// 159 160 #endif //_SVDOVIRT_HXX 161 162