Skip to content

Commit

Permalink
Merge pull request #164 from DamjanJovanovic/editeng-32bit-paragraphs
Browse files Browse the repository at this point in the history
Update EditEngine code to use 32 bit paragraph storage
  • Loading branch information
DamjanJovanovic committed Feb 12, 2023
2 parents 05f6192 + d2d30fc commit d5edfd0
Show file tree
Hide file tree
Showing 136 changed files with 1,550 additions and 1,493 deletions.
4 changes: 2 additions & 2 deletions main/chart2/source/view/axes/VCartesianAxis.cxx
Expand Up @@ -330,8 +330,8 @@ bool lcl_hasWordBreak( const Reference< drawing::XShape >& rxShape )
SvxTextForwarder* pTextForwarder = pTextEditSource->GetTextForwarder();
if ( pTextForwarder )
{
sal_uInt16 nParaCount = pTextForwarder->GetParagraphCount();
for ( sal_uInt16 nPara = 0; nPara < nParaCount; ++nPara )
sal_uInt32 nParaCount = pTextForwarder->GetParagraphCount();
for ( sal_uInt32 nPara = 0; nPara < nParaCount; ++nPara )
{
sal_uInt16 nLineCount = pTextForwarder->GetLineCount( nPara );
for ( sal_uInt16 nLine = 0; nLine < nLineCount; ++nLine )
Expand Down
46 changes: 24 additions & 22 deletions main/editeng/inc/editeng/editdata.hxx
Expand Up @@ -46,11 +46,13 @@ enum EVAnchorMode {
ANCHOR_TOP_HCENTER, ANCHOR_VCENTER_HCENTER, ANCHOR_BOTTOM_HCENTER,
ANCHOR_TOP_RIGHT, ANCHOR_VCENTER_RIGHT, ANCHOR_BOTTOM_RIGHT };

#define EE_PARA_NOT_FOUND 0xFFFF
#define EE_PARA_APPEND 0xFFFF
#define EE_PARA_ALL 0xFFFF
#define EE_PARA_NOT_FOUND 0xFFFFFFFF
#define EE_PARA_MAX 0xFFFFFFFF
#define EE_PARA_APPEND 0xFFFFFFFF
#define EE_PARA_ALL 0xFFFFFFFF
#define EE_APPEND 0xFFFF
#define EE_INDEX_NOT_FOUND 0xFFFF
#define EE_INDEX_MAX 0xFFFF

// Fehlermeldungen fuer Read/Write-Methode
#define EE_READWRITE_OK (SVSTREAM_OK)
Expand Down Expand Up @@ -105,7 +107,7 @@ class SfxStyleSheet;

struct EPosition
{
sal_uInt16 nPara;
sal_uInt32 nPara;
xub_StrLen nIndex;

EPosition() :
Expand All @@ -114,7 +116,7 @@ struct EPosition
{
}

EPosition( sal_uInt16 nPara_, xub_StrLen nPos_ ) :
EPosition( sal_uInt32 nPara_, xub_StrLen nPos_ ) :
nPara( nPara_ ),
nIndex( nPos_ )
{
Expand All @@ -123,22 +125,22 @@ struct EPosition

struct ESelection
{
sal_uInt16 nStartPara;
sal_uInt32 nStartPara;
xub_StrLen nStartPos;
sal_uInt16 nEndPara;
sal_uInt32 nEndPara;
xub_StrLen nEndPos;

ESelection() : nStartPara( 0 ), nStartPos( 0 ), nEndPara( 0 ), nEndPos( 0 ) {}

ESelection( sal_uInt16 nStPara, xub_StrLen nStPos, sal_uInt16 nEPara, xub_StrLen nEPos ) :
ESelection( sal_uInt32 nStPara, xub_StrLen nStPos, sal_uInt32 nEPara, xub_StrLen nEPos ) :
nStartPara( nStPara ),
nStartPos( nStPos ),
nEndPara( nEPara ),
nEndPos( nEPos )
{
}

ESelection( sal_uInt16 nPara, xub_StrLen nPos ) :
ESelection( sal_uInt32 nPara, xub_StrLen nPos ) :
nStartPara( nPara ),
nStartPos( nPos ),
nEndPara( nPara ),
Expand Down Expand Up @@ -207,7 +209,7 @@ inline void ESelection::Adjust()

if ( bSwap )
{
sal_uInt16 nSPar = nStartPara; sal_uInt16 nSPos = nStartPos;
sal_uInt32 nSPar = nStartPara; sal_uInt16 nSPos = nStartPos;
nStartPara = nEndPara; nStartPos = nEndPos;
nEndPara = nSPar; nEndPos = nSPos;
}
Expand All @@ -220,7 +222,7 @@ struct EDITENG_DLLPUBLIC EFieldInfo
EPosition aPosition;

EFieldInfo();
EFieldInfo( const SvxFieldItem& rFieldItem, sal_uInt16 nPara, sal_uInt16 nPos );
EFieldInfo( const SvxFieldItem& rFieldItem, sal_uInt32 nPara, sal_uInt16 nPos );
~EFieldInfo();

EFieldInfo( const EFieldInfo& );
Expand Down Expand Up @@ -295,7 +297,7 @@ struct EECharAttrib
{
const SfxPoolItem* pAttr;

sal_uInt16 nPara;
sal_uInt32 nPara;
xub_StrLen nStart;
xub_StrLen nEnd;
};
Expand All @@ -304,11 +306,11 @@ SV_DECL_VARARR_VISIBILITY( EECharAttribArray, EECharAttrib, 0, 4, EDITENG_DLLPUB

struct MoveParagraphsInfo
{
sal_uInt16 nStartPara;
sal_uInt16 nEndPara;
sal_uInt16 nDestPara;
sal_uInt32 nStartPara;
sal_uInt32 nEndPara;
sal_uInt32 nDestPara;

MoveParagraphsInfo( sal_uInt16 nS, sal_uInt16 nE, sal_uInt16 nD )
MoveParagraphsInfo( sal_uInt32 nS, sal_uInt32 nE, sal_uInt32 nD )
{ nStartPara = nS; nEndPara = nE; nDestPara = nD; }
};

Expand All @@ -318,10 +320,10 @@ struct MoveParagraphsInfo
struct PasteOrDropInfos
{
sal_uInt16 nAction;
sal_uInt16 nStartPara;
sal_uInt16 nEndPara;
sal_uInt32 nStartPara;
sal_uInt32 nEndPara;

PasteOrDropInfos() : nAction(0), nStartPara(0xFFFF), nEndPara(0xFFFF) {}
PasteOrDropInfos() : nAction(0), nStartPara(EE_PARA_MAX), nEndPara(EE_PARA_MAX) {}
};

enum EENotifyType
Expand Down Expand Up @@ -373,10 +375,10 @@ struct EENotify
EditEngine* pEditEngine;
EditView* pEditView;

sal_uInt16 nParagraph; // only valid in PARAGRAPHINSERTED/EE_NOTIFY_PARAGRAPHREMOVED
sal_uInt32 nParagraph; // only valid in PARAGRAPHINSERTED/EE_NOTIFY_PARAGRAPHREMOVED

sal_uInt16 nParam1;
sal_uInt16 nParam2;
sal_uInt32 nParam1;
sal_uInt32 nParam2;

EENotify( EENotifyType eType )
{ eNotificationType = eType; pEditEngine = NULL; pEditView = NULL; nParagraph = EE_PARA_NOT_FOUND; nParam1 = 0; nParam2 = 0; }
Expand Down
106 changes: 53 additions & 53 deletions main/editeng/inc/editeng/editeng.hxx
Expand Up @@ -180,7 +180,7 @@ public:
EEHorizontalTextDirection GetDefaultHorizontalTextDirection() const;

sal_uInt16 GetScriptType( const ESelection& rSelection ) const;
LanguageType GetLanguage( sal_uInt16 nPara, sal_uInt16 nPos ) const;
LanguageType GetLanguage( sal_uInt32 nPara, sal_uInt16 nPos ) const;

void TransliterateText( const ESelection& rSelection, sal_Int32 nTransliterationMode );

Expand Down Expand Up @@ -210,24 +210,24 @@ public:
sal_uInt32 GetTextHeight() const;
sal_uInt32 CalcTextWidth();

String GetText( sal_uInt16 nParagraph ) const;
xub_StrLen GetTextLen( sal_uInt16 nParagraph ) const;
sal_uInt32 GetTextHeight( sal_uInt16 nParagraph ) const;
String GetText( sal_uInt32 nParagraph ) const;
xub_StrLen GetTextLen( sal_uInt32 nParagraph ) const;
sal_uInt32 GetTextHeight( sal_uInt32 nParagraph ) const;

sal_uInt16 GetParagraphCount() const;
sal_uInt32 GetParagraphCount() const;

sal_uInt16 GetLineCount( sal_uInt16 nParagraph ) const;
xub_StrLen GetLineLen( sal_uInt16 nParagraph, sal_uInt16 nLine ) const;
void GetLineBoundaries( /*out*/sal_uInt16 &rStart, /*out*/sal_uInt16 &rEnd, sal_uInt16 nParagraph, sal_uInt16 nLine ) const;
sal_uInt16 GetLineNumberAtIndex( sal_uInt16 nPara, sal_uInt16 nIndex ) const;
sal_uInt32 GetLineHeight( sal_uInt16 nParagraph, sal_uInt16 nLine = 0 );
sal_uInt16 GetFirstLineOffset( sal_uInt16 nParagraph );
ParagraphInfos GetParagraphInfos( sal_uInt16 nPara );
sal_uInt16 FindParagraph( long nDocPosY );
sal_uInt16 GetLineCount( sal_uInt32 nParagraph ) const;
xub_StrLen GetLineLen( sal_uInt32 nParagraph, sal_uInt16 nLine ) const;
void GetLineBoundaries( /*out*/sal_uInt16 &rStart, /*out*/sal_uInt16 &rEnd, sal_uInt32 nParagraph, sal_uInt16 nLine ) const;
sal_uInt16 GetLineNumberAtIndex( sal_uInt32 nPara, sal_uInt16 nIndex ) const;
sal_uInt32 GetLineHeight( sal_uInt32 nParagraph, sal_uInt16 nLine = 0 );
sal_uInt16 GetFirstLineOffset( sal_uInt32 nParagraph );
ParagraphInfos GetParagraphInfos( sal_uInt32 nPara );
sal_uInt32 FindParagraph( long nDocPosY );
EPosition FindDocPosition( const Point& rDocPos ) const;
Rectangle GetCharacterBounds( const EPosition& rPos ) const;

String GetWord( sal_uInt16 nPara, xub_StrLen nIndex );
String GetWord( sal_uInt32 nPara, xub_StrLen nIndex );

ESelection GetWord( const ESelection& rSelection, sal_uInt16 nWordType ) const;
ESelection WordLeft( const ESelection& rSelection, sal_uInt16 nWordType ) const;
Expand All @@ -240,35 +240,35 @@ public:
void SetText( const String& rStr );

EditTextObject* CreateTextObject();
EditTextObject* CreateTextObject( sal_uInt16 nPara, sal_uInt16 nParas = 1 );
EditTextObject* CreateTextObject( sal_uInt32 nPara, sal_uInt32 nParas = 1 );
EditTextObject* CreateTextObject( const ESelection& rESelection );
void SetText( const EditTextObject& rTextObject );

void RemoveParagraph( sal_uInt16 nPara );
void InsertParagraph( sal_uInt16 nPara, const EditTextObject& rTxtObj );
void InsertParagraph( sal_uInt16 nPara, const String& rText);
void RemoveParagraph( sal_uInt32 nPara );
void InsertParagraph( sal_uInt32 nPara, const EditTextObject& rTxtObj );
void InsertParagraph( sal_uInt32 nPara, const String& rText);

void SetText( sal_uInt16 nPara, const EditTextObject& rTxtObj );
void SetText( sal_uInt16 nPara, const String& rText);
void SetText( sal_uInt32 nPara, const EditTextObject& rTxtObj );
void SetText( sal_uInt32 nPara, const String& rText);

virtual void SetParaAttribs( sal_uInt16 nPara, const SfxItemSet& rSet );
virtual const SfxItemSet& GetParaAttribs( sal_uInt16 nPara ) const;
virtual void SetParaAttribs( sal_uInt32 nPara, const SfxItemSet& rSet );
virtual const SfxItemSet& GetParaAttribs( sal_uInt32 nPara ) const;

void GetCharAttribs( sal_uInt16 nPara, EECharAttribArray& rLst ) const;
void GetCharAttribs( sal_uInt32 nPara, EECharAttribArray& rLst ) const;

SfxItemSet GetAttribs( sal_uInt16 nPara, sal_uInt16 nStart, sal_uInt16 nEnd, sal_uInt8 nFlags = 0xFF ) const;
SfxItemSet GetAttribs( sal_uInt32 nPara, sal_uInt16 nStart, sal_uInt16 nEnd, sal_uInt8 nFlags = 0xFF ) const;
SfxItemSet GetAttribs( const ESelection& rSel, sal_Bool bOnlyHardAttrib = EditEngineAttribs_All );

sal_Bool HasParaAttrib( sal_uInt16 nPara, sal_uInt16 nWhich ) const;
const SfxPoolItem& GetParaAttrib( sal_uInt16 nPara, sal_uInt16 nWhich );
sal_Bool HasParaAttrib( sal_uInt32 nPara, sal_uInt16 nWhich ) const;
const SfxPoolItem& GetParaAttrib( sal_uInt32 nPara, sal_uInt16 nWhich );

Font GetStandardFont( sal_uInt16 nPara );
SvxFont GetStandardSvxFont( sal_uInt16 nPara );
Font GetStandardFont( sal_uInt32 nPara );
SvxFont GetStandardSvxFont( sal_uInt32 nPara );

void RemoveAttribs( const ESelection& rSelection, sal_Bool bRemoveParaAttribs, sal_uInt16 nWhich );

void ShowParagraph( sal_uInt16 nParagraph, sal_Bool bShow = sal_True );
sal_Bool IsParagraphVisible( sal_uInt16 nParagraph );
void ShowParagraph( sal_uInt32 nParagraph, sal_Bool bShow = sal_True );
sal_Bool IsParagraphVisible( sal_uInt32 nParagraph );

::svl::IUndoManager& GetUndoManager();
::svl::IUndoManager* SetUndoManager(::svl::IUndoManager* pNew);
Expand All @@ -295,10 +295,10 @@ public:
void StopSelectionMode();

void StripPortions();
void GetPortions( sal_uInt16 nPara, SvUShorts& rList );
void GetPortions( sal_uInt32 nPara, SvUShorts& rList );

long GetFirstLineStartX( sal_uInt16 nParagraph );
Point GetDocPosTopLeft( sal_uInt16 nParagraph );
long GetFirstLineStartX( sal_uInt32 nParagraph );
Point GetDocPosTopLeft( sal_uInt32 nParagraph );
Point GetDocPos( const Point& rPaperPos ) const;
sal_Bool IsTextPos( const Point& rPaperPos, sal_uInt16 nBorder = 0 );

Expand Down Expand Up @@ -329,14 +329,14 @@ public:
sal_uInt32 GetControlWord() const;

void QuickSetAttribs( const SfxItemSet& rSet, const ESelection& rSel );
void QuickRemoveCharAttribs( sal_uInt16 nPara, sal_uInt16 nWhich = 0 );
void QuickRemoveCharAttribs( sal_uInt32 nPara, sal_uInt16 nWhich = 0 );
void QuickMarkInvalid( const ESelection& rSel );
void QuickFormatDoc( sal_Bool bFull = sal_False );
void QuickInsertField( const SvxFieldItem& rFld, const ESelection& rSel );
void QuickInsertLineBreak( const ESelection& rSel );
void QuickInsertText( const String& rText, const ESelection& rSel );
void QuickDelete( const ESelection& rSel );
void QuickMarkToBeRepainted( sal_uInt16 nPara );
void QuickMarkToBeRepainted( sal_uInt32 nPara );

void SetGlobalCharStretching( sal_uInt16 nX = 100, sal_uInt16 nY = 100 );
void GetGlobalCharStretching( sal_uInt16& rX, sal_uInt16& rY );
Expand All @@ -348,8 +348,8 @@ public:
void SetStyleSheetPool( SfxStyleSheetPool* pSPool );
SfxStyleSheetPool* GetStyleSheetPool();

void SetStyleSheet( sal_uInt16 nPara, SfxStyleSheet* pStyle );
SfxStyleSheet* GetStyleSheet( sal_uInt16 nPara ) const;
void SetStyleSheet( sal_uInt32 nPara, SfxStyleSheet* pStyle );
SfxStyleSheet* GetStyleSheet( sal_uInt32 nPara ) const;

void SetWordDelimiters( const String& rDelimiters );
String GetWordDelimiters() const;
Expand Down Expand Up @@ -411,10 +411,10 @@ public:
sal_Bool UpdateFields();
void RemoveFields( sal_Bool bKeepFieldText, TypeId aType = NULL );

sal_uInt16 GetFieldCount( sal_uInt16 nPara ) const;
EFieldInfo GetFieldInfo( sal_uInt16 nPara, sal_uInt16 nField ) const;
sal_uInt16 GetFieldCount( sal_uInt32 nPara ) const;
EFieldInfo GetFieldInfo( sal_uInt32 nPara, sal_uInt16 nField ) const;

sal_Bool IsRightToLeft( sal_uInt16 nPara ) const;
sal_Bool IsRightToLeft( sal_uInt32 nPara ) const;

::com::sun::star::uno::Reference< ::com::sun::star::datatransfer::XTransferable >
CreateTransferable( const ESelection& rSelection ) const;
Expand All @@ -425,18 +425,18 @@ public:
void SetBeginPasteOrDropHdl( const Link& rLink );
void SetEndPasteOrDropHdl( const Link& rLink );

virtual void PaintingFirstLine( sal_uInt16 nPara, const Point& rStartPos, long nBaseLineY, const Point& rOrigin, short nOrientation, OutputDevice* pOutDev );
virtual void ParagraphInserted( sal_uInt16 nNewParagraph );
virtual void ParagraphDeleted( sal_uInt16 nDeletedParagraph );
virtual void ParagraphConnected( sal_uInt16 nLeftParagraph, sal_uInt16 nRightParagraph );
virtual void ParaAttribsChanged( sal_uInt16 nParagraph );
virtual void PaintingFirstLine( sal_uInt32 nPara, const Point& rStartPos, long nBaseLineY, const Point& rOrigin, short nOrientation, OutputDevice* pOutDev );
virtual void ParagraphInserted( sal_uInt32 nNewParagraph );
virtual void ParagraphDeleted( sal_uInt32 nDeletedParagraph );
virtual void ParagraphConnected( sal_uInt32 nLeftParagraph, sal_uInt32 nRightParagraph );
virtual void ParaAttribsChanged( sal_uInt32 nParagraph );
virtual void StyleSheetChanged( SfxStyleSheet* pStyle );
virtual void ParagraphHeightChanged( sal_uInt16 nPara );
virtual void ParagraphHeightChanged( sal_uInt32 nPara );

// #101498#
virtual void DrawingText(
const Point& rStartPos, const String& rText, sal_uInt16 nTextStart, sal_uInt16 nTextLen, const sal_Int32* pDXArray,
const SvxFont& rFont, sal_uInt16 nPara, xub_StrLen nIndex, sal_uInt8 nRightToLeft,
const SvxFont& rFont, sal_uInt32 nPara, xub_StrLen nIndex, sal_uInt8 nRightToLeft,
const EEngineData::WrongSpellVector* pWrongSpellVector,
const SvxFieldData* pFieldData,
bool bEndOfLine,
Expand All @@ -447,16 +447,16 @@ public:
const Color& rTextLineColor);

virtual String GetUndoComment( sal_uInt16 nUndoId ) const;
virtual sal_Bool FormattingParagraph( sal_uInt16 nPara );
virtual sal_Bool FormattingParagraph( sal_uInt32 nPara );
virtual sal_Bool SpellNextDocument();
virtual void FieldClicked( const SvxFieldItem& rField, sal_uInt16 nPara, xub_StrLen nPos );
virtual void FieldSelected( const SvxFieldItem& rField, sal_uInt16 nPara, xub_StrLen nPos );
virtual String CalcFieldValue( const SvxFieldItem& rField, sal_uInt16 nPara, xub_StrLen nPos, Color*& rTxtColor, Color*& rFldColor );
virtual void FieldClicked( const SvxFieldItem& rField, sal_uInt32 nPara, xub_StrLen nPos );
virtual void FieldSelected( const SvxFieldItem& rField, sal_uInt32 nPara, xub_StrLen nPos );
virtual String CalcFieldValue( const SvxFieldItem& rField, sal_uInt32 nPara, xub_StrLen nPos, Color*& rTxtColor, Color*& rFldColor );

// to be overloaded if access to bullet information needs to be provided
virtual const SvxNumberFormat * GetNumberFormat( sal_uInt16 nPara ) const;
virtual const SvxNumberFormat * GetNumberFormat( sal_uInt32 nPara ) const;

virtual Rectangle GetBulletArea( sal_uInt16 nPara );
virtual Rectangle GetBulletArea( sal_uInt32 nPara );

static SfxItemPool* CreatePool( sal_Bool bLoadRefCounts = sal_True );
static SfxItemPool& GetGlobalItemPool();
Expand Down
20 changes: 10 additions & 10 deletions main/editeng/inc/editeng/editobj.hxx
Expand Up @@ -79,20 +79,20 @@ public:
SfxItemPool* pGlobalTextObjectPool = 0 );
void Skip( SvStream& rIStream );

virtual sal_uInt16 GetParagraphCount() const;
virtual sal_uInt32 GetParagraphCount() const;

virtual XubString GetText( sal_uInt16 nParagraph ) const;
virtual void Insert( const EditTextObject& rObj, sal_uInt16 nPara );
virtual void RemoveParagraph( sal_uInt16 nPara );
virtual EditTextObject* CreateTextObject( sal_uInt16 nPara, sal_uInt16 nParas = 1 ) const;
virtual XubString GetText( sal_uInt32 nParagraph ) const;
virtual void Insert( const EditTextObject& rObj, sal_uInt32 nPara );
virtual void RemoveParagraph( sal_uInt32 nPara );
virtual EditTextObject* CreateTextObject( sal_uInt32 nPara, sal_uInt32 nParas = 1 ) const;

virtual sal_Bool HasPortionInfo() const;
virtual void ClearPortionInfo();

virtual sal_Bool HasOnlineSpellErrors() const;

virtual sal_Bool HasCharAttribs( sal_uInt16 nWhich = 0 ) const;
virtual void GetCharAttribs( sal_uInt16 nPara, EECharAttribArray& rLst ) const;
virtual void GetCharAttribs( sal_uInt32 nPara, EECharAttribArray& rLst ) const;

virtual sal_Bool RemoveCharAttribs( sal_uInt16 nWhich = 0 );
virtual sal_Bool RemoveParaAttribs( sal_uInt16 nWhich = 0 );
Expand All @@ -103,12 +103,12 @@ public:
virtual const SvxFieldItem* GetField() const;
virtual sal_Bool HasField( TypeId aType = NULL ) const;

virtual SfxItemSet GetParaAttribs( sal_uInt16 nPara ) const;
virtual void SetParaAttribs( sal_uInt16 nPara, const SfxItemSet& rAttribs );
virtual SfxItemSet GetParaAttribs( sal_uInt32 nPara ) const;
virtual void SetParaAttribs( sal_uInt32 nPara, const SfxItemSet& rAttribs );

virtual sal_Bool HasStyleSheet( const XubString& rName, SfxStyleFamily eFamily ) const;
virtual void GetStyleSheet( sal_uInt16 nPara, XubString& rName, SfxStyleFamily& eFamily ) const;
virtual void SetStyleSheet( sal_uInt16 nPara, const XubString& rName, const SfxStyleFamily& eFamily );
virtual void GetStyleSheet( sal_uInt32 nPara, XubString& rName, SfxStyleFamily& eFamily ) const;
virtual void SetStyleSheet( sal_uInt32 nPara, const XubString& rName, const SfxStyleFamily& eFamily );
virtual sal_Bool ChangeStyleSheets( const XubString& rOldName, SfxStyleFamily eOldFamily,
const XubString& rNewName, SfxStyleFamily eNewFamily );
virtual void ChangeStyleSheetName( SfxStyleFamily eFamily, const XubString& rOldName, const XubString& rNewName );
Expand Down

0 comments on commit d5edfd0

Please sign in to comment.