diff options
author | Tomaž Vajngerl <quikee@gmail.com> | 2013-08-27 21:53:00 +0200 |
---|---|---|
committer | Tomaž Vajngerl <quikee@gmail.com> | 2013-08-29 18:40:00 +0200 |
commit | 6a55ef189d35334425f0d27725f22eeea9878375 (patch) | |
tree | 0c7c3a230f2537d877ffdb32e2754e0ad526e70c /svx/source | |
parent | 8c8b165f54399aa5a4f1c26f29101d4482eb9339 (diff) |
Use scoped_ptr for items in svxruler and clean-up code.
Change-Id: Ia461bdf633364fdc379a8180998452ef08a58316
Diffstat (limited to 'svx/source')
-rw-r--r-- | svx/source/dialog/svxruler.cxx | 1187 |
1 files changed, 601 insertions, 586 deletions
diff --git a/svx/source/dialog/svxruler.cxx b/svx/source/dialog/svxruler.cxx index 46829b374d1e..29219427a6b0 100644 --- a/svx/source/dialog/svxruler.cxx +++ b/svx/source/dialog/svxruler.cxx @@ -17,8 +17,8 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ -#include <string.h> -#include <limits.h> +#include <cstring> +#include <climits> #include <tools/shl.hxx> #include <vcl/image.hxx> @@ -134,7 +134,7 @@ struct SvxRuler_Impl { // For columns; buffered to prevent // recalculation errors // May be has to be widen for future values - sal_Bool bIsTableRows : 1; // pColumnItem contains table rows instead of columns + sal_Bool bIsTableRows : 1; // mpColumnItem contains table rows instead of columns //#i24363# tab stops relative to indent sal_Bool bIsTabsRelativeToIndent : 1; // Tab stops relative to paragraph indent? @@ -206,15 +206,6 @@ SvxRuler::SvxRuler( WinBits nWinStyle) : // StarView WinBits Ruler(pParent, nWinStyle), pCtrlItem(new SvxRulerItem *[CTRL_ITEM_COUNT]), - pLRSpaceItem(0), - pMinMaxItem(0), - pULSpaceItem(0), - pTabStopItem(0), - pParaItem(0), - pParaBorderItem(0), - pPagePosItem(0), - pColumnItem(0), - pObjectItem(0), pEditWin(pWin), pRuler_Imp(new SvxRuler_Impl), bAppSetNullOffset(sal_False), // Is the 0-offset of the ruler set by the application? @@ -340,15 +331,6 @@ SvxRuler::~SvxRuler() delete pCtrlItem[i]; delete[] pCtrlItem; - delete pLRSpaceItem; - delete pMinMaxItem; - delete pULSpaceItem; - delete pTabStopItem; - delete pParaItem; - delete pParaBorderItem; - delete pPagePosItem; - delete pColumnItem; - delete pObjectItem; delete[] pIndents; delete[] pBorders; delete[] pObjectBorders; @@ -491,12 +473,11 @@ void SvxRuler::UpdateFrame() pRuler_Imp->aProtectItem.IsPosProtected() ) ? 0 : RULER_MARGIN_SIZEABLE; - if(pLRSpaceItem && pPagePosItem) + if(mpLRSpaceItem.get() && mpPagePosItem.get()) { // if no initialization by default app behavior const long nOld = lLogicNullOffset; - lLogicNullOffset = pColumnItem? - pColumnItem->GetLeft(): pLRSpaceItem->GetLeft(); + lLogicNullOffset = mpColumnItem.get() ? mpColumnItem->GetLeft(): mpLRSpaceItem->GetLeft(); if(bAppSetNullOffset) lAppNullOffset += lLogicNullOffset - nOld; if(!bAppSetNullOffset || lAppNullOffset == LONG_MAX) @@ -509,25 +490,25 @@ void SvxRuler::UpdateFrame() SetMargin1( ConvertHPosPixel( lAppNullOffset ), nMarginStyle ); long lRight = 0; // evaluate the table right edge of the table - if(pColumnItem && pColumnItem->IsTable()) - lRight = pColumnItem->GetRight(); + if(mpColumnItem.get() && mpColumnItem->IsTable()) + lRight = mpColumnItem->GetRight(); else - lRight = pLRSpaceItem->GetRight(); + lRight = mpLRSpaceItem->GetRight(); sal_uIntPtr aWidth= - ConvertHPosPixel(pPagePosItem->GetWidth() - lRight - + ConvertHPosPixel(mpPagePosItem->GetWidth() - lRight - lLogicNullOffset + lAppNullOffset); SetMargin2( aWidth, nMarginStyle ); } - else if(pULSpaceItem && pPagePosItem) + else if(mpULSpaceItem.get() && mpPagePosItem.get()) { // relative the upper edge of the surrounding frame const long nOld = lLogicNullOffset; - lLogicNullOffset = pColumnItem? - pColumnItem->GetLeft(): pULSpaceItem->GetUpper(); + lLogicNullOffset = mpColumnItem.get() ? mpColumnItem->GetLeft() : mpULSpaceItem->GetUpper(); if(bAppSetNullOffset) lAppNullOffset += lLogicNullOffset - nOld; - if(!bAppSetNullOffset || lAppNullOffset == LONG_MAX) { + if(!bAppSetNullOffset || lAppNullOffset == LONG_MAX) + { Ruler::SetNullOffset(ConvertVPosPixel(lLogicNullOffset)); lAppNullOffset = 0; SetMargin1( 0, nMarginStyle ); @@ -535,12 +516,11 @@ void SvxRuler::UpdateFrame() else SetMargin1( ConvertVPosPixel( lAppNullOffset ),nMarginStyle ); - long lLower = pColumnItem ? - pColumnItem->GetRight() : pULSpaceItem->GetLower(); + long lLower = mpColumnItem.get() ? mpColumnItem->GetRight() : mpULSpaceItem->GetLower(); - SetMargin2(ConvertVPosPixel(pPagePosItem->GetHeight() - lLower - - lLogicNullOffset + lAppNullOffset), - nMarginStyle ); + SetMargin2( + ConvertVPosPixel(mpPagePosItem->GetHeight() - lLower - lLogicNullOffset + lAppNullOffset), + nMarginStyle); } else { @@ -548,10 +528,11 @@ void SvxRuler::UpdateFrame() SetMargin1(); SetMargin2(); } - if(pColumnItem) + + if(mpColumnItem.get()) { - pRuler_Imp->nColLeftPix = (sal_uInt16) ConvertSizePixel(pColumnItem->GetLeft()); - pRuler_Imp->nColRightPix = (sal_uInt16) ConvertSizePixel(pColumnItem->GetRight()); + pRuler_Imp->nColLeftPix = (sal_uInt16) ConvertSizePixel(mpColumnItem->GetLeft()); + pRuler_Imp->nColRightPix = (sal_uInt16) ConvertSizePixel(mpColumnItem->GetRight()); } } @@ -588,10 +569,10 @@ void SvxRuler::UpdateFrame(const SvxLongLRSpaceItem *pItem) // new value LRSpace /* Store new value LRSpace; delete old ones if possible */ if(bActive) { - delete pLRSpaceItem; - pLRSpaceItem = 0; if(pItem) - pLRSpaceItem = new SvxLongLRSpaceItem(*pItem); + mpLRSpaceItem.reset(new SvxLongLRSpaceItem(*pItem)); + else + mpLRSpaceItem.reset(NULL); StartListening_Impl(); } } @@ -601,10 +582,10 @@ void SvxRuler::UpdateFrameMinMax(const SfxRectangleItem *pItem) // value for Min /* Set new value for MinMax; delete old ones if possible */ if(bActive) { - delete pMinMaxItem; - pMinMaxItem = 0; if(pItem) - pMinMaxItem = new SfxRectangleItem(*pItem); + mpMinMaxItem.reset(new SfxRectangleItem(*pItem)); + else + mpMinMaxItem.reset(NULL); } } @@ -614,10 +595,10 @@ void SvxRuler::UpdateFrame(const SvxLongULSpaceItem *pItem) // new value /* Update Right/bottom margin */ if(bActive && !bHorz) { - delete pULSpaceItem; - pULSpaceItem = 0; if(pItem) - pULSpaceItem = new SvxLongULSpaceItem(*pItem); + mpULSpaceItem.reset(new SvxLongULSpaceItem(*pItem)); + else + mpULSpaceItem.reset(NULL); StartListening_Impl(); } } @@ -650,21 +631,20 @@ void SvxRuler::Update( { if(pItem) { - delete pColumnItem; pColumnItem = 0; + mpColumnItem.reset(new SvxColumnItem(*pItem)); pRuler_Imp->bIsTableRows = (pItem->Which() == SID_RULER_ROWS || pItem->Which() == SID_RULER_ROWS_VERTICAL); - pColumnItem = new SvxColumnItem(*pItem); if(!bHorz && !pRuler_Imp->bIsTableRows) - pColumnItem->SetWhich(SID_RULER_BORDERS_VERTICAL); + mpColumnItem->SetWhich(SID_RULER_BORDERS_VERTICAL); } - else if(pColumnItem && pColumnItem->Which() == nSID) + else if(mpColumnItem.get() && mpColumnItem->Which() == nSID) //there are two groups of column items table/frame columns and table rows //both can occur in vertical or horizontal mode //the horizontal ruler handles the SID_RULER_BORDERS and SID_RULER_ROWS_VERTICAL //and the vertical handles SID_RULER_BORDERS_VERTICAL and SID_RULER_ROWS - //if pColumnItem is already set with one of the ids then a NULL pItem argument + //if mpColumnItem is already set with one of the ids then a NULL pItem argument //must not delete it { - delete pColumnItem; pColumnItem = 0; + mpColumnItem.reset(NULL); pRuler_Imp->bIsTableRows = sal_False; } StartListening_Impl(); @@ -675,36 +655,37 @@ void SvxRuler::Update( void SvxRuler::UpdateColumns() { /* Update column view */ - if(pColumnItem && pColumnItem->Count() > 1) + if(mpColumnItem.get() && mpColumnItem->Count() > 1) { - if( nBorderCount < pColumnItem->Count()) + if( nBorderCount < mpColumnItem->Count()) { delete[] pBorders; - nBorderCount = pColumnItem->Count(); + nBorderCount = mpColumnItem->Count(); pBorders = new RulerBorder[nBorderCount]; } - sal_uInt16 _nFlags = RULER_BORDER_VARIABLE; + sal_uInt16 nStyleFlags = RULER_BORDER_VARIABLE; sal_Bool bProtectColumns = pRuler_Imp->aProtectItem.IsSizeProtected() || pRuler_Imp->aProtectItem.IsPosProtected(); if( !bProtectColumns ) - _nFlags |= RULER_BORDER_MOVEABLE; - if( pColumnItem->IsTable() ) - _nFlags |= RULER_BORDER_TABLE; + nStyleFlags |= RULER_BORDER_MOVEABLE; + + if( mpColumnItem->IsTable() ) + nStyleFlags |= RULER_BORDER_TABLE; else if ( !bProtectColumns ) - _nFlags |= RULER_BORDER_SIZEABLE; + nStyleFlags |= RULER_BORDER_SIZEABLE; - sal_uInt16 nBorders = pColumnItem->Count(); + sal_uInt16 nBorders = mpColumnItem->Count(); if(!pRuler_Imp->bIsTableRows) --nBorders; for(sal_uInt16 i = 0; i < nBorders; ++i) { - pBorders[i].nStyle = _nFlags; - if(!(*pColumnItem)[i].bVisible) + pBorders[i].nStyle = nStyleFlags; + if(!(*mpColumnItem.get())[i].bVisible) pBorders[i].nStyle |= RULER_STYLE_INVISIBLE; pBorders[i].nPos = - ConvertPosPixel((*pColumnItem)[i].nEnd + lAppNullOffset); - if(pColumnItem->Count() == i + 1) + ConvertPosPixel((*mpColumnItem.get())[i].nEnd + lAppNullOffset); + if(mpColumnItem->Count() == i + 1) { //with table rows the end of the table is contained in the //column item but it has no width! @@ -713,15 +694,15 @@ void SvxRuler::UpdateColumns() else { pBorders[i].nWidth = - ConvertSizePixel((*pColumnItem)[i+1].nStart - - (*pColumnItem)[i].nEnd); + ConvertSizePixel((*mpColumnItem.get())[i+1].nStart - + (*mpColumnItem.get())[i].nEnd); } pBorders[i].nMinPos = - ConvertPosPixel((*pColumnItem)[i].nEndMin + lAppNullOffset); + ConvertPosPixel((*mpColumnItem.get())[i].nEndMin + lAppNullOffset); pBorders[i].nMaxPos = - ConvertPosPixel((*pColumnItem)[i].nEndMax + lAppNullOffset); + ConvertPosPixel((*mpColumnItem.get())[i].nEndMax + lAppNullOffset); } - SetBorders(pColumnItem->Count()-1, pBorders); + SetBorders(mpColumnItem->Count() - 1, pBorders); } else { @@ -732,22 +713,22 @@ void SvxRuler::UpdateColumns() void SvxRuler::UpdateObject() { /* Update view of object representation */ - if(pObjectItem) + if(mpObjectItem.get()) { DBG_ASSERT(pObjectBorders, "no Buffer"); // !! to the page margin - long nMargin = pLRSpaceItem? pLRSpaceItem->GetLeft(): 0; + long nMargin = mpLRSpaceItem.get() ? mpLRSpaceItem->GetLeft() : 0; pObjectBorders[0].nPos = - ConvertPosPixel(pObjectItem->GetStartX() - + ConvertPosPixel(mpObjectItem->GetStartX() - nMargin + lAppNullOffset); pObjectBorders[1].nPos = - ConvertPosPixel(pObjectItem->GetEndX() - nMargin + lAppNullOffset); - nMargin = pULSpaceItem? pULSpaceItem->GetUpper(): 0; + ConvertPosPixel(mpObjectItem->GetEndX() - nMargin + lAppNullOffset); + nMargin = mpULSpaceItem.get() ? mpULSpaceItem->GetUpper() : 0; pObjectBorders[2].nPos = - ConvertPosPixel(pObjectItem->GetStartY() - + ConvertPosPixel(mpObjectItem->GetStartY() - nMargin + lAppNullOffset); pObjectBorders[3].nPos = - ConvertPosPixel(pObjectItem->GetEndY() - nMargin + lAppNullOffset); + ConvertPosPixel(mpObjectItem->GetEndY() - nMargin + lAppNullOffset); const sal_uInt16 nOff = GetObjectBordersOff(0); SetBorders(2, pObjectBorders + nOff); @@ -773,7 +754,7 @@ void SvxRuler::UpdatePara() */ // Dependence on PagePosItem - if(pParaItem && pPagePosItem && !pObjectItem) + if(mpParaItem.get() && mpPagePosItem.get() && !mpObjectItem.get()) { sal_Bool bRTLText = pRuler_Imp->pTextRTLItem && pRuler_Imp->pTextRTLItem->GetValue(); // First-line indent is negative to the left paragraph margin @@ -785,15 +766,15 @@ void SvxRuler::UpdatePara() if(bRTLText) { pIndents[INDENT_FIRST_LINE].nPos = ConvertHPosPixel( - nRightFrameMargin - pParaItem->GetTxtLeft() - pParaItem->GetTxtFirstLineOfst() + lAppNullOffset ); + nRightFrameMargin - mpParaItem->GetTxtLeft() - mpParaItem->GetTxtFirstLineOfst() + lAppNullOffset ); } else { pIndents[INDENT_FIRST_LINE].nPos = ConvertHPosPixel( - nLeftFrameMargin + pParaItem->GetTxtLeft() + pParaItem->GetTxtFirstLineOfst() + lAppNullOffset); + nLeftFrameMargin + mpParaItem->GetTxtLeft() + mpParaItem->GetTxtFirstLineOfst() + lAppNullOffset); } - if( pParaItem->IsAutoFirst() ) + if( mpParaItem->IsAutoFirst() ) pIndents[INDENT_FIRST_LINE].nStyle |= RULER_STYLE_INVISIBLE; else pIndents[INDENT_FIRST_LINE].nStyle &= ~RULER_STYLE_INVISIBLE; @@ -802,26 +783,26 @@ void SvxRuler::UpdatePara() { // left margin pIndents[INDENT_LEFT_MARGIN].nPos = - ConvertHPosPixel(nRightFrameMargin - pParaItem->GetTxtLeft() + lAppNullOffset); + ConvertHPosPixel(nRightFrameMargin - mpParaItem->GetTxtLeft() + lAppNullOffset); // right margin pIndents[INDENT_RIGHT_MARGIN].nPos = - ConvertHPosPixel(nLeftFrameMargin + pParaItem->GetRight() + lAppNullOffset); + ConvertHPosPixel(nLeftFrameMargin + mpParaItem->GetRight() + lAppNullOffset); } else { // left margin sal_Int32 leftMargin = - ConvertHPosPixel(nLeftFrameMargin + pParaItem->GetTxtLeft() + lAppNullOffset); + ConvertHPosPixel(nLeftFrameMargin + mpParaItem->GetTxtLeft() + lAppNullOffset); pIndents[INDENT_LEFT_MARGIN].nPos = leftMargin; // right margin, always negative to the right edge of the surrounding frames sal_Int32 rightMargin = - ConvertHPosPixel(nRightFrameMargin - pParaItem->GetRight() + lAppNullOffset); + ConvertHPosPixel(nRightFrameMargin - mpParaItem->GetRight() + lAppNullOffset); pIndents[INDENT_RIGHT_MARGIN].nPos = rightMargin; } - if(pParaBorderItem) + if(mpParaBorderItem.get()) { pIndents[INDENT_LEFT_BORDER].nPos = ConvertHPosPixel( nLeftFrameMargin + lAppNullOffset); @@ -851,10 +832,10 @@ void SvxRuler::UpdatePara(const SvxLRSpaceItem *pItem) // new value of paragraph /* Store new value of paragraph indents */ if(bActive) { - delete pParaItem; - pParaItem = 0; if(pItem) - pParaItem = new SvxLRSpaceItem(*pItem); + mpParaItem.reset(new SvxLRSpaceItem(*pItem)); + else + mpParaItem.reset(NULL); StartListening_Impl(); } } @@ -864,10 +845,10 @@ void SvxRuler::UpdateParaBorder(const SvxLRSpaceItem * pItem ) /* Border distance */ if(bActive) { - delete pParaBorderItem; - pParaBorderItem = 0; if(pItem) - pParaBorderItem = new SvxLRSpaceItem(*pItem); + mpParaBorderItem.reset(new SvxLRSpaceItem(*pItem)); + else + mpParaBorderItem.reset(NULL); StartListening_Impl(); } } @@ -875,21 +856,21 @@ void SvxRuler::UpdateParaBorder(const SvxLRSpaceItem * pItem ) void SvxRuler::UpdatePage() { /* Update view of position and width of page */ - if(pPagePosItem) + if(mpPagePosItem.get()) { // all objects are automatically adjusted if(bHorz) { SetPagePos( - pEditWin->LogicToPixel(pPagePosItem->GetPos()).X(), - pEditWin->LogicToPixel(Size(pPagePosItem->GetWidth(),0)). + pEditWin->LogicToPixel(mpPagePosItem->GetPos()).X(), + pEditWin->LogicToPixel(Size(mpPagePosItem->GetWidth(), 0)). Width()); } else { SetPagePos( - pEditWin->LogicToPixel(pPagePosItem->GetPos()).Y(), - pEditWin->LogicToPixel(Size(0, pPagePosItem->GetHeight())). + pEditWin->LogicToPixel(mpPagePosItem->GetPos()).Y(), + pEditWin->LogicToPixel(Size(0, mpPagePosItem->GetHeight())). Height()); } if(bAppSetNullOffset) @@ -915,12 +896,12 @@ void SvxRuler::UpdatePage() else { Point aPos(aEdtWinPos - aOwnPos); - lPos= bHorz ? aPos.X() : aPos.Y(); + lPos = bHorz ? aPos.X() : aPos.Y(); } // Unfortunately, we get the offset of the edit window to the ruler never // through a status message. So we set it ourselves if necessary. - if(lPos!=pRuler_Imp->lOldWinPos) + if(lPos != pRuler_Imp->lOldWinPos) { pRuler_Imp->lOldWinPos=lPos; SetWinPos(lPos); @@ -932,10 +913,10 @@ void SvxRuler::Update(const SvxPagePosSizeItem *pItem) // new value of page attr /* Store new value of page attributes */ if(bActive) { - delete pPagePosItem; - pPagePosItem = 0; if(pItem) - pPagePosItem = new SvxPagePosSizeItem(*pItem); + mpPagePosItem.reset(new SvxPagePosSizeItem(*pItem)); + else + mpPagePosItem.reset(NULL); StartListening_Impl(); } } @@ -977,7 +958,7 @@ void SvxRuler::UpdateTabs() { if(IsDrag()) return; - if(pPagePosItem && pParaItem && pTabStopItem && !pObjectItem) + if(mpPagePosItem.get() && mpParaItem.get() && mpTabStopItem.get() && !mpObjectItem.get()) { // buffer for DefaultTabStop // Distance last Tab <-> Right paragraph margin / DefaultTabDist @@ -985,18 +966,18 @@ void SvxRuler::UpdateTabs() long nLeftFrameMargin = GetLeftFrameMargin(); long nRightFrameMargin = GetRightFrameMargin(); - //#i24363# tab stops relative to indent - const long nParaItemTxtLeft = pParaItem->GetTxtLeft(); + //#i24363# tab stops relative to indent + const long nParaItemTxtLeft = mpParaItem->GetTxtLeft(); const long lParaIndent = nLeftFrameMargin + nParaItemTxtLeft; const long lLastTab = - pTabStopItem->Count()? - ConvertHPosPixel((*pTabStopItem)[pTabStopItem->Count()-1].GetTabPos()): 0; + mpTabStopItem->Count()? + ConvertHPosPixel((*mpTabStopItem.get())[mpTabStopItem->Count()-1].GetTabPos()): 0; const long lPosPixel = ConvertHPosPixel(lParaIndent) + lLastTab; const long lRightIndent = - ConvertHPosPixel(nRightFrameMargin - pParaItem->GetRight()); + ConvertHPosPixel(nRightFrameMargin - mpParaItem->GetRight()); long nDefTabDist = ConvertHPosPixel(lDefTabDist); if( !nDefTabDist ) nDefTabDist = 1; @@ -1005,11 +986,11 @@ void SvxRuler::UpdateTabs() ? 0 : (sal_uInt16)( (lRightIndent - lPosPixel) / nDefTabDist ); - if(pTabStopItem->Count() + TAB_GAP + nDefTabBuf > nTabBufSize) + if(mpTabStopItem->Count() + TAB_GAP + nDefTabBuf > nTabBufSize) { delete[] pTabs; // 10 (GAP) in stock - nTabBufSize = pTabStopItem->Count() + TAB_GAP + nDefTabBuf + GAP; + nTabBufSize = mpTabStopItem->Count() + TAB_GAP + nDefTabBuf + GAP; pTabs = new RulerTab[nTabBufSize]; } @@ -1018,9 +999,9 @@ void SvxRuler::UpdateTabs() //#i24363# tab stops relative to indent const long lRightPixMargin = ConvertSizePixel(nRightFrameMargin - nParaItemTxtLeft ); const long lParaIndentPix = ConvertSizePixel(lParaIndent); - for(j = 0; j < pTabStopItem->Count(); ++j) + for(j = 0; j < mpTabStopItem->Count(); ++j) { - const SvxTabStop *pTab = &(*pTabStopItem)[j]; + const SvxTabStop *pTab = &(*mpTabStopItem.get())[j]; pTabs[nTabCount+TAB_GAP].nPos = ConvertHPosPixel( (pRuler_Imp->bIsTabsRelativeToIndent ? lParaIndent : 0 ) + pTab->GetTabPos() + lAppNullOffset); @@ -1031,7 +1012,7 @@ void SvxRuler::UpdateTabs() pTabs[nTabCount+TAB_GAP].nStyle = ToSvTab_Impl(pTab->GetAdjustment()); ++nTabCount; } - if(!pTabStopItem->Count()) + if(!mpTabStopItem->Count()) pTabs[0].nPos = bRTL ? lRightPixMargin : lParaIndentPix; // fill the rest with default Tabs @@ -1083,11 +1064,10 @@ void SvxRuler::UpdateTabs() else { //simply add the default distance to the last position - pTabs[nTabCount + TAB_GAP].nPos = - pTabs[nTabCount].nPos + nDefTabDist; + pTabs[nTabCount + TAB_GAP].nPos = pTabs[nTabCount].nPos + nDefTabDist; } - if(pTabs[nTabCount+TAB_GAP].nPos >= lRightIndent) + if(pTabs[nTabCount + TAB_GAP].nPos >= lRightIndent) break; pTabs[nTabCount + TAB_GAP].nStyle = RULER_TAB_DEFAULT; ++nTabCount; @@ -1107,13 +1087,15 @@ void SvxRuler::Update(const SvxTabStopItem *pItem) // new value for tabs /* Store new value for tabs; delete old ones if possible */ if(bActive) { - delete pTabStopItem; - pTabStopItem = 0; if(pItem) { - pTabStopItem = new SvxTabStopItem(*pItem); + mpTabStopItem.reset(new SvxTabStopItem(*pItem)); if(!bHorz) - pTabStopItem->SetWhich(SID_ATTR_TABSTOP_VERTICAL); + mpTabStopItem->SetWhich(SID_ATTR_TABSTOP_VERTICAL); + } + else + { + mpTabStopItem.reset(NULL); } StartListening_Impl(); } @@ -1124,10 +1106,10 @@ void SvxRuler::Update(const SvxObjectItem *pItem) // new value for objects /* Store new value for objects */ if(bActive) { - delete pObjectItem; - pObjectItem = 0; if(pItem) - pObjectItem = new SvxObjectItem(*pItem); + mpObjectItem.reset(new SvxObjectItem(*pItem)); + else + mpObjectItem.reset(NULL); StartListening_Impl(); } } @@ -1162,9 +1144,9 @@ void SvxRuler::Update() long SvxRuler::GetPageWidth() const { - if ( !pPagePosItem ) + if (!mpPagePosItem.get()) return 0; - return bHorz ? pPagePosItem->GetWidth() : pPagePosItem->GetHeight(); + return bHorz ? mpPagePosItem->GetWidth() : mpPagePosItem->GetHeight(); } inline long SvxRuler::GetFrameLeft() const @@ -1175,42 +1157,46 @@ inline long SvxRuler::GetFrameLeft() const Ruler::GetNullOffset(); } -inline void SvxRuler::SetFrameLeft(long l) +inline void SvxRuler::SetFrameLeft(long lFrameLeft) { /* Set Left margin in Pixels */ sal_Bool bProtectColumns = - pRuler_Imp->aProtectItem.IsSizeProtected() || - pRuler_Imp->aProtectItem.IsPosProtected(); + pRuler_Imp->aProtectItem.IsSizeProtected() || + pRuler_Imp->aProtectItem.IsPosProtected(); if(bAppSetNullOffset) - SetMargin1(l - ConvertSizePixel(lLogicNullOffset), + { + SetMargin1(lFrameLeft - ConvertSizePixel(lLogicNullOffset), bProtectColumns ? 0 : RULER_MARGIN_SIZEABLE); + } else - Ruler::SetNullOffset(l); + { + Ruler::SetNullOffset(lFrameLeft); + } } long SvxRuler::GetFirstLineIndent() const { /* Get First-line indent in pixels */ - return pParaItem? pIndents[INDENT_FIRST_LINE].nPos: GetMargin1(); + return mpParaItem.get() ? pIndents[INDENT_FIRST_LINE].nPos : GetMargin1(); } long SvxRuler::GetLeftIndent() const { /* Get Left paragraph margin in Pixels */ - return pParaItem? pIndents[INDENT_LEFT_MARGIN].nPos: GetMargin1(); + return mpParaItem.get() ? pIndents[INDENT_LEFT_MARGIN].nPos : GetMargin1(); } long SvxRuler::GetRightIndent() const { /* Get Right paragraph margin in Pixels */ - return pParaItem? pIndents[INDENT_RIGHT_MARGIN].nPos: GetMargin2(); + return mpParaItem.get() ? pIndents[INDENT_RIGHT_MARGIN].nPos : GetMargin2(); } long SvxRuler::GetLogicRightIndent() const { /* Get Right paragraph margin in Logic */ - return pParaItem ? GetRightFrameMargin()-pParaItem->GetRight() : GetRightFrameMargin(); + return mpParaItem.get() ? GetRightFrameMargin() - mpParaItem->GetRight() : GetRightFrameMargin(); } // Left margin in App values, is either the margin (= 0) or the left edge of @@ -1218,72 +1204,79 @@ long SvxRuler::GetLogicRightIndent() const long SvxRuler::GetLeftFrameMargin() const { // #126721# for some unknown reason the current column is set to 0xffff - DBG_ASSERT(!pColumnItem || pColumnItem->GetActColumn() < pColumnItem->Count(), + DBG_ASSERT(!mpColumnItem.get() || mpColumnItem->GetActColumn() < mpColumnItem->Count(), "issue #126721# - invalid current column!"); long nLeft = 0; - if (pColumnItem && - pColumnItem->Count() && - pColumnItem->GetActColumn() < pColumnItem->Count()) + if (mpColumnItem.get() && + mpColumnItem->Count() && + mpColumnItem->GetActColumn() < mpColumnItem->Count()) { - nLeft = (*pColumnItem)[pColumnItem->GetActColumn()].nStart; + nLeft = (*mpColumnItem.get())[mpColumnItem->GetActColumn()].nStart; } - //if(pParaBorderItem && (!pColumnItem || pColumnItem->IsTable())) - // nLeft += pParaBorderItem->GetLeft(); + if(mpParaBorderItem.get() && (!mpColumnItem || mpColumnItem->IsTable())) + nLeft += mpParaBorderItem->GetLeft(); return nLeft; } inline long SvxRuler::GetLeftMin() const { - DBG_ASSERT(pMinMaxItem, "no MinMax value set"); - return pMinMaxItem? - bHorz? pMinMaxItem->GetValue().Left(): pMinMaxItem->GetValue().Top() - : 0; + DBG_ASSERT(mpMinMaxItem.get(), "no MinMax value set"); + if (mpMinMaxItem.get()) + { + if (bHorz) + return mpMinMaxItem->GetValue().Left(); + else + return mpMinMaxItem->GetValue().Top(); + } + return 0; } inline long SvxRuler::GetRightMax() const { - DBG_ASSERT(pMinMaxItem, "no MinMax value set"); - return pMinMaxItem? - bHorz? pMinMaxItem->GetValue().Right(): pMinMaxItem->GetValue().Bottom() - : 0; + DBG_ASSERT(mpMinMaxItem.get(), "no MinMax value set"); + if (mpMinMaxItem.get()) + { + if (bHorz) + return mpMinMaxItem->GetValue().Right(); + else + return mpMinMaxItem->GetValue().Bottom(); + } + return 0; } long SvxRuler::GetRightFrameMargin() const { /* Get right frame margin (in logical units) */ - if(pColumnItem) + if(mpColumnItem.get()) { if(!IsActLastColumn( sal_True )) { - return (*pColumnItem)[GetActRightColumn( sal_True )].nEnd; + return (*mpColumnItem.get())[GetActRightColumn( sal_True )].nEnd; } } long lResult = lLogicNullOffset; // If possible deduct right table entry - if(pColumnItem && pColumnItem->IsTable()) - lResult += pColumnItem->GetRight(); - else if(bHorz && pLRSpaceItem) - lResult += pLRSpaceItem->GetRight(); - else if(!bHorz && pULSpaceItem) - lResult += pULSpaceItem->GetLower(); - - if(pParaBorderItem && (!pColumnItem || pColumnItem->IsTable() || IsActLastColumn( sal_True ))) - lResult += pParaBorderItem->GetRight(); + if(mpColumnItem.get() && mpColumnItem->IsTable()) + lResult += mpColumnItem->GetRight(); + else if(bHorz && mpLRSpaceItem.get()) + lResult += mpLRSpaceItem->GetRight(); + else if(!bHorz && mpULSpaceItem.get()) + lResult += mpULSpaceItem->GetLower(); if(bHorz) - lResult = pPagePosItem->GetWidth() - lResult; + lResult = mpPagePosItem->GetWidth() - lResult; else - lResult = pPagePosItem->GetHeight() - lResult; + lResult = mpPagePosItem->GetHeight() - lResult; return lResult; } #define NEG_FLAG ( (nFlags & SVXRULER_SUPPORT_NEGATIVE_MARGINS) == \ SVXRULER_SUPPORT_NEGATIVE_MARGINS ) -#define TAB_FLAG ( pColumnItem && pColumnItem->IsTable() ) +#define TAB_FLAG ( mpColumnItem.get() && mpColumnItem->IsTable() ) long SvxRuler::GetCorrectedDragPos( sal_Bool bLeft, sal_Bool bRight ) { @@ -1324,7 +1317,7 @@ void SvxRuler::DragMargin1() return; DrawLine_Impl(lTabPos, ( TAB_FLAG && NEG_FLAG ) ? 3 : 7, bHorz); - if(pColumnItem && (nDragType & DRAG_OBJECT_SIZE_PROPORTIONAL)) + if (mpColumnItem.get() && (nDragType & DRAG_OBJECT_SIZE_PROPORTIONAL)) DragBorders(); AdjustMargin1(aDragPosition); } @@ -1344,31 +1337,31 @@ void SvxRuler::AdjustMargin1(long lDiff) { long _lDiff = lDragPos; SetNullOffset(nOld + _lDiff); - if(!pColumnItem||!(nDragType & DRAG_OBJECT_SIZE_LINEAR)) + if (!mpColumnItem.get() || !(nDragType & DRAG_OBJECT_SIZE_LINEAR)) { SetMargin2( GetMargin2() - _lDiff, nMarginStyle ); - if(!pColumnItem && !pObjectItem && pParaItem) + if (!mpColumnItem.get() && !mpObjectItem.get() && mpParaItem.get()) { // Right indent of the old position pIndents[INDENT_RIGHT_MARGIN].nPos -= _lDiff; SetIndents(INDENT_COUNT, pIndents+INDENT_GAP); } - if(pObjectItem) + if(mpObjectItem.get()) { pObjectBorders[GetObjectBordersOff(0)].nPos -= _lDiff; pObjectBorders[GetObjectBordersOff(1)].nPos -= _lDiff; SetBorders(2, pObjectBorders + GetObjectBordersOff(0)); } - if(pColumnItem) + if(mpColumnItem.get()) { - for(sal_uInt16 i = 0; i < pColumnItem->Count()-1; ++i) + for(sal_uInt16 i = 0; i < mpColumnItem->Count()-1; ++i) pBorders[i].nPos -= _lDiff; - SetBorders(pColumnItem->Count()-1, pBorders); - if(pColumnItem->IsFirstAct()) + SetBorders(mpColumnItem->Count()-1, pBorders); + if(mpColumnItem->IsFirstAct()) { // Right indent of the old position - if(pParaItem) + if(mpParaItem.get()) { pIndents[INDENT_RIGHT_MARGIN].nPos -= _lDiff; SetIndents(INDENT_COUNT, pIndents+INDENT_GAP); @@ -1376,7 +1369,7 @@ void SvxRuler::AdjustMargin1(long lDiff) } else { - if(pParaItem) + if(mpParaItem.get()) { pIndents[INDENT_FIRST_LINE].nPos -= _lDiff; pIndents[INDENT_LEFT_MARGIN].nPos -= _lDiff; @@ -1384,7 +1377,7 @@ void SvxRuler::AdjustMargin1(long lDiff) SetIndents(INDENT_COUNT, pIndents+INDENT_GAP); } } - if(pTabStopItem&& (nDragType & DRAG_OBJECT_SIZE_PROPORTIONAL) + if(mpTabStopItem.get() && (nDragType & DRAG_OBJECT_SIZE_PROPORTIONAL) &&!IsActFirstColumn()) { ModifyTabs_Impl(nTabCount+TAB_GAP, pTabs, -_lDiff); @@ -1398,10 +1391,9 @@ void SvxRuler::AdjustMargin1(long lDiff) long _lDiff = lDragPos - nOld; SetMargin1(nOld + _lDiff, nMarginStyle ); - if(!pColumnItem||!(nDragType & (DRAG_OBJECT_SIZE_LINEAR | - DRAG_OBJECT_SIZE_PROPORTIONAL))) + if (!mpColumnItem.get() || !(nDragType & (DRAG_OBJECT_SIZE_LINEAR | DRAG_OBJECT_SIZE_PROPORTIONAL))) { - if(!pColumnItem && !pObjectItem && pParaItem) + if (!mpColumnItem.get() && !mpObjectItem.get() && mpParaItem.get()) { // Left indent of the old position pIndents[INDENT_FIRST_LINE].nPos += _lDiff; @@ -1409,15 +1401,15 @@ void SvxRuler::AdjustMargin1(long lDiff) SetIndents(INDENT_COUNT, pIndents+INDENT_GAP); } - if(pColumnItem) + if (mpColumnItem.get()) { - for(sal_uInt16 i = 0; i < pColumnItem->Count()-1; ++i) + for(sal_uInt16 i = 0; i < mpColumnItem->Count()-1; ++i) pBorders[i].nPos += _lDiff; - SetBorders(pColumnItem->Count()-1, pBorders); - if(pColumnItem->IsFirstAct()) + SetBorders(mpColumnItem->Count()-1, pBorders); + if (mpColumnItem->IsFirstAct()) { // Left indent of the old position - if(pParaItem) + if(mpParaItem.get()) { pIndents[INDENT_FIRST_LINE].nPos += _lDiff; pIndents[INDENT_LEFT_MARGIN].nPos += _lDiff; @@ -1426,7 +1418,7 @@ void SvxRuler::AdjustMargin1(long lDiff) } else { - if(pParaItem) + if(mpParaItem.get()) { pIndents[INDENT_FIRST_LINE].nPos += _lDiff; pIndents[INDENT_LEFT_MARGIN].nPos += _lDiff; @@ -1435,7 +1427,7 @@ void SvxRuler::AdjustMargin1(long lDiff) } } } - if(pTabStopItem) + if(mpTabStopItem.get()) { ModifyTabs_Impl(nTabCount+TAB_GAP, pTabs, _lDiff); SetTabs(nTabCount, pTabs+TAB_GAP); @@ -1455,8 +1447,10 @@ void SvxRuler::DragMargin2() if (lDiff == 0) return; - if(pRuler_Imp->bIsTableRows && !bHorz && pColumnItem && - (nDragType & DRAG_OBJECT_SIZE_PROPORTIONAL)) + if( pRuler_Imp->bIsTableRows && + !bHorz && + mpColumnItem.get() && + (nDragType & DRAG_OBJECT_SIZE_PROPORTIONAL)) { DragBorders(); } @@ -1464,12 +1458,13 @@ void SvxRuler::DragMargin2() sal_Bool bProtectColumns = pRuler_Imp->aProtectItem.IsSizeProtected() || pRuler_Imp->aProtectItem.IsPosProtected(); - const sal_uInt16 nMarginStyle = - bProtectColumns ? 0 : RULER_MARGIN_SIZEABLE; + + const sal_uInt16 nMarginStyle = bProtectColumns ? 0 : RULER_MARGIN_SIZEABLE; + SetMargin2( aDragPosition, nMarginStyle ); // Right indent of the old position - if((!pColumnItem || IsActLastColumn()) && pParaItem) + if((!mpColumnItem.get() || IsActLastColumn()) && mpParaItem.get()) { pIndents[INDENT_FIRST_LINE].nPos += lDiff; SetIndents(INDENT_COUNT, pIndents + INDENT_GAP); @@ -1526,8 +1521,8 @@ void SvxRuler::DrawLine_Impl(long& lTabPosition, int nNew, sal_Bool bHorizontal) long nDrapPosition = GetCorrectedDragPos( ( nNew & 4 ) != 0, ( nNew & 2 ) != 0 ); nDrapPosition = MakePositionSticky(nDrapPosition); lTabPosition = ConvertHSizeLogic( nDrapPosition + GetNullOffset() ); - if(pPagePosItem) - lTabPosition += pPagePosItem->GetPos().X(); + if(mpPagePosItem.get()) + lTabPosition += mpPagePosItem->GetPos().X(); pEditWin->InvertTracking( Rectangle( Point(lTabPosition, -aZero.Y()), Point(lTabPosition, -aZero.Y() + nHeight) ), @@ -1551,8 +1546,8 @@ void SvxRuler::DrawLine_Impl(long& lTabPosition, int nNew, sal_Bool bHorizontal) long nDrapPosition = GetCorrectedDragPos(); nDrapPosition = MakePositionSticky(nDrapPosition); lTabPosition = ConvertVSizeLogic(nDrapPosition + GetNullOffset()); - if(pPagePosItem) - lTabPosition += pPagePosItem->GetPos().Y(); + if(mpPagePosItem.get()) + lTabPosition += mpPagePosItem->GetPos().Y(); pEditWin->InvertTracking( Rectangle( Point(-aZero.X(), lTabPosition), Point(-aZero.X()+nWidth, lTabPosition)), @@ -1807,7 +1802,7 @@ ADD_DEBUG_TEXT("lLastLMargin: ", OUString::number(pRuler_Imp->lLastLMargin)) else { //otherwise the right borders are moved - for(int i = pColumnItem->Count() - 1; i > nIndex; --i) + for(int i = mpColumnItem->Count() - 1; i > nIndex; --i) pBorders[i].nPos += lDiff; SetMargin2( GetMargin2() + lDiff, 0 ); } @@ -1882,7 +1877,7 @@ ADD_DEBUG_TEXT("lLastLMargin: ", OUString::number(pRuler_Imp->lLastLMargin)) { UpdateParaContents_Impl(lDiff, MOVE_LEFT); } - SetBorders(pColumnItem->Count() - 1, pBorders); + SetBorders(mpColumnItem->Count() - 1, pBorders); } void SvxRuler::DragObjectBorder() @@ -1909,53 +1904,53 @@ void SvxRuler::ApplyMargins() { const long lOldNull = lLogicNullOffset; if(pRuler_Imp->lMaxLeftLogic!=-1&&nMaxLeft==GetMargin1()+Ruler::GetNullOffset()) - pLRSpaceItem->SetLeft(lLogicNullOffset=pRuler_Imp->lMaxLeftLogic); + mpLRSpaceItem->SetLeft(lLogicNullOffset=pRuler_Imp->lMaxLeftLogic); else - pLRSpaceItem->SetLeft(PixelHAdjust( + mpLRSpaceItem->SetLeft(PixelHAdjust( lLogicNullOffset = ConvertHPosLogic(GetFrameLeft()) - - lAppNullOffset, pLRSpaceItem->GetLeft())); + lAppNullOffset, mpLRSpaceItem->GetLeft())); if(bAppSetNullOffset) lAppNullOffset += lLogicNullOffset - lOldNull; if(pRuler_Imp->lMaxRightLogic!=-1 &&nMaxRight==GetMargin2()+Ruler::GetNullOffset()) - pLRSpaceItem->SetRight(GetPageWidth()-pRuler_Imp->lMaxRightLogic); + mpLRSpaceItem->SetRight(GetPageWidth()-pRuler_Imp->lMaxRightLogic); else - pLRSpaceItem->SetRight( + mpLRSpaceItem->SetRight( PixelHAdjust( - std::max((long)0,pPagePosItem->GetWidth() - - pLRSpaceItem->GetLeft() - + std::max((long)0,mpPagePosItem->GetWidth() - + mpLRSpaceItem->GetLeft() - (ConvertHPosLogic(GetMargin2()) - - lAppNullOffset)),pLRSpaceItem->GetRight())); - pItem = pLRSpaceItem; + lAppNullOffset)),mpLRSpaceItem->GetRight())); + pItem = mpLRSpaceItem.get(); #ifdef DEBUGLIN - Debug_Impl(pEditWin,*pLRSpaceItem); + Debug_Impl(pEditWin, *mpLRSpaceItem); #endif // DEBUGLIN } else { const long lOldNull = lLogicNullOffset; - pULSpaceItem->SetUpper( + mpULSpaceItem->SetUpper( PixelVAdjust( lLogicNullOffset = ConvertVPosLogic(GetFrameLeft()) - - lAppNullOffset,pULSpaceItem->GetUpper())); + lAppNullOffset,mpULSpaceItem->GetUpper())); if(bAppSetNullOffset) lAppNullOffset += lLogicNullOffset - lOldNull; - pULSpaceItem->SetLower( + mpULSpaceItem->SetLower( PixelVAdjust( - std::max((long)0, pPagePosItem->GetHeight() - - pULSpaceItem->GetUpper() - + std::max((long)0, mpPagePosItem->GetHeight() - + mpULSpaceItem->GetUpper() - (ConvertVPosLogic(GetMargin2()) - - lAppNullOffset)),pULSpaceItem->GetLower())); - pItem = pULSpaceItem; + lAppNullOffset)),mpULSpaceItem->GetLower())); + pItem = mpULSpaceItem.get(); nId = SID_ATTR_LONG_ULSPACE; #ifdef DEBUGLIN - Debug_Impl(pEditWin,*pULSpaceItem); + Debug_Impl(pEditWin,*mpULSpaceItem.get()); #endif // DEBUGLIN } pBindings->GetDispatcher()->Execute( nId, SFX_CALLMODE_RECORD, pItem, 0L ); - if(pTabStopItem) + if(mpTabStopItem.get()) UpdateTabs(); } @@ -1963,9 +1958,9 @@ void SvxRuler::ApplyIndents() { /* Applying paragraph settings; changed by dragging. */ long nNewTxtLeft; - if(pColumnItem && !IsActFirstColumn( sal_True )) + if(mpColumnItem.get() && !IsActFirstColumn(sal_True)) { - long nLeftCol=GetActLeftColumn( sal_True ); + long nLeftCol = GetActLeftColumn(sal_True); nNewTxtLeft = PixelHAdjust( ConvertHPosLogic( @@ -1973,18 +1968,19 @@ void SvxRuler::ApplyIndents() (pBorders[nLeftCol].nPos + pBorders[nLeftCol].nWidth)) - lAppNullOffset, - pParaItem->GetTxtLeft()); + mpParaItem->GetTxtLeft()); } else { nNewTxtLeft = PixelHAdjust( ConvertHPosLogic(pIndents[INDENT_LEFT_MARGIN].nPos), - pParaItem->GetTxtLeft()); + mpParaItem->GetTxtLeft()); } sal_Bool bRTL = pRuler_Imp->pTextRTLItem && pRuler_Imp->pTextRTLItem->GetValue(); long nNewFirstLineOffset; + if(bRTL) { long nRightFrameMargin = GetRightFrameMargin(); @@ -1992,7 +1988,7 @@ void SvxRuler::ApplyIndents() nRightFrameMargin - ConvertHPosLogic(pIndents[INDENT_FIRST_LINE].nPos ) - lAppNullOffset, - pParaItem->GetTxtFirstLineOfst()); + mpParaItem->GetTxtFirstLineOfst()); } else { @@ -2000,7 +1996,7 @@ void SvxRuler::ApplyIndents() ConvertHPosLogic(pIndents[INDENT_FIRST_LINE].nPos - pIndents[INDENT_LEFT_MARGIN].nPos) - lAppNullOffset, - pParaItem->GetTxtFirstLineOfst()); + mpParaItem->GetTxtFirstLineOfst()); } // If the new TxtLeft is smaller than the old FirstLineIndent, then the @@ -2013,56 +2009,55 @@ void SvxRuler::ApplyIndents() long nRightFrameMargin = GetRightFrameMargin(); nNewTxtLeft = nRightFrameMargin - nNewTxtLeft - nLeftFrameMargin; nNewFirstLineOffset -= nNewTxtLeft; - if(pParaBorderItem) + if(mpParaBorderItem.get()) { - nNewTxtLeft += pParaBorderItem->GetLeft() + pParaBorderItem->GetRight(); - nNewFirstLineOffset -= pParaBorderItem->GetRight(); + nNewTxtLeft += mpParaBorderItem->GetLeft() + mpParaBorderItem->GetRight(); + nNewFirstLineOffset -= mpParaBorderItem->GetRight(); } } - pParaItem->SetTxtFirstLineOfst(sal::static_int_cast< short >(nNewFirstLineOffset)); - pParaItem->SetTxtLeft(nNewTxtLeft); + mpParaItem->SetTxtFirstLineOfst(sal::static_int_cast< short >(nNewFirstLineOffset)); + mpParaItem->SetTxtLeft(nNewTxtLeft); - if(pColumnItem && ((!bRTL && !IsActLastColumn( sal_True )) || (bRTL && !IsActFirstColumn()))) + if(mpColumnItem.get() && ((!bRTL && !IsActLastColumn( sal_True )) || (bRTL && !IsActFirstColumn()))) { if(bRTL) { long nActBorder = pBorders[GetActLeftColumn( sal_True )].nPos; long nRightMargin = pIndents[INDENT_RIGHT_MARGIN].nPos; long nConvert = ConvertHPosLogic( nRightMargin - nActBorder ); - pParaItem->SetRight( PixelHAdjust( nConvert - lAppNullOffset, pParaItem->GetRight() ) ); + mpParaItem->SetRight( PixelHAdjust( nConvert - lAppNullOffset, mpParaItem->GetRight() ) ); } else { - pParaItem->SetRight( + mpParaItem->SetRight( PixelHAdjust( ConvertHPosLogic( pBorders[GetActRightColumn( sal_True )].nPos - pIndents[INDENT_RIGHT_MARGIN].nPos) - lAppNullOffset, - pParaItem->GetRight())); + mpParaItem->GetRight())); } - } else { if(bRTL) { - pParaItem->SetRight( PixelHAdjust( + mpParaItem->SetRight( PixelHAdjust( ConvertHPosLogic(GetMargin1() + pIndents[INDENT_RIGHT_MARGIN].nPos) - GetLeftFrameMargin() + - (pParaBorderItem ? pParaBorderItem->GetLeft() : 0) - - lAppNullOffset, pParaItem->GetRight())); + (mpParaBorderItem.get() ? mpParaBorderItem->GetLeft() : 0) - + lAppNullOffset, mpParaItem->GetRight())); } else { - pParaItem->SetRight( PixelHAdjust( + mpParaItem->SetRight( PixelHAdjust( ConvertHPosLogic(GetMargin2() - pIndents[INDENT_RIGHT_MARGIN].nPos) - - lAppNullOffset, pParaItem->GetRight())); + lAppNullOffset, mpParaItem->GetRight())); } } sal_uInt16 nParaId = bHorz ? SID_ATTR_PARA_LRSPACE : SID_ATTR_PARA_LRSPACE_VERTICAL; - pBindings->GetDispatcher()->Execute( nParaId, SFX_CALLMODE_RECORD, pParaItem, 0L ); + pBindings->GetDispatcher()->Execute( nParaId, SFX_CALLMODE_RECORD, mpParaItem.get(), 0L ); UpdateTabs(); } @@ -2073,12 +2068,12 @@ void SvxRuler::ApplyTabs() const sal_uInt16 nCoreIdx = GetDragAryPos(); if(IsDragDelete()) { - pTabStopItem->Remove(nCoreIdx); + mpTabStopItem->Remove(nCoreIdx); } else if(DRAG_OBJECT_SIZE_LINEAR & nDragType || DRAG_OBJECT_SIZE_PROPORTIONAL & nDragType) { - SvxTabStopItem *pItem = new SvxTabStopItem(pTabStopItem->Which()); + SvxTabStopItem *pItem = new SvxTabStopItem(mpTabStopItem->Which()); //remove default tab stops for ( sal_uInt16 i = 0; i < pItem->Count(); ) { @@ -2093,11 +2088,11 @@ void SvxRuler::ApplyTabs() sal_uInt16 j; for(j = 0; j < nCoreIdx; ++j) { - pItem->Insert((*pTabStopItem)[j]); + pItem->Insert((*mpTabStopItem.get())[j]); } - for(; j < pTabStopItem->Count(); ++j) + for(; j < mpTabStopItem->Count(); ++j) { - SvxTabStop aTabStop = (*pTabStopItem)[j]; + SvxTabStop aTabStop = (*mpTabStopItem.get())[j]; aTabStop.GetTabPos() = PixelHAdjust( ConvertHPosLogic(pTabs[j+TAB_GAP].nPos - GetLeftIndent()) - @@ -2105,14 +2100,13 @@ void SvxRuler::ApplyTabs() aTabStop.GetTabPos()); pItem->Insert(aTabStop); } - delete pTabStopItem; - pTabStopItem = pItem; + mpTabStopItem.reset(pItem); } - else if( pTabStopItem->Count() == 0 ) + else if( mpTabStopItem->Count() == 0 ) return; else { - SvxTabStop aTabStop = (*pTabStopItem)[nCoreIdx]; + SvxTabStop aTabStop = (*mpTabStopItem.get())[nCoreIdx]; if(pRuler_Imp->lMaxRightLogic!=-1&& pTabs[nCoreIdx+TAB_GAP].nPos+Ruler::GetNullOffset()==nMaxRight) aTabStop.GetTabPos() = pRuler_Imp->lMaxRightLogic-lLogicNullOffset; @@ -2141,57 +2135,57 @@ void SvxRuler::ApplyTabs() aTabStop.GetTabPos() ); } } - pTabStopItem->Remove(nCoreIdx); - pTabStopItem->Insert(aTabStop); + mpTabStopItem->Remove(nCoreIdx); + mpTabStopItem->Insert(aTabStop); } sal_uInt16 nTabStopId = bHorz ? SID_ATTR_TABSTOP : SID_ATTR_TABSTOP_VERTICAL; - pBindings->GetDispatcher()->Execute( nTabStopId, SFX_CALLMODE_RECORD, pTabStopItem, 0L ); + pBindings->GetDispatcher()->Execute( nTabStopId, SFX_CALLMODE_RECORD, mpTabStopItem.get(), 0L ); UpdateTabs(); } void SvxRuler::ApplyBorders() { /* Applying (table) column settings; changed by dragging. */ - if(pColumnItem->IsTable()) + if(mpColumnItem->IsTable()) { long l = GetFrameLeft(); if(l != pRuler_Imp->nColLeftPix) - pColumnItem->SetLeft( PixelHAdjust( - ConvertHPosLogic(l) - lAppNullOffset, pColumnItem->GetLeft())); + mpColumnItem->SetLeft( PixelHAdjust( + ConvertHPosLogic(l) - lAppNullOffset, mpColumnItem->GetLeft())); l = GetMargin2(); if(l != pRuler_Imp->nColRightPix) { - long nWidthOrHeight = bHorz ? pPagePosItem->GetWidth() : pPagePosItem->GetHeight(); - pColumnItem->SetRight( PixelHAdjust( nWidthOrHeight - - pColumnItem->GetLeft() - ConvertHPosLogic(l) - - lAppNullOffset, pColumnItem->GetRight() ) ); + long nWidthOrHeight = bHorz ? mpPagePosItem->GetWidth() : mpPagePosItem->GetHeight(); + mpColumnItem->SetRight( PixelHAdjust( nWidthOrHeight - + mpColumnItem->GetLeft() - ConvertHPosLogic(l) - + lAppNullOffset, mpColumnItem->GetRight() ) ); } } - for(sal_uInt16 i = 0; i < pColumnItem->Count()-1; ++i) + for(sal_uInt16 i = 0; i < mpColumnItem->Count()-1; ++i) { - long& nEnd = (*pColumnItem)[i].nEnd; + long& nEnd = (*mpColumnItem.get())[i].nEnd; nEnd = PixelHAdjust( ConvertPosLogic(pBorders[i].nPos), - (*pColumnItem)[i].nEnd); - long& nStart = (*pColumnItem)[i+1].nStart; + (*mpColumnItem.get())[i].nEnd); + long& nStart = (*mpColumnItem.get())[i+1].nStart; nStart = PixelHAdjust( ConvertSizeLogic(pBorders[i].nPos + pBorders[i].nWidth) - lAppNullOffset, - (*pColumnItem)[i+1].nStart); + (*mpColumnItem.get())[i+1].nStart); // It may be that, due to the PixelHAdjust readjustment to old values, // the width becomes < 0. This we readjust. if( nEnd > nStart ) nStart = nEnd; } #ifdef DEBUGLIN - Debug_Impl(pEditWin,*pColumnItem); + Debug_Impl(pEditWin,*mpColumnItem.get()); #endif // DEBUGLIN SfxBoolItem aFlag(SID_RULER_ACT_LINE_ONLY, nDragType & DRAG_OBJECT_ACTLINE_ONLY? sal_True : sal_False); sal_uInt16 nColId = pRuler_Imp->bIsTableRows ? (bHorz ? SID_RULER_ROWS : SID_RULER_ROWS_VERTICAL) : (bHorz ? SID_RULER_BORDERS : SID_RULER_BORDERS_VERTICAL); - pBindings->GetDispatcher()->Execute( nColId, SFX_CALLMODE_RECORD, pColumnItem, &aFlag, 0L ); + pBindings->GetDispatcher()->Execute( nColId, SFX_CALLMODE_RECORD, mpColumnItem.get(), &aFlag, 0L ); } void SvxRuler::ApplyObject() @@ -2199,25 +2193,25 @@ void SvxRuler::ApplyObject() /* Applying object settings, changed by dragging. */ // to the page margin - long nMargin = pLRSpaceItem? pLRSpaceItem->GetLeft(): 0; - pObjectItem->SetStartX( + long nMargin = mpLRSpaceItem.get() ? mpLRSpaceItem->GetLeft(): 0; + mpObjectItem->SetStartX( PixelAdjust( ConvertPosLogic(pObjectBorders[0].nPos) - + nMargin - lAppNullOffset,pObjectItem->GetStartX())); - pObjectItem->SetEndX( + + nMargin - lAppNullOffset,mpObjectItem->GetStartX())); + mpObjectItem->SetEndX( PixelAdjust( ConvertPosLogic(pObjectBorders[1].nPos) - + nMargin - lAppNullOffset,pObjectItem->GetEndX())); - nMargin = pULSpaceItem? pULSpaceItem->GetUpper(): 0; - pObjectItem->SetStartY( + + nMargin - lAppNullOffset,mpObjectItem->GetEndX())); + nMargin = mpULSpaceItem.get() ? mpULSpaceItem->GetUpper() : 0; + mpObjectItem->SetStartY( PixelAdjust( ConvertPosLogic(pObjectBorders[2].nPos) - + nMargin - lAppNullOffset,pObjectItem->GetStartY())); - pObjectItem->SetEndY( + + nMargin - lAppNullOffset,mpObjectItem->GetStartY())); + mpObjectItem->SetEndY( PixelAdjust( ConvertPosLogic(pObjectBorders[3].nPos) - + nMargin - lAppNullOffset,pObjectItem->GetEndY())); - pBindings->GetDispatcher()->Execute( SID_RULER_OBJECT, SFX_CALLMODE_RECORD, pObjectItem, 0L ); + + nMargin - lAppNullOffset,mpObjectItem->GetEndY())); + pBindings->GetDispatcher()->Execute( SID_RULER_OBJECT, SFX_CALLMODE_RECORD, mpObjectItem.get(), 0L ); } void SvxRuler::PrepareProportional_Impl(RulerType eType) @@ -2233,9 +2227,9 @@ void SvxRuler::PrepareProportional_Impl(RulerType eType) case RULER_TYPE_MARGIN1: case RULER_TYPE_BORDER: { - DBG_ASSERT(pColumnItem, "no ColumnItem"); + DBG_ASSERT(mpColumnItem.get(), "no ColumnItem"); - pRuler_Imp->SetPercSize(pColumnItem->Count()); + pRuler_Imp->SetPercSize(mpColumnItem->Count()); long lPos; long lWidth=0; @@ -2276,7 +2270,7 @@ void SvxRuler::PrepareProportional_Impl(RulerType eType) if(bHorz) { nStartBorder = nIdx + 1; - nEndBorder = pColumnItem->Count() - 1; + nEndBorder = mpColumnItem->Count() - 1; } else { @@ -2308,7 +2302,7 @@ void SvxRuler::PrepareProportional_Impl(RulerType eType) else { lPos = lOrigLPos; - for(sal_uInt16 ii = nStart; ii < pColumnItem->Count() - 1; ++ii) + for(sal_uInt16 ii = nStart; ii < mpColumnItem->Count() - 1; ++ii) { lWidth += pBorders[ii].nPos - lPos; lPos = pBorders[ii].nPos + pBorders[ii].nWidth; @@ -2318,7 +2312,7 @@ void SvxRuler::PrepareProportional_Impl(RulerType eType) pRuler_Imp->nTotalDist = lWidth; lPos = lOrigLPos; - for(sal_uInt16 i = nStart; i < pColumnItem->Count() - 1; ++i) + for(sal_uInt16 i = nStart; i < mpColumnItem->Count() - 1; ++i) { lActWidth += pBorders[i].nPos - lPos; lPos = pBorders[i].nPos + pBorders[i].nWidth; @@ -2375,7 +2369,7 @@ void SvxRuler::EvalModifier() if( RULER_TYPE_TAB == eType || ( ( RULER_TYPE_BORDER == eType || RULER_TYPE_MARGIN1 == eType || RULER_TYPE_MARGIN2 == eType ) && - pColumnItem ) ) + mpColumnItem.get() ) ) PrepareProportional_Impl(eType); break; } @@ -2407,7 +2401,7 @@ void SvxRuler::Click() pBindings->Update( SID_ATTR_PARA_LRSPACE_VERTICAL ); } sal_Bool bRTL = pRuler_Imp->pTextRTLItem && pRuler_Imp->pTextRTLItem->GetValue(); - if(pTabStopItem && + if(mpTabStopItem.get() && (nFlags & SVXRULER_SUPPORT_TABS) == SVXRULER_SUPPORT_TABS) { sal_Bool bContentProtected = pRuler_Imp->aProtectItem.IsCntntProtected(); @@ -2432,7 +2426,7 @@ void SvxRuler::Click() SvxTabStop aTabStop(ConvertHPosLogic(nTabPos), ToAttrTab_Impl(nDefTabType)); - pTabStopItem->Insert(aTabStop); + mpTabStopItem->Insert(aTabStop); UpdateTabs(); } } @@ -2462,13 +2456,13 @@ void SvxRuler::CalcMinMax() pRuler_Imp->lMaxLeftLogic=pRuler_Imp->lMaxRightLogic=-1; switch(GetDragType()) { - case RULER_TYPE_MARGIN1: + case RULER_TYPE_MARGIN1: { // left edge of the surrounding Frame // DragPos - NOf between left - right pRuler_Imp->lMaxLeftLogic = GetLeftMin(); nMaxLeft=ConvertSizePixel(pRuler_Imp->lMaxLeftLogic); - if(!pColumnItem || pColumnItem->Count() == 1 ) + if (!mpColumnItem.get() || mpColumnItem->Count() == 1 ) { if(bRTL) { @@ -2493,7 +2487,7 @@ void SvxRuler::CalcMinMax() nMaxLeft = pBorders[0].nMinPos + lNullPix; if(nDragType & DRAG_OBJECT_SIZE_PROPORTIONAL) nMaxRight = GetRightIndent() + lNullPix - - (pColumnItem->Count() - 1 ) * lMinFrame; + (mpColumnItem->Count() - 1 ) * lMinFrame; else nMaxRight = pBorders[0].nPos - lMinFrame + lNullPix; } @@ -2502,22 +2496,22 @@ void SvxRuler::CalcMinMax() } else { - if(nDragType & DRAG_OBJECT_SIZE_PROPORTIONAL) + if (nDragType & DRAG_OBJECT_SIZE_PROPORTIONAL) { nMaxRight=lNullPix+CalcPropMaxRight(); } - else if(nDragType & DRAG_OBJECT_SIZE_LINEAR) + else if (nDragType & DRAG_OBJECT_SIZE_LINEAR) { nMaxRight = ConvertPosPixel( GetPageWidth() - ( - (pColumnItem->IsTable() && pLRSpaceItem) - ? pLRSpaceItem->GetRight() : 0)) + (mpColumnItem->IsTable() && mpLRSpaceItem.get()) + ? mpLRSpaceItem->GetRight() : 0)) - GetMargin2() + GetMargin1(); } else { nMaxRight = lNullPix - lMinFrame; - if(pColumnItem->IsFirstAct()) + if (mpColumnItem->IsFirstAct()) { if(bRTL) { @@ -2532,15 +2526,18 @@ void SvxRuler::CalcMinMax() std::max(GetFirstLineIndent(), GetLeftIndent())); } } - else if( pColumnItem->Count() > 1 ) + else if ( mpColumnItem->Count() > 1 ) + { nMaxRight += pBorders[0].nPos; + } else - nMaxRight +=GetRightIndent() - - std::max(GetFirstLineIndent(), GetLeftIndent()); + { + nMaxRight += GetRightIndent() - std::max(GetFirstLineIndent(), GetLeftIndent()); + } // Do not drag the left table edge over the edge of the page - if(pLRSpaceItem&&pColumnItem->IsTable()) + if(mpLRSpaceItem.get() && mpColumnItem->IsTable()) { - long nTmp=ConvertSizePixel(pLRSpaceItem->GetLeft()); + long nTmp=ConvertSizePixel(mpLRSpaceItem->GetLeft()); if(nTmp>nMaxLeft) nMaxLeft=nTmp; } @@ -2548,88 +2545,89 @@ void SvxRuler::CalcMinMax() } break; } - case RULER_TYPE_MARGIN2: - { // right edge of the surrounding Frame - pRuler_Imp->lMaxRightLogic = - pMinMaxItem ? - GetPageWidth() - GetRightMax() : GetPageWidth(); - nMaxRight = ConvertSizePixel(pRuler_Imp->lMaxRightLogic); + case RULER_TYPE_MARGIN2: + { // right edge of the surrounding Frame + pRuler_Imp->lMaxRightLogic = + mpMinMaxItem.get() ? + GetPageWidth() - GetRightMax() : + GetPageWidth(); + nMaxRight = ConvertSizePixel(pRuler_Imp->lMaxRightLogic); - if(!pColumnItem) - { - if(bRTL) - { - nMaxLeft = GetMargin2() + GetRightIndent() - - std::max(GetFirstLineIndent(),GetLeftIndent()) - GetMargin1()+ - lMinFrame + lNullPix; - } - else - { - nMaxLeft = GetMargin2() - GetRightIndent() + - std::max(GetFirstLineIndent(),GetLeftIndent()) - GetMargin1()+ - lMinFrame + lNullPix; - } - } - else if(pRuler_Imp->bIsTableRows) - { - // get the bottom move range from the last border position - only available for rows! - // protection of content means the margin is not moveable - it's just a page break inside of a cell - if(bHorz || pRuler_Imp->aProtectItem.IsCntntProtected()) - { - nMaxLeft = nMaxRight = pBorders[pColumnItem->Count() - 1].nMaxPos + lNullPix; - } - else + if(!mpColumnItem.get()) { - if(nDragType & DRAG_OBJECT_SIZE_PROPORTIONAL) + if(bRTL) { - nMaxLeft = (pColumnItem->Count()) * lMinFrame + lNullPix; + nMaxLeft = GetMargin2() + GetRightIndent() - + std::max(GetFirstLineIndent(),GetLeftIndent()) - GetMargin1()+ + lMinFrame + lNullPix; } else { - if(pColumnItem->Count() > 1) - nMaxLeft = pBorders[pColumnItem->Count() - 2].nPos + lMinFrame + lNullPix; - else - nMaxLeft = lMinFrame + lNullPix; + nMaxLeft = GetMargin2() - GetRightIndent() + + std::max(GetFirstLineIndent(),GetLeftIndent()) - GetMargin1()+ + lMinFrame + lNullPix; } - if(pColumnItem->Count() > 1) - nMaxRight = pBorders[pColumnItem->Count() - 2].nMaxPos + lNullPix; - else - nMaxRight -= GetRightIndent() - lNullPix; } - } - else - { - nMaxLeft = lMinFrame + lNullPix; - if(IsActLastColumn() || pColumnItem->Count() < 2 ) //If last active column + else if(pRuler_Imp->bIsTableRows) { - if(bRTL) + // get the bottom move range from the last border position - only available for rows! + // protection of content means the margin is not moveable - it's just a page break inside of a cell + if(bHorz || pRuler_Imp->aProtectItem.IsCntntProtected()) { - nMaxLeft = lMinFrame + lNullPix + GetMargin2() + - GetRightIndent() - std::max(GetFirstLineIndent(), - GetLeftIndent()); + nMaxLeft = nMaxRight = pBorders[mpColumnItem->Count() - 1].nMaxPos + lNullPix; } else { - nMaxLeft = lMinFrame + lNullPix + GetMargin2() - - GetRightIndent() + std::max(GetFirstLineIndent(), - GetLeftIndent()); + if(nDragType & DRAG_OBJECT_SIZE_PROPORTIONAL) + { + nMaxLeft = (mpColumnItem->Count()) * lMinFrame + lNullPix; + } + else + { + if(mpColumnItem->Count() > 1) + nMaxLeft = pBorders[mpColumnItem->Count() - 2].nPos + lMinFrame + lNullPix; + else + nMaxLeft = lMinFrame + lNullPix; + } + if(mpColumnItem->Count() > 1) + nMaxRight = pBorders[mpColumnItem->Count() - 2].nMaxPos + lNullPix; + else + nMaxRight -= GetRightIndent() - lNullPix; } } - if( pColumnItem->Count() >= 2 ) + else { - long nNewMaxLeft = - lMinFrame + lNullPix + - pBorders[pColumnItem->Count()-2].nPos + - pBorders[pColumnItem->Count()-2].nWidth; - nMaxLeft=std::max(nMaxLeft,nNewMaxLeft); - } + nMaxLeft = lMinFrame + lNullPix; + if(IsActLastColumn() || mpColumnItem->Count() < 2 ) //If last active column + { + if(bRTL) + { + nMaxLeft = lMinFrame + lNullPix + GetMargin2() + + GetRightIndent() - std::max(GetFirstLineIndent(), + GetLeftIndent()); + } + else + { + nMaxLeft = lMinFrame + lNullPix + GetMargin2() - + GetRightIndent() + std::max(GetFirstLineIndent(), + GetLeftIndent()); + } + } + if( mpColumnItem->Count() >= 2 ) + { + long nNewMaxLeft = + lMinFrame + lNullPix + + pBorders[mpColumnItem->Count() - 2].nPos + + pBorders[mpColumnItem->Count() - 2].nWidth; + nMaxLeft = std::max(nMaxLeft, nNewMaxLeft); + } + } + break; } - break; - } - case RULER_TYPE_BORDER: - { // Table, column (Modifier) + case RULER_TYPE_BORDER: + { // Table, column (Modifier) const sal_uInt16 nIdx = GetDragAryPos(); switch(GetDragSize()) { @@ -2641,9 +2639,8 @@ void SvxRuler::CalcMinMax() if(0 == nIdx) nMaxLeft = lNullPix; else - nMaxLeft = pBorders[nIdx-1].nPos + - pBorders[nIdx-1].nWidth + lNullPix; - if(nIdx == pColumnItem->GetActColumn()) + nMaxLeft = pBorders[nIdx - 1].nPos + pBorders[nIdx - 1].nWidth + lNullPix; + if(nIdx == mpColumnItem->GetActColumn()) { if(bRTL) { @@ -2667,7 +2664,7 @@ void SvxRuler::CalcMinMax() } case RULER_DRAGSIZE_MOVE: { - if(pColumnItem) + if(mpColumnItem.get()) { //nIdx contains the position of the currently moved item //next visible separator on the left @@ -2678,7 +2675,7 @@ void SvxRuler::CalcMinMax() sal_uInt16 nActLeftCol=GetActLeftColumn(); //next separator on the right - regardless if visible or not sal_uInt16 nActRightCol=GetActRightColumn(); - if(pColumnItem->IsTable()) + if(mpColumnItem->IsTable()) { if(nDragType & DRAG_OBJECT_ACTLINE_ONLY) { @@ -2711,7 +2708,7 @@ void SvxRuler::CalcMinMax() { if(bHorz) nMaxRight = GetRightIndent() + lNullPix - - (pColumnItem->Count() - nIdx - 1) * lMinFrame; + (mpColumnItem->Count() - nIdx - 1) * lMinFrame; else nMaxRight = pBorders[nIdx].nMaxPos + lNullPix; } @@ -2830,7 +2827,7 @@ void SvxRuler::CalcMinMax() // ObjectItem else { - if(pObjectItem->HasLimits()) + if(mpObjectItem->HasLimits()) { if(CalcLimits(nMaxLeft, nMaxRight, nIdx & 1? sal_False : sal_True)) { @@ -2849,9 +2846,9 @@ void SvxRuler::CalcMinMax() case RULER_DRAGSIZE_2: { nMaxLeft = lNullPix + pBorders[nIdx].nPos; - if(nIdx == pColumnItem->Count()-2) { // last column + if(nIdx == mpColumnItem->Count()-2) { // last column nMaxRight = GetMargin2() + lNullPix; - if(pColumnItem->IsLastAct()) { + if(mpColumnItem->IsLastAct()) { nMaxRight -= GetMargin2() - GetRightIndent() + std::max(GetFirstLineIndent(), @@ -2862,7 +2859,7 @@ void SvxRuler::CalcMinMax() } else { nMaxRight = lNullPix + pBorders[nIdx+1].nPos; - if(pColumnItem->GetActColumn()-1 == nIdx) { + if(mpColumnItem->GetActColumn()-1 == nIdx) { nMaxRight -= pBorders[nIdx+1].nPos - GetRightIndent() + std::max(GetFirstLineIndent(), GetLeftIndent()); @@ -2889,9 +2886,9 @@ void SvxRuler::CalcMinMax() { nMaxLeft = lNullPix + GetRightIndent(); - if(pColumnItem && !pColumnItem->IsFirstAct()) - nMaxLeft += pBorders[pColumnItem->GetActColumn()-1].nPos + - pBorders[pColumnItem->GetActColumn()-1].nWidth; + if(mpColumnItem.get() && !mpColumnItem->IsFirstAct()) + nMaxLeft += pBorders[mpColumnItem->GetActColumn()-1].nPos + + pBorders[mpColumnItem->GetActColumn()-1].nWidth; nMaxRight = lNullPix + GetMargin2(); // Dragging along @@ -2909,9 +2906,9 @@ void SvxRuler::CalcMinMax() { nMaxLeft = lNullPix; - if(pColumnItem && !pColumnItem->IsFirstAct()) - nMaxLeft += pBorders[pColumnItem->GetActColumn()-1].nPos + - pBorders[pColumnItem->GetActColumn()-1].nWidth; + if(mpColumnItem.get() && !mpColumnItem->IsFirstAct()) + nMaxLeft += pBorders[mpColumnItem->GetActColumn()-1].nPos + + pBorders[mpColumnItem->GetActColumn()-1].nWidth; nMaxRight = lNullPix + GetRightIndent() - lMinFrame; // Dragging along @@ -2933,7 +2930,7 @@ void SvxRuler::CalcMinMax() { nMaxLeft = lNullPix; nMaxRight = lNullPix + std::min(GetFirstLineIndent(), GetLeftIndent()) - lMinFrame; - if(pColumnItem) + if(mpColumnItem.get()) { sal_uInt16 nRightCol=GetActRightColumn( sal_True ); if(!IsActLastColumn( sal_True )) @@ -2942,7 +2939,9 @@ void SvxRuler::CalcMinMax() nMaxRight += GetMargin2(); } else + { nMaxLeft += GetMargin1(); + } nMaxLeft += lMinFrame; } else @@ -2950,7 +2949,7 @@ void SvxRuler::CalcMinMax() nMaxLeft = lNullPix + std::max(GetFirstLineIndent(), GetLeftIndent()); nMaxRight = lNullPix; - if(pColumnItem) + if(mpColumnItem.get()) { sal_uInt16 nRightCol=GetActRightColumn( sal_True ); if(!IsActLastColumn( sal_True )) @@ -2968,30 +2967,19 @@ void SvxRuler::CalcMinMax() break; } case RULER_TYPE_TAB: // Tabs (Modifier) - /* - left = NOf + Max(LAR, EZ) - right = NOf + RAR - */ - nMaxLeft = bRTL ? lNullPix + GetRightIndent() - : lNullPix + std::min(GetFirstLineIndent(), GetLeftIndent()); - pRuler_Imp->lMaxRightLogic=GetLogicRightIndent()+lLogicNullOffset; + /* left = NOf + Max(LAR, EZ) + right = NOf + RAR */ + + if (bRTL) + nMaxLeft = lNullPix + GetRightIndent(); + else + nMaxLeft = lNullPix + std::min(GetFirstLineIndent(), GetLeftIndent()); + + pRuler_Imp->lMaxRightLogic = GetLogicRightIndent() + lLogicNullOffset; nMaxRight = ConvertSizePixel(pRuler_Imp->lMaxRightLogic); break; default: ; //prevent warning } -#ifdef DEBUGLIN - { - String aStr("MinLeft: "); - Size aSize(nMaxLeft + lNullPix, 0); - Size aSize2(nMaxRight + lNullPix, 0); - aSize = pEditWin->PixelToLogic(aSize, MapMode(MAP_MM)); - aSize2 = pEditWin->PixelToLogic(aSize2, MapMode(MAP_MM)); - aStr += String(aSize.Width()); - aStr += " MaxRight: "; - aStr += String(aSize2.Width()); - InfoBox(0, aStr).Execute(); - } -#endif } long SvxRuler::StartDrag() @@ -3010,64 +2998,75 @@ long SvxRuler::StartDrag() if(!bValid) return sal_False; - pRuler_Imp->lLastLMargin=GetMargin1(); - pRuler_Imp->lLastRMargin=GetMargin2(); + pRuler_Imp->lLastLMargin = GetMargin1(); + pRuler_Imp->lLastRMargin = GetMargin2(); long bOk = 1; if(GetStartDragHdl().IsSet()) bOk = Ruler::StartDrag(); - if(bOk) { + if(bOk) + { lInitialDragPos = GetDragPos(); - switch(GetDragType()) { - case RULER_TYPE_MARGIN1: // left edge of the surrounding Frame - case RULER_TYPE_MARGIN2: // right edge of the surrounding Frame - if((bHorz && pLRSpaceItem) || (!bHorz && pULSpaceItem)) + switch(GetDragType()) + { + case RULER_TYPE_MARGIN1: // left edge of the surrounding Frame + case RULER_TYPE_MARGIN2: // right edge of the surrounding Frame + if((bHorz && mpLRSpaceItem.get()) || (!bHorz && mpULSpaceItem.get())) + { + if(mpColumnItem.get()) + EvalModifier(); + else + nDragType = DRAG_OBJECT; + } + else + { + bOk = sal_False; + } + break; + case RULER_TYPE_BORDER: // Table, column (Modifier) + if(mpColumnItem.get()) + { + nDragOffset = 0; + if (!mpColumnItem->IsTable()) + nDragOffset = GetDragPos() - pBorders[GetDragAryPos()].nPos; + EvalModifier(); + } + else + nDragOffset = 0; + break; + case RULER_TYPE_INDENT: // Paragraph indents (Modifier) { - if(pColumnItem) + if( bContentProtected ) + return sal_False; + sal_uInt16 nIndent = INDENT_LEFT_MARGIN; + if((nIndent) == GetDragAryPos() + INDENT_GAP) { // Left paragraph indent + pIndents[0] = pIndents[INDENT_FIRST_LINE]; + pIndents[0].nStyle |= RULER_STYLE_DONTKNOW; EvalModifier(); + } else + { nDragType = DRAG_OBJECT; + } + pIndents[1] = pIndents[GetDragAryPos() + INDENT_GAP]; + pIndents[1].nStyle |= RULER_STYLE_DONTKNOW; + break; } - else - bOk = sal_False; - break; - case RULER_TYPE_BORDER: // Table, column (Modifier) - if(pColumnItem) - { - nDragOffset = pColumnItem->IsTable()? 0 : - GetDragPos() - pBorders[GetDragAryPos()].nPos; - EvalModifier(); - - } - else - nDragOffset = 0; - break; - case RULER_TYPE_INDENT: { // Paragraph indents (Modifier) - if( bContentProtected ) - return sal_False; - sal_uInt16 nIndent = INDENT_LEFT_MARGIN; - if((nIndent) == GetDragAryPos() + INDENT_GAP) { // Left paragraph indent - pIndents[0] = pIndents[INDENT_FIRST_LINE]; - pIndents[0].nStyle |= RULER_STYLE_DONTKNOW; + case RULER_TYPE_TAB: // Tabs (Modifier) + if( bContentProtected ) + return sal_False; EvalModifier(); - } - else - nDragType = DRAG_OBJECT; - pIndents[1] = pIndents[GetDragAryPos()+INDENT_GAP]; - pIndents[1].nStyle |= RULER_STYLE_DONTKNOW; - break; - } - case RULER_TYPE_TAB: // Tabs (Modifier) - if( bContentProtected ) return sal_False; - EvalModifier(); - pTabs[0] = pTabs[GetDragAryPos()+1]; - pTabs[0].nStyle |= RULER_STYLE_DONTKNOW; - break; - default: - nDragType = NONE; + pTabs[0] = pTabs[GetDragAryPos() + 1]; + pTabs[0].nStyle |= RULER_STYLE_DONTKNOW; + break; + default: + nDragType = NONE; } } else + { nDragType = NONE; + } + if(bOk) CalcMinMax(); return bOk; @@ -3082,27 +3081,28 @@ void SvxRuler::Drag() return; } switch(GetDragType()) { - case RULER_TYPE_MARGIN1: // left edge of the surrounding Frame - DragMargin1(); - pRuler_Imp->lLastLMargin = GetMargin1(); - break; - case RULER_TYPE_MARGIN2: // right edge of the surrounding Frame - DragMargin2(); - pRuler_Imp->lLastRMargin = GetMargin2(); - break; - case RULER_TYPE_INDENT: // Paragraph indents - DragIndents(); - break; - case RULER_TYPE_BORDER: // Table, columns - if(pColumnItem) - DragBorders(); - else if(pObjectItem) - DragObjectBorder(); - break; - case RULER_TYPE_TAB: // Tabs - DragTabs(); - break; - default: ;//prevent warning + case RULER_TYPE_MARGIN1: // left edge of the surrounding Frame + DragMargin1(); + pRuler_Imp->lLastLMargin = GetMargin1(); + break; + case RULER_TYPE_MARGIN2: // right edge of the surrounding Frame + DragMargin2(); + pRuler_Imp->lLastRMargin = GetMargin2(); + break; + case RULER_TYPE_INDENT: // Paragraph indents + DragIndents(); + break; + case RULER_TYPE_BORDER: // Table, columns + if(mpColumnItem.get()) + DragBorders(); + else if(mpObjectItem.get()) + DragObjectBorder(); + break; + case RULER_TYPE_TAB: // Tabs + DragTabs(); + break; + default: + break; //prevent warning } Ruler::Drag(); } @@ -3117,56 +3117,60 @@ void SvxRuler::EndDrag() const sal_Bool bUndo = IsDragCanceled(); const long lPos = GetDragPos(); DrawLine_Impl(lTabPos, 6, bHorz); - lTabPos=-1; + lTabPos = -1; + if(!bUndo) + { switch(GetDragType()) { - case RULER_TYPE_MARGIN1: // upper left edge of the surrounding Frame - case RULER_TYPE_MARGIN2: // lower right edge of the surrounding Frame - { - if(!pColumnItem || !pColumnItem->IsTable()) - ApplyMargins(); + case RULER_TYPE_MARGIN1: // upper left edge of the surrounding Frame + case RULER_TYPE_MARGIN2: // lower right edge of the surrounding Frame + { + if(!mpColumnItem.get() || !mpColumnItem->IsTable()) + ApplyMargins(); - if(pColumnItem && - (pColumnItem->IsTable() || - (nDragType & DRAG_OBJECT_SIZE_PROPORTIONAL))) - ApplyBorders(); + if(mpColumnItem.get() && + (mpColumnItem->IsTable() || + (nDragType & DRAG_OBJECT_SIZE_PROPORTIONAL))) + ApplyBorders(); - } - break; - case RULER_TYPE_BORDER: // Table, columns - if(lInitialDragPos != lPos || - (pRuler_Imp->bIsTableRows && bHorz)) //special case - the null offset is changed here - { - if(pColumnItem) + } + break; + case RULER_TYPE_BORDER: // Table, columns + if(lInitialDragPos != lPos || + (pRuler_Imp->bIsTableRows && bHorz)) //special case - the null offset is changed here { - ApplyBorders(); - if(bHorz) - UpdateTabs(); + if(mpColumnItem.get()) + { + ApplyBorders(); + if(bHorz) + UpdateTabs(); + } + else if(mpObjectItem.get()) + ApplyObject(); } - else if(pObjectItem) - ApplyObject(); - } - break; - case RULER_TYPE_INDENT: // Paragraph indents - if(lInitialDragPos != lPos) - ApplyIndents(); - SetIndents(INDENT_COUNT, pIndents+INDENT_GAP); - break; - case RULER_TYPE_TAB: // Tabs - { - ApplyTabs(); - pTabs[GetDragAryPos()].nStyle &= ~RULER_STYLE_INVISIBLE; - SetTabs(nTabCount, pTabs+TAB_GAP); - } - break; - default: ; //prevent warning + break; + case RULER_TYPE_INDENT: // Paragraph indents + if(lInitialDragPos != lPos) + ApplyIndents(); + SetIndents(INDENT_COUNT, pIndents + INDENT_GAP); + break; + case RULER_TYPE_TAB: // Tabs + { + ApplyTabs(); + pTabs[GetDragAryPos()].nStyle &= ~RULER_STYLE_INVISIBLE; + SetTabs(nTabCount, pTabs+TAB_GAP); + } + break; + default: + break; //prevent warning } + } nDragType = NONE; Ruler::EndDrag(); if(bUndo) { - for(sal_uInt16 i=0;i<pRuler_Imp->nControlerItems;i++) + for(sal_uInt16 i = 0; i < pRuler_Imp->nControlerItems; i++) { pCtrlItem[i]->ClearCache(); pCtrlItem[i]->GetBindings().Invalidate(pCtrlItem[i]->GetId()); @@ -3179,8 +3183,9 @@ void SvxRuler::ExtraDown() /* Overloaded SV method, sets the new type for the Default tab. */ // Switch Tab Type - if(pTabStopItem && - (nFlags & SVXRULER_SUPPORT_TABS) == SVXRULER_SUPPORT_TABS) { + if(mpTabStopItem.get() && + (nFlags & SVXRULER_SUPPORT_TABS) == SVXRULER_SUPPORT_TABS) + { ++nDefTabType; if(RULER_TAB_DEFAULT == nDefTabType) nDefTabType = RULER_TAB_LEFT; @@ -3198,8 +3203,9 @@ void SvxRuler::Notify(SfxBroadcaster&, const SfxHint& rHint) // start update if(bActive && - rHint.Type() == TYPE(SfxSimpleHint) && - ((SfxSimpleHint&) rHint ).GetId() == SFX_HINT_UPDATEDONE ) { + rHint.Type() == TYPE(SfxSimpleHint) && + ((SfxSimpleHint&) rHint ).GetId() == SFX_HINT_UPDATEDONE ) + { Update(); EndListening(*pBindings); bValid = sal_True; @@ -3211,7 +3217,6 @@ void SvxRuler::Notify(SfxBroadcaster&, const SfxHint& rHint) IMPL_LINK_INLINE_START( SvxRuler, MenuSelect, Menu *, pMenu ) { /* Handler of the context menus for switching the unit of measurement */ - SetUnit(FieldUnit(pMenu->GetCurItemId())); return 0; } @@ -3220,31 +3225,31 @@ IMPL_LINK_INLINE_END( SvxRuler, MenuSelect, Menu *, pMenu ) IMPL_LINK( SvxRuler, TabMenuSelect, Menu *, pMenu ) { /* Handler of the tab menu for setting the type */ - if(pTabStopItem && pTabStopItem->Count() > pRuler_Imp->nIdx) + if(mpTabStopItem.get() && mpTabStopItem->Count() > pRuler_Imp->nIdx) { - SvxTabStop aTabStop = (*pTabStopItem)[pRuler_Imp->nIdx]; + SvxTabStop aTabStop = (*mpTabStopItem.get())[pRuler_Imp->nIdx]; aTabStop.GetAdjustment() = ToAttrTab_Impl(pMenu->GetCurItemId()-1); - pTabStopItem->Remove(pRuler_Imp->nIdx); - pTabStopItem->Insert(aTabStop); + mpTabStopItem->Remove(pRuler_Imp->nIdx); + mpTabStopItem->Insert(aTabStop); sal_uInt16 nTabStopId = bHorz ? SID_ATTR_TABSTOP : SID_ATTR_TABSTOP_VERTICAL; - pBindings->GetDispatcher()->Execute( nTabStopId, SFX_CALLMODE_RECORD, pTabStopItem, 0L ); + pBindings->GetDispatcher()->Execute( nTabStopId, SFX_CALLMODE_RECORD, mpTabStopItem.get(), 0L ); UpdateTabs(); pRuler_Imp->nIdx = 0; } return 0; } -void SvxRuler::Command( const CommandEvent& rCEvt ) +void SvxRuler::Command( const CommandEvent& rCommandEvent ) { /* Mouse context menu for switching the unit of measurement */ - if ( COMMAND_CONTEXTMENU == rCEvt.GetCommand() ) + if ( COMMAND_CONTEXTMENU == rCommandEvent.GetCommand() ) { CancelDrag(); sal_Bool bRTL = pRuler_Imp->pTextRTLItem && pRuler_Imp->pTextRTLItem->GetValue(); if ( pTabs && RULER_TYPE_TAB == - GetType( rCEvt.GetMousePosPixel(), &pRuler_Imp->nIdx ) && - pTabs[pRuler_Imp->nIdx+TAB_GAP].nStyle < RULER_TAB_DEFAULT ) + GetType( rCommandEvent.GetMousePosPixel(), &pRuler_Imp->nIdx ) && + pTabs[pRuler_Imp->nIdx + TAB_GAP].nStyle < RULER_TAB_DEFAULT ) { PopupMenu aMenu; aMenu.SetSelectHdl(LINK(this, SvxRuler, TabMenuSelect)); @@ -3260,13 +3265,13 @@ void SvxRuler::Command( const CommandEvent& rCEvt ) sal_uInt16 nStyle = bRTL ? i|RULER_TAB_RTL : i; nStyle |= (sal_uInt16)(bHorz ? WB_HORZ : WB_VERT); DrawTab(&aDev, aFillColor, aPt, nStyle); - aMenu.InsertItem(i+1, - ResId(RID_SVXSTR_RULER_START+i, DIALOG_MGR()).toString(), + aMenu.InsertItem(i + 1, + ResId(RID_SVXSTR_RULER_START + i, DIALOG_MGR()).toString(), Image(aDev.GetBitmap(Point(), aSz), Color(COL_WHITE))); aMenu.CheckItem(i+1, i == pTabs[pRuler_Imp->nIdx+TAB_GAP].nStyle); aDev.SetOutputSize(aSz); // delete device } - aMenu.Execute( this, rCEvt.GetMousePosPixel() ); + aMenu.Execute( this, rCommandEvent.GetMousePosPixel() ); } else { @@ -3275,7 +3280,7 @@ void SvxRuler::Command( const CommandEvent& rCEvt ) FieldUnit eUnit = GetUnit(); const sal_uInt16 nCount = aMenu.GetItemCount(); - sal_Bool bReduceMetric = 0 != (nFlags &SVXRULER_SUPPORT_REDUCED_METRIC); + sal_Bool bReduceMetric = 0 != (nFlags & SVXRULER_SUPPORT_REDUCED_METRIC); for ( sal_uInt16 i = nCount; i; --i ) { const sal_uInt16 nId = aMenu.GetItemId(i - 1); @@ -3289,18 +3294,20 @@ void SvxRuler::Command( const CommandEvent& rCEvt ) nId == FUNIT_LINE )) { if (( nId == FUNIT_CHAR ) && bHorz ) - ; + ; else if (( nId == FUNIT_LINE ) && !bHorz ) - ; + ; else - aMenu.RemoveItem(i - 1); + aMenu.RemoveItem(i - 1); } } - aMenu.Execute( this, rCEvt.GetMousePosPixel() ); + aMenu.Execute( this, rCommandEvent.GetMousePosPixel() ); } } else - Ruler::Command( rCEvt ); + { + Ruler::Command( rCommandEvent ); + } } sal_uInt16 SvxRuler::GetActRightColumn( @@ -3308,15 +3315,15 @@ sal_uInt16 SvxRuler::GetActRightColumn( sal_uInt16 nAct ) const { if( nAct == USHRT_MAX ) - nAct = pColumnItem->GetActColumn(); + nAct = mpColumnItem->GetActColumn(); else nAct++; //To be able to pass on the ActDrag sal_Bool bConsiderHidden = !bForceDontConsiderHidden && !( nDragType & DRAG_OBJECT_ACTLINE_ONLY ); - while( nAct < pColumnItem->Count() - 1 ) + while( nAct < mpColumnItem->Count() - 1 ) { - if( (*pColumnItem)[nAct].bVisible || bConsiderHidden ) + if( (*mpColumnItem.get())[nAct].bVisible || bConsiderHidden ) return nAct; else nAct++; @@ -3328,17 +3335,17 @@ sal_uInt16 SvxRuler::GetActLeftColumn( sal_Bool bForceDontConsiderHidden, sal_uInt16 nAct ) const { - if(nAct==USHRT_MAX) - nAct=pColumnItem->GetActColumn(); + if(nAct == USHRT_MAX) + nAct = mpColumnItem->GetActColumn(); - sal_uInt16 nLOffs=1; + sal_uInt16 nLOffs = 1; sal_Bool bConsiderHidden = !bForceDontConsiderHidden && !( nDragType & DRAG_OBJECT_ACTLINE_ONLY ); - while(nAct>=nLOffs) + while(nAct >= nLOffs) { - if( (*pColumnItem)[ nAct - nLOffs ].bVisible || bConsiderHidden ) + if( (*mpColumnItem.get())[nAct - nLOffs].bVisible || bConsiderHidden ) return nAct-nLOffs; else nLOffs++; @@ -3350,14 +3357,14 @@ sal_Bool SvxRuler::IsActLastColumn( sal_Bool bForceDontConsiderHidden, sal_uInt16 nAct) const { - return GetActRightColumn(bForceDontConsiderHidden, nAct)==USHRT_MAX; + return GetActRightColumn(bForceDontConsiderHidden, nAct) == USHRT_MAX; } sal_Bool SvxRuler::IsActFirstColumn( sal_Bool bForceDontConsiderHidden, sal_uInt16 nAct) const { - return GetActLeftColumn(bForceDontConsiderHidden, nAct)==USHRT_MAX; + return GetActLeftColumn(bForceDontConsiderHidden, nAct) == USHRT_MAX; } long SvxRuler::CalcPropMaxRight(sal_uInt16 nCol) const @@ -3367,106 +3374,114 @@ long SvxRuler::CalcPropMaxRight(sal_uInt16 nCol) const { // Remove the minimum width for all affected columns // starting from the right edge - long _nMaxRight = GetMargin2()-GetMargin1(); + long _nMaxRight = GetMargin2() - GetMargin1(); - long lFences=0; - long lMinSpace=USHRT_MAX; + long lFences = 0; + long lMinSpace = USHRT_MAX; long lOldPos; - long lColumns=0; + long lColumns = 0; + sal_uInt16 nStart; - if(!pColumnItem->IsTable()) + if(!mpColumnItem->IsTable()) { - if(nCol==USHRT_MAX) + if(nCol == USHRT_MAX) { - lOldPos=GetMargin1(); - nStart=0; + lOldPos = GetMargin1(); + nStart = 0; } else { - lOldPos=pBorders[nCol].nPos+pBorders[nCol].nWidth; - nStart=nCol+1; - lFences=pBorders[nCol].nWidth; + lOldPos = pBorders[nCol].nPos + pBorders[nCol].nWidth; + nStart = nCol + 1; + lFences = pBorders[nCol].nWidth; } - for(sal_uInt16 i = nStart; i < nBorderCount-1; ++i) + for(sal_uInt16 i = nStart; i < nBorderCount - 1; ++i) { - long lWidth=pBorders[i].nPos-lOldPos; - lColumns+=lWidth; - if(lWidth<lMinSpace) - lMinSpace=lWidth; - lOldPos=pBorders[i].nPos+pBorders[i].nWidth; - lFences+=pBorders[i].nWidth; + long lWidth = pBorders[i].nPos - lOldPos; + lColumns += lWidth; + if(lWidth < lMinSpace) + lMinSpace = lWidth; + lOldPos = pBorders[i].nPos+pBorders[i].nWidth; + lFences += pBorders[i].nWidth; } - long lWidth=GetMargin2()-lOldPos; - lColumns+=lWidth; - if(lWidth<lMinSpace) - lMinSpace=lWidth; + long lWidth = GetMargin2() - lOldPos; + lColumns += lWidth; + if(lWidth < lMinSpace) + lMinSpace = lWidth; } else { sal_uInt16 nActCol; - if(nCol==USHRT_MAX) //CalcMinMax for LeftMargin + if(nCol == USHRT_MAX) //CalcMinMax for LeftMargin { - lOldPos=GetMargin1(); + lOldPos = GetMargin1(); } else { - lOldPos=pBorders[nCol].nPos; + lOldPos = pBorders[nCol].nPos; } - lColumns=GetMargin2()-lOldPos; - nActCol=nCol; - lFences=0; - while(nActCol<nBorderCount||nActCol==USHRT_MAX) + lColumns = GetMargin2()-lOldPos; + nActCol = nCol; + lFences = 0; + while(nActCol < nBorderCount || nActCol == USHRT_MAX) { sal_uInt16 nRight; - if(nActCol==USHRT_MAX) + if(nActCol == USHRT_MAX) { - nRight=0; - while(!(*pColumnItem)[nRight].bVisible) + nRight = 0; + while(!(*mpColumnItem.get())[nRight].bVisible) + { nRight++; + } } else - nRight=GetActRightColumn(sal_False, nActCol); + { + nRight = GetActRightColumn(sal_False, nActCol); + } + long lWidth; - if(nRight!=USHRT_MAX) + if(nRight != USHRT_MAX) { - lWidth=pBorders[nRight].nPos-lOldPos; - lOldPos=pBorders[nRight].nPos; + lWidth = pBorders[nRight].nPos - lOldPos; + lOldPos = pBorders[nRight].nPos; } else - lWidth=GetMargin2()-lOldPos; - nActCol=nRight; - if(lWidth<lMinSpace) - lMinSpace=lWidth; - if(nActCol==USHRT_MAX) + { + lWidth=GetMargin2() - lOldPos; + } + nActCol = nRight; + if(lWidth < lMinSpace) + lMinSpace = lWidth; + if(nActCol == USHRT_MAX) break; } } - _nMaxRight-=(long)(lFences+lMinFrame/(float)lMinSpace*lColumns); + _nMaxRight -= (long)(lFences + lMinFrame / (float) lMinSpace * lColumns); return _nMaxRight; } else { - if(pColumnItem->IsTable()) + if(mpColumnItem->IsTable()) { - sal_uInt16 nVisCols=0; - for(sal_uInt16 i=GetActRightColumn(sal_False, nCol);i<nBorderCount;) + sal_uInt16 nVisCols = 0; + for(sal_uInt16 i = GetActRightColumn(sal_False, nCol); i<nBorderCount;) { - if((*pColumnItem)[i].bVisible) + if((*mpColumnItem.get())[i].bVisible) nVisCols++; - i=GetActRightColumn(sal_False, i); + i = GetActRightColumn(sal_False, i); } - return GetMargin2()-GetMargin1()-(nVisCols+1)*lMinFrame; + return GetMargin2() - GetMargin1() - (nVisCols + 1) * lMinFrame; } else { - long lWidth=0; - for(sal_uInt16 i=nCol;i<nBorderCount-1;i++) + long lWidth = 0; + for(sal_uInt16 i = nCol; i < nBorderCount - 1; i++) { - lWidth+=lMinFrame+pBorders[i].nWidth; + lWidth += lMinFrame + pBorders[i].nWidth; } - return GetMargin2()-GetMargin1()-lWidth; + return GetMargin2() - GetMargin1() - lWidth; } } } |