diff options
Diffstat (limited to 'editeng/source/editeng/editobj.cxx')
-rw-r--r-- | editeng/source/editeng/editobj.cxx | 55 |
1 files changed, 45 insertions, 10 deletions
diff --git a/editeng/source/editeng/editobj.cxx b/editeng/source/editeng/editobj.cxx index eab2d3645f30..9bd5859aba2b 100644 --- a/editeng/source/editeng/editobj.cxx +++ b/editeng/source/editeng/editobj.cxx @@ -361,14 +361,29 @@ bool EditTextObject::IsVertical() const return mpImpl->IsVertical(); } +bool EditTextObject::GetDirectVertical() const +{ + return mpImpl->GetDirectVertical(); +} + bool EditTextObject::IsTopToBottom() const { return mpImpl->IsTopToBottom(); } -void EditTextObject::SetVertical( bool bVertical, bool bTopToBottom ) +void EditTextObject::SetVertical( bool bVertical ) +{ + return mpImpl->SetVertical(bVertical); +} + +void EditTextObject::SetRotation( TextRotation nRotation ) { - return mpImpl->SetVertical(bVertical, bTopToBottom); + mpImpl->SetRotation(nRotation); +} + +TextRotation EditTextObject::GetRotation() const +{ + return mpImpl->GetRotation(); } SvtScriptType EditTextObject::GetScriptType() const @@ -493,7 +508,7 @@ EditTextObjectImpl::EditTextObjectImpl( EditTextObject* pFront, SfxItemPool* pP , nUserType(OutlinerMode::DontKnow) , nScriptType(SvtScriptType::NONE) , bVertical(false) - , bIsTopToBottomVert(false) + , mnRotation(TextRotation::NONE) { // #i101239# ensure target is an EditEngineItemPool, else // fallback to pool ownership. This is needed to ensure that at @@ -526,7 +541,7 @@ EditTextObjectImpl::EditTextObjectImpl( EditTextObject* pFront, const EditTextOb , nUserType(r.nUserType) , nScriptType(r.nScriptType) , bVertical(r.bVertical) - , bIsTopToBottomVert(r.bIsTopToBottomVert) + , mnRotation(r.mnRotation) { // Do not copy PortionInfo @@ -606,24 +621,44 @@ std::vector<svl::SharedString> EditTextObjectImpl::GetSharedStrings() const bool EditTextObjectImpl::IsVertical() const { - return bVertical; + return (bVertical && mnRotation == TextRotation::NONE) || + (!bVertical && mnRotation != TextRotation::NONE); } bool EditTextObjectImpl::IsTopToBottom() const { - return bIsTopToBottomVert; + return (bVertical && mnRotation == TextRotation::NONE) || + (!bVertical && mnRotation == TextRotation::TOPTOBOTTOM); } -void EditTextObjectImpl::SetVertical( bool bVert, bool bTopToBottom) +void EditTextObjectImpl::SetVertical( bool bVert) { - if (bVert != bVertical || bTopToBottom != (bVert && bIsTopToBottomVert)) + if (bVert != bVertical) { bVertical = bVert; - bIsTopToBottomVert = bVert && bTopToBottom; ClearPortionInfo(); } } +bool EditTextObjectImpl::GetDirectVertical() const +{ + return bVertical; +} + +void EditTextObjectImpl::SetRotation(TextRotation nRotation) +{ + if (mnRotation != nRotation) + { + mnRotation = nRotation; + ClearPortionInfo(); + } +} + +TextRotation EditTextObjectImpl::GetRotation() const +{ + return mnRotation; +} + void EditTextObjectImpl::SetScriptType( SvtScriptType nType ) { @@ -1031,7 +1066,7 @@ bool EditTextObjectImpl::Equals( const EditTextObjectImpl& rCompare, bool bCompa ( nUserType!= rCompare.nUserType ) || ( nScriptType != rCompare.nScriptType ) || ( bVertical != rCompare.bVertical ) || - ( bIsTopToBottomVert != rCompare.bIsTopToBottomVert ) ) + ( mnRotation != rCompare.mnRotation ) ) return false; for (size_t i = 0, n = aContents.size(); i < n; ++i) |