47#include <libxml/xmlwriter.h> 
   52#include <osl/diagnose.h> 
   77    sal_Int32 nParagraphCount = 
pParaList->GetParagraphCount();
 
   78    if( nAbsPos > nParagraphCount )
 
   79        nAbsPos = nParagraphCount;
 
   96        bool bUpdate = 
pEditEngine->SetUpdateLayout( 
false );
 
   99        pParaList->Insert( std::unique_ptr<Paragraph>(pPara), nAbsPos );
 
  100        pEditEngine->InsertParagraph( nAbsPos, OUString() );
 
  124        pParaList->Insert( std::unique_ptr<Paragraph>(pPara), nPara );
 
  134        sal_Int16 nDepth = -1;
 
  140        pParaList->Insert( std::unique_ptr<Paragraph>(pPara), nPara );
 
  160    sal_Int16 nDepth = pPara->
GetDepth();
 
  172    pPara = 
pParaList->GetParagraph( nPara );
 
  173    if ( pPara && ( pPara->
GetDepth() > nDepth ) )
 
  177        while ( pPara && pPara->
GetDepth() > nDepth )
 
  178            pPara = 
pParaList->GetParagraph( ++nPara );
 
  181    if ( pPara && ( pPara->
GetDepth() == nDepth ) )
 
  209        default: OSL_FAIL( 
"Outliner::Init - Invalid Mode!" );
 
  232    DBG_ASSERT( pPara, 
"Outliner::GetDepth - Paragraph not found!" );
 
  233    return pPara ? pPara->
