summaryrefslogtreecommitdiff
path: root/svx/source/svdraw/svdoedge.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'svx/source/svdraw/svdoedge.cxx')
-rw-r--r--svx/source/svdraw/svdoedge.cxx295
1 files changed, 137 insertions, 158 deletions
diff --git a/svx/source/svdraw/svdoedge.cxx b/svx/source/svdraw/svdoedge.cxx
index 3ee7083729..821b6b5767 100644
--- a/svx/source/svdraw/svdoedge.cxx
+++ b/svx/source/svdraw/svdoedge.cxx
@@ -1,3 +1,4 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*************************************************************************
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -76,23 +77,23 @@ void SdrObjConnection::ResetVars()
bAutoCorner=FALSE;
}
-FASTBOOL SdrObjConnection::TakeGluePoint(SdrGluePoint& rGP, FASTBOOL bSetAbsPos) const
+bool SdrObjConnection::TakeGluePoint(SdrGluePoint& rGP, bool bSetAbsPos) const
{
- FASTBOOL bRet=FALSE;
+ bool bRet = false;
if (pObj!=NULL) { // Ein Obj muss schon angedockt sein!
if (bAutoVertex) {
rGP=pObj->GetVertexGluePoint(nConId);
- bRet=TRUE;
+ bRet = true;
} else if (bAutoCorner) {
rGP=pObj->GetCornerGluePoint(nConId);
- bRet=TRUE;
+ bRet = true;
} else {
const SdrGluePointList* pGPL=pObj->GetGluePointList();
if (pGPL!=NULL) {
USHORT nNum=pGPL->FindGluePoint(nConId);
if (nNum!=SDRGLUEPOINT_NOTFOUND) {
rGP=(*pGPL)[nNum];
- bRet=TRUE;
+ bRet = true;
}
}
}
@@ -129,10 +130,10 @@ USHORT SdrEdgeInfoRec::ImpGetPolyIdx(SdrEdgeLineCode eLineCode, const XPolygon&
return 0;
}
-FASTBOOL SdrEdgeInfoRec::ImpIsHorzLine(SdrEdgeLineCode eLineCode, const XPolygon& rXP) const
+bool SdrEdgeInfoRec::ImpIsHorzLine(SdrEdgeLineCode eLineCode, const XPolygon& rXP) const
{
USHORT nIdx=ImpGetPolyIdx(eLineCode,rXP);
- FASTBOOL bHorz=nAngle1==0 || nAngle1==18000;
+ bool bHorz=nAngle1==0 || nAngle1==18000;
if (eLineCode==OBJ2LINE2 || eLineCode==OBJ2LINE3) {
nIdx=rXP.GetPointCount()-nIdx; // #36314#
bHorz=nAngle2==0 || nAngle2==18000; // #52000#
@@ -373,7 +374,7 @@ void SdrEdgeObj::TakeObjInfo(SdrObjTransformInfoRec& rInfo) const
rInfo.bGradientAllowed = FALSE;
rInfo.bShearAllowed =FALSE;
rInfo.bEdgeRadiusAllowed=FALSE;
- FASTBOOL bCanConv=!HasText() || ImpCanConvTextToCurve();
+ bool bCanConv=!HasText() || ImpCanConvTextToCurve();
rInfo.bCanConvToPath=bCanConv;
rInfo.bCanConvToPoly=bCanConv;
rInfo.bCanConvToContour = (rInfo.bCanConvToPoly || LineGeometryUsageIsNecessary());
@@ -414,9 +415,9 @@ void SdrEdgeObj::TakeUnrotatedSnapRect(Rectangle& rRect) const
rRect=GetSnapRect();
}
-FASTBOOL SdrEdgeObj::IsNode() const
+bool SdrEdgeObj::IsNode() const
{
- return TRUE;
+ return true;
}
SdrGluePoint SdrEdgeObj::GetVertexGluePoint(USHORT nNum) const
@@ -462,12 +463,12 @@ SdrGluePointList* SdrEdgeObj::ForceGluePointList()
return NULL; // Keine benutzerdefinierten Klebepunkte fuer Verbinder #31671#
}
-FASTBOOL SdrEdgeObj::IsEdge() const
+bool SdrEdgeObj::IsEdge() const
{
- return TRUE;
+ return true;
}
-void SdrEdgeObj::ConnectToNode(FASTBOOL bTail1, SdrObject* pObj)
+void SdrEdgeObj::ConnectToNode(bool bTail1, SdrObject* pObj)
{
SdrObjConnection& rCon=GetConnection(bTail1);
DisconnectFromNode(bTail1);
@@ -478,7 +479,7 @@ void SdrEdgeObj::ConnectToNode(FASTBOOL bTail1, SdrObject* pObj)
}
}
-void SdrEdgeObj::DisconnectFromNode(FASTBOOL bTail1)
+void SdrEdgeObj::DisconnectFromNode(bool bTail1)
{
SdrObjConnection& rCon=GetConnection(bTail1);
if (rCon.pObj!=NULL) {
@@ -487,16 +488,16 @@ void SdrEdgeObj::DisconnectFromNode(FASTBOOL bTail1)
}
}
-SdrObject* SdrEdgeObj::GetConnectedNode(FASTBOOL bTail1) const
+SdrObject* SdrEdgeObj::GetConnectedNode(bool bTail1) const
{
SdrObject* pObj=GetConnection(bTail1).pObj;
if (pObj!=NULL && (pObj->GetPage()!=pPage || !pObj->IsInserted())) pObj=NULL;
return pObj;
}
-FASTBOOL SdrEdgeObj::CheckNodeConnection(FASTBOOL bTail1) const
+bool SdrEdgeObj::CheckNodeConnection(bool bTail1) const
{
- FASTBOOL bRet=FALSE;
+ bool bRet = false;
const SdrObjConnection& rCon=GetConnection(bTail1);
USHORT nPtAnz=pEdgeTrack->GetPointCount();
if (rCon.pObj!=NULL && rCon.pObj->GetPage()==pPage && nPtAnz!=0) {
@@ -519,7 +520,7 @@ FASTBOOL SdrEdgeObj::CheckNodeConnection(FASTBOOL bTail1) const
return bRet;
}
-void SdrEdgeObj::ImpSetTailPoint(FASTBOOL bTail1, const Point& rPt)
+void SdrEdgeObj::ImpSetTailPoint(bool bTail1, const Point& rPt)
{
USHORT nPtAnz=pEdgeTrack->GetPointCount();
if (nPtAnz==0) {
@@ -605,11 +606,11 @@ USHORT SdrEdgeObj::ImpCalcEscAngle(SdrObject* pObj, const Point& rPt) const
long dyo=rPt.Y()-aR.Top();
long dxr=aR.Right()-rPt.X();
long dyu=aR.Bottom()-rPt.Y();
- FASTBOOL bxMitt=Abs(dxl-dxr)<2;
- FASTBOOL byMitt=Abs(dyo-dyu)<2;
+ bool bxMitt=Abs(dxl-dxr)<2;
+ bool byMitt=Abs(dyo-dyu)<2;
long dx=Min(dxl,dxr);
long dy=Min(dyo,dyu);
- FASTBOOL bDiag=Abs(dx-dy)<2;
+ bool bDiag=Abs(dx-dy)<2;
if (bxMitt && byMitt) return SDRESC_ALL; // In der Mitte
if (bDiag) { // diagonal
USHORT nRet=0;
@@ -635,7 +636,7 @@ USHORT SdrEdgeObj::ImpCalcEscAngle(SdrObject* pObj, const Point& rPt) const
}
}
-FASTBOOL SdrEdgeObj::ImpStripPolyPoints(XPolygon& /*rXP*/) const
+bool SdrEdgeObj::ImpStripPolyPoints(XPolygon& /*rXP*/) const
{
// fehlende Implementation !!!
return FALSE;
@@ -645,10 +646,10 @@ XPolygon SdrEdgeObj::ImpCalcObjToCenter(const Point& rStPt, long nEscAngle, cons
{
XPolygon aXP;
aXP.Insert(XPOLY_APPEND,rStPt,XPOLY_NORMAL);
- FASTBOOL bRts=nEscAngle==0;
- FASTBOOL bObn=nEscAngle==9000;
- FASTBOOL bLks=nEscAngle==18000;
- FASTBOOL bUnt=nEscAngle==27000;
+ bool bRts=nEscAngle==0;
+ bool bObn=nEscAngle==9000;
+ bool bLks=nEscAngle==18000;
+ bool bUnt=nEscAngle==27000;
Point aP1(rStPt); // erstmal den Pflichtabstand
if (bLks) aP1.X()=rRect.Left();
@@ -656,43 +657,40 @@ XPolygon SdrEdgeObj::ImpCalcObjToCenter(const Point& rStPt, long nEscAngle, cons
if (bObn) aP1.Y()=rRect.Top();
if (bUnt) aP1.Y()=rRect.Bottom();
- FASTBOOL bFinish=FALSE;
- if (!bFinish) {
- Point aP2(aP1); // Und nun den Pflichtabstand ggf. bis auf Meetinghoehe erweitern
- if (bLks && rMeeting.X()<=aP2.X()) aP2.X()=rMeeting.X();
- if (bRts && rMeeting.X()>=aP2.X()) aP2.X()=rMeeting.X();
- if (bObn && rMeeting.Y()<=aP2.Y()) aP2.Y()=rMeeting.Y();
- if (bUnt && rMeeting.Y()>=aP2.Y()) aP2.Y()=rMeeting.Y();
- aXP.Insert(XPOLY_APPEND,aP2,XPOLY_NORMAL);
-
- Point aP3(aP2);
- if ((bLks && rMeeting.X()>aP2.X()) || (bRts && rMeeting.X()<aP2.X())) { // Aussenrum
- if (rMeeting.Y()<aP2.Y()) {
- aP3.Y()=rRect.Top();
- if (rMeeting.Y()<aP3.Y()) aP3.Y()=rMeeting.Y();
- } else {
- aP3.Y()=rRect.Bottom();
- if (rMeeting.Y()>aP3.Y()) aP3.Y()=rMeeting.Y();
- }
+ Point aP2(aP1); // Und nun den Pflichtabstand ggf. bis auf Meetinghoehe erweitern
+ if (bLks && rMeeting.X()<=aP2.X()) aP2.X()=rMeeting.X();
+ if (bRts && rMeeting.X()>=aP2.X()) aP2.X()=rMeeting.X();
+ if (bObn && rMeeting.Y()<=aP2.Y()) aP2.Y()=rMeeting.Y();
+ if (bUnt && rMeeting.Y()>=aP2.Y()) aP2.Y()=rMeeting.Y();
+ aXP.Insert(XPOLY_APPEND,aP2,XPOLY_NORMAL);
+
+ Point aP3(aP2);
+ if ((bLks && rMeeting.X()>aP2.X()) || (bRts && rMeeting.X()<aP2.X())) { // Aussenrum
+ if (rMeeting.Y()<aP2.Y()) {
+ aP3.Y()=rRect.Top();
+ if (rMeeting.Y()<aP3.Y()) aP3.Y()=rMeeting.Y();
+ } else {
+ aP3.Y()=rRect.Bottom();
+ if (rMeeting.Y()>aP3.Y()) aP3.Y()=rMeeting.Y();
+ }
+ aXP.Insert(XPOLY_APPEND,aP3,XPOLY_NORMAL);
+ if (aP3.Y()!=rMeeting.Y()) {
+ aP3.X()=rMeeting.X();
aXP.Insert(XPOLY_APPEND,aP3,XPOLY_NORMAL);
- if (aP3.Y()!=rMeeting.Y()) {
- aP3.X()=rMeeting.X();
- aXP.Insert(XPOLY_APPEND,aP3,XPOLY_NORMAL);
- }
}
- if ((bObn && rMeeting.Y()>aP2.Y()) || (bUnt && rMeeting.Y()<aP2.Y())) { // Aussenrum
- if (rMeeting.X()<aP2.X()) {
- aP3.X()=rRect.Left();
- if (rMeeting.X()<aP3.X()) aP3.X()=rMeeting.X();
- } else {
- aP3.X()=rRect.Right();
- if (rMeeting.X()>aP3.X()) aP3.X()=rMeeting.X();
- }
+ }
+ if ((bObn && rMeeting.Y()>aP2.Y()) || (bUnt && rMeeting.Y()<aP2.Y())) { // Aussenrum
+ if (rMeeting.X()<aP2.X()) {
+ aP3.X()=rRect.Left();
+ if (rMeeting.X()<aP3.X()) aP3.X()=rMeeting.X();
+ } else {
+ aP3.X()=rRect.Right();
+ if (rMeeting.X()>aP3.X()) aP3.X()=rMeeting.X();
+ }
+ aXP.Insert(XPOLY_APPEND,aP3,XPOLY_NORMAL);
+ if (aP3.X()!=rMeeting.X()) {
+ aP3.Y()=rMeeting.Y();
aXP.Insert(XPOLY_APPEND,aP3,XPOLY_NORMAL);
- if (aP3.X()!=rMeeting.X()) {
- aP3.Y()=rMeeting.Y();
- aXP.Insert(XPOLY_APPEND,aP3,XPOLY_NORMAL);
- }
}
}
#ifdef DBG_UTIL
@@ -724,8 +722,8 @@ XPolygon SdrEdgeObj::ImpCalcEdgeTrack(const XPolygon& rTrack0, SdrObjConnection&
aPt2=aOutRect.BottomRight();
}
}
- FASTBOOL bCon1=rCon1.pObj!=NULL && rCon1.pObj->GetPage()==pPage && rCon1.pObj->IsInserted();
- FASTBOOL bCon2=rCon2.pObj!=NULL && rCon2.pObj->GetPage()==pPage && rCon2.pObj->IsInserted();
+ bool bCon1=rCon1.pObj!=NULL && rCon1.pObj->GetPage()==pPage && rCon1.pObj->IsInserted();
+ bool bCon2=rCon2.pObj!=NULL && rCon2.pObj->GetPage()==pPage && rCon2.pObj->IsInserted();
const SfxItemSet& rSet = GetObjectItemSet();
if (bCon1) {
@@ -779,8 +777,8 @@ XPolygon SdrEdgeObj::ImpCalcEdgeTrack(const XPolygon& rTrack0, SdrObjConnection&
XPolygon aBestXP;
ULONG nBestQual=0xFFFFFFFF;
SdrEdgeInfoRec aBestInfo;
- FASTBOOL bAuto1=bCon1 && rCon1.bBestVertex;
- FASTBOOL bAuto2=bCon2 && rCon2.bBestVertex;
+ bool bAuto1=bCon1 && rCon1.bBestVertex;
+ bool bAuto2=bCon2 && rCon2.bBestVertex;
if (bAuto1) rCon1.bAutoVertex=TRUE;
if (bAuto2) rCon2.bAutoVertex=TRUE;
USHORT nBestAuto1=0;
@@ -833,19 +831,19 @@ XPolygon SdrEdgeObj::ImpCalcEdgeTrack(const Point& rPt1, long nAngle1, const Rec
ULONG* pnQuality, SdrEdgeInfoRec* pInfo) const
{
SdrEdgeKind eKind=((SdrEdgeKindItem&)(GetObjectItem(SDRATTR_EDGEKIND))).GetValue();
- FASTBOOL bRts1=nAngle1==0;
- FASTBOOL bObn1=nAngle1==9000;
- FASTBOOL bLks1=nAngle1==18000;
- FASTBOOL bUnt1=nAngle1==27000;
- FASTBOOL bHor1=bLks1 || bRts1;
- FASTBOOL bVer1=bObn1 || bUnt1;
- FASTBOOL bRts2=nAngle2==0;
- FASTBOOL bObn2=nAngle2==9000;
- FASTBOOL bLks2=nAngle2==18000;
- FASTBOOL bUnt2=nAngle2==27000;
- FASTBOOL bHor2=bLks2 || bRts2;
- FASTBOOL bVer2=bObn2 || bUnt2;
- FASTBOOL bInfo=pInfo!=NULL;
+ bool bRts1=nAngle1==0;
+ bool bObn1=nAngle1==9000;
+ bool bLks1=nAngle1==18000;
+ bool bUnt1=nAngle1==27000;
+ bool bHor1=bLks1 || bRts1;
+ bool bVer1=bObn1 || bUnt1;
+ bool bRts2=nAngle2==0;
+ bool bObn2=nAngle2==9000;
+ bool bLks2=nAngle2==18000;
+ bool bUnt2=nAngle2==27000;
+ bool bHor2=bLks2 || bRts2;
+ bool bVer2=bObn2 || bUnt2;
+ bool bInfo=pInfo!=NULL;
if (bInfo) {
pInfo->cOrthoForm=0;
pInfo->nAngle1=nAngle1;
@@ -861,8 +859,6 @@ XPolygon SdrEdgeObj::ImpCalcEdgeTrack(const Point& rPt1, long nAngle1, const Rec
Rectangle aBewareRect1(rBewareRect1);
Rectangle aBewareRect2(rBewareRect2);
Point aMeeting((aPt1.X()+aPt2.X()+1)/2,(aPt1.Y()+aPt2.Y()+1)/2);
- FASTBOOL bMeetingXMid=TRUE;
- FASTBOOL bMeetingYMid=TRUE;
if (eKind==SDREDGE_ONELINE) {
XPolygon aXP(2);
aXP[0]=rPt1;
@@ -908,7 +904,6 @@ XPolygon SdrEdgeObj::ImpCalcEdgeTrack(const Point& rPt1, long nAngle1, const Rec
return aXP;
}
USHORT nIntersections=0;
- FASTBOOL bForceMeeting=FALSE; // Muss die Linie durch den MeetingPoint laufen?
{
Point aC1(aBewareRect1.Center());
Point aC2(aBewareRect2.Center());
@@ -946,10 +941,10 @@ XPolygon SdrEdgeObj::ImpCalcEdgeTrack(const Point& rPt1, long nAngle1, const Rec
long nXMax=Max(aBewareRect1.Right(),aBewareRect2.Right());
long nYMin=Min(aBewareRect1.Top(),aBewareRect2.Top());
long nYMax=Max(aBewareRect1.Bottom(),aBewareRect2.Bottom());
- //FASTBOOL bBoundOverlap=aBoundRect1.Right()>aBoundRect2.Left() && aBoundRect1.Left()<aBoundRect2.Right() &&
- aBoundRect1.Bottom()>aBoundRect2.Top() && aBoundRect1.Top()<aBoundRect2.Bottom();
- FASTBOOL bBewareOverlap=aBewareRect1.Right()>aBewareRect2.Left() && aBewareRect1.Left()<aBewareRect2.Right() &&
- aBewareRect1.Bottom()>aBewareRect2.Top() && aBewareRect1.Top()<aBewareRect2.Bottom();
+ //bool bBoundOverlap=aBoundRect1.Right()>aBoundRect2.Left() && aBoundRect1.Left()<aBoundRect2.Right() &&
+ // aBoundRect1.Bottom()>aBoundRect2.Top() && aBoundRect1.Top()<aBoundRect2.Bottom();
+ bool bBewareOverlap=aBewareRect1.Right()>aBewareRect2.Left() && aBewareRect1.Left()<aBewareRect2.Right() &&
+ aBewareRect1.Bottom()>aBewareRect2.Top() && aBewareRect1.Top()<aBewareRect2.Bottom();
unsigned nMainCase=3;
if (nAngle1==nAngle2) nMainCase=1;
else if ((bHor1 && bHor2) || (bVer1 && bVer2)) nMainCase=2;
@@ -957,29 +952,24 @@ XPolygon SdrEdgeObj::ImpCalcEdgeTrack(const Point& rPt1, long nAngle1, const Rec
if (bVer1) aMeeting.X()=(aPt1.X()+aPt2.X()+1)/2; // ist hier besser, als der
if (bHor1) aMeeting.Y()=(aPt1.Y()+aPt2.Y()+1)/2; // Mittelpunkt des Freiraums
// bX1Ok bedeutet, dass die Vertikale, die aus Obj1 austritt, keinen Konflikt mit Obj2 bildet, ...
- FASTBOOL bX1Ok=aPt1.X()<=aBewareRect2.Left() || aPt1.X()>=aBewareRect2.Right();
- FASTBOOL bX2Ok=aPt2.X()<=aBewareRect1.Left() || aPt2.X()>=aBewareRect1.Right();
- FASTBOOL bY1Ok=aPt1.Y()<=aBewareRect2.Top() || aPt1.Y()>=aBewareRect2.Bottom();
- FASTBOOL bY2Ok=aPt2.Y()<=aBewareRect1.Top() || aPt2.Y()>=aBewareRect1.Bottom();
+ bool bX1Ok=aPt1.X()<=aBewareRect2.Left() || aPt1.X()>=aBewareRect2.Right();
+ bool bX2Ok=aPt2.X()<=aBewareRect1.Left() || aPt2.X()>=aBewareRect1.Right();
+ bool bY1Ok=aPt1.Y()<=aBewareRect2.Top() || aPt1.Y()>=aBewareRect2.Bottom();
+ bool bY2Ok=aPt2.Y()<=aBewareRect1.Top() || aPt2.Y()>=aBewareRect1.Bottom();
if (bLks1 && (bY1Ok || aBewareRect1.Left()<aBewareRect2.Right()) && (bY2Ok || aBewareRect2.Left()<aBewareRect1.Right())) {
aMeeting.X()=nXMin;
- bMeetingXMid=FALSE;
}
if (bRts1 && (bY1Ok || aBewareRect1.Right()>aBewareRect2.Left()) && (bY2Ok || aBewareRect2.Right()>aBewareRect1.Left())) {
aMeeting.X()=nXMax;
- bMeetingXMid=FALSE;
}
if (bObn1 && (bX1Ok || aBewareRect1.Top()<aBewareRect2.Bottom()) && (bX2Ok || aBewareRect2.Top()<aBewareRect1.Bottom())) {
aMeeting.Y()=nYMin;
- bMeetingYMid=FALSE;
}
if (bUnt1 && (bX1Ok || aBewareRect1.Bottom()>aBewareRect2.Top()) && (bX2Ok || aBewareRect2.Bottom()>aBewareRect1.Top())) {
aMeeting.Y()=nYMax;
- bMeetingYMid=FALSE;
}
} else if (nMainCase==2) {
// Fall 2:
- bForceMeeting=TRUE;
if (bHor1) { // beide waagerecht
/* 9 Moeglichkeiten: ù ù ù */
/* 2.1 Gegenueber, Ueberschneidung à ´ ù */
@@ -1019,22 +1009,21 @@ XPolygon SdrEdgeObj::ImpCalcEdgeTrack(const Point& rPt1, long nAngle1, const Rec
// Ueberschneidung der BewareRects ohne Ueberschneidung der
// Boundrects wenn die Linienaustritte sonst das BewareRect
// des jeweils anderen Objekts verletzen wuerden.
- FASTBOOL bCase29Direct=FALSE;
- FASTBOOL bCase29=aBewR1.Right()>aBewR2.Left();
+ bool bCase29Direct = false;
+ bool bCase29=aBewR1.Right()>aBewR2.Left();
if (aBndR1.Right()<=aBndR2.Left()) { // Fall 2.9 und keine Boundrectueberschneidung
if ((aPt1.Y()>aBewareRect2.Top() && aPt1.Y()<aBewareRect2.Bottom()) ||
(aPt2.Y()>aBewareRect1.Top() && aPt2.Y()<aBewareRect1.Bottom())) {
- bCase29Direct=TRUE;
+ bCase29Direct = true;
}
}
if (!bCase29Direct) {
- FASTBOOL bObenLang=Abs(nYMin-aMeeting.Y())<=Abs(nYMax-aMeeting.Y());
+ bool bObenLang=Abs(nYMin-aMeeting.Y())<=Abs(nYMax-aMeeting.Y());
if (bObenLang) {
aMeeting.Y()=nYMin;
} else {
aMeeting.Y()=nYMax;
}
- bMeetingYMid=FALSE;
if (bCase29) {
// und nun noch dafuer sorgen, dass das
// umzingelte Obj nicht durchquert wird
@@ -1043,7 +1032,6 @@ XPolygon SdrEdgeObj::ImpCalcEdgeTrack(const Point& rPt1, long nAngle1, const Rec
} else {
aMeeting.X()=aBewR1.Left();
}
- bMeetingXMid=FALSE;
}
} else {
// Direkte Verbindung (3-Linien Z-Verbindung), da
@@ -1079,22 +1067,21 @@ XPolygon SdrEdgeObj::ImpCalcEdgeTrack(const Point& rPt1, long nAngle1, const Rec
// Ueberschneidung der BewareRects ohne Ueberschneidung der
// Boundrects wenn die Linienaustritte sonst das BewareRect
// des jeweils anderen Objekts verletzen wuerden.
- FASTBOOL bCase29Direct=FALSE;
- FASTBOOL bCase29=aBewR1.Bottom()>aBewR2.Top();
+ bool bCase29Direct = false;
+ bool bCase29=aBewR1.Bottom()>aBewR2.Top();
if (aBndR1.Bottom()<=aBndR2.Top()) { // Fall 2.9 und keine Boundrectueberschneidung
if ((aPt1.X()>aBewareRect2.Left() && aPt1.X()<aBewareRect2.Right()) ||
(aPt2.X()>aBewareRect1.Left() && aPt2.X()<aBewareRect1.Right())) {
- bCase29Direct=TRUE;
+ bCase29Direct = true;
}
}
if (!bCase29Direct) {
- FASTBOOL bLinksLang=Abs(nXMin-aMeeting.X())<=Abs(nXMax-aMeeting.X());
+ bool bLinksLang=Abs(nXMin-aMeeting.X())<=Abs(nXMax-aMeeting.X());
if (bLinksLang) {
aMeeting.X()=nXMin;
} else {
aMeeting.X()=nXMax;
}
- bMeetingXMid=FALSE;
if (bCase29) {
// und nun noch dafuer sorgen, dass das
// umzingelte Obj nicht durchquert wird
@@ -1103,7 +1090,6 @@ XPolygon SdrEdgeObj::ImpCalcEdgeTrack(const Point& rPt1, long nAngle1, const Rec
} else {
aMeeting.Y()=aBewR1.Top();
}
- bMeetingYMid=FALSE;
}
} else {
// Direkte Verbindung (3-Linien Z-Verbindung), da
@@ -1174,9 +1160,6 @@ XPolygon SdrEdgeObj::ImpCalcEdgeTrack(const Point& rPt1, long nAngle1, const Rec
(((bRts2 && aTmpR2.Right ()<=aPt1.X()) || (bLks2 && aTmpR2.Left()>=aPt1.X())) &&
((bUnt1 && aTmpR1.Bottom()<=aPt2.Y()) || (bObn1 && aTmpR1.Top ()>=aPt2.Y())))) {
// Fall 3.2 trifft zu: Verbindung mit lediglich 2 Linien
- bForceMeeting=TRUE;
- bMeetingXMid=FALSE;
- bMeetingYMid=FALSE;
if (bHor1) {
aMeeting.X()=aPt2.X();
aMeeting.Y()=aPt1.Y();
@@ -1196,11 +1179,10 @@ XPolygon SdrEdgeObj::ImpCalcEdgeTrack(const Point& rPt1, long nAngle1, const Rec
((bUnt1 && aBewareRect1.Bottom()>aBewareRect2.Top ()) ||
(bObn1 && aBewareRect1.Top ()<aBewareRect2.Bottom())))) {
// Fall 3.3
- bForceMeeting=TRUE;
- if (bRts1 || bRts2) { aMeeting.X()=nXMax; bMeetingXMid=FALSE; }
- if (bLks1 || bLks2) { aMeeting.X()=nXMin; bMeetingXMid=FALSE; }
- if (bUnt1 || bUnt2) { aMeeting.Y()=nYMax; bMeetingYMid=FALSE; }
- if (bObn1 || bObn2) { aMeeting.Y()=nYMin; bMeetingYMid=FALSE; }
+ if (bRts1 || bRts2) { aMeeting.X()=nXMax; }
+ if (bLks1 || bLks2) { aMeeting.X()=nXMin; }
+ if (bUnt1 || bUnt2) { aMeeting.Y()=nYMax; }
+ if (bObn1 || bObn2) { aMeeting.Y()=nYMin; }
}
}
}
@@ -1215,15 +1197,13 @@ XPolygon SdrEdgeObj::ImpCalcEdgeTrack(const Point& rPt1, long nAngle1, const Rec
}
Point aEP1(aXP1[nXP1Anz-1]);
Point aEP2(aXP2[nXP2Anz-1]);
- FASTBOOL bInsMeetingPoint=aEP1.X()!=aEP2.X() && aEP1.Y()!=aEP2.Y();
- FASTBOOL bHorzE1=aEP1.Y()==aXP1[nXP1Anz-2].Y(); // letzte Linie von XP1 horizontal?
- FASTBOOL bHorzE2=aEP2.Y()==aXP2[nXP2Anz-2].Y(); // letzte Linie von XP2 horizontal?
- if (aEP1==aEP2 && (bHorzE1 && bHorzE2 && aEP1.Y()==aEP2.Y()) || (!bHorzE1 && !bHorzE2 && aEP1.X()==aEP2.X())) {
+ bool bInsMeetingPoint=aEP1.X()!=aEP2.X() && aEP1.Y()!=aEP2.Y();
+ bool bHorzE1=aEP1.Y()==aXP1[nXP1Anz-2].Y(); // letzte Linie von XP1 horizontal?
+ bool bHorzE2=aEP2.Y()==aXP2[nXP2Anz-2].Y(); // letzte Linie von XP2 horizontal?
+ if (aEP1==aEP2 && ((bHorzE1 && bHorzE2 && aEP1.Y()==aEP2.Y()) || (!bHorzE1 && !bHorzE2 && aEP1.X()==aEP2.X()))) {
// Sonderbehandlung fuer 'I'-Verbinder
nXP1Anz--; aXP1.Remove(nXP1Anz,1);
nXP2Anz--; aXP2.Remove(nXP2Anz,1);
- bMeetingXMid=FALSE;
- bMeetingYMid=FALSE;
}
if (bInsMeetingPoint) {
aXP1.Insert(XPOLY_APPEND,aMeeting,XPOLY_NORMAL);
@@ -1303,12 +1283,12 @@ XPolygon SdrEdgeObj::ImpCalcEdgeTrack(const Point& rPt1, long nAngle1, const Rec
if (pnQuality!=NULL) {
ULONG nQual=0;
ULONG nQual0=nQual; // Ueberlaeufe vorbeugen
- FASTBOOL bOverflow=FALSE;
+ bool bOverflow = false;
Point aPt0(aXP1[0]);
for (USHORT nPntNum=1; nPntNum<nPntAnz; nPntNum++) {
Point aPt1b(aXP1[nPntNum]);
nQual+=Abs(aPt1b.X()-aPt0.X())+Abs(aPt1b.Y()-aPt0.Y());
- if (nQual<nQual0) bOverflow=TRUE;
+ if (nQual<nQual0) bOverflow = true;
nQual0=nQual;
aPt0=aPt1b;
}
@@ -1332,7 +1312,7 @@ XPolygon SdrEdgeObj::ImpCalcEdgeTrack(const Point& rPt1, long nAngle1, const Rec
if (nTmp>=3) {
nQual0=nQual;
nQual+=(ULONG)nTmp*0x01000000;
- if (nQual<nQual0 || nTmp>15) bOverflow=TRUE;
+ if (nQual<nQual0 || nTmp>15) bOverflow = true;
}
if (nPntAnz>=2) { // Austrittswinkel nochmal pruefen
Point aP1(aXP1[1]); aP1-=aXP1[0];
@@ -1353,9 +1333,9 @@ XPolygon SdrEdgeObj::ImpCalcEdgeTrack(const Point& rPt1, long nAngle1, const Rec
for (USHORT i=0; i<nPntAnz; i++) {
Point aPt1b(aXP1[i]);
- FASTBOOL b1=aPt1b.X()>aBewareRect1.Left() && aPt1b.X()<aBewareRect1.Right() &&
+ bool b1=aPt1b.X()>aBewareRect1.Left() && aPt1b.X()<aBewareRect1.Right() &&
aPt1b.Y()>aBewareRect1.Top() && aPt1b.Y()<aBewareRect1.Bottom();
- FASTBOOL b2=aPt1b.X()>aBewareRect2.Left() && aPt1b.X()<aBewareRect2.Right() &&
+ bool b2=aPt1b.X()>aBewareRect2.Left() && aPt1b.X()<aBewareRect2.Right() &&
aPt1b.Y()>aBewareRect2.Top() && aPt1b.Y()<aBewareRect2.Bottom();
USHORT nInt0=nIntersections;
if (i==0 || i==nPntAnz-1) {
@@ -1387,7 +1367,7 @@ XPolygon SdrEdgeObj::ImpCalcEdgeTrack(const Point& rPt1, long nAngle1, const Rec
if (nPntAnz<=1) nIntersections++;
nQual0=nQual;
nQual+=(ULONG)nIntersections*0x10000000;
- if (nQual<nQual0 || nIntersections>15) bOverflow=TRUE;
+ if (nQual<nQual0 || nIntersections>15) bOverflow = true;
if (bOverflow || nQual==0xFFFFFFFF) nQual=0xFFFFFFFE;
*pnQuality=nQual;
@@ -1549,14 +1529,14 @@ je Objekt variiert von 0-3:
'C': n 0-3 0-3 = 1+U+1
*/
-void __EXPORT SdrEdgeObj::Notify(SfxBroadcaster& rBC, const SfxHint& rHint)
+void SdrEdgeObj::Notify(SfxBroadcaster& rBC, const SfxHint& rHint)
{
SfxSimpleHint* pSimple=PTR_CAST(SfxSimpleHint,&rHint);
ULONG nId=pSimple==0 ? 0 : pSimple->GetId();
- FASTBOOL bDataChg=nId==SFX_HINT_DATACHANGED;
- FASTBOOL bDying=nId==SFX_HINT_DYING;
- FASTBOOL bObj1=aCon1.pObj!=NULL && aCon1.pObj->GetBroadcaster()==&rBC;
- FASTBOOL bObj2=aCon2.pObj!=NULL && aCon2.pObj->GetBroadcaster()==&rBC;
+ bool bDataChg=nId==SFX_HINT_DATACHANGED;
+ bool bDying=nId==SFX_HINT_DYING;
+ bool bObj1=aCon1.pObj!=NULL && aCon1.pObj->GetBroadcaster()==&rBC;
+ bool bObj2=aCon2.pObj!=NULL && aCon2.pObj->GetBroadcaster()==&rBC;
if (bDying && (bObj1 || bObj2)) {
// #35605# Dying vorher abfangen, damit AttrObj nicht
// wg. vermeintlicher Vorlagenaenderung rumbroadcastet
@@ -2004,7 +1984,7 @@ basegfx::B2DPolygon SdrEdgeObj::ImplAddConnectorOverlay(SdrDragMethod& rDragMeth
return aResult;
}
-FASTBOOL SdrEdgeObj::BegCreate(SdrDragStat& rDragStat)
+bool SdrEdgeObj::BegCreate(SdrDragStat& rDragStat)
{
rDragStat.SetNoSnap(TRUE);
pEdgeTrack->SetPointCount(2);
@@ -2018,7 +1998,7 @@ FASTBOOL SdrEdgeObj::BegCreate(SdrDragStat& rDragStat)
return TRUE;
}
-FASTBOOL SdrEdgeObj::MovCreate(SdrDragStat& rDragStat)
+bool SdrEdgeObj::MovCreate(SdrDragStat& rDragStat)
{
USHORT nMax=pEdgeTrack->GetPointCount();
(*pEdgeTrack)[nMax-1]=rDragStat.GetNow();
@@ -2034,9 +2014,9 @@ FASTBOOL SdrEdgeObj::MovCreate(SdrDragStat& rDragStat)
return TRUE;
}
-FASTBOOL SdrEdgeObj::EndCreate(SdrDragStat& rDragStat, SdrCreateCmd eCmd)
+bool SdrEdgeObj::EndCreate(SdrDragStat& rDragStat, SdrCreateCmd eCmd)
{
- FASTBOOL bOk=(eCmd==SDRCREATE_FORCEEND || rDragStat.GetPointAnz()>=2);
+ bool bOk=(eCmd==SDRCREATE_FORCEEND || rDragStat.GetPointAnz()>=2);
if (bOk) {
ConnectToNode(TRUE,aCon1.pObj);
ConnectToNode(FALSE,aCon2.pObj);
@@ -2049,7 +2029,7 @@ FASTBOOL SdrEdgeObj::EndCreate(SdrDragStat& rDragStat, SdrCreateCmd eCmd)
return bOk;
}
-FASTBOOL SdrEdgeObj::BckCreate(SdrDragStat& rDragStat)
+bool SdrEdgeObj::BckCreate(SdrDragStat& rDragStat)
{
if (rDragStat.GetView()!=NULL) {
rDragStat.GetView()->HideConnectMarker();
@@ -2076,7 +2056,7 @@ Pointer SdrEdgeObj::GetCreatePointer() const
return Pointer(POINTER_DRAW_CONNECT);
}
-FASTBOOL SdrEdgeObj::ImpFindConnector(const Point& rPt, const SdrPageView& rPV, SdrObjConnection& rCon, const SdrEdgeObj* pThis, OutputDevice* pOut)
+bool SdrEdgeObj::ImpFindConnector(const Point& rPt, const SdrPageView& rPV, SdrObjConnection& rCon, const SdrEdgeObj* pThis, OutputDevice* pOut)
{
rCon.ResetVars();
if (pOut==NULL) pOut=rPV.GetView().GetFirstOutputDevice(); // GetWin(0);
@@ -2095,11 +2075,9 @@ FASTBOOL SdrEdgeObj::ImpFindConnector(const Point& rPt, const SdrPageView& rPV,
aMouseRect.Bottom()+=aHalfConSiz.Height();
USHORT nBoundHitTol=(USHORT)aHalfConSiz.Width()/2; if (nBoundHitTol==0) nBoundHitTol=1;
ULONG no=pOL->GetObjCount();
- FASTBOOL bFnd=FALSE;
+ bool bFnd = false;
SdrObjConnection aTestCon;
SdrObjConnection aBestCon;
- FASTBOOL bTestBoundHit=FALSE;
- //FASTBOOL bBestBoundHit=FALSE;
while (no>0 && !bFnd) {
// Problem: Gruppenobjekt mit verschiedenen Layern liefert LayerID 0 !!!!
@@ -2112,43 +2090,42 @@ FASTBOOL SdrEdgeObj::ImpFindConnector(const Point& rPt, const SdrPageView& rPV,
Rectangle aObjBound(pObj->GetCurrentBoundRect());
if (aObjBound.IsOver(aMouseRect)) {
aTestCon.ResetVars();
- bTestBoundHit=FALSE;
- FASTBOOL bEdge=HAS_BASE(SdrEdgeObj,pObj); // kein BestCon fuer Edge
+ bool bEdge=HAS_BASE(SdrEdgeObj,pObj); // kein BestCon fuer Edge
// Die Userdefined Konnektoren haben absolute Prioritaet.
// Danach kommt Vertex, Corner und Mitte(Best) gleich priorisiert.
// Zum Schluss kommt noch ein HitTest aufs Obj.
const SdrGluePointList* pGPL=pObj->GetGluePointList();
USHORT nConAnz=pGPL==NULL ? 0 : pGPL->GetCount();
USHORT nGesAnz=nConAnz+9;
- FASTBOOL bUserFnd=FALSE;
+ bool bUserFnd = false;
ULONG nBestDist=0xFFFFFFFF;
- for (USHORT i=0; i<nGesAnz; i++)
+ for (USHORT i=0; i<nGesAnz; i++)
{
- FASTBOOL bUser=i<nConAnz;
- FASTBOOL bVertex=i>=nConAnz+0 && i<nConAnz+4;
- FASTBOOL bCorner=i>=nConAnz+4 && i<nConAnz+8;
- FASTBOOL bCenter=i==nConAnz+8;
- FASTBOOL bOk=FALSE;
+ bool bUser=i<nConAnz;
+ bool bVertex=i>=nConAnz+0 && i<nConAnz+4;
+ bool bCorner=i>=nConAnz+4 && i<nConAnz+8;
+ bool bCenter=i==nConAnz+8;
+ bool bOk = false;
Point aConPos;
USHORT nConNum=i;
if (bUser) {
const SdrGluePoint& rGP=(*pGPL)[nConNum];
aConPos=rGP.GetAbsolutePos(*pObj);
nConNum=rGP.GetId();
- bOk=TRUE;
+ bOk = true;
} else if (bVertex && !bUserFnd) {
nConNum=nConNum-nConAnz;
if (rPV.GetView().IsAutoVertexConnectors()) {
SdrGluePoint aPt(pObj->GetVertexGluePoint(nConNum));
aConPos=aPt.GetAbsolutePos(*pObj);
- bOk=TRUE;
+ bOk = true;
} else i+=3;
} else if (bCorner && !bUserFnd) {
nConNum-=nConAnz+4;
if (rPV.GetView().IsAutoCornerConnectors()) {
SdrGluePoint aPt(pObj->GetCornerGluePoint(nConNum));
aConPos=aPt.GetAbsolutePos(*pObj);
- bOk=TRUE;
+ bOk = true;
} else i+=3;
}
else if (bCenter && !bUserFnd && !bEdge)
@@ -2160,12 +2137,12 @@ FASTBOOL SdrEdgeObj::ImpFindConnector(const Point& rPt, const SdrPageView& rPV,
// Edges nicht!
nConNum=0;
aConPos=aObjBound.Center();
- bOk=TRUE;
+ bOk = true;
}
}
if (bOk && aMouseRect.IsInside(aConPos)) {
- if (bUser) bUserFnd=TRUE;
- bFnd=TRUE;
+ if (bUser) bUserFnd = true;
+ bFnd = true;
ULONG nDist=(ULONG)Abs(aConPos.X()-rPt.X())+(ULONG)Abs(aConPos.Y()-rPt.Y());
if (nDist<nBestDist) {
nBestDist=nDist;
@@ -2180,15 +2157,15 @@ FASTBOOL SdrEdgeObj::ImpFindConnector(const Point& rPt, const SdrPageView& rPV,
}
// Falls kein Konnektor getroffen wird nochmal
// HitTest versucht fuer BestConnector (=bCenter)
- if(!bFnd &&
- !bEdge &&
+ if(!bFnd &&
+ !bEdge &&
SdrObjectPrimitiveHit(*pObj, rPt, nBoundHitTol, rPV, &rVisLayer, false))
{
// #109007#
// Suppress default connect at object inside bound
if(!pThis || !pThis->GetSuppressDefaultConnect())
{
- bFnd=TRUE;
+ bFnd = true;
aTestCon.pObj=pObj;
aTestCon.bBestConn=TRUE;
}
@@ -2199,7 +2176,7 @@ FASTBOOL SdrEdgeObj::ImpFindConnector(const Point& rPt, const SdrPageView& rPV,
aMouseRect.Top() -=nBoundHitTol;
aMouseRect.Right() +=nBoundHitTol;
aMouseRect.Bottom()+=nBoundHitTol;
- bTestBoundHit=aObjBound.IsOver(aMouseRect2);
+ aObjBound.IsOver(aMouseRect2);
}
}
@@ -2495,3 +2472,5 @@ void SdrEdgeObj::TRSetBaseGeometry(const basegfx::B2DHomMatrix& rMatrix, const b
//////////////////////////////////////////////////////////////////////////////
// eof
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */