Return-Path: X-Original-To: apmail-incubator-ooo-commits-archive@minotaur.apache.org Delivered-To: apmail-incubator-ooo-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 67C91C53A for ; Thu, 7 Jun 2012 17:08:44 +0000 (UTC) Received: (qmail 1382 invoked by uid 500); 7 Jun 2012 17:08:44 -0000 Delivered-To: apmail-incubator-ooo-commits-archive@incubator.apache.org Received: (qmail 1354 invoked by uid 500); 7 Jun 2012 17:08:44 -0000 Mailing-List: contact ooo-commits-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: ooo-dev@incubator.apache.org Delivered-To: mailing list ooo-commits@incubator.apache.org Received: (qmail 1347 invoked by uid 99); 7 Jun 2012 17:08:44 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 07 Jun 2012 17:08:44 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 07 Jun 2012 17:08:39 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 36C7623889E7; Thu, 7 Jun 2012 17:08:19 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1347716 [3/6] - in /incubator/ooo/branches/alg/aw080/main: basctl/source/dlged/ basctl/source/inc/ chart2/source/controller/main/ cui/source/tabpages/ filter/source/msfilter/ reportdesign/source/core/sdr/ reportdesign/source/ui/inc/ report... Date: Thu, 07 Jun 2012 17:08:12 -0000 To: ooo-commits@incubator.apache.org From: alg@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20120607170819.36C7623889E7@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Modified: incubator/ooo/branches/alg/aw080/main/svx/source/customshapes/EnhancedCustomShape2d.cxx URL: http://svn.apache.org/viewvc/incubator/ooo/branches/alg/aw080/main/svx/source/customshapes/EnhancedCustomShape2d.cxx?rev=1347716&r1=1347715&r2=1347716&view=diff ============================================================================== --- incubator/ooo/branches/alg/aw080/main/svx/source/customshapes/EnhancedCustomShape2d.cxx (original) +++ incubator/ooo/branches/alg/aw080/main/svx/source/customshapes/EnhancedCustomShape2d.cxx Thu Jun 7 17:08:07 2012 @@ -1801,7 +1801,6 @@ void EnhancedCustomShape2d::CreateSubPat aClosedPolyPolygon.setClosed(true); SdrPathObj* pFill = new SdrPathObj( pCustomShapeObj->getSdrModelFromSdrObject(), - OBJ_POLY, aClosedPolyPolygon); SfxItemSet aTempSet(*this); aTempSet.Put(SdrOnOffItem(SDRATTR_SHADOW, sal_False)); @@ -1818,7 +1817,6 @@ void EnhancedCustomShape2d::CreateSubPat // Thus, use a type that fits the polygon SdrPathObj* pStroke = new SdrPathObj( pCustomShapeObj->getSdrModelFromSdrObject(), - aNewB2DPolyPolygon.isClosed() ? OBJ_POLY : OBJ_PLIN, aNewB2DPolyPolygon); SfxItemSet aTempSet(*this); aTempSet.Put(SdrOnOffItem(SDRATTR_SHADOW, sal_False)); @@ -1838,7 +1836,6 @@ void EnhancedCustomShape2d::CreateSubPat // see comment above about OBJ_PLIN pObj = new SdrPathObj( pCustomShapeObj->getSdrModelFromSdrObject(), - aNewB2DPolyPolygon.isClosed() ? OBJ_POLY : OBJ_PLIN, aNewB2DPolyPolygon); aTempSet.Put(XFillStyleItem(XFILL_NONE)); } @@ -1847,7 +1844,6 @@ void EnhancedCustomShape2d::CreateSubPat aNewB2DPolyPolygon.setClosed(true); pObj = new SdrPathObj( pCustomShapeObj->getSdrModelFromSdrObject(), - OBJ_POLY, aNewB2DPolyPolygon); } @@ -1886,7 +1882,7 @@ void CorrectCalloutArrows( MSO_SPT eSpTy for ( i = 0; i < vObjectList.size(); i++ ) { SdrPathObj* pObj( vObjectList[ i ] ); - if(pObj->IsLine()) + if(pObj->isLine()) { nLine++; if ( nLine == nLineObjectCount ) @@ -1910,7 +1906,7 @@ void CorrectCalloutArrows( MSO_SPT eSpTy for ( i = 0; i < vObjectList.size(); i++ ) { SdrPathObj* pObj( vObjectList[ i ] ); - if(pObj->IsLine()) + if(pObj->isLine()) { nLine++; if ( nLine == 1 ) @@ -1937,7 +1933,7 @@ void CorrectCalloutArrows( MSO_SPT eSpTy for ( i = 0; i < vObjectList.size(); i++ ) { SdrPathObj* pObj( vObjectList[ i ] ); - if(pObj->IsLine()) + if(pObj->isLine()) { if ( nLine ) { @@ -1958,7 +1954,7 @@ void CorrectCalloutArrows( MSO_SPT eSpTy void EnhancedCustomShape2d::AdaptObjColor(SdrPathObj& rObj, const SfxItemSet& rCustomShapeSet, sal_uInt32& nColorIndex, sal_uInt32 nColorCount) { - if ( !rObj.IsLine() ) + if ( !rObj.isLine() ) { const XFillStyle eFillStyle = ((const XFillStyleItem&)rObj.GetMergedItem(XATTR_FILLSTYLE)).GetValue(); switch( eFillStyle ) @@ -2097,7 +2093,7 @@ SdrObject* EnhancedCustomShape2d::Create { SdrPathObj* pObj( vObjectList[ i ] ); - if(pObj->IsLine()) + if(pObj->isLine()) { nLineObjectCount++; } @@ -2122,7 +2118,7 @@ SdrObject* EnhancedCustomShape2d::Create { SdrPathObj* pObj( vObjectList[ i ] ); - if ( !pObj->IsLine() ) + if ( !pObj->isLine() ) { vTempList.push_back(pObj); } @@ -2132,7 +2128,7 @@ SdrObject* EnhancedCustomShape2d::Create { SdrPathObj* pObj( vObjectList[ i ] ); - if ( pObj->IsLine() ) + if ( pObj->isLine() ) { vTempList.push_back(pObj); } Modified: incubator/ooo/branches/alg/aw080/main/svx/source/customshapes/EnhancedCustomShapeEngine.cxx URL: http://svn.apache.org/viewvc/incubator/ooo/branches/alg/aw080/main/svx/source/customshapes/EnhancedCustomShapeEngine.cxx?rev=1347716&r1=1347715&r2=1347716&view=diff ============================================================================== --- incubator/ooo/branches/alg/aw080/main/svx/source/customshapes/EnhancedCustomShapeEngine.cxx (original) +++ incubator/ooo/branches/alg/aw080/main/svx/source/customshapes/EnhancedCustomShapeEngine.cxx Thu Jun 7 17:08:07 2012 @@ -49,6 +49,7 @@ #include #include #include +#include // --------------------------- // - EnhancedCustomShapeEngine - @@ -171,8 +172,7 @@ SdrObject* EnhancedCustomShapeEngine::Im // #i37011# also create a text object and add at rPos + 1 SdrTextObj* pTextObj = (SdrTextObj*)SdrObjFactory::MakeNewObject( pCustoObj->getSdrModelFromSdrObject(), - pCustoObj->GetObjInventor(), - OBJ_TEXT); + SdrObjectCreationInfo(OBJ_TEXT, pCustoObj->GetObjInventor())); // Copy text content OutlinerParaObject* pParaObj = pCustoObj->GetOutlinerParaObject(); @@ -359,8 +359,10 @@ REF( com::sun::star::drawing::XShape ) S if ( pRenderedShape ) { aCustomShape2d.ApplyGluePoints( pRenderedShape ); - xShape = SvxDrawPage::CreateShapeByTypeAndInventor( pRenderedShape->GetObjIdentifier(), - pRenderedShape->GetObjInventor(), pRenderedShape, NULL ); + xShape = SvxDrawPage::CreateShapeBySvxShapeKind( + SdrObjectCreatorInventorToSvxShapeKind(pRenderedShape->GetObjIdentifier(), pRenderedShape->GetObjInventor()), + pRenderedShape, + 0); } SetTemporary( xShape ); } Modified: incubator/ooo/branches/alg/aw080/main/svx/source/customshapes/EnhancedCustomShapeFontWork.cxx URL: http://svn.apache.org/viewvc/incubator/ooo/branches/alg/aw080/main/svx/source/customshapes/EnhancedCustomShapeFontWork.cxx?rev=1347716&r1=1347715&r2=1347716&view=diff ============================================================================== --- incubator/ooo/branches/alg/aw080/main/svx/source/customshapes/EnhancedCustomShapeFontWork.cxx (original) +++ incubator/ooo/branches/alg/aw080/main/svx/source/customshapes/EnhancedCustomShapeFontWork.cxx Thu Jun 7 17:08:07 2012 @@ -835,7 +835,6 @@ SdrObject* CreateSdrObjectFromParagraphO { SdrObject* pPathObj = new SdrPathObj( pCustomShape->getSdrModelFromSdrObject(), - OBJ_POLY, aOutlineIter->getB2DPolyPolygon() ); pRet->InsertObjectToSdrObjList(*pPathObj); aOutlineIter++; Modified: incubator/ooo/branches/alg/aw080/main/svx/source/dialog/_contdlg.cxx URL: http://svn.apache.org/viewvc/incubator/ooo/branches/alg/aw080/main/svx/source/dialog/_contdlg.cxx?rev=1347716&r1=1347715&r2=1347716&view=diff ============================================================================== --- incubator/ooo/branches/alg/aw080/main/svx/source/dialog/_contdlg.cxx (original) +++ incubator/ooo/branches/alg/aw080/main/svx/source/dialog/_contdlg.cxx Thu Jun 7 17:08:07 2012 @@ -762,14 +762,14 @@ IMPL_LINK( SvxSuperContourDlg, Tbx1Click case( TBI_RECT ): { pTbx->CheckItem( nNewItemId, sal_True ); - aContourWnd.SetObjKind( OBJ_RECT ); + aContourWnd.setSdrObjectCreationInfo(SdrObjectCreationInfo(OBJ_RECT)); } break; case( TBI_CIRCLE ): { pTbx->CheckItem( nNewItemId, sal_True ); - aContourWnd.SetObjKind( OBJ_CIRC ); + aContourWnd.setSdrObjectCreationInfo(SdrObjectCreationInfo(OBJ_CIRC)); } break; @@ -777,14 +777,20 @@ IMPL_LINK( SvxSuperContourDlg, Tbx1Click case( TBI_POLY ): { pTbx->CheckItem( nNewItemId, sal_True ); - aContourWnd.SetObjKind( OBJ_POLY ); + aContourWnd.setSdrObjectCreationInfo(SdrObjectCreationInfo(OBJ_POLY)); } break; case( TBI_FREEPOLY ): { pTbx->CheckItem( nNewItemId, sal_True ); - aContourWnd.SetObjKind( OBJ_FREEFILL ); + + SdrObjectCreationInfo aSdrObjectCreationInfo(OBJ_POLY); + + aSdrObjectCreationInfo.setSdrPathObjType(PathType_ClosedBezier); + aSdrObjectCreationInfo.setFreehandMode(true); + + aContourWnd.setSdrObjectCreationInfo(aSdrObjectCreationInfo); } break; Modified: incubator/ooo/branches/alg/aw080/main/svx/source/dialog/contwnd.cxx URL: http://svn.apache.org/viewvc/incubator/ooo/branches/alg/aw080/main/svx/source/dialog/contwnd.cxx?rev=1347716&r1=1347715&r2=1347716&view=diff ============================================================================== --- incubator/ooo/branches/alg/aw080/main/svx/source/dialog/contwnd.cxx (original) +++ incubator/ooo/branches/alg/aw080/main/svx/source/dialog/contwnd.cxx Thu Jun 7 17:08:07 2012 @@ -97,7 +97,7 @@ void ContourWindow::SetPolyPolygon( cons { basegfx::B2DPolyPolygon aPolyPolygon; aPolyPolygon.append(aPolyPoly[ i ].getB2DPolygon()); - SdrPathObj* pPathObj = new SdrPathObj( *pModel, OBJ_PATHFILL, aPolyPolygon ); + SdrPathObj* pPathObj = new SdrPathObj( *pModel, aPolyPolygon ); if ( pPathObj ) { Modified: incubator/ooo/branches/alg/aw080/main/svx/source/dialog/dlgctrl.cxx URL: http://svn.apache.org/viewvc/incubator/ooo/branches/alg/aw080/main/svx/source/dialog/dlgctrl.cxx?rev=1347716&r1=1347715&r2=1347716&view=diff ============================================================================== --- incubator/ooo/branches/alg/aw080/main/svx/source/dialog/dlgctrl.cxx (original) +++ incubator/ooo/branches/alg/aw080/main/svx/source/dialog/dlgctrl.cxx Thu Jun 7 17:08:07 2012 @@ -2077,8 +2077,7 @@ SvxXLinePreview::SvxXLinePreview( Window basegfx::B2DPolygon aPolygonA; aPolygonA.append(aPointA1); aPolygonA.append(aPointA2); - mpLineObjA = new SdrPathObj(getModel(), OBJ_LINE, basegfx::B2DPolyPolygon(aPolygonA)); - //mpLineObjA->SetModel(&getModel()); + mpLineObjA = new SdrPathObj(getModel(), basegfx::B2DPolyPolygon(aPolygonA)); // create DrawObectB const sal_Int32 aYPosB1((aOutputSize.Height() * 3) / 4); @@ -2090,8 +2089,7 @@ SvxXLinePreview::SvxXLinePreview( Window aPolygonB.append(aPointB1); aPolygonB.append(aPointB2); aPolygonB.append(aPointB3); - mpLineObjB = new SdrPathObj(getModel(), OBJ_PLIN, basegfx::B2DPolyPolygon(aPolygonB)); - //mpLineObjB->SetModel(&getModel()); + mpLineObjB = new SdrPathObj(getModel(), basegfx::B2DPolyPolygon(aPolygonB)); // create DrawObectC const basegfx::B2DPoint aPointC1( aPointB3.getX() + nDistance, aYPosB1); @@ -2101,8 +2099,7 @@ SvxXLinePreview::SvxXLinePreview( Window aPolygonC.append(aPointC1); aPolygonC.append(aPointC2); aPolygonC.append(aPointC3); - mpLineObjC = new SdrPathObj(getModel(), OBJ_PLIN, basegfx::B2DPolyPolygon(aPolygonC)); - //mpLineObjC->SetModel(&getModel()); + mpLineObjC = new SdrPathObj(getModel(), basegfx::B2DPolyPolygon(aPolygonC)); } SvxXLinePreview::~SvxXLinePreview() Modified: incubator/ooo/branches/alg/aw080/main/svx/source/dialog/fontwork.cxx URL: http://svn.apache.org/viewvc/incubator/ooo/branches/alg/aw080/main/svx/source/dialog/fontwork.cxx?rev=1347716&r1=1347715&r2=1347716&view=diff ============================================================================== --- incubator/ooo/branches/alg/aw080/main/svx/source/dialog/fontwork.cxx (original) +++ incubator/ooo/branches/alg/aw080/main/svx/source/dialog/fontwork.cxx Thu Jun 7 17:08:07 2012 @@ -1075,7 +1075,7 @@ void SvxFontWorkDialog::CreateStdFormObj pNewObj = new SdrCircObj( rOldObj.getSdrModelFromSdrObject(), - OBJ_CARC, + CircleType_Arc, basegfx::tools::createScaleTranslateB2DHomMatrix( aRange.getRange(), aRange.getMinimum()), @@ -1119,7 +1119,7 @@ void SvxFontWorkDialog::CreateStdFormObj aPolyPolygon.append(aLine); aPolyPolygon.append(aBottomArc); - pNewObj = new SdrPathObj(rOldObj.getSdrModelFromSdrObject(), OBJ_PATHFILL, aPolyPolygon); + pNewObj = new SdrPathObj(rOldObj.getSdrModelFromSdrObject(), aPolyPolygon); eAdjust = XFT_CENTER; break; } @@ -1207,7 +1207,7 @@ void SvxFontWorkDialog::CreateStdFormObj aPolyPolygon.append(aLine); } - pNewObj = new SdrPathObj(rOldObj.getSdrModelFromSdrObject(), OBJ_PATHFILL, aPolyPolygon); + pNewObj = new SdrPathObj(rOldObj.getSdrModelFromSdrObject(), aPolyPolygon); break; } default: ; //prevent warning Modified: incubator/ooo/branches/alg/aw080/main/svx/source/dialog/graphctl.cxx URL: http://svn.apache.org/viewvc/incubator/ooo/branches/alg/aw080/main/svx/source/dialog/graphctl.cxx?rev=1347716&r1=1347715&r2=1347716&view=diff ============================================================================== --- incubator/ooo/branches/alg/aw080/main/svx/source/dialog/graphctl.cxx (original) +++ incubator/ooo/branches/alg/aw080/main/svx/source/dialog/graphctl.cxx Thu Jun 7 17:08:07 2012 @@ -90,7 +90,7 @@ GraphCtrl::GraphCtrl( Window* pParent, c Control ( pParent, nWinBits ), SfxListener ( ), aMap100 ( MAP_100TH_MM ), - eObjKind ( OBJ_NONE ), + maSdrObjectCreationInfo(OBJ_NONE), nPolyEdit ( 0 ), bEditMode ( sal_False ), bSdrMode ( sal_False ), @@ -119,7 +119,7 @@ GraphCtrl::GraphCtrl( Window* pParent, c SfxListener ( ), aMap100 ( MAP_100TH_MM ), nWinStyle ( 0 ), - eObjKind ( OBJ_NONE ), + maSdrObjectCreationInfo(OBJ_NONE), nPolyEdit ( 0 ), bEditMode ( sal_False ), bSdrMode ( sal_False ), @@ -884,8 +884,8 @@ void GraphCtrl::SetEditMode( const sal_B { bEditMode = _bEditMode; pView->SetViewEditMode(bEditMode ? SDREDITMODE_EDIT : SDREDITMODE_CREATE); - eObjKind = OBJ_NONE; - pView->SetCurrentObj( sal::static_int_cast< sal_uInt16 >( eObjKind ) ); + maSdrObjectCreationInfo.setIdent(OBJ_NONE); + pView->setSdrObjectCreationInfo(maSdrObjectCreationInfo); } else bEditMode = sal_False; @@ -916,17 +916,19 @@ void GraphCtrl::SetPolyEditMode( const s |* \************************************************************************/ -void GraphCtrl::SetObjKind( const SdrObjKind _eObjKind ) +void GraphCtrl::setSdrObjectCreationInfo( const SdrObjectCreationInfo& rSdrObjectCreationInfo ) { if ( bSdrMode ) { bEditMode = false; - pView->SetViewEditMode(bEditMode ? SDREDITMODE_EDIT : SDREDITMODE_CREATE); - eObjKind = _eObjKind; - pView->SetCurrentObj( sal::static_int_cast< sal_uInt16 >( eObjKind ) ); + pView->SetViewEditMode(SDREDITMODE_CREATE); + maSdrObjectCreationInfo = rSdrObjectCreationInfo; + pView->setSdrObjectCreationInfo(maSdrObjectCreationInfo); } else - eObjKind = OBJ_NONE; + { + maSdrObjectCreationInfo.setIdent(OBJ_NONE); + } } Modified: incubator/ooo/branches/alg/aw080/main/svx/source/dialog/imapdlg.cxx URL: http://svn.apache.org/viewvc/incubator/ooo/branches/alg/aw080/main/svx/source/dialog/imapdlg.cxx?rev=1347716&r1=1347715&r2=1347716&view=diff ============================================================================== --- incubator/ooo/branches/alg/aw080/main/svx/source/dialog/imapdlg.cxx (original) +++ incubator/ooo/branches/alg/aw080/main/svx/source/dialog/imapdlg.cxx Thu Jun 7 17:08:07 2012 @@ -514,7 +514,7 @@ IMPL_LINK( SvxIMapDlg, TbxClickHdl, Tool case( TBI_RECT ): { pTbx->CheckItem( nNewItemId, sal_True ); - pIMapWnd->SetObjKind( OBJ_RECT ); + pIMapWnd->setSdrObjectCreationInfo(SdrObjectCreationInfo(OBJ_RECT)); if( pTbx->IsKeyEvent() && ((pTbx->GetKeyModifier() & KEY_MOD1) != 0) ) { pIMapWnd->CreateDefaultObject(); @@ -526,7 +526,7 @@ IMPL_LINK( SvxIMapDlg, TbxClickHdl, Tool case( TBI_CIRCLE ): { pTbx->CheckItem( nNewItemId, sal_True ); - pIMapWnd->SetObjKind( OBJ_CIRC ); + pIMapWnd->setSdrObjectCreationInfo(SdrObjectCreationInfo(OBJ_CIRC)); if( pTbx->IsKeyEvent() && ((pTbx->GetKeyModifier() & KEY_MOD1) != 0) ) { pIMapWnd->CreateDefaultObject(); @@ -538,7 +538,7 @@ IMPL_LINK( SvxIMapDlg, TbxClickHdl, Tool case( TBI_POLY ): { pTbx->CheckItem( nNewItemId, sal_True ); - pIMapWnd->SetObjKind( OBJ_POLY ); + pIMapWnd->setSdrObjectCreationInfo(SdrObjectCreationInfo(OBJ_POLY)); if( pTbx->IsKeyEvent() && ((pTbx->GetKeyModifier() & KEY_MOD1) != 0) ) { pIMapWnd->CreateDefaultObject(); @@ -550,8 +550,15 @@ IMPL_LINK( SvxIMapDlg, TbxClickHdl, Tool case( TBI_FREEPOLY ): { pTbx->CheckItem( nNewItemId, sal_True ); - pIMapWnd->SetObjKind( OBJ_FREEFILL ); - if( pTbx->IsKeyEvent() && ((pTbx->GetKeyModifier() & KEY_MOD1) != 0) ) + + SdrObjectCreationInfo aSdrObjectCreationInfo(OBJ_POLY); + + aSdrObjectCreationInfo.setSdrPathObjType(PathType_ClosedBezier); + aSdrObjectCreationInfo.setFreehandMode(true); + + pIMapWnd->setSdrObjectCreationInfo(aSdrObjectCreationInfo); + + if( pTbx->IsKeyEvent() && ((pTbx->GetKeyModifier() & KEY_MOD1) != 0) ) { pIMapWnd->CreateDefaultObject(); pIMapWnd->GrabFocus(); Modified: incubator/ooo/branches/alg/aw080/main/svx/source/dialog/imapwnd.cxx URL: http://svn.apache.org/viewvc/incubator/ooo/branches/alg/aw080/main/svx/source/dialog/imapwnd.cxx?rev=1347716&r1=1347715&r2=1347716&view=diff ============================================================================== --- incubator/ooo/branches/alg/aw080/main/svx/source/dialog/imapwnd.cxx (original) +++ incubator/ooo/branches/alg/aw080/main/svx/source/dialog/imapwnd.cxx Thu Jun 7 17:08:07 2012 @@ -275,7 +275,7 @@ SdrObject* IMapWindow::CreateObj( const pSdrObj = new SdrCircObj( *GetSdrModel(), - OBJ_CIRC, + CircleType_Circle, basegfx::tools::createScaleTranslateB2DHomMatrix(aCircle.getWidth(), aCircle.getHeight(), aCircle.Left(), aCircle.Top())); pCloneIMapObj.reset((IMapObject*) new IMapCircleObject( *pIMapCircleObj )); } @@ -296,7 +296,7 @@ SdrObject* IMapWindow::CreateObj( const pSdrObj = new SdrCircObj( *GetSdrModel(), - OBJ_CIRC, + CircleType_Circle, basegfx::tools::createScaleTranslateB2DHomMatrix(aDrawRect.getWidth(), aDrawRect.getHeight(), aDrawRect.Left(), aDrawRect.Top())); } else @@ -311,7 +311,6 @@ SdrObject* IMapWindow::CreateObj( const aPolygon.append(aDrawPoly.getB2DPolygon()); pSdrObj = new SdrPathObj( *GetSdrModel(), - OBJ_POLY, basegfx::B2DPolyPolygon(aPolygon)); } @@ -403,9 +402,6 @@ void IMapWindow::SdrObjCreated( const Sd break; case( OBJ_POLY ): - case( OBJ_FREEFILL ): - case( OBJ_PATHPOLY ): - case( OBJ_PATHFILL ): { SdrPathObj* pPathObj = (SdrPathObj*) &rObj; const basegfx::B2DPolyPolygon aXPolyPoly = pPathObj->getB2DPolyPolygonInObjectCoordinates(); @@ -477,9 +473,6 @@ void IMapWindow::SdrObjChanged( const Sd break; case( OBJ_POLY ): - case( OBJ_FREEFILL ): - case( OBJ_PATHPOLY ): - case( OBJ_PATHFILL ): { const SdrPathObj& rPathObj = (const SdrPathObj&) rObj; const basegfx::B2DPolyPolygon aXPolyPoly = rPathObj.getB2DPolyPolygonInObjectCoordinates(); @@ -974,43 +967,47 @@ void IMapWindow::CreateDefaultObject() const basegfx::B2DRange aNewObjectRange(aPagePos, aPagePos + aDefaultObjectScale); SdrObject* pObj = SdrObjFactory::MakeNewObject( pView->getSdrModelFromSdrView(), - pView->GetCurrentObjInventor(), - pView->GetCurrentObjIdentifier()); + pView->getSdrObjectCreationInfo()); sdr::legacy::SetLogicRange(*pObj, aNewObjectRange); - switch( pObj->GetObjIdentifier() ) - { - case OBJ_POLY: - case OBJ_PATHPOLY: - { - basegfx::B2DPolygon aInnerPoly; - - aInnerPoly.append(basegfx::B2DPoint(aNewObjectRange.getMinX(), aNewObjectRange.getMaxY())); - aInnerPoly.append(aNewObjectRange.getMinimum()); - aInnerPoly.append(basegfx::B2DPoint(aNewObjectRange.getCenterX(), aNewObjectRange.getMinY())); - aInnerPoly.append(aNewObjectRange.getCenter()); - aInnerPoly.append(basegfx::B2DPoint(aNewObjectRange.getMaxX(), aNewObjectRange.getCenterY())); - aInnerPoly.append(aNewObjectRange.getMaximum()); - aInnerPoly.setClosed(true); - - static_cast< SdrPathObj* >(pObj)->setB2DPolyPolygonInObjectCoordinates(basegfx::B2DPolyPolygon(aInnerPoly)); - break; - } - case OBJ_FREEFILL: - case OBJ_PATHFILL: - { - const basegfx::B2DPolygon aInnerPoly( - basegfx::tools::createPolygonFromEllipse( - aNewObjectRange.getCenter(), - aNewObjectRange.getWidth() * 0.5, - aNewObjectRange.getHeight() * 0.5)); - - static_cast< SdrPathObj* >(pObj)->setB2DPolyPolygonInObjectCoordinates(basegfx::B2DPolyPolygon(aInnerPoly)); - break; - } - - } + if(OBJ_POLY == pView->getSdrObjectCreationInfo().getIdent()) + { + SdrPathObj* pSdrPathObj = dynamic_cast< SdrPathObj* >(pObj); + + if(pSdrPathObj) + { + switch(pSdrPathObj->getSdrPathObjType()) + { + case PathType_ClosedPolygon: + { + basegfx::B2DPolygon aInnerPoly; + + aInnerPoly.append(basegfx::B2DPoint(aNewObjectRange.getMinX(), aNewObjectRange.getMaxY())); + aInnerPoly.append(aNewObjectRange.getMinimum()); + aInnerPoly.append(basegfx::B2DPoint(aNewObjectRange.getCenterX(), aNewObjectRange.getMinY())); + aInnerPoly.append(aNewObjectRange.getCenter()); + aInnerPoly.append(basegfx::B2DPoint(aNewObjectRange.getMaxX(), aNewObjectRange.getCenterY())); + aInnerPoly.append(aNewObjectRange.getMaximum()); + aInnerPoly.setClosed(true); + + pSdrPathObj->setB2DPolyPolygonInObjectCoordinates(basegfx::B2DPolyPolygon(aInnerPoly)); + break; + } + case PathType_ClosedBezier: + { + const basegfx::B2DPolygon aInnerPoly( + basegfx::tools::createPolygonFromEllipse( + aNewObjectRange.getCenter(), + aNewObjectRange.getWidth() * 0.5, + aNewObjectRange.getHeight() * 0.5)); + + pSdrPathObj->setB2DPolyPolygonInObjectCoordinates(basegfx::B2DPolyPolygon(aInnerPoly)); + break; + } + } + } + } pView->InsertObjectAtView(*pObj); SdrObjCreated( *pObj ); Modified: incubator/ooo/branches/alg/aw080/main/svx/source/engine3d/extrud3d.cxx URL: http://svn.apache.org/viewvc/incubator/ooo/branches/alg/aw080/main/svx/source/engine3d/extrud3d.cxx?rev=1347716&r1=1347715&r2=1347716&view=diff ============================================================================== --- incubator/ooo/branches/alg/aw080/main/svx/source/engine3d/extrud3d.cxx (original) +++ incubator/ooo/branches/alg/aw080/main/svx/source/engine3d/extrud3d.cxx Thu Jun 7 17:08:07 2012 @@ -257,7 +257,6 @@ SdrAttrObj* E3dExtrudeObj::GetBreakObj() basegfx::B2DPolyPolygon aPoly = TransformToScreenCoor(aBackSide); SdrPathObj* pPathObj = new SdrPathObj( getSdrModelFromSdrObject(), - OBJ_PLIN, aPoly); if(pPathObj) Modified: incubator/ooo/branches/alg/aw080/main/svx/source/engine3d/lathe3d.cxx URL: http://svn.apache.org/viewvc/incubator/ooo/branches/alg/aw080/main/svx/source/engine3d/lathe3d.cxx?rev=1347716&r1=1347715&r2=1347716&view=diff ============================================================================== --- incubator/ooo/branches/alg/aw080/main/svx/source/engine3d/lathe3d.cxx (original) +++ incubator/ooo/branches/alg/aw080/main/svx/source/engine3d/lathe3d.cxx Thu Jun 7 17:08:07 2012 @@ -262,7 +262,6 @@ SdrAttrObj* E3dLatheObj::GetBreakObj() basegfx::B2DPolyPolygon aTransPoly(TransformToScreenCoor(aLathePoly3D)); SdrPathObj* pPathObj = new SdrPathObj( getSdrModelFromSdrObject(), - OBJ_PLIN, aTransPoly); if(pPathObj) Modified: incubator/ooo/branches/alg/aw080/main/svx/source/engine3d/objfac3d.cxx URL: http://svn.apache.org/viewvc/incubator/ooo/branches/alg/aw080/main/svx/source/engine3d/objfac3d.cxx?rev=1347716&r1=1347715&r2=1347716&view=diff ============================================================================== --- incubator/ooo/branches/alg/aw080/main/svx/source/engine3d/objfac3d.cxx (original) +++ incubator/ooo/branches/alg/aw080/main/svx/source/engine3d/objfac3d.cxx Thu Jun 7 17:08:07 2012 @@ -19,8 +19,6 @@ * *************************************************************/ - - // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_svx.hxx" #include @@ -32,90 +30,87 @@ #include #include "svx/objfac3d.hxx" #include +#include + +////////////////////////////////////////////////////////////////////////////// -/************************************************************************* -|* -|* Konstruktor -|* -\************************************************************************/ +static bool bInit = false; -static sal_Bool bInit = sal_False; +////////////////////////////////////////////////////////////////////////////// E3dObjFactory::E3dObjFactory() { if ( !bInit ) { SdrObjFactory::InsertMakeObjectHdl(LINK(this, E3dObjFactory, MakeObject)); - bInit = sal_True; + bInit = true; } } -/************************************************************************* -|* -|* Destruktor -|* -\************************************************************************/ +////////////////////////////////////////////////////////////////////////////// E3dObjFactory::~E3dObjFactory() { } -/************************************************************************* -|* -|* Chart-interne Objekte erzeugen -|* -\************************************************************************/ +////////////////////////////////////////////////////////////////////////////// IMPL_LINK( E3dObjFactory, MakeObject, SdrObjFactory*, pObjFactory) { - if ( pObjFactory->mnInventor == E3dInventor ) + if ( E3dInventor == pObjFactory->getSdrObjectCreationInfo().getInvent() ) { - switch ( pObjFactory->mnIdentifier ) + switch ( pObjFactory->getSdrObjectCreationInfo().getIdent() ) { case E3D_POLYGONOBJ_ID : { - pObjFactory->mpNewObj = new E3dPolygonObj( - *pObjFactory->mpTargetModel, - E3dDefaultAttributes(), - basegfx::B3DPolyPolygon()); + pObjFactory->setNewSdrObject( + new E3dPolygonObj( + pObjFactory->getTargetModel(), + E3dDefaultAttributes(), + basegfx::B3DPolyPolygon())); break; } case E3D_CUBEOBJ_ID : { - pObjFactory->mpNewObj = new E3dCubeObj( - *pObjFactory->mpTargetModel, - E3dDefaultAttributes()); + pObjFactory->setNewSdrObject( + new E3dCubeObj( + pObjFactory->getTargetModel(), + E3dDefaultAttributes())); break; } case E3D_SPHEREOBJ_ID: { - // FG: ruft den dummy constructor, da dieser Aufruf nur beim Laden von Dokumenten erfolgt. - // die wirkliche Anzahkl Segmente wird aber erst nach dem Laden der Member festgelegt. - // dies hat zur Folge das die erste Kugel gleich wieder zerstoert wird, obwohl sie nie - // gebraucht worden ist. - pObjFactory->mpNewObj = new E3dSphereObj( - *pObjFactory->mpTargetModel, - E3dDefaultAttributes()); + // FG: ruft den dummy constructor, da dieser Aufruf nur beim Laden von Dokumenten erfolgt. + // die wirkliche Anzahkl Segmente wird aber erst nach dem Laden der Member festgelegt. + // dies hat zur Folge das die erste Kugel gleich wieder zerstoert wird, obwohl sie nie + // gebraucht worden ist. + pObjFactory->setNewSdrObject( + new E3dSphereObj( + pObjFactory->getTargetModel(), + E3dDefaultAttributes())); break; } case E3D_EXTRUDEOBJ_ID: { - pObjFactory->mpNewObj = new E3dExtrudeObj( - *pObjFactory->mpTargetModel, - E3dDefaultAttributes()); + pObjFactory->setNewSdrObject( + new E3dExtrudeObj( + pObjFactory->getTargetModel(), + E3dDefaultAttributes())); break; } case E3D_LATHEOBJ_ID: { - pObjFactory->mpNewObj = new E3dLatheObj( - *pObjFactory->mpTargetModel, - E3dDefaultAttributes()); + pObjFactory->setNewSdrObject( + new E3dLatheObj( + pObjFactory->getTargetModel(), + E3dDefaultAttributes())); break; - } + } } } return 0; } - +////////////////////////////////////////////////////////////////////////////// +// eof Modified: incubator/ooo/branches/alg/aw080/main/svx/source/engine3d/view3d.cxx URL: http://svn.apache.org/viewvc/incubator/ooo/branches/alg/aw080/main/svx/source/engine3d/view3d.cxx?rev=1347716&r1=1347715&r2=1347716&view=diff ============================================================================== --- incubator/ooo/branches/alg/aw080/main/svx/source/engine3d/view3d.cxx (original) +++ incubator/ooo/branches/alg/aw080/main/svx/source/engine3d/view3d.cxx Thu Jun 7 17:08:07 2012 @@ -727,7 +727,7 @@ void E3dView::ImpChangeSomeAttributesFor XLineStyle eLineStyle = (XLineStyle)((const XLineStyleItem&)rSet.Get(XATTR_LINESTYLE)).GetValue(); XFillStyle eFillStyle = ITEMVALUE(rSet, XATTR_FILLSTYLE, XFillStyleItem); - if(pSdrPathObj->IsClosed() + if(pSdrPathObj->isClosed() && eLineStyle == XLINE_SOLID && !nLineWidth && eFillStyle != XFILL_NONE) @@ -765,7 +765,7 @@ void E3dView::ImpCreateSingle3DObjectFla aSet.Put(XLineStyleItem(XLINE_NONE)); // Feststellen, ob ein FILL_Attribut gesetzt ist. - if(!pPath->IsClosed() || eFillStyle == XFILL_NONE) + if(!pPath->isClosed() || eFillStyle == XFILL_NONE) { // Das SdrPathObj ist nicht gefuellt, lasse die // vordere und hintere Flaeche weg. Ausserdem ist Modified: incubator/ooo/branches/alg/aw080/main/svx/source/form/fmobjfac.cxx URL: http://svn.apache.org/viewvc/incubator/ooo/branches/alg/aw080/main/svx/source/form/fmobjfac.cxx?rev=1347716&r1=1347715&r2=1347716&view=diff ============================================================================== --- incubator/ooo/branches/alg/aw080/main/svx/source/form/fmobjfac.cxx (original) +++ incubator/ooo/branches/alg/aw080/main/svx/source/form/fmobjfac.cxx Thu Jun 7 17:08:07 2012 @@ -146,14 +146,14 @@ namespace IMPL_LINK(FmFormObjFactory, MakeObject, SdrObjFactory*, pObjFactory) { - if (pObjFactory->mnInventor == FmFormInventor) + if(FmFormInventor == pObjFactory->getSdrObjectCreationInfo().getInvent()) { ::rtl::OUString sServiceSpecifier; typedef ::std::vector< ::std::pair< ::rtl::OUString, Any > > PropertyValueArray; PropertyValueArray aInitialProperties; - switch ( pObjFactory->mnIdentifier ) + switch(pObjFactory->getSdrObjectCreationInfo().getIdent()) { case OBJ_FM_EDIT: sServiceSpecifier = FM_COMPONENT_EDIT; @@ -248,8 +248,12 @@ IMPL_LINK(FmFormObjFactory, MakeObject, } // create the actual object - OSL_ENSURE(pObjFactory->mpTargetModel, "SdrObjFactory MakeObject without SdrModel target (!)"); - pObjFactory->mpNewObj = new FmFormObj( *pObjFactory->mpTargetModel, sServiceSpecifier, pObjFactory->mnIdentifier ); + FmFormObj* pFmFormObj = new FmFormObj( + pObjFactory->getTargetModel(), + sServiceSpecifier, + pObjFactory->getSdrObjectCreationInfo().getIdent()); + + pObjFactory->setNewSdrObject(pFmFormObj); // initialize some properties which we want to differ from the defaults for ( PropertyValueArray::const_iterator aInitProp = aInitialProperties.begin(); @@ -258,7 +262,7 @@ IMPL_LINK(FmFormObjFactory, MakeObject, ) { lcl_initProperty( - static_cast< FmFormObj* >( pObjFactory->mpNewObj ), + pFmFormObj, aInitProp->first, aInitProp->second ); Modified: incubator/ooo/branches/alg/aw080/main/svx/source/form/fmshell.cxx URL: http://svn.apache.org/viewvc/incubator/ooo/branches/alg/aw080/main/svx/source/form/fmshell.cxx?rev=1347716&r1=1347715&r2=1347716&view=diff ============================================================================== --- incubator/ooo/branches/alg/aw080/main/svx/source/form/fmshell.cxx (original) +++ incubator/ooo/branches/alg/aw080/main/svx/source/form/fmshell.cxx Thu Jun 7 17:08:07 2012 @@ -1506,3 +1506,15 @@ void FmFormShell::SetDesignMode( sal_Boo if ( pModel ) pModel->GetUndoEnv().UnLock(); } + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +namespace svx +{ + ISdrObjectFilter::~ISdrObjectFilter() + { + } +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// +// eof Modified: incubator/ooo/branches/alg/aw080/main/svx/source/form/fmshimp.cxx URL: http://svn.apache.org/viewvc/incubator/ooo/branches/alg/aw080/main/svx/source/form/fmshimp.cxx?rev=1347716&r1=1347715&r2=1347716&view=diff ============================================================================== --- incubator/ooo/branches/alg/aw080/main/svx/source/form/fmshimp.cxx (original) +++ incubator/ooo/branches/alg/aw080/main/svx/source/form/fmshimp.cxx Thu Jun 7 17:08:07 2012 @@ -574,32 +574,21 @@ sal_Bool isControlList(const SdrObjectVe for (sal_uInt32 i = 0; i < _rSelection.size() && bControlList; i++) { SdrObject *pObj = _rSelection[i]; - E3dObject* pAs3DObject = dynamic_cast< E3dObject* >( pObj); - // E3dObject's do not contain any 2D-objects (by definition) - // we need this extra check here : an E3dObject->getChildrenOfSdrObject says "YES", but an SdrObjListIter working - // with an E3dObject doesn't give me any Nodes (E3dObject has a sub list, but no members in that list, - // cause there implementation differs from the one of "normal" SdrObject's. Unfortunally SdrObject::getChildrenOfSdrObject - // doesn't check the element count of the sub list, which is simply a bug in IsGroupObject we can't fix at the moment). - // So at the end of this function bControlList would have the same value it was initialized with above : sal_True - // And this would be wrong :) - // 03.02.00 - 72529 - FS - if (!pAs3DObject) + + if (pObj->getChildrenOfSdrObject()) { - if (pObj->getChildrenOfSdrObject()) - { - SdrObjListIter aIter(*pObj->getChildrenOfSdrObject()); - while (aIter.IsMore() && bControlList) - { - bControlList = FmFormInventor == aIter.Next()->GetObjInventor(); - bHadAnyLeafs = sal_True; - } - } - else + SdrObjListIter aIter(*pObj->getChildrenOfSdrObject()); + while (aIter.IsMore() && bControlList) { + bControlList = FmFormInventor == aIter.Next()->GetObjInventor(); bHadAnyLeafs = sal_True; - bControlList = FmFormInventor == pObj->GetObjInventor(); } } + else + { + bHadAnyLeafs = sal_True; + bControlList = FmFormInventor == pObj->GetObjInventor(); + } } return bControlList && bHadAnyLeafs; Modified: incubator/ooo/branches/alg/aw080/main/svx/source/form/fmvwimp.cxx URL: http://svn.apache.org/viewvc/incubator/ooo/branches/alg/aw080/main/svx/source/form/fmvwimp.cxx?rev=1347716&r1=1347715&r2=1347716&view=diff ============================================================================== --- incubator/ooo/branches/alg/aw080/main/svx/source/form/fmvwimp.cxx (original) +++ incubator/ooo/branches/alg/aw080/main/svx/source/form/fmvwimp.cxx Thu Jun 7 17:08:07 2012 @@ -1462,7 +1462,8 @@ SdrObject* FmXFormView::implCreateXForms const sal_uInt16 nObjID = OBJ_FM_BUTTON; ::Size controlSize(4000, 500); FmFormObj* pControl = static_cast< FmFormObj* >(SdrObjFactory::MakeNewObject( - getView()->getSdrModelFromSdrView(), FmFormInventor, nObjID )); + getView()->getSdrModelFromSdrView(), + SdrObjectCreationInfo(nObjID, FmFormInventor))); controlSize.Width() = Fraction(controlSize.Width(), 1) * eTargetMode.GetScaleX(); controlSize.Height() = Fraction(controlSize.Height(), 1) * eTargetMode.GetScaleY(); ::Point controlPos( pOutDev->LogicToLogic( ::Point( controlSize.Width(), 0 ), eSourceMode, eTargetMode ) ); @@ -1566,7 +1567,8 @@ bool FmXFormView::createControlLabelPair if ( bNeedLabel ) { pLabel = dynamic_cast< SdrUnoObj* >(SdrObjFactory::MakeNewObject( - *_pModel, _nInventor, _nLabelObjectID )); + *_pModel, + SdrObjectCreationInfo(_nLabelObjectID, _nInventor))); OSL_ENSURE( pLabel, "FmXFormView::createControlLabelPair: could not create the label!" ); if ( !pLabel ) return false; @@ -1594,7 +1596,8 @@ bool FmXFormView::createControlLabelPair // the control SdrUnoObj* pControl = dynamic_cast< SdrUnoObj* >(SdrObjFactory::MakeNewObject( - *_pModel, _nInventor, _nControlObjectID )); + *_pModel, + SdrObjectCreationInfo(_nControlObjectID, _nInventor))); OSL_ENSURE( pControl, "FmXFormView::createControlLabelPair: could not create the control!" ); if ( !pControl ) return false; Modified: incubator/ooo/branches/alg/aw080/main/svx/source/gallery2/galmisc.cxx URL: http://svn.apache.org/viewvc/incubator/ooo/branches/alg/aw080/main/svx/source/gallery2/galmisc.cxx?rev=1347716&r1=1347715&r2=1347716&view=diff ============================================================================== --- incubator/ooo/branches/alg/aw080/main/svx/source/gallery2/galmisc.cxx (original) +++ incubator/ooo/branches/alg/aw080/main/svx/source/gallery2/galmisc.cxx Thu Jun 7 17:08:07 2012 @@ -99,8 +99,11 @@ BitmapEx GalleryResGetBitmapEx( sal_uInt IMPL_LINK( SgaUserDataFactory, MakeUserData, SdrObjFactory*, pObjFactory ) { - if ( pObjFactory->mnInventor == IV_IMAPINFO && pObjFactory->mnIdentifier == ID_IMAPINFO ) - pObjFactory->mpNewData = new SgaIMapInfo; + if ( IV_IMAPINFO == pObjFactory->getSdrObjectCreationInfo().getInvent() + && ID_IMAPINFO == pObjFactory->getSdrObjectCreationInfo().getIdent() ) + { + pObjFactory->setNewSdrObjUserData(new SgaIMapInfo); + } return 0L; } Modified: incubator/ooo/branches/alg/aw080/main/svx/source/sdr/contact/viewcontactofsdrcircobj.cxx URL: http://svn.apache.org/viewvc/incubator/ooo/branches/alg/aw080/main/svx/source/sdr/contact/viewcontactofsdrcircobj.cxx?rev=1347716&r1=1347715&r2=1347716&view=diff ============================================================================== --- incubator/ooo/branches/alg/aw080/main/svx/source/sdr/contact/viewcontactofsdrcircobj.cxx (original) +++ incubator/ooo/branches/alg/aw080/main/svx/source/sdr/contact/viewcontactofsdrcircobj.cxx Thu Jun 7 17:08:07 2012 @@ -59,12 +59,12 @@ namespace sdr const basegfx::B2DHomMatrix& rObjectMatrix(GetCircObj().getSdrObjectTransformation()); // create primitive data - const sal_uInt16 nIdentifier(GetCircObj().GetObjIdentifier()); + const SdrCircleObjType aSdrCircleObjType(GetCircObj().GetSdrCircleObjType()); // always create primitives to allow the decomposition of SdrEllipsePrimitive2D // or SdrEllipseSegmentPrimitive2D to create needed invisible elements for HitTest // and/or BoundRect - if(OBJ_CIRC == nIdentifier) + if(CircleType_Circle == aSdrCircleObjType) { // full circle const drawinglayer::primitive2d::Primitive2DReference xReference( @@ -79,8 +79,8 @@ namespace sdr // circle segment const double fStart(GetCircObj().GetStartAngle()); const double fEnd(GetCircObj().GetEndAngle()); - const bool bCloseSegment(OBJ_CARC != nIdentifier); - const bool bCloseUsingCenter(OBJ_SECT == nIdentifier); + const bool bCloseSegment(CircleType_Arc != aSdrCircleObjType); + const bool bCloseUsingCenter(CircleType_Sector == aSdrCircleObjType); const drawinglayer::primitive2d::Primitive2DReference xReference( new drawinglayer::primitive2d::SdrEllipseSegmentPrimitive2D( Added: incubator/ooo/branches/alg/aw080/main/svx/source/svdraw/sdrobjectfactory.cxx URL: http://svn.apache.org/viewvc/incubator/ooo/branches/alg/aw080/main/svx/source/svdraw/sdrobjectfactory.cxx?rev=1347716&view=auto ============================================================================== --- incubator/ooo/branches/alg/aw080/main/svx/source/svdraw/sdrobjectfactory.cxx (added) +++ incubator/ooo/branches/alg/aw080/main/svx/source/svdraw/sdrobjectfactory.cxx Thu Jun 7 17:08:07 2012 @@ -0,0 +1,244 @@ +/************************************************************** + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + *************************************************************/ + +// MARKER(update_precomp.py): autogen include statement, do not remove +#include "precompiled_svx.hxx" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +SdrObjFactory::SdrObjFactory(SdrModel& rTargetModel, const SdrObjectCreationInfo& rSdrObjectCreationInfo) +: mrTargetModel(rTargetModel), + maSdrObjectCreationInfo(rSdrObjectCreationInfo), + mpNewObj(0), + mpObj(0), + mpNewData(0) +{ +} + +SdrObjFactory::SdrObjFactory(const SdrObjectCreationInfo& rSdrObjectCreationInfo, SdrObject& rObj1) +: mrTargetModel(rObj1.getSdrModelFromSdrObject()), + maSdrObjectCreationInfo(rSdrObjectCreationInfo), + mpNewObj(0), + mpObj(&rObj1), + mpNewData(0) +{ +} + +SdrObject* SdrObjFactory::MakeNewObject(SdrModel& rTargetModel, const SdrObjectCreationInfo& rSdrObjectCreationInfo) +{ + SdrObject* pObj = 0; + + if(SdrInventor == rSdrObjectCreationInfo.getInvent()) + { + switch(rSdrObjectCreationInfo.getIdent()) + { + case sal_uInt16(OBJ_NONE): + { + pObj = new SdrObject(rTargetModel); + break; + } + case sal_uInt16(OBJ_GRUP): + { + pObj = new SdrObjGroup(rTargetModel); + break; + } + case sal_uInt16(OBJ_POLY): + { + pObj = new SdrPathObj(rTargetModel); + break; + } + case sal_uInt16(OBJ_EDGE): + { + pObj = new SdrEdgeObj(rTargetModel); + break; + } + case sal_uInt16(OBJ_RECT): + { + pObj = new SdrRectObj(rTargetModel); + break; + } + case sal_uInt16(OBJ_CIRC): + { + pObj = new SdrCircObj(rTargetModel, rSdrObjectCreationInfo.getSdrCircleObjType()); + break; + } + case sal_uInt16(OBJ_TEXT): + { + pObj = new SdrRectObj(rTargetModel, basegfx::B2DHomMatrix(), OBJ_TEXT, true); + break; + } + case sal_uInt16(OBJ_TITLETEXT): + { + pObj = new SdrRectObj(rTargetModel, basegfx::B2DHomMatrix(), OBJ_TITLETEXT, true); + break; + } + case sal_uInt16(OBJ_OUTLINETEXT): + { + pObj = new SdrRectObj(rTargetModel, basegfx::B2DHomMatrix(), OBJ_OUTLINETEXT, true); + break; + } + case sal_uInt16(OBJ_MEASURE): + { + pObj = new SdrMeasureObj(rTargetModel); + break; + } + case sal_uInt16(OBJ_GRAF): + { + pObj = new SdrGrafObj(rTargetModel, Graphic()); + break; + } + case sal_uInt16(OBJ_OLE2): + { + pObj = new SdrOle2Obj(rTargetModel, svt::EmbeddedObjectRef(), String(), basegfx::B2DHomMatrix(), true); + break; + } + case sal_uInt16(OBJ_FRAME): + { + pObj = new SdrOle2Obj(rTargetModel, svt::EmbeddedObjectRef(), String(), basegfx::B2DHomMatrix(), true); + break; + } + case sal_uInt16(OBJ_CAPTION): + { + pObj = new SdrCaptionObj(rTargetModel); + break; + } + case sal_uInt16(OBJ_PAGE): + { + pObj = new SdrPageObj(rTargetModel); + break; + } + case sal_uInt16(OBJ_UNO): + { + pObj = new SdrUnoObj(rTargetModel, String()); + break; + } + case sal_uInt16(OBJ_CUSTOMSHAPE): + { + pObj = new SdrObjCustomShape(rTargetModel); + break; + } + case sal_uInt16(OBJ_MEDIA): + { + pObj = new SdrMediaObj(rTargetModel); + break; + } + case sal_uInt16(OBJ_TABLE): + { + pObj = new ::sdr::table::SdrTableObj(rTargetModel); + break; + } + } + } + + if(!pObj) + { + SdrObjFactory* pFact = new SdrObjFactory(rTargetModel, rSdrObjectCreationInfo); + SdrLinkList& rLL = ImpGetUserMakeObjHdl(); + unsigned nAnz(rLL.GetLinkCount()); + unsigned i(0); + + while(i < nAnz && !pObj) + { + rLL.GetLink(i).Call((void*)pFact); + pObj = pFact->mpNewObj; + i++; + } + + delete pFact; + } + + return pObj; +} + +SdrObjUserData* SdrObjFactory::MakeNewObjUserData(const SdrObjectCreationInfo& rSdrObjectCreationInfo, SdrObject& rObj1) +{ + SdrObjUserData* pData = 0; + + if(rSdrObjectCreationInfo.getInvent() == SdrInventor) + { + switch(rSdrObjectCreationInfo.getIdent()) + { + case sal_uInt16(SDRUSERDATA_OBJTEXTLINK) : + { + pData = new ImpSdrObjTextLinkUserData(dynamic_cast< SdrTextObj* >(&rObj1)); + break; + } + } + } + + if(!pData) + { + SdrObjFactory aFact(rSdrObjectCreationInfo, rObj1); + SdrLinkList& rLL = ImpGetUserMakeObjUserDataHdl(); + unsigned nAnz(rLL.GetLinkCount()); + unsigned i(0); + + while(i < nAnz && !pData) + { + rLL.GetLink(i).Call((void*)&aFact); + pData = aFact.mpNewData; + i++; + } + } + + return pData; +} + +void SdrObjFactory::InsertMakeObjectHdl(const Link& rLink) +{ + SdrLinkList& rLL = ImpGetUserMakeObjHdl(); + rLL.InsertLink(rLink); +} + +void SdrObjFactory::RemoveMakeObjectHdl(const Link& rLink) +{ + SdrLinkList& rLL = ImpGetUserMakeObjHdl(); + rLL.RemoveLink(rLink); +} + +void SdrObjFactory::InsertMakeUserDataHdl(const Link& rLink) +{ + SdrLinkList& rLL = ImpGetUserMakeObjUserDataHdl(); + rLL.InsertLink(rLink); +} + +void SdrObjFactory::RemoveMakeUserDataHdl(const Link& rLink) +{ + SdrLinkList& rLL = ImpGetUserMakeObjUserDataHdl(); + rLL.RemoveLink(rLink); +} + +////////////////////////////////////////////////////////////////////////////// +// eof Propchange: incubator/ooo/branches/alg/aw080/main/svx/source/svdraw/sdrobjectfactory.cxx ------------------------------------------------------------------------------ svn:executable = * Modified: incubator/ooo/branches/alg/aw080/main/svx/source/svdraw/svdcrtv.cxx URL: http://svn.apache.org/viewvc/incubator/ooo/branches/alg/aw080/main/svx/source/svdraw/svdcrtv.cxx?rev=1347716&r1=1347715&r2=1347716&view=diff ============================================================================== --- incubator/ooo/branches/alg/aw080/main/svx/source/svdraw/svdcrtv.cxx (original) +++ incubator/ooo/branches/alg/aw080/main/svx/source/svdraw/svdcrtv.cxx Thu Jun 7 17:08:07 2012 @@ -186,11 +186,10 @@ SdrCreateView::SdrCreateView(SdrModel& r mpAktCreate(0), mpCoMaOverlay(0), mpCreateViewExtraData(new ImpSdrCreateViewExtraData()), - maCreatePointer(POINTER_CROSS), + maSdrObjectCreationInfo(), + maCreatePointer(POINTER_CROSS), mnAutoCloseDistPix(5), mnFreeHandMinDistPix(10), - mnAktInvent(SdrInventor), - mnAktIdent(OBJ_NONE), mbAutoTextEdit(false), mb1stPointAsCenter(false), mbAutoClosePolys(true) @@ -271,25 +270,18 @@ basegfx::B2DRange SdrCreateView::TakeAct bool SdrCreateView::CheckEdgeMode() { - sal_uInt32 nInv(GetCurrentObjInventor()); - sal_uInt16 nIdn(GetCurrentObjIdentifier()); - - if(GetCreateObj()) - { - nInv = GetCreateObj()->GetObjInventor(); - nIdn = GetCreateObj()->GetObjIdentifier(); + const bool bCreatingEdge(SdrInventor == getSdrObjectCreationInfo().getInvent() && OBJ_EDGE == getSdrObjectCreationInfo().getIdent()); - // wird vom EdgeObj gemanaged - if(SdrInventor == GetCurrentObjInventor() && OBJ_EDGE == GetCurrentObjIdentifier()) - { - return false; - } + if(GetCreateObj() && bCreatingEdge) + { + return false; } - if(!IsCreateMode() || SdrInventor != GetCurrentObjInventor() || OBJ_EDGE != GetCurrentObjIdentifier()) + if(!IsCreateMode() || !bCreatingEdge) { ImpClearConnectMarker(); - return false; + + return false; } else { @@ -352,64 +344,56 @@ bool SdrCreateView::MouseMove(const Mous bool SdrCreateView::IsTextTool() const { return (SDREDITMODE_CREATE == GetViewEditMode() - && SdrInventor == GetCurrentObjInventor() - && (OBJ_TEXT == GetCurrentObjIdentifier() - || OBJ_TITLETEXT == GetCurrentObjIdentifier() - || OBJ_OUTLINETEXT == GetCurrentObjIdentifier())); + && SdrInventor == getSdrObjectCreationInfo().getInvent() + && (OBJ_TEXT == getSdrObjectCreationInfo().getIdent() + || OBJ_TITLETEXT == getSdrObjectCreationInfo().getIdent() + || OBJ_OUTLINETEXT == getSdrObjectCreationInfo().getIdent())); } bool SdrCreateView::IsEdgeTool() const { return (SDREDITMODE_CREATE == GetViewEditMode() - && SdrInventor == GetCurrentObjInventor() - && OBJ_EDGE == GetCurrentObjIdentifier()); + && SdrInventor == getSdrObjectCreationInfo().getInvent() + && OBJ_EDGE == getSdrObjectCreationInfo().getIdent()); } bool SdrCreateView::IsMeasureTool() const { return (SDREDITMODE_CREATE == GetViewEditMode() - && SdrInventor == GetCurrentObjInventor() - && OBJ_MEASURE == GetCurrentObjIdentifier()); + && SdrInventor == getSdrObjectCreationInfo().getInvent() + && OBJ_MEASURE == getSdrObjectCreationInfo().getIdent()); } -void SdrCreateView::SetCurrentObj(sal_uInt16 nIdent, sal_uInt32 nInvent) +void SdrCreateView::setSdrObjectCreationInfo(const SdrObjectCreationInfo& rNew) { - if(GetCurrentObjInventor() != nInvent || GetCurrentObjIdentifier() != nIdent) - { - // reset other values which need to be set after this call - ResetCreationParameters(); - - mnAktInvent = nInvent; - mnAktIdent = nIdent; - maCreatePointer = Pointer(POINTER_CROSS); + // copy values + maSdrObjectCreationInfo = rNew; - // Auf pers. Wunsch von Marco: - // Mauszeiger bei Textwerkzeug immer I-Beam. Fadenkreuz - // mit kleinem I-Beam erst bai MouseButtonDown - if(IsTextTool()) - { - // #81944# AW: Here the correct pointer needs to be used - // if the default is set to vertical writing - maCreatePointer = POINTER_TEXT; - } - else if(nIdent != sal_uInt16(OBJ_NONE)) // not for OBJ_NONE - { - SdrObject* pObj = SdrObjFactory::MakeNewObject(getSdrModelFromSdrView(), nInvent, nIdent); + // Always use I-Beam for text tool + if(IsTextTool()) + { + setCreatePointer(POINTER_TEXT); + } + else if(static_cast< sal_uInt16 >(OBJ_NONE) != maSdrObjectCreationInfo.getIdent()) + { + SdrObject* pObj = SdrObjFactory::MakeNewObject( + getSdrModelFromSdrView(), + getSdrObjectCreationInfo()); - if(pObj) - { - maCreatePointer = pObj->GetCreatePointer(static_cast< SdrView& >(*this)); - deleteSdrObjectSafeAndClearPointer( pObj ); - } - } + if(pObj) + { + setCreatePointer(pObj->GetCreatePointer(*getAsSdrView())); + deleteSdrObjectSafeAndClearPointer(pObj); + } } - - CheckEdgeMode(); - ImpSetGlueVisible3(IsEdgeTool()); } -bool SdrCreateView::ImpBegCreateObj(sal_uInt32 nInvent, sal_uInt16 nIdent, const basegfx::B2DPoint& rPnt, OutputDevice* /*pOut*/, - double fMinMovLogic, const basegfx::B2DRange& rLogRange, SdrObject* pPreparedFactoryObject) +bool SdrCreateView::ImpBegCreateObj( + const SdrObjectCreationInfo& rSdrObjectCreationInfo, + const basegfx::B2DPoint& rPnt, + double fMinMovLogic, + const basegfx::B2DRange& rLogRange, + SdrObject* pPreparedFactoryObject) { bool bRetval(false); @@ -421,7 +405,9 @@ bool SdrCreateView::ImpBegCreateObj(sal_ { String aLay(GetActiveLayer()); - if(SdrInventor == nInvent && OBJ_MEASURE == nIdent && GetMeasureLayer().Len()) + if(SdrInventor == rSdrObjectCreationInfo.getInvent() + && OBJ_MEASURE == rSdrObjectCreationInfo.getIdent() + && GetMeasureLayer().Len()) { aLay = GetMeasureLayer(); } @@ -441,14 +427,16 @@ bool SdrCreateView::ImpBegCreateObj(sal_ } else { - mpAktCreate = SdrObjFactory::MakeNewObject(getSdrModelFromSdrView(), nInvent, nIdent); + mpAktCreate = SdrObjFactory::MakeNewObject(getSdrModelFromSdrView(), rSdrObjectCreationInfo); } basegfx::B2DPoint aPnt(rPnt); - if(SdrInventor != GetCurrentObjInventor() || (GetCurrentObjIdentifier() != sal_uInt16(OBJ_EDGE) && - GetCurrentObjIdentifier() != sal_uInt16(OBJ_FREELINE) && - GetCurrentObjIdentifier() != sal_uInt16(OBJ_FREEFILL) )) + // no snap for edge and freehand + const bool bNoSnap(SdrInventor == getSdrObjectCreationInfo().getInvent() && ( + sal_uInt16(OBJ_EDGE) == getSdrObjectCreationInfo().getIdent() || getSdrObjectCreationInfo().getFreehandMode())); + + if(!bNoSnap) { // Kein Fang fuer Edge und Freihand! aPnt = GetSnapPos(aPnt); @@ -467,7 +455,7 @@ bool SdrCreateView::ImpBegCreateObj(sal_ // object should not be created. Since it is possible to use it as a helper // object (e.g. in letting the user define an area with the interactive // construction) at least no items should be set at that object. - if(SdrInventor != nInvent || OBJ_NONE != nIdent) + if(SdrInventor != rSdrObjectCreationInfo.getInvent() || OBJ_NONE != rSdrObjectCreationInfo.getIdent()) { GetCreateObj()->SetMergedItemSet(GetDefaultAttr()); } @@ -482,7 +470,11 @@ bool SdrCreateView::ImpBegCreateObj(sal_ bStartEdit = true; } - if(GetCreateObj() && SdrInventor == nInvent && (OBJ_TEXT == nIdent || OBJ_TITLETEXT == nIdent || OBJ_OUTLINETEXT == nIdent)) + if(GetCreateObj() + && SdrInventor == rSdrObjectCreationInfo.getInvent() + && (OBJ_TEXT == rSdrObjectCreationInfo.getIdent() + || OBJ_TITLETEXT == rSdrObjectCreationInfo.getIdent() + || OBJ_OUTLINETEXT == rSdrObjectCreationInfo.getIdent())) { // Fuer alle Textrahmen default keinen Hintergrund und keine Umrandung SfxItemSet aSet(GetCreateObj()->GetObjectItemPool()); @@ -530,31 +522,29 @@ bool SdrCreateView::ImpBegCreateObj(sal_ return bRetval; } -bool SdrCreateView::BegCreateObj(const basegfx::B2DPoint& rPnt, OutputDevice* pOut, double fMinMovLogic) +bool SdrCreateView::BegCreateObj(const basegfx::B2DPoint& rPnt, double fMinMovLogic) { - return ImpBegCreateObj(GetCurrentObjInventor(), GetCurrentObjIdentifier(), rPnt, pOut, fMinMovLogic, basegfx::B2DRange(), 0); + return ImpBegCreateObj(getSdrObjectCreationInfo(), rPnt, fMinMovLogic, basegfx::B2DRange(), 0); } bool SdrCreateView::BegCreatePreparedObject(const basegfx::B2DPoint& rPnt, double fMinMovLogic, SdrObject* pPreparedFactoryObject) { - sal_uInt32 nInvent(GetCurrentObjInventor()); - sal_uInt16 nIdent(GetCurrentObjIdentifier()); + SdrObjectCreationInfo aSdrObjectCreationInfo(getSdrObjectCreationInfo()); if(pPreparedFactoryObject) { - nInvent = pPreparedFactoryObject->GetObjInventor(); - nIdent = pPreparedFactoryObject->GetObjIdentifier(); + aSdrObjectCreationInfo.setInvent(pPreparedFactoryObject->GetObjInventor()); + aSdrObjectCreationInfo.setIdent(pPreparedFactoryObject->GetObjIdentifier()); } - return ImpBegCreateObj(nInvent, nIdent, rPnt, 0, fMinMovLogic, basegfx::B2DRange(), pPreparedFactoryObject); + return ImpBegCreateObj(aSdrObjectCreationInfo, rPnt, fMinMovLogic, basegfx::B2DRange(), pPreparedFactoryObject); } -bool SdrCreateView::BegCreateCaptionObj(const basegfx::B2DPoint& rPnt, const basegfx::B2DVector& rObjSiz, - OutputDevice* pOut, double fMinMovLogic) +bool SdrCreateView::BegCreateCaptionObj(const basegfx::B2DPoint& rPnt, const basegfx::B2DVector& rObjSiz, double fMinMovLogic) { const basegfx::B2DRange aNewRange(rPnt, rPnt + rObjSiz); - return ImpBegCreateObj(SdrInventor, OBJ_CAPTION, rPnt, pOut, fMinMovLogic, aNewRange, 0); + return ImpBegCreateObj(SdrObjectCreationInfo(OBJ_CAPTION, SdrInventor), rPnt, fMinMovLogic, aNewRange, 0); } void SdrCreateView::MovCreateObj(const basegfx::B2DPoint& rPnt) Modified: incubator/ooo/branches/alg/aw080/main/svx/source/svdraw/svdedtv2.cxx URL: http://svn.apache.org/viewvc/incubator/ooo/branches/alg/aw080/main/svx/source/svdraw/svdedtv2.cxx?rev=1347716&r1=1347715&r2=1347716&view=diff ============================================================================== --- incubator/ooo/branches/alg/aw080/main/svx/source/svdraw/svdedtv2.cxx (original) +++ incubator/ooo/branches/alg/aw080/main/svx/source/svdraw/svdedtv2.cxx Thu Jun 7 17:08:07 2012 @@ -732,13 +732,13 @@ void SdrEditView::ImpCopyAttributes(cons bool SdrEditView::ImpCanConvertForCombine1(const SdrObject* pObj) const { - // #69711 : new condition IsLine() to be able to combine simple Lines + // #69711 : new condition isLine() to be able to combine simple Lines bool bIsLine(false); const SdrPathObj* pPath = dynamic_cast< const SdrPathObj* >(pObj); if(pPath) { - bIsLine = pPath->IsLine(); + bIsLine = pPath->isLine(); } SdrObjTransformInfoRec aInfo; @@ -1339,7 +1339,7 @@ void SdrEditView::MergeMarkedObjects(Sdr // #i73441# check insert list before taking actions if(pInsOL) { - SdrPathObj* pPath = new SdrPathObj(getSdrModelFromSdrView(), OBJ_PATHFILL, aMergePolyPolygonA); + SdrPathObj* pPath = new SdrPathObj(getSdrModelFromSdrView(), aMergePolyPolygonA); ImpCopyAttributes(pAttrObj, pPath); pInsOL->InsertObjectToSdrObjList(*pPath, nInsPos); @@ -1488,8 +1488,6 @@ void SdrEditView::CombineMarkedObjects(b if(nPolyCount) { - SdrObjKind eKind = OBJ_PATHFILL; - if(nPolyCount > 1L) { aPolyPolygon.setClosed(true); @@ -1500,11 +1498,7 @@ void SdrEditView::CombineMarkedObjects(b const basegfx::B2DPolygon aPolygon(aPolyPolygon.getB2DPolygon(0L)); const sal_uInt32 nPointCount(aPolygon.count()); - if(nPointCount <= 2) - { - eKind = OBJ_PATHLINE; - } - else + if(nPointCount > 2) { if(!aPolygon.isClosed()) { @@ -1517,15 +1511,11 @@ void SdrEditView::CombineMarkedObjects(b { aPolyPolygon.setClosed(true); } - else - { - eKind = OBJ_PATHLINE; - } } } } - SdrPathObj* pPath = new SdrPathObj(getSdrModelFromSdrView(), eKind,aPolyPolygon); + SdrPathObj* pPath = new SdrPathObj(getSdrModelFromSdrView(), aPolyPolygon); // Attribute des untersten Objekts ImpCopyAttributes(pAttrObj, pPath); @@ -1537,7 +1527,7 @@ void SdrEditView::CombineMarkedObjects(b // #110635# // Take fill style/closed state of pAttrObj in account when deciding to change the line style const SdrPathObj* pSdrPathObj = dynamic_cast< const SdrPathObj* >(pAttrObj); - const bool bIsClosedPathObj(pSdrPathObj && pSdrPathObj->IsClosed()); + const bool bIsClosedPathObj(pSdrPathObj && pSdrPathObj->isClosed()); if(XLINE_NONE == eLineStyle && (XFILL_NONE == eFillStyle || !bIsClosedPathObj)) { @@ -1664,8 +1654,8 @@ bool SdrEditView::ImpCanDismantle(const SdrObjTransformInfoRec aInfo; pObj->TakeObjInfo(aInfo); - // #69711 : new condition IsLine() to be able to break simple Lines - if(!(aInfo.mbCanConvToPath || aInfo.mbCanConvToPoly) && !pPath->IsLine()) + // #69711 : new condition isLine() to be able to break simple Lines + if(!(aInfo.mbCanConvToPath || aInfo.mbCanConvToPoly) && !pPath->isLine()) { // Passiert z.B. im Falle Fontwork (Joe, 28-11-95) bOtherObjs = true; @@ -1707,7 +1697,7 @@ void SdrEditView::ImpDismantleOneObject( if(!bMakeLines || nPointCount < 2) { - SdrPathObj* pPath = new SdrPathObj(getSdrModelFromSdrView(), (SdrObjKind)pSrcPath->GetObjIdentifier(), basegfx::B2DPolyPolygon(rCandidate)); + SdrPathObj* pPath = new SdrPathObj(getSdrModelFromSdrView(), basegfx::B2DPolyPolygon(rCandidate)); ImpCopyAttributes(pSrcPath, pPath); pLast = pPath; rOL.InsertObjectToSdrObjList(*pPath, rPos); @@ -1726,7 +1716,6 @@ void SdrEditView::ImpDismantleOneObject( for(sal_uInt32 b(0); b < nLoopCount; b++) { - SdrObjKind eKind(OBJ_PLIN); basegfx::B2DPolygon aNewPolygon; const sal_uInt32 nNextIndex((b + 1) % nPointCount); @@ -1738,14 +1727,13 @@ void SdrEditView::ImpDismantleOneObject( rCandidate.getNextControlPoint(b), rCandidate.getPrevControlPoint(nNextIndex), rCandidate.getB2DPoint(nNextIndex)); - eKind = OBJ_PATHLINE; } else { aNewPolygon.append(rCandidate.getB2DPoint(nNextIndex)); } - SdrPathObj* pPath = new SdrPathObj(getSdrModelFromSdrView(), eKind, basegfx::B2DPolyPolygon(aNewPolygon)); + SdrPathObj* pPath = new SdrPathObj(getSdrModelFromSdrView(), basegfx::B2DPolyPolygon(aNewPolygon)); ImpCopyAttributes(pSrcPath, pPath); pLast = pPath; rOL.InsertObjectToSdrObjList(*pPath, rPos); @@ -1800,7 +1788,8 @@ void SdrEditView::ImpDismantleOneObject( { // #i37011# also create a text object and add at rPos + 1 SdrTextObj* pTextObj = (SdrTextObj*)SdrObjFactory::MakeNewObject( - getSdrModelFromSdrView(), pCustomShape->GetObjInventor(), OBJ_TEXT); + getSdrModelFromSdrView(), + SdrObjectCreationInfo(OBJ_TEXT, pCustomShape->GetObjInventor())); // Copy text content OutlinerParaObject* pParaObj = pCustomShape->GetOutlinerParaObject(); Modified: incubator/ooo/branches/alg/aw080/main/svx/source/svdraw/svdedxv.cxx URL: http://svn.apache.org/viewvc/incubator/ooo/branches/alg/aw080/main/svx/source/svdraw/svdedxv.cxx?rev=1347716&r1=1347715&r2=1347716&view=diff ============================================================================== --- incubator/ooo/branches/alg/aw080/main/svx/source/svdraw/svdedxv.cxx (original) +++ incubator/ooo/branches/alg/aw080/main/svx/source/svdraw/svdedxv.cxx Thu Jun 7 17:08:07 2012 @@ -2348,18 +2348,9 @@ bool SdrObjEditView::SupportsFormatPaint case OBJ_NONE: case OBJ_GRUP: return false; - case OBJ_LINE: case OBJ_RECT: case OBJ_CIRC: - case OBJ_SECT: - case OBJ_CARC: - case OBJ_CCUT: case OBJ_POLY: - case OBJ_PLIN: - case OBJ_PATHLINE: - case OBJ_PATHFILL: - case OBJ_FREELINE: - case OBJ_FREEFILL: case OBJ_TEXT: case OBJ_TITLETEXT: case OBJ_OUTLINETEXT: @@ -2370,9 +2361,6 @@ bool SdrObjEditView::SupportsFormatPaint case OBJ_EDGE: case OBJ_CAPTION: return false; - case OBJ_PATHPOLY: - case OBJ_PATHPLIN: - return true; case OBJ_PAGE: case OBJ_MEASURE: case OBJ_FRAME: Modified: incubator/ooo/branches/alg/aw080/main/svx/source/svdraw/svdfmtf.cxx URL: http://svn.apache.org/viewvc/incubator/ooo/branches/alg/aw080/main/svx/source/svdraw/svdfmtf.cxx?rev=1347716&r1=1347715&r2=1347716&view=diff ============================================================================== --- incubator/ooo/branches/alg/aw080/main/svx/source/svdraw/svdfmtf.cxx (original) +++ incubator/ooo/branches/alg/aw080/main/svx/source/svdraw/svdfmtf.cxx Thu Jun 7 17:08:07 2012 @@ -465,7 +465,6 @@ void ImpSdrGDIMetaFileImport::InsertObj( { pObj = new SdrPathObj( mrModel, - aNewPoly.isClosed() ? OBJ_POLY : OBJ_PLIN, aNewPoly); pObj->SetLayer(aOldLayer); @@ -602,7 +601,6 @@ void ImpSdrGDIMetaFileImport::DoAction(M { SdrPathObj* pPath = new SdrPathObj( mrModel, - OBJ_LINE, basegfx::B2DPolyPolygon(aLine)); mnLineWidth = nNewLineWidth; @@ -669,7 +667,7 @@ void ImpSdrGDIMetaFileImport::DoAction(M const Rectangle& rRect(rAct.GetRect()); SdrCircObj* pCirc = new SdrCircObj( mrModel, - OBJ_CIRC, + CircleType_Circle, maCurrent * basegfx::tools::createScaleTranslateB2DHomMatrix( rRect.getWidth(), rRect.getHeight(), rRect.Left(), rRect.Top())); @@ -712,7 +710,7 @@ void ImpSdrGDIMetaFileImport::DoAction(M SdrCircObj* pCirc = new SdrCircObj( mrModel, - OBJ_CIRC, + CircleType_Circle, maCurrent * basegfx::tools::createScaleTranslateB2DHomMatrix( rRect.getWidth(), rRect.getHeight(), rRect.Left(), rRect.Top()), @@ -735,7 +733,7 @@ void ImpSdrGDIMetaFileImport::DoAction(M SdrCircObj* pCirc = new SdrCircObj( mrModel, - OBJ_SECT, + CircleType_Sector, maCurrent * basegfx::tools::createScaleTranslateB2DHomMatrix( rRect.getWidth(), rRect.getHeight(), rRect.Left(), rRect.Top()), @@ -758,7 +756,7 @@ void ImpSdrGDIMetaFileImport::DoAction(M SdrCircObj* pCirc = new SdrCircObj( mrModel, - OBJ_CCUT, + CircleType_Segment, maCurrent * basegfx::tools::createScaleTranslateB2DHomMatrix( rRect.getWidth(), rRect.getHeight(), rRect.Left(), rRect.Top()), @@ -921,7 +919,6 @@ void ImpSdrGDIMetaFileImport::DoAction( { SdrPathObj* pPath = new SdrPathObj( mrModel, - aSource.isClosed() ? OBJ_POLY : OBJ_PLIN, basegfx::B2DPolyPolygon(aSource)); mnLineWidth = nNewLineWidth; @@ -960,7 +957,6 @@ void ImpSdrGDIMetaFileImport::DoAction(M SdrPathObj* pPath = new SdrPathObj( mrModel, - OBJ_POLY, basegfx::B2DPolyPolygon(aSource)); SetAttributes(pPath); @@ -986,7 +982,6 @@ void ImpSdrGDIMetaFileImport::DoAction(M SdrPathObj* pPath = new SdrPathObj( mrModel, - OBJ_POLY, aSource); SetAttributes(pPath); @@ -1185,7 +1180,6 @@ void ImpSdrGDIMetaFileImport::DoAction( const Hatch& rHatch = rAct.GetHatch(); SdrPathObj* pPath = new SdrPathObj( mrModel, - OBJ_POLY, aSource); SfxItemSet aHatchAttr(pPath->GetObjectItemPool(), XATTR_FILLSTYLE, XATTR_FILLSTYLE, @@ -1260,7 +1254,6 @@ void ImpSdrGDIMetaFileImport::DoAction( const Gradient& rGrad = pAct->GetGradient(); SdrPathObj* pPath = new SdrPathObj( mrModel, - OBJ_POLY, aSource); SfxItemSet aGradAttr(pPath->GetObjectItemPool(), XATTR_FILLSTYLE, XATTR_FILLSTYLE, @@ -1506,7 +1499,6 @@ void ImpSdrGDIMetaFileImport::DoAction(M SdrPathObj* pPath = new SdrPathObj( mrModel, - OBJ_POLY, aSource); SetAttributes(pPath); @@ -1544,7 +1536,6 @@ void ImpSdrGDIMetaFileImport::DoAction(M const Gradient& rGradient = rAct.GetGradient(); SdrPathObj* pPath = new SdrPathObj( mrModel, - OBJ_POLY, aSource); SfxItemSet aGradientAttr(mrModel.GetItemPool(), XATTR_FILLSTYLE, XATTR_FILLSTYLE, XATTR_FILLGRADIENT, XATTR_FILLGRADIENT, 0, 0); XGradientStyle aXGradientStyle(XGRAD_LINEAR); Modified: incubator/ooo/branches/alg/aw080/main/svx/source/svdraw/svdmrkv.cxx URL: http://svn.apache.org/viewvc/incubator/ooo/branches/alg/aw080/main/svx/source/svdraw/svdmrkv.cxx?rev=1347716&r1=1347715&r2=1347716&view=diff ============================================================================== --- incubator/ooo/branches/alg/aw080/main/svx/source/svdraw/svdmrkv.cxx (original) +++ incubator/ooo/branches/alg/aw080/main/svx/source/svdraw/svdmrkv.cxx Thu Jun 7 17:08:07 2012 @@ -567,8 +567,7 @@ bool SdrMarkView::ImpIsFrameHandles() co { const sal_uInt16 nIdent(pObj->GetObjIdentifier()); - if(OBJ_LINE == nIdent - || OBJ_EDGE == nIdent + if(OBJ_EDGE == nIdent || OBJ_CAPTION == nIdent || OBJ_MEASURE == nIdent || OBJ_CUSTOMSHAPE == nIdent @@ -576,6 +575,16 @@ bool SdrMarkView::ImpIsFrameHandles() co { bFrmHdl = false; } + + if(bFrmHdl && OBJ_POLY == nIdent) + { + const SdrPathObj* pPath = dynamic_cast< const SdrPathObj* >(pObj); + + if(pPath && pPath->isLine()) + { + bFrmHdl = false; + } + } } } Modified: incubator/ooo/branches/alg/aw080/main/svx/source/svdraw/svdobj.cxx URL: http://svn.apache.org/viewvc/incubator/ooo/branches/alg/aw080/main/svx/source/svdraw/svdobj.cxx?rev=1347716&r1=1347715&r2=1347716&view=diff ============================================================================== --- incubator/ooo/branches/alg/aw080/main/svx/source/svdraw/svdobj.cxx (original) +++ incubator/ooo/branches/alg/aw080/main/svx/source/svdraw/svdobj.cxx Thu Jun 7 17:08:07 2012 @@ -2163,7 +2163,6 @@ SdrObject* SdrObject::ImpConvertToContou // create SdrObject for filled line geometry aLinePolygonPart = new SdrPathObj( getSdrModelFromSdrObject(), - OBJ_PATHFILL, aMergedLineFillPolyPolygon); // correct item properties @@ -2186,7 +2185,6 @@ SdrObject* SdrObject::ImpConvertToContou // the correct closed state. aLineHairlinePart = new SdrPathObj( getSdrModelFromSdrObject(), - OBJ_PATHLINE, aMergedHairlinePolyPolygon); aSet.Put(XLineWidthItem(0L)); @@ -2209,7 +2207,7 @@ SdrObject* SdrObject::ImpConvertToContou bool bAddOriginalGeometry(false); SdrPathObj* pPath = dynamic_cast< SdrPathObj* >( pRet); - if(pPath && pPath->IsClosed()) + if(pPath && pPath->isClosed()) { if(eOldFillStyle != XFILL_NONE) { @@ -2529,7 +2527,10 @@ SvxShape* SdrObject::getSvxShape() const } else { - mpSvxShape = SvxDrawPage::CreateShapeByTypeAndInventor( GetObjIdentifier(), GetObjInventor(), this, NULL ); + mpSvxShape = SvxDrawPage::CreateShapeBySvxShapeKind( + SdrObjectCreatorInventorToSvxShapeKind(GetObjIdentifier(), GetObjInventor()), + this, + 0); maWeakUnoShape = xShape = static_cast< ::cppu::OWeakObject* >( mpSvxShape ); } } @@ -2648,154 +2649,5 @@ void SdrObject::SetContextWritingMode( c return aRetval; } -//////////////////////////////////////////////////////////////////////////////////////////////////// - -SdrObjFactory::SdrObjFactory(SdrModel& rTargetModel, sal_uInt32 nInvent, sal_uInt16 nIdent) -: mpTargetModel(&rTargetModel), - mnInventor(nInvent), - mnIdentifier(nIdent), - mpNewObj(0), - mpObj(0), - mpNewData(0) -{ -} - -SdrObjFactory::SdrObjFactory(sal_uInt32 nInvent, sal_uInt16 nIdent, SdrObject& rObj1) -: mnInventor(nInvent), - mnIdentifier(nIdent), - mpNewObj(0), - mpObj(&rObj1), - mpNewData(0) -{ -} - -SdrObject* SdrObjFactory::MakeNewObject(SdrModel& rTargetModel, sal_uInt32 nInvent, sal_uInt16 nIdent) -{ - SdrObject* pObj = 0; - - if(nInvent == SdrInventor) - { - switch (nIdent) - { - case sal_uInt16(OBJ_NONE ): pObj=new SdrObject(rTargetModel); break; - case sal_uInt16(OBJ_GRUP ): pObj=new SdrObjGroup(rTargetModel); break; - case sal_uInt16(OBJ_LINE ): pObj=new SdrPathObj(rTargetModel, OBJ_LINE ); break; - case sal_uInt16(OBJ_POLY ): pObj=new SdrPathObj(rTargetModel, OBJ_POLY ); break; - case sal_uInt16(OBJ_PLIN ): pObj=new SdrPathObj(rTargetModel, OBJ_PLIN ); break; - case sal_uInt16(OBJ_PATHLINE ): pObj=new SdrPathObj(rTargetModel, OBJ_PATHLINE ); break; - case sal_uInt16(OBJ_PATHFILL ): pObj=new SdrPathObj(rTargetModel, OBJ_PATHFILL ); break; - case sal_uInt16(OBJ_FREELINE ): pObj=new SdrPathObj(rTargetModel, OBJ_FREELINE ); break; - case sal_uInt16(OBJ_FREEFILL ): pObj=new SdrPathObj(rTargetModel, OBJ_FREEFILL ); break; - case sal_uInt16(OBJ_PATHPOLY ): pObj=new SdrPathObj(rTargetModel, OBJ_POLY ); break; - case sal_uInt16(OBJ_PATHPLIN ): pObj=new SdrPathObj(rTargetModel, OBJ_PLIN ); break; - case sal_uInt16(OBJ_EDGE ): pObj=new SdrEdgeObj(rTargetModel); break; - case sal_uInt16(OBJ_RECT ): pObj=new SdrRectObj(rTargetModel); break; - case sal_uInt16(OBJ_CIRC ): pObj=new SdrCircObj(rTargetModel, OBJ_CIRC ); break; - case sal_uInt16(OBJ_SECT ): pObj=new SdrCircObj(rTargetModel, OBJ_SECT ); break; - case sal_uInt16(OBJ_CARC ): pObj=new SdrCircObj(rTargetModel, OBJ_CARC ); break; - case sal_uInt16(OBJ_CCUT ): pObj=new SdrCircObj(rTargetModel, OBJ_CCUT ); break; - case sal_uInt16(OBJ_TEXT ): pObj=new SdrRectObj( - rTargetModel, basegfx::B2DHomMatrix(), OBJ_TEXT, true); break; - case sal_uInt16(OBJ_TITLETEXT ): pObj=new SdrRectObj( - rTargetModel, basegfx::B2DHomMatrix(), OBJ_TITLETEXT, true); break; - case sal_uInt16(OBJ_OUTLINETEXT): pObj=new SdrRectObj( - rTargetModel, basegfx::B2DHomMatrix(), OBJ_OUTLINETEXT, true); break; - case sal_uInt16(OBJ_MEASURE ): pObj=new SdrMeasureObj(rTargetModel); break; - case sal_uInt16(OBJ_GRAF ): pObj=new SdrGrafObj(rTargetModel, Graphic()); break; - case sal_uInt16(OBJ_OLE2 ): pObj=new SdrOle2Obj(rTargetModel); break; - case sal_uInt16(OBJ_FRAME ): pObj=new SdrOle2Obj( - rTargetModel, svt::EmbeddedObjectRef(), String(), basegfx::B2DHomMatrix(), true); break; - case sal_uInt16(OBJ_CAPTION ): pObj=new SdrCaptionObj(rTargetModel); break; - case sal_uInt16(OBJ_PAGE ): pObj=new SdrPageObj(rTargetModel); break; - case sal_uInt16(OBJ_UNO ): pObj=new SdrUnoObj(rTargetModel, String()); break; - case sal_uInt16(OBJ_CUSTOMSHAPE): pObj=new SdrObjCustomShape(rTargetModel); break; - case sal_uInt16(OBJ_MEDIA ): pObj=new SdrMediaObj(rTargetModel); break; - case sal_uInt16(OBJ_TABLE ): pObj=new ::sdr::table::SdrTableObj(rTargetModel); break; - } - } - - if(!pObj) - { - SdrObjFactory* pFact = new SdrObjFactory(rTargetModel, nInvent, nIdent); - SdrLinkList& rLL = ImpGetUserMakeObjHdl(); - unsigned nAnz(rLL.GetLinkCount()); - unsigned i(0); - - while(i < nAnz && !pObj) - { - rLL.GetLink(i).Call((void*)pFact); - pObj = pFact->mpNewObj; - i++; - } - - delete pFact; - } - - return pObj; -} - -SdrObjUserData* SdrObjFactory::MakeNewObjUserData(sal_uInt32 nInvent, sal_uInt16 nIdent, SdrObject& rObj1) -{ - SdrObjUserData* pData = 0; - - if(nInvent == SdrInventor) - { - switch (nIdent) - { - case sal_uInt16(SDRUSERDATA_OBJTEXTLINK) : - pData = new ImpSdrObjTextLinkUserData(dynamic_cast< SdrTextObj* >(&rObj1)); - break; - } - } - - if(!pData) - { - SdrObjFactory aFact(nInvent, nIdent, rObj1); - SdrLinkList& rLL = ImpGetUserMakeObjUserDataHdl(); - unsigned nAnz(rLL.GetLinkCount()); - unsigned i(0); - - while(i < nAnz && !pData) - { - rLL.GetLink(i).Call((void*)&aFact); - pData = aFact.mpNewData; - i++; - } - } - - return pData; -} - -void SdrObjFactory::InsertMakeObjectHdl(const Link& rLink) -{ - SdrLinkList& rLL = ImpGetUserMakeObjHdl(); - rLL.InsertLink(rLink); -} - -void SdrObjFactory::RemoveMakeObjectHdl(const Link& rLink) -{ - SdrLinkList& rLL = ImpGetUserMakeObjHdl(); - rLL.RemoveLink(rLink); -} - -void SdrObjFactory::InsertMakeUserDataHdl(const Link& rLink) -{ - SdrLinkList& rLL = ImpGetUserMakeObjUserDataHdl(); - rLL.InsertLink(rLink); -} - -void SdrObjFactory::RemoveMakeUserDataHdl(const Link& rLink) -{ - SdrLinkList& rLL = ImpGetUserMakeObjUserDataHdl(); - rLL.RemoveLink(rLink); -} - -namespace svx -{ - ISdrObjectFilter::~ISdrObjectFilter() - { - } -} - ////////////////////////////////////////////////////////////////////////////// // eof