diff options
author | Ivo Hinkelmann <ihi@openoffice.org> | 2006-11-14 12:50:54 +0000 |
---|---|---|
committer | Ivo Hinkelmann <ihi@openoffice.org> | 2006-11-14 12:50:54 +0000 |
commit | e2084cb3ec2bb592d47463fa02c43e36ec130b0a (patch) | |
tree | a71bc4e1c31b52ef5e908a8792acd422b7dd409d /svx/source/svdraw/svdview.cxx | |
parent | 2ba95c56da64c7323f0113f8699756a5b77a585f (diff) |
INTEGRATION: CWS aw024 (1.14.138); FILE MERGED
2006/11/10 03:46:27 aw 1.14.138.11: RESYNC: (1.18-1.19); FILE MERGED
2006/10/27 12:14:15 aw 1.14.138.10: #i39528# ::basegfx -> basegfx adaption
2006/09/21 19:34:42 aw 1.14.138.9: RESYNC: (1.17-1.18); FILE MERGED
2006/07/07 16:03:20 aw 1.14.138.8: adaptions after resync SRC680m171->SRC680m174
2006/07/04 13:21:04 aw 1.14.138.7: RESYNC: (1.15-1.16); FILE MERGED
2005/09/18 05:11:25 aw 1.14.138.6: RESYNC: (1.14-1.15); FILE MERGED
2005/05/26 11:28:07 aw 1.14.138.5: #i39531#
2005/05/19 12:31:43 aw 1.14.138.4: #i39529#
2005/05/12 16:39:41 aw 1.14.138.3: #i39529#
2005/04/26 15:04:33 aw 1.14.138.2: #i39528#
2004/12/23 16:52:54 aw 1.14.138.1: #i39525
Diffstat (limited to 'svx/source/svdraw/svdview.cxx')
-rw-r--r-- | svx/source/svdraw/svdview.cxx | 339 |
1 files changed, 171 insertions, 168 deletions
diff --git a/svx/source/svdraw/svdview.cxx b/svx/source/svdraw/svdview.cxx index a840afc200..8486056b73 100644 --- a/svx/source/svdraw/svdview.cxx +++ b/svx/source/svdraw/svdview.cxx @@ -4,9 +4,9 @@ * * $RCSfile: svdview.cxx,v $ * - * $Revision: 1.19 $ + * $Revision: 1.20 $ * - * last change: $Author: obo $ $Date: 2006-10-12 13:17:05 $ + * last change: $Author: ihi $ $Date: 2006-11-14 13:50:54 $ * * The Contents of this file are made available subject to * the terms of GNU Lesser General Public License Version 2.1. @@ -50,7 +50,11 @@ #include "svdograf.hxx" // fuer GetContext #include "svdomedia.hxx" // fuer GetContext #include "svdetc.hxx" // Fuer SdrEngineDefaults -#include "svdibrow.hxx" + +#ifdef DBG_UTIL +#include <svdibrow.hxx> +#endif + #include "svdoutl.hxx" #include "svdview.hxx" #include "editview.hxx" // fuer GetField @@ -65,6 +69,22 @@ #include <tools/tenccvt.hxx> #endif +#ifndef _SDR_OVERLAY_OVERLAYPOLYPOLYGON_HXX +#include <svx/sdr/overlay/overlaypolypolygon.hxx> +#endif + +#ifndef _SDR_OVERLAY_OVERLAYMANAGER_HXX +#include <svx/sdr/overlay/overlaymanager.hxx> +#endif + +#ifndef _SDRPAINTWINDOW_HXX +#include <sdrpaintwindow.hxx> +#endif + +#ifndef _SDRPAGEWINDOW_HXX +#include <sdrpagewindow.hxx> +#endif + //////////////////////////////////////////////////////////////////////////////////////////////////// SdrViewEvent::SdrViewEvent() @@ -104,6 +124,66 @@ SdrViewEvent::~SdrViewEvent() } //////////////////////////////////////////////////////////////////////////////////////////////////// +// helper class for all D&D overlays + +void SdrDropMarkerOverlay::ImplCreateOverlays(const SdrView& rView, const basegfx::B2DPolyPolygon& rPolyPolygon) +{ + for(sal_uInt32 a(0L); a < rView.PaintWindowCount(); a++) + { + SdrPaintWindow* pCandidate = rView.GetPaintWindow(a); + ::sdr::overlay::OverlayManager* pTargetOverlay = pCandidate->GetOverlayManager(); + + if(pTargetOverlay) + { + ::sdr::overlay::OverlayPolyPolygonStriped* pNew = new ::sdr::overlay::OverlayPolyPolygonStriped( + rPolyPolygon); + pTargetOverlay->add(*pNew); + maObjects.append(*pNew); + } + } +} + +SdrDropMarkerOverlay::SdrDropMarkerOverlay(const SdrView& rView, const SdrObject& rObject) +{ + ImplCreateOverlays(rView, rObject.TakeXorPoly(true)); +} + +SdrDropMarkerOverlay::SdrDropMarkerOverlay(const SdrView& rView, const Rectangle& rRectangle) +{ + basegfx::B2DPolygon aB2DPolygon; + aB2DPolygon.append(basegfx::B2DPoint(rRectangle.Left(), rRectangle.Top())); + aB2DPolygon.append(basegfx::B2DPoint(rRectangle.Right(), rRectangle.Top())); + aB2DPolygon.append(basegfx::B2DPoint(rRectangle.Right(), rRectangle.Bottom())); + aB2DPolygon.append(basegfx::B2DPoint(rRectangle.Left(), rRectangle.Bottom())); + aB2DPolygon.setClosed(true); + + basegfx::B2DPolyPolygon aB2DPolyPolygon; + aB2DPolyPolygon.append(aB2DPolygon); + + ImplCreateOverlays(rView, aB2DPolyPolygon); +} + +SdrDropMarkerOverlay::SdrDropMarkerOverlay(const SdrView& rView, const Point& rStart, const Point& rEnd) +{ + basegfx::B2DPolygon aB2DPolygon; + aB2DPolygon.append(basegfx::B2DPoint(rStart.X(), rStart.Y())); + aB2DPolygon.append(basegfx::B2DPoint(rEnd.X(), rEnd.Y())); + aB2DPolygon.setClosed(true); + + basegfx::B2DPolyPolygon aB2DPolyPolygon; + aB2DPolyPolygon.append(aB2DPolygon); + + ImplCreateOverlays(rView, aB2DPolyPolygon); +} + +SdrDropMarkerOverlay::~SdrDropMarkerOverlay() +{ + // The OverlayObjects are cleared using the destructor of OverlayObjectList. + // That destructor calls clear() at the list which removes all objects from the + // OverlayManager and deletes them. +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////// // // @@ @@ @@ @@@@@ @@ @@ @@ -119,36 +199,8 @@ SdrViewEvent::~SdrViewEvent() TYPEINIT1(SdrView,SdrCreateView); -SdrView::SdrView(SdrModel* pModel1, OutputDevice* pOut): - SdrCreateView(pModel1,pOut), - bNoExtendedMouseDispatcher(FALSE), - bNoExtendedKeyDispatcher(FALSE), - bNoExtendedCommandDispatcher(FALSE), - mbMasterPagePaintCaching(sal_False) -{ - bTextEditOnObjectsWithoutTextIfTextTool=FALSE; - - StartListening( maAccessibilityOptions ); - - onAccessibilityOptionsChanged(); -} - -SdrView::SdrView(SdrModel* pModel1, XOutputDevice* _pXOut): - SdrCreateView(pModel1,_pXOut), - bNoExtendedMouseDispatcher(FALSE), - bNoExtendedKeyDispatcher(FALSE), - bNoExtendedCommandDispatcher(FALSE), - mbMasterPagePaintCaching(sal_False) -{ - bTextEditOnObjectsWithoutTextIfTextTool=FALSE; - - StartListening( maAccessibilityOptions ); - - onAccessibilityOptionsChanged(); -} - -SdrView::SdrView(SdrModel* pModel1): - SdrCreateView(pModel1,(OutputDevice*)NULL), +SdrView::SdrView(SdrModel* pModel1, OutputDevice* pOut) +: SdrCreateView(pModel1,pOut), bNoExtendedMouseDispatcher(FALSE), bNoExtendedKeyDispatcher(FALSE), bNoExtendedCommandDispatcher(FALSE), @@ -183,7 +235,7 @@ BOOL SdrView::KeyInput(const KeyEvent& rKEvt, Window* pWin) default: { switch (rKEvt.GetKeyCode().GetFullCode()) { case KEY_ESCAPE: { - if (IsTextEdit()) EndTextEdit(); + if (IsTextEdit()) SdrEndTextEdit(); if (IsAction()) BrkAction(); if (pWin!=NULL) pWin->ReleaseMouse(); } break; @@ -280,7 +332,11 @@ SdrHitKind SdrView::PickAnything(const MouseEvent& rMEvt, USHORT nEventKind, Sdr rVEvt.nMouseMode=rMEvt.GetMode(); rVEvt.nMouseCode=rMEvt.GetButtons() | rMEvt.GetModifier(); const OutputDevice* pOut=pActualOutDev; - if (pOut==NULL) pOut=GetWin(0); + if (pOut==NULL) + { + pOut = GetFirstOutputDevice(); + //pOut=GetWin(0); + } Point aPnt(rMEvt.GetPosPixel()); if (pOut!=NULL) aPnt=pOut->PixelToLogic(aPnt); rVEvt.aLogicPos=aPnt; @@ -299,7 +355,6 @@ SdrHitKind SdrView::PickAnything(const MouseEvent& rMEvt, USHORT nEventKind, Sdr #define MODKEY_NoSnap bCtrl /* Fang temporaer aus */ #define MODKEY_Ortho bShift /* na eben ortho */ #define MODKEY_Center bAlt /* Zentrisch erzeugen/resizen */ -//#define MODKEY_BigOrtho bAlt #define MODKEY_AngleSnap bShift #define MODKEY_CopyDrag bCtrl /* Draggen mit kopieren */ @@ -314,7 +369,11 @@ SdrHitKind SdrView::PickAnything(const MouseEvent& rMEvt, USHORT nEventKind, Sdr SdrHitKind SdrView::PickAnything(const Point& rLogicPos, SdrViewEvent& rVEvt) const { const OutputDevice* pOut=pActualOutDev; - if (pOut==NULL) pOut=GetWin(0); + if (pOut==NULL) + { + pOut = GetFirstOutputDevice(); + //pOut=GetWin(0); + } Point aPnt(rLogicPos); BOOL bEditMode=IsEditMode(); BOOL bPointMode=bEditMode && HasMarkablePoints(); @@ -328,7 +387,7 @@ SdrHitKind SdrView::PickAnything(const Point& rLogicPos, SdrViewEvent& rVEvt) co BOOL bCtrl=(rVEvt.nMouseCode & KEY_MOD1) !=0; BOOL bAlt=(rVEvt.nMouseCode & KEY_MOD2) !=0; SdrHitKind eHit=SDRHIT_NONE; - SdrHdl* pHdl=pOut!=NULL && !bTextEditSel ? HitHandle(aPnt,*pActualOutDev) : NULL; + SdrHdl* pHdl=pOut!=NULL && !bTextEditSel ? PickHandle(aPnt) : NULL; SdrPageView* pPV=NULL; SdrObject* pObj=NULL; SdrObject* pHitObj=NULL; @@ -374,11 +433,9 @@ SdrHitKind SdrView::PickAnything(const Point& rLogicPos, SdrViewEvent& rVEvt) co } if (bDeep || bMid || bRoot) { - Point aP(aPnt); - aP-=pPV->GetOffset(); SdrObjMacroHitRec aHitRec; - aHitRec.aPos=aP; - aHitRec.aDownPos=aP; + aHitRec.aPos=aPnt; + aHitRec.aDownPos=aPnt; aHitRec.nTol=nHitTolLog; aHitRec.pVisiLayer=&pPV->GetVisibleLayers(); aHitRec.pPageView=pPV; @@ -398,9 +455,7 @@ SdrHitKind SdrView::PickAnything(const Point& rLogicPos, SdrViewEvent& rVEvt) co if (IsMacroMode() && eHit==SDRHIT_UNMARKEDOBJECT) { SdrTextObj* pTextObj=PTR_CAST(SdrTextObj,pHitObj); if (pTextObj!=NULL && pTextObj->HasText()) { - Point aP(aPnt); - aP-=pPV->GetOffset(); - BOOL bTEHit=pTextObj->IsTextEditHit(aP,0/*nHitTolLog*/,&pPV->GetVisibleLayers()); + BOOL bTEHit=pTextObj->IsTextEditHit(aPnt,0/*nHitTolLog*/,&pPV->GetVisibleLayers()); if (bTEHit) { Rectangle aTextRect; Rectangle aAnchor; @@ -409,24 +464,24 @@ SdrHitKind SdrView::PickAnything(const Point& rLogicPos, SdrViewEvent& rVEvt) co pOutliner = &pTextObj->GetModel()->GetHitTestOutliner(); pTextObj->TakeTextRect( *pOutliner, aTextRect, FALSE, &aAnchor, FALSE ); - aP-=aTextRect.TopLeft(); + aPnt-=aTextRect.TopLeft(); // FitToSize berueksichtigen SdrFitToSizeType eFit=pTextObj->GetFitToSize(); BOOL bFitToSize=(eFit==SDRTEXTFIT_PROPORTIONAL || eFit==SDRTEXTFIT_ALLLINES); if (bFitToSize) { Fraction aX(aTextRect.GetWidth()-1,aAnchor.GetWidth()-1); Fraction aY(aTextRect.GetHeight()-1,aAnchor.GetHeight()-1); - ResizePoint(aP,Point(),aX,aY); + ResizePoint(aPnt,Point(),aX,aY); } // Drehung berueksichtigen const GeoStat& rGeo=pTextObj->GetGeoStat(); - if (rGeo.nDrehWink!=0) RotatePoint(aP,Point(),-rGeo.nSin,rGeo.nCos); // -sin fuer Unrotate + if (rGeo.nDrehWink!=0) RotatePoint(aPnt,Point(),-rGeo.nSin,rGeo.nCos); // -sin fuer Unrotate // Laufschrift berueksichtigen fehlt noch ... if(pActualOutDev && pActualOutDev->GetOutDevType() == OUTDEV_WINDOW) { OutlinerView aOLV(pOutliner, (Window*)pActualOutDev); const EditView& aEV=aOLV.GetEditView(); - const SvxFieldItem* pItem=aEV.GetField(aP); + const SvxFieldItem* pItem=aEV.GetField(aPnt); if (pItem!=NULL) { const SvxFieldData* pFld=pItem->GetField(); const SvxURLField* pURL=PTR_CAST(SvxURLField,pFld); @@ -444,8 +499,6 @@ SdrHitKind SdrView::PickAnything(const Point& rLogicPos, SdrViewEvent& rVEvt) co (eHit==SDRHIT_MARKEDOBJECT || eHit==SDRHIT_UNMARKEDOBJECT) && (IsTextTool() || (IsEditMode() && IsQuickTextEditMode())) && pHitObj->HasTextEdit()) { - Point aP(aPnt); - aP-=pPV->GetOffset(); // Ringsum die TextEditArea ein Rand zum Selektieren ohne Textedit Rectangle aBoundRect(pHitObj->GetCurrentBoundRect()); @@ -465,17 +518,17 @@ SdrHitKind SdrView::PickAnything(const Point& rLogicPos, SdrViewEvent& rVEvt) co nTolerance = pOut->PixelToLogic(Size(2, 0)).Width(); } - if( (aP.X() >= aBoundRect.Left() - nTolerance && aP.X() <= aBoundRect.Left() + nTolerance) - || (aP.X() >= aBoundRect.Right() - nTolerance && aP.X() <= aBoundRect.Right() + nTolerance) - || (aP.Y() >= aBoundRect.Top() - nTolerance && aP.Y() <= aBoundRect.Top() + nTolerance) - || (aP.Y() >= aBoundRect.Bottom() - nTolerance && aP.Y() <= aBoundRect.Bottom() + nTolerance)) + if( (aPnt.X() >= aBoundRect.Left() - nTolerance && aPnt.X() <= aBoundRect.Left() + nTolerance) + || (aPnt.X() >= aBoundRect.Right() - nTolerance && aPnt.X() <= aBoundRect.Right() + nTolerance) + || (aPnt.Y() >= aBoundRect.Top() - nTolerance && aPnt.Y() <= aBoundRect.Top() + nTolerance) + || (aPnt.Y() >= aBoundRect.Bottom() - nTolerance && aPnt.Y() <= aBoundRect.Bottom() + nTolerance)) { bBoundRectHit = sal_True; } if(!bBoundRectHit) { - BOOL bTEHit=pHitObj->IsTextEditHit(aP,0,&pPV->GetVisibleLayers()); + BOOL bTEHit=pHitObj->IsTextEditHit(aPnt,0,&pPV->GetVisibleLayers()); // TextEdit an Objekten im gesperrten Layer if (pPV->GetLockedLayers().IsSet(pHitObj->GetLayer())) bTEHit=FALSE; @@ -555,7 +608,7 @@ SdrHitKind SdrView::PickAnything(const Point& rLogicPos, SdrViewEvent& rVEvt) co rVEvt.bUnmark=bMarked; // Toggle if (bGlue) { pObj=pHdl->GetObj(); - nGlueId=pHdl->GetObjHdlNum(); + nGlueId=(sal_uInt16)pHdl->GetObjHdlNum(); } } else if (bMarked) eEvent=SDREVENT_BEGDRAGOBJ; // MarkState nicht aendern, nur Drag } @@ -666,7 +719,7 @@ BOOL SdrView::DoMouseEvent(const SdrViewEvent& rVEvt) SetCrookAtCenter(MODKEY_Center); #endif if (bMouseLeft && bMouseDown && rVEvt.bIsTextEdit && (eHit==SDRHIT_UNMARKEDOBJECT || eHit==SDRHIT_NONE)) { - EndTextEdit(); // Danebengeklickt, Ende mit Edit + SdrEndTextEdit(); // Danebengeklickt, Ende mit Edit // pHdl ist dann ungueltig. Sollte aber egal sein, wein pHdl==NULL // sein muesste (wg. eHit). } @@ -696,12 +749,16 @@ BOOL SdrView::DoMouseEvent(const SdrViewEvent& rVEvt) if (!EndCreateObj(eCmd)) { // Event fuer Create nicht ausgewerten? -> Markieren if (eHit==SDRHIT_UNMARKEDOBJECT || eHit==SDRHIT_TEXTEDIT) { MarkObj(rVEvt.pRootObj,rVEvt.pPV); - if (eHit==SDRHIT_TEXTEDIT) { - BOOL bRet2=pActualOutDev!=NULL && pActualOutDev->GetOutDevType()==OUTDEV_WINDOW && - BegTextEdit(rVEvt.pObj,rVEvt.pPV,(Window*)pActualOutDev,(SdrOutliner*)NULL); - if (bRet2) { + if (eHit==SDRHIT_TEXTEDIT) + { + BOOL bRet2(pActualOutDev && OUTDEV_WINDOW == pActualOutDev->GetOutDevType() && + SdrBeginTextEdit(rVEvt.pObj, rVEvt.pPV, (Window*)pActualOutDev, sal_False, (SdrOutliner*)0L)); + + if(bRet2) + { MouseEvent aMEvt(pActualOutDev->LogicToPixel(aLogicPos), 1,rVEvt.nMouseMode,rVEvt.nMouseCode,rVEvt.nMouseCode); + OutlinerView* pOLV=GetTextEditOutlinerView(); if (pOLV!=NULL) { pOLV->MouseButtonDown(aMEvt); // Event an den Outliner, aber ohne Doppelklick @@ -761,7 +818,7 @@ BOOL SdrView::DoMouseEvent(const SdrViewEvent& rVEvt) } } break; case SDREVENT_BEGMARK: bRet=BegMark(aLogicPos,rVEvt.bAddMark,rVEvt.bUnmark); break; - case SDREVENT_BEGINSOBJPOINT: bRet=BegInsObjPoint(aLogicPos,MODKEY_PolyPoly); break; + case SDREVENT_BEGINSOBJPOINT: bRet = BegInsObjPoint(aLogicPos, MODKEY_PolyPoly); break; case SDREVENT_ENDINSOBJPOINT: { SdrCreateCmd eCmd=SDRCREATE_NEXTPOINT; if (MODKEY_PolyPoly) eCmd=SDRCREATE_NEXTOBJECT; @@ -784,9 +841,12 @@ BOOL SdrView::DoMouseEvent(const SdrViewEvent& rVEvt) UnmarkAllObj(); MarkObj(rVEvt.pRootObj,rVEvt.pPV); } - bRet=pActualOutDev!=NULL && pActualOutDev->GetOutDevType()==OUTDEV_WINDOW && - BegTextEdit(rVEvt.pObj,rVEvt.pPV,(Window*)pActualOutDev,(SdrOutliner*)NULL); - if (bRet) { + + bRet = pActualOutDev && OUTDEV_WINDOW == pActualOutDev->GetOutDevType()&& + SdrBeginTextEdit(rVEvt.pObj, rVEvt.pPV, (Window*)pActualOutDev, sal_False, (SdrOutliner*)0L); + + if(bRet) + { MouseEvent aMEvt(pActualOutDev->LogicToPixel(aLogicPos), 1,rVEvt.nMouseMode,rVEvt.nMouseCode,rVEvt.nMouseCode); OutlinerView* pOLV=GetTextEditOutlinerView(); @@ -819,19 +879,16 @@ BOOL SdrView::DoMouseEvent(const SdrViewEvent& rVEvt) Pointer SdrView::GetPreferedPointer(const Point& rMousePos, const OutputDevice* pOut, USHORT nModifier, BOOL bLeftDown) const { // Actions - if (IsCreateObj()) { - if (pLibObjDragMeth!=NULL) { - return Pointer(POINTER_CROSS); - } else { - return pAktCreate->GetCreatePointer(); - } + if (IsCreateObj()) + { + return pAktCreate->GetCreatePointer(); } if (pDragBla!=NULL) { if ((IsDraggingPoints() || IsDraggingGluePoints()) && IsMouseHideWhileDraggingPoints()) return Pointer(POINTER_NULL); return pDragBla->GetPointer(); } if (IsMarkObj() || IsMarkPoints() || IsMarkGluePoints() || IsEncirclement() || IsSetPageOrg()) return Pointer(POINTER_ARROW); - if (IsDragHelpLine()) return GetDraggedHelpLine().GetPointer(); + if (IsDragHelpLine()) return GetDraggedHelpLinePointer(); if (IsMacroObj()) { SdrObjMacroHitRec aHitRec; aHitRec.aPos=pOut->LogicToPixel(rMousePos); @@ -1045,25 +1102,40 @@ XubString SdrView::GetStatusText() pDragBla->TakeComment(aStr); } } - } else if (bMarking) { - if (AreObjectsMarked()) { - aStr=ImpGetResStr(STR_ViewMarkMoreObjs); - } else { - aStr=ImpGetResStr(STR_ViewMarkObjs); + } + else if(IsMarkObj()) + { + if(AreObjectsMarked()) + { + aStr = ImpGetResStr(STR_ViewMarkMoreObjs); + } + else + { + aStr = ImpGetResStr(STR_ViewMarkObjs); } - } else if (bMarkingPoints) { - if (HasMarkedPoints()) { - aStr=ImpGetResStr(STR_ViewMarkMorePoints); - } else { - aStr=ImpGetResStr(STR_ViewMarkPoints); + } + else if(IsMarkPoints()) + { + if(HasMarkedPoints()) + { + aStr = ImpGetResStr(STR_ViewMarkMorePoints); + } + else + { + aStr = ImpGetResStr(STR_ViewMarkPoints); } - } else if (bMarkingGluePoints) { - if (HasMarkedGluePoints()) { - aStr=ImpGetResStr(STR_ViewMarkMoreGluePoints); - } else { - aStr=ImpGetResStr(STR_ViewMarkGluePoints); + } else if (IsMarkGluePoints()) + { + if(HasMarkedGluePoints()) + { + aStr = ImpGetResStr(STR_ViewMarkMoreGluePoints); + } + else + { + aStr = ImpGetResStr(STR_ViewMarkGluePoints); } - } else if (IsTextEdit() && pTextEditOutlinerView!=NULL) { + } + else if (IsTextEdit() && pTextEditOutlinerView!=NULL) { aStr=ImpGetResStr(STR_ViewTextEdit); // "TextEdit - Zeile y Spalte x"; ESelection aSel(pTextEditOutlinerView->GetSelection()); long nPar=aSel.nEndPara,nLin=0,nCol=aSel.nEndPos; @@ -1176,7 +1248,7 @@ void SdrView::MarkAll() { if (IsTextEdit()) { GetTextEditOutlinerView()->SetSelection(ESelection(0,0,0xFFFF,0xFFFF)); -#ifndef SVX_LIGHT +#ifdef DBG_UTIL if (pItemBrowser!=NULL) pItemBrowser->SetDirty(); #endif } else if (IsGluePointEditMode()) MarkAllGluePoints(); @@ -1191,7 +1263,7 @@ void SdrView::UnmarkAll() eSel.nStartPara=eSel.nEndPara; eSel.nStartPos=eSel.nEndPos; GetTextEditOutlinerView()->SetSelection(eSel); -#ifndef SVX_LIGHT +#ifdef DBG_UTIL if (pItemBrowser!=NULL) pItemBrowser->SetDirty(); #endif } else if (HasMarkedGluePoints()) UnmarkAllGluePoints(); @@ -1341,74 +1413,6 @@ BOOL SdrView::IsDeleteMarkedPossible() const return IsDeleteMarkedObjPossible(); } -//BFS01void SdrView::WriteRecords(SvStream& rOut) const -//BFS01{ -//BFS01 { -//BFS01 // Der CharSet muss! als erstes rausgestreamt werden -//BFS01 SdrNamedSubRecord aSubRecord(rOut,STREAM_WRITE,SdrInventor,SDRIORECNAME_VIEWCHARSET); -//BFS01 -//BFS01 // UNICODE: -//BFS01 // rtl_TextEncoding eOutCharSet=rOut.GetStreamCharSet(); -//BFS01 rtl_TextEncoding eOutCharSet = gsl_getSystemTextEncoding(); -//BFS01 -//BFS01 // #90477# rOut << UINT16( GetStoreCharSet( eOutCharSet ) ); -//BFS01 rOut << (UINT16)GetSOStoreTextEncoding(eOutCharSet, (sal_uInt16)rOut.GetVersion()); -//BFS01 } -//BFS01 SdrCreateView::WriteRecords(rOut); -//BFS01} - -//BFS01BOOL SdrView::ReadRecord(const SdrIOHeader& rViewHead, -//BFS01 const SdrNamedSubRecord& rSubHead, -//BFS01 SvStream& rIn) -//BFS01{ -//BFS01 BOOL bRet=FALSE; -//BFS01 if (rSubHead.GetInventor()==SdrInventor) { -//BFS01 bRet=TRUE; -//BFS01 switch (rSubHead.GetIdentifier()) { -//BFS01 case SDRIORECNAME_VIEWCHARSET: { -//BFS01 UINT16 nCharSet; -//BFS01 // #90477# rIn>>nCharSet; -//BFS01 // rIn.SetStreamCharSet(rtl_TextEncoding(nCharSet)); -//BFS01 rIn >> nCharSet; -//BFS01 rIn.SetStreamCharSet(GetSOLoadTextEncoding((rtl_TextEncoding)nCharSet, (sal_uInt16)rIn.GetVersion())); -//BFS01 } break; -//BFS01 default: bRet=FALSE; -//BFS01 } -//BFS01 } -//BFS01 if (!bRet) bRet=SdrCreateView::ReadRecord(rViewHead,rSubHead,rIn); -//BFS01 return bRet; -//BFS01} - -//BFS01SvStream& operator<<(SvStream& rOut, const SdrView& rView) -//BFS01{ -//BFS01 SdrIOHeader aHead(rOut,STREAM_WRITE,SdrIOViewID); -//BFS01 rView.WriteRecords(rOut); -//BFS01 return rOut; -//BFS01} - -//BFS01SvStream& operator>>(SvStream& rIn, SdrView& rView) -//BFS01{ -//BFS01 if (rIn.GetError()!=0) return rIn; -//BFS01 rView.BrkAction(); -//BFS01 rView.Clear(); -//BFS01 SdrIOHeader aHead(rIn,STREAM_READ); -//BFS01 if (!aHead.IsMagic()) { -//BFS01 rIn.SetError(SVSTREAM_FILEFORMAT_ERROR); // Format-Fehler -//BFS01 return rIn; -//BFS01 } -//BFS01 rtl_TextEncoding eStreamCharSetMerker=rIn.GetStreamCharSet(); // Der StreamCharSet wird von SdrView::ReadRecord() gesetzt -//BFS01 while (aHead.GetBytesLeft()>0 && rIn.GetError()==0 && !rIn.IsEof()) { -//BFS01 SdrNamedSubRecord aSubRecord(rIn,STREAM_READ); -//BFS01 rView.ReadRecord(aHead,aSubRecord,rIn); -//BFS01 } -//BFS01 -//BFS01 rIn.SetStreamCharSet(eStreamCharSetMerker); // StreamCharSet wieder restaurieren -//BFS01 -//BFS01 rView.InvalidateAllWin(); -//BFS01 return rIn; -//BFS01} - - void SdrView::SFX_NOTIFY(SfxBroadcaster& rBC, const TypeId& rBCType, const SfxHint& rHint, const TypeId& rHintType) { if( rHint.ISA( SfxSimpleHint ) && ( (SfxSimpleHint&) rHint ).GetId() == SFX_HINT_ACCESSIBILITY_CHANGED ) @@ -1435,20 +1439,19 @@ void SdrView::SetMasterPagePaintCaching(sal_Bool bOn) { mbMasterPagePaintCaching = bOn; - // reset at all SdrPageViewWindow's - for(sal_uInt16 a(0); a < GetPageViewCount(); a++) - { - SdrPageView* pPageView = GetPageViewPvNum(a); - DBG_ASSERT(pPageView, "SdrView::SetMasterPagePaintCaching: Corrupt SdrPageView list (!)"); + // reset at all SdrPageWindow's + SdrPageView* pPageView = GetSdrPageView(); - for(sal_uInt32 b(0L); b < pPageView->WindowCount(); b++) + if(pPageView) + { + for(sal_uInt32 b(0L); b < pPageView->PageWindowCount(); b++) { - SdrPageViewWindow* pPageViewWindow = pPageView->GetWindow(a); - DBG_ASSERT(pPageViewWindow, "SdrView::SetMasterPagePaintCaching: Corrupt SdrPageViewWindow list (!)"); + SdrPageWindow* pPageWindow = pPageView->GetPageWindow(b); + DBG_ASSERT(pPageWindow, "SdrView::SetMasterPagePaintCaching: Corrupt SdrPageWindow list (!)"); // force deletion of ObjectContact, so at re-display all VOCs // will be re-created with updated flag setting - pPageViewWindow->ResetObjectContact(); + pPageWindow->ResetObjectContact(); } // force redraw of this view |