diff options
Diffstat (limited to 'sw/source/core/draw/dcontact.cxx')
-rw-r--r-- | sw/source/core/draw/dcontact.cxx | 329 |
1 files changed, 99 insertions, 230 deletions
diff --git a/sw/source/core/draw/dcontact.cxx b/sw/source/core/draw/dcontact.cxx index e501eb970121..d8d030fb4fec 100644 --- a/sw/source/core/draw/dcontact.cxx +++ b/sw/source/core/draw/dcontact.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. @@ -121,12 +122,6 @@ SwFrmFmt *FindFrmFmt( SdrObject *pObj ) pRetval = pContact->GetFmt(); } } -/* SJ: after prior consultation with OD we decided to remove this Assertion -#if OSL_DEBUG_LEVEL > 1 - ASSERT( pRetval, - "<::FindFrmFmt(..)> - no frame format found for given object. Please inform OD." ); -#endif -*/ return pRetval; } @@ -176,7 +171,7 @@ SwContact* GetUserCall( const SdrObject* pObj ) SdrObject *pTmp; while ( !pObj->GetUserCall() && 0 != (pTmp = pObj->GetUpGroup()) ) pObj = pTmp; - ASSERT( !pObj->GetUserCall() || pObj->GetUserCall()->ISA(SwContact), + OSL_ENSURE( !pObj->GetUserCall() || pObj->GetUserCall()->ISA(SwContact), "<::GetUserCall(..)> - wrong type of found object user call." ); return static_cast<SwContact*>(pObj->GetUserCall()); } @@ -195,30 +190,23 @@ sal_Bool IsMarqueeTextObj( const SdrObject& rObj ) |* |* SwContact, Ctor und Dtor |* -|* Ersterstellung AMA 27.Sep.96 18:13 -|* Letzte Aenderung AMA 27.Sep.96 -|* |*************************************************************************/ SwContact::SwContact( SwFrmFmt *pToRegisterIn ) : SwClient( pToRegisterIn ), - // OD 05.09.2003 #112039# - init member <mbInDTOR> mbInDTOR( false ) {} SwContact::~SwContact() { - // OD 05.09.2003 #112039# - set <mbInDTOR> SetInDTOR(); } -// OD 05.09.2003 #112039# - accessor for member <mbInDTOR> bool SwContact::IsInDTOR() const { return mbInDTOR; } -// OD 05.09.2003 #112039# - accessor to set member <mbInDTOR> void SwContact::SetInDTOR() { mbInDTOR = true; @@ -226,8 +214,6 @@ void SwContact::SetInDTOR() /** method to move drawing object to corresponding visible layer - OD 21.08.2003 #i18447# - @author OD */ void SwContact::MoveObjToVisibleLayer( SdrObject* _pDrawObj ) @@ -243,7 +229,7 @@ void SwContact::MoveObjToVisibleLayer( SdrObject* _pDrawObj ) if ( bNotify ) { SwAnchoredObject* pAnchoredObj = GetAnchoredObj( _pDrawObj ); - ASSERT( pAnchoredObj, + OSL_ENSURE( pAnchoredObj, "<SwContact::MoveObjToInvisibleLayer(..)> - missing anchored object" ); if ( pAnchoredObj ) { @@ -280,7 +266,7 @@ void SwContact::MoveObjToInvisibleLayer( SdrObject* _pDrawObj ) if ( bNotify ) { SwAnchoredObject* pAnchoredObj = GetAnchoredObj( _pDrawObj ); - ASSERT( pAnchoredObj, + OSL_ENSURE( pAnchoredObj, "<SwContact::MoveObjToInvisibleLayer(..)> - missing anchored object" ); // Note: as-character anchored objects aren't registered at a page frame and // a notification of its background isn't needed. @@ -306,20 +292,20 @@ void SwContact::_MoveObjToLayer( const bool _bToVisible, { if ( !_pDrawObj ) { - ASSERT( false, "SwDrawContact::_MoveObjToLayer(..) - no drawing object!" ); + OSL_FAIL( "SwDrawContact::_MoveObjToLayer(..) - no drawing object!" ); return; } if ( !GetRegisteredIn() ) { - ASSERT( false, "SwDrawContact::_MoveObjToLayer(..) - no drawing frame format!" ); + OSL_FAIL( "SwDrawContact::_MoveObjToLayer(..) - no drawing frame format!" ); return; } const IDocumentDrawModelAccess* pIDDMA = static_cast<SwFrmFmt*>(GetRegisteredInNonConst())->getIDocumentDrawModelAccess(); if ( !pIDDMA ) { - ASSERT( false, "SwDrawContact::_MoveObjToLayer(..) - no writer document!" ); + OSL_FAIL( "SwDrawContact::_MoveObjToLayer(..) - no writer document!" ); return; } @@ -391,7 +377,7 @@ void SwContact::_MoveObjToLayer( const bool _bToVisible, } // ------------------------------------------------------------------------- -// OD 2004-01-16 #110582# - some virtual helper methods for information +// some virtual helper methods for information // about the object (Writer fly frame resp. drawing object) const SwIndex& SwContact::GetCntntAnchorIndex() const @@ -401,8 +387,6 @@ const SwIndex& SwContact::GetCntntAnchorIndex() const /** get minimum order number of anchored objects handled by with contact - OD 2004-08-24 #110810# - @author */ sal_uInt32 SwContact::GetMinOrdNum() const @@ -424,15 +408,13 @@ sal_uInt32 SwContact::GetMinOrdNum() const aObjs.pop_back(); } - ASSERT( nMinOrdNum != SAL_MAX_UINT32, + OSL_ENSURE( nMinOrdNum != SAL_MAX_UINT32, "<SwContact::GetMinOrdNum()> - no order number found." ); return nMinOrdNum; } /** get maximum order number of anchored objects handled by with contact - OD 2004-08-24 #110810# - @author */ sal_uInt32 SwContact::GetMaxOrdNum() const @@ -462,9 +444,6 @@ sal_uInt32 SwContact::GetMaxOrdNum() const |* |* SwFlyDrawContact, Ctor und Dtor |* -|* Ersterstellung OK 23.11.94 18:13 -|* Letzte Aenderung MA 06. Apr. 95 -|* |*************************************************************************/ SwFlyDrawContact::SwFlyDrawContact( SwFlyFrmFmt *pToRegisterIn, SdrModel * ) : @@ -491,11 +470,11 @@ SwFlyDrawContact::~SwFlyDrawContact() // OD 2004-03-29 #i26791# const SwAnchoredObject* SwFlyDrawContact::GetAnchoredObj( const SdrObject* _pSdrObj ) const { - ASSERT( _pSdrObj, + OSL_ENSURE( _pSdrObj, "<SwFlyDrawContact::GetAnchoredObj(..)> - no object provided" ); - ASSERT( _pSdrObj->ISA(SwVirtFlyDrawObj), + OSL_ENSURE( _pSdrObj->ISA(SwVirtFlyDrawObj), "<SwFlyDrawContact::GetAnchoredObj(..)> - wrong object type object provided" ); - ASSERT( GetUserCall( _pSdrObj ) == const_cast<SwFlyDrawContact*>(this), + OSL_ENSURE( GetUserCall( _pSdrObj ) == const_cast<SwFlyDrawContact*>(this), "<SwFlyDrawContact::GetAnchoredObj(..)> - provided object doesn't belongs to this contact" ); const SwAnchoredObject* pRetAnchoredObj = 0L; @@ -510,11 +489,11 @@ const SwAnchoredObject* SwFlyDrawContact::GetAnchoredObj( const SdrObject* _pSdr SwAnchoredObject* SwFlyDrawContact::GetAnchoredObj( SdrObject* _pSdrObj ) { - ASSERT( _pSdrObj, + OSL_ENSURE( _pSdrObj, "<SwFlyDrawContact::GetAnchoredObj(..)> - no object provided" ); - ASSERT( _pSdrObj->ISA(SwVirtFlyDrawObj), + OSL_ENSURE( _pSdrObj->ISA(SwVirtFlyDrawObj), "<SwFlyDrawContact::GetAnchoredObj(..)> - wrong object type provided" ); - ASSERT( GetUserCall( _pSdrObj ) == this, + OSL_ENSURE( GetUserCall( _pSdrObj ) == this, "<SwFlyDrawContact::GetAnchoredObj(..)> - provided object doesn't belongs to this contact" ); SwAnchoredObject* pRetAnchoredObj = 0L; @@ -539,7 +518,7 @@ SdrObject* SwFlyDrawContact::GetMaster() void SwFlyDrawContact::SetMaster( SdrObject* _pNewMaster ) { - ASSERT( _pNewMaster->ISA(SwFlyDrawObj), + OSL_ENSURE( _pNewMaster->ISA(SwFlyDrawObj), "<SwFlyDrawContact::SetMaster(..)> - wrong type of new master object" ); mpMasterObj = static_cast<SwFlyDrawObj *>(_pNewMaster); } @@ -548,21 +527,18 @@ void SwFlyDrawContact::SetMaster( SdrObject* _pNewMaster ) |* |* SwFlyDrawContact::Modify() |* -|* Ersterstellung OK 08.11.94 10:21 -|* Letzte Aenderung MA 06. Dec. 94 -|* |*************************************************************************/ void SwFlyDrawContact::Modify( const SfxPoolItem*, const SfxPoolItem * ) { } -// OD 2004-01-16 #110582# - override method to control Writer fly frames, +// override method to control Writer fly frames, // which are linked, and to assure that all objects anchored at/inside the // Writer fly frame are also made visible. void SwFlyDrawContact::MoveObjToVisibleLayer( SdrObject* _pDrawObj ) { - ASSERT( _pDrawObj->ISA(SwVirtFlyDrawObj), + OSL_ENSURE( _pDrawObj->ISA(SwVirtFlyDrawObj), "<SwFlyDrawContact::MoveObjToVisibleLayer(..)> - wrong SdrObject type -> crash" ); if ( GetFmt()->getIDocumentDrawModelAccess()->IsVisibleLayerId( _pDrawObj->GetLayer() ) ) @@ -596,12 +572,12 @@ void SwFlyDrawContact::MoveObjToVisibleLayer( SdrObject* _pDrawObj ) SwContact::MoveObjToVisibleLayer( _pDrawObj ); } -// OD 2004-01-16 #110582# - override method to control Writer fly frames, +// override method to control Writer fly frames, // which are linked, and to assure that all objects anchored at/inside the // Writer fly frame are also made invisible. void SwFlyDrawContact::MoveObjToInvisibleLayer( SdrObject* _pDrawObj ) { - ASSERT( _pDrawObj->ISA(SwVirtFlyDrawObj), + OSL_ENSURE( _pDrawObj->ISA(SwVirtFlyDrawObj), "<SwFlyDrawContact::MoveObjToInvisibleLayer(..)> - wrong SdrObject type -> crash" ); if ( !GetFmt()->getIDocumentDrawModelAccess()->IsVisibleLayerId( _pDrawObj->GetLayer() ) ) @@ -631,8 +607,6 @@ void SwFlyDrawContact::MoveObjToInvisibleLayer( SdrObject* _pDrawObj ) /** get data collection of anchored objects, handled by with contact - OD 2004-08-23 #110810# - @author */ void SwFlyDrawContact::GetAnchoredObjs( std::list<SwAnchoredObject*>& _roAnchoredObjs ) const @@ -645,9 +619,6 @@ void SwFlyDrawContact::GetAnchoredObjs( std::list<SwAnchoredObject*>& _roAnchore |* |* SwDrawContact, Ctor+Dtor |* -|* Ersterstellung MA 09. Jan. 95 -|* Letzte Aenderung MA 22. Jul. 98 -|* |*************************************************************************/ bool CheckControlLayer( const SdrObject *pObj ) { @@ -672,19 +643,16 @@ SwDrawContact::SwDrawContact( SwFrmFmt* pToRegisterIn, SdrObject* pObj ) : SwContact( pToRegisterIn ), maAnchoredDrawObj(), mbMasterObjCleared( false ), - // OD 10.10.2003 #112299# mbDisconnectInProgress( false ), - // --> OD 2006-01-18 #129959# mbUserCallActive( false ), // Note: value of <meEventTypeOfCurrentUserCall> isn't of relevance, because // <mbUserCallActive> is sal_False. meEventTypeOfCurrentUserCall( SDRUSERCALL_MOVEONLY ) - // <-- { // clear list containing 'virtual' drawing objects. maDrawVirtObjs.clear(); - // --> OD 2004-09-22 #i33909# - assure, that drawing object is inserted + // --> #i33909# - assure, that drawing object is inserted // in the drawing page. if ( !pObj->IsInserted() ) { @@ -697,27 +665,26 @@ SwDrawContact::SwDrawContact( SwFrmFmt* pToRegisterIn, SdrObject* pObj ) : //Gruppenobjekte, wenn diese Controls enthalten. if ( ::CheckControlLayer( pObj ) ) { - // OD 25.06.2003 #108784# - set layer of object to corresponding invisible layer. + // set layer of object to corresponding invisible layer. pObj->SetLayer( pToRegisterIn->getIDocumentDrawModelAccess()->GetInvisibleControlsId() ); } - // OD 2004-03-29 #i26791# + // #i26791# pObj->SetUserCall( this ); maAnchoredDrawObj.SetDrawObj( *pObj ); // if there already exists an SwXShape for the object, ensure it knows about us, and the SdrObject - // FS 2009-04-07 #i99056# + // #i99056# SwXShape::AddExistingShapeToFmt( *pObj ); } SwDrawContact::~SwDrawContact() { - // OD 05.09.2003 #112039# - set <mbInDTOR> SetInDTOR(); DisconnectFromLayout(); - // OD 25.06.2003 #108784# - remove 'master' from drawing page + // remove 'master' from drawing page RemoveMasterFromDrawPage(); // remove and destroy 'virtual' drawing objects. @@ -778,12 +745,12 @@ const SwAnchoredObject* SwDrawContact::GetAnchoredObj( const SdrObject* _pSdrObj _pSdrObj = GetMaster(); } - ASSERT( _pSdrObj, + OSL_ENSURE( _pSdrObj, "<SwDrawContact::GetAnchoredObj(..)> - no object provided" ); - ASSERT( _pSdrObj->ISA(SwDrawVirtObj) || + OSL_ENSURE( _pSdrObj->ISA(SwDrawVirtObj) || ( !_pSdrObj->ISA(SdrVirtObj) && !_pSdrObj->ISA(SwDrawVirtObj) ), "<SwDrawContact::GetAnchoredObj(..)> - wrong object type object provided" ); - ASSERT( GetUserCall( _pSdrObj ) == const_cast<SwDrawContact*>(this) || + OSL_ENSURE( GetUserCall( _pSdrObj ) == const_cast<SwDrawContact*>(this) || _pSdrObj == GetMaster(), "<SwDrawContact::GetAnchoredObj(..)> - provided object doesn't belongs to this contact" ); @@ -812,12 +779,12 @@ SwAnchoredObject* SwDrawContact::GetAnchoredObj( SdrObject* _pSdrObj ) _pSdrObj = GetMaster(); } - ASSERT( _pSdrObj, + OSL_ENSURE( _pSdrObj, "<SwDrawContact::GetAnchoredObj(..)> - no object provided" ); - ASSERT( _pSdrObj->ISA(SwDrawVirtObj) || + OSL_ENSURE( _pSdrObj->ISA(SwDrawVirtObj) || ( !_pSdrObj->ISA(SdrVirtObj) && !_pSdrObj->ISA(SwDrawVirtObj) ), "<SwDrawContact::GetAnchoredObj(..)> - wrong object type object provided" ); - ASSERT( GetUserCall( _pSdrObj ) == this || _pSdrObj == GetMaster(), + OSL_ENSURE( GetUserCall( _pSdrObj ) == this || _pSdrObj == GetMaster(), "<SwDrawContact::GetAnchoredObj(..)> - provided object doesn't belongs to this contact" ); SwAnchoredObject* pRetAnchoredObj = 0L; @@ -851,9 +818,9 @@ SdrObject* SwDrawContact::GetMaster() : 0L; } -// OD 16.05.2003 #108784# - overload <SwContact::SetMaster(..)> in order to +// overload <SwContact::SetMaster(..)> in order to // assert, if the 'master' drawing object is replaced. -// OD 10.07.2003 #110742# - replace of master object correctly handled, if +// replace of master object correctly handled, if // handled by method <SwDrawContact::ChangeMasterObject(..)>. Thus, assert // only, if a debug level is given. void SwDrawContact::SetMaster( SdrObject* _pNewMaster ) @@ -861,7 +828,7 @@ void SwDrawContact::SetMaster( SdrObject* _pNewMaster ) if ( _pNewMaster ) { #if OSL_DEBUG_LEVEL > 1 - ASSERT( false, "debug notification - master replaced!" ); + OSL_FAIL( "debug notification - master replaced!" ); #endif maAnchoredDrawObj.SetDrawObj( *_pNewMaster ); } @@ -887,8 +854,7 @@ const SwFrm* SwDrawContact::GetAnchorFrm( const SdrObject* _pDrawObj ) const } else { - ASSERT( false, - "<SwDrawContact::GetAnchorFrm(..)> - unknown drawing object." ) + OSL_FAIL( "<SwDrawContact::GetAnchorFrm(..)> - unknown drawing object." ); } return pAnchorFrm; @@ -905,15 +871,15 @@ SwFrm* SwDrawContact::GetAnchorFrm( SdrObject* _pDrawObj ) } else { - ASSERT( _pDrawObj->ISA(SwDrawVirtObj), - "<SwDrawContact::GetAnchorFrm(..)> - unknown drawing object." ) + OSL_ENSURE( _pDrawObj->ISA(SwDrawVirtObj), + "<SwDrawContact::GetAnchorFrm(..)> - unknown drawing object." ); pAnchorFrm = static_cast<SwDrawVirtObj*>(_pDrawObj)->AnchorFrm(); } return pAnchorFrm; } -// OD 23.06.2003 #108784# - method to create a new 'virtual' drawing object. +// method to create a new 'virtual' drawing object. SwDrawVirtObj* SwDrawContact::CreateVirtObj() { // determine 'master' @@ -928,7 +894,7 @@ SwDrawVirtObj* SwDrawContact::CreateVirtObj() return pNewDrawVirtObj; } -// OD 23.06.2003 #108784# - destroys a given 'virtual' drawing object. +// destroys a given 'virtual' drawing object. // side effect: 'virtual' drawing object is removed from data structure // <maDrawVirtObjs>. void SwDrawContact::DestroyVirtObj( SwDrawVirtObj* _pVirtObj ) @@ -940,7 +906,7 @@ void SwDrawContact::DestroyVirtObj( SwDrawVirtObj* _pVirtObj ) } } -// OD 16.05.2003 #108784# - add a 'virtual' drawing object to drawing page. +// add a 'virtual' drawing object to drawing page. // Use an already created one, which isn't used, or create a new one. SwDrawVirtObj* SwDrawContact::AddVirtObj() { @@ -966,7 +932,7 @@ SwDrawVirtObj* SwDrawContact::AddVirtObj() return pAddedDrawVirtObj; } -// OD 16.05.2003 #108784# - remove 'virtual' drawing objects and destroy them. +// remove 'virtual' drawing objects and destroy them. void SwDrawContact::RemoveAllVirtObjs() { for ( std::list<SwDrawVirtObj*>::iterator aDrawVirtObjsIter = maDrawVirtObjs.begin(); @@ -1016,12 +982,12 @@ bool SwDrawContact::VirtObjAnchoredAtFrmPred::operator() ( const SwDrawVirtObj* return ( pObjAnchorFrm == mpAnchorFrm ); } -// OD 19.06.2003 #108784# - get drawing object ('master' or 'virtual') by frame. +// get drawing object ('master' or 'virtual') by frame. SdrObject* SwDrawContact::GetDrawObjectByAnchorFrm( const SwFrm& _rAnchorFrm ) { SdrObject* pRetDrawObj = 0L; - // OD 2004-04-14 #i26791# - compare master frames instead of direct frames + // #i26791# - compare master frames instead of direct frames const SwFrm* pProposedAnchorFrm = &_rAnchorFrm; if ( pProposedAnchorFrm->IsCntntFrm() ) { @@ -1069,12 +1035,8 @@ SdrObject* SwDrawContact::GetDrawObjectByAnchorFrm( const SwFrm& _rAnchorFrm ) |* |* SwDrawContact::Changed |* -|* Ersterstellung MA 09. Jan. 95 -|* Letzte Aenderung MA 29. May. 96 -|* |*************************************************************************/ -// OD 03.07.2003 #108784# void SwDrawContact::NotifyBackgrdOfAllVirtObjs( const Rectangle* pOldBoundRect ) { for ( std::list<SwDrawVirtObj*>::iterator aDrawVirtObjIter = maDrawVirtObjs.begin(); @@ -1084,9 +1046,8 @@ void SwDrawContact::NotifyBackgrdOfAllVirtObjs( const Rectangle* pOldBoundRect ) SwDrawVirtObj* pDrawVirtObj = (*aDrawVirtObjIter); if ( pDrawVirtObj->GetAnchorFrm() ) { - // --> OD 2004-10-21 #i34640# - determine correct page frame + // #i34640# - determine correct page frame SwPageFrm* pPage = pDrawVirtObj->AnchoredObj()->FindPageFrmOfAnchor(); - // <-- if( pOldBoundRect && pPage ) { SwRect aOldRect( *pOldBoundRect ); @@ -1095,14 +1056,11 @@ void SwDrawContact::NotifyBackgrdOfAllVirtObjs( const Rectangle* pOldBoundRect ) ::Notify_Background( pDrawVirtObj, pPage, aOldRect, PREP_FLY_LEAVE,sal_True); } - // --> OD 2004-10-21 #i34640# - include spacing for wrapping + // #i34640# - include spacing for wrapping SwRect aRect( pDrawVirtObj->GetAnchoredObj()->GetObjRectWithSpaces() ); - // <-- if( aRect.HasArea() ) { - // --> OD 2004-10-21 #i34640# - simplify SwPageFrm* pPg = (SwPageFrm*)::FindPage( aRect, pPage ); - // <-- if ( pPg ) ::Notify_Background( pDrawVirtObj, pPg, aRect, PREP_FLY_ARRIVE, sal_True ); @@ -1199,7 +1157,6 @@ void SwDrawContact::Changed( const SdrObject& rObj, pTmpRoot->EndAllAction(); } -// --> OD 2006-01-18 #129959# // helper class for method <SwDrawContact::_Changed(..)> for handling nested // <SdrObjUserCall> events class NestedUserCallHdl @@ -1234,7 +1191,7 @@ class NestedUserCallHdl mpDrawContact = 0; } - bool IsNestedUserCall() + bool IsNestedUserCall() const { return mbParentUserCallActive; } @@ -1265,8 +1222,7 @@ class NestedUserCallHdl if ( bTmpAssert ) { - ASSERT( false, - "<SwDrawContact::_Changed(..)> - unknown nested <UserCall> event. This is serious, please inform OD." ); + OSL_FAIL( "<SwDrawContact::_Changed(..)> - unknown nested <UserCall> event. This is serious, please inform OD." ); } } } @@ -1280,7 +1236,6 @@ void SwDrawContact::_Changed( const SdrObject& rObj, SdrUserCallType eType, const Rectangle* pOldBoundRect ) { - // --> OD 2006-01-18 #129959# // suppress handling of nested <SdrObjUserCall> events NestedUserCallHdl aNestedUserCallHdl( this, eType ); if ( aNestedUserCallHdl.IsNestedUserCall() ) @@ -1288,14 +1243,12 @@ void SwDrawContact::_Changed( const SdrObject& rObj, aNestedUserCallHdl.AssertNestedUserCall(); return; } - // <-- - // OD 05.08.2002 #100843# - do *not* notify, if document is destructing + // do *not* notify, if document is destructing // --> OD 2004-10-21 #i35912# - do *not* notify for as-character anchored // drawing objects. // --> OD 2004-11-11 #i35007# // improvement: determine as-character anchored object flag only once. const bool bAnchoredAsChar = ObjAnchoredAsChar(); - // <-- const bool bNotify = !(GetFmt()->GetDoc()->IsInDtor()) && ( SURROUND_THROUGHT != GetFmt()->GetSurround().GetSurround() ) && !bAnchoredAsChar; @@ -1307,7 +1260,7 @@ void SwDrawContact::_Changed( const SdrObject& rObj, if ( bNotify ) { lcl_NotifyBackgroundOfObj( *this, rObj, pOldBoundRect ); - // --> OD 2004-10-27 #i36181# - background of 'virtual' + // --> #i36181# - background of 'virtual' // drawing objects have also been notified. NotifyBackgrdOfAllVirtObjs( pOldBoundRect ); // <-- @@ -1315,18 +1268,16 @@ void SwDrawContact::_Changed( const SdrObject& rObj, DisconnectFromLayout( false ); SetMaster( NULL ); delete this; - // --> FME 2006-07-12 #i65784# Prevent memory corruption + // --> #i65784# Prevent memory corruption aNestedUserCallHdl.DrawContactDeleted(); // <-- break; } case SDRUSERCALL_INSERTED: { - // OD 10.10.2003 #112299# if ( mbDisconnectInProgress ) { - ASSERT( false, - "<SwDrawContact::_Changed(..)> - Insert event during disconnection from layout is invalid." ); + OSL_FAIL( "<SwDrawContact::_Changed(..)> - Insert event during disconnection from layout is invalid." ); } else { @@ -1350,7 +1301,7 @@ void SwDrawContact::_Changed( const SdrObject& rObj, case SDRUSERCALL_CHILD_INSERTED : case SDRUSERCALL_CHILD_REMOVED : { - // --> AW, OD 2010-09-13 #i113730# + // --> #i113730# // force layer of controls for group objects containing control objects if(dynamic_cast< SdrObjGroup* >(maAnchoredDrawObj.DrawObj())) { @@ -1462,8 +1413,7 @@ void SwDrawContact::_Changed( const SdrObject& rObj, break; default: { - ASSERT( false, - "<SwDrawContact::_Changed(..)> - unsupported layout direction" ); + OSL_FAIL( "<SwDrawContact::_Changed(..)> - unsupported layout direction" ); } } SfxItemSet aSet( GetFmt()->GetDoc()->GetAttrPool(), @@ -1515,22 +1465,6 @@ void SwDrawContact::_Changed( const SdrObject& rObj, // <-- } } - // --> OD 2006-01-18 #129959# - // It reveals that the following code causes several defects - - // on copying or on ungrouping a group shape containing edge objects. - // Testing fix for #i53320# also reveal that the following code - // isn't necessary. -// // --> OD 2005-08-15 #i53320# - reset positioning attributes, -// // if anchored drawing object isn't yet positioned. -// else if ( pAnchoredDrawObj->NotYetPositioned() && -// static_cast<const SwDrawFrmFmt&>(pAnchoredDrawObj->GetFrmFmt()).IsPosAttrSet() ) -// { -// const_cast<SwDrawFrmFmt&>( -// static_cast<const SwDrawFrmFmt&>(pAnchoredDrawObj->GetFrmFmt())) -// .ResetPosAttr(); -// } -// // <-- - // <-- } break; case SDRUSERCALL_CHGATTR: @@ -1567,15 +1501,11 @@ namespace |* |* SwDrawContact::Modify() |* -|* Ersterstellung MA 09. Jan. 95 -|* Letzte Aenderung MA 03. Dec. 95 -|* |*************************************************************************/ void SwDrawContact::Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew ) { - // OD 10.10.2003 #112299# - ASSERT( !mbDisconnectInProgress, + OSL_ENSURE( !mbDisconnectInProgress, "<SwDrawContact::Modify(..)> called during disconnection."); sal_uInt16 nWhich = pNew ? pNew->Which() : 0; @@ -1583,11 +1513,11 @@ void SwDrawContact::Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew ) if ( pNewAnchorFmt ) { - // JP 10.04.95: nicht auf ein Reset Anchor reagieren !!!!! + // nicht auf ein Reset Anchor reagieren !!!!! if ( SFX_ITEM_SET == GetFmt()->GetAttrSet().GetItemState( RES_ANCHOR, sal_False ) ) { - // OD 10.10.2003 #112299# - no connect to layout during disconnection + // no connect to layout during disconnection if ( !mbDisconnectInProgress ) { // determine old object retangle of 'master' drawing object @@ -1596,7 +1526,7 @@ void SwDrawContact::Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew ) Rectangle aOldRect; if ( GetAnchorFrm() ) { - // --> OD 2004-10-27 #i36181# - include spacing in object + // --> #i36181# - include spacing in object // rectangle for notification. aOldRect = maAnchoredDrawObj.GetObjRectWithSpaces().SVRect(); pOldRect = &aOldRect; @@ -1611,10 +1541,10 @@ void SwDrawContact::Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew ) const SwFmtAnchor* pOldAnchorFmt = pOld ? lcl_getAnchorFmt( *pOld ) : NULL; if ( !pOldAnchorFmt || ( pOldAnchorFmt->GetAnchorId() != pNewAnchorFmt->GetAnchorId() ) ) { - ASSERT( maAnchoredDrawObj.DrawObj(), "SwDrawContact::Modify: no draw object here?" ); + OSL_ENSURE( maAnchoredDrawObj.DrawObj(), "SwDrawContact::Modify: no draw object here?" ); if ( maAnchoredDrawObj.DrawObj() ) { - // --> OD 2009-07-10 #i102752# + // --> #i102752# // assure that a ShapePropertyChangeNotifier exists maAnchoredDrawObj.DrawObj()->notifyShapePropertyChange( ::svx::eTextShapeAnchorType ); // <-- @@ -1625,12 +1555,11 @@ void SwDrawContact::Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew ) else DisconnectFromLayout(); } - // --> OD 2006-03-17 #i62875# - revised fix for issue #124157# - // no further notification, if not connected to Writer layout + // --> #i62875# - no further notification, if not connected to Writer layout else if ( maAnchoredDrawObj.GetAnchorFrm() && maAnchoredDrawObj.GetDrawObj()->GetUserCall() ) { - // --> OD 2004-07-01 #i28701# - on change of wrapping style, hell|heaven layer, + // --> #i28701# - on change of wrapping style, hell|heaven layer, // or wrapping style influence an update of the <SwSortedObjs> list, // the drawing object is registered in, has to be performed. This is triggered // by the 1st parameter of method call <_InvalidateObjs(..)>. @@ -1684,8 +1613,7 @@ void SwDrawContact::Modify( const SfxPoolItem* pOld, const SfxPoolItem *pNew ) #if OSL_DEBUG_LEVEL > 1 else { - ASSERT( false, - "<SwDrawContact::Modify(..)> - unhandled attribute? - please inform od@openoffice.org" ); + OSL_FAIL( "<SwDrawContact::Modify(..)> - unhandled attribute? - please inform od@openoffice.org" ); } #endif } @@ -1735,17 +1663,13 @@ void SwDrawContact::_InvalidateObjs( const bool _bUpdateSortedObjsList ) |* |* SwDrawContact::DisconnectFromLayout() |* -|* Ersterstellung MA 09. Jan. 95 -|* Letzte Aenderung MA 25. Mar. 99 -|* |*************************************************************************/ void SwDrawContact::DisconnectFromLayout( bool _bMoveMasterToInvisibleLayer ) { - // OD 10.10.2003 #112299# mbDisconnectInProgress = true; - // --> OD 2004-10-27 #i36181# - notify background of drawing object + // --> #i36181# - notify background of drawing object if ( _bMoveMasterToInvisibleLayer && !(GetFmt()->GetDoc()->IsInDtor()) && GetAnchorFrm() ) @@ -1756,7 +1680,7 @@ void SwDrawContact::DisconnectFromLayout( bool _bMoveMasterToInvisibleLayer ) } // <-- - // OD 16.05.2003 #108784# - remove 'virtual' drawing objects from writer + // remove 'virtual' drawing objects from writer // layout and from drawing page for ( std::list<SwDrawVirtObj*>::iterator aDisconnectIter = maDrawVirtObjs.begin(); aDisconnectIter != maDrawVirtObjs.end(); @@ -1781,24 +1705,21 @@ void SwDrawContact::DisconnectFromLayout( bool _bMoveMasterToInvisibleLayer ) pView->MarkObj( GetMaster(), pView->GetSdrPageView(), sal_True ); } - // OD 25.06.2003 #108784# - Instead of removing 'master' object from - // drawing page, move the 'master' drawing object into the corresponding - // invisible layer. + // Instead of removing 'master' object from drawing page, move the + // 'master' drawing object into the corresponding invisible layer. { //((SwFrmFmt*)GetRegisteredIn())->getIDocumentDrawModelAccess()->GetDrawModel()->GetPage(0)-> // RemoveObject( GetMaster()->GetOrdNum() ); - // OD 21.08.2003 #i18447# - in order to consider group object correct + // #i18447# - in order to consider group object correct // use new method <SwDrawContact::MoveObjToInvisibleLayer(..)> MoveObjToInvisibleLayer( GetMaster() ); } } - // OD 10.10.2003 #112299# mbDisconnectInProgress = false; } -// OD 26.06.2003 #108784# - method to remove 'master' drawing object -// from drawing page. +// method to remove 'master' drawing object from drawing page. void SwDrawContact::RemoveMasterFromDrawPage() { if ( GetMaster() ) @@ -1812,11 +1733,10 @@ void SwDrawContact::RemoveMasterFromDrawPage() } } -// OD 19.06.2003 #108784# - disconnect for a dedicated drawing object - -// could be 'master' or 'virtual'. +// disconnect for a dedicated drawing object - could be 'master' or 'virtual'. // a 'master' drawing object will disconnect a 'virtual' drawing object // in order to take its place. -// OD 13.10.2003 #i19919# - no special case, if drawing object isn't in +// #i19919# - no special case, if drawing object isn't in // page header/footer, in order to get drawing objects in repeating table headers // also working. void SwDrawContact::DisconnectObjFromLayout( SdrObject* _pDrawObj ) @@ -1860,9 +1780,6 @@ void SwDrawContact::DisconnectObjFromLayout( SdrObject* _pDrawObj ) |* |* SwDrawContact::ConnectToLayout() |* -|* Ersterstellung MA 09. Jan. 95 -|* Letzte Aenderung MA 25. Mar. 99 -|* |*************************************************************************/ SwTxtFrm* lcl_GetFlyInCntntAnchor( SwTxtFrm* _pProposedAnchorFrm, const xub_StrLen _nTxtOfs ) @@ -1880,20 +1797,18 @@ SwTxtFrm* lcl_GetFlyInCntntAnchor( SwTxtFrm* _pProposedAnchorFrm, void SwDrawContact::ConnectToLayout( const SwFmtAnchor* pAnch ) { - // OD 10.10.2003 #112299# - *no* connect to layout during disconnection from - // layout. + // *no* connect to layout during disconnection from layout. if ( mbDisconnectInProgress ) { - ASSERT( false, - "<SwDrawContact::ConnectToLayout(..)> called during disconnection."); + OSL_FAIL( "<SwDrawContact::ConnectToLayout(..)> called during disconnection."); return; } - // --> OD 2004-09-22 #i33909# - *no* connect to layout, if 'master' drawing + // --> #i33909# - *no* connect to layout, if 'master' drawing // object isn't inserted in the drawing page if ( !GetMaster()->IsInserted() ) { - ASSERT( false, "<SwDrawContact::ConnectToLayout(..)> - master drawing object not inserted -> no connect to layout. Please inform od@openoffice.org" ); + OSL_FAIL( "<SwDrawContact::ConnectToLayout(..)> - master drawing object not inserted -> no connect to layout. Please inform od@openoffice.org" ); return; } // <-- @@ -1903,7 +1818,7 @@ void SwDrawContact::ConnectToLayout( const SwFmtAnchor* pAnch ) if( !pDrawFrmFmt->getIDocumentLayoutAccess()->GetCurrentViewShell() ) return; - // OD 16.05.2003 #108784# - remove 'virtual' drawing objects from writer + // remove 'virtual' drawing objects from writer // layout and from drawing page, and remove 'master' drawing object from // writer layout - 'master' object will remain in drawing page. DisconnectFromLayout( false ); @@ -1948,7 +1863,7 @@ void SwDrawContact::ConnectToLayout( const SwFmtAnchor* pAnch ) { ClrContourCache( GetMaster() ); } - // OD 16.05.2003 #108784# - support drawing objects in header/footer, + // support drawing objects in header/footer, // but not control objects: // anchor at first found frame the 'master' object and // at the following frames 'virtual' drawing objects. @@ -2010,12 +1925,11 @@ void SwDrawContact::ConnectToLayout( const SwFmtAnchor* pAnch ) if ( FLY_AT_FLY == pAnch->GetAnchorId() && !pFrm->IsFlyFrm() ) { pFrm = pFrm->FindFlyFrm(); - ASSERT( pFrm, + OSL_ENSURE( pFrm, "<SwDrawContact::ConnectToLayout(..)> - missing fly frame -> crash." ); } - // OD 2004-01-20 #110582# - find correct follow for - // as character anchored objects. + // find correct follow for as character anchored objects if ((pAnch->GetAnchorId() == FLY_AS_CHAR) && pFrm->IsTxtFrm() ) { @@ -2040,8 +1954,6 @@ void SwDrawContact::ConnectToLayout( const SwFmtAnchor* pAnch ) } pFrm->AppendDrawObj( *(pDrawVirtObj->AnchoredObj()) ); - // for repaint, use new ActionChanged() - // pDrawVirtObj->SendRepaintBroadcast(); pDrawVirtObj->ActionChanged(); } @@ -2054,18 +1966,18 @@ void SwDrawContact::ConnectToLayout( const SwFmtAnchor* pAnch ) } break; default: - ASSERT( sal_False, "Unknown Anchor." ) + OSL_FAIL( "Unknown Anchor." ); break; } if ( GetAnchorFrm() ) { ::setContextWritingMode( maAnchoredDrawObj.DrawObj(), GetAnchorFrm() ); - // OD 2004-04-01 #i26791# - invalidate objects instead of direct positioning + // #i26791# - invalidate objects instead of direct positioning _InvalidateObjs(); } } -// OD 27.06.2003 #108784# - insert 'master' drawing object into drawing page +// insert 'master' drawing object into drawing page void SwDrawContact::InsertMasterIntoDrawPage() { if ( !GetMaster()->IsInserted() ) @@ -2080,14 +1992,11 @@ void SwDrawContact::InsertMasterIntoDrawPage() |* |* SwDrawContact::FindPage(), ChkPage() |* -|* Ersterstellung MA 21. Mar. 95 -|* Letzte Aenderung MA 19. Jul. 96 -|* |*************************************************************************/ SwPageFrm* SwDrawContact::FindPage( const SwRect &rRect ) { - // --> OD 2004-07-01 #i28701# - use method <GetPageFrm()> + // --> #i28701# - use method <GetPageFrm()> SwPageFrm* pPg = GetPageFrm(); if ( !pPg && GetAnchorFrm() ) pPg = GetAnchorFrm()->FindPageFrm(); @@ -2098,24 +2007,21 @@ SwPageFrm* SwDrawContact::FindPage( const SwRect &rRect ) void SwDrawContact::ChkPage() { - // OD 10.10.2003 #112299# if ( mbDisconnectInProgress ) { - ASSERT( false, - "<SwDrawContact::ChkPage()> called during disconnection." ); + OSL_FAIL( "<SwDrawContact::ChkPage()> called during disconnection." ); return; } - // --> OD 2004-07-01 #i28701# + // --> #i28701# SwPageFrm* pPg = ( maAnchoredDrawObj.GetAnchorFrm() && maAnchoredDrawObj.GetAnchorFrm()->IsPageFrm() ) ? GetPageFrm() : FindPage( GetMaster()->GetCurrentBoundRect() ); if ( GetPageFrm() != pPg ) { - // OD 27.06.2003 #108784# - if drawing object is anchor in header/footer - // a change of the page is a dramatic change. Thus, completely re-connect - // to the layout + // if drawing object is anchor in header/footer a change of the page + // is a dramatic change. Thus, completely re-connect to the layout if ( maAnchoredDrawObj.GetAnchorFrm() && maAnchoredDrawObj.GetAnchorFrm()->FindFooterOrHeader() ) { @@ -2123,7 +2029,7 @@ void SwDrawContact::ChkPage() } else { - // --> OD 2004-07-01 #i28701# - use methods <GetPageFrm()> and <SetPageFrm> + // --> #i28701# - use methods <GetPageFrm()> and <SetPageFrm> if ( GetPageFrm() ) GetPageFrm()->RemoveDrawObjFromPage( maAnchoredDrawObj ); pPg->AppendDrawObjToPage( maAnchoredDrawObj ); @@ -2136,11 +2042,8 @@ void SwDrawContact::ChkPage() |* |* SwDrawContact::ChangeMasterObject() |* -|* Ersterstellung MA 07. Aug. 95 -|* Letzte Aenderung MA 20. Apr. 99 -|* |*************************************************************************/ -// OD 10.07.2003 #110742# - Important note: +// Important note: // method is called by method <SwDPage::ReplaceObject(..)>, which called its // corresponding superclass method <FmFormPage::ReplaceObject(..)>. // Note: 'master' drawing object *has* to be connected to layout triggered @@ -2148,7 +2051,7 @@ void SwDrawContact::ChkPage() void SwDrawContact::ChangeMasterObject( SdrObject *pNewMaster ) { DisconnectFromLayout( false ); - // OD 10.07.2003 #110742# - consider 'virtual' drawing objects + // consider 'virtual' drawing objects RemoveAllVirtObjs(); GetMaster()->SetUserCall( 0 ); @@ -2158,12 +2061,7 @@ void SwDrawContact::ChangeMasterObject( SdrObject *pNewMaster ) _InvalidateObjs(); } -/** get data collection of anchored objects, handled by with contact - - OD 2004-08-23 #110810# - - @author -*/ +// get data collection of anchored objects, handled by with contact void SwDrawContact::GetAnchoredObjs( std::list<SwAnchoredObject*>& _roAnchoredObjs ) const { _roAnchoredObjs.push_back( const_cast<SwAnchoredDrawObject*>(&maAnchoredDrawObj) ); @@ -2284,15 +2182,6 @@ namespace sdr drawinglayer::primitive2d::Primitive2DSequence VOCOfDrawVirtObj::createPrimitive2DSequence(const DisplayInfo& rDisplayInfo) const { -#ifdef DBG_UTIL - // #i101734# - static bool bCheckOtherThanTranslate(false); - static double fShearX(0.0); - static double fRotation(0.0); - static double fScaleX(0.0); - static double fScaleY(0.0); -#endif - const VCOfDrawVirtObj& rVC = static_cast< const VCOfDrawVirtObj& >(GetViewContact()); const SdrObject& rReferencedObject = rVC.GetSwDrawVirtObj().GetReferencedObj(); drawinglayer::primitive2d::Primitive2DSequence xRetval; @@ -2303,20 +2192,8 @@ namespace sdr if(aLocalOffset.X() || aLocalOffset.Y()) { -#ifdef DBG_UTIL - // #i101734# added debug code to check more complex transformations - // than just a translation - if(bCheckOtherThanTranslate) - { - aOffsetMatrix.scale(fScaleX, fScaleY); - aOffsetMatrix.shearX(tan(fShearX * F_PI180)); - aOffsetMatrix.rotate(fRotation * F_PI180); - } -#endif - aOffsetMatrix.set(0, 2, aLocalOffset.X()); aOffsetMatrix.set(1, 2, aLocalOffset.Y()); - } if(rReferencedObject.ISA(SdrObjGroup)) @@ -2367,8 +2244,6 @@ namespace sdr // ============================================================================= /** implementation of class <SwDrawVirtObj> - OD 14.05.2003 #108784# - @author OD */ @@ -2379,7 +2254,6 @@ sdr::contact::ViewContact* SwDrawVirtObj::CreateObjectSpecificViewContact() return new sdr::contact::VCOfDrawVirtObj(*this); } -// #108784# // implemetation of SwDrawVirtObj SwDrawVirtObj::SwDrawVirtObj( SdrObject& _rNewObj, SwDrawContact& _rDrawContact ) @@ -2553,8 +2427,6 @@ void SwDrawVirtObj::RecalcBoundRect() // OD 2004-04-05 #i26791# - switch order of calling <GetOffset()> and // <ReferencedObj().GetCurrentBoundRect()>, because <GetOffset()> calculates // its value by the 'BoundRect' of the referenced object. - //aOutRect = rRefObj.GetCurrentBoundRect(); - //aOutRect += GetOffset(); const Point aOffset(GetOffset()); aOutRect = ReferencedObj().GetCurrentBoundRect() + aOffset; @@ -2588,7 +2460,9 @@ SdrHdl* SwDrawVirtObj::GetHdl(sal_uInt32 nHdlNum) const SdrHdl* SwDrawVirtObj::GetPlusHdl(const SdrHdl& rHdl, sal_uInt16 nPlNum) const { SdrHdl* pHdl = rRefObj.GetPlusHdl(rHdl, nPlNum); - pHdl->SetPos(pHdl->GetPos() + GetOffset()); + + if (pHdl) + pHdl->SetPos(pHdl->GetPos() + GetOffset()); return pHdl; } @@ -2616,7 +2490,7 @@ void SwDrawVirtObj::NbcMirror(const Point& rRef1, const Point& rRef2) SetRectsDirty(); } -void SwDrawVirtObj::NbcShear(const Point& rRef, long nWink, double tn, FASTBOOL bVShear) +void SwDrawVirtObj::NbcShear(const Point& rRef, long nWink, double tn, bool bVShear) { rRefObj.NbcShear(rRef - GetOffset(), nWink, tn, bVShear); SetRectsDirty(); @@ -2625,10 +2499,6 @@ void SwDrawVirtObj::NbcShear(const Point& rRef, long nWink, double tn, FASTBOOL void SwDrawVirtObj::Move(const Size& rSiz) { SdrObject::Move( rSiz ); -// Rectangle aBoundRect0; if(pUserCall) aBoundRect0 = GetLastBoundRect(); -// rRefObj.Move( rSiz ); -// SetRectsDirty(); -// SendUserCall(SDRUSERCALL_RESIZE, aBoundRect0); } void SwDrawVirtObj::Resize(const Point& rRef, const Fraction& xFact, const Fraction& yFact) @@ -2661,7 +2531,7 @@ void SwDrawVirtObj::Mirror(const Point& rRef1, const Point& rRef2) SendUserCall(SDRUSERCALL_RESIZE, aBoundRect0); } -void SwDrawVirtObj::Shear(const Point& rRef, long nWink, double tn, FASTBOOL bVShear) +void SwDrawVirtObj::Shear(const Point& rRef, long nWink, double tn, bool bVShear) { if(nWink) { @@ -2751,15 +2621,13 @@ void SwDrawVirtObj::NbcSetPoint(const Point& rPnt, sal_uInt32 i) SetRectsDirty(); } -// #108784# -FASTBOOL SwDrawVirtObj::HasTextEdit() const +bool SwDrawVirtObj::HasTextEdit() const { return rRefObj.HasTextEdit(); } -// OD 18.06.2003 #108784# - overloaded 'layer' methods for 'virtual' drawing -// object to assure, that layer of 'virtual' object is the layer of the referenced -// object. +// overloaded 'layer' methods for 'virtual' drawing object to assure, +// that layer of 'virtual' object is the layer of the referenced object. SdrLayerID SwDrawVirtObj::GetLayer() const { return GetReferencedObj().GetLayer(); @@ -2791,3 +2659,4 @@ SdrObject* SwDrawVirtObj::getFullDragClone() const // eof +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |