summaryrefslogtreecommitdiff
path: root/editeng/source/editeng/editeng.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'editeng/source/editeng/editeng.cxx')
-rw-r--r--editeng/source/editeng/editeng.cxx27
1 files changed, 25 insertions, 2 deletions
diff --git a/editeng/source/editeng/editeng.cxx b/editeng/source/editeng/editeng.cxx
index 6c6a0257993f..01bc8dadc7e2 100644
--- a/editeng/source/editeng/editeng.cxx
+++ b/editeng/source/editeng/editeng.cxx
@@ -609,14 +609,37 @@ sal_uInt32 EditEngine::GetLineHeight( sal_Int32 nParagraph )
return pImpEditEngine->GetLineHeight( nParagraph, 0 );
}
-sal_uInt32 EditEngine::GetTextHeight( sal_Int32 nParagraph ) const
+tools::Rectangle EditEngine::GetParaBounds( sal_Int32 nPara )
{
+ if ( !pImpEditEngine->IsFormatted() )
+ pImpEditEngine->FormatDoc();
+
+ Point aPnt = GetDocPosTopLeft( nPara );
+
+ if( IsVertical() )
+ {
+ sal_Int32 nTextHeight = pImpEditEngine->GetTextHeight();
+ sal_Int32 nParaWidth = pImpEditEngine->CalcParaWidth( nPara, true );
+ sal_uLong nParaHeight = pImpEditEngine->GetParaHeight( nPara );
+
+ return tools::Rectangle( nTextHeight - aPnt.Y() - nParaHeight, 0, nTextHeight - aPnt.Y(), nParaWidth );
+ }
+ else
+ {
+ sal_Int32 nParaWidth = pImpEditEngine->CalcParaWidth( nPara, true );
+ sal_uLong nParaHeight = pImpEditEngine->GetParaHeight( nPara );
+
+ return tools::Rectangle( 0, aPnt.Y(), nParaWidth, aPnt.Y() + nParaHeight );
+ }
+}
+sal_uInt32 EditEngine::GetTextHeight( sal_Int32 nParagraph ) const
+{
if ( !pImpEditEngine->IsFormatted() )
pImpEditEngine->FormatDoc();
sal_uInt32 nHeight = pImpEditEngine->GetParaHeight( nParagraph );
- return nHeight;
+ return nHeight;
}
OUString EditEngine::GetWord( sal_Int32 nPara, sal_Int32 nIndex )