You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by al...@apache.org on 2012/06/07 19:08:12 UTC
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...
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 <basegfx/polygon/b2dpolypolygontools.hxx>
#include <com/sun/star/document/XActionLockable.hpp>
#include <svx/svdlegacy.hxx>
+#include <svx/sdrobjectfactory.hxx>
// ---------------------------
// - 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 <svx/svdpage.hxx>
@@ -32,90 +30,87 @@
#include <svx/polygn3d.hxx>
#include "svx/objfac3d.hxx"
#include <svx/svdobj.hxx>
+#include <svx/sdrobjectfactory.hxx>
+
+//////////////////////////////////////////////////////////////////////////////
-/*************************************************************************
-|*
-|* 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 <svx/sdrobjectfactory.hxx>
+#include <svx/svdogrp.hxx>
+#include <svx/svdoedge.hxx>
+#include <svx/svdomeas.hxx>
+#include <svx/svdograf.hxx>
+#include <svx/svdoole2.hxx>
+#include <svx/svdocapt.hxx>
+#include <svx/svdopage.hxx>
+#include <svx/svdouno.hxx>
+#include <svx/svdoashp.hxx>
+#include <svx/svdomedia.hxx>
+#include <svx/svdotable.hxx>
+#include <svx/svdetc.hxx>
+
+////////////////////////////////////////////////////////////////////////////////////////////////////
+
+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