2007-04-11 15:25:26 +00:00
|
|
|
/*************************************************************************
|
|
|
|
*
|
2008-04-10 19:22:32 +00:00
|
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
2007-04-11 15:25:26 +00:00
|
|
|
*
|
2008-04-10 19:22:32 +00:00
|
|
|
* Copyright 2008 by Sun Microsystems, Inc.
|
2007-04-11 15:25:26 +00:00
|
|
|
*
|
2008-04-10 19:22:32 +00:00
|
|
|
* OpenOffice.org - a multi-platform office productivity suite
|
2007-04-11 15:25:26 +00:00
|
|
|
*
|
2008-04-10 19:22:32 +00:00
|
|
|
* $RCSfile: svdorect.hxx,v $
|
2008-08-19 21:31:15 +00:00
|
|
|
* $Revision: 1.5 $
|
2007-04-11 15:25:26 +00:00
|
|
|
*
|
2008-04-10 19:22:32 +00:00
|
|
|
* This file is part of OpenOffice.org.
|
2007-04-11 15:25:26 +00:00
|
|
|
*
|
2008-04-10 19:22:32 +00:00
|
|
|
* OpenOffice.org is free software: you can redistribute it and/or modify
|
|
|
|
* it under the terms of the GNU Lesser General Public License version 3
|
|
|
|
* only, as published by the Free Software Foundation.
|
2007-04-11 15:25:26 +00:00
|
|
|
*
|
2008-04-10 19:22:32 +00:00
|
|
|
* OpenOffice.org is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
* GNU Lesser General Public License version 3 for more details
|
|
|
|
* (a copy is included in the LICENSE file that accompanied this code).
|
2007-04-11 15:25:26 +00:00
|
|
|
*
|
2008-04-10 19:22:32 +00:00
|
|
|
* You should have received a copy of the GNU Lesser General Public License
|
|
|
|
* version 3 along with OpenOffice.org. If not, see
|
|
|
|
* <http://www.openoffice.org/license.html>
|
|
|
|
* for a copy of the LGPLv3 License.
|
2007-04-11 15:25:26 +00:00
|
|
|
*
|
|
|
|
************************************************************************/
|
|
|
|
|
|
|
|
#ifndef _SVDORECT_HXX
|
|
|
|
#define _SVDORECT_HXX
|
|
|
|
|
|
|
|
#include <svx/svdotext.hxx>
|
|
|
|
#include "svx/svxdllapi.h"
|
|
|
|
|
|
|
|
//************************************************************
|
|
|
|
// Vorausdeklarationen
|
|
|
|
//************************************************************
|
|
|
|
|
|
|
|
class XPolygon;
|
|
|
|
|
|
|
|
namespace sdr
|
|
|
|
{
|
|
|
|
namespace properties
|
|
|
|
{
|
|
|
|
class RectangleProperties;
|
|
|
|
} // end of namespace properties
|
|
|
|
} // end of namespace sdr
|
|
|
|
|
|
|
|
//************************************************************
|
|
|
|
// SdrRectObj
|
|
|
|
//
|
|
|
|
// Rechteck-Objekte (Rechteck,Kreis,...)
|
|
|
|
//
|
|
|
|
//************************************************************
|
|
|
|
|
|
|
|
class SVX_DLLPUBLIC SdrRectObj : public SdrTextObj
|
|
|
|
{
|
2008-08-19 21:31:15 +00:00
|
|
|
private:
|
|
|
|
// BaseProperties section
|
2007-04-11 15:25:26 +00:00
|
|
|
virtual sdr::properties::BaseProperties* CreateObjectSpecificProperties();
|
|
|
|
|
|
|
|
// to allow sdr::properties::RectangleProperties access to SetXPolyDirty()
|
|
|
|
friend class sdr::properties::RectangleProperties;
|
|
|
|
|
2008-08-19 21:31:15 +00:00
|
|
|
// DrawContact section
|
|
|
|
private:
|
|
|
|
virtual sdr::contact::ViewContact* CreateObjectSpecificViewContact();
|
|
|
|
|
2007-04-11 15:25:26 +00:00
|
|
|
friend class SdrTextObj; // wg SetXPolyDirty bei GrowAdjust
|
|
|
|
|
|
|
|
protected:
|
|
|
|
XPolygon* mpXPoly;
|
|
|
|
|
|
|
|
protected:
|
|
|
|
// Liefert TRUE, wenn das Painten ein Polygon erfordert.
|
|
|
|
FASTBOOL PaintNeedsXPoly(long nEckRad) const;
|
|
|
|
|
|
|
|
protected:
|
|
|
|
XPolygon ImpCalcXPoly(const Rectangle& rRect1, long nRad1) const;
|
|
|
|
SdrObject* ImpCheckHit(const Point& rPnt, USHORT nTol, const SetOfByte* pVisiLayer, FASTBOOL bForceFilled, FASTBOOL bForceTol=FALSE) const;
|
|
|
|
void SetXPolyDirty();
|
|
|
|
|
|
|
|
// RecalcXPoly sollte ueberladen werden. Dabei muss dann eine XPolygon
|
|
|
|
// Instanz generiert (new) und an mpXPoly zugewiesen werden.
|
|
|
|
virtual void RecalcXPoly();
|
|
|
|
const XPolygon& GetXPoly() const;
|
|
|
|
virtual void RestGeoData(const SdrObjGeoData& rGeo);
|
|
|
|
|
|
|
|
public:
|
|
|
|
TYPEINFO();
|
|
|
|
// Der Eckenradius-Parameter fliegt irgendwann raus. Der Eckenradius
|
|
|
|
// ist dann (spaeter) ueber SfxItems einzustellen (SetAttributes()).
|
|
|
|
// Konstruktion eines Rechteck-Zeichenobjekts
|
|
|
|
|
|
|
|
SdrRectObj();
|
|
|
|
SdrRectObj(const Rectangle& rRect);
|
|
|
|
|
|
|
|
// Konstruktion eines Textrahmens
|
|
|
|
SdrRectObj(SdrObjKind eNewTextKind);
|
|
|
|
SdrRectObj(SdrObjKind eNewTextKind, const Rectangle& rRect);
|
|
|
|
// der USHORT eFormat nimmt Werte des enum EETextFormat entgegen
|
|
|
|
SdrRectObj(SdrObjKind eNewTextKind, const Rectangle& rNewRect, SvStream& rInput, const String& rBaseURL, USHORT eFormat);
|
|
|
|
virtual ~SdrRectObj();
|
|
|
|
|
|
|
|
virtual void TakeObjInfo(SdrObjTransformInfoRec& rInfo) const;
|
|
|
|
virtual UINT16 GetObjIdentifier() const;
|
|
|
|
virtual void TakeUnrotatedSnapRect(Rectangle& rRect) const;
|
|
|
|
virtual SdrObject* CheckHit(const Point& rPnt, USHORT nTol, const SetOfByte* pVisiLayer) const;
|
|
|
|
|
|
|
|
virtual void TakeObjNameSingul(String& rName) const;
|
|
|
|
virtual void TakeObjNamePlural(String& rName) const;
|
|
|
|
|
|
|
|
virtual void operator=(const SdrObject& rObj);
|
|
|
|
virtual void RecalcSnapRect();
|
|
|
|
virtual void NbcSetSnapRect(const Rectangle& rRect);
|
|
|
|
virtual void NbcSetLogicRect(const Rectangle& rRect);
|
|
|
|
virtual basegfx::B2DPolyPolygon TakeXorPoly(sal_Bool bDetail) const;
|
|
|
|
|
|
|
|
virtual sal_uInt32 GetHdlCount() const;
|
|
|
|
virtual SdrHdl* GetHdl(sal_uInt32 nHdlNum) const;
|
|
|
|
virtual FASTBOOL HasSpecialDrag() const;
|
|
|
|
virtual FASTBOOL BegDrag(SdrDragStat& rDrag) const;
|
|
|
|
virtual FASTBOOL MovDrag(SdrDragStat& rDrag) const;
|
|
|
|
virtual FASTBOOL EndDrag(SdrDragStat& rDrag);
|
|
|
|
virtual void BrkDrag(SdrDragStat& rDrag) const;
|
|
|
|
|
|
|
|
virtual String GetDragComment(const SdrDragStat& rDrag, FASTBOOL bUndoDragComment, FASTBOOL bCreateComment) const;
|
|
|
|
|
|
|
|
virtual basegfx::B2DPolyPolygon TakeDragPoly(const SdrDragStat& rDrag) const;
|
|
|
|
virtual basegfx::B2DPolyPolygon TakeCreatePoly(const SdrDragStat& rDrag) const;
|
|
|
|
virtual Pointer GetCreatePointer() const;
|
|
|
|
|
|
|
|
virtual void NbcMove(const Size& rSiz);
|
|
|
|
virtual void NbcResize(const Point& rRef, const Fraction& xFact, const Fraction& yFact);
|
|
|
|
virtual void NbcRotate(const Point& rRef, long nWink, double sn, double cs);
|
|
|
|
virtual void NbcMirror(const Point& rRef1, const Point& rRef2);
|
|
|
|
virtual void NbcShear(const Point& rRef, long nWink, double tn, FASTBOOL bVShear);
|
|
|
|
|
|
|
|
virtual FASTBOOL DoMacro(const SdrObjMacroHitRec& rRec);
|
|
|
|
virtual XubString GetMacroPopupComment(const SdrObjMacroHitRec& rRec) const;
|
|
|
|
|
|
|
|
virtual SdrGluePoint GetVertexGluePoint(USHORT nNum) const;
|
|
|
|
virtual SdrGluePoint GetCornerGluePoint(USHORT nNum) const;
|
|
|
|
|
|
|
|
virtual SdrObject* DoConvertToPolyObj(BOOL bBezier) const;
|
|
|
|
|
2008-09-30 06:36:06 +00:00
|
|
|
virtual void Notify(SfxBroadcaster& rBC, const SfxHint& rHint);
|
2007-04-11 15:25:26 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif //_SVDORECT_HXX
|
|
|
|
|