| /************************************************************** | 
 |  *  | 
 |  * Licensed to the Apache Software Foundation (ASF) under one | 
 |  * or more contributor license agreements.  See the NOTICE file | 
 |  * distributed with this work for additional information | 
 |  * regarding copyright ownership.  The ASF licenses this file | 
 |  * to you under the Apache License, Version 2.0 (the | 
 |  * "License"); you may not use this file except in compliance | 
 |  * with the License.  You may obtain a copy of the License at | 
 |  *  | 
 |  *   http://www.apache.org/licenses/LICENSE-2.0 | 
 |  *  | 
 |  * Unless required by applicable law or agreed to in writing, | 
 |  * software distributed under the License is distributed on an | 
 |  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | 
 |  * KIND, either express or implied.  See the License for the | 
 |  * specific language governing permissions and limitations | 
 |  * under the License. | 
 |  *  | 
 |  *************************************************************/ | 
 |  | 
 |  | 
 | #ifndef _DFLYOBJ_HXX | 
 | #define	_DFLYOBJ_HXX | 
 | #include <svx/svdovirt.hxx> | 
 |  | 
 | class SwFlyFrm; | 
 | class SwFrmFmt; | 
 | class SdrObjMacroHitRec; | 
 |  | 
 | const sal_uInt32 SWGInventor =	sal_uInt32('S')*0x00000001+ | 
 | 							sal_uInt32('W')*0x00000100+ | 
 | 							sal_uInt32('G')*0x00010000; | 
 |  | 
 | const sal_uInt16 SwFlyDrawObjIdentifier = 0x0001; | 
 | const sal_uInt16 SwDrawFirst			= 0x0001; | 
 |  | 
 | //--------------------------------------- | 
 | //SwFlyDrawObj, Die DrawObjekte fuer Flys. | 
 |  | 
 | class SwFlyDrawObj : public SdrObject | 
 | { | 
 | private: | 
 | 	virtual sdr::properties::BaseProperties* CreateObjectSpecificProperties(); | 
 |  | 
 | protected: | 
 |     // #i95264# SwFlyDrawObj needs an own VC since createViewIndependentPrimitive2DSequence() | 
 |     // is called when RecalcBoundRect() is used | 
 |     virtual sdr::contact::ViewContact* CreateObjectSpecificViewContact(); | 
 |  | 
 | public: | 
 | 	TYPEINFO(); | 
 |  | 
 | 	SwFlyDrawObj(); | 
 | 	~SwFlyDrawObj(); | 
 |  | 
 | 	//Damit eine Instanz dieser Klasse beim laden erzeugt werden kann | 
 | 	//(per Factory). | 
 | 	virtual sal_uInt32 GetObjInventor()		const; | 
 | 	virtual sal_uInt16 GetObjIdentifier()	const; | 
 | 	virtual sal_uInt16 GetObjVersion()		const; | 
 | }; | 
 |  | 
 | //--------------------------------------- | 
 | //SwVirtFlyDrawObj, die virtuellen Objekte fuer Flys. | 
 | //Flys werden immer mit virtuellen Objekten angezeigt. Nur so koennen sie | 
 | //ggf. mehrfach angezeigt werden (Kopf-/Fusszeilen). | 
 |  | 
 | class SwVirtFlyDrawObj : public SdrVirtObj | 
 | { | 
 | private: | 
 | 	SwFlyFrm *pFlyFrm; | 
 |  | 
 | protected: | 
 |     // AW: Need own sdr::contact::ViewContact since AnchorPos from parent is | 
 |     // not used but something own (top left of new SnapRect minus top left | 
 |     // of original SnapRect) | 
 |     virtual sdr::contact::ViewContact* CreateObjectSpecificViewContact(); | 
 |  | 
 | public: | 
 |     // for paints triggered form ExecutePrimitive | 
 | 	void wrap_DoPaintObject() const; | 
 |  | 
 |     // for simple access to inner and outer bounds | 
 |     basegfx::B2DRange getOuterBound() const; | 
 |     basegfx::B2DRange getInnerBound() const; | 
 |  | 
 | public: | 
 | 	TYPEINFO(); | 
 |  | 
 | 	SwVirtFlyDrawObj(SdrObject& rNew, SwFlyFrm* pFly); | 
 | 	~SwVirtFlyDrawObj(); | 
 |  | 
 | 	//Ueberladene Methoden der Basisklasse SdrVirtObj | 
 | 	virtual void  	 TakeObjInfo( SdrObjTransformInfoRec& rInfo ) const; | 
 |  | 
 | 	//Wir nehemen die Groessenbehandlung vollstaendig selbst in die Hand. | 
 |     virtual const Rectangle& GetCurrentBoundRect() const; | 
 |     virtual const Rectangle& GetLastBoundRect() const; | 
 | 	virtual		  void		 RecalcBoundRect(); | 
 | 	virtual		  void		 RecalcSnapRect(); | 
 | 	virtual const Rectangle& GetSnapRect()	const; | 
 | 	virtual		  void		 SetSnapRect(const Rectangle& rRect); | 
 | 	virtual		  void		 NbcSetSnapRect(const Rectangle& rRect); | 
 | 	virtual const Rectangle& GetLogicRect() const; | 
 | 	virtual		  void		 SetLogicRect(const Rectangle& rRect); | 
 | 	virtual		  void		 NbcSetLogicRect(const Rectangle& rRect); | 
 | 	virtual ::basegfx::B2DPolyPolygon TakeXorPoly() const; | 
 | 	virtual		  void		 NbcMove  (const Size& rSiz); | 
 | 	virtual		  void		 NbcResize(const Point& rRef, const Fraction& xFact, | 
 | 									   const Fraction& yFact); | 
 | 	virtual		  void		 Move  (const Size& rSiz); | 
 | 	virtual		  void		 Resize(const Point& rRef, const Fraction& xFact, | 
 | 									const Fraction& yFact); | 
 |  | 
 | 	const SwFrmFmt *GetFmt() const; | 
 |           SwFrmFmt *GetFmt(); | 
 |  | 
 | 	// Get Methoden fuer die Fly Verpointerung | 
 | 		  SwFlyFrm* GetFlyFrm()			{ return pFlyFrm; } | 
 | 	const SwFlyFrm* GetFlyFrm() const	{ return pFlyFrm; } | 
 |  | 
 | 	void SetRect() const; | 
 |  | 
 | 	// ist eine URL an einer Grafik gesetzt, dann ist das ein Makro-Object | 
 | 	virtual FASTBOOL HasMacro() const; | 
 | 	virtual SdrObject* CheckMacroHit       (const SdrObjMacroHitRec& rRec) const; | 
 | 	virtual Pointer    GetMacroPointer     (const SdrObjMacroHitRec& rRec) const; | 
 |  | 
 |     // FullDrag support | 
 |     virtual bool supportsFullDrag() const; | 
 |     virtual SdrObject* getFullDragClone() const; | 
 | }; | 
 |  | 
 |  | 
 | #endif |