Rebased ref, commits from common ancestor: commit cb4a77073d1448e29ac099c96b53dea47223a937 Author: Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk> AuthorDate: Tue Sep 27 22:21:37 2022 +0200 Commit: Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk> CommitDate: Mon Oct 17 21:48:11 2022 +0200
Check Textbox Fit To Frame Change-Id: I4a02658d06b84cd1222713f12adf14a8194b5b93 diff --git a/editeng/inc/editdoc.hxx b/editeng/inc/editdoc.hxx index 2a7aa0128423..e5c3abbef0cf 100644 --- a/editeng/inc/editdoc.hxx +++ b/editeng/inc/editdoc.hxx @@ -409,7 +409,29 @@ public: sal_Int32 GetLen() const { return nLen; } void SetLen( sal_Int32 nL ) { nLen = nL; } - Size& GetSize() { return aOutSz; } + void setWidth(tools::Long nWidth) + { + aOutSz.setWidth(nWidth); + } + + void setHeight(tools::Long nHeight) + { + aOutSz.setHeight(nHeight); + } + + void adjustSize(tools::Long nDeltaX, tools::Long nDeltaY) + { + if (nDeltaX != 0) + aOutSz.AdjustWidth(nDeltaX); + if (nDeltaY != 0) + aOutSz.AdjustHeight(nDeltaY); + } + + void SetSize(const Size& rSize) + { + aOutSz = rSize; + } + const Size& GetSize() const { return aOutSz; } void SetKind(PortionKind n) { nKind = n; } @@ -728,7 +750,7 @@ private: rtl::Reference<SfxItemPool> pItemPool; Link<LinkParamNone*,void> aModifyHdl; - SvxFont aDefFont; //faster than ever from the pool!! + SvxFont maDefFont; //faster than ever from the pool!! sal_uInt16 nDefTab; bool bIsVertical:1; TextRotation mnRotation; @@ -755,7 +777,7 @@ public: void SetModifyHdl( const Link<LinkParamNone*,void>& rLink ) { aModifyHdl = rLink; } void CreateDefFont( bool bUseStyles ); - const SvxFont& GetDefFont() const { return aDefFont; } + const SvxFont& GetDefFont() const { return maDefFont; } void SetDefTab( sal_uInt16 nTab ) { nDefTab = nTab ? nTab : DEFTAB; } sal_uInt16 GetDefTab() const { return nDefTab; } diff --git a/editeng/source/editeng/editdoc.cxx b/editeng/source/editeng/editdoc.cxx index 108230a1666d..3dc739281293 100644 --- a/editeng/source/editeng/editdoc.cxx +++ b/editeng/source/editeng/editdoc.cxx @@ -1988,7 +1988,11 @@ void CreateFont( SvxFont& rFont, const SfxItemSet& rSet, bool bSearchInParent, S if ( bSearchInParent || ( rSet.GetItemState( EE_CHAR_BKGCOLOR ) == SfxItemState::SET ) ) rFont.SetFillColor( rSet.Get( EE_CHAR_BKGCOLOR ).GetValue() ); if ( bSearchInParent || ( rSet.GetItemState( nWhich_FontHeight ) == SfxItemState::SET ) ) - rFont.SetFontSize( Size( rFont.GetFontSize().Width(), static_cast<const SvxFontHeightItem&>(rSet.Get( nWhich_FontHeight ) ).GetHeight() ) ); + { + auto nHeight = static_cast<const SvxFontHeightItem&>(rSet.Get( nWhich_FontHeight ) ).GetHeight(); + printf ("FONTHEIGHT %ld\n", nHeight); + rFont.SetFontSize(Size(rFont.GetFontSize().Width(), nHeight)); + } if ( bSearchInParent || ( rSet.GetItemState( nWhich_Weight ) == SfxItemState::SET ) ) rFont.SetWeight( static_cast<const SvxWeightItem&>(rSet.Get( nWhich_Weight )).GetWeight() ); if ( bSearchInParent || ( rSet.GetItemState( EE_CHAR_UNDERLINE ) == SfxItemState::SET ) ) @@ -2039,14 +2043,14 @@ void CreateFont( SvxFont& rFont, const SfxItemSet& rSet, bool bSearchInParent, S void EditDoc::CreateDefFont( bool bUseStyles ) { SfxItemSetFixed<EE_PARA_START, EE_CHAR_END> aTmpSet( GetItemPool() ); - CreateFont( aDefFont, aTmpSet ); - aDefFont.SetVertical( IsEffectivelyVertical() ); - aDefFont.SetOrientation( Degree10(IsEffectivelyVertical() ? (IsTopToBottom() ? 2700 : 900) : 0) ); + CreateFont(maDefFont, aTmpSet); + maDefFont.SetVertical( IsEffectivelyVertical() ); + maDefFont.SetOrientation( Degree10(IsEffectivelyVertical() ? (IsTopToBottom() ? 2700 : 900) : 0) ); for ( sal_Int32 nNode = 0; nNode < Count(); nNode++ ) { ContentNode* pNode = GetObject( nNode ); - pNode->GetCharAttribs().GetDefFont() = aDefFont; + pNode->GetCharAttribs().GetDefFont() = maDefFont; if ( bUseStyles ) pNode->CreateDefFont(); } diff --git a/editeng/source/editeng/impedit2.cxx b/editeng/source/editeng/impedit2.cxx index 455587bac4a6..61c509e433fd 100644 --- a/editeng/source/editeng/impedit2.cxx +++ b/editeng/source/editeng/impedit2.cxx @@ -3348,6 +3348,7 @@ sal_uInt32 ImpEditEngine::GetTextHeight() const sal_uInt32 ImpEditEngine::CalcTextWidth( bool bIgnoreExtraSpace ) { + printf("ImpEditEngine::CalcTextWidth\n"); // If still not formatted and not in the process. // Will be brought in the formatting for AutoPageSize. if ( !IsFormatted() && !IsFormatting() ) @@ -3362,12 +3363,13 @@ sal_uInt32 ImpEditEngine::CalcTextWidth( bool bIgnoreExtraSpace ) { nMaxWidth = std::max(nMaxWidth, CalcParaWidth(nPara, bIgnoreExtraSpace)); } - + printf("end ImpEditEngine::CalcTextWidth %d\n", nMaxWidth); return nMaxWidth; } sal_uInt32 ImpEditEngine::CalcParaWidth( sal_Int32 nPara, bool bIgnoreExtraSpace ) { + printf("ImpEditEngine::CalcParaWidth\n"); // If still not formatted and not in the process. // Will be brought in the formatting for AutoPageSize. if ( !IsFormatted() && !IsFormatting() ) @@ -3387,8 +3389,8 @@ sal_uInt32 ImpEditEngine::CalcParaWidth( sal_Int32 nPara, bool bIgnoreExtraSpace // On the lines of the paragraph ... - sal_Int32 nLines = pPortion->GetLines().Count(); - for ( sal_Int32 nLine = 0; nLine < nLines; nLine++ ) + sal_Int32 nNumberOfLines = pPortion->GetLines().Count(); + for (sal_Int32 nLine = 0; nLine < nNumberOfLines; nLine++) { EditLine& rLine = pPortion->GetLines()[nLine]; // nCurWidth = pLine->GetStartPosX(); @@ -3397,7 +3399,8 @@ sal_uInt32 ImpEditEngine::CalcParaWidth( sal_Int32 nPara, bool bIgnoreExtraSpace // to StartPosX, also the right indents have to be taken into // account! tools::Long nCurWidth = GetXValue( rLRItem.GetTextLeft() + nSpaceBeforeAndMinLabelWidth ); - if ( nLine == 0 ) + printf ("nCurWidth 1 - %ld\n", nCurWidth); + if (nLine == 0) { tools::Long nFI = GetXValue( rLRItem.GetTextFirstLineOffset() ); nCurWidth -= nFI; @@ -3408,17 +3411,19 @@ sal_uInt32 ImpEditEngine::CalcParaWidth( sal_Int32 nPara, bool bIgnoreExtraSpace nCurWidth = pPortion->GetBulletX(); } } - nCurWidth += GetXValue( rLRItem.GetRight() ); - nCurWidth += CalcLineWidth( pPortion, &rLine, bIgnoreExtraSpace ); - if ( nCurWidth > nMaxWidth ) - { - nMaxWidth = nCurWidth; - } + + nCurWidth += GetXValue(rLRItem.GetRight()); + printf ("nCurWidth 2 - %ld\n", nCurWidth); + nCurWidth += CalcLineWidth(pPortion, &rLine, bIgnoreExtraSpace); + printf ("nCurWidth 3 - %ld\n", nCurWidth); + + nMaxWidth = std::max(nCurWidth, nMaxWidth); } } nMaxWidth++; // widen it, because in CreateLines for >= is wrapped. - return static_cast<sal_uInt32>(nMaxWidth); + printf ("max width: %ld\n", nMaxWidth); + return sal_uInt32(nMaxWidth); } sal_uInt32 ImpEditEngine::CalcLineWidth( ParaPortion* pPortion, EditLine* pLine, bool bIgnoreExtraSpace ) @@ -3452,7 +3457,9 @@ sal_uInt32 ImpEditEngine::CalcLineWidth( ParaPortion* pPortion, EditLine* pLine, { if ( ( eJustification != SvxAdjust::Block ) || ( !bIgnoreExtraSpace ) ) { - nWidth += rTextPortion.GetSize().Width(); + auto width = rTextPortion.GetSize().Width(); + printf ("WIDTH: %ld\n", width); + nWidth += width; } else { @@ -3460,8 +3467,11 @@ sal_uInt32 ImpEditEngine::CalcLineWidth( ParaPortion* pPortion, EditLine* pLine, SeekCursor( pPortion->GetNode(), nPos+1, aTmpFont ); aTmpFont.SetPhysFont(*GetRefDevice()); ImplInitDigitMode(*GetRefDevice(), aTmpFont.GetLanguage()); - nWidth += aTmpFont.QuickGetTextSize( GetRefDevice(), + auto width = aTmpFont.QuickGetTextSize( GetRefDevice(), pPortion->GetNode()->GetString(), nPos, rTextPortion.GetLen(), nullptr ).Width(); + + printf ("WIDTH: %ld\n", width); + nWidth += width; } } break; diff --git a/editeng/source/editeng/impedit3.cxx b/editeng/source/editeng/impedit3.cxx index 6efc74d95cfe..31f80e5e10ce 100644 --- a/editeng/source/editeng/impedit3.cxx +++ b/editeng/source/editeng/impedit3.cxx @@ -676,6 +676,7 @@ tools::Long ImpEditEngine::GetColumnWidth(const Size& rPaperSize) const bool ImpEditEngine::CreateLines( sal_Int32 nPara, sal_uInt32 nStartPosY ) { + printf ("ImpEditEngine::CreateLines\n"); ParaPortion* pParaPortion = GetParaPortions()[nPara]; // sal_Bool: Changes in the height of paragraph Yes / No - sal_True/sal_False @@ -838,7 +839,7 @@ bool ImpEditEngine::CreateLines( sal_Int32 nPara, sal_uInt32 nStartPosY ) EditLine aSaveLine( *pLine ); SvxFont aTmpFont( pNode->GetCharAttribs().GetDefFont() ); - std::vector<sal_Int32> aBuf( pNode->Len() ); + std::vector<sal_Int32> aCharPositionArray(pNode->Len()); bool bSameLineAgain = false; // For TextRanger, if the height changes. TabInfo aCurrentTab; @@ -975,6 +976,7 @@ bool ImpEditEngine::CreateLines( sal_Int32 nPara, sal_uInt32 nStartPosY ) } // search for Portion that no longer fits in line... + TextPortion* pPortion = nullptr; sal_Int32 nPortionLen = 0; bool bContinueLastPortion = false; @@ -1016,7 +1018,7 @@ bool ImpEditEngine::CreateLines( sal_Int32 nPara, sal_uInt32 nStartPosY ) nTmpWidth -= rPrev.GetSize().Width(); nTmpPos = nTmpPos - rPrev.GetLen(); rPrev.SetLen(rPrev.GetLen() + nTmpLen); - rPrev.GetSize().setWidth( -1 ); + rPrev.setWidth(-1); } assert( nTmpPortion < pParaPortion->GetTextPortions().Count() && "No more Portions left!" ); @@ -1045,6 +1047,7 @@ bool ImpEditEngine::CreateLines( sal_Int32 nPara, sal_uInt32 nStartPosY ) { case EE_FEATURE_TAB: { + printf ("EE_FEATURE_TAB\n"); tools::Long nOldTmpWidth = nTmpWidth; // Search for Tab-Pos... @@ -1079,11 +1082,11 @@ bool ImpEditEngine::CreateLines( sal_Int32 nPara, sal_uInt32 nStartPosY ) pPortion->SetKind(PortionKind::TAB); pPortion->SetExtraValue( aCurrentTab.aTabStop.GetFill() ); - pPortion->GetSize().setWidth( aCurrentTab.nTabPos - (nTmpWidth+nStartX) ); + pPortion->setWidth( aCurrentTab.nTabPos - (nTmpWidth+nStartX) ); // Height needed... SeekCursor( pNode, nTmpPos+1, aTmpFont ); - pPortion->GetSize().setHeight( GetRefDevice()->GetTextHeight() ); + pPortion->setHeight( GetRefDevice()->GetTextHeight() ); DBG_ASSERT( pPortion->GetSize().Width() >= 0, "Tab incorrectly calculated!" ); @@ -1095,7 +1098,7 @@ bool ImpEditEngine::CreateLines( sal_Int32 nPara, sal_uInt32 nStartPosY ) { // What now? // make the tab fitting - pPortion->GetSize().setWidth( nXWidth-nOldTmpWidth ); + pPortion->setWidth( nXWidth-nOldTmpWidth ); nTmpWidth = nXWidth-1; bEOL = true; bBrokenLine = true; @@ -1108,8 +1111,9 @@ bool ImpEditEngine::CreateLines( sal_Int32 nPara, sal_uInt32 nStartPosY ) break; case EE_FEATURE_LINEBR: { + printf ("EE_FEATURE_LINEBR\n"); assert( pPortion ); - pPortion->GetSize().setWidth( 0 ); + pPortion->setWidth(0); bEOL = true; bLineBreak = true; pPortion->SetKind( PortionKind::LINEBREAK ); @@ -1121,6 +1125,7 @@ bool ImpEditEngine::CreateLines( sal_Int32 nPara, sal_uInt32 nStartPosY ) break; case EE_FEATURE_FIELD: { + printf ("EE_FEATURE_FIELD\n"); SeekCursor( pNode, nTmpPos+1, aTmpFont ); aTmpFont.SetPhysFont(*GetRefDevice()); ImplInitDigitMode(*GetRefDevice(), aTmpFont.GetLanguage()); @@ -1128,8 +1133,8 @@ bool ImpEditEngine::CreateLines( sal_Int32 nPara, sal_uInt32 nStartPosY ) OUString aFieldValue = static_cast<const EditCharAttribField*>(pNextFeature)->GetFieldValue(); // get size, but also DXArray to allow length information in line breaking below std::vector<sal_Int32> aTmpDXArray; - pPortion->GetSize() = aTmpFont.QuickGetTextSize(GetRefDevice(), - aFieldValue, 0, aFieldValue.getLength(), &aTmpDXArray); + pPortion->SetSize(aTmpFont.QuickGetTextSize(GetRefDevice(), + aFieldValue, 0, aFieldValue.getLength(), &aTmpDXArray)); // So no scrolling for oversized fields if ( pPortion->GetSize().Width() > nXWidth ) @@ -1234,27 +1239,35 @@ bool ImpEditEngine::CreateLines( sal_Int32 nPara, sal_uInt32 nStartPosY ) if (bContinueLastPortion) { Size aSize( aTmpFont.QuickGetTextSize( GetRefDevice(), - pParaPortion->GetNode()->GetString(), nTmpPos, nPortionLen, &aBuf )); - pPortion->GetSize().AdjustWidth(aSize.Width() ); + pParaPortion->GetNode()->GetString(), nTmpPos, nPortionLen, &aCharPositionArray )); + pPortion->adjustSize(aSize.Width(), 0); if (pPortion->GetSize().Height() < aSize.Height()) - pPortion->GetSize().setHeight( aSize.Height() ); + pPortion->setHeight(aSize.Height()); } else { - pPortion->GetSize() = aTmpFont.QuickGetTextSize( GetRefDevice(), - pParaPortion->GetNode()->GetString(), nTmpPos, nPortionLen, &aBuf ); + for (auto n : aCharPositionArray) + printf ("%d ", n); + printf ("\n"); + //GetRefDevice()->SetText + auto aSize = aTmpFont.QuickGetTextSize(GetRefDevice(), pParaPortion->GetNode()->GetString(), nTmpPos, nPortionLen, &aCharPositionArray); + pPortion->SetSize(aSize); + printf ("SDDDDD %ld %ld - %ld %ld\n", aSize.Width(), aSize.Height(), aTmpFont.GetFontSize().Width(), aTmpFont.GetFontSize().Height()); } // #i9050# Do Kerning also behind portions... if ( ( aTmpFont.GetFixKerning() > 0 ) && ( ( nTmpPos + nPortionLen ) < pNode->Len() ) ) - pPortion->GetSize().AdjustWidth(aTmpFont.GetFixKerning() ); + pPortion->adjustSize(aTmpFont.GetFixKerning(), 0); if ( IsFixedCellHeight() ) - pPortion->GetSize().setHeight( ImplCalculateFontIndependentLineSpacing( aTmpFont.GetFontHeight() ) ); + { + printf ("IsFixedCellHeight - true\n"); + pPortion->setHeight( ImplCalculateFontIndependentLineSpacing( aTmpFont.GetFontHeight() ) ); + } // The array is generally flattened at the beginning // => Always simply quick inserts. size_t nPos = nTmpPos - pLine->GetStart(); EditLine::CharPosArrayType& rArray = pLine->GetCharPosArray(); - rArray.insert( rArray.begin() + nPos, aBuf.data(), aBuf.data() + nPortionLen); + rArray.insert( rArray.begin() + nPos, aCharPositionArray.data(), aCharPositionArray.data() + nPortionLen); // And now check for Compression: if ( !bContinueLastPortion && nPortionLen && GetAsianCompressionMode() != CharCompressType::NONE ) @@ -1280,7 +1293,7 @@ bool ImpEditEngine::CreateLines( sal_Int32 nPara, sal_uInt32 nStartPosY ) { tools::Long nExtraSpace = pPortion->GetSize().Height()/5; nExtraSpace = GetXValue( nExtraSpace ); - pPortion->GetSize().AdjustWidth(nExtraSpace ); + pPortion->adjustSize(nExtraSpace, 0); nTmpWidth += nExtraSpace; } } @@ -1326,7 +1339,7 @@ bool ImpEditEngine::CreateLines( sal_Int32 nPara, sal_uInt32 nStartPosY ) aCurrentTab.bValid = false; } TextPortion& rTabPortion = pParaPortion->GetTextPortions()[aCurrentTab.nTabPortion]; - rTabPortion.GetSize().setWidth( aCurrentTab.nTabPos - aCurrentTab.nStartPosX - nW - nStartX ); + rTabPortion.setWidth( aCurrentTab.nTabPos - aCurrentTab.nStartPosX - nW - nStartX ); nTmpWidth = aCurrentTab.nStartPosX + rTabPortion.GetSize().Width() + nWidthAfterTab; } @@ -1578,7 +1591,7 @@ bool ImpEditEngine::CreateLines( sal_Int32 nPara, sal_uInt32 nStartPosY ) { pLine->GetCharPosArray()[ nPosInArray ] = nNewValue; } - rTP.GetSize().AdjustWidth(n ); + rTP.adjustSize(n, 0); } pLine->SetTextWidth( aTextSize.Width() ); @@ -1803,9 +1816,9 @@ void ImpEditEngine::CreateAndInsertEmptyLine( ParaPortion* pParaPortion ) aTmpFont.SetPhysFont(*pRefDev); TextPortion* pDummyPortion = new TextPortion( 0 ); - pDummyPortion->GetSize() = aTmpFont.GetPhysTxtSize( pRefDev ); + pDummyPortion->SetSize(aTmpFont.GetPhysTxtSize(pRefDev)); if ( IsFixedCellHeight() ) - pDummyPortion->GetSize().setHeight( ImplCalculateFontIndependentLineSpacing( aTmpFont.GetFontHeight() ) ); + pDummyPortion->setHeight( ImplCalculateFontIndependentLineSpacing( aTmpFont.GetFontHeight() ) ); pParaPortion->GetTextPortions().Append(pDummyPortion); FormatterFontMetric aFormatterMetrics; RecalcFormatterFontMetrics( aFormatterMetrics, aTmpFont ); @@ -2140,7 +2153,7 @@ void ImpEditEngine::ImpBreakLine( ParaPortion* pParaPortion, EditLine* pLine, Te DBG_ASSERT( rTP.GetKind() == PortionKind::TEXT, "BlankRubber: No TextPortion!" ); DBG_ASSERT( nBreakPos > pLine->GetStart(), "SplitTextPortion at the beginning of the line?" ); sal_Int32 nPosInArray = nBreakPos - 1 - pLine->GetStart(); - rTP.GetSize().setWidth( ( nPosInArray && ( rTP.GetLen() > 1 ) ) ? pLine->GetCharPosArray()[ nPosInArray-1 ] : 0 ); + rTP.setWidth( ( nPosInArray && ( rTP.GetLen() > 1 ) ) ? pLine->GetCharPosArray()[ nPosInArray-1 ] : 0 ); if (o3tl::make_unsigned(nPosInArray) < pLine->GetCharPosArray().size()) { pLine->GetCharPosArray()[ nPosInArray ] = rTP.GetSize().Width(); @@ -2159,7 +2172,7 @@ void ImpEditEngine::ImpBreakLine( ParaPortion* pParaPortion, EditLine* pLine, Te pHyphPortion->SetLen( nAltDelChar ); if (cAlternateReplChar && !bAltFullLeft) pHyphPortion->SetExtraValue( cAlternateReplChar ); // Correct width of the portion above: - rPrev.GetSize().setWidth( + rPrev.setWidth( pLine->GetCharPosArray()[ nBreakPos-1 - pLine->GetStart() - nAltDelChar ] ); } @@ -2167,8 +2180,7 @@ void ImpEditEngine::ImpBreakLine( ParaPortion* pParaPortion, EditLine* pLine, Te SvxFont aFont; SeekCursor( pParaPortion->GetNode(), nBreakPos, aFont ); aFont.SetPhysFont(*GetRefDevice()); - pHyphPortion->GetSize().setHeight( GetRefDevice()->GetTextHeight() ); - pHyphPortion->GetSize().setWidth( GetRefDevice()->GetTextWidth( CH_HYPH ) ); + pHyphPortion->SetSize(Size(GetRefDevice()->GetTextHeight(), GetRefDevice()->GetTextWidth(CH_HYPH))); pParaPortion->GetTextPortions().Insert(++nEndPortion, pHyphPortion); } @@ -2251,7 +2263,7 @@ void ImpEditEngine::ImpAdjustBlocks( ParaPortion* pParaPortion, EditLine* pLine, // For the last character the portion must stop behind the blank // => Simplify correction: DBG_ASSERT( ( nPortionStart + rLastPortion.GetLen() ) == ( nLastChar+1 ), "Blank actually not at the end of the portion!?"); - rLastPortion.GetSize().AdjustWidth( -nBlankWidth ); + rLastPortion.adjustSize(-nBlankWidth, 0); nRemainingSpace += nBlankWidth; } pLine->GetCharPosArray()[nLastChar-nFirstChar] -= nBlankWidth; @@ -2288,9 +2300,11 @@ void ImpEditEngine::ImpAdjustBlocks( ParaPortion* pParaPortion, EditLine* pLine, TextPortion& rLastPortion = pParaPortion->GetTextPortions()[ nPortion ]; // The width of the portion: - rLastPortion.GetSize().AdjustWidth(nMore4Everyone ); - if ( nSomeExtraSpace ) - rLastPortion.GetSize().AdjustWidth( 1 ); + rLastPortion.adjustSize(nMore4Everyone, 0); + if (nSomeExtraSpace) + { + rLastPortion.adjustSize(1, 0); + } // Correct positions in array sal_Int32 nPortionEnd = nPortionStart + rLastPortion.GetLen(); @@ -2546,7 +2560,7 @@ sal_Int32 ImpEditEngine::SplitTextPortion( ParaPortion* pPortion, sal_Int32 nPos { // No new GetTextSize, instead use values from the Array: assert( nPos > pCurLine->GetStart() && "SplitTextPortion at the beginning of the line?" ); - pTextPortion->GetSize().setWidth( pCurLine->GetCharPosArray()[ nPos-pCurLine->GetStart()-1 ] ); + pTextPortion->setWidth(pCurLine->GetCharPosArray()[nPos - pCurLine->GetStart() - 1]); if ( pTextPortion->GetExtraInfos() && pTextPortion->GetExtraInfos()->bCompressed ) { @@ -2564,7 +2578,7 @@ sal_Int32 ImpEditEngine::SplitTextPortion( ParaPortion* pPortion, sal_Int32 nPos } } else - pTextPortion->GetSize().setWidth( -1 ); + pTextPortion->setWidth(-1); return nSplitPortion; } @@ -2702,7 +2716,7 @@ void ImpEditEngine::RecalcTextPortion( ParaPortion* pParaPortion, sal_Int32 nSta FindPortion( nStartPos, nPortionStart ); TextPortion& rTP = pParaPortion->GetTextPortions()[ nTP ]; rTP.SetLen( rTP.GetLen() + nNewChars ); - rTP.GetSize().setWidth( -1 ); + rTP.setWidth(-1); } } else @@ -2768,7 +2782,7 @@ void ImpEditEngine::RecalcTextPortion( ParaPortion* pParaPortion, sal_Int32 nSta TextPortion& rPrev = pParaPortion->GetTextPortions()[nLastPortion - 1]; DBG_ASSERT( rPrev.GetKind() == PortionKind::TEXT, "Portion?!" ); rPrev.SetLen( rPrev.GetLen() + pTP->GetLen() ); - rPrev.GetSize().setWidth( -1 ); + rPrev.setWidth(-1); } pParaPortion->GetTextPortions().Remove( nLastPortion ); } @@ -4743,7 +4757,7 @@ bool ImpEditEngine::ImplCalcAsianCompression(ContentNode* pNode, if ( bCompressed && ( n100thPercentFromMax == 10000 ) ) pTextPortion->GetExtraInfos()->nWidthFullCompression = nNewPortionWidth; - pTextPortion->GetSize().setWidth( nNewPortionWidth ); + pTextPortion->setWidth(nNewPortionWidth); if ( pTextPortion->GetExtraInfos() && ( n100thPercentFromMax != 10000 ) ) { @@ -4753,7 +4767,7 @@ bool ImpEditEngine::ImplCalcAsianCompression(ContentNode* pNode, nShrink /= 10000; tools::Long nNewWidth = pTextPortion->GetExtraInfos()->nOrgWidth - nShrink; if ( nNewWidth < pTextPortion->GetSize().Width() ) - pTextPortion->GetSize().setWidth( nNewWidth ); + pTextPortion->setWidth(nNewWidth); } } return bCompressed; @@ -4795,7 +4809,7 @@ void ImpEditEngine::ImplExpandCompressedPortions( EditLine* pLine, ParaPortion* { pTP = pTP2; pTP->GetExtraInfos()->bCompressed = false; - pTP->GetSize().setWidth( pTP->GetExtraInfos()->nOrgWidth ); + pTP->setWidth(pTP->GetExtraInfos()->nOrgWidth); if ( nCompressPercent ) { sal_Int32 nTxtPortion = pParaPortion->GetTextPortions().GetPos( pTP ); diff --git a/editeng/source/items/svxfont.cxx b/editeng/source/items/svxfont.cxx index 9911beec85b0..0f29473d630a 100644 --- a/editeng/source/items/svxfont.cxx +++ b/editeng/source/items/svxfont.cxx @@ -477,9 +477,13 @@ Size SvxFont::GetPhysTxtSize( const OutputDevice *pOut ) Size SvxFont::QuickGetTextSize( const OutputDevice *pOut, const OUString &rTxt, const sal_Int32 nIdx, const sal_Int32 nLen, std::vector<sal_Int32>* pDXArray ) const { - if ( !IsCaseMap() && !IsFixKerning() ) - return Size( GetTextArray( pOut, rTxt, pDXArray, nIdx, nLen ), - pOut->GetTextHeight() ); + if (!IsCaseMap() && !IsFixKerning()) + { + printf ("SvxFont TextHeight %ld\n", pOut->GetTextHeight()); + auto nWidth = GetTextArray(pOut, rTxt, pDXArray, nIdx, nLen); + auto nHeight = pOut->GetTextHeight(); + return Size(nWidth, nHeight); + } std::vector<sal_Int32> aDXArray; diff --git a/svx/source/svdraw/svdotext.cxx b/svx/source/svdraw/svdotext.cxx index 53b32ddf28b2..b37dfde6d891 100644 --- a/svx/source/svdraw/svdotext.cxx +++ b/svx/source/svdraw/svdotext.cxx @@ -199,6 +199,7 @@ SdrTextObj::~SdrTextObj() void SdrTextObj::FitFrameToTextSize() { + printf ("FitFrameToTextSize\n"); ImpJustifyRect(maRect); SdrText* pText = getActiveText(); @@ -866,6 +867,8 @@ std::optional<OutlinerParaObject> SdrTextObj::CreateEditOutlinerParaObject() con void SdrTextObj::ImpSetCharStretching(SdrOutliner& rOutliner, const Size& rTextSize, const Size& rShapeSize, Fraction& rFitXCorrection) { + printf ("SdrTextObj::ImpSetCharStretching\n"); + OutputDevice* pOut = rOutliner.GetRefDevice(); bool bNoStretching(false); commit a5af83c18580e03cbe534d9b65e632b87d70d36f Author: Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk> AuthorDate: Thu Oct 13 10:12:27 2022 +0200 Commit: Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk> CommitDate: Mon Oct 17 21:48:11 2022 +0200 add division of length units to LengthUnitBase Reult of division of 2 length units is a ratio (double). Change-Id: I3d0e605492ca0af93580de138b5bc0c3e7877fa5 diff --git a/basegfx/test/LengthUnitTest.cxx b/basegfx/test/LengthUnitTest.cxx index 8861a2ade316..11095f3222b5 100644 --- a/basegfx/test/LengthUnitTest.cxx +++ b/basegfx/test/LengthUnitTest.cxx @@ -32,11 +32,6 @@ public: CPPUNIT_ASSERT_EQUAL(sal_Int64(34200000000), cm3.raw()); CPPUNIT_ASSERT_DOUBLES_EQUAL(95000.0, cm3.as_cm(), 1e-4); - gfx::Length cm4(1_cm); - cm4 /= 2; - CPPUNIT_ASSERT_EQUAL(sal_Int64(180000), cm4.raw()); - CPPUNIT_ASSERT_DOUBLES_EQUAL(0.5, cm4.as_cm(), 1e-4); - // (635 * 20) + 3 * (635 * 15) = 41275EMU gfx::Length pt = 1_pt + 3_px; CPPUNIT_ASSERT_DOUBLES_EQUAL(3.25, pt.as_pt(), 1e-4); @@ -92,6 +87,23 @@ public: CPPUNIT_ASSERT_EQUAL(sal_Int64(3636), bb.raw()); } + void testDivision() + { + gfx::Length cm(1_cm); + cm /= 2; + CPPUNIT_ASSERT_EQUAL(sal_Int64(180000), cm.raw()); + CPPUNIT_ASSERT_DOUBLES_EQUAL(0.5, cm.as_cm(), 1e-4); + + gfx::Length cm4(1_cm); + cm4 /= 2.0; + CPPUNIT_ASSERT_EQUAL(sal_Int64(180000), cm4.raw()); + CPPUNIT_ASSERT_DOUBLES_EQUAL(0.5, cm4.as_cm(), 1e-4); + + // with division of 2 length units you get a ratio + double aRatio = gfx::Length::hmm(10) / gfx::Length::hmm(20); + CPPUNIT_ASSERT_DOUBLES_EQUAL(0.5, aRatio, 1e-9); + } + void testInRange() { gfx::Range2DL aRange(1_cm, 2_cm, 2_cm, 30_mm); @@ -159,6 +171,7 @@ public: CPPUNIT_TEST_SUITE(LengthTest); CPPUNIT_TEST(testBasic); + CPPUNIT_TEST(testDivision); CPPUNIT_TEST(testInRange); CPPUNIT_TEST(testInTuple); CPPUNIT_TEST(testConversionToRectanle); diff --git a/include/basegfx/units/LengthUnitBase.hxx b/include/basegfx/units/LengthUnitBase.hxx index c1d8a8e8e431..30daccef8015 100644 --- a/include/basegfx/units/LengthUnitBase.hxx +++ b/include/basegfx/units/LengthUnitBase.hxx @@ -173,14 +173,25 @@ inline LengthUnitBase<T> operator-(LengthUnitBase<T> lhs, const LengthUnitBase<T return lhs -= rhs; } +/// Multiplication of a length unit with a scalar value. +/// example 1cm * 2 = 2cm template <typename T> inline LengthUnitBase<T> operator*(LengthUnitBase<T> lhs, const long rhs) { return lhs *= rhs; } +/// Division of a length unit with a scalar value. +/// example 1cm / 2 = 0.5cm template <typename T> inline LengthUnitBase<T> operator/(LengthUnitBase<T> lhs, const long rhs) { return lhs /= rhs; } +/// Division of 2 length units, which results in a ratio. +/// example 1cm / 2cm = 0.5 +template <typename T> inline double operator/(LengthUnitBase<T> lhs, const LengthUnitBase<T> rhs) +{ + return lhs.raw() / double(rhs.raw()); +} + } // end namespace gfx commit 6503ed67696754feaf3ba88f9992347aeae67410 Author: Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk> AuthorDate: Fri Sep 16 13:15:03 2022 +0200 Commit: Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk> CommitDate: Mon Oct 17 21:48:11 2022 +0200 svx: change SdrPage left,right,upper,lower border to use gfx::Length Change-Id: I7cde7bccfe17cab27eb643d851509b68e128842d diff --git a/filter/source/svg/svgfilter.cxx b/filter/source/svg/svgfilter.cxx index 60bafd2fa1bb..abf50cf476a0 100644 --- a/filter/source/svg/svgfilter.cxx +++ b/filter/source/svg/svgfilter.cxx @@ -321,12 +321,12 @@ bool SVGFilter::filterImpressOrDraw( const Sequence< PropertyValue >& rDescripto // in comparison. Use a common scaling factor for hor/ver to not get // asynchronous border distances, though. All in all this will adapt borders // nicely and is based on office-defaults for standard-page-border-sizes. - const Size aPageSize = gfx::length::toSizeHmm(pTargetSdrPage->getSize()); + const gfx::Size2DL aPageSize = pTargetSdrPage->getSize(); const double fBorderRelation(( - static_cast< double >(pTargetSdrPage->GetLeftBorder()) / aPageSize.Width() + - static_cast< double >(pTargetSdrPage->GetRightBorder()) / aPageSize.Width() + - static_cast< double >(pTargetSdrPage->GetUpperBorder()) / aPageSize.Height() + - static_cast< double >(pTargetSdrPage->GetLowerBorder()) / aPageSize.Height()) / 4.0); + pTargetSdrPage->getLeftBorder().as_emu() / aPageSize.getWidth().as_emu() + + pTargetSdrPage->getRightBorder().as_emu() / aPageSize.getWidth().as_emu() + + pTargetSdrPage->getUpperBorder().as_emu() / aPageSize.getHeight().as_emu() + + pTargetSdrPage->getLowerBorder().as_emu() / aPageSize.getHeight().as_emu()) / 4.0); const tools::Long nAllBorder(basegfx::fround((aGraphicSize.Width() + aGraphicSize.Height()) * fBorderRelation * 0.5)); // Adapt PageSize and Border stuff. To get all MasterPages and PresObjs diff --git a/include/svx/svdpage.hxx b/include/svx/svdpage.hxx index ccb7d581695b..0f101b3e6c63 100644 --- a/include/svx/svdpage.hxx +++ b/include/svx/svdpage.hxx @@ -353,6 +353,46 @@ public: void dumpAsXml(xmlTextWriterPtr pWriter) const; }; +class Border +{ +private: + gfx::Length maLeft; + gfx::Length maRight; + gfx::Length maUpper; + gfx::Length maLower; +public: + Border() + : maLeft(0_emu) + , maRight(0_emu) + , maUpper(0_emu) + , maLower(0_emu) + {} + + gfx::Length const& getLeft() const { return maLeft; } + gfx::Length const& getRight() const { return maRight; } + gfx::Length const& getUpper() const { return maUpper; } + gfx::Length const& getLower() const { return maLower; } + + void setLeft(gfx::Length const& rLeft) + { + maLeft = rLeft; + } + + void setRight(gfx::Length const& rRight) + { + maRight = rRight; + } + + void setUpper(gfx::Length const& rUpper) + { + maUpper = rUpper; + } + + void setLower(gfx::Length const& rLower) + { + maLower = rLower; + } +}; /** A SdrPage contains exactly one SdrObjList and a description of the physical @@ -417,10 +457,8 @@ private: private: gfx::Size2DL maSize; - sal_Int32 mnBorderLeft; // left page margin - sal_Int32 mnBorderUpper; // top page margin - sal_Int32 mnBorderRight; // right page margin - sal_Int32 mnBorderLower; // bottom page margin + Border maBorder; + bool mbBackgroundFullSize = false; ///< Background object to represent the whole page. std::unique_ptr<SdrLayerAdmin> mpLayerAdmin; @@ -496,25 +534,35 @@ public: gfx::Range2DL getInnerRectangle() const { - auto left = gfx::Length::hmm(mnBorderLeft); - auto upper = gfx::Length::hmm(mnBorderUpper); - auto right = gfx::Length::hmm(mnBorderRight); - auto lower = gfx::Length::hmm(mnBorderLower); - - return gfx::Range2DL(left, upper, maSize.getWidth() - right, maSize.getHeight() - lower); + return gfx::Range2DL(maBorder.getLeft(), maBorder.getUpper(), + maSize.getWidth() - maBorder.getRight(), + maSize.getHeight() - maBorder.getLower()); } virtual void SetOrientation(Orientation eOri); virtual Orientation GetOrientation() const; - virtual void SetBorder(sal_Int32 nLft, sal_Int32 nUpp, sal_Int32 nRgt, sal_Int32 Lwr); + + virtual Border const& getBorder() const + { + return maBorder; + } + + virtual void setBorder(Border const& rBorder) + { + maBorder = rBorder; + } + + virtual void SetBorder(sal_Int32 nLeft, sal_Int32 nUpper, sal_Int32 nRight, sal_Int32 Lower); virtual void SetLeftBorder(sal_Int32 nBorder); virtual void SetUpperBorder(sal_Int32 nBorder); virtual void SetRightBorder(sal_Int32 nBorder); virtual void SetLowerBorder(sal_Int32 nBorder); - sal_Int32 GetLeftBorder() const; - sal_Int32 GetUpperBorder() const; - sal_Int32 GetRightBorder() const; - sal_Int32 GetLowerBorder() const; + + gfx::Length getLeftBorder() const { return maBorder.getLeft(); } + gfx::Length getUpperBorder() const { return maBorder.getUpper(); } + gfx::Length getRightBorder() const { return maBorder.getRight(); } + gfx::Length getLowerBorder() const { return maBorder.getLower(); } + void SetBackgroundFullSize(bool bIn); bool IsBackgroundFullSize() const; diff --git a/sd/source/core/drawdoc.cxx b/sd/source/core/drawdoc.cxx index 1aaed9622fa3..565996518874 100644 --- a/sd/source/core/drawdoc.cxx +++ b/sd/source/core/drawdoc.cxx @@ -444,8 +444,8 @@ void SdDrawDocument::AdaptPageSizeForAllPages( this, pPage, pPage->GetSizeHmm(), - pPage->GetLeftBorder(), pPage->GetRightBorder(), - pPage->GetUpperBorder(), pPage->GetLowerBorder(), + pPage->getLeftBorder().as_hmm(), pPage->getRightBorder().as_hmm(), + pPage->getUpperBorder().as_hmm(), pPage->getLowerBorder().as_hmm(), pPage->GetOrientation(), pPage->GetPaperBin(), pPage->IsBackgroundFullSize(), @@ -499,8 +499,10 @@ void SdDrawDocument::AdaptPageSizeForAllPages( this, pPage, pPage->GetSizeHmm(), - pPage->GetLeftBorder(), pPage->GetRightBorder(), - pPage->GetUpperBorder(), pPage->GetLowerBorder(), + pPage->getLeftBorder().as_hmm(), + pPage->getRightBorder().as_hmm(), + pPage->getUpperBorder().as_hmm(), + pPage->getLowerBorder().as_hmm(), pPage->GetOrientation(), pPage->GetPaperBin(), pPage->IsBackgroundFullSize(), diff --git a/sd/source/core/drawdoc2.cxx b/sd/source/core/drawdoc2.cxx index 83033715d2b4..c97952c239c2 100644 --- a/sd/source/core/drawdoc2.cxx +++ b/sd/source/core/drawdoc2.cxx @@ -512,7 +512,7 @@ void SdDrawDocument::CreateFirstPages( SdDrawDocument const * pRefDocument /* = if( pRefPage ) { pHandoutPage->setSize(pRefPage->getSize()); - pHandoutPage->SetBorder( pRefPage->GetLeftBorder(), pRefPage->GetUpperBorder(), pRefPage->GetRightBorder(), pRefPage->GetLowerBorder() ); + pHandoutPage->setBorder(pRefPage->getBorder()); } else { @@ -528,10 +528,7 @@ void SdDrawDocument::CreateFirstPages( SdDrawDocument const * pRefDocument /* = rtl::Reference<SdPage> pHandoutMPage = AllocSdPage(true); pHandoutMPage->setSize(pHandoutPage->getSize()); pHandoutMPage->SetPageKind(PageKind::Handout); - pHandoutMPage->SetBorder( pHandoutPage->GetLeftBorder(), - pHandoutPage->GetUpperBorder(), - pHandoutPage->GetRightBorder(), - pHandoutPage->GetLowerBorder() ); + pHandoutMPage->setBorder(pHandoutPage->getBorder()); InsertMasterPage(pHandoutMPage.get(), 0); pHandoutPage->TRG_SetMasterPage( *pHandoutMPage ); @@ -551,7 +548,7 @@ void SdDrawDocument::CreateFirstPages( SdDrawDocument const * pRefDocument /* = if( pRefPage ) { pPage->setSize(pRefPage->getSize()); - pPage->SetBorder( pRefPage->GetLeftBorder(), pRefPage->GetUpperBorder(), pRefPage->GetRightBorder(), pRefPage->GetLowerBorder() ); + pPage->setBorder(pRefPage->getBorder()); } else if (meDocType == DocumentType::Draw) { @@ -588,7 +585,7 @@ void SdDrawDocument::CreateFirstPages( SdDrawDocument const * pRefDocument /* = // Impress: always use screen format, landscape. Size aSz( SvxPaperInfo::GetPaperSize(PAPER_SCREEN_16_9, MapUnit::Map100thMM) ); pPage->setSize({ gfx::Length::hmm(aSz.Height()), gfx::Length::hmm(aSz.Width()) }); - pPage->SetBorder(0, 0, 0, 0); + pPage->setBorder(Border()); } InsertPage(pPage.get(), 1); @@ -602,10 +599,7 @@ void SdDrawDocument::CreateFirstPages( SdDrawDocument const * pRefDocument /* = // Insert master page, then register this with the page rtl::Reference<SdPage> pMPage = AllocSdPage(true); pMPage->setSize(pPage->getSize()); - pMPage->SetBorder( pPage->GetLeftBorder(), - pPage->GetUpperBorder(), - pPage->GetRightBorder(), - pPage->GetLowerBorder() ); + pMPage->setBorder(pPage->getBorder()); InsertMasterPage(pMPage.get(), 1); pPage->TRG_SetMasterPage( *pMPage ); if( bClipboard ) @@ -620,7 +614,7 @@ void SdDrawDocument::CreateFirstPages( SdDrawDocument const * pRefDocument /* = if( pRefPage ) { pNotesPage->setSize(pRefPage->getSize()); - pNotesPage->SetBorder( pRefPage->GetLeftBorder(), pRefPage->GetUpperBorder(), pRefPage->GetRightBorder(), pRefPage->GetLowerBorder() ); + pNotesPage->setBorder(pRefPage->getBorder()); } else { @@ -645,10 +639,7 @@ void SdDrawDocument::CreateFirstPages( SdDrawDocument const * pRefDocument /* = rtl::Reference<SdPage> pNotesMPage = AllocSdPage(true); pNotesMPage->setSize(pNotesPage->getSize()); pNotesMPage->SetPageKind(PageKind::Notes); - pNotesMPage->SetBorder( pNotesPage->GetLeftBorder(), - pNotesPage->GetUpperBorder(), - pNotesPage->GetRightBorder(), - pNotesPage->GetLowerBorder() ); + pNotesMPage->setBorder(pNotesPage->getBorder()); InsertMasterPage(pNotesMPage.get(), 2); pNotesPage->TRG_SetMasterPage( *pNotesMPage ); if( bClipboard ) @@ -1094,10 +1085,7 @@ void SdDrawDocument::CheckMasterPages() if( pRefNotesPage ) { pNewNotesPage->setSize(pRefNotesPage->getSize()); - pNewNotesPage->SetBorder( pRefNotesPage->GetLeftBorder(), - pRefNotesPage->GetUpperBorder(), - pRefNotesPage->GetRightBorder(), - pRefNotesPage->GetLowerBorder() ); + pNewNotesPage->setBorder(pRefNotesPage->getBorder()); } InsertMasterPage(pNewNotesPage.get(), nPage ); pNewNotesPage->SetLayoutName( pPage->GetLayoutName() ); @@ -1164,10 +1152,7 @@ sal_uInt16 SdDrawDocument::CreatePage ( // Set the size here since else the presobj autolayout // will be wrong. pStandardPage->setSize(pPreviousStandardPage->getSize()); - pStandardPage->SetBorder( pPreviousStandardPage->GetLeftBorder(), - pPreviousStandardPage->GetUpperBorder(), - pPreviousStandardPage->GetRightBorder(), - pPreviousStandardPage->GetLowerBorder() ); + pStandardPage->setBorder(pPreviousStandardPage->getBorder()); // Use master page of current page. pStandardPage->TRG_SetMasterPage(pPreviousStandardPage->TRG_GetMasterPage()); @@ -1353,10 +1338,7 @@ void SdDrawDocument::SetupNewPage ( if (pPreviousPage != nullptr) { pPage->setSize(pPreviousPage->getSize()); - pPage->SetBorder( pPreviousPage->GetLeftBorder(), - pPreviousPage->GetUpperBorder(), - pPreviousPage->GetRightBorder(), - pPreviousPage->GetLowerBorder() ); + pPage->setBorder(pPreviousPage->getBorder()); } pPage->SetName(sPageName); diff --git a/sd/source/core/drawdoc3.cxx b/sd/source/core/drawdoc3.cxx index c7dd8a0cfa30..1a1ac33217ac 100644 --- a/sd/source/core/drawdoc3.cxx +++ b/sd/source/core/drawdoc3.cxx @@ -410,18 +410,12 @@ bool SdDrawDocument::InsertBookmarkAsPage( // Note that the pointers are used later on as general page pointers. SdPage* pRefPage = GetSdPage(0, PageKind::Standard); Size aSize = pRefPage->GetSizeHmm(); - sal_Int32 nLeft = pRefPage->GetLeftBorder(); - sal_Int32 nRight = pRefPage->GetRightBorder(); - sal_Int32 nUpper = pRefPage->GetUpperBorder(); - sal_Int32 nLower = pRefPage->GetLowerBorder(); + auto aBorder = pRefPage->getBorder(); Orientation eOrient = pRefPage->GetOrientation(); SdPage* pNPage = GetSdPage(0, PageKind::Notes); Size aNSize = pNPage->GetSizeHmm(); - sal_Int32 nNLeft = pNPage->GetLeftBorder(); - sal_Int32 nNRight = pNPage->GetRightBorder(); - sal_Int32 nNUpper = pNPage->GetUpperBorder(); - sal_Int32 nNLower = pNPage->GetLowerBorder(); + auto aNBorder = pNPage->getBorder(); Orientation eNOrient = pNPage->GetOrientation(); // Adapt page size and margins to those of the later pages? @@ -448,10 +442,10 @@ bool SdDrawDocument::InsertBookmarkAsPage( SdPage* pBMPage = pBookmarkDoc->GetSdPage(0,PageKind::Standard); if (pBMPage->getSize() != pRefPage->getSize() || - pBMPage->GetLeftBorder() != pRefPage->GetLeftBorder() || - pBMPage->GetRightBorder() != pRefPage->GetRightBorder() || - pBMPage->GetUpperBorder() != pRefPage->GetUpperBorder() || - pBMPage->GetLowerBorder() != pRefPage->GetLowerBorder()) + pBMPage->getBorder().getLeft() != pRefPage->getBorder().getLeft() || + pBMPage->getBorder().getRight() != pRefPage->getBorder().getRight() || + pBMPage->getBorder().getUpper() != pRefPage->getBorder().getUpper() || + pBMPage->getBorder().getLower() != pRefPage->getBorder().getLower()) { OUString aStr(SdResId(STR_SCALE_OBJECTS)); std::unique_ptr<weld::MessageDialog> xQueryBox(Application::CreateMessageDialog(nullptr, @@ -833,11 +827,13 @@ bool SdDrawDocument::InsertBookmarkAsPage( if (bScaleObjects) { - ::tools::Rectangle aBorderRect(nLeft, nUpper, nRight, nLower); + ::tools::Rectangle aBorderRect( + aBorder.getLeft().as_hmm(), aBorder.getUpper().as_hmm(), + aBorder.getRight().as_hmm(), aBorder.getLower().as_hmm()); pRefPage->ScaleObjects(aSize, aBorderRect, true); } pRefPage->setSize(gfx::length::fromSizeHmm(aSize)); - pRefPage->SetBorder(nLeft, nUpper, nRight, nLower); + pRefPage->setBorder(aBorder); pRefPage->SetOrientation( eOrient ); if( bRemoveEmptyPresObj ) @@ -852,12 +848,14 @@ bool SdDrawDocument::InsertBookmarkAsPage( if (bScaleObjects) { - ::tools::Rectangle aBorderRect(nNLeft, nNUpper, nNRight, nNLower); + ::tools::Rectangle aBorderRect( + aNBorder.getLeft().as_hmm(), aNBorder.getUpper().as_hmm(), + aNBorder.getRight().as_hmm(), aNBorder.getLower().as_hmm()); pRefPage->ScaleObjects(aNSize, aBorderRect, true); } pRefPage->setSize(gfx::length::fromSizeHmm(aNSize)); - pRefPage->SetBorder(nNLeft, nNUpper, nNRight, nNLower); + pRefPage->setBorder(aNBorder); pRefPage->SetOrientation( eNOrient ); if( bRemoveEmptyPresObj ) @@ -875,22 +873,27 @@ bool SdDrawDocument::InsertBookmarkAsPage( { if (bScaleObjects) { - ::tools::Rectangle aBorderRect(nLeft, nUpper, nRight, nLower); + ::tools::Rectangle aBorderRect( + aBorder.getLeft().as_hmm(), aBorder.getUpper().as_hmm(), + aBorder.getRight().as_hmm(), aBorder.getLower().as_hmm()); + pRefPage->ScaleObjects(aSize, aBorderRect, true); } pRefPage->setSize(gfx::length::fromSizeHmm(aNSize)); - pRefPage->SetBorder(nLeft, nUpper, nRight, nLower); + pRefPage->setBorder(aBorder); pRefPage->SetOrientation( eOrient ); } else // Can only be notes { if (bScaleObjects) { - ::tools::Rectangle aBorderRect(nNLeft, nNUpper, nNRight, nNLower); + ::tools::Rectangle aBorderRect( + aNBorder.getLeft().as_hmm(), aNBorder.getUpper().as_hmm(), + aNBorder.getRight().as_hmm(), aNBorder.getLower().as_hmm()); pRefPage->ScaleObjects(aNSize, aBorderRect, true); } pRefPage->setSize(gfx::length::fromSizeHmm(aNSize)); - pRefPage->SetBorder(nNLeft, nNUpper, nNRight, nNLower); + pRefPage->setBorder(aNBorder); pRefPage->SetOrientation( eNOrient ); } @@ -1697,30 +1700,24 @@ void SdDrawDocument::SetMasterPage(sal_uInt16 nSdPageNum, if (pSourceDoc != this) { Size aSize = rOldMaster.GetSizeHmm(); - ::tools::Rectangle aBorderRect(rOldMaster.GetLeftBorder(), - rOldMaster.GetUpperBorder(), - rOldMaster.GetRightBorder(), - rOldMaster.GetLowerBorder()); + ::tools::Rectangle aBorderRect(rOldMaster.getLeftBorder().as_hmm(), + rOldMaster.getUpperBorder().as_hmm(), + rOldMaster.getRightBorder().as_hmm(), + rOldMaster.getLowerBorder().as_hmm()); pMaster->ScaleObjects(aSize, aBorderRect, true); pMaster->setSize(rOldMaster.getSize()); - pMaster->SetBorder(rOldMaster.GetLeftBorder(), - rOldMaster.GetUpperBorder(), - rOldMaster.GetRightBorder(), - rOldMaster.GetLowerBorder()); + pMaster->setBorder(rOldMaster.getBorder()); pMaster->SetOrientation( rOldMaster.GetOrientation() ); pMaster->SetAutoLayout(pMaster->GetAutoLayout()); aSize = rOldNotesMaster.GetSizeHmm(); - ::tools::Rectangle aNotesBorderRect(rOldNotesMaster.GetLeftBorder(), - rOldNotesMaster.GetUpperBorder(), - rOldNotesMaster.GetRightBorder(), - rOldNotesMaster.GetLowerBorder()); + ::tools::Rectangle aNotesBorderRect(rOldNotesMaster.getLeftBorder().as_hmm(), + rOldNotesMaster.getUpperBorder().as_hmm(), + rOldNotesMaster.getRightBorder().as_hmm(), + rOldNotesMaster.getLowerBorder().as_hmm()); pNotesMaster->ScaleObjects(aSize, aNotesBorderRect, true); pNotesMaster->setSize(rOldNotesMaster.getSize()); - pNotesMaster->SetBorder(rOldNotesMaster.GetLeftBorder(), - rOldNotesMaster.GetUpperBorder(), - rOldNotesMaster.GetRightBorder(), - rOldNotesMaster.GetLowerBorder()); + pNotesMaster->setBorder(rOldNotesMaster.getBorder()); pNotesMaster->SetOrientation( rOldNotesMaster.GetOrientation() ); pNotesMaster->SetAutoLayout(pNotesMaster->GetAutoLayout()); @@ -1756,10 +1753,7 @@ void SdDrawDocument::SetMasterPage(sal_uInt16 nSdPageNum, pMaster = AllocSdPage(true); pMaster->setSize(pSelectedPage->getSize()); - pMaster->SetBorder(pSelectedPage->GetLeftBorder(), - pSelectedPage->GetUpperBorder(), - pSelectedPage->GetRightBorder(), - pSelectedPage->GetLowerBorder() ); + pMaster->setBorder(pSelectedPage->getBorder()); pMaster->SetName(aName); pMaster->SetLayoutName(aPageLayoutName); InsertMasterPage(pMaster.get()); @@ -1772,10 +1766,7 @@ void SdDrawDocument::SetMasterPage(sal_uInt16 nSdPageNum, pNotesMaster = AllocSdPage(true); pNotesMaster->SetPageKind(PageKind::Notes); pNotesMaster->setSize(pNotes->getSize()); - pNotesMaster->SetBorder(pNotes->GetLeftBorder(), - pNotes->GetUpperBorder(), - pNotes->GetRightBorder(), - pNotes->GetLowerBorder() ); + pNotesMaster->setBorder(pNotes->getBorder()); pNotesMaster->SetName(aName); pNotesMaster->SetLayoutName(aPageLayoutName); InsertMasterPage(pNotesMaster.get()); diff --git a/sd/source/core/sdpage.cxx b/sd/source/core/sdpage.cxx index 6c13ff2f6774..81e51556c46e 100644 --- a/sd/source/core/sdpage.cxx +++ b/sd/source/core/sdpage.cxx @@ -994,18 +994,14 @@ rtl::Reference<SdrObject> SdPage::CreateDefaultPresObj(PresObjKind eObjKind) // create footer objects for standard master page if( mePageKind == PageKind::Standard ) { - const ::tools::Long nLftBorder = GetLeftBorder(); - const ::tools::Long nUppBorder = GetUpperBorder(); - - Point aPos ( nLftBorder, nUppBorder ); + Point aPosition(getBorder().getLeft().as_hmm(), getBorder().getUpper().as_hmm()); Size aSize = GetSizeHmm(); - - aSize.AdjustWidth( -(nLftBorder + GetRightBorder()) ); - aSize.AdjustHeight( -(nUppBorder + GetLowerBorder()) ); + aSize.AdjustWidth(-basegfx::fround((getBorder().getLeft() + getBorder().getRight()).as_hmm())); + aSize.AdjustHeight(-basegfx::fround((getBorder().getUpper() + getBorder().getLower()).as_hmm())); getPresObjProp( *this, sObjKind, sPageKind, propvalue); - aPos.AdjustX(::tools::Long( aSize.Width() * propvalue[2] ) ); - aPos.AdjustY(::tools::Long( aSize.Height() * propvalue[3] ) ); + aPosition.AdjustX(::tools::Long( aSize.Width() * propvalue[2] ) ); + aPosition.AdjustY(::tools::Long( aSize.Height() * propvalue[3] ) ); aSize.setWidth( ::tools::Long( aSize.Width() * propvalue[1] ) ); aSize.setHeight( ::tools::Long( aSize.Height() * propvalue[0] ) ); @@ -1016,18 +1012,17 @@ rtl::Reference<SdrObject> SdPage::CreateDefaultPresObj(PresObjKind eObjKind) } else { - ::tools::Rectangle aRect( aPos, aSize ); + ::tools::Rectangle aRect( aPosition, aSize ); return CreatePresObj( eObjKind, false, aRect ); } } else { // create header&footer objects for handout and notes master + Point aPosition(getBorder().getLeft().as_hmm(), getBorder().getUpper().as_hmm()); Size aPageSize = GetSizeHmm(); - aPageSize.AdjustWidth( -(GetLeftBorder() + GetRightBorder()) ); - aPageSize.AdjustHeight( -(GetUpperBorder() + GetLowerBorder()) ); - - Point aPosition ( GetLeftBorder(), GetUpperBorder() ); + aPageSize.AdjustWidth(-basegfx::fround((getBorder().getLeft() + getBorder().getRight()).as_hmm())); + aPageSize.AdjustHeight(-basegfx::fround((getBorder().getUpper() + getBorder().getLower()).as_hmm())); getPresObjProp( *this, sObjKind, sPageKind, propvalue); int NOTES_HEADER_FOOTER_WIDTH = ::tools::Long(aPageSize.Width() * propvalue[1]); @@ -1086,10 +1081,11 @@ void SdPage::DestroyDefaultPresObj(PresObjKind eObjKind) /****************************************************************** * standard- or note page: title area ******************************************************************/ - Point aTitlePos ( GetLeftBorder(), GetUpperBorder() ); + Point aTitlePos(getBorder().getLeft().as_hmm(), getBorder().getUpper().as_hmm()); Size aTitleSize = GetSizeHmm(); - aTitleSize.AdjustWidth( -(GetLeftBorder() + GetRightBorder()) ); - aTitleSize.AdjustHeight( -(GetUpperBorder() + GetLowerBorder()) ); + aTitleSize.AdjustWidth(-basegfx::fround((getBorder().getLeft() + getBorder().getRight()).as_hmm())); + aTitleSize.AdjustHeight(-basegfx::fround((getBorder().getUpper() + getBorder().getLower()).as_hmm())); + const char* sPageKind = PageKindVector[mePageKind]; if (mePageKind == PageKind::Standard) @@ -1169,10 +1165,10 @@ void SdPage::DestroyDefaultPresObj(PresObjKind eObjKind) { double propvalue[] = {0,0,0,0}; - Point aLayoutPos( GetLeftBorder(), GetUpperBorder() ); + Point aLayoutPos(getBorder().getLeft().as_hmm(), getBorder().getUpper().as_hmm()); Size aLayoutSize = GetSizeHmm(); - aLayoutSize.AdjustWidth( -(GetLeftBorder() + GetRightBorder()) ); - aLayoutSize.AdjustHeight( -(GetUpperBorder() + GetLowerBorder()) ); + aLayoutSize.AdjustWidth(-basegfx::fround((getBorder().getLeft() + getBorder().getRight()).as_hmm())); + aLayoutSize.AdjustHeight(-basegfx::fround((getBorder().getUpper() + getBorder().getLower()).as_hmm())); const char* sPageKind = PageKindVector[mePageKind]; if (mePageKind == PageKind::Standard) @@ -1755,18 +1751,18 @@ void SdPage::setSize(gfx::Size2DL const& rSize) } } -void SdPage::SetBorder(sal_Int32 nLft, sal_Int32 nUpp, sal_Int32 nRgt, sal_Int32 nLwr) +void SdPage::SetBorder(sal_Int32 nLeft, sal_Int32 nUpper, sal_Int32 nRight, sal_Int32 nLower) { - if (nLft != GetLeftBorder() || nUpp != GetUpperBorder() || - nRgt != GetRightBorder() || nLwr != GetLowerBorder() ) + if (gfx::Length::hmm(nLeft) != getBorder().getLeft() || gfx::Length::hmm(nUpper) != getBorder().getUpper() || + gfx::Length::hmm(nRight) != getBorder().getRight() || gfx::Length::hmm(nLower) != getBorder().getLower()) { - FmFormPage::SetBorder(nLft, nUpp, nRgt, nLwr); + FmFormPage::SetBorder(nLeft, nUpper, nRight, nLower); } } void SdPage::SetLeftBorder(sal_Int32 nBorder) { - if (nBorder != GetLeftBorder() ) + if (gfx::Length::hmm(nBorder) != getBorder().getLeft()) { FmFormPage::SetLeftBorder(nBorder); } @@ -1774,7 +1770,7 @@ void SdPage::SetLeftBorder(sal_Int32 nBorder) void SdPage::SetRightBorder(sal_Int32 nBorder) { - if (nBorder != GetRightBorder() ) + if (gfx::Length::hmm(nBorder) != getBorder().getRight()) { FmFormPage::SetRightBorder(nBorder); } @@ -1782,7 +1778,7 @@ void SdPage::SetRightBorder(sal_Int32 nBorder) void SdPage::SetUpperBorder(sal_Int32 nBorder) { - if (nBorder != GetUpperBorder() ) + if (gfx::Length::hmm(nBorder) != getBorder().getUpper()) { FmFormPage::SetUpperBorder(nBorder); } @@ -1790,7 +1786,7 @@ void SdPage::SetUpperBorder(sal_Int32 nBorder) void SdPage::SetLowerBorder(sal_Int32 nBorder) { - if (nBorder != GetLowerBorder() ) + if (gfx::Length::hmm(nBorder) != getBorder().getLower()) { FmFormPage::SetLowerBorder(nBorder); } @@ -1831,19 +1827,19 @@ void SdPage::ScaleObjects(const Size& rNewPageSize, const ::tools::Rectangle& rN } if (nLeft < 0) { - nLeft = GetLeftBorder(); + nLeft = getBorder().getLeft().as_hmm(); } if (nRight < 0) { - nRight = GetRightBorder(); + nRight = getBorder().getRight().as_hmm(); } if (nUpper < 0) { - nUpper = GetUpperBorder(); + nUpper = getBorder().getUpper().as_hmm(); } if (nLower < 0) { - nLower = GetLowerBorder(); + nLower = getBorder().getLower().as_hmm(); } Size aBackgroundSize(aNewPageSize); @@ -1855,8 +1851,8 @@ void SdPage::ScaleObjects(const Size& rNewPageSize, const ::tools::Rectangle& rN aNewPageSize = aBackgroundSize; } - ::tools::Long nOldWidth = GetSizeHmm().getWidth() - GetLeftBorder() - GetRightBorder(); - ::tools::Long nOldHeight = GetSizeHmm().getHeight() - GetUpperBorder() - GetLowerBorder(); + ::tools::Long nOldWidth = (getSize().getWidth() - getBorder().getLeft() - getBorder().getRight()).as_hmm(); + ::tools::Long nOldHeight = (getSize().getHeight() - getBorder().getUpper() - getBorder().getLower()).as_hmm(); Fraction aFractX(aNewPageSize.Width(), nOldWidth); Fraction aFractY(aNewPageSize.Height(), nOldHeight); @@ -2045,8 +2041,8 @@ void SdPage::ScaleObjects(const Size& rNewPageSize, const ::tools::Rectangle& rN // corrected scaling; only distances may be scaled // use aTopLeft as original TopLeft - aNewPos.setX( ::tools::Long((aTopLeft.X() - GetLeftBorder()) * static_cast<double>(aFractX)) + nLeft ); - aNewPos.setY( ::tools::Long((aTopLeft.Y() - GetUpperBorder()) * static_cast<double>(aFractY)) + nUpper ); + aNewPos.setX( ::tools::Long((aTopLeft.X() - getBorder().getLeft().as_hmm()) * static_cast<double>(aFractX)) + nLeft ); + aNewPos.setY( ::tools::Long((aTopLeft.Y() - getBorder().getUpper().as_hmm()) * static_cast<double>(aFractY)) + nUpper ); Size aVec(aNewPos.X() - aTopLeft.X(), aNewPos.Y() - aTopLeft.Y()); @@ -2979,10 +2975,10 @@ void SdPage::CalculateHandoutAreas( SdDrawDocument& rModel, AutoLayout eLayout, const ::tools::Long nGapW = 1000; // gap is 1cm const ::tools::Long nGapH = 1000; - ::tools::Long nLeftBorder = rHandoutMaster.GetLeftBorder(); - ::tools::Long nRightBorder = rHandoutMaster.GetRightBorder(); - ::tools::Long nTopBorder = rHandoutMaster.GetUpperBorder(); - ::tools::Long nBottomBorder = rHandoutMaster.GetLowerBorder(); + ::tools::Long nLeftBorder = rHandoutMaster.getBorder().getLeft().as_hmm(); + ::tools::Long nRightBorder = rHandoutMaster.getBorder().getRight().as_hmm(); + ::tools::Long nTopBorder = rHandoutMaster.getBorder().getUpper().as_hmm(); + ::tools::Long nBottomBorder = rHandoutMaster.getBorder().getLower().as_hmm(); const ::tools::Long nHeaderFooterHeight = static_cast< ::tools::Long >( (aArea.Height() - nTopBorder - nLeftBorder) * 0.05 ); diff --git a/sd/source/filter/grf/sdgrffilter.cxx b/sd/source/filter/grf/sdgrffilter.cxx index fe17956ce027..7fd390edc844 100644 --- a/sd/source/filter/grf/sdgrffilter.cxx +++ b/sd/source/filter/grf/sdgrffilter.cxx @@ -162,8 +162,8 @@ bool SdGRFFilter::Import() Size aGrfSize( OutputDevice::LogicToLogic( aGraphic.GetPrefSize(), aGraphic.GetPrefMapMode(), MapMode(MapUnit::Map100thMM))); - aPagSize.AdjustWidth( -(pPage->GetLeftBorder() + pPage->GetRightBorder()) ); - aPagSize.AdjustHeight( -(pPage->GetUpperBorder() + pPage->GetLowerBorder()) ); + aPagSize.AdjustWidth(-basegfx::fround((pPage->getBorder().getLeft() + pPage->getBorder().getRight()).as_hmm())); + aPagSize.AdjustHeight(-basegfx::fround((pPage->getBorder().getUpper() + pPage->getBorder().getLower()).as_hmm())); // scale to fit page if ( ( ( aGrfSize.Height() > aPagSize.Height() ) || ( aGrfSize.Width() > aPagSize.Width() ) ) && @@ -186,8 +186,8 @@ bool SdGRFFilter::Import() } // set output rectangle for graphic - aPos.setX( ( ( aPagSize.Width() - aGrfSize.Width() ) >> 1 ) + pPage->GetLeftBorder() ); - aPos.setY( ( ( aPagSize.Height() - aGrfSize.Height() ) >> 1 ) + pPage->GetUpperBorder() ); + aPos.setX( ( ( aPagSize.Width() - aGrfSize.Width() ) / 2.0 ) + pPage->getBorder().getLeft().as_hmm()); + aPos.setY( ( ( aPagSize.Height() - aGrfSize.Height() ) / 2.0 ) + pPage->getBorder().getRight().as_hmm()); pPage->InsertObject( new SdrGrafObj( diff --git a/sd/source/filter/html/htmlex.cxx b/sd/source/filter/html/htmlex.cxx index fe5bfdb3fba5..39ebdf0afbc6 100644 --- a/sd/source/filter/html/htmlex.cxx +++ b/sd/source/filter/html/htmlex.cxx @@ -1671,11 +1671,11 @@ bool HtmlExport::CreateHtmlForPresPages() Point aLogPos(aRect.TopLeft()); bool bIsSquare = aRect.GetWidth() == aRect.GetHeight(); - sal_Int32 nPageWidth = pPage->GetSizeHmm().Width() - pPage->GetLeftBorder() - pPage->GetRightBorder(); + sal_Int32 nPageWidth = basegfx::fround((pPage->getSize().getWidth() - pPage->getBorder().getLeft() - pPage->getBorder().getRight()).as_hmm()); // BoundRect is relative to the physical page origin, not the // origin of ordinates - aRect.Move(-pPage->GetLeftBorder(), -pPage->GetUpperBorder()); + aRect.Move(-pPage->getBorder().getLeft().as_hmm(), -pPage->getBorder().getUpper().as_hmm()); double fLogicToPixel = static_cast<double>(mnWidthPixel) / nPageWidth; aRect.SetLeft( static_cast<tools::Long>(aRect.Left() * fLogicToPixel) ); @@ -1724,8 +1724,8 @@ bool HtmlExport::CreateHtmlForPresPages() GetRectangle(false)); // conversion into pixel coordinates - aArea.Move(aLogPos.X() - pPage->GetLeftBorder(), - aLogPos.Y() - pPage->GetUpperBorder()); + aArea.Move(aLogPos.X() - pPage->getBorder().getLeft().as_hmm(), + aLogPos.Y() - pPage->getBorder().getUpper().as_hmm()); aArea.SetLeft( static_cast<tools::Long>(aArea.Left() * fLogicToPixel) ); aArea.SetTop( static_cast<tools::Long>(aArea.Top() * fLogicToPixel) ); aArea.SetRight( static_cast<tools::Long>(aArea.Right() * fLogicToPixel) ); @@ -1739,8 +1739,8 @@ bool HtmlExport::CreateHtmlForPresPages() { Point aCenter(static_cast<IMapCircleObject*>(pArea)-> GetCenter(false)); - aCenter += Point(aLogPos.X() - pPage->GetLeftBorder(), - aLogPos.Y() - pPage->GetUpperBorder()); + aCenter += Point(aLogPos.X() - pPage->getBorder().getLeft().as_hmm(), + aLogPos.Y() - pPage->getBorder().getUpper().as_hmm()); aCenter.setX( static_cast<tools::Long>(aCenter.X() * fLogicToPixel) ); aCenter.setY( static_cast<tools::Long>(aCenter.Y() * fLogicToPixel) ); @@ -1757,8 +1757,8 @@ bool HtmlExport::CreateHtmlForPresPages() { tools::Polygon aArea(static_cast<IMapPolygonObject*>(pArea)->GetPolygon(false)); aStr.append(CreateHTMLPolygonArea(::basegfx::B2DPolyPolygon(aArea.getB2DPolygon()), - Size(aLogPos.X() - pPage->GetLeftBorder(), - aLogPos.Y() - pPage->GetUpperBorder()), + Size(aLogPos.X() - pPage->getBorder().getLeft().as_hmm(), + aLogPos.Y() - pPage->getBorder().getUpper().as_hmm()), fLogicToPixel, aURL)); } break; @@ -1861,7 +1861,8 @@ bool HtmlExport::CreateHtmlForPresPages() pObject->GetObjIdentifier() == SdrObjKind::PolyLine || pObject->GetObjIdentifier() == SdrObjKind::Polygon)) { - aStr.append(CreateHTMLPolygonArea(static_cast<SdrPathObj*>(pObject)->GetPathPoly(), Size(-pPage->GetLeftBorder(), -pPage->GetUpperBorder()), fLogicToPixel, aHRef)); + aStr.append(CreateHTMLPolygonArea(static_cast<SdrPathObj*>(pObject)->GetPathPoly(), + Size(-pPage->getBorder().getLeft().as_hmm(), -pPage->getBorder().getUpper().as_hmm()), fLogicToPixel, aHRef)); } // something completely different: use the BoundRect else diff --git a/sd/source/ui/func/fuexpand.cxx b/sd/source/ui/func/fuexpand.cxx index 45e430a266c7..8c9e69cba710 100644 --- a/sd/source/ui/func/fuexpand.cxx +++ b/sd/source/ui/func/fuexpand.cxx @@ -135,10 +135,7 @@ void FuExpandPage::DoExecute( SfxRequest& ) // page with title & structuring! rtl::Reference<SdPage> pPage = mpDoc->AllocSdPage(false); pPage->setSize(pActualPage->getSize() ); - pPage->SetBorder(pActualPage->GetLeftBorder(), - pActualPage->GetUpperBorder(), - pActualPage->GetRightBorder(), - pActualPage->GetLowerBorder() ); + pPage->setBorder(pActualPage->getBorder()); pPage->SetName(OUString()); // insert page after current page @@ -157,10 +154,7 @@ void FuExpandPage::DoExecute( SfxRequest& ) // notes-page rtl::Reference<SdPage> pNotesPage = mpDoc->AllocSdPage(false); pNotesPage->setSize(pActualNotesPage->getSize()); - pNotesPage->SetBorder(pActualNotesPage->GetLeftBorder(), - pActualNotesPage->GetUpperBorder(), - pActualNotesPage->GetRightBorder(), - pActualNotesPage->GetLowerBorder() ); + pNotesPage->setBorder(pActualNotesPage->getBorder()); pNotesPage->SetPageKind(PageKind::Notes); pNotesPage->SetName(OUString()); diff --git a/sd/source/ui/func/fupage.cxx b/sd/source/ui/func/fupage.cxx index 542f2884a66e..c06f912fbb75 100644 --- a/sd/source/ui/func/fupage.cxx +++ b/sd/source/ui/func/fupage.cxx @@ -246,10 +246,14 @@ const SfxItemSet* FuPage::ExecuteDialog(weld::Window* pParent, const SfxRequest& SvxPaperBinItem aPaperBinItem( SID_ATTR_PAGE_PAPERBIN, static_cast<sal_uInt8>(mpPage->GetPaperBin()) ); aNewAttr.Put( aPaperBinItem ); - SvxLRSpaceItem aLRSpaceItem( static_cast<sal_uInt16>(mpPage->GetLeftBorder()), static_cast<sal_uInt16>(mpPage->GetRightBorder()), 0, 0, mpDoc->GetPool().GetWhich(SID_ATTR_LRSPACE)); + SvxLRSpaceItem aLRSpaceItem(sal_uInt16(mpPage->getBorder().getLeft().as_hmm()), + sal_uInt16(mpPage->getBorder().getRight().as_hmm()), + 0, 0, mpDoc->GetPool().GetWhich(SID_ATTR_LRSPACE)); aNewAttr.Put( aLRSpaceItem ); - SvxULSpaceItem aULSpaceItem( static_cast<sal_uInt16>(mpPage->GetUpperBorder()), static_cast<sal_uInt16>(mpPage->GetLowerBorder()), mpDoc->GetPool().GetWhich(SID_ATTR_ULSPACE)); + SvxULSpaceItem aULSpaceItem(sal_uInt16(mpPage->getBorder().getUpper().as_hmm()), + sal_uInt16(mpPage->getBorder().getLower().as_hmm()), + mpDoc->GetPool().GetWhich(SID_ATTR_ULSPACE)); aNewAttr.Put( aULSpaceItem ); // Application @@ -536,9 +540,11 @@ void FuPage::ApplyItemSet( const SfxItemSet* pArgs ) nLeft = static_cast<const SvxLRSpaceItem*>(pPoolItem)->GetLeft(); nRight = static_cast<const SvxLRSpaceItem*>(pPoolItem)->GetRight(); - if( mpPage->GetLeftBorder() != nLeft || mpPage->GetRightBorder() != nRight ) + if (mpPage->getBorder().getLeft() != gfx::Length::hmm(nLeft) + || mpPage->getBorder().getRight() != gfx::Length::hmm(nRight)) + { bSetPageSizeAndBorder = true; - + } } if( pArgs->GetItemState(mpDoc->GetPool().GetWhich(SID_ATTR_ULSPACE), @@ -547,8 +553,11 @@ void FuPage::ApplyItemSet( const SfxItemSet* pArgs ) nUpper = static_cast<const SvxULSpaceItem*>(pPoolItem)->GetUpper(); nLower = static_cast<const SvxULSpaceItem*>(pPoolItem)->GetLower(); - if( mpPage->GetUpperBorder() != nUpper || mpPage->GetLowerBorder() != nLower ) + if (mpPage->getBorder().getUpper() != gfx::Length::hmm(nUpper) + || mpPage->getBorder().getLower() != gfx::Length::hmm(nLower)) + { bSetPageSizeAndBorder = true; + } } if( pArgs->GetItemState(mpDoc->GetPool().GetWhich(SID_ATTR_PAGE_EXT1), true, &pPoolItem) == SfxItemState::SET ) @@ -595,14 +604,14 @@ void FuPage::ApplyItemSet( const SfxItemSet* pArgs ) if (nLeft == -1 && nUpper != -1) { bSetPageSizeAndBorder = true; - nLeft = mpPage->GetLeftBorder(); - nRight = mpPage->GetRightBorder(); + nLeft = mpPage->getBorder().getLeft().as_hmm(); + nRight = mpPage->getBorder().getRight().as_hmm(); } else if (nLeft != -1 && nUpper == -1) { bSetPageSizeAndBorder = true; - nUpper = mpPage->GetUpperBorder(); - nLower = mpPage->GetLowerBorder(); + nUpper = mpPage->getBorder().getUpper().as_hmm(); + nLower = mpPage->getBorder().getLower().as_hmm(); } if( bSetPageSizeAndBorder || !mbMasterPage ) diff --git a/sd/source/ui/func/fusumry.cxx b/sd/source/ui/func/fusumry.cxx index 8dff156f654e..aeea2505a0b9 100644 --- a/sd/source/ui/func/fusumry.cxx +++ b/sd/source/ui/func/fusumry.cxx @@ -120,10 +120,7 @@ void FuSummaryPage::DoExecute( SfxRequest& ) // page with title & structuring! pSummaryPage = mpDoc->AllocSdPage(false); pSummaryPage->setSize(pActualPage->getSize()); - pSummaryPage->SetBorder(pActualPage->GetLeftBorder(), - pActualPage->GetUpperBorder(), - pActualPage->GetRightBorder(), - pActualPage->GetLowerBorder() ); + pSummaryPage->setBorder(pActualPage->getBorder()); // insert page at the back mpDoc->InsertPage(pSummaryPage.get(), nCount * 2 + 1); @@ -140,10 +137,7 @@ void FuSummaryPage::DoExecute( SfxRequest& ) // notes-page rtl::Reference<SdPage> pNotesPage = mpDoc->AllocSdPage(false); pNotesPage->setSize(pActualNotesPage->getSize()); - pNotesPage->SetBorder(pActualNotesPage->GetLeftBorder(), - pActualNotesPage->GetUpperBorder(), - pActualNotesPage->GetRightBorder(), - pActualNotesPage->GetLowerBorder() ); + pNotesPage->setBorder(pActualNotesPage->getBorder()); pNotesPage->SetPageKind(PageKind::Notes); // insert page at the back diff --git a/sd/source/ui/sidebar/DocumentHelper.cxx b/sd/source/ui/sidebar/DocumentHelper.cxx index c3188d9fc205..17aaeeeb38e0 100644 --- a/sd/source/ui/sidebar/DocumentHelper.cxx +++ b/sd/source/ui/sidebar/DocumentHelper.cxx @@ -363,11 +363,11 @@ SdPage* DocumentHelper::AddMasterPage ( // the document. auto pPage = rTargetDocument.GetSdPage(0, pMasterPage->GetPageKind()); Size aNewSize = pPage->GetSizeHmm(); - ::tools::Rectangle aBorders ( - pClonedMasterPage->GetLeftBorder(), - pClonedMasterPage->GetUpperBorder(), - pClonedMasterPage->GetRightBorder(), - pClonedMasterPage->GetLowerBorder()); + ::tools::Rectangle aBorders( + pClonedMasterPage->getBorder().getLeft().as_hmm(), + pClonedMasterPage->getBorder().getUpper().as_hmm(), + pClonedMasterPage->getBorder().getRight().as_hmm(), + pClonedMasterPage->getBorder().getLower().as_hmm()); pClonedMasterPage->ScaleObjects(aNewSize, aBorders, true); pClonedMasterPage->setSize(pPage->getSize()); pClonedMasterPage->CreateTitleAndLayout(true); diff --git a/sd/source/ui/unoidl/unomodel.cxx b/sd/source/ui/unoidl/unomodel.cxx index 2facbecd3272..d5e2432ccaf4 100644 --- a/sd/source/ui/unoidl/unomodel.cxx +++ b/sd/source/ui/unoidl/unomodel.cxx @@ -497,10 +497,7 @@ SdPage* SdXImpressDocument::InsertSdPage( sal_uInt16 nPage, bool bDuplicate ) pStandardPage = mpDoc->AllocSdPage(false); pStandardPage->setSize(pPreviousStandardPage->getSize()); - pStandardPage->SetBorder( pPreviousStandardPage->GetLeftBorder(), - pPreviousStandardPage->GetUpperBorder(), - pPreviousStandardPage->GetRightBorder(), - pPreviousStandardPage->GetLowerBorder() ); + pStandardPage->setBorder(pPreviousStandardPage->getBorder()); pStandardPage->SetOrientation( pPreviousStandardPage->GetOrientation() ); pStandardPage->SetName(OUString()); @@ -532,10 +529,7 @@ SdPage* SdXImpressDocument::InsertSdPage( sal_uInt16 nPage, bool bDuplicate ) pNotesPage = mpDoc->AllocSdPage(false); pNotesPage->setSize(pPreviousNotesPage->getSize()); - pNotesPage->SetBorder( pPreviousNotesPage->GetLeftBorder(), - pPreviousNotesPage->GetUpperBorder(), - pPreviousNotesPage->GetRightBorder(), - pPreviousNotesPage->GetLowerBorder() ); + pNotesPage->setBorder(pPreviousNotesPage->getBorder()); pNotesPage->SetOrientation( pPreviousNotesPage->GetOrientation() ); pNotesPage->SetName(OUString()); pNotesPage->SetPageKind(PageKind::Notes); @@ -3209,10 +3203,7 @@ uno::Reference< drawing::XDrawPage > SAL_CALL SdMasterPagesAccess::insertNewByIn // create and insert new draw masterpage rtl::Reference<SdPage> pMPage = mpModel->mpDoc->AllocSdPage(true); pMPage->setSize(pPage->getSize()); - pMPage->SetBorder( pPage->GetLeftBorder(), - pPage->GetUpperBorder(), - pPage->GetRightBorder(), - pPage->GetLowerBorder() ); + pMPage->setBorder(pPage->getBorder()); pMPage->SetLayoutName( aLayoutName ); pDoc->InsertMasterPage(pMPage.get(), static_cast<sal_uInt16>(nInsertPos)); @@ -3227,10 +3218,7 @@ uno::Reference< drawing::XDrawPage > SAL_CALL SdMasterPagesAccess::insertNewByIn rtl::Reference<SdPage> pMNotesPage = mpModel->mpDoc->AllocSdPage(true); pMNotesPage->setSize(pRefNotesPage->getSize()); pMNotesPage->SetPageKind(PageKind::Notes); - pMNotesPage->SetBorder( pRefNotesPage->GetLeftBorder(), - pRefNotesPage->GetUpperBorder(), - pRefNotesPage->GetRightBorder(), - pRefNotesPage->GetLowerBorder() ); + pMNotesPage->setBorder(pRefNotesPage->getBorder()); pMNotesPage->SetLayoutName( aLayoutName ); pDoc->InsertMasterPage(pMNotesPage.get(), static_cast<sal_uInt16>(nInsertPos) + 1); pMNotesPage->SetAutoLayout(AUTOLAYOUT_NOTES, true, true); diff --git a/sd/source/ui/unoidl/unopage.cxx b/sd/source/ui/unoidl/unopage.cxx index 20f6843c314d..4db726afcb14 100644 --- a/sd/source/ui/unoidl/unopage.cxx +++ b/sd/source/ui/unoidl/unopage.cxx @@ -1001,16 +1001,16 @@ Any SAL_CALL SdGenericDrawPage::getPropertyValue( const OUString& PropertyName ) aAny = getNavigationOrder(); break; case WID_PAGE_LEFT: - aAny <<= GetPage()->GetLeftBorder(); + aAny <<= basegfx::fround(GetPage()->getBorder().getLeft().as_hmm()); break; case WID_PAGE_RIGHT: - aAny <<= GetPage()->GetRightBorder(); + aAny <<= basegfx::fround(GetPage()->getBorder().getRight().as_hmm()); break; case WID_PAGE_TOP: - aAny <<= GetPage()->GetUpperBorder(); + aAny <<= basegfx::fround(GetPage()->getBorder().getUpper().as_hmm()); break; case WID_PAGE_BOTTOM: - aAny <<= GetPage()->GetLowerBorder(); + aAny <<= basegfx::fround(GetPage()->getBorder().getLower().as_hmm()); break; case WID_PAGE_WIDTH: aAny <<= static_cast<sal_Int32>( GetPage()->GetSizeHmm().getWidth() ); @@ -1672,7 +1672,7 @@ void SAL_CALL SdGenericDrawPage::unbind( const Reference< drawing::XShape >& xSh void SdGenericDrawPage::SetLeftBorder( sal_Int32 nValue ) { - if( nValue == GetPage()->GetLeftBorder() ) + if (gfx::Length::hmm(nValue) == GetPage()->getBorder().getLeft()) return; SdDrawDocument& rDoc(static_cast< SdDrawDocument& >(GetPage()->getSdrModelFromSdrPage())); @@ -1696,7 +1696,7 @@ void SdGenericDrawPage::SetLeftBorder( sal_Int32 nValue ) void SdGenericDrawPage::SetRightBorder( sal_Int32 nValue ) { - if( nValue == GetPage()->GetRightBorder() ) + if (gfx::Length::hmm(nValue) == GetPage()->getBorder().getRight()) return; SdDrawDocument& rDoc(static_cast< SdDrawDocument& >(GetPage()->getSdrModelFromSdrPage())); @@ -1720,7 +1720,7 @@ void SdGenericDrawPage::SetRightBorder( sal_Int32 nValue ) void SdGenericDrawPage::SetUpperBorder( sal_Int32 nValue ) { - if( nValue == GetPage()->GetUpperBorder() ) + if (gfx::Length::hmm(nValue) == GetPage()->getBorder().getUpper()) return; SdDrawDocument& rDoc(static_cast< SdDrawDocument& >(GetPage()->getSdrModelFromSdrPage())); @@ -1744,7 +1744,7 @@ void SdGenericDrawPage::SetUpperBorder( sal_Int32 nValue ) void SdGenericDrawPage::SetLowerBorder( sal_Int32 nValue ) { - if( nValue == GetPage()->GetLowerBorder() ) + if (gfx::Length::hmm(nValue) == GetPage()->getBorder().getLower()) return; SdDrawDocument& rDoc(static_cast< SdDrawDocument& >(GetPage()->getSdrModelFromSdrPage())); @@ -2352,10 +2352,7 @@ void SAL_CALL SdDrawPage::setMasterPage( const Reference< drawing::XDrawPage >& SdPage* pSdPage = static_cast<SdPage*>(pMasterPage->GetSdrPage()); SvxFmDrawPage::mpPage->TRG_SetMasterPage(*pSdPage); - - SvxFmDrawPage::mpPage->SetBorder(pSdPage->GetLeftBorder(),pSdPage->GetUpperBorder(), - pSdPage->GetRightBorder(),pSdPage->GetLowerBorder() ); - + SvxFmDrawPage::mpPage->setBorder(pSdPage->getBorder()); SvxFmDrawPage::mpPage->setSize(pSdPage->getSize()); SvxFmDrawPage::mpPage->SetOrientation( pSdPage->GetOrientation() ); static_cast<SdPage*>(SvxFmDrawPage::mpPage)->SetLayoutName( pSdPage->GetLayoutName() ); diff --git a/sd/source/ui/view/DocumentRenderer.cxx b/sd/source/ui/view/DocumentRenderer.cxx index 639ba2c0dfa5..8ce03a2d911b 100644 --- a/sd/source/ui/view/DocumentRenderer.cxx +++ b/sd/source/ui/view/DocumentRenderer.cxx @@ -816,26 +816,24 @@ namespace { return; MapMode aMap (rPrinter.GetMapMode()); - const Size aPageSize (pPageToPrint->GetSizeHmm()); + const auto aPageSize (pPageToPrint->getSize()); const Size aPrintSize (rPrinter.GetOutputSize()); - const sal_Int32 nPageWidth (aPageSize.Width() + mnGap - - pPageToPrint->GetLeftBorder() - pPageToPrint->GetRightBorder()); - const sal_Int32 nPageHeight (aPageSize.Height() + mnGap - - pPageToPrint->GetUpperBorder() - pPageToPrint->GetLowerBorder()); - if (nPageWidth<=0 || nPageHeight<=0) + const gfx::Length nPageWidth = aPageSize.getWidth() + mnGap - pPageToPrint->getBorder().getLeft() - pPageToPrint->getBorder().getRight(); + const gfx::Length nPageHeight = aPageSize.getHeight() + mnGap - pPageToPrint->getBorder().getUpper() - pPageToPrint->getBorder().getLower(); + if (nPageWidth <= 0_hmm || nPageHeight <= 0_hmm) return; // Print at least two rows and columns. More if the document // page fits completely onto the printer page. const sal_Int32 nColumnCount (std::max(sal_Int32(2), - sal_Int32(aPrintSize.Width() / nPageWidth))); + sal_Int32(aPrintSize.Width() / nPageWidth.as_hmm()))); const sal_Int32 nRowCount (std::max(sal_Int32(2), - sal_Int32(aPrintSize.Height() / nPageHeight))); + sal_Int32(aPrintSize.Height() / nPageHeight.as_hmm()))); for (sal_Int32 nRow=0; nRow<nRowCount; ++nRow) for (sal_Int32 nColumn=0; nColumn<nColumnCount; ++nColumn) { - aMap.SetOrigin(Point(nColumn*nPageWidth,nRow*nPageHeight)); + aMap.SetOrigin(Point(nColumn * nPageWidth.as_hmm(), nRow * nPageHeight.as_hmm())); rPrinter.SetMapMode(aMap); PrintPage( rPrinter, @@ -855,7 +853,7 @@ namespace { private: const sal_uInt16 mnPageIndex; - static const sal_Int32 mnGap = 500; + static const constexpr gfx::Length mnGap = 500_hmm; }; /** Print two slides to one printer page so that the resulting pages @@ -1902,18 +1900,19 @@ private: MapMode aMap (rInfo.maMap); // is it possible that the page size changed? - const Size aPageSize = pPage->GetSizeHmm(); + const auto aPageSize = pPage->getSize(); + const Size aPageSizeHmm = gfx::length::toSizeHmm(aPageSize); if (mpOptions->IsPageSize()) { - const double fHorz (static_cast<double>(rInfo.maPrintSize.Width()) / aPageSize.Width()); - const double fVert (static_cast<double>(rInfo.maPrintSize.Height()) / aPageSize.Height()); + const double fHorz (static_cast<double>(rInfo.maPrintSize.Width()) / aPageSizeHmm.Width()); + const double fVert (static_cast<double>(rInfo.maPrintSize.Height()) / aPageSizeHmm.Height()); Fraction aFract; if (fHorz < fVert) - aFract = Fraction(rInfo.maPrintSize.Width(), aPageSize.Width()); + aFract = Fraction(rInfo.maPrintSize.Width(), aPageSizeHmm.Width()); else - aFract = Fraction(rInfo.maPrintSize.Height(), aPageSize.Height()); + aFract = Fraction(rInfo.maPrintSize.Height(), aPageSizeHmm.Height()); aMap.SetScaleX(aFract); aMap.SetScaleY(aFract); @@ -1928,8 +1927,8 @@ private: rInfo.msPageString.clear(); rInfo.msPageString += rInfo.msTimeDate; - ::tools::Long aPageWidth = aPageSize.Width() - pPage->GetLeftBorder() - pPage->GetRightBorder(); - ::tools::Long aPageHeight = aPageSize.Height() - pPage->GetUpperBorder() - pPage->GetLowerBorder(); + ::tools::Long aPageWidth = basegfx::fround((aPageSize.getWidth() - pPage->getBorder().getLeft() - pPage->getBorder().getRight()).as_hmm()); + ::tools::Long aPageHeight = basegfx::fround((aPageSize.getHeight() - pPage->getBorder().getUpper() - pPage->getBorder().getLower()).as_hmm()); // Bugfix for 44530: // if it was implicitly changed (Landscape/Portrait), // this is considered for tiling, respectively for the splitting up @@ -2162,9 +2161,9 @@ private: // keep the page content at its position if it fits, otherwise // move it to the printable area const ::tools::Long nPageWidth ( - rInfo.maPageSize.Width() - rPage.GetLeftBorder() - rPage.GetRightBorder()); + rInfo.maPageSize.Width() - rPage.getBorder().getLeft().as_hmm() - rPage.getBorder().getRight().as_hmm()); const ::tools::Long nPageHeight ( - rInfo.maPageSize.Height() - rPage.GetUpperBorder() - rPage.GetLowerBorder()); + rInfo.maPageSize.Height() - rPage.getBorder().getUpper().as_hmm() - rPage.getBorder().getLower().as_hmm()); Point aOrigin ( 0, 0 ); diff --git a/sd/source/ui/view/drviews3.cxx b/sd/source/ui/view/drviews3.cxx index f0bb60c2847d..bf0f3fceb2fa 100644 --- a/sd/source/ui/view/drviews3.cxx +++ b/sd/source/ui/view/drviews3.cxx @@ -571,8 +571,8 @@ void DrawViewShell::ExecRuler(SfxRequest& rReq) SdPage* pPage = GetDoc()->GetSdPage(i, mePageKind); SdUndoAction* pUndo = new SdPageLRUndoAction(GetDoc(), pPage, - pPage->GetLeftBorder(), - pPage->GetRightBorder(), + pPage->getBorder().getLeft().as_hmm(), + pPage->getBorder().getRight().as_hmm(), nLeft, nRight); pUndoGroup->AddAction(pUndo); pPage->SetLeftBorder(nLeft); @@ -585,8 +585,8 @@ void DrawViewShell::ExecRuler(SfxRequest& rReq) SdPage* pPage = GetDoc()->GetMasterSdPage(i, mePageKind); SdUndoAction* pUndo = new SdPageLRUndoAction(GetDoc(), pPage, - pPage->GetLeftBorder(), - pPage->GetRightBorder(), + pPage->getBorder().getLeft().as_hmm(), + pPage->getBorder().getRight().as_hmm(), nLeft, nRight); pUndoGroup->AddAction(pUndo); pPage->SetLeftBorder(nLeft); @@ -637,8 +637,8 @@ void DrawViewShell::ExecRuler(SfxRequest& rReq) SdPage* pPage = GetDoc()->GetSdPage(i, mePageKind); SdUndoAction* pUndo = new SdPageULUndoAction(GetDoc(), pPage, - pPage->GetUpperBorder(), - pPage->GetLowerBorder(), + pPage->getBorder().getUpper().as_hmm(), + pPage->getBorder().getLower().as_hmm(), nUpper, nLower); pUndoGroup->AddAction(pUndo); pPage->SetUpperBorder(nUpper); @@ -651,8 +651,8 @@ void DrawViewShell::ExecRuler(SfxRequest& rReq) SdPage* pPage = GetDoc()->GetMasterSdPage(i, mePageKind); SdUndoAction* pUndo = new SdPageULUndoAction(GetDoc(), pPage, - pPage->GetUpperBorder(), - pPage->GetLowerBorder(), + pPage->getBorder().getUpper().as_hmm(), + pPage->getBorder().getLower().as_hmm(), nUpper, nLower); pUndoGroup->AddAction(pUndo); pPage->SetUpperBorder(nUpper); @@ -905,11 +905,12 @@ void DrawViewShell::GetRulerState(SfxItemSet& rSet) rSet.Put( SfxRectangleItem(SID_RULER_LR_MIN_MAX, aRect) ); } - SvxLongLRSpaceItem aLRSpace(aPagePos.X() + mpActualPage->GetLeftBorder(), - aRect.Right() + mpActualPage->GetRightBorder(), + auto aBorder = mpActualPage->getBorder(); + SvxLongLRSpaceItem aLRSpace(aPagePos.X() + aBorder.getLeft().as_hmm(), + aRect.Right() + aBorder.getRight().as_hmm(), SID_ATTR_LONG_LRSPACE); - SvxLongULSpaceItem aULSpace(aPagePos.Y() + mpActualPage->GetUpperBorder(), - aRect.Bottom() + mpActualPage->GetLowerBorder(), + SvxLongULSpaceItem aULSpace(aPagePos.Y() + aBorder.getUpper().as_hmm(), + aRect.Bottom() + aBorder.getLower().as_hmm(), SID_ATTR_LONG_ULSPACE); rSet.Put(SvxPagePosSizeItem(Point(0,0) - aPagePos, aViewSize.Width(), aViewSize.Height())); diff --git a/sd/source/ui/view/drviews4.cxx b/sd/source/ui/view/drviews4.cxx index 9a198efae582..41b37ce35d2d 100644 --- a/sd/source/ui/view/drviews4.cxx +++ b/sd/source/ui/view/drviews4.cxx @@ -484,7 +484,8 @@ void DrawViewShell::MouseButtonUp(const MouseEvent& rMEvt, ::sd::Window* pWin) { mpDrawView->BrkAction(); SdPage* pPage = static_cast<SdPage*>( mpDrawView->GetSdrPageView()->GetPage() ); - Point aOrg(pPage->GetLeftBorder(), pPage->GetUpperBorder()); + Point aOrg(pPage->getBorder().getLeft().as_hmm(), + pPage->getBorder().getUpper().as_hmm()); mpDrawView->GetSdrPageView()->SetPageOrigin(aOrg); GetViewFrame()->GetBindings().Invalidate(SID_RULER_NULL_OFFSET); } diff --git a/sd/source/ui/view/drviews7.cxx b/sd/source/ui/view/drviews7.cxx index 17aebdd0d28d..e93e69af1320 100644 --- a/sd/source/ui/view/drviews7.cxx +++ b/sd/source/ui/view/drviews7.cxx @@ -256,8 +256,8 @@ void DrawViewShell::GetMarginProperties( SfxItemSet &rSet ) { // const SvxLRSpaceItem aTmpPageLRSpace ( rDesc.GetMaster().GetLRSpace() ); const SvxLongLRSpaceItem aLongLR( - static_cast<::tools::Long>(pPage->GetLeftBorder()), - static_cast<::tools::Long>(pPage->GetRightBorder()), + ::tools::Long(pPage->getBorder().getLeft().as_hmm()), + ::tools::Long(pPage->getBorder().getRight().as_hmm()), SID_ATTR_PAGE_LRSPACE ); rSet.Put( aLongLR ); } @@ -267,8 +267,8 @@ void DrawViewShell::GetMarginProperties( SfxItemSet &rSet ) { // const SvxULSpaceItem aUL( rDesc.GetMaster().GetULSpace() ); SvxLongULSpaceItem aLongUL( - static_cast<::tools::Long>(pPage->GetUpperBorder()), - static_cast<::tools::Long>(pPage->GetLowerBorder()), + ::tools::Long(pPage->getBorder().getUpper().as_hmm()), + ::tools::Long(pPage->getBorder().getLower().as_hmm()), SID_ATTR_PAGE_ULSPACE ); rSet.Put( aLongUL ); } @@ -1898,8 +1898,8 @@ void DrawViewShell::SetPageProperties (SfxRequest& rReq) nRight = static_cast<const SvxLongLRSpaceItem*>(pPoolItem)->GetRight(); if (nLeft != -1) { - nUpper = pPage->GetUpperBorder(); - nLower = pPage->GetLowerBorder(); + nUpper = pPage->getBorder().getUpper().as_hmm(); + nLower = pPage->getBorder().getLower().as_hmm(); } SetPageSizeAndBorder(ePageKind, aNewSize, nLeft, nRight, nUpper, nLower, bScaleAll, eOrientation, nPaperBin, bFullSize ); } @@ -1913,8 +1913,8 @@ void DrawViewShell::SetPageProperties (SfxRequest& rReq) nLower = static_cast<const SvxLongULSpaceItem*>(pPoolItem)->GetLower(); if (nUpper != -1) { - nLeft = pPage->GetLeftBorder(); - nRight = pPage->GetRightBorder(); + nLeft = pPage->getBorder().getLeft().as_hmm(); + nRight = pPage->getBorder().getRight().as_hmm(); } SetPageSizeAndBorder(ePageKind, aNewSize, nLeft, nRight, nUpper, nLower, bScaleAll, eOrientation, nPaperBin, bFullSize ); } diff --git a/sd/source/ui/view/drviews8.cxx b/sd/source/ui/view/drviews8.cxx index f6c129d1e631..14ec745ee3e5 100644 --- a/sd/source/ui/view/drviews8.cxx +++ b/sd/source/ui/view/drviews8.cxx @@ -64,8 +64,8 @@ void DrawViewShell::ScannerEvent() else aBmpSize = OutputDevice::LogicToLogic( aBmpSize, aScanBmp.GetPrefMapMode(), aMap100 ); - aPageSize.AdjustWidth( -(pPage->GetLeftBorder() + pPage->GetRightBorder()) ); - aPageSize.AdjustHeight( -(pPage->GetUpperBorder() + pPage->GetLowerBorder()) ); + aPageSize.AdjustWidth(-basegfx::fround((pPage->getBorder().getLeft() + pPage->getBorder().getRight()).as_hmm()) ); + aPageSize.AdjustHeight(-basegfx::fround((pPage->getBorder().getUpper() + pPage->getBorder().getLower()).as_hmm()) ); if( ( ( aBmpSize.Height() > aPageSize.Height() ) || ( aBmpSize.Width() > aPageSize.Width() ) ) && aBmpSize.Height() && aPageSize.Height() ) { @@ -85,7 +85,8 @@ void DrawViewShell::ScannerEvent() } Point aPnt ( ( aPageSize.Width() - aBmpSize.Width() ) >> 1, ( aPageSize.Height() - aBmpSize.Height() ) >> 1 ); - aPnt += Point( pPage->GetLeftBorder(), pPage->GetUpperBorder() ); + aPnt += Point(pPage->getBorder().getLeft().as_hmm(), + pPage->getBorder().getUpper().as_hmm()); ::tools::Rectangle aRect( aPnt, aBmpSize ); bool bInsertNewObject = true; diff --git a/sd/source/ui/view/drviews9.cxx b/sd/source/ui/view/drviews9.cxx index ceb14d9ed125..b37ce15c5b08 100644 --- a/sd/source/ui/view/drviews9.cxx +++ b/sd/source/ui/view/drviews9.cxx @@ -93,8 +93,8 @@ void DrawViewShell::ExecGallery(SfxRequest const & rReq) // constrain size to page size if necessary SdrPage* pPage = mpDrawView->GetSdrPageView()->GetPage(); Size aPageSize = pPage->GetSizeHmm(); - aPageSize.AdjustWidth( -(pPage->GetLeftBorder() + pPage->GetRightBorder()) ); - aPageSize.AdjustHeight( -(pPage->GetUpperBorder() + pPage->GetLowerBorder()) ); + aPageSize.AdjustWidth(-basegfx::fround((pPage->getBorder().getLeft() + pPage->getBorder().getRight()).as_hmm()) ); + aPageSize.AdjustHeight(-basegfx::fround((pPage->getBorder().getUpper() + pPage->getBorder().getLower()).as_hmm()) ); // If the image is too large we make it fit into the page if ( ( ( aSize.Height() > aPageSize.Height() ) || ( aSize.Width() > aPageSize.Width() ) ) && @@ -121,7 +121,8 @@ void DrawViewShell::ExecGallery(SfxRequest const & rReq) // set output rectangle for graphic Point aPnt ((aPageSize.Width() - aSize.Width()) / 2, (aPageSize.Height() - aSize.Height()) / 2); - aPnt += Point(pPage->GetLeftBorder(), pPage->GetUpperBorder()); + aPnt += Point(pPage->getBorder().getLeft().as_hmm(), + pPage->getBorder().getUpper().as_hmm()); ::tools::Rectangle aRect (aPnt, aSize); rtl::Reference<SdrGrafObj> pGrafObj; diff --git a/sd/source/ui/view/drviewsa.cxx b/sd/source/ui/view/drviewsa.cxx index f6279afe2152..93d2ccf2b467 100644 --- a/sd/source/ui/view/drviewsa.cxx +++ b/sd/source/ui/view/drviewsa.cxx @@ -514,7 +514,8 @@ void DrawViewShell::SetupPage (Size const &rSize, UpdateScrollBars(); - Point aNewOrigin(mpActualPage->GetLeftBorder(), mpActualPage->GetUpperBorder()); + Point aNewOrigin(mpActualPage->getBorder().getLeft().as_hmm(), ... etc. - the rest is truncated