43#include <com/sun/star/linguistic2/XSpellAlternatives.hpp>
44#include <com/sun/star/linguistic2/XSpellChecker1.hpp>
45#include <com/sun/star/linguistic2/XHyphenator.hpp>
46#include <com/sun/star/lang/Locale.hpp>
47#include <com/sun/star/i18n/XBreakIterator.hpp>
48#include <com/sun/star/i18n/CharacterIteratorMode.hpp>
49#include <com/sun/star/i18n/WordType.hpp>
50#include <com/sun/star/i18n/XExtendedInputSequenceChecker.hpp>
51#include <com/sun/star/uno/Sequence.hxx>
66class OutlinerSearchable;
80 struct MisspellRanges;
85#define TRAVEL_X_DONTKNOW 0xFFFFFFFF
86#define CURSOR_BIDILEVEL_DONTKNOW 0xFFFF
87#define MAXCHARSINPARA 0x3FFF-CHARPOSGROW
88#define LINE_SEP '\x0A'
90#define ATTRSPECIAL_WHOLEWORD 1
91#define ATTRSPECIAL_EDGE 2
216 const Point& rVisDocStartPos);
265 std::unique_ptr<vcl::Cursor, o3tl::default_delete<vcl::Cursor>>
pCursor;
277 css::uno::Reference< css::datatransfer::dnd::XDragSourceListener >
mxDnDListener;
315 void lokSelectionCallback(
const std::optional<tools::PolyPolygon> &pPolyPoly,
bool bStartHandleVisible,
bool bEndHandleVisible);
324 css::uno::Reference<css::datatransfer::clipboard::XClipboard>
GetClipboard()
const;
335 void dragDropEnd(
const css::datatransfer::dnd::DragSourceDropEvent& dsde )
override;
336 void drop(
const css::datatransfer::dnd::DropTargetDropEvent& dtde)
override;
337 void dragEnter(
const css::datatransfer::dnd::DropTargetDragEnterEvent& dtdee )
override;
338 void dragExit(
const css::datatransfer::dnd::DropTargetEvent& dte )
override;
339 void dragOver(
const css::datatransfer::dnd::DropTargetDragEvent& dtde)
override;
346 sal_Int32& nTextPortionStart,
const ParaPortion* pParaPortion)
const;
379 void CutCopy( css::uno::Reference< css::datatransfer::clipboard::XClipboard >
const & rxClipboard,
bool bCut );
380 void Paste( css::uno::Reference< css::datatransfer::clipboard::XClipboard >
const & rxClipboard,
bool bUseSpecial =
false );
431 void ShowCursor(
bool bGotoCursor,
bool bForceVisCursor );
466 const Point& rVisDocStartPos);
546 css::uno::Reference< css::linguistic2::XSpellChecker1 >
xSpeller;
549 mutable css::uno::Reference < css::i18n::XBreakIterator >
xBI;
550 mutable css::uno::Reference < css::i18n::XExtendedInputSequenceChecker >
xISC;
627 void InsertUndo( std::unique_ptr<EditUndo> pUndo,
bool bTryMerge =
false );
644 void GetCharAttribs( sal_Int32 nPara, std::vector<EECharAttrib>& rLst )
const;
646 std::unique_ptr<EditTextObject>
649 EditSelection PasteText( css::uno::Reference< css::datatransfer::XTransferable >
const & rxDataObj,
const OUString& rBaseURL,
const EditPaM& rPaM,
bool bUseSpecial );
655 bool CreateLines( sal_Int32 nPara, sal_uInt32 nStartPosY );
696 EditPaM CursorLeft(
const EditPaM& rPaM, sal_uInt16 nCharacterIteratorMode = css::i18n::CharacterIteratorMode::SKIPCELL );
697 EditPaM CursorRight(
const EditPaM& rPaM, sal_uInt16 nCharacterIteratorMode = css::i18n::CharacterIteratorMode::SKIPCELL );
705 EditPaM WordRight(
const EditPaM& rPaM, sal_Int16 nWordType = css::i18n::WordType::ANYWORD_IGNOREWHITESPACES );
718 bool HasScriptType( sal_Int32 nPara, sal_uInt16 nType )
const;
721 sal_Int32* pDXArray, sal_uInt16 n100thPercentFromMax,
bool bManipulateDXArray );
738 std::vector<std::unique_ptr<SvxFontItem>>& rFontTable,
SvxColorList& rColorList );
740 std::vector<std::unique_ptr<SvxFontItem>>& rFontTable,
SvxColorList& rColorList );
823 void InitDoc(
bool bKeepParaAttribs);
875 sal_uInt8 GetRightToLeft( sal_Int32 nPara, sal_Int32 nChar, sal_Int32* pStart =
nullptr, sal_Int32* pEnd =
nullptr );
919 void SetText(
const OUString& rText);
947 sal_uInt32
CalcParaWidth( sal_Int32 nParagraph,
bool bIgnoreExtraSpace );
950 sal_Int32
GetLineLen( sal_Int32 nParagraph, sal_Int32 nLine )
const;
951 void GetLineBoundaries( sal_Int32& rStart, sal_Int32& rEnd, sal_Int32 nParagraph, sal_Int32 nLine )
const;
953 sal_uInt16
GetLineHeight( sal_Int32 nParagraph, sal_Int32 nLine );
960 void RemoveCharAttribs( sal_Int32 nPara, sal_uInt16 nWhich = 0,
bool bRemoveFeatures =
false );
966 bool HasParaAttrib( sal_Int32 nPara, sal_uInt16 nWhich )
const;
971 return static_cast<const T&
>(
GetParaAttrib(nPara, sal_uInt16(nWhich)));
1041 css::uno::Reference< css::linguistic2::XSpellChecker1 >
const &
1043 void SetSpeller( css::uno::Reference< css::linguistic2::XSpellChecker1 >
const &xSpl )
1045 const css::uno::Reference< css::linguistic2::XHyphenator >&
1047 void SetHyphenator( css::uno::Reference< css::linguistic2::XHyphenator >
const &xHyph )
1066 css::uno::Reference< css::linguistic2::XSpellAlternatives >
1072 bool bAllowImplicitChangesForNotConvertibleText,
LanguageType nTargetLang,
const vcl::Font *pTargetFont );
1077 const vcl::Font *pFont, sal_uInt16 nFontWhichId );
1083 css::uno::Reference< css::linguistic2::XSpellAlternatives >
1095 const css::uno::Reference< css::linguistic2::XSpellAlternatives >& xAlt,
1100 const css::uno::Reference< css::linguistic2::XSpellAlternatives >& xAlt,
1120 void setScale(
double fFontScaleX,
double fFontScaleY,
double fSpacingScaleX,
double fSpacingScaleY);
1145 short ReplaceTextOnly(
ContentNode* pNode, sal_Int32 nCurrentStart, std::u16string_view rText,
const css::uno::Sequence< sal_Int32 >& rOffsets );
1162 static void SetForbiddenCharsTable(
const std::shared_ptr<SvxForbiddenCharactersTable>& xForbiddenChars );
1285 pVirtDev->SetDrawMode( nDrawMode );
bool IsEffectivelyVertical() const
bool IsTopToBottom() const
sal_Int32 GetPos(const ContentNode *pNode) const
bool IsFixedCellHeight() const
TextRotation GetRotation() const
std::vector< EditView * > ViewsType
void SetIndex(sal_Int32 n)
void SetNode(ContentNode *p)
const ContentNode * GetNode() const
sal_Int32 GetIndex() const
bool DbgIsBuggy(EditDoc const &rDoc) const
void SetEditEngine(EditEngine *pNew)
std::vector< VclPtr< vcl::Window > > OutWindowSet
void SetBeginDropHdl(const Link< EditView *, void > &rLink)
sets a link that is called at the beginning of a drag operation at an edit view
SfxStyleSheetPool * GetStyleSheetPool() const
void WriteXML(SvStream &rOutput, const EditSelection &rSel)
void SetLOKSpecialPaperSize(const Size &rSize)
EESpellState StartThesaurus(EditView *pEditView, weld::Widget *pDialogParent)
void CursorMoved(const ContentNode *pPrevNode)
EditPaM PageDown(const EditPaM &rPaM, EditView const *pView)
void SetReplaceLeadingSingleQuotationMark(bool bReplace)
specifies if auto-correction should replace a leading single quotation mark (apostrophe) or not (defa...
std::optional< ESelection > moUndoMarkSelection
bool IsFixedCellHeight() const
void SetBackgroundColor(const Color &rColor)
void SetNotifyHdl(const Link< EENotify &, void > &rLink)
short ReplaceTextOnly(ContentNode *pNode, sal_Int32 nCurrentStart, std::u16string_view rText, const css::uno::Sequence< sal_Int32 > &rOffsets)
void RemoveCharAttribs(EditSelection aSel, EERemoveParaAttribsMode eMode, sal_uInt16 nWhich)
sal_Int32 nBigTextObjectStart
bool IsPageOverflow() const
const Size & GetLOKSpecialPaperSize() const
css::uno::Reference< css::linguistic2::XSpellAlternatives > ImpSpell(EditView *pEditView)
tools::Long GetXPos(const ParaPortion *pParaPortion, const EditLine *pLine, sal_Int32 nIndex, bool bPreferPortionStart=false) const
sal_uInt16 GetLineHeight(sal_Int32 nParagraph, sal_Int32 nLine)
sal_Int32 StartSearchAndReplace(EditView *pEditView, const SvxSearchItem &rSearchItem)
EditPaM WordLeft(const EditPaM &rPaM)
void CalcHeight(ParaPortion *pPortion)
VirtualDevice * GetVirtualDevice(const MapMode &rMapMode, DrawModeFlags nDrawMode)
tools::Long GetPortionXOffset(const ParaPortion *pParaPortion, const EditLine *pLine, sal_Int32 nTextPortion) const
bool HasDifferentRTLLevels(const ContentNode *pNode)
const T & GetParaAttrib(sal_Int32 nPara, TypedWhichId< T > nWhich) const
EditPaM ImpInsertFeature(const EditSelection &rCurSel, const SfxPoolItem &rItem)
Link< EditView *, void > maEndDropHdl
css::uno::Reference< css::linguistic2::XSpellChecker1 > xSpeller
void StopOnlineSpellTimer()
sal_Int32 SplitTextPortion(ParaPortion *pParaPortion, sal_Int32 nPos, EditLine *pCurLine=nullptr)
const ParaPortion * GetNextVisPortion(const ParaPortion *pCurPortion) const
const SfxItemSet & GetEmptyItemSet() const
LanguageType GetDefaultLanguage() const
const SfxItemSet & GetParaAttribs(sal_Int32 nPara) const
Link< MoveParagraphsInfo &, void > aBeginMovingParagraphsHdl
EditPaM ImpFastInsertText(EditPaM aPaM, const OUString &rStr)
const Size & GetPaperSize() const
void Convert(EditView *pEditView, weld::Widget *pDialogParent, LanguageType nSrcLang, LanguageType nDestLang, const vcl::Font *pDestFont, sal_Int32 nOptions, bool bIsInteractive, bool bMultipleDoc)
EditSelectionEngine aSelEngine
bool HasText(const SvxSearchItem &rSearchItem)
sal_Int32 GetLineLen(sal_Int32 nParagraph, sal_Int32 nLine) const
EditPaM CursorLeft(const EditPaM &rPaM, sal_uInt16 nCharacterIteratorMode=css::i18n::CharacterIteratorMode::SKIPCELL)
const MapMode & GetRefMapMode() const
static OUString convertDigits(std::u16string_view rString, sal_Int32 nStt, sal_Int32 nLen, LanguageType eDigitLang)
Link< PasteOrDropInfos &, void > aEndPasteOrDropHdl
EditPaM ImpFastInsertParagraph(sal_Int32 nPara)
ImpEditEngine(EditEngine *pEditEngine, SfxItemPool *pPool)
Color GetAutoColor() const
void RecalcFormatterFontMetrics(FormatterFontMetric &rCurMetrics, SvxFont &rFont)
tools::Long CalcTextHeight(tools::Long *pHeightNTP)
EditPaM CursorStartOfLine(const EditPaM &rPaM)
EditPaM CursorEndOfLine(const EditPaM &rPaM)
css::lang::Locale GetLocale(const EditPaM &rPaM) const
static void ImplInitDigitMode(OutputDevice &rOutDev, LanguageType eLang)
EditPaM StartOfWord(const EditPaM &rPaM)
ImpEditEngine(const ImpEditEngine &)=delete
void Undo(EditView *pView)
css::uno::Reference< css::i18n::XExtendedInputSequenceChecker > xISC
void SetParaAttribs(sal_Int32 nPara, const SfxItemSet &rSet)
void ImplUpdateOverflowingLineNum(tools::Long, sal_uInt32, tools::Long)
DECL_LINK(IdleFormatHdl, Timer *, void)
bool ImplCalcAsianCompression(ContentNode *pNode, TextPortion *pTextPortion, sal_Int32 nStartPos, sal_Int32 *pDXArray, sal_uInt16 n100thPercentFromMax, bool bManipulateDXArray)
void SetHyphenator(css::uno::Reference< css::linguistic2::XHyphenator > const &xHyph)
void IterateLineAreas(const IterateLinesAreasFunc &f, IterFlag eOptions)
void UndoActionStart(sal_uInt16 nId)
OUString GetSelected(const EditSelection &rSel) const
EditPaM ReadHTML(SvStream &rInput, const OUString &rBaseURL, EditSelection aSel, SvKeyValueIterator *pHTTPHeaderAttrs)
ErrCode WriteRTF(SvStream &rOutput, EditSelection aSel)
void SetCallParaInsertedOrDeleted(bool b)
LanguageType eDefLanguage
void DoOnlineSpelling(ContentNode *pThisNodeOnly=nullptr, bool bSpellAtCursorPos=false, bool bInterruptible=true)
bool mbNeedsChainingHandling
SvtScriptType GetItemScriptType(const EditSelection &rSel) const
SpellInfo * GetSpellInfo() const
TextRotation GetRotation() const
void SetAutoCompleteText(const OUString &rStr, bool bUpdateTipWindow)
sal_uInt32 GetTextHeightNTP() const
void SetAsianCompressionMode(CharCompressType n)
bool isUsedByModel() const override
EditSelection MoveParagraphs(Range aParagraphs, sal_Int32 nNewPos, EditView *pCurView)
bool IsAddExtLeading() const
void ImpFindKashidas(ContentNode *pNode, sal_Int32 nStart, sal_Int32 nEnd, std::vector< sal_Int32 > &rArray)
static LanguageType ImplCalcDigitLang(LanguageType eCurLang)
const css::uno::Reference< css::linguistic2::XHyphenator > & GetHyphenator() const
std::unique_ptr< SfxItemSet > pEmptyItemSet
Link< LinkParamNone *, void > aModifyHdl
Point MoveToNextLine(Point &rMovePos, tools::Long nLineHeight, sal_Int16 &nColumn, Point aOrigin, tools::Long *pnHeightNeededToNotWrap=nullptr) const
EditPaM PageUp(const EditPaM &rPaM, EditView const *pView)
EditPaM InsertParaBreak(const EditSelection &rEditSelection)
EPaM CreateEPaM(const EditPaM &rPaM) const
ParaPortionList & GetParaPortions()
sal_uInt32 GetParaHeight(sal_Int32 nParagraph)
EditEngine * GetEditEnginePtr() const
ContentNode * GetNextVisNode(ContentNode const *pCurNode)
bool CreateLines(sal_Int32 nPara, sal_uInt32 nStartPosY)
void SetModifyHdl(const Link< LinkParamNone *, void > &rLink)
bool IsForceAutoColor() const
EditPaM CreateEditPaM(const EPaM &rEPaM)
sal_uInt32 GetTextHeight() const
sal_Int32 GetLineCount(sal_Int32 nParagraph) const
EditPaM SplitContent(sal_Int32 nNode, sal_Int32 nSepPos)
const SfxStyleSheet * GetStyleSheet(sal_Int32 nPara) const
void ImplInitLayoutMode(OutputDevice &rOutDev, sal_Int32 nPara, sal_Int32 nIndex)
const SvxNumberFormat * GetNumberFormat(const ContentNode *pNode) const
EditPaM GetPaM(Point aDocPos, bool bSmart=true)
bool bFirstWordCapitalization
const ParaPortion * FindParaPortion(const ContentNode *pNode) const
tools::Long getBottomDocOffset(const tools::Rectangle &rect) const
std::vector< std::unique_ptr< DeletedNodeInfo > > aDeletedNodes
EESpellState HasSpellErrors()
bool IsEffectivelyVertical() const
EditPaM CursorRight(const EditPaM &rPaM, sal_uInt16 nCharacterIteratorMode=css::i18n::CharacterIteratorMode::SKIPCELL)
bool HasParaAttrib(sal_Int32 nPara, sal_uInt16 nWhich) const
EditUndoManager * pUndoManager
void UpdateViews(EditView *pCurView=nullptr)
void SeekCursor(ContentNode *pNode, sal_Int32 nPos, SvxFont &rFont, OutputDevice *pOut=nullptr)
const Link< EditView *, void > & GetBeginDropHdl() const
css::uno::Reference< css::linguistic2::XSpellChecker1 > const & GetSpeller()
const EditDoc & GetEditDoc() const
ViewShellId CreateViewShellId()
Obtains a view shell ID from the active EditView.
EditPaM CursorStartOfDoc()
SvxAdjust GetJustification(sal_Int32 nPara) const
void EraseVirtualDevice()
editeng::LanguageSpan GetLanguage(const EditPaM &rPaM, sal_Int32 *pEndPos=nullptr) const
bool Command(const CommandEvent &rCEvt, EditView *pView)
ParaPortionList aParaPortionList
EditEngine::ViewsType ViewsType
ImpEditEngine & operator=(const ImpEditEngine &)=delete
SfxItemSet GetAttribs(sal_Int32 nPara, sal_Int32 nStart, sal_Int32 nEnd, GetAttribsFlags nFlags=GetAttribsFlags::ALL) const
EditSelection const & MoveCursor(const KeyEvent &rKeyEvent, EditView *pEditView)
virtual ~ImpEditEngine() override
bool isXOverflowDirectionAware(const Point &pt, const tools::Rectangle &rectMax) const
EditSelFunctionSet aSelFuncSet
bool MouseMove(const MouseEvent &rMouseEvent, EditView *pView)
bool SpellSentence(EditView const &rView, svx::SpellPortions &rToFill)
double scaleXFontValue(tools::Long nXValue) const
EEHorizontalTextDirection GetDefaultHorizontalTextDirection() const
sal_uInt8 GetRightToLeft(sal_Int32 nPara, sal_Int32 nChar, sal_Int32 *pStart=nullptr, sal_Int32 *pEnd=nullptr)
Size aLOKSpecialPaperSize
std::unique_ptr< ImplIMEInfos > mpIMEInfos
EditSelection ConvertSelection(sal_Int32 nStartPara, sal_Int32 nStartPos, sal_Int32 nEndPara, sal_Int32 nEndPos)
EditPaM ImpInsertParaBreak(EditPaM &rPaM, bool bKeepEndingAttribs=true)
void StartOnlineSpellTimer()
sal_uInt16 GetI18NScriptType(const EditPaM &rPaM, sal_Int32 *pEndPos=nullptr) const
std::unique_ptr< SpellInfo > pSpellInfo
tools::Long nCurTextHeight
void SetFirstWordCapitalization(bool bCapitalize)
specifies if auto-correction should capitalize the first word or not (default is on)
EditSelection SelectSentence(const EditSelection &rCurSel) const
bool IsTopToBottom() const
tools::Rectangle GetEditCursor(const ParaPortion *pPortion, const EditLine *pLine, sal_Int32 nIndex, GetCursorFlags nFlags)
void getFontScale(double &rX, double &rY) const
void RemoveStyleFromParagraphs(SfxStyleSheet const *pStyle)
ViewsType & GetEditViews()
EditSelection TransliterateText(const EditSelection &rSelection, TransliterationFlags nTransliterationMode)
EEHorizontalTextDirection eDefaultHorizontalTextDirection
std::function< CallbackResult(const LineAreaInfo &)> IterateLinesAreasFunc
void SetMinAutoPaperSize(const Size &rSz)
bool IsTextPos(const Point &rDocPos, sal_uInt16 nBorder)
bool FinishCreateLines(ParaPortion *pParaPortion)
CharCompressType nAsianCompressionMode
void SetModifyFlag(bool b)
EditPaM InsertField(const EditSelection &rCurSel, const SvxFieldItem &rFld)
const Link< EditStatus &, void > & GetStatusEventHdl() const
void EnableUndo(bool bEnable)
void SetRotation(TextRotation nRotation)
double scaleYFontValue(sal_uInt16 nYValue) const
void ImpAdjustBlocks(ParaPortion *pParaPortion, EditLine *pLine, tools::Long nRemainingSpace)
sal_Int32 GetLineNumberAtIndex(sal_Int32 nPara, sal_Int32 nIndex) const
bool mbReplaceLeadingSingleQuotationMark
InternalEditStatus aStatus
sal_Int32 GetOverflowingLineNum() const
std::tuple< const ParaPortion *, const EditLine *, tools::Long > GetPortionAndLine(Point aDocPos)
void AddPortion(const EditSelection &rSel, const css::uno::Reference< css::linguistic2::XSpellAlternatives > &xAlt, svx::SpellPortions &rToFill, bool bIsField)
SfxItemPool * GetEditTextObjectPool() const
void SetAttribs(EditSelection aSel, const SfxItemSet &rSet, SetAttribsMode nSpecial=SetAttribsMode::NONE, bool bSetSelection=true)
tools::Long mnMinColumnWrapHeight
static void SetForbiddenCharsTable(const std::shared_ptr< SvxForbiddenCharactersTable > &xForbiddenChars)
const SvxLRSpaceItem & GetLRSpaceItem(ContentNode *pNode)
EditPaM WordRight(const EditPaM &rPaM, sal_Int16 nWordType=css::i18n::WordType::ANYWORD_IGNOREWHITESPACES)
tools::Long nCurTextHeightNTP
tools::Long GetColumnWidth(const Size &rPaperSize) const
void FormatAndLayout(EditView *pCurView=nullptr, bool bCalledFromUndo=false)
bool IsNbspRunNext() const
Whether last AutoCorrect inserted a NO-BREAK SPACE that may need to be removed again.
DECL_LINK(DocModified, LinkParamNone *, void)
Link< PasteOrDropInfos &, void > aBeginPasteOrDropHdl
bool ImpCheckRefMapMode()
void setYDirectionAwareFrom(Point &ptDest, const Point &ptSrc) const
void SetStyleSheetPool(SfxStyleSheetPool *pSPool)
std::unique_ptr< EditTextObject > GetEmptyTextObject()
void SetFixedCellHeight(bool bUseFixedCellHeight)
sal_Int32 GetBigTextObjectStart() const
bool IsAutoColorEnabled() const
void AddPortionIterated(EditView const &rEditView, const EditSelection &rSel, const css::uno::Reference< css::linguistic2::XSpellAlternatives > &xAlt, svx::SpellPortions &rToFill)
const Size & GetMaxAutoPaperSize() const
bool bKernAsianPunctuation
void SetEditTextObjectPool(SfxItemPool *pP)
EditPaM InsertParagraph(sal_Int32 nPara)
double scaleYSpacingValue(sal_uInt16 nYValue) const
const OUString & GetAutoCompleteText() const
void Write(SvStream &rOutput, EETextFormat eFormat, const EditSelection &rSel)
css::uno::Reference< css::i18n::XExtendedInputSequenceChecker > const & ImplGetInputSequenceChecker() const
EditSelection CreateSel(const ESelection &rSel)
void CreateAndInsertEmptyLine(ParaPortion *pParaPortion)
void GetCharAttribs(sal_Int32 nPara, std::vector< EECharAttrib > &rLst) const
EditPaM ConnectContents(sal_Int32 nLeftNode, bool bBackward)
DECL_LINK(OnlineSpellHdl, Timer *, void)
std::unique_ptr< ConvInfo > pConvInfo
void SetMinColumnWrapHeight(tools::Long nVal)
void GetLineBoundaries(sal_Int32 &rStart, sal_Int32 &rEnd, sal_Int32 nParagraph, sal_Int32 nLine) const
void ClearOverflowingParaNum()
bool IsFirstWordCapitalization() const
EditPaM Read(SvStream &rInput, const OUString &rBaseURL, EETextFormat eFormat, const EditSelection &rSel, SvKeyValueIterator *pHTTPHeaderAttrs=nullptr)
Range GetLineXPosStartEnd(const ParaPortion *pParaPortion, const EditLine *pLine) const
bool IsScriptChange(const EditPaM &rPaM) const
EditPaM ReadXML(SvStream &rInput, EditSelection aSel)
void ForceAutoColor(bool b)
SvxCellJustifyMethod GetJustifyMethod(sal_Int32 nPara) const
DECL_LINK(StatusTimerHdl, Timer *, void)
EditSelectionEngine & GetSelEngine()
EditPaM DeleteSelected(const EditSelection &rEditSelection)
EditUndoManager & GetUndoManager()
sal_Int32 mnColumnSpacing
void PutSpellingToSentenceStart(EditView const &rEditView)
void ImplUpdateOverflowingParaNum(tools::Long)
void InitScriptTypes(sal_Int32 nPara)
void SetActiveView(EditView *pView)
EditPaM CursorVisualStartEnd(EditView const *pEditView, const EditPaM &rPaM, bool bStart)
bool MouseButtonUp(const MouseEvent &rMouseEvent, EditView *pView)
VclPtr< OutputDevice > pRefDev
bool ImpSearch(const SvxSearchItem &rSearchItem, const EditSelection &rSearchSelection, const EditPaM &rStartPos, EditSelection &rFoundSel)
SfxUndoManager * SetUndoManager(SfxUndoManager *pNew)
void SetFlatMode(bool bFlat)
ConvInfo * GetConvInfo() const
tools::Long getYOverflowDirectionAware(const Point &pt, const tools::Rectangle &rectMax) const
void ShowParagraph(sal_Int32 nParagraph, bool bShow)
css::uno::Reference< css::linguistic2::XSpellAlternatives > ImpFindNextError(EditSelection &rSelection)
OnDemandTransliterationWrapper xTransliterationWrapper
bool IsReplaceLeadingSingleQuotationMark() const
sal_Int32 GetChar(const ParaPortion *pParaPortion, const EditLine *pLine, tools::Long nX, bool bSmart=true)
EditPaM CursorDown(const EditPaM &rPaM, EditView const *pEditView)
std::optional< EditSelection > SelectParagraph(sal_Int32 nPara)
void InitDoc(bool bKeepParaAttribs)
void RecalcTextPortion(ParaPortion *pParaPortion, sal_Int32 nStartPos, sal_Int32 nNewChars)
void SetMaxAutoPaperSize(const Size &rSz)
static EditPaM CursorStartOfParagraph(const EditPaM &rPaM)
bool IsInSelectionMode() const
EditPaM DeleteLeftOrRight(const EditSelection &rEditSelection, sal_uInt8 nMode, DeleteMode nDelMode)
bool HasConvertibleTextPortion(LanguageType nLang)
void GetAllMisspellRanges(std::vector< editeng::MisspellRanges > &rRanges) const
void adjustYDirectionAware(Point &pt, tools::Long y) const
void ImpConvert(OUString &rConvTxt, LanguageType &rConvTxtLang, EditView *pEditView, LanguageType nSrcLang, const ESelection &rConvRange, bool bAllowImplicitChangesForNotConvertibleText, LanguageType nTargetLang, const vcl::Font *pTargetFont)
Link< EENotify &, void > aNotifyHdl
VclPtr< VirtualDevice > mpOwnDev
void SetRefDevice(OutputDevice *pRefDef)
bool HasUndoManager() const
std::unique_ptr< EditUndoSetAttribs > CreateAttribUndo(EditSelection aSel, const SfxItemSet &rSet)
EditPaM InsertLineBreak(const EditSelection &aEditSelection)
sal_uInt32 CalcLineWidth(ParaPortion *pPortion, EditLine *pLine, bool bIgnoreExtraSpace)
sal_Int32 mnOverflowingLine
EditSelection PasteText(css::uno::Reference< css::datatransfer::XTransferable > const &rxDataObj, const OUString &rBaseURL, const EditPaM &rPaM, bool bUseSpecial)
void setXDirectionAwareFrom(Point &ptDest, const Point &ptSrc) const
Link< EditView *, void > maBeginDropHdl
void ImplExpandCompressedPortions(EditLine *pLine, ParaPortion *pParaPortion, tools::Long nRemainingWidth)
void SetValidPaperSize(const Size &rSz)
bool IsKernAsianPunctuation() const
static bool DoVisualCursorTraveling()
sal_uInt16 nOnePixelInRef
OutputDevice * GetRefDevice() const
const ParaPortion * GetPrevVisPortion(const ParaPortion *pCurPortion) const
const Link< EditView *, void > & GetEndDropHdl() const
css::uno::Reference< css::datatransfer::XTransferable > CreateTransferable(const EditSelection &rSelection)
EditSelection InsertTextObject(const EditTextObject &, EditPaM aPaM)
void UpdateParagraphsWithStyleSheet(SfxStyleSheet *pStyle)
void setScale(double fFontScaleX, double fFontScaleY, double fSpacingScaleX, double fSpacingScaleY)
void CreateSpellInfo(bool bMultipleDocs)
void SetAllMisspellRanges(const std::vector< editeng::MisspellRanges > &rRanges)
sal_uInt32 CalcTextWidth(bool bIgnoreExtraSpace)
EditPaM AutoCorrect(const EditSelection &rCurEditSelection, sal_Unicode c, bool bOverwrite, vcl::Window const *pFrameWin=nullptr)
void SetTextRanger(std::unique_ptr< TextRanger > pRanger)
void Paint(ImpEditView *pView, const tools::Rectangle &rRect, OutputDevice *pTargetDevice)
const ViewsType & GetEditViews() const
tools::Long getWidthDirectionAware(const Size &sz) const
Link< EditStatus &, void > aStatusHdlLink
Link< MoveParagraphsInfo &, void > aEndMovingParagraphsHdl
void ImpRemoveParagraph(sal_Int32 nPara)
double scaleXSpacingValue(tools::Long nXValue) const
bool WriteItemListAsRTF(ItemList &rLst, SvStream &rOutput, sal_Int32 nPara, sal_Int32 nPos, std::vector< std::unique_ptr< SvxFontItem > > &rFontTable, SvxColorList &rColorList)
EditPaM ImpDeleteSelection(const EditSelection &rCurSel)
const Color & GetBackgroundColor() const
VclPtr< VirtualDevice > pVirtDev
const svtools::ColorConfig & GetColorConfig() const
EESpellState Spell(EditView *pEditView, weld::Widget *pDialogParent, bool bMultipleDoc)
TextRanger * GetTextRanger() const
bool IsCallParaInsertedOrDeleted() const
const SfxPoolItem & GetParaAttrib(sal_Int32 nPara, sal_uInt16 nWhich) const
void SetSpeller(css::uno::Reference< css::linguistic2::XSpellChecker1 > const &xSpl)
sal_Int32 GetSpaceBeforeAndMinLabelWidth(const ContentNode *pNode, sal_Int32 *pnSpaceBefore=nullptr, sal_Int32 *pnMinLabelWidth=nullptr) const
void SetVertical(bool bVertical)
tools::Long CalcVertLineSpacing(Point &rStartPos) const
std::unique_ptr< TextRanger > pTextRanger
sal_Int32 LogicToTwips(sal_Int32 n)
void IdleFormatAndLayout(EditView *pCurView)
EditView * GetActiveView() const
void InvalidateFromParagraph(sal_Int32 nFirstInvPara)
void adjustXDirectionAware(Point &pt, tools::Long x) const
CharCompressType GetAsianCompressionMode() const
ESelection CreateESel(const EditSelection &rSel) const
void ApplyChangedSentence(EditView const &rEditView, const svx::SpellPortions &rNewPortions, bool bRecheck)
ContentNode * GetPrevVisNode(ContentNode const *pCurNode)
void InsertUndo(std::unique_ptr< EditUndo > pUndo, bool bTryMerge=false)
EditPaM ImpConnectParagraphs(ContentNode *pLeft, ContentNode *pRight, bool bBackward=false)
void SetKernAsianPunctuation(bool b)
SfxItemPool * pTextObjectPool
static std::shared_ptr< SvxForbiddenCharactersTable > const & GetForbiddenCharsTable()
bool IsFormatting() const
tools::Rectangle PaMtoEditCursor(EditPaM aPaM, GetCursorFlags nFlags=GetCursorFlags::NONE)
void EnableSkipOutsideFormat(bool set)
EditPaM ReadText(SvStream &rInput, EditSelection aSel)
bool HasScriptType(sal_Int32 nPara, sal_uInt16 nType) const
EditPaM CursorVisualLeftRight(EditView const *pEditView, const EditPaM &rPaM, sal_uInt16 nCharacterIteratorMode, bool bToLeft)
void EnableAutoColor(bool b)
sal_Int32 mnOverflowingPara
void ParaAttribsChanged(ContentNode const *pNode, bool bIgnoreUndoCheck=false)
InternalEditStatus & GetStatus()
const Link< EENotify &, void > & GetNotifyHdl() const
void CreateTextPortions(ParaPortion *pParaPortion, sal_Int32 &rStartPos)
static EditPaM CursorEndOfParagraph(const EditPaM &rPaM)
double roundToNearestPt(double fInput) const
EditPaM ReadRTF(SvStream &rInput, EditSelection aSel)
EditSelection ImpMoveParagraphs(Range aParagraphs, sal_Int32 nNewPos)
void SetLanguageAndFont(const ESelection &rESel, LanguageType nLang, sal_uInt16 nLangWhichId, const vcl::Font *pFont, sal_uInt16 nFontWhichId)
void ImpRemoveChars(const EditPaM &rPaM, sal_Int32 nChars)
css::uno::Reference< css::i18n::XBreakIterator > const & ImplGetBreakIterator() const
void Redo(EditView *pView)
bool SetUpdateLayout(bool bUpdate, EditView *pCurView=nullptr, bool bForceUpdate=false)
EditSelection SelectWord(const EditSelection &rCurSelection, sal_Int16 nWordType=css::i18n::WordType::ANYWORD_IGNOREWHITESPACES, bool bAcceptStartOfWord=true)
void ImpBreakLine(ParaPortion *pParaPortion, EditLine *pLine, TextPortion const *pPortion, sal_Int32 nPortionStart, tools::Long nRemainingWidth, bool bCanHyphenate)
bool IsInputSequenceCheckingRequired(sal_Unicode nChar, const EditSelection &rCurSel) const
SfxStyleSheetPool * pStylePool
void WriteItemAsRTF(const SfxPoolItem &rItem, SvStream &rOutput, sal_Int32 nPara, sal_Int32 nPos, std::vector< std::unique_ptr< SvxFontItem > > &rFontTable, SvxColorList &rColorList)
void SetRefMapMode(const MapMode &rMapMode)
void SetAddExtLeading(bool b)
sal_Int32 GetOverflowingParaNum() const
css::uno::Reference< css::linguistic2::XHyphenator > xHyphenator
void SetText(const OUString &rText)
SvxCellVerJustify GetVerJustification(sal_Int32 nPara) const
bool IsUpdateLayout() const
void SetDefaultHorizontalTextDirection(EEHorizontalTextDirection eHTextDir)
void InsertContent(ContentNode *pNode, sal_Int32 nPos)
sal_uInt32 CalcParaWidth(sal_Int32 nParagraph, bool bIgnoreExtraSpace)
tools::Long Calc1ColumnTextHeight(tools::Long *pHeightNTP)
bool MouseButtonDown(const MouseEvent &rMouseEvent, EditView *pView)
OnDemandLocaleDataWrapper xLocaleDataWrapper
IdleFormattter aIdleFormatter
std::unique_ptr< EditTextObject > CreateTextObject()
const Size & GetMinAutoPaperSize() const
EditPaM ImpInsertText(const EditSelection &aCurEditSelection, const OUString &rStr)
void setRoundToNearestPt(bool bRound)
ErrCode WriteText(SvStream &rOutput, EditSelection aSel)
OUString aAutoCompleteText
void ParaAttribsToCharAttribs(ContentNode *pNode)
static bool IsVisualCursorTravelingEnabled()
void SetEndDropHdl(const Link< EditView *, void > &rLink)
sets a link that is called at the end of a drag operation at an edit view
bool IsUndoEnabled() const
virtual void Notify(SfxBroadcaster &rBC, const SfxHint &rHint) override
tools::Rectangle aInvalidRect
svtools::ColorConfig maColorConfig
void SetPaperSize(const Size &rSz)
EditPaM CursorUp(const EditPaM &rPaM, EditView const *pEditView)
void InitWritingDirections(sal_Int32 nPara)
EditPaM InsertText(const EditSelection &aCurEditSelection, const OUString &rStr)
EditPaM EndOfWord(const EditPaM &rPaM)
EditPaM InsertTextUserInput(const EditSelection &rCurEditSelection, sal_Unicode c, bool bOverwrite)
Size getTopLeftDocOffset(const tools::Rectangle &rect) const
bool IsRightToLeft(sal_Int32 nPara) const
void getSpacingScale(double &rX, double &rY) const
Link< RtfImportInfo &, void > aRtfImportHdl
EditPaM InsertTab(const EditSelection &rEditSelection)
void SetStyleSheet(EditSelection aSel, SfxStyleSheet *pStyle)
const ParaPortionList & GetParaPortions() const
Link< HtmlImportInfo &, void > aHtmlImportHdl
void CheckIdleFormatter()
bool Search(const SvxSearchItem &rSearchItem, EditView *pView)
css::uno::Reference< css::i18n::XBreakIterator > xBI
tools::Long getHeightDirectionAware(const Size &sz) const
void DelayedCallStatusHdl()
std::shared_ptr< editeng::SharedVclResources > pSharedVCL
bool bCallParaInsertedOrDeleted
void SetDefaultLanguage(LanguageType eLang)
void SetTextColumns(sal_Int16 nColumns, sal_Int32 nSpacing)
void SetStatusEventHdl(const Link< EditStatus &, void > &rLink)
void SetBackgroundColor(const Color &rColor)
EditView::OutWindowSet aOutWindowSet
bool DoInvalidateMore() const
void CutCopy(css::uno::Reference< css::datatransfer::clipboard::XClipboard > const &rxClipboard, bool bCut)
void AddDragAndDropListeners()
bool IsTopToBottom() const
vcl::Cursor * GetCursor()
void SuppressLOKMessages(bool bSet)
sal_uInt16 nCursorBidiLevel
void RegisterOtherShell(OutlinerViewShell *pViewShell)
Informs this edit view about which other shell listens to it.
EditViewCallbacks * mpEditViewCallbacks
mechanism to change from the classic refresh mode that simply
void ShowDDCursor(const tools::Rectangle &rRect)
ImpEditView(EditView *pView, EditEngine *pEng, vcl::Window *pWindow)
bool IsBulletArea(const Point &rPos, sal_Int32 *pPara)
std::optional< Color > mxBackgroundColor
EditViewCallbacks * getEditViewCallbacks() const
const tools::Rectangle & GetLOKSpecialOutputArea() const
tools::Rectangle ImplGetEditCursor(EditPaM &aPaM, GetCursorFlags nShowCursorFlags, sal_Int32 &nTextPortionStart, const ParaPortion *pParaPortion) const
bool mbBroadcastLOKViewCursor
vcl::Window * GetWindow() const
bool IsSuppressLOKMessages() const
void SetLOKSpecialFlags(LOKSpecialFlags eFlags)
void Paste(css::uno::Reference< css::datatransfer::clipboard::XClipboard > const &rxClipboard, bool bUseSpecial=false)
OUString SpellIgnoreWord()
const tools::Rectangle & GetOutputArea() const
void SetBroadcastLOKViewCursor(bool bSet)
void SetOutputArea(const tools::Rectangle &rRect)
bool DoAutoScroll() const
void InvalidateAtWindow(const tools::Rectangle &rRect)
bool MouseMove(const MouseEvent &rMouseEvent)
void dragEnter(const css::datatransfer::dnd::DropTargetDragEnterEvent &dtdee) override
bool mbSuppressLOKMessages
void SetNegativeX(bool bSet)
void drop(const css::datatransfer::dnd::DropTargetDropEvent &dtde) override
void GetSelectionRectangles(EditSelection aTmpSel, std::vector< tools::Rectangle > &rLogicRects)
EESelectionMode eSelectionMode
void dragGestureRecognized(const css::datatransfer::dnd::DragGestureEvent &dge) override
void dragExit(const css::datatransfer::dnd::DropTargetEvent &dte) override
EditSelection aEditSelection
tools::Rectangle GetVisDocArea() const
const SvxFieldItem * GetField(const Point &rPos, sal_Int32 *pPara, sal_Int32 *pPos) const
void SetInvalidateMore(sal_uInt16 nPixel)
bool MouseButtonUp(const MouseEvent &rMouseEvent)
tools::Rectangle GetEditCursor() const
bool DoAutoHeight() const
bool MouseButtonDown(const MouseEvent &rMouseEvent)
bool HasLOKSpecialPositioning() const
sal_uInt16 GetCursorBidiLevel() const
tools::Long GetVisDocTop() const
void dragOver(const css::datatransfer::dnd::DropTargetDragEvent &dtde) override
void SetSelectionMode(EESelectionMode eMode)
bool HasSelection() const
void lokSelectionCallback(const std::optional< tools::PolyPolygon > &pPolyPoly, bool bStartHandleVisible, bool bEndHandleVisible)
void SetInsertMode(bool bInsert)
css::uno::Reference< css::datatransfer::dnd::XDragSourceListener > mxDnDListener
std::unique_ptr< DragAndDropInfo > pDragAndDropInfo
EEAnchorMode GetAnchorMode() const
EditView * GetEditViewPtr()
virtual ~ImpEditView() override
const OutlinerViewShell * GetViewShell() const
void SetAnchorMode(EEAnchorMode eMode)
bool IsInsertMode() const
std::optional< PointerStyle > mxPointer
tools::Long GetVisDocRight() const
void dragDropEnd(const css::datatransfer::dnd::DragSourceDropEvent &dsde) override
const EditSelection & GetEditSelection() const
tools::Rectangle aOutArea
tools::Long GetVisDocBottom() const
std::unique_ptr< LOKSpecialPositioning > mpLOKSpecialPositioning
void SetLOKSpecialVisArea(const tools::Rectangle &rVisArea)
sal_uInt16 GetScrollDiffX() const
VclPtr< vcl::Window > pOutWin
void RegisterViewShell(OutlinerViewShell *pViewShell)
Informs this edit view about which view shell contains it.
void SetScrollDiffX(sal_uInt16 n)
PointerStyle GetPointer()
sal_uInt16 GetInvalidateMore() const
tools::Long GetVisDocLeft() const
std::unique_ptr< vcl::Cursor, o3tl::default_delete< vcl::Cursor > > pCursor
OutlinerViewShell * mpViewShell
Containing view shell, if any.
css::uno::Reference< css::datatransfer::clipboard::XClipboard > GetClipboard() const
bool IsInSelection(const EditPaM &rPaM)
bool IsWrongSpelledWord(const EditPaM &rPaM, bool bMarkIfWrong)
bool PostKeyEvent(const KeyEvent &rKeyEvent, vcl::Window const *pFrameWin)
void ShowCursor(bool bGotoCursor, bool bForceVisCursor)
Point GetWindowPos(const Point &rDocPos) const
bool SetCursorAtPoint(const Point &rPointPixel)
Point GetDocPos(const Point &rWindowPos) const
OutlinerViewShell * mpOtherShell
Another shell, just listening to our state, if any.
void setEditViewCallbacks(EditViewCallbacks *pEditViewCallbacks)
void ImplDrawHighlightRect(OutputDevice &rTarget, const Point &rDocPosTopLeft, const Point &rDocPosBottomRight, tools::PolyPolygon *pPolyPoly, bool bLOKCalcRTL)
void SetVisDocStartPos(const Point &rPos)
bool IsSelectionAtPoint(const Point &rPosPixel)
bool IsPasteEnabled() const
bool Command(const CommandEvent &rCEvt)
OutputDevice & GetOutputDevice() const
void SetLOKSpecialOutputArea(const tools::Rectangle &rOutputArea)
const Color & GetBackgroundColor() const
void InitLOKSpecialPositioning(MapUnit eUnit, const tools::Rectangle &rOutputArea, const Point &rVisDocStartPos)
void SetEditSelection(const EditSelection &rEditSelection)
GetCursorFlags nExtraCursorFlags
bool bActiveDragAndDropListener
weld::Widget * GetPopupParent(tools::Rectangle &rRect) const
void SetCursorBidiLevel(sal_uInt16 n)
bool DoSingleLinePaste() const
void RemoveDragAndDropListeners()
void ResetOutputArea(const tools::Rectangle &rRect)
Pair Scroll(tools::Long ndX, tools::Long ndY, ScrollRangeCheck nRangeCheck=ScrollRangeCheck::NoNegative)
tools::Rectangle GetLOKSpecialVisArea() const
This is meant just for Calc, where all positions in logical units (twips for LOK) are computed by doi...
tools::Rectangle maOutArea
void SetOutputArea(const tools::Rectangle &rOutputArea)
LOKSpecialPositioning(const ImpEditView &rImpEditView, MapUnit eUnit, const tools::Rectangle &rOutputArea, const Point &rVisDocStartPos)
bool IsTopToBottom() const
const ImpEditView & mrImpEditView
tools::Long GetVisDocBottom() const
tools::Long GetVisDocRight() const
Point GetRefPoint() const
tools::Rectangle GetVisDocArea() const
Point GetWindowPos(const Point &rDocPos, MapUnit eDocPosUnit) const
tools::Long GetVisDocTop() const
const tools::Rectangle & GetOutputArea() const
void ReInit(MapUnit eUnit, const tools::Rectangle &rOutputArea, const Point &rVisDocStartPos)
tools::Long GetVisDocLeft() const
void SetFlags(LOKSpecialFlags eFlags)
Point convertUnit(const Point &rPos, MapUnit ePosUnit) const
void SetVisDocStartPos(const Point &rVisDocStartPos)
void SetOrigin(const Point &rOrigin)
const Fraction & GetScaleX() const
MapUnit GetMapUnit() const
const Fraction & GetScaleY() const
Interface class to not depend on SfxViewShell in editeng.
constexpr tools::Long Y() const
constexpr tools::Long X() const
This item stores a field (SvxFieldData).
virtual void Start(bool bStartTimer=true) override
reference_type * get() const
static VclPtr< reference_type > Create(Arg &&... arg)
virtual void dragEnter(const css::datatransfer::dnd::DropTargetDragEnterEvent &dtdee)
virtual void dragOver(const css::datatransfer::dnd::DropTargetDragEvent &dtde)
virtual void dragExit(const css::datatransfer::dnd::DropTargetEvent &dte)
#define DBG_ASSERT(sCon, aError)
EEHorizontalTextDirection
std::vector< Color > SvxColorList
std::vector< EditSelection > SpellContentSelections
AsianCompressionFlags GetCharTypeForCompression(sal_Unicode cChar)
void ConvertAndPutItems(SfxItemSet &rDest, const SfxItemSet &rSource, const MapUnit *pSourceUnit=nullptr, const MapUnit *pDestUnit=nullptr)
void ConvertItem(std::unique_ptr< SfxPoolItem > &rPoolItem, MapUnit eSourceUnit, MapUnit eDestUnit)
GetAttribsFlags
values for: SfxItemSet GetAttribs( sal_Int32 nPara, sal_Int32 nStart, sal_Int32 nEnd,...
EditEngineAttribs
values for: SfxItemSet GetAttribs( const ESelection& rSel, EditEngineAttribs nOnlyHardAttrib = EditEn...
void set(css::uno::UnoInterfaceReference const &value)
std::vector< SpellPortion > SpellPortions
VclPtr< VirtualDevice > pBackground
tools::Rectangle aCurSavedCursor
sal_uInt16 nSensibleRange
const SvxFieldItem * pField
tools::Rectangle aCurCursor
sal_Int32 nOutlinerDropDest
tools::Long nHeightNeededToNotWrap
OUString aOldTextAfterStartPos
std::unique_ptr< ExtTextInputAttr[]> pAttribs
ImplIMEInfos(const EditPaM &rPos, OUString aOldTextAfterStartPos)
void CopyAttribs(const ExtTextInputAttr *pA, sal_uInt16 nL)
SpellContentSelections aLastSpellContentSelections
EditPaM aCurSentenceStart
svx::SpellPortions aLastSpellPortions