GetDepth() : -1;
 
  241    if ( nNewDepth == pPara->
GetDepth() )
 
  260    DBG_ASSERT( pPara, 
"Outliner::GetNumberingStartValue - Paragraph not found!" );
 
  267    DBG_ASSERT( pPara, 
"Outliner::GetNumberingStartValue - Paragraph not found!" );
 
  271            InsertUndo( std::make_unique<OutlinerUndoChangeParaNumberingRestart>( 
this, nPara,
 
  284    DBG_ASSERT( pPara, 
"Outliner::IsParaIsNumberingRestart - Paragraph not found!" );
 
  291    DBG_ASSERT( pPara, 
"Outliner::SetParaIsNumberingRestart - Paragraph not found!" );
 
  295            InsertUndo( std::make_unique<OutlinerUndoChangeParaNumberingRestart>( 
this, nPara,
 
  306    const sal_Int32 nParaStart,
 
  307    const sal_Int32 nParaEnd )
 const 
  309    if ( nParaStart > nParaEnd
 
  310         || nParaEnd >= 
pParaList->GetParagraphCount() )
 
  312        SAL_WARN(
"editeng", 
"<Outliner::GetBulletsNumberingStatus> - unexpected parameter values" );
 
  316    sal_Int32 nBulletsCount = 0;
 
  317    sal_Int32 nNumberingCount = 0;
 
  318    for (sal_Int32 nPara = nParaStart; nPara <= nParaEnd; ++nPara)
 
  342    const sal_Int32 nParaCount = nParaEnd - nParaStart + 1;
 
  343    if ( nBulletsCount == nParaCount )
 
  347    else if ( nNumberingCount == nParaCount )
 
  356    return pParaList->GetParagraphCount() > 0
 
  363    if ( 
static_cast<sal_uInt64
>(nStartPara) + 
nCount >
 
  375    std::unique_ptr<EditTextObject> xText = 
pEditEngine->CreateTextObject( nStartPara, 
nCount );
 
  378    const sal_Int32 nLastPara(nStartPara + 
nCount - 1);
 
  380    for(sal_Int32 nPara(nStartPara); nPara <= nLastPara; nPara++)
 
  382        aParagraphDataVector[nPara-nStartPara] = *
GetParagraph(nPara);
 
  385    xText->ClearPortionInfo(); 
 
  386    OutlinerParaObject aPObj(std::move(xText), std::move(aParagraphDataVector), bIsEditDoc);
 
  401    const sal_Int32 nPara = 
pParaList->GetAbsPos( pPara );
 
  410    const bool bUpdate = 
pEditEngine->SetUpdateLayout( 
false );
 
  423        sal_Int32 nInsPos = nPara+1;
 
  429        while( nIdx>=0 && nIdx<aText.getLength() )
 
  449                while ( ( nTabs < 
aStr.size() ) && ( 
aStr[nTabs] == 
'\t' ) )
 
  464                pParaList->Insert( std::unique_ptr<Paragraph>(pPara), nInsPos );
 
  491    bool bConverted = 
false;
 
  500    sal_Int32 nHeadingNumberStart = 0;
 
  501    sal_Int32 nNumberingNumberStart = 0;
 
  505        OUString aHeading_US( 
"heading" );
 
  506        OUString aNumber_US( 
"Numbering" );
 
  509        if ( ( nSearch = 
aName.indexOf( aHeading_US ) ) != -1 )
 
  510            nHeadingNumberStart = nSearch + aHeading_US.getLength();
 
  511        else if ( ( nSearch = 
aName.indexOf( aNumber_US ) ) != -1 )
 
  512            nNumberingNumberStart = nSearch + aNumber_US.getLength();
 
  515    if ( nHeadingNumberStart || nNumberingNumberStart )
 
  518        if( nHeadingNumberStart && ( 
aStr.getLength() >= 2 ) &&
 
  519                ( pPtr[0] != 
'\t' ) && ( pPtr[1] == 
'\t' ) )
 
  525        sal_Int32 
nPos = nHeadingNumberStart ? nHeadingNumberStart : nNumberingNumberStart;
 
  535        while( *pPtr == 
'\t' )
 
  542            aDelSel = 
ESelection( nPara, 0, nPara, nTabs );
 
  551    sal_Int16 nOutlLevel = rLevel.
GetValue();
 
  561    bool bUpdate = 
pEditEngine->SetUpdateLayout( 
false );
 
  574    for( sal_Int32 nCurPara = 0; nCurPara < rPObj.
Count(); nCurPara++ )
 
  595    bool bUpdate = 
pEditEngine->SetUpdateLayout( 
false );
 
  613    for( sal_Int32 
n = 0; 
n < rPObj.
Count(); 
n++ )
 
  615        if ( 
n == 0 && bAppend )
 
  624        pParaList->Append(std::unique_ptr<Paragraph>(pPara));
 
  625        sal_Int32 nP = nPara+
n;
 
  637OUString 
Outliner::CalcFieldValue( 
const SvxFieldItem& rField, sal_Int32 nPara, sal_Int32 nPos, std::optional<Color>& rpTxtColor, std::optional<Color>& rpFldColor, std::optional<FontLineStyle>& rpFldLineStyle )
 
  640        return OUString( 
' ' );
 
  693    sal_Int16 nDepth = 
GetDepth( nPara );
 
  697    OUString aNewStyleSheetName( pStyle->
GetName() );
 
  698    aNewStyleSheetName = aNewStyleSheetName.subView( 0, aNewStyleSheetName.getLength()-1 ) +
 
  699        OUString::number( nDepth+1 );
 
  701    DBG_ASSERT( pNewStyle, 
"AutoStyleSheetName - Style not found!" );
 
  723    sal_Int16 nOldDepth = pPara->
GetDepth();
 
  731    bool bUpdate = 
pEditEngine->SetUpdateLayout( 
false );
 
  743        InsertUndo( std::make_unique<OutlinerUndoChangeDepth>( 
this, nPara, nOldDepth, nDepth ) );
 
  762    if ( !
pParaList->HasHiddenChildren( pPara ) )
 
  765    std::unique_ptr<OLUndoExpand> pUndo;
 
  771        pUndo->nCount = 
pParaList->GetAbsPos( pPara );
 
  785    if ( !
pParaList->HasVisibleChildren( pPara ) ) 
 
  788    std::unique_ptr<OLUndoExpand> pUndo;
 
  797        pUndo->nCount = 
pParaList->GetAbsPos( pPara );
 
  827    std::optional<vcl::Font> pSourceFont;
 
  835        aBulletFont = *pSourceFont;
 
  839        aBulletFont = aStdFont;
 
  844        aBulletFont.
SetRelief( FontRelief::NONE );
 
  848    double nStretchY = 100.0;
 
  853    fScaledLineHeight *= fScale * 10;
 
  854    fScaledLineHeight /= 1000.0;
 
  879    bool bDrawBullet = 
false;
 
  883        bDrawBullet = rBulletState.
GetValue();
 
  892    bool bRightToLeftPara = 
pEditEngine->IsRightToLeft( nPara );
 
  896    double nStretchX = 100.0;
 
  916            rOutDev.
SetFont( aBulletFont );
 
  924                if ( !bRightToLeftPara )
 
  925                    aTextPos.
setX( rStartPos.
X() + aBulletArea.
Left() );
 
  935                    aTextPos.
setY( rStartPos.
Y() + aBulletArea.
Left() );
 
  940                    aTextPos.
setY( rStartPos.
Y() + aBulletArea.
Left() );
 
  952                rOutDev.
SetFont( aRotatedFont );
 
  958            if ( bRightToLeftPara )
 
  975                assert(
aBuf.get_factor() == 1);
 
  977                    aSvxFont, nPara, bRightToLeftPara ? 1 : 0, 
nullptr, 
nullptr, 
false, 
false, 
true, 
nullptr, 
Color(), 
Color());
 
  993                    aBulletPos.
setY( rStartPos.
Y() + aBulletArea.
Top() );
 
  994                    if ( !bRightToLeftPara )
 
  995                        aBulletPos.
setX( rStartPos.
X() + aBulletArea.
Left() );
 
 1003                        aBulletPos.
setX( rStartPos.
X() - aBulletArea.
Bottom() );
 
 1004                        aBulletPos.
setY( rStartPos.
Y() + aBulletArea.
Left() );
 
 1008                        aBulletPos.
setX( rStartPos.
X() + aBulletArea.
Top() );
 
 1009                        aBulletPos.
setY( rStartPos.
Y() - aBulletArea.
Right() );
 
 1044    Point aStartPos, aEndPos;
 
 1047        aStartPos.
setY( rStartPos.
Y() + aBulletArea.
Bottom() );
 
 1048        if ( !bRightToLeftPara )
 
 1049            aStartPos.
setX( rStartPos.
X() + aBulletArea.
Right() );
 
 1052        aEndPos = aStartPos;
 
 1057        aStartPos.
setX( rStartPos.
X() - aBulletArea.
Bottom() );
 
 1058        aStartPos.
setY( rStartPos.
Y() + aBulletArea.
Right() );
 
 1059        aEndPos = aStartPos;
 
 1065    rOutDev.
DrawLine( aStartPos, aEndPos );
 
 1074        Point aPos( pView->pEditView->GetWindowPosTopLeft(nPara ) );
 
 1081        pView->pEditView->InvalidateWindow(aRect);
 
 1091    bool bUpdate = 
pEditEngine->SetUpdateLayout( 
false );
 
 1100    sal_Int32 nParas = 
pEditEngine->GetParagraphCount();
 
 1102    for ( sal_Int32 
n = 0; 
n < nParas; 
n++ )
 
 1104        std::unique_ptr<Paragraph> pPara(
new Paragraph( 0 ));
 
 1120    bool bUpdate = 
pEditEngine->SetUpdateLayout( 
false );
 
 1123    for( sal_Int32 nPara = nFirstPara; nPara <= nLastPara; nPara++ )
 
 1130                            pLastConverted = pPara;
 
 1132                    else if ( pLastConverted )
 
 1157    bool bUpdate = 
pEditEngine->SetUpdateLayout( 
false );
 
 1159    const sal_Int32 nStart = nStartPara;
 
 1172            if( nStartPara == nStart )
 
 1181            sal_Int16 nDepth = -1;
 
 1188            if ( nDepth != 
GetDepth( nStartPara ) )
 
 1194        pPara = 
pParaList->GetParagraph( nStartPara );
 
 1236    , nDepthChangedHdlPrevDepth(0)
 
 1238    , bFirstParaIsEmpty(true)
 
 1239    , nBlockInsCallback(0)
 
 1240    , bStrippingPortions(false)
 
 1246    std::unique_ptr<Paragraph> pPara(
new Paragraph( 0 ));
 
 1276        ViewList::iterator it = 
aViewList.begin();
 
 1303        ViewList::iterator it = 
aViewList.begin();
 
 1347    return pParaList->GetParagraph( nAbsPos );
 
 1352    return pParaList->HasChildren( pParagraph );
 
 1368    sal_Int16 nDepth = pPara->
GetDepth();
 
 1389        DBG_ASSERT( pFmt, 
"ImplGetBulletSize - no Bullet!" );
 
 1401            pRefDev->
SetFont( aBulletFont );
 
 1420    for ( sal_Int32 
n = nStart; 
n < nEnd; 
n++ )
 
 1434    for ( sal_Int32 
n = 
pParaList->GetParagraphCount(); 
n; )
 
 1470    sal_Int32 nParas = 
pParaList->GetParagraphCount();
 
 1471    for( sal_Int32 nPara = 0; nPara < nParas; nPara++ )
 
 1473        if ( 
pEditEngine->GetStyleSheet( nPara ) == pStyle )
 
 1504        if ( nBulletWidth < aBulletSize.
Width() )   
 
 1505            nBulletWidth = aBulletSize.
Width();
 
 1507        if ( bAdjust && !bOutlineMode )
 
 1514                aTopLeft.
setX( 
pEditEngine->GetFirstLineStartX( nPara ) - nBulletWidth );
 
 1524                            + 
aInfos.nFirstLineTextHeight / 2
 
 1525                            - aBulletSize.
Height() / 2 );
 
 1530                if ( aBulletFont.
GetCharSet() != RTL_TEXTENCODING_SYMBOL )
 
 1534                    pRefDev->
SetFont( aBulletFont );
 
 1551            aTopLeft.
AdjustX(( nBulletWidth - aBulletSize.
Width() ) / 2 );
 
 1554        if ( aTopLeft.
X() < 0 )     
 
 1559    if ( bReturnPaperPos )
 
 1564        Point aBulletPos( aBulletDocPos );
 
 1568            aBulletPos.
setY( aBulletDocPos.
X() );
 
 1572            Size aSz( aBulletSize );
 
 1618    OUStringBuffer aText(128);
 
 1619    sal_Int32 nStartPara = 
pParaList->GetAbsPos( pParagraph );
 
 1620    for ( sal_Int32 
n = 0; 
n < 
nCount; 
n++ )
 
 1626    return aText.makeStringAndClear();
 
 1633    if( !
nPos && ( nParaCount >= 
pParaList->GetParagraphCount() ) )
 
 1639        for( sal_Int32 
n = 0; 
n < nParaCount; 
n++ )
 
 1654                            sal_Int32 nPara, 
sal_uInt8 nRightToLeft,
 
 1658                            bool bEndOfParagraph,
 
 1660                            const css::lang::Locale* pLocale,
 
 1661                            const Color& rOverlineColor,
 
 1662                            const Color& rTextLineColor)
 
 1666        DrawPortionInfo aInfo( rStartPos, rText, nTextStart, nTextLen, rFont, nPara, pDXArray, pKashidaArray, pWrongSpellVector,
 
 1667            pFieldData, 
pLocale, rOverlineColor, rTextLineColor, nRightToLeft, 
false, 0, bEndOfLine, bEndOfParagraph, bEndOfBullet);
 
 1674    sal_Int32 nPara, 
sal_uInt8 nRightToLeft, 
bool bEndOfLine, 
bool bEndOfParagraph,
 
 1675    const Color& rOverlineColor, 
const Color& rTextLineColor)
 
 1679        DrawPortionInfo aInfo( rStartPos, rChar, 0, rChar.getLength(), rFont, nPara, {}, {}, 
nullptr,
 
 1680            nullptr, 
nullptr, rOverlineColor, rTextLineColor, nRightToLeft, 
true, nWidth, bEndOfLine, bEndOfParagraph, 
false);
 
 1706    sal_Int32 nPara = pParaList->GetAbsPos( &rPara );
 
 1707    pEditEngine->ShowParagraph( nPara, rPara.IsVisible() );
 
 1713        aBeginMovingHdl.Call( 
this );
 
 1719    maBeginPasteOrDropHdl.Call(&rInfos);
 
 1725    ImpTextPasted( rInfos.nStartPara, rInfos.nEndPara - rInfos.nStartPara + 1 );
 
 1726    maEndPasteOrDropHdl.Call( &rInfos );
 
 1732    pParaList->MoveParagraphs( rInfos.nStartPara, rInfos.nDestPara, rInfos.nEndPara - rInfos.nStartPara + 1 );
 
 1733    sal_Int32 nChangesStart = std::min( rInfos.nStartPara, rInfos.nDestPara );
 
 1734    sal_Int32 nParas = pParaList->GetParagraphCount();
 
 1735    for ( sal_Int32 
n = nChangesStart; 
n < nParas; 
n++ )
 
 1736        ImplCalcBulletText( 
n, 
false, 
false );
 
 1739        aEndMovingHdl.Call( 
this );
 
 1758    sal_uInt16 nNumber = pParaFmt->
