diff options
Diffstat (limited to 'svx/source/svdraw/svdedxv.cxx')
-rw-r--r-- | svx/source/svdraw/svdedxv.cxx | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/svx/source/svdraw/svdedxv.cxx b/svx/source/svdraw/svdedxv.cxx index cb1c00feb61d..6134278eddb8 100644 --- a/svx/source/svdraw/svdedxv.cxx +++ b/svx/source/svdraw/svdedxv.cxx @@ -1810,6 +1810,38 @@ void SdrObjEditView::OnEndPasteOrDrop( PasteOrDropInfos* ) // applications can derive from these virtual methods to do something before a drop or paste operation } +sal_uInt16 SdrObjEditView::GetSelectionLevel() const +{ + sal_uInt16 nLevel = 0xFFFF; + if( IsTextEdit() ) + { + DBG_ASSERT(pTextEditOutlinerView!=NULL,"SdrObjEditView::GetAttributes(): pTextEditOutlinerView=NULL"); + DBG_ASSERT(pTextEditOutliner!=NULL,"SdrObjEditView::GetAttributes(): pTextEditOutliner=NULL"); + if( pTextEditOutlinerView ) + { + //start and end position + ESelection aSelect = pTextEditOutlinerView->GetSelection(); + sal_uInt16 nStartPara = ::std::min( aSelect.nStartPara, aSelect.nEndPara ); + sal_uInt16 nEndPara = ::std::max( aSelect.nStartPara, aSelect.nEndPara ); + //get level from each paragraph + nLevel = 0; + for( sal_uInt16 nPara = nStartPara; nPara <= nEndPara; nPara++ ) + { + sal_uInt16 nParaDepth = 1 << pTextEditOutliner->GetDepth( nPara ); + if( !(nLevel & nParaDepth) ) + nLevel += nParaDepth; + } + //reduce one level for Outliner Object + //if( nLevel > 0 && GetTextEditObject()->GetObjIdentifier() == OBJ_OUTLINETEXT ) + // nLevel = nLevel >> 1; + //no bullet paragraph selected + if( nLevel == 0) + nLevel = 0xFFFF; + } + } + return nLevel; +} + bool SdrObjEditView::SupportsFormatPaintbrush( sal_uInt32 nObjectInventor, sal_uInt16 nObjectIdentifier ) const { if( nObjectInventor != SdrInventor && nObjectInventor != E3dInventor ) |