GetStart() - 1;
 
 1761    const sal_Int16 nParaDepth = pPara->
GetDepth();
 
 1765        pPara = 
pParaList->GetParagraph( nPara );
 
 1766        const sal_Int16 nDepth = pPara->
GetDepth();
 
 1769        if( (nDepth > nParaDepth) || (nDepth == -1) )
 
 1773        if( nDepth < nParaDepth )
 
 1778        if( pFmt == 
nullptr )
 
 1800            if( nNumberingStartValue != -1 )
 
 1801                nNumber += nNumberingStartValue - 1;
 
 1817        OUString aBulletText;
 
 1825                aBulletText += OUString(&cChar, 1);
 
 1834        if (pPara->
GetText() != aBulletText)
 
 1835            pPara->
SetText( aBulletText );
 
 1839            sal_Int16 nDepth = pPara->
GetDepth();
 
 1840            pPara = 
pParaList->GetParagraph( ++nPara );
 
 1841            if ( !bRecalcChildren )
 
 1843                while ( pPara && ( pPara->
GetDepth() > nDepth ) )
 
 1844                    pPara = 
pParaList->GetParagraph( ++nPara );
 
 1847            if ( pPara && ( pPara->
GetDepth() < nDepth ) )
 
 1882        for ( sal_Int32 nPara = 
pParaList->GetParagraphCount(); nPara; )
 
 1883            pParaList->GetParagraph( --nPara )->aBulSize.setWidth( -1 );
 
 1935    if ( !nBlockInsCallback )
 
 1936        pEditEngine->aOutlinerNotifyHdl.Call( rNotify );
 
 1938        pEditEngine->aNotifyCache.push_back(rNotify);
 
 1967    if( pPara && !pPara->
HasFlag( nFlag ) )
 
 1978    return pPara && pPara->
HasFlag( nFlag );
 
 1999    sal_Int32 nOverflowLine = 
pEditEngine->GetOverflowingLineNum(); 
 
 2004                 "[Overflowing] Ops, trying to retrieve para " 
 2012                 "[Overflowing] No Overflowing text but GetNonOverflowinText called?!");
 
 2045    bool bItAllOverflew = 
nCount == 0 && nOverflowLine == 0;
 
 2046    if ( bItAllOverflew )
 
 2050        bool const bLastParaInterrupted = 
true; 
 
 2054        sal_Int32 nOverflowingPara = 
nCount;
 
 2055        sal_uInt32 nLen = 0;
 
 2057        for ( sal_Int32 nLine = 0;
 
 2069        const sal_Int32 nEndPos = 
pEditEngine->GetTextLen(nEndPara);
 
 2075            aOverflowingTextSelection =
 
 2076                ESelection(nOverflowingPara-1, nParaLen, nEndPara, nEndPos);
 
 2079            aOverflowingTextSelection =
 
 2080                ESelection(nOverflowingPara, nLen, nEndPara, nEndPos);
 
 2085        bool bLastParaInterrupted =
 
 2094    std::unique_ptr<EditTextObject> pEmptyText = 
pEditEngine->GetEmptyTextObject();
 
 2109                 "[Overflowing] Ops, trying to retrieve para " 
 2110                 << 
pEditEngine->GetOverflowingParaNum() << 
" when max index is " 
 2115    sal_Int32 nHeadPara = 
pEditEngine->GetOverflowingParaNum();
 
 2118    sal_uInt32 nLen = 0;
 
 2119    for ( sal_Int32 nLine = 0;
 
 2125    sal_uInt32 nOverflowingPara = 
pEditEngine->GetOverflowingParaNum();
 
 2127    sal_Int32 nLastPara = nParaCount-1;
 
 2129    aOverflowingTextSel = 
ESelection(nOverflowingPara, nLen,
 
 2130                                     nLastPara, nLastParaLen);
 
 2145        pWriter = xmlNewTextWriterFilename(
"outliner.xml", 0);
 
 2146        xmlTextWriterSetIndent(pWriter,1);
 
 2147        (void)xmlTextWriterSetIndentString(pWriter, BAD_CAST(
"  "));
 
 2148        (void)xmlTextWriterStartDocument(pWriter, 
nullptr, 
nullptr, 
nullptr);
 
 2152    (void)xmlTextWriterStartElement(pWriter, BAD_CAST(
"Outliner"));
 
 2154    (void)xmlTextWriterEndElement(pWriter);
 
 2158       (void)xmlTextWriterEndDocument(pWriter);
 
 2159       xmlFreeTextWriter(pWriter);
 
static vcl::Font CreateFontFromItemSet(const SfxItemSet &rItemSet, SvtScriptType nScriptType)
 
std::optional< Color > const & GetFieldColor() const
 
void SetFieldColor(std::optional< Color > xCol)
 
std::optional< Color > const & GetTextColor() const
 
std::optional< FontLineStyle > const & GetFontLineStyle() const
 
const OUString & GetRepresentation() const
 
void HideCursor(bool bDeactivate=false)
 
tools::Long GetDescent() const
 
tools::Long GetAscent() const
 
bool Draw(OutputDevice &rOut, const Point &rPt, const Size &rSz, const GraphicAttr *pAttr=nullptr) const
 
const ParagraphData & GetParagraphData(sal_Int32 nIndex) const
 
void SetOutlinerMode(OutlinerMode nNew)
 
const EditTextObject & GetTextObject() const
 
OutlinerMode GetOutlinerMode() const
 
std::unique_ptr< EditView > pEditView
 
EDITENG_DLLPRIVATE sal_Int32 ImpCalcSelectedPages(bool bIncludeFirstSelected)
 
void DrawingText(const Point &rStartPos, const OUString &rText, sal_Int32 nTextStart, sal_Int32 nTextLen, o3tl::span< const sal_Int32 > pDXArray, o3tl::span< const sal_Bool > pKashidaArray, const SvxFont &rFont, sal_Int32 nPara, sal_uInt8 nRightToLeft, const EEngineData::WrongSpellVector *pWrongSpellVector, const SvxFieldData *pFieldData, bool bEndOfLine, bool bEndOfParagraph, bool bEndOfBullet, const css::lang::Locale *pLocale, const Color &rOverlineColor, const Color &rTextLineColor)
 
void Remove(Paragraph const *pPara, sal_Int32 nParaCount)
 
bool Expand(Paragraph const *)
 
void SetBeginDropHdl(const Link< EditView *, void > &rLink)
sets a link that is called at the beginning of a drag operation at an edit view
 
static bool HasParaFlag(const Paragraph *pPara, ParaFlag nFlag)
 
SfxStyleSheetPool * GetStyleSheetPool()
 
void SetMaxDepth(sal_Int16 nDepth)
 
void ImplCheckParagraphs(sal_Int32 nStart, sal_Int32 nEnd)
 
void SetCharAttribs(sal_Int32 nPara, const SfxItemSet &rSet)
Set attributes from rSet an all characters of nPara.
 
void SetText(const OutlinerParaObject &)
 
void ClearOverflowingParaNum()
 
OUString GetText(Paragraph const *pPara, sal_Int32 nParaCount=1) const
 
void ImplBlockInsertionCallbacks(bool b)
 
Link< OutlinerView *, bool > aRemovingPagesHdl
 
void SetLevelDependentStyleSheet(sal_Int32 nPara)
 
bool IsParaIsNumberingRestart(sal_Int32 nPara) const
 
void SetFlatMode(bool bFlat)
 
const Size & GetPaperSize() const
 
OutlinerMode GetOutlinerMode() const
 
friend class OutlinerEditEng
 
tools::Rectangle ImpCalcBulletArea(sal_Int32 nPara, bool bAdjust, bool bReturnPaperPos)
 
void ParagraphInsertedHdl(Paragraph *)
 
SfxUndoManager * SetUndoManager(SfxUndoManager *pNew)
 
void DrawingTab(const Point &rStartPos, tools::Long nWidth, const OUString &rChar, const SvxFont &rFont, sal_Int32 nPara, sal_uInt8 nRightToLeft, bool bEndOfLine, bool bEndOfParagraph, const Color &rOverlineColor, const Color &rTextLineColor)
 
void AddText(const OutlinerParaObject &, bool bAppend=false)
 
Paragraph * GetParagraph(sal_Int32 nAbsPos) const
 
OutlinerParaObject GetEmptyParaObject() const
 
const SvxNumberFormat * GetNumberFormat(sal_Int32 nPara) const
 
void PaintBullet(sal_Int32 nPara, const Point &rStartPos, const Point &rOrigin, Degree10 nOrientation, OutputDevice &rOutDev)
 
void getGlobalScale(double &rFontX, double &rFontY, double &rSpacingX, double &rSpacingY) const
 
std::optional< OutlinerParaObject > CreateParaObject(sal_Int32 nStartPara=0, sal_Int32 nParaCount=EE_PARA_ALL) const
 
sal_Int16 GetDepth(sal_Int32 nPara) const
 
void SetStyleSheet(sal_Int32 nPara, SfxStyleSheet *pStyle)
 
vcl::Font ImpCalcBulletFont(sal_Int32 nPara) const
 
std::unique_ptr< OutlinerEditEng > pEditEngine
 
bool ImplHasNumberFormat(sal_Int32 nPara) const
 
bool ImpConvertEdtToOut(sal_Int32 nPara)
 
void InsertUndo(std::unique_ptr< EditUndo > pUndo)
 
void SetDepth(Paragraph *pParagraph, sal_Int16 nNewDepth)
 
OutlinerView * GetView(size_t nIndex) const
 
Link< OutlinerView *, bool > aIndentingPagesHdl
 
void SetEndPasteOrDropHdl(const Link< PasteOrDropInfos *, void > &rLink)
sets a link that is called after a drop or paste operation.
 
void SetParaAttribs(sal_Int32 nPara, const SfxItemSet &)
 
void ParaAttribsChanged(sal_Int32 nParagraph)
 
void ImplCalcBulletText(sal_Int32 nPara, bool bRecalcLevel, bool bRecalcChildren)
 
void ImplCheckNumBulletItem(sal_Int32 nPara)
 
bool IsUndoEnabled() const
 
Size ImplGetBulletSize(sal_Int32 nPara)
 
void ImpTextPasted(sal_Int32 nStartPara, sal_Int32 nCount)
 
Link< ParagraphHdlParam, void > aParaRemovingHdl
 
sal_Int32 GetAbsPos(Paragraph const *pPara) const
 
sal_Int32 GetBulletsNumberingStatus() const
 
std::optional< NonOverflowingText > GetNonOverflowingText() const
 
void ImplCheckDepth(sal_Int16 &rnDepth) const
 
virtual OUString CalcFieldValue(const SvxFieldItem &rField, sal_Int32 nPara, sal_Int32 nPos, std::optional< Color > &rTxtColor, std::optional< Color > &rFldColor, std::optional< FontLineStyle > &rFldLineStyle)
 
bool Collapse(Paragraph const *)
 
SfxUndoManager & GetUndoManager()
 
void UndoActionStart(sal_uInt16 nId)
 
std::optional< OverflowingText > GetOverflowingText() const
 
Link< DepthChangeHdlParam, void > aDepthChangedHdl
 
std::unique_ptr< ParagraphList > pParaList
 
void RemoveView(OutlinerView const *pView)
 
OutlinerMode nOutlinerMode
 
static constexpr sal_Int16 gnMinDepth
 
size_t InsertView(OutlinerView *pView, size_t nIndex=size_t(-1))
 
EBulletInfo GetBulletInfo(sal_Int32 nPara)
 
OUString ImplGetBulletText(sal_Int32 nPara)
 
bool ImpCanDeleteSelectedPages(OutlinerView *pCurView)
 
sal_Int16 GetNumberingStartValue(sal_Int32 nPara) const
 
void SetEndDropHdl(const Link< EditView *, void > &rLink)
sets a link that is called at the end of a drag operation at an edit view
 
Link< ParagraphHdlParam, void > aParaInsertedHdl
 
void StyleSheetChanged(SfxStyleSheet const *pStyle)
 
Link< DrawPortionInfo *, void > aDrawPortionHdl
 
Link< PasteOrDropInfos *, void > maBeginPasteOrDropHdl
 
void dumpAsXml(xmlTextWriterPtr pWriter) const
 
sal_uInt16 ImplGetNumbering(sal_Int32 nPara, const SvxNumberFormat *pParaFmt)
 
void ImplSetLevelDependentStyleSheet(sal_Int32 nPara)
 
SfxItemSet const & GetParaAttribs(sal_Int32 nPara) const
 
Link< EditFieldInfo *, void > aCalcFieldValueHdl
 
void SetBeginPasteOrDropHdl(const Link< PasteOrDropInfos *, void > &rLink)
sets a link that is called before a drop or paste operation.
 
bool IndentingPagesHdl(OutlinerView *)
 
friend class OLUndoExpand
 
Outliner(SfxItemPool *pPool, OutlinerMode nMode)
 
void SetParaFlag(Paragraph *pPara, ParaFlag nFlag)
 
void DepthChangedHdl(Paragraph *, ParaFlag nPrevFlags)
 
void ImplInitDepth(sal_Int32 nPara, sal_Int16 nDepth, bool bCreateUndo)
 
void SetRefDevice(OutputDevice *pRefDev)
 
void ImpFilterIndents(sal_Int32 nFirstPara, sal_Int32 nLastPara)
 
void SetNumberingStartValue(sal_Int32 nPara, sal_Int16 nNumberingStartValue)
 
bool RemovingPagesHdl(OutlinerView *)
 
virtual ~Outliner() override
 
sal_Int32 nDepthChangedHdlPrevDepth
 
void ParagraphInserted(sal_Int32 nParagraph)
 
bool ImpCanIndentSelectedPages(OutlinerView *pCurView)
 
bool HasChildren(Paragraph const *pParagraph) const
 
ErrCode Read(SvStream &rInput, const OUString &rBaseURL, EETextFormat, SvKeyValueIterator *pHTTPHeaderAttrs=nullptr)
 
Paragraph * Insert(const OUString &rText, sal_Int32 nAbsPos=EE_PARA_APPEND, sal_Int16 nDepth=0)
 
Link< PasteOrDropInfos *, void > maEndPasteOrDropHdl
 
sal_Int32 GetLineLen(sal_Int32 nParagraph, sal_Int32 nLine) const
 
Link< DrawBulletInfo *, void > aDrawBulletHdl
 
sal_uInt8 nBlockInsCallback
 
void Init(OutlinerMode nMode)
 
size_t GetViewCount() const
 
SfxStyleSheet * GetStyleSheet(sal_Int32 nPara)
 
bool IsTopToBottom() const
 
void InvalidateBullet(sal_Int32 nPara)
 
void ParagraphDeleted(sal_Int32 nParagraph)
 
void EnableUndo(bool bEnable)
 
sal_Int32 GetParagraphCount() const
 
void SetParaIsNumberingRestart(sal_Int32 nPara, bool bParaIsNumberingRestart)
 
bool IsForceAutoColor() const
 
const vcl::Font & GetFont() const
 
void SetFont(const vcl::Font &rNewFont)
 
SAL_WARN_UNUSED_RESULT Point PixelToLogic(const Point &rDevicePt) const
 
void DrawLine(const Point &rStartPt, const Point &rEndPt)
 
SAL_WARN_UNUSED_RESULT Point LogicToLogic(const Point &rPtSource, const MapMode *pMapModeSource, const MapMode *pMapModeDest) const
 
tools::Long GetTextWidth(const OUString &rStr, sal_Int32 nIndex=0, sal_Int32 nLen=-1, vcl::text::TextLayoutCache const *=nullptr, SalLayoutGlyphs const *const pLayoutCache=nullptr) const
 
tools::Long GetTextArray(const OUString &rStr, KernArray *pDXAry, sal_Int32 nIndex=0, sal_Int32 nLen=-1, bool bCaret=false, vcl::text::TextLayoutCache const *=nullptr, SalLayoutGlyphs const *const pLayoutCache=nullptr) const
 
vcl::text::ComplexTextLayoutFlags GetLayoutMode() const
 
FontMetric GetFontMetric() const
 
const Color & GetLineColor() const
 
tools::Long GetTextHeight() const
 
void DrawText(const Point &rStartPt, const OUString &rStr, sal_Int32 nIndex=0, sal_Int32 nLen=-1, std::vector< tools::Rectangle > *pVector=nullptr, OUString *pDisplayText=nullptr, const SalLayoutGlyphs *pLayoutCache=nullptr)
 
void SetLayoutMode(vcl::text::ComplexTextLayoutFlags nTextLayoutMode)
 
sal_Int16 GetDepth() const
 
void SetNumberingStartValue(sal_Int16 nNumberingStartValue)
 
bool IsParaIsNumberingRestart() const
 
sal_Int16 GetNumberingStartValue() const
 
bool HasFlag(ParaFlag nFlag) const
 
void SetFlag(ParaFlag nFlag)
 
const OUString & GetText() const
 
void SetDepth(sal_Int16 nNewDepth)
 
void SetText(const OUString &rText)
 
void SetParaIsNumberingRestart(bool bParaIsNumberingRestart)
 
constexpr tools::Long Y() const
 
void setX(tools::Long nX)
 
void RotateAround(tools::Long &rX, tools::Long &rY, Degree10 nOrientation) const
 
void setY(tools::Long nY)
 
tools::Long AdjustY(tools::Long nVertMove)
 
tools::Long AdjustX(tools::Long nHorzMove)
 
constexpr tools::Long X() const
 
sal_Int16 GetValue() const
 
SfxItemState GetItemState(sal_uInt16 nWhich, bool bSrchInParent=true, const SfxPoolItem **ppItem=nullptr) const
 
const SfxPoolItem * Put(const SfxPoolItem &rItem, sal_uInt16 nWhich)
 
const SfxPoolItem & Get(sal_uInt16 nWhich, bool bSrchInParent=true) const
 
virtual SfxStyleSheetBase * Find(const OUString &, SfxStyleFamily eFam, SfxStyleSearchBits n=SfxStyleSearchBits::All)
 
const OUString & GetName() const
 
SfxStyleFamily GetFamily() const
 
constexpr tools::Long Height() const
 
void setWidth(tools::Long nWidth)
 
void setHeight(tools::Long nHeight)
 
constexpr tools::Long Width() const
 
SvxAdjust GetAdjust() const
 
const GraphicObject * GetGraphicObject(OUString const &referer=OUString()) const
 
This item stores a field (SvxFieldData).
 
short GetTextFirstLineOffset() const
 
tools::Long GetTextLeft() const
 
const SvxNumRule & GetNumRule() const
 
sal_uInt16 GetLevelCount() const
 
const SvxNumberFormat * Get(sal_uInt16 nLevel) const
 
SvxNumType GetNumberingType() const
 
OUString GetNumStr(sal_Int32 nNo) const
 
Specialise std::optional template for the case where we are wrapping a o3tl::cow_wrapper type,...
 
void SetFontSize(const Size &)
 
void SetOrientation(Degree10 nLineOrientation)
 
void SetVertical(bool bVertical)
 
void SetColor(const Color &)
 
void SetUnderline(FontLineStyle)
 
const Size & GetFontSize() const
 
void SetAlignment(TextAlign)
 
void SetOverline(FontLineStyle)
 
rtl_TextEncoding GetCharSet() const
 
void SetRelief(FontRelief)
 
void SetEmphasisMark(FontEmphasisMark)
 
void SetStrikeout(FontStrikeout)
 
constexpr ::Color COL_AUTO(ColorTransparency, 0xFF, 0xFF, 0xFF, 0xFF)
 
constexpr ::Color COL_BLACK(0x00, 0x00, 0x00)
 
#define DBG_ASSERT(sCon, aError)
 
#define EDITUNDO_DRAGANDDROP
 
constexpr TypedWhichId< SfxBoolItem > EE_PARA_BULLETSTATE(EE_PARA_START+9)
 
constexpr TypedWhichId< SvxAdjustItem > EE_PARA_JUST(EE_PARA_START+16)
 
constexpr TypedWhichId< SvxLRSpaceItem > EE_PARA_LRSPACE(EE_PARA_START+13)
 
constexpr TypedWhichId< SfxInt16Item > EE_PARA_OUTLLEVEL(EE_PARA_START+11)
 
constexpr TypedWhichId< SvxLRSpaceItem > EE_PARA_OUTLLRSPACE(EE_PARA_START+10)
 
constexpr TypedWhichId< SvxNumBulletItem > EE_PARA_NUMBULLET(EE_PARA_START+5)
 
struct _xmlTextWriter * xmlTextWriterPtr
 
TOOLS_DLLPUBLIC OString convertLineEnd(const OString &rIn, LineEnd eLineEnd)
 
#define LINK(Instance, Class, Member)
 
#define SAL_WARN(area, stream)
 
#define SAL_INFO(area, stream)
 
std::vector< WrongSpellClass > WrongSpellVector
 
B2IRange fround(const B2DRange &rRange)
 
OString stripStart(const OString &rIn, char c)
 
constexpr std::enable_if_t< std::is_signed_v< T >, std::make_unsigned_t< T > > make_unsigned(T value)
 
sal_Int32 toInt32(std::u16string_view str, sal_Int16 radix=10)
 
std::basic_string_view< charT, traits > getToken(std::basic_string_view< charT, traits > sv, charT delimiter, std::size_t &position)
 
constexpr T & temporary(T &&x)
 
IMPL_LINK(Outliner, ParaVisibleStateChangedHdl, Paragraph &, rPara, void)
 
static bool isSameNumbering(const SvxNumberFormat &rN1, const SvxNumberFormat &rN2)
 
IMPL_LINK_NOARG(Outliner, BeginMovingParagraphsHdl, MoveParagraphsInfo &, void)
 
::std::vector< ParagraphData > ParagraphDataVector
 
Sequence< Property > aInfos
 
sal_uInt16 nFirstLineMaxAscent