LibreOffice Module editeng (master) 1
impedit.hxx
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/*
3 * This file is part of the LibreOffice project.
4 *
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 *
9 * This file incorporates work covered by the following license notice:
10 *
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 */
19#pragma once
20
21#include <eerdll2.hxx>
22#include <editdoc.hxx>
23#include "editsel.hxx"
24#include "editundo.hxx"
25#include "editstt2.hxx"
26#include <editeng/editdata.hxx>
28#include <editeng/editeng.hxx>
29#include <editeng/editview.hxx>
30#include <svtools/colorcfg.hxx>
31#include <editeng/outliner.hxx>
32#include <vcl/virdev.hxx>
33#include <vcl/cursor.hxx>
34#include <vcl/vclptr.hxx>
35#include <tools/fract.hxx>
36#include <vcl/idle.hxx>
37#include <vcl/commandevent.hxx>
38#include <vcl/ptrstyle.hxx>
39
40#include <vcl/dndhelp.hxx>
41#include <svl/ondemand.hxx>
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>
52
53#include <i18nlangtag/lang.h>
54#include <o3tl/deleter.hxx>
56
57#include <functional>
58#include <optional>
59#include <memory>
60#include <tuple>
61#include <string_view>
62#include <vector>
63
64class EditView;
65class EditEngine;
66class OutlinerSearchable;
67
68class SvxSearchItem;
69class SvxLRSpaceItem;
70class TextRanger;
73namespace vcl { class Window; }
74class SvxNumberFormat;
76 class XClipboard;
77}
78
79namespace editeng {
80 struct MisspellRanges;
81}
82
83#define DEL_LEFT 1
84#define DEL_RIGHT 2
85#define TRAVEL_X_DONTKNOW 0xFFFFFFFF
86#define CURSOR_BIDILEVEL_DONTKNOW 0xFFFF
87#define MAXCHARSINPARA 0x3FFF-CHARPOSGROW // Max 16K, because WYSIWYG array
88#define LINE_SEP '\x0A'
89
90#define ATTRSPECIAL_WHOLEWORD 1
91#define ATTRSPECIAL_EDGE 2
92
93enum class GetCursorFlags {
94 NONE = 0x0000,
95 TextOnly = 0x0001,
96 StartOfLine = 0x0002,
97 EndOfLine = 0x0004,
98 PreferPortionStart = 0x0008,
99};
100namespace o3tl {
101 template<> struct typed_flags<GetCursorFlags> : is_typed_flags<GetCursorFlags, 0x0f> {};
102}
103
104
106{
109 sal_uInt16 nSensibleRange;
110 sal_uInt16 nCursorWidth;
117 bool bVisCursor : 1;
118 bool bDroppedInMe : 1;
119 bool bStarterOfDD : 1;
121 bool bUndoAction : 1;
124
127 pField(nullptr), bVisCursor(false), bDroppedInMe(false), bStarterOfDD(false),
128 bHasValidData(false), bUndoAction(false), bOutlinerMode(false), bDragAccepted(false)
129 {
130 }
132 {
134 }
135};
136
138{
140 std::unique_ptr<ExtTextInputAttr[]> pAttribs;
142 sal_Int32 nLen;
144
145 ImplIMEInfos( const EditPaM& rPos, OUString aOldTextAfterStartPos );
147
148 void CopyAttribs( const ExtTextInputAttr* pA, sal_uInt16 nL );
149 void DestroyAttribs();
150};
151
152// #i18881# to be able to identify the positions of changed words
153// the positions of each portion need to be saved
154typedef std::vector<EditSelection> SpellContentSelections;
155
157{
167 { }
168};
169
170// used for text conversion
172{
175 EPaM aConvContinue; // position to start search for next text portion (word) with
178
179 ConvInfo() : bConvToEnd(true), bMultipleDoc(false) {}
180};
181
183{
184 sal_uInt16 nMaxAscent;
185 sal_uInt16 nMaxDescent;
186
187 FormatterFontMetric() : nMaxAscent(0), nMaxDescent(0) { /* nMinLeading = 0xFFFF; */ }
188 sal_uInt16 GetHeight() const { return nMaxAscent+nMaxDescent; }
189};
190
191class IdleFormattter : public Idle
192{
193private:
196
197public:
199 virtual ~IdleFormattter() override;
200
201 void DoIdleFormat( EditView* pV );
202 void ForceTimeout();
203 void ResetRestarts() { nRestarts = 0; }
204 EditView* GetView() { return pView; }
205};
206
207class ImpEditView;
213{
214public:
215 LOKSpecialPositioning(const ImpEditView& rImpEditView, MapUnit eUnit, const tools::Rectangle& rOutputArea,
216 const Point& rVisDocStartPos);
217
218 void ReInit(MapUnit eUnit, const tools::Rectangle& rOutputArea, const Point& rVisDocStartPos);
219
220 void SetOutputArea(const tools::Rectangle& rOutputArea);
221 const tools::Rectangle& GetOutputArea() const;
222 void SetVisDocStartPos(const Point& rVisDocStartPos);
223
224 bool IsVertical() const;
225 bool IsTopToBottom() const;
226
232
233 Point GetWindowPos(const Point& rDocPos, MapUnit eDocPosUnit) const;
234 tools::Rectangle GetWindowPos(const tools::Rectangle& rDocRect, MapUnit eDocRectUnit) const;
235
236 void SetFlags(LOKSpecialFlags eFlags) { meFlags = eFlags; }
238
239 Point GetRefPoint() const;
240
241private:
242 Point convertUnit(const Point& rPos, MapUnit ePosUnit) const;
243 tools::Rectangle convertUnit(const tools::Rectangle& rRect, MapUnit eRectUnit) const;
244
250};
251
252
253
255{
256 friend class EditView;
257 friend class EditEngine;
258 friend class ImpEditEngine;
262
263private:
265 std::unique_ptr<vcl::Cursor, o3tl::default_delete<vcl::Cursor>> pCursor;
266 std::optional<Color> mxBackgroundColor;
274 std::optional<PointerStyle> mxPointer;
275 std::unique_ptr<DragAndDropInfo> pDragAndDropInfo;
276
277 css::uno::Reference< css::datatransfer::dnd::XDragSourceListener > mxDnDListener;
278
279
282 sal_uInt32 nTravelXPos;
285 sal_uInt16 nScrollDiffX;
289
296
298 // invalidates the area where text was changed. When set, the invalidate
299 // and the direct repaint of the Window-plugged EditView will be suppressed.
300 // Instead, a consumer that has registered using an EditViewCallbacks
301 // incarnation has to handle that. Used e.g. to represent the edited text
302 // in Draw/Impress in an OverlayObject which avoids evtl. expensive full
303 // repaints of the EditView(s)
305 std::unique_ptr<LOKSpecialPositioning> mpLOKSpecialPositioning;
309
311 {
312 return mpEditViewCallbacks;
313 }
314
315 void lokSelectionCallback(const std::optional<tools::PolyPolygon> &pPolyPoly, bool bStartHandleVisible, bool bEndHandleVisible);
316
317 void setEditViewCallbacks(EditViewCallbacks* pEditViewCallbacks)
318 {
319 mpEditViewCallbacks = pEditViewCallbacks;
320 }
321
322 void InvalidateAtWindow(const tools::Rectangle& rRect);
323
324 css::uno::Reference<css::datatransfer::clipboard::XClipboard> GetClipboard() const;
325
327 {
329 }
330
331protected:
332
333 // DragAndDropClient
334 void dragGestureRecognized(const css::datatransfer::dnd::DragGestureEvent& dge) override;
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;
340
341 void ShowDDCursor( const tools::Rectangle& rRect );
342 void HideDDCursor();
343
344 void ImplDrawHighlightRect(OutputDevice& rTarget, const Point& rDocPosTopLeft, const Point& rDocPosBottomRight, tools::PolyPolygon* pPolyPoly, bool bLOKCalcRTL);
346 sal_Int32& nTextPortionStart, const ParaPortion* pParaPortion) const;
347
348public:
349 ImpEditView( EditView* pView, EditEngine* pEng, vcl::Window* pWindow );
350 virtual ~ImpEditView() override;
351
353
354 sal_uInt16 GetScrollDiffX() const { return nScrollDiffX; }
355 void SetScrollDiffX( sal_uInt16 n ) { nScrollDiffX = n; }
356
357 sal_uInt16 GetCursorBidiLevel() const { return nCursorBidiLevel; }
358 void SetCursorBidiLevel( sal_uInt16 n ) { nCursorBidiLevel = n; }
359
360 Point GetDocPos( const Point& rWindowPos ) const;
361 Point GetWindowPos( const Point& rDocPos ) const;
362 tools::Rectangle GetWindowPos( const tools::Rectangle& rDocPos ) const;
363
364 void SetOutputArea( const tools::Rectangle& rRect );
365 void ResetOutputArea( const tools::Rectangle& rRect );
366 const tools::Rectangle& GetOutputArea() const { return aOutArea; }
367
368 bool IsVertical() const;
369 bool IsTopToBottom() const;
370
371 bool PostKeyEvent( const KeyEvent& rKeyEvent, vcl::Window const * pFrameWin );
372
373 bool MouseButtonUp( const MouseEvent& rMouseEvent );
374 bool MouseButtonDown( const MouseEvent& rMouseEvent );
375 void ReleaseMouse();
376 bool MouseMove( const MouseEvent& rMouseEvent );
377 bool Command(const CommandEvent& rCEvt);
378
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 );
381
382 void SetVisDocStartPos( const Point& rPos ) { aVisDocStartPos = rPos; }
383
389
391 void SetEditSelection( const EditSelection& rEditSelection );
392 bool HasSelection() const { return aEditSelection.HasRange(); }
393
394 void SelectionChanged();
396 void DrawSelectionXOR( EditSelection, vcl::Region* pRegion = nullptr, OutputDevice* pTargetDevice = nullptr );
397 void GetSelectionRectangles(EditSelection aTmpSel, std::vector<tools::Rectangle>& rLogicRects);
398
399 void ScrollStateChange();
400
403 vcl::Window* GetWindow() const { return pOutWin; }
404
405 void SetSelectionMode( EESelectionMode eMode );
406
407 inline PointerStyle GetPointer();
408
409 inline vcl::Cursor* GetCursor();
410
413
414 bool IsBulletArea( const Point& rPos, sal_Int32* pPara );
415
416// For the Selection Engine...
417 void CreateAnchor();
418 void DeselectAll();
419 bool SetCursorAtPoint( const Point& rPointPixel );
420 bool IsSelectionAtPoint( const Point& rPosPixel );
421 bool IsInSelection( const EditPaM& rPaM );
422
423
424 void SetAnchorMode( EEAnchorMode eMode );
426 void CalcAnchorPoint();
427 void RecalcOutputArea();
428
430
431 void ShowCursor( bool bGotoCursor, bool bForceVisCursor );
433
434 void SetInsertMode( bool bInsert );
435 bool IsInsertMode() const { return !( nControl & EVControlBits::OVERWRITE ); }
436
437 bool IsPasteEnabled() const { return bool( nControl & EVControlBits::ENABLEPASTE ); }
438
440 bool DoAutoScroll() const { return bool( nControl & EVControlBits::AUTOSCROLL ); }
441 bool DoAutoSize() const { return bool( nControl & EVControlBits::AUTOSIZE ); }
442 bool DoAutoWidth() const { return bool( nControl & EVControlBits::AUTOSIZEX); }
443 bool DoAutoHeight() const { return bool( nControl & EVControlBits::AUTOSIZEY); }
444 bool DoInvalidateMore() const { return bool( nControl & EVControlBits::INVONEMORE ); }
445
446 void SetBackgroundColor( const Color& rColor );
447 const Color& GetBackgroundColor() const;
448
450 void RegisterViewShell(OutlinerViewShell* pViewShell);
451 const OutlinerViewShell* GetViewShell() const;
453 void RegisterOtherShell(OutlinerViewShell* pViewShell);
454
455 bool IsWrongSpelledWord( const EditPaM& rPaM, bool bMarkIfWrong );
456 OUString SpellIgnoreWord();
457
458 const SvxFieldItem* GetField( const Point& rPos, sal_Int32* pPara, sal_Int32* pPos ) const;
459 void DeleteSelected();
460
461 // If possible invalidate more than OutputArea, for the DrawingEngine text frame
462 void SetInvalidateMore( sal_uInt16 nPixel ) { nInvMore = nPixel; }
463 sal_uInt16 GetInvalidateMore() const { return static_cast<sal_uInt16>(nInvMore); }
464
465 void InitLOKSpecialPositioning(MapUnit eUnit, const tools::Rectangle& rOutputArea,
466 const Point& rVisDocStartPos);
467 void SetLOKSpecialOutputArea(const tools::Rectangle& rOutputArea);
469 void SetLOKSpecialVisArea(const tools::Rectangle& rVisArea);
471 bool HasLOKSpecialPositioning() const;
472
474
475 void SuppressLOKMessages(bool bSet) { mbSuppressLOKMessages = bSet; }
477
478 void SetNegativeX(bool bSet) { mbNegativeX = bSet; }
479 bool IsNegativeX() const { return mbNegativeX; }
480};
481
482
483// ImpEditEngine
484
485
486class ImpEditEngine : public SfxListener, public svl::StyleSheetUser
487{
488 friend class EditEngine;
489
491
492private:
493 std::shared_ptr<editeng::SharedVclResources> pSharedVCL;
494
495
496 // Data ...
497
498
499 // Document Specific data ...
501 Size aPaperSize; // Layout
504 tools::Long mnMinColumnWrapHeight = 0; // Corresponds to graphic object height
505 EditDoc aEditDoc; // Document content
506
507 // Engine Specific data ...
511 std::unique_ptr<TextRanger> pTextRanger;
512
515
519
521
522 mutable std::unique_ptr<SfxItemSet> pEmptyItemSet;
524 std::optional<ESelection> moUndoMarkSelection;
525
526 std::unique_ptr<ImplIMEInfos> mpIMEInfos;
527
529
532
534
540
542
544
546 css::uno::Reference< css::linguistic2::XSpellChecker1 > xSpeller;
547 css::uno::Reference< css::linguistic2::XHyphenator > xHyphenator;
548 std::unique_ptr<SpellInfo> pSpellInfo;
549 mutable css::uno::Reference < css::i18n::XBreakIterator > xBI;
550 mutable css::uno::Reference < css::i18n::XExtendedInputSequenceChecker > xISC;
551
552 std::unique_ptr<ConvInfo> pConvInfo;
553
555
557
559
562
563 // For Formatting / Update...
564 std::vector<std::unique_ptr<DeletedNodeInfo> > aDeletedNodes;
567 tools::Long nCurTextHeightNTP; // without trailing empty paragraphs
568 sal_uInt16 nOnePixelInRef;
569
571
573
574 // For Chaining
575 sal_Int32 mnOverflowingPara = -1;
576 sal_Int32 mnOverflowingLine = -1;
578
579 sal_Int16 mnColumns = 1;
580 sal_Int32 mnColumnSpacing = 0;
581
582 // If it is detected at one point that the StatusHdl has to be called, but
583 // this should not happen immediately (critical section):
586
598
604 bool bIsInUndo:1;
607 bool bDowning:1;
611 bool bFirstWordCapitalization:1; // specifies if auto-correction should capitalize the first word or not
615 bool mbFuzzing:1;
616
617 bool mbNbspRunNext; // can't be a bitfield as it is passed as bool&
618
619 // Methods...
620
621
622 void CursorMoved( const ContentNode* pPrevNode );
623 void ParaAttribsChanged( ContentNode const * pNode, bool bIgnoreUndoCheck = false );
624 void TextModified();
625 void CalcHeight( ParaPortion* pPortion );
626
627 void InsertUndo( std::unique_ptr<EditUndo> pUndo, bool bTryMerge = false );
628 void ResetUndoManager();
629 bool HasUndoManager() const { return pUndoManager != nullptr; }
630
631 std::unique_ptr<EditUndoSetAttribs> CreateAttribUndo( EditSelection aSel, const SfxItemSet& rSet );
632
633 std::unique_ptr<EditTextObject> GetEmptyTextObject();
634
635 std::tuple<const ParaPortion*, const EditLine*, tools::Long> GetPortionAndLine(Point aDocPos);
636 EditPaM GetPaM( Point aDocPos, bool bSmart = true );
637 bool IsTextPos(const Point& rDocPos, sal_uInt16 nBorder);
638 tools::Long GetXPos(const ParaPortion* pParaPortion, const EditLine* pLine, sal_Int32 nIndex, bool bPreferPortionStart = false) const;
639 tools::Long GetPortionXOffset(const ParaPortion* pParaPortion, const EditLine* pLine, sal_Int32 nTextPortion) const;
640 sal_Int32 GetChar(const ParaPortion* pParaPortion, const EditLine* pLine, tools::Long nX, bool bSmart = true);
641 Range GetLineXPosStartEnd( const ParaPortion* pParaPortion, const EditLine* pLine ) const;
642
644 void GetCharAttribs( sal_Int32 nPara, std::vector<EECharAttrib>& rLst ) const;
645
646 std::unique_ptr<EditTextObject>
647 CreateTextObject(EditSelection aSelection, SfxItemPool*, bool bAllowBigObjects = false, sal_Int32 nBigObjStart = 0);
649 EditSelection PasteText( css::uno::Reference< css::datatransfer::XTransferable > const & rxDataObj, const OUString& rBaseURL, const EditPaM& rPaM, bool bUseSpecial );
650
651 void CheckPageOverflow();
652
653 void Clear();
655 bool CreateLines( sal_Int32 nPara, sal_uInt32 nStartPosY );
656 void CreateAndInsertEmptyLine( ParaPortion* pParaPortion );
657 bool FinishCreateLines( ParaPortion* pParaPortion );
658 void CreateTextPortions( ParaPortion* pParaPortion, sal_Int32& rStartPos /*, sal_Bool bCreateBlockPortions */ );
659 void RecalcTextPortion( ParaPortion* pParaPortion, sal_Int32 nStartPos, sal_Int32 nNewChars );
660 sal_Int32 SplitTextPortion( ParaPortion* pParaPortion, sal_Int32 nPos, EditLine* pCurLine = nullptr );
661 void SeekCursor( ContentNode* pNode, sal_Int32 nPos, SvxFont& rFont, OutputDevice* pOut = nullptr );
662 void RecalcFormatterFontMetrics( FormatterFontMetric& rCurMetrics, SvxFont& rFont );
663 void CheckAutoPageSize();
664
665 void ImpBreakLine( ParaPortion* pParaPortion, EditLine* pLine, TextPortion const * pPortion, sal_Int32 nPortionStart, tools::Long nRemainingWidth, bool bCanHyphenate );
666 void ImpAdjustBlocks( ParaPortion* pParaPortion, EditLine* pLine, tools::Long nRemainingSpace );
667 EditPaM ImpConnectParagraphs( ContentNode* pLeft, ContentNode* pRight, bool bBackward = false );
669 EditPaM ImpInsertParaBreak( EditPaM& rPaM, bool bKeepEndingAttribs = true );
670 EditPaM ImpInsertParaBreak( const EditSelection& rEditSelection );
671 EditPaM ImpInsertText(const EditSelection& aCurEditSelection, const OUString& rStr);
672 EditPaM ImpInsertFeature(const EditSelection& rCurSel, const SfxPoolItem& rItem);
673 void ImpRemoveChars( const EditPaM& rPaM, sal_Int32 nChars );
674 void ImpRemoveParagraph( sal_Int32 nPara );
675 EditSelection ImpMoveParagraphs( Range aParagraphs, sal_Int32 nNewPos );
676
677 EditPaM ImpFastInsertText( EditPaM aPaM, const OUString& rStr );
678 EditPaM ImpFastInsertParagraph( sal_Int32 nPara );
679
680 bool ImpCheckRefMapMode();
681
682 bool ImplHasText() const;
683
684 void ImpFindKashidas( ContentNode* pNode, sal_Int32 nStart, sal_Int32 nEnd, std::vector<sal_Int32>& rArray );
685
686 void InsertContent( ContentNode* pNode, sal_Int32 nPos );
687 EditPaM SplitContent( sal_Int32 nNode, sal_Int32 nSepPos );
688 EditPaM ConnectContents( sal_Int32 nLeftNode, bool bBackward );
689
690 void ShowParagraph( sal_Int32 nParagraph, bool bShow );
691
692 EditPaM PageUp( const EditPaM& rPaM, EditView const * pView);
693 EditPaM PageDown( const EditPaM& rPaM, EditView const * pView);
694 EditPaM CursorUp( const EditPaM& rPaM, EditView const * pEditView );
695 EditPaM CursorDown( const EditPaM& rPaM, EditView const * pEditView );
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 );
698 EditPaM CursorStartOfLine( const EditPaM& rPaM );
699 EditPaM CursorEndOfLine( const EditPaM& rPaM );
700 static EditPaM CursorStartOfParagraph( const EditPaM& rPaM );
701 static EditPaM CursorEndOfParagraph( const EditPaM& rPaM );
704 EditPaM WordLeft( const EditPaM& rPaM );
705 EditPaM WordRight( const EditPaM& rPaM, sal_Int16 nWordType = css::i18n::WordType::ANYWORD_IGNOREWHITESPACES );
706 EditPaM StartOfWord( const EditPaM& rPaM );
707 EditPaM EndOfWord( const EditPaM& rPaM );
708 EditSelection SelectWord( const EditSelection& rCurSelection, sal_Int16 nWordType = css::i18n::WordType::ANYWORD_IGNOREWHITESPACES, bool bAcceptStartOfWord = true );
709 EditSelection SelectSentence( const EditSelection& rCurSel ) const;
710 EditPaM CursorVisualLeftRight( EditView const * pEditView, const EditPaM& rPaM, sal_uInt16 nCharacterIteratorMode, bool bToLeft );
711 EditPaM CursorVisualStartEnd( EditView const * pEditView, const EditPaM& rPaM, bool bStart );
712
713
714 void InitScriptTypes( sal_Int32 nPara );
715 sal_uInt16 GetI18NScriptType( const EditPaM& rPaM, sal_Int32* pEndPos = nullptr ) const;
716 SvtScriptType GetItemScriptType( const EditSelection& rSel ) const;
717 bool IsScriptChange( const EditPaM& rPaM ) const;
718 bool HasScriptType( sal_Int32 nPara, sal_uInt16 nType ) const;
719
720 bool ImplCalcAsianCompression( ContentNode* pNode, TextPortion* pTextPortion, sal_Int32 nStartPos,
721 sal_Int32* pDXArray, sal_uInt16 n100thPercentFromMax, bool bManipulateDXArray );
722 void ImplExpandCompressedPortions( EditLine* pLine, ParaPortion* pParaPortion, tools::Long nRemainingWidth );
723
724 void ImplInitLayoutMode(OutputDevice& rOutDev, sal_Int32 nPara, sal_Int32 nIndex);
726 static void ImplInitDigitMode(OutputDevice& rOutDev, LanguageType eLang);
727 static OUString convertDigits(std::u16string_view rString, sal_Int32 nStt, sal_Int32 nLen, LanguageType eDigitLang);
728
729 EditPaM ReadText( SvStream& rInput, EditSelection aSel );
730 EditPaM ReadRTF( SvStream& rInput, EditSelection aSel );
731 EditPaM ReadXML( SvStream& rInput, EditSelection aSel );
732 EditPaM ReadHTML( SvStream& rInput, const OUString& rBaseURL, EditSelection aSel, SvKeyValueIterator* pHTTPHeaderAttrs );
733 ErrCode WriteText( SvStream& rOutput, EditSelection aSel );
734 ErrCode WriteRTF( SvStream& rOutput, EditSelection aSel );
735 void WriteXML(SvStream& rOutput, const EditSelection& rSel);
736
737 void WriteItemAsRTF( const SfxPoolItem& rItem, SvStream& rOutput, sal_Int32 nPara, sal_Int32 nPos,
738 std::vector<std::unique_ptr<SvxFontItem>>& rFontTable, SvxColorList& rColorList );
739 bool WriteItemListAsRTF( ItemList& rLst, SvStream& rOutput, sal_Int32 nPara, sal_Int32 nPos,
740 std::vector<std::unique_ptr<SvxFontItem>>& rFontTable, SvxColorList& rColorList );
741 sal_Int32 LogicToTwips( sal_Int32 n );
742
743 double scaleXSpacingValue(tools::Long nXValue) const
744 {
745 if (!aStatus.DoStretch() || mfSpacingScaleX == 100.0)
746 return nXValue;
747
748 return double(nXValue) * mfSpacingScaleX / 100.0;
749 }
750
751 double scaleYSpacingValue(sal_uInt16 nYValue) const
752 {
753 if (!aStatus.DoStretch() || mfSpacingScaleY == 100.0)
754 return nYValue;
755
756 return double(nYValue) * mfSpacingScaleY / 100.0;
757 }
758
759 double scaleYFontValue(sal_uInt16 nYValue) const
760 {
761 if (!aStatus.DoStretch() || (mfFontScaleY == 100.0))
762 return nYValue;
763
764 return double(nYValue) * mfFontScaleY / 100.0;
765 }
766
767 double scaleXFontValue(tools::Long nXValue) const
768 {
769 if (!aStatus.DoStretch() || (mfFontScaleX == 100.0))
770 return nXValue;
771
772 return double(nXValue) * mfFontScaleY / 100.0;
773 }
774
775 void setRoundToNearestPt(bool bRound) { mbRoundToNearestPt = bRound; }
776 double roundToNearestPt(double fInput) const;
777
778 ContentNode* GetPrevVisNode( ContentNode const * pCurNode );
779 ContentNode* GetNextVisNode( ContentNode const * pCurNode );
780
781 const ParaPortion* GetPrevVisPortion( const ParaPortion* pCurPortion ) const;
782 const ParaPortion* GetNextVisPortion( const ParaPortion* pCurPortion ) const;
783
784 void SetBackgroundColor( const Color& rColor ) { maBackgroundColor = rColor; }
785 const Color& GetBackgroundColor() const { return maBackgroundColor; }
786
787 tools::Long CalcVertLineSpacing(Point& rStartPos) const;
788
789 Color GetAutoColor() const;
790 void EnableAutoColor( bool b ) { bUseAutoColor = b; }
791 bool IsAutoColorEnabled() const { return bUseAutoColor; }
792 void ForceAutoColor( bool b ) { bForceAutoColor = b; }
793 bool IsForceAutoColor() const { return bForceAutoColor; }
794
795 inline VirtualDevice* GetVirtualDevice( const MapMode& rMapMode, DrawModeFlags nDrawMode );
797
798 DECL_LINK( StatusTimerHdl, Timer *, void);
799 DECL_LINK( IdleFormatHdl, Timer *, void);
800 DECL_LINK( OnlineSpellHdl, Timer *, void);
801 DECL_LINK( DocModified, LinkParamNone*, void );
802
803 void CheckIdleFormatter();
804
805 inline const ParaPortion* FindParaPortion( const ContentNode* pNode ) const;
806 inline ParaPortion* FindParaPortion( ContentNode const * pNode );
807
808 css::uno::Reference< css::datatransfer::XTransferable > CreateTransferable( const EditSelection& rSelection );
809
810 void SetValidPaperSize( const Size& rSz );
811
812 css::uno::Reference < css::i18n::XBreakIterator > const & ImplGetBreakIterator() const;
813 css::uno::Reference < css::i18n::XExtendedInputSequenceChecker > const & ImplGetInputSequenceChecker() const;
814
817
818 void CreateSpellInfo( bool bMultipleDocs );
821
823 void InitDoc(bool bKeepParaAttribs);
825 const EditDoc& GetEditDoc() const { return aEditDoc; }
826
829
831
833
834protected:
835 virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ) override;
836
837public:
838 virtual ~ImpEditEngine() override;
839 ImpEditEngine(const ImpEditEngine&) = delete;
841
844
845 // @return the previous bUpdateLayout state
846 bool SetUpdateLayout( bool bUpdate, EditView* pCurView = nullptr, bool bForceUpdate = false );
847 bool IsUpdateLayout() const { return bUpdateLayout; }
848
850 const ViewsType& GetEditViews() const { return aEditViews; }
851
852 const Size& GetPaperSize() const { return aPaperSize; }
853 void SetPaperSize( const Size& rSz ) { aPaperSize = rSz; }
854
855 void SetVertical( bool bVertical);
857 bool IsTopToBottom() const { return GetEditDoc().IsTopToBottom(); }
858 bool GetVertical() const { return GetEditDoc().GetVertical(); }
859 void SetRotation( TextRotation nRotation);
861
862 void SetTextColumns(sal_Int16 nColumns, sal_Int32 nSpacing);
863
864 bool IsPageOverflow( ) const;
865
866 void SetFixedCellHeight( bool bUseFixedCellHeight );
867 bool IsFixedCellHeight() const { return GetEditDoc().IsFixedCellHeight(); }
868
871
872
873 void InitWritingDirections( sal_Int32 nPara );
874 bool IsRightToLeft( sal_Int32 nPara ) const;
875 sal_uInt8 GetRightToLeft( sal_Int32 nPara, sal_Int32 nChar, sal_Int32* pStart = nullptr, sal_Int32* pEnd = nullptr );
876 bool HasDifferentRTLLevels( const ContentNode* pNode );
877
878 void SetTextRanger( std::unique_ptr<TextRanger> pRanger );
879 TextRanger* GetTextRanger() const { return pTextRanger.get(); }
880
881 const Size& GetMinAutoPaperSize() const { return aMinAutoPaperSize; }
882 void SetMinAutoPaperSize( const Size& rSz ) { aMinAutoPaperSize = rSz; }
883
884 const Size& GetMaxAutoPaperSize() const { return aMaxAutoPaperSize; }
885 void SetMaxAutoPaperSize( const Size& rSz ) { aMaxAutoPaperSize = rSz; }
886
888
889 void FormatDoc();
890 void FormatFullDoc();
891 void UpdateViews( EditView* pCurView = nullptr );
892 void Paint( ImpEditView* pView, const tools::Rectangle& rRect, OutputDevice* pTargetDevice );
893 void Paint(OutputDevice& rOutDev, tools::Rectangle aClipRect, Point aStartPos, bool bStripOnly = false, Degree10 nOrientation = 0_deg10);
894
895 bool MouseButtonUp( const MouseEvent& rMouseEvent, EditView* pView );
896 bool MouseButtonDown( const MouseEvent& rMouseEvent, EditView* pView );
897 void ReleaseMouse();
898 bool MouseMove( const MouseEvent& rMouseEvent, EditView* pView );
899 bool Command(const CommandEvent& rCEvt, EditView* pView);
900
902 OUString GetSelected( const EditSelection& rSel ) const;
903
904 const SfxItemSet& GetEmptyItemSet() const;
905
906 void UpdateSelections();
907
908 void EnableUndo( bool bEnable );
909 bool IsUndoEnabled() const { return bUndoEnabled; }
910 void SetUndoMode( bool b ) { bIsInUndo = b; }
911 bool IsInUndo() const { return bIsInUndo; }
912
915
916 bool IsFormatted() const { return bFormatted; }
917 bool IsFormatting() const { return bIsFormatting; }
918
919 void SetText(const OUString& rText);
920 EditPaM DeleteSelected(const EditSelection& rEditSelection);
921 EditPaM InsertTextUserInput( const EditSelection& rCurEditSelection, sal_Unicode c, bool bOverwrite );
922 EditPaM InsertText(const EditSelection& aCurEditSelection, const OUString& rStr);
923 EditPaM AutoCorrect( const EditSelection& rCurEditSelection, sal_Unicode c, bool bOverwrite, vcl::Window const * pFrameWin = nullptr );
924 EditPaM DeleteLeftOrRight( const EditSelection& rEditSelection, sal_uInt8 nMode, DeleteMode nDelMode );
925 EditPaM InsertParaBreak(const EditSelection& rEditSelection);
926 EditPaM InsertLineBreak(const EditSelection& aEditSelection);
927 EditPaM InsertTab(const EditSelection& rEditSelection);
928 EditPaM InsertField(const EditSelection& rCurSel, const SvxFieldItem& rFld);
929 bool UpdateFields();
930
931 EditPaM Read(SvStream& rInput, const OUString& rBaseURL, EETextFormat eFormat, const EditSelection& rSel, SvKeyValueIterator* pHTTPHeaderAttrs = nullptr);
932 void Write(SvStream& rOutput, EETextFormat eFormat, const EditSelection& rSel);
933
934 std::unique_ptr<EditTextObject> CreateTextObject();
935 std::unique_ptr<EditTextObject> CreateTextObject(const EditSelection& rSel);
936 void SetText( const EditTextObject& rTextObject );
937 EditSelection InsertText( const EditTextObject& rTextObject, EditSelection aSel );
938
939 EditSelection const & MoveCursor( const KeyEvent& rKeyEvent, EditView* pEditView );
940
941 EditSelection MoveParagraphs( Range aParagraphs, sal_Int32 nNewPos, EditView* pCurView );
942
944 sal_uInt32 GetTextHeight() const;
945 sal_uInt32 GetTextHeightNTP() const;
946 sal_uInt32 CalcTextWidth( bool bIgnoreExtraSpace);
947 sal_uInt32 CalcParaWidth( sal_Int32 nParagraph, bool bIgnoreExtraSpace );
948 sal_uInt32 CalcLineWidth( ParaPortion* pPortion, EditLine* pLine, bool bIgnoreExtraSpace);
949 sal_Int32 GetLineCount( sal_Int32 nParagraph ) const;
950 sal_Int32 GetLineLen( sal_Int32 nParagraph, sal_Int32 nLine ) const;
951 void GetLineBoundaries( /*out*/sal_Int32& rStart, /*out*/sal_Int32& rEnd, sal_Int32 nParagraph, sal_Int32 nLine ) const;
952 sal_Int32 GetLineNumberAtIndex( sal_Int32 nPara, sal_Int32 nIndex ) const;
953 sal_uInt16 GetLineHeight( sal_Int32 nParagraph, sal_Int32 nLine );
954 sal_uInt32 GetParaHeight( sal_Int32 nParagraph );
955
956 SfxItemSet GetAttribs( sal_Int32 nPara, sal_Int32 nStart, sal_Int32 nEnd, GetAttribsFlags nFlags = GetAttribsFlags::ALL ) const;
958 void SetAttribs( EditSelection aSel, const SfxItemSet& rSet, SetAttribsMode nSpecial = SetAttribsMode::NONE, bool bSetSelection = true );
959 void RemoveCharAttribs( EditSelection aSel, EERemoveParaAttribsMode eMode, sal_uInt16 nWhich );
960 void RemoveCharAttribs( sal_Int32 nPara, sal_uInt16 nWhich = 0, bool bRemoveFeatures = false );
961 void SetFlatMode( bool bFlat );
962
963 void SetParaAttribs( sal_Int32 nPara, const SfxItemSet& rSet );
964 const SfxItemSet& GetParaAttribs( sal_Int32 nPara ) const;
965
966 bool HasParaAttrib( sal_Int32 nPara, sal_uInt16 nWhich ) const;
967 const SfxPoolItem& GetParaAttrib( sal_Int32 nPara, sal_uInt16 nWhich ) const;
968 template<class T>
969 const T& GetParaAttrib( sal_Int32 nPara, TypedWhichId<T> nWhich ) const
970 {
971 return static_cast<const T&>(GetParaAttrib(nPara, sal_uInt16(nWhich)));
972 }
973
975 tools::Rectangle GetEditCursor(const ParaPortion* pPortion, const EditLine* pLine,
976 sal_Int32 nIndex, GetCursorFlags nFlags);
977
978 bool IsModified() const { return aEditDoc.IsModified(); }
979 void SetModifyFlag( bool b ) { aEditDoc.SetModified( b ); }
980 void SetModifyHdl( const Link<LinkParamNone*,void>& rLink ) { aModifyHdl = rLink; }
981
982 bool IsInSelectionMode() const { return bInSelection; }
983
984// For Undo/Redo
985 void Undo( EditView* pView );
986 void Redo( EditView* pView );
987
988// OV-Special
989 void InvalidateFromParagraph( sal_Int32 nFirstInvPara );
990 EditPaM InsertParagraph( sal_Int32 nPara );
991 std::optional<EditSelection> SelectParagraph( sal_Int32 nPara );
992
995
996 void SetNotifyHdl( const Link<EENotify&,void>& rLink ) { aNotifyHdl = rLink; }
998
999 void FormatAndLayout( EditView* pCurView = nullptr, bool bCalledFromUndo = false );
1000
1002 static bool IsVisualCursorTravelingEnabled();
1003 static bool DoVisualCursorTraveling();
1004
1005 EditSelection ConvertSelection( sal_Int32 nStartPara, sal_Int32 nStartPos, sal_Int32 nEndPara, sal_Int32 nEndPos );
1006 inline EPaM CreateEPaM( const EditPaM& rPaM ) const;
1007 inline EditPaM CreateEditPaM( const EPaM& rEPaM );
1008 inline ESelection CreateESel( const EditSelection& rSel ) const;
1009 inline EditSelection CreateSel( const ESelection& rSel );
1010
1011 void SetStyleSheetPool( SfxStyleSheetPool* pSPool );
1013
1014 void SetStyleSheet( EditSelection aSel, SfxStyleSheet* pStyle );
1015 void SetStyleSheet( sal_Int32 nPara, SfxStyleSheet* pStyle );
1016 const SfxStyleSheet* GetStyleSheet( sal_Int32 nPara ) const;
1017 SfxStyleSheet* GetStyleSheet( sal_Int32 nPara );
1018
1020 void RemoveStyleFromParagraphs( SfxStyleSheet const * pStyle );
1021
1022 bool isUsedByModel() const override { return true; }
1023
1024 OutputDevice* GetRefDevice() const { return pRefDev.get(); }
1025 void SetRefDevice( OutputDevice* pRefDef );
1026
1027 const MapMode& GetRefMapMode() const { return pRefDev->GetMapMode(); }
1028 void SetRefMapMode( const MapMode& rMapMode );
1029
1031 void CallStatusHdl();
1033
1034 void UndoActionStart( sal_uInt16 nId );
1035 void UndoActionStart( sal_uInt16 nId, const ESelection& rSel );
1036 void UndoActionEnd();
1037
1039 void SetActiveView( EditView* pView );
1040
1041 css::uno::Reference< css::linguistic2::XSpellChecker1 > const &
1042 GetSpeller();
1043 void SetSpeller( css::uno::Reference< css::linguistic2::XSpellChecker1 > const &xSpl )
1044 { xSpeller = xSpl; }
1045 const css::uno::Reference< css::linguistic2::XHyphenator >&
1046 GetHyphenator() const { return xHyphenator; }
1047 void SetHyphenator( css::uno::Reference< css::linguistic2::XHyphenator > const &xHyph )
1048 { xHyphenator = xHyph; }
1049
1050 void GetAllMisspellRanges( std::vector<editeng::MisspellRanges>& rRanges ) const;
1051 void SetAllMisspellRanges( const std::vector<editeng::MisspellRanges>& rRanges );
1052
1053 SpellInfo* GetSpellInfo() const { return pSpellInfo.get(); }
1054
1057
1058 editeng::LanguageSpan GetLanguage( const EditPaM& rPaM, sal_Int32* pEndPos = nullptr ) const;
1059 css::lang::Locale GetLocale( const EditPaM& rPaM ) const;
1060
1061 void DoOnlineSpelling( ContentNode* pThisNodeOnly = nullptr, bool bSpellAtCursorPos = false, bool bInterruptible = true );
1062 EESpellState Spell(EditView* pEditView, weld::Widget* pDialogParent, bool bMultipleDoc);
1064 void ClearSpellErrors();
1065 EESpellState StartThesaurus(EditView* pEditView, weld::Widget* pDialogParent);
1066 css::uno::Reference< css::linguistic2::XSpellAlternatives >
1067 ImpSpell( EditView* pEditView );
1068
1069 // text conversion functions
1070 void Convert(EditView* pEditView, weld::Widget* pDialogParent, LanguageType nSrcLang, LanguageType nDestLang, const vcl::Font *pDestFont, sal_Int32 nOptions, bool bIsInteractive, bool bMultipleDoc);
1071 void ImpConvert( OUString &rConvTxt, LanguageType &rConvTxtLang, EditView* pEditView, LanguageType nSrcLang, const ESelection &rConvRange,
1072 bool bAllowImplicitChangesForNotConvertibleText, LanguageType nTargetLang, const vcl::Font *pTargetFont );
1073 ConvInfo * GetConvInfo() const { return pConvInfo.get(); }
1075 void SetLanguageAndFont( const ESelection &rESel,
1076 LanguageType nLang, sal_uInt16 nLangWhichId,
1077 const vcl::Font *pFont, sal_uInt16 nFontWhichId );
1078
1079 // returns true if input sequence checking should be applied
1080 bool IsInputSequenceCheckingRequired( sal_Unicode nChar, const EditSelection& rCurSel ) const;
1081
1082 //find the next error within the given selection - forward only!
1083 css::uno::Reference< css::linguistic2::XSpellAlternatives >
1084 ImpFindNextError(EditSelection& rSelection);
1085 //spell and return a sentence
1086 bool SpellSentence(EditView const & rView, svx::SpellPortions& rToFill );
1087 //put spelling back to start of current sentence - needed after switch of grammar support
1088 void PutSpellingToSentenceStart( EditView const & rEditView );
1089 //applies a changed sentence
1090 void ApplyChangedSentence(EditView const & rEditView, const svx::SpellPortions& rNewPortions, bool bRecheck );
1091 //adds one or more portions of text to the SpellPortions depending on language changes
1092 void AddPortionIterated(
1093 EditView const & rEditView,
1094 const EditSelection &rSel,
1095 const css::uno::Reference< css::linguistic2::XSpellAlternatives >& xAlt,
1096 svx::SpellPortions& rToFill);
1097 //adds one portion to the SpellPortions
1098 void AddPortion(
1099 const EditSelection &rSel,
1100 const css::uno::Reference< css::linguistic2::XSpellAlternatives >& xAlt,
1101 svx::SpellPortions& rToFill,
1102 bool bIsField );
1103
1104 bool Search( const SvxSearchItem& rSearchItem, EditView* pView );
1105 bool ImpSearch( const SvxSearchItem& rSearchItem, const EditSelection& rSearchSelection, const EditPaM& rStartPos, EditSelection& rFoundSel );
1106 sal_Int32 StartSearchAndReplace( EditView* pEditView, const SvxSearchItem& rSearchItem );
1107 bool HasText( const SvxSearchItem& rSearchItem );
1108
1111
1112 const SvxNumberFormat * GetNumberFormat( const ContentNode* pNode ) const;
1113 sal_Int32 GetSpaceBeforeAndMinLabelWidth( const ContentNode *pNode, sal_Int32 *pnSpaceBefore = nullptr, sal_Int32 *pnMinLabelWidth = nullptr ) const;
1114
1115 const SvxLRSpaceItem& GetLRSpaceItem( ContentNode* pNode );
1116 SvxAdjust GetJustification( sal_Int32 nPara ) const;
1117 SvxCellJustifyMethod GetJustifyMethod( sal_Int32 nPara ) const;
1118 SvxCellVerJustify GetVerJustification( sal_Int32 nPara ) const;
1119
1120 void setScale(double fFontScaleX, double fFontScaleY, double fSpacingScaleX, double fSpacingScaleY);
1121
1122 void getFontScale(double& rX, double& rY) const
1123 {
1124 rX = mfFontScaleX;
1125 rY = mfFontScaleY;
1126 }
1127
1128 void getSpacingScale(double& rX, double& rY) const
1129 {
1130 rX = mfSpacingScaleX;
1131 rY = mfSpacingScaleY;
1132 }
1133
1134 sal_Int32 GetBigTextObjectStart() const { return nBigTextObjectStart; }
1135
1137
1140
1141 const OUString& GetAutoCompleteText() const { return aAutoCompleteText; }
1142 void SetAutoCompleteText(const OUString& rStr, bool bUpdateTipWindow);
1143
1144 EditSelection TransliterateText( const EditSelection& rSelection, TransliterationFlags nTransliterationMode );
1145 short ReplaceTextOnly( ContentNode* pNode, sal_Int32 nCurrentStart, std::u16string_view rText, const css::uno::Sequence< sal_Int32 >& rOffsets );
1146
1149
1150 void SetKernAsianPunctuation( bool b );
1152
1153 sal_Int32 GetOverflowingParaNum() const { return mnOverflowingPara; }
1154 sal_Int32 GetOverflowingLineNum() const { return mnOverflowingLine; }
1156
1157
1158 void SetAddExtLeading( bool b );
1159 bool IsAddExtLeading() const { return bAddExtLeading; }
1160
1161 static std::shared_ptr<SvxForbiddenCharactersTable> const & GetForbiddenCharsTable();
1162 static void SetForbiddenCharsTable( const std::shared_ptr<SvxForbiddenCharactersTable>& xForbiddenChars );
1163
1165 void SetBeginDropHdl( const Link<EditView*,void>& rLink ) { maBeginDropHdl = rLink; }
1167
1169 void SetEndDropHdl( const Link<EditView*,void>& rLink ) { maEndDropHdl = rLink; }
1171
1173 void SetFirstWordCapitalization( bool bCapitalize ) { bFirstWordCapitalization = bCapitalize; }
1175
1180
1182 bool IsNbspRunNext() const { return mbNbspRunNext; }
1183
1185
1186 void Dispose();
1187 void SetLOKSpecialPaperSize(const Size& rSize) { aLOKSpecialPaperSize = rSize; }
1189
1191 {
1192 Continue,
1193 SkipThisPortion, // Do not call callback until next portion
1194 Stop, // Stop iteration
1195 };
1197 {
1198 ParaPortion& rPortion; // Current ParaPortion
1199 EditLine* pLine; // Current line, or nullptr for paragraph start
1201 tools::Rectangle aArea; // The area for the line (or for rPortion's first line offset)
1202 // Bottom coordinate *does not* belong to the area
1203 sal_Int32 nPortion;
1204 sal_Int32 nLine;
1205 sal_Int16 nColumn; // Column number; when overflowing, equal to total number of columns
1206 };
1207 using IterateLinesAreasFunc = std::function<CallbackResult(const LineAreaInfo&)>;
1208 enum IterFlag // bitmask
1209 {
1210 none = 0,
1211 inclILS = 1, // rArea includes interline space
1212 };
1213
1214 void IterateLineAreas(const IterateLinesAreasFunc& f, IterFlag eOptions);
1215
1216 tools::Long GetColumnWidth(const Size& rPaperSize) const;
1217 Point MoveToNextLine(Point& rMovePos, tools::Long nLineHeight, sal_Int16& nColumn,
1218 Point aOrigin, tools::Long* pnHeightNeededToNotWrap = nullptr) const;
1219
1220 tools::Long getWidthDirectionAware(const Size& sz) const;
1221 tools::Long getHeightDirectionAware(const Size& sz) const;
1222 void adjustXDirectionAware(Point& pt, tools::Long x) const;
1223 void adjustYDirectionAware(Point& pt, tools::Long y) const;
1224 void setXDirectionAwareFrom(Point& ptDest, const Point& ptSrc) const;
1225 void setYDirectionAwareFrom(Point& ptDest, const Point& ptSrc) const;
1226 tools::Long getYOverflowDirectionAware(const Point& pt, const tools::Rectangle& rectMax) const;
1227 bool isXOverflowDirectionAware(const Point& pt, const tools::Rectangle& rectMax) const;
1228 // Offset of the rectangle's direction-aware corners in document coordinates
1230 Size getTopLeftDocOffset(const tools::Rectangle& rect) const;
1231};
1232
1233inline EPaM ImpEditEngine::CreateEPaM( const EditPaM& rPaM ) const
1234{
1235 const ContentNode* pNode = rPaM.GetNode();
1236 return EPaM( aEditDoc.GetPos( pNode ), rPaM.GetIndex() );
1237}
1238
1240{
1241 DBG_ASSERT( rEPaM.nPara < aEditDoc.Count(), "CreateEditPaM: invalid paragraph" );
1242 DBG_ASSERT( aEditDoc[ rEPaM.nPara ]->Len() >= rEPaM.nIndex, "CreateEditPaM: invalid Index" );
1243 return EditPaM( aEditDoc[ rEPaM.nPara], rEPaM.nIndex );
1244}
1245
1247{
1248 const ContentNode* pStartNode = rSel.Min().GetNode();
1249 const ContentNode* pEndNode = rSel.Max().GetNode();
1250 ESelection aESel;
1251 aESel.nStartPara = aEditDoc.GetPos( pStartNode );
1252 aESel.nStartPos = rSel.Min().GetIndex();
1253 aESel.nEndPara = aEditDoc.GetPos( pEndNode );
1254 aESel.nEndPos = rSel.Max().GetIndex();
1255 return aESel;
1256}
1257
1259{
1260 DBG_ASSERT( rSel.nStartPara < aEditDoc.Count(), "CreateSel: invalid start paragraph" );
1261 DBG_ASSERT( rSel.nEndPara < aEditDoc.Count(), "CreateSel: invalid end paragraph" );
1262 EditSelection aSel;
1263 aSel.Min().SetNode( aEditDoc[ rSel.nStartPara ] );
1264 aSel.Min().SetIndex( rSel.nStartPos );
1265 aSel.Max().SetNode( aEditDoc[ rSel.nEndPara ] );
1266 aSel.Max().SetIndex( rSel.nEndPos );
1267 DBG_ASSERT( !aSel.DbgIsBuggy( aEditDoc ), "CreateSel: incorrect selection!" );
1268 return aSel;
1269}
1270
1272{
1273 if ( !pVirtDev )
1275
1276 if ( ( pVirtDev->GetMapMode().GetMapUnit() != rMapMode.GetMapUnit() ) ||
1277 ( pVirtDev->GetMapMode().GetScaleX() != rMapMode.GetScaleX() ) ||
1278 ( pVirtDev->GetMapMode().GetScaleY() != rMapMode.GetScaleY() ) )
1279 {
1280 MapMode aMapMode( rMapMode );
1281 aMapMode.SetOrigin( Point( 0, 0 ) );
1282 pVirtDev->SetMapMode( aMapMode );
1283 }
1284
1285 pVirtDev->SetDrawMode( nDrawMode );
1286
1287 return pVirtDev;
1288}
1289
1291{
1292 if ( !pUndoManager )
1293 {
1296 }
1297 return *pUndoManager;
1298}
1299
1301{
1302 SfxUndoManager* pRetval = pUndoManager;
1303
1304 if(pUndoManager)
1305 {
1306 pUndoManager->SetEditEngine(nullptr);
1307 }
1308
1309 pUndoManager = dynamic_cast< EditUndoManager* >(pNew);
1310
1311 if(pUndoManager)
1312 {
1314 }
1315
1316 return pRetval;
1317}
1318
1319inline const ParaPortion* ImpEditEngine::FindParaPortion( const ContentNode* pNode ) const
1320{
1321 sal_Int32 nPos = aEditDoc.GetPos( pNode );
1322 DBG_ASSERT( nPos < GetParaPortions().Count(), "Portionloser Node?" );
1323 return GetParaPortions()[ nPos ];
1324}
1325
1327{
1328 sal_Int32 nPos = aEditDoc.GetPos( pNode );
1329 DBG_ASSERT( nPos < GetParaPortions().Count(), "Portionloser Node?" );
1330 return GetParaPortions()[ nPos ];
1331}
1332
1334{
1335 if ( !mxPointer )
1336 {
1337 mxPointer = IsVertical() ? PointerStyle::TextVertical : PointerStyle::Text;
1338 return *mxPointer;
1339 }
1340
1341 if(PointerStyle::Text == *mxPointer && IsVertical())
1342 {
1343 mxPointer = PointerStyle::TextVertical;
1344 }
1345 else if(PointerStyle::TextVertical == *mxPointer && !IsVertical())
1346 {
1347 mxPointer = PointerStyle::Text;
1348 }
1349
1350 return *mxPointer;
1351}
1352
1354{
1355 if ( !pCursor )
1356 pCursor.reset( new vcl::Cursor );
1357 return pCursor.get();
1358}
1359
1360void ConvertItem( std::unique_ptr<SfxPoolItem>& rPoolItem, MapUnit eSourceUnit, MapUnit eDestUnit );
1361void ConvertAndPutItems( SfxItemSet& rDest, const SfxItemSet& rSource, const MapUnit* pSourceUnit = nullptr, const MapUnit* pDestUnit = nullptr );
1363
1364
1365/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
DrawModeFlags
CharCompressType
bool IsEffectivelyVertical() const
Definition: editdoc.cxx:2069
void SetModified(bool b)
Definition: editdoc.cxx:2240
bool IsTopToBottom() const
Definition: editdoc.cxx:2075
sal_Int32 GetPos(const ContentNode *pNode) const
Definition: editdoc.cxx:2086
bool IsFixedCellHeight() const
Definition: editdoc.hxx:793
sal_Int32 Count() const
Definition: editdoc.cxx:2143
TextRotation GetRotation() const
Definition: editdoc.hxx:790
bool GetVertical() const
Definition: editdoc.cxx:2081
bool IsModified() const
Definition: editdoc.hxx:772
std::vector< EditView * > ViewsType
void SetIndex(sal_Int32 n)
Definition: editdoc.hxx:317
void SetNode(ContentNode *p)
Definition: editdoc.cxx:1122
const ContentNode * GetNode() const
Definition: editdoc.hxx:312
sal_Int32 GetIndex() const
Definition: editdoc.hxx:316
EditPaM & Min()
Definition: editdoc.hxx:705
bool DbgIsBuggy(EditDoc const &rDoc) const
Definition: editdoc.cxx:1134
bool HasRange() const
Definition: editdoc.hxx:711
EditPaM & Max()
Definition: editdoc.hxx:706
void SetEditEngine(EditEngine *pNew)
Definition: editundo.cxx:44
std::vector< VclPtr< vcl::Window > > OutWindowSet
Definition: editview.hxx:159
virtual ~IdleFormattter() override
Definition: impedit5.cxx:793
void DoIdleFormat(EditView *pV)
Definition: impedit5.cxx:798
EditView * GetView()
Definition: impedit.hxx:204
void ForceTimeout()
Definition: impedit5.cxx:811
void ResetRestarts()
Definition: impedit.hxx:203
EditView * pView
Definition: impedit.hxx:194
void SetBeginDropHdl(const Link< EditView *, void > &rLink)
sets a link that is called at the beginning of a drag operation at an edit view
Definition: impedit.hxx:1165
SfxStyleSheetPool * GetStyleSheetPool() const
Definition: impedit.hxx:1012
void WriteXML(SvStream &rOutput, const EditSelection &rSel)
Definition: impedit4.cxx:266
void SetLOKSpecialPaperSize(const Size &rSize)
Definition: impedit.hxx:1187
EESpellState StartThesaurus(EditView *pEditView, weld::Widget *pDialogParent)
Definition: impedit4.cxx:2441
void CursorMoved(const ContentNode *pPrevNode)
Definition: impedit2.cxx:759
bool UpdateFields()
Definition: impedit2.cxx:3049
void Clear()
Definition: impedit2.cxx:668
EditPaM PageDown(const EditPaM &rPaM, EditView const *pView)
Definition: impedit2.cxx:1453
void SetReplaceLeadingSingleQuotationMark(bool bReplace)
specifies if auto-correction should replace a leading single quotation mark (apostrophe) or not (defa...
Definition: impedit.hxx:1178
std::optional< ESelection > moUndoMarkSelection
Definition: impedit.hxx:524
bool IsFixedCellHeight() const
Definition: impedit.hxx:867
void SetBackgroundColor(const Color &rColor)
Definition: impedit.hxx:784
void SetNotifyHdl(const Link< EENotify &, void > &rLink)
Definition: impedit.hxx:996
short ReplaceTextOnly(ContentNode *pNode, sal_Int32 nCurrentStart, std::u16string_view rText, const css::uno::Sequence< sal_Int32 > &rOffsets)
Definition: impedit4.cxx:3013
void RemoveCharAttribs(EditSelection aSel, EERemoveParaAttribsMode eMode, sal_uInt16 nWhich)
Definition: impedit5.cxx:584
sal_Int32 nBigTextObjectStart
Definition: impedit.hxx:545
bool IsPageOverflow() const
Definition: impedit3.cxx:387
const Size & GetLOKSpecialPaperSize() const
Definition: impedit.hxx:1188
css::uno::Reference< css::linguistic2::XSpellAlternatives > ImpSpell(EditView *pEditView)
Definition: impedit4.cxx:1813
tools::Long GetXPos(const ParaPortion *pParaPortion, const EditLine *pLine, sal_Int32 nIndex, bool bPreferPortionStart=false) const
Definition: impedit2.cxx:4201
sal_uInt16 GetLineHeight(sal_Int32 nParagraph, sal_Int32 nLine)
Definition: impedit2.cxx:3682
sal_Int32 StartSearchAndReplace(EditView *pEditView, const SvxSearchItem &rSearchItem)
Definition: impedit4.cxx:2468
EditPaM WordLeft(const EditPaM &rPaM)
Definition: impedit2.cxx:1467
void CalcHeight(ParaPortion *pPortion)
Definition: impedit2.cxx:4332
VirtualDevice * GetVirtualDevice(const MapMode &rMapMode, DrawModeFlags nDrawMode)
Definition: impedit.hxx:1271
tools::Long GetPortionXOffset(const ParaPortion *pParaPortion, const EditLine *pLine, sal_Int32 nTextPortion) const
Definition: impedit2.cxx:4110
void CallStatusHdl()
Definition: impedit3.cxx:4278
bool HasDifferentRTLLevels(const ContentNode *pNode)
Definition: impedit2.cxx:2036
const T & GetParaAttrib(sal_Int32 nPara, TypedWhichId< T > nWhich) const
Definition: impedit.hxx:969
EditPaM ImpInsertFeature(const EditSelection &rCurSel, const SfxPoolItem &rItem)
Definition: impedit2.cxx:2886
Link< EditView *, void > maEndDropHdl
Definition: impedit.hxx:597
css::uno::Reference< css::linguistic2::XSpellChecker1 > xSpeller
Definition: impedit.hxx:546
void StopOnlineSpellTimer()
Definition: impedit.hxx:1139
sal_Int32 SplitTextPortion(ParaPortion *pParaPortion, sal_Int32 nPos, EditLine *pCurLine=nullptr)
Definition: impedit3.cxx:2504
const ParaPortion * GetNextVisPortion(const ParaPortion *pCurPortion) const
Definition: impedit3.cxx:4322
const SfxItemSet & GetEmptyItemSet() const
Definition: impedit2.cxx:743
LanguageType GetDefaultLanguage() const
Definition: impedit.hxx:1056
const SfxItemSet & GetParaAttribs(sal_Int32 nPara) const
Definition: impedit5.cxx:718
Link< MoveParagraphsInfo &, void > aBeginMovingParagraphsHdl
Definition: impedit.hxx:591
EditPaM ImpFastInsertText(EditPaM aPaM, const OUString &rStr)
Definition: impedit2.cxx:2864
const Size & GetPaperSize() const
Definition: impedit.hxx:852
void Convert(EditView *pEditView, weld::Widget *pDialogParent, LanguageType nSrcLang, LanguageType nDestLang, const vcl::Font *pDestFont, sal_Int32 nOptions, bool bIsInteractive, bool bMultipleDoc)
Definition: impedit4.cxx:1527
EditSelectionEngine aSelEngine
Definition: impedit.hxx:531
bool HasText(const SvxSearchItem &rSearchItem)
Definition: impedit4.cxx:2643
sal_Int32 GetLineLen(sal_Int32 nParagraph, sal_Int32 nLine) const
Definition: impedit2.cxx:3627
EditPaM CursorLeft(const EditPaM &rPaM, sal_uInt16 nCharacterIteratorMode=css::i18n::CharacterIteratorMode::SKIPCELL)
Definition: impedit2.cxx:1216
const MapMode & GetRefMapMode() const
Definition: impedit.hxx:1027
static OUString convertDigits(std::u16string_view rString, sal_Int32 nStt, sal_Int32 nLen, LanguageType eDigitLang)
Definition: impedit3.cxx:4562
Link< PasteOrDropInfos &, void > aEndPasteOrDropHdl
Definition: impedit.hxx:594
EditPaM ImpFastInsertParagraph(sal_Int32 nPara)
Definition: impedit2.cxx:2986
ImpEditEngine(EditEngine *pEditEngine, SfxItemPool *pPool)
Definition: impedit2.cxx:89
Color GetAutoColor() const
Definition: impedit3.cxx:4647
void RecalcFormatterFontMetrics(FormatterFontMetric &rCurMetrics, SvxFont &rFont)
Definition: impedit3.cxx:3096
tools::Long CalcTextHeight(tools::Long *pHeightNTP)
Definition: impedit2.cxx:3523
EditPaM CursorStartOfLine(const EditPaM &rPaM)
Definition: impedit2.cxx:1359
EditPaM CursorEndOfLine(const EditPaM &rPaM)
Definition: impedit2.cxx:1371
css::lang::Locale GetLocale(const EditPaM &rPaM) const
Definition: impedit4.cxx:1419
static void ImplInitDigitMode(OutputDevice &rOutDev, LanguageType eLang)
Definition: impedit3.cxx:4575
EditPaM StartOfWord(const EditPaM &rPaM)
Definition: impedit2.cxx:1535
ImpEditEngine(const ImpEditEngine &)=delete
void Undo(EditView *pView)
Definition: impedit5.cxx:292
css::uno::Reference< css::i18n::XExtendedInputSequenceChecker > xISC
Definition: impedit.hxx:550
void SetParaAttribs(sal_Int32 nPara, const SfxItemSet &rSet)
Definition: impedit5.cxx:679
void ImplUpdateOverflowingLineNum(tools::Long, sal_uInt32, tools::Long)
Definition: impedit3.cxx:4873
DECL_LINK(IdleFormatHdl, Timer *, void)
void FormatDoc()
Definition: impedit3.cxx:400
bool ImplCalcAsianCompression(ContentNode *pNode, TextPortion *pTextPortion, sal_Int32 nStartPos, sal_Int32 *pDXArray, sal_uInt16 n100thPercentFromMax, bool bManipulateDXArray)
Definition: impedit3.cxx:4676
bool bIsFormatting
Definition: impedit.hxx:601
void SetHyphenator(css::uno::Reference< css::linguistic2::XHyphenator > const &xHyph)
Definition: impedit.hxx:1047
void IterateLineAreas(const IterateLinesAreasFunc &f, IterFlag eOptions)
Definition: impedit2.cxx:3197
void UndoActionStart(sal_uInt16 nId)
Definition: impedit5.cxx:246
OUString GetSelected(const EditSelection &rSel) const
Definition: impedit2.cxx:266
EditPaM ReadHTML(SvStream &rInput, const OUString &rBaseURL, EditSelection aSel, SvKeyValueIterator *pHTTPHeaderAttrs)
Definition: impedit4.cxx:162
ErrCode WriteRTF(SvStream &rOutput, EditSelection aSel)
Definition: impedit4.cxx:273
void SetCallParaInsertedOrDeleted(bool b)
Definition: impedit.hxx:913
LanguageType eDefLanguage
Definition: impedit.hxx:558
bool bIsInUndo
Definition: impedit.hxx:604
void DoOnlineSpelling(ContentNode *pThisNodeOnly=nullptr, bool bSpellAtCursorPos=false, bool bInterruptible=true)
Definition: impedit4.cxx:2205
bool mbNeedsChainingHandling
Definition: impedit.hxx:577
SvtScriptType GetItemScriptType(const EditSelection &rSel) const
Definition: impedit2.cxx:1857
SpellInfo * GetSpellInfo() const
Definition: impedit.hxx:1053
TextRotation GetRotation() const
Definition: impedit.hxx:860
void SetAutoCompleteText(const OUString &rStr, bool bUpdateTipWindow)
Definition: impedit4.cxx:2655
sal_uInt32 GetTextHeightNTP() const
Definition: impedit2.cxx:3493
void SetAsianCompressionMode(CharCompressType n)
Definition: impedit4.cxx:3055
bool isUsedByModel() const override
Definition: impedit.hxx:1022
EditSelection MoveParagraphs(Range aParagraphs, sal_Int32 nNewPos, EditView *pCurView)
Definition: impedit3.cxx:4211
bool IsAddExtLeading() const
Definition: impedit.hxx:1159
void ImpFindKashidas(ContentNode *pNode, sal_Int32 nStart, sal_Int32 nEnd, std::vector< sal_Int32 > &rArray)
Definition: impedit3.cxx:2312
static LanguageType ImplCalcDigitLang(LanguageType eCurLang)
Definition: impedit3.cxx:4541
const css::uno::Reference< css::linguistic2::XHyphenator > & GetHyphenator() const
Definition: impedit.hxx:1046
std::unique_ptr< SfxItemSet > pEmptyItemSet
Definition: impedit.hxx:522
Link< LinkParamNone *, void > aModifyHdl
Definition: impedit.hxx:595
double mfFontScaleY
Definition: impedit.hxx:536
Point MoveToNextLine(Point &rMovePos, tools::Long nLineHeight, sal_Int16 &nColumn, Point aOrigin, tools::Long *pnHeightNeededToNotWrap=nullptr) const
Definition: impedit3.cxx:3251
EditPaM PageUp(const EditPaM &rPaM, EditView const *pView)
Definition: impedit2.cxx:1440
EditPaM InsertParaBreak(const EditSelection &rEditSelection)
Definition: impedit2.cxx:3015
EPaM CreateEPaM(const EditPaM &rPaM) const
Definition: impedit.hxx:1233
ParaPortionList & GetParaPortions()
Definition: impedit.hxx:828
sal_uInt32 GetParaHeight(sal_Int32 nParagraph)
Definition: impedit2.cxx:3696
EditEngine * GetEditEnginePtr() const
Definition: impedit.hxx:1136
ContentNode * GetNextVisNode(ContentNode const *pCurNode)
Definition: impedit3.cxx:4301
bool CreateLines(sal_Int32 nPara, sal_uInt32 nStartPosY)
Definition: impedit3.cxx:638
void SetModifyHdl(const Link< LinkParamNone *, void > &rLink)
Definition: impedit.hxx:980
bool IsForceAutoColor() const
Definition: impedit.hxx:793
bool mbRoundToNearestPt
Definition: impedit.hxx:539
Size aPaperSize
Definition: impedit.hxx:501
EditPaM CreateEditPaM(const EPaM &rEPaM)
Definition: impedit.hxx:1239
sal_uInt32 GetTextHeight() const
Definition: impedit2.cxx:3357
bool mbLastTryMerge
Definition: impedit.hxx:612
sal_Int32 GetLineCount(sal_Int32 nParagraph) const
Definition: impedit2.cxx:3616
EditPaM SplitContent(sal_Int32 nNode, sal_Int32 nSepPos)
Definition: impedit3.cxx:4127
const SfxStyleSheet * GetStyleSheet(sal_Int32 nPara) const
Definition: impedit5.cxx:35
EditPaM RemoveText()
Definition: impedit2.cxx:693
void ImplInitLayoutMode(OutputDevice &rOutDev, sal_Int32 nPara, sal_Int32 nIndex)
Definition: impedit3.cxx:4580
const SvxNumberFormat * GetNumberFormat(const ContentNode *pNode) const
Definition: impedit3.cxx:4483
Size aMinAutoPaperSize
Definition: impedit.hxx:502
EditPaM GetPaM(Point aDocPos, bool bSmart=true)
Definition: impedit2.cxx:3324
bool bFirstWordCapitalization
Definition: impedit.hxx:611
bool mbNbspRunNext
Definition: impedit.hxx:617
const ParaPortion * FindParaPortion(const ContentNode *pNode) const
Definition: impedit.hxx:1319
tools::Long getBottomDocOffset(const tools::Rectangle &rect) const
Definition: impedit3.cxx:3228
std::vector< std::unique_ptr< DeletedNodeInfo > > aDeletedNodes
Definition: impedit.hxx:564
EESpellState HasSpellErrors()
Definition: impedit4.cxx:2404
bool IsEffectivelyVertical() const
Definition: impedit.hxx:856
EditPaM CursorRight(const EditPaM &rPaM, sal_uInt16 nCharacterIteratorMode=css::i18n::CharacterIteratorMode::SKIPCELL)
Definition: impedit2.cxx:1243
bool HasParaAttrib(sal_Int32 nPara, sal_uInt16 nWhich) const
Definition: impedit5.cxx:725
EditUndoManager * pUndoManager
Definition: impedit.hxx:523
void UpdateViews(EditView *pCurView=nullptr)
Definition: impedit3.cxx:316
void SeekCursor(ContentNode *pNode, sal_Int32 nPos, SvxFont &rFont, OutputDevice *pOut=nullptr)
Definition: impedit3.cxx:2859
const Link< EditView *, void > & GetBeginDropHdl() const
Definition: impedit.hxx:1166
EditDoc & GetEditDoc()
Definition: impedit.hxx:824
css::uno::Reference< css::linguistic2::XSpellChecker1 > const & GetSpeller()
Definition: impedit4.cxx:1424
const EditDoc & GetEditDoc() const
Definition: impedit.hxx:825
ViewShellId CreateViewShellId()
Obtains a view shell ID from the active EditView.
Definition: impedit5.cxx:224
void ClearSpellErrors()
Definition: impedit4.cxx:2436
EditPaM CursorStartOfDoc()
Definition: impedit2.cxx:1414
SvxAdjust GetJustification(sal_Int32 nPara) const
Definition: impedit2.cxx:2090
void EraseVirtualDevice()
Definition: impedit.hxx:796
editeng::LanguageSpan GetLanguage(const EditPaM &rPaM, sal_Int32 *pEndPos=nullptr) const
Definition: impedit4.cxx:1394
bool Command(const CommandEvent &rCEvt, EditView *pView)
Definition: impedit2.cxx:341
ParaPortionList aParaPortionList
Definition: impedit.hxx:500
EditEngine::ViewsType ViewsType
Definition: impedit.hxx:490
ImpEditEngine & operator=(const ImpEditEngine &)=delete
SfxItemSet GetAttribs(sal_Int32 nPara, sal_Int32 nStart, sal_Int32 nEnd, GetAttribsFlags nFlags=GetAttribsFlags::ALL) const
Definition: impedit5.cxx:398
EditSelection const & MoveCursor(const KeyEvent &rKeyEvent, EditView *pEditView)
Definition: impedit2.cxx:805
virtual ~ImpEditEngine() override
Definition: impedit2.cxx:171
void Dispose()
Definition: impedit2.cxx:160
bool isXOverflowDirectionAware(const Point &pt, const tools::Rectangle &rectMax) const
Definition: impedit3.cxx:3217
EditSelFunctionSet aSelFuncSet
Definition: impedit.hxx:530
bool MouseMove(const MouseEvent &rMouseEvent, EditView *pView)
Definition: impedit2.cxx:654
bool SpellSentence(EditView const &rView, svx::SpellPortions &rToFill)
Definition: impedit4.cxx:1922
double scaleXFontValue(tools::Long nXValue) const
Definition: impedit.hxx:767
EEHorizontalTextDirection GetDefaultHorizontalTextDirection() const
Definition: impedit.hxx:870
sal_uInt8 GetRightToLeft(sal_Int32 nPara, sal_Int32 nChar, sal_Int32 *pStart=nullptr, sal_Int32 *pEnd=nullptr)
Definition: impedit2.cxx:2059
Size aLOKSpecialPaperSize
Definition: impedit.hxx:585
std::unique_ptr< ImplIMEInfos > mpIMEInfos
Definition: impedit.hxx:526
EditSelection ConvertSelection(sal_Int32 nStartPara, sal_Int32 nStartPos, sal_Int32 nEndPara, sal_Int32 nEndPos)
Definition: impedit2.cxx:3769
EditPaM ImpInsertParaBreak(EditPaM &rPaM, bool bKeepEndingAttribs=true)
Definition: impedit2.cxx:2922
Size aMaxAutoPaperSize
Definition: impedit.hxx:503
void StartOnlineSpellTimer()
Definition: impedit.hxx:1138
sal_uInt16 GetI18NScriptType(const EditPaM &rPaM, sal_Int32 *pEndPos=nullptr) const
Definition: impedit2.cxx:1826
bool GetVertical() const
Definition: impedit.hxx:858
std::unique_ptr< SpellInfo > pSpellInfo
Definition: impedit.hxx:548
tools::Long nCurTextHeight
Definition: impedit.hxx:566
void SetFirstWordCapitalization(bool bCapitalize)
specifies if auto-correction should capitalize the first word or not (default is on)
Definition: impedit.hxx:1173
EditSelection SelectSentence(const EditSelection &rCurSel) const
Definition: impedit2.cxx:1609
bool IsTopToBottom() const
Definition: impedit.hxx:857
tools::Rectangle GetEditCursor(const ParaPortion *pPortion, const EditLine *pLine, sal_Int32 nIndex, GetCursorFlags nFlags)
Definition: impedit2.cxx:3117
void getFontScale(double &rX, double &rY) const
Definition: impedit.hxx:1122
void RemoveStyleFromParagraphs(SfxStyleSheet const *pStyle)
Definition: impedit5.cxx:129
bool bInSelection
Definition: impedit.hxx:603
void UndoActionEnd()
Definition: impedit5.cxx:255
ViewsType & GetEditViews()
Definition: impedit.hxx:849
EditSelection TransliterateText(const EditSelection &rSelection, TransliterationFlags nTransliterationMode)
Definition: impedit4.cxx:2674
bool bUseAutoColor
Definition: impedit.hxx:608
EEHorizontalTextDirection eDefaultHorizontalTextDirection
Definition: impedit.hxx:543
std::function< CallbackResult(const LineAreaInfo &)> IterateLinesAreasFunc
Definition: impedit.hxx:1207
void SetMinAutoPaperSize(const Size &rSz)
Definition: impedit.hxx:882
bool IsTextPos(const Point &rDocPos, sal_uInt16 nBorder)
Definition: impedit2.cxx:3345
bool bAddExtLeading
Definition: impedit.hxx:600
bool FinishCreateLines(ParaPortion *pParaPortion)
Definition: impedit3.cxx:1894
Timer aStatusTimer
Definition: impedit.hxx:584
CharCompressType nAsianCompressionMode
Definition: impedit.hxx:541
bool IsInUndo() const
Definition: impedit.hxx:911
void SetModifyFlag(bool b)
Definition: impedit.hxx:979
void CheckAutoPageSize()
Definition: impedit3.cxx:541
EditPaM InsertField(const EditSelection &rCurSel, const SvxFieldItem &rFld)
Definition: impedit2.cxx:3044
const Link< EditStatus &, void > & GetStatusEventHdl() const
Definition: impedit.hxx:994
void EnableUndo(bool bEnable)
Definition: impedit5.cxx:283
void SetRotation(TextRotation nRotation)
Definition: impedit3.cxx:2812
double scaleYFontValue(sal_uInt16 nYValue) const
Definition: impedit.hxx:759
void ImpAdjustBlocks(ParaPortion *pParaPortion, EditLine *pLine, tools::Long nRemainingSpace)
Definition: impedit3.cxx:2174
sal_Int32 GetLineNumberAtIndex(sal_Int32 nPara, sal_Int32 nIndex) const
Definition: impedit2.cxx:3655
void UpdateSelections()
Definition: impedit2.cxx:3709
bool mbReplaceLeadingSingleQuotationMark
Definition: impedit.hxx:613
InternalEditStatus aStatus
Definition: impedit.hxx:556
sal_Int32 GetOverflowingLineNum() const
Definition: impedit.hxx:1154
std::tuple< const ParaPortion *, const EditLine *, tools::Long > GetPortionAndLine(Point aDocPos)
Definition: impedit2.cxx:3287
void AddPortion(const EditSelection &rSel, const css::uno::Reference< css::linguistic2::XSpellAlternatives > &xAlt, svx::SpellPortions &rToFill, bool bIsField)
Definition: impedit4.cxx:1982
SfxItemPool * GetEditTextObjectPool() const
Definition: impedit.hxx:1110
void SetAttribs(EditSelection aSel, const SfxItemSet &rSet, SetAttribsMode nSpecial=SetAttribsMode::NONE, bool bSetSelection=true)
Definition: impedit5.cxx:489
tools::Long mnMinColumnWrapHeight
Definition: impedit.hxx:504
static void SetForbiddenCharsTable(const std::shared_ptr< SvxForbiddenCharactersTable > &xForbiddenChars)
Definition: impedit2.cxx:4460
const SvxLRSpaceItem & GetLRSpaceItem(ContentNode *pNode)
Definition: impedit3.cxx:4534
EditPaM WordRight(const EditPaM &rPaM, sal_Int16 nWordType=css::i18n::WordType::ANYWORD_IGNOREWHITESPACES)
Definition: impedit2.cxx:1503
double mfSpacingScaleY
Definition: impedit.hxx:538
tools::Long nCurTextHeightNTP
Definition: impedit.hxx:567
tools::Long GetColumnWidth(const Size &rPaperSize) const
Definition: impedit3.cxx:631
void FormatAndLayout(EditView *pCurView=nullptr, bool bCalledFromUndo=false)
Definition: impedit3.cxx:4412
bool IsNbspRunNext() const
Whether last AutoCorrect inserted a NO-BREAK SPACE that may need to be removed again.
Definition: impedit.hxx:1182
DECL_LINK(DocModified, LinkParamNone *, void)
Link< PasteOrDropInfos &, void > aBeginPasteOrDropHdl
Definition: impedit.hxx:593
bool ImpCheckRefMapMode()
Definition: impedit3.cxx:516
Color maBackgroundColor
Definition: impedit.hxx:533
void setYDirectionAwareFrom(Point &ptDest, const Point &ptSrc) const
Definition: impedit3.cxx:3196
void SetStyleSheetPool(SfxStyleSheetPool *pSPool)
Definition: impedit5.cxx:27
std::unique_ptr< EditTextObject > GetEmptyTextObject()
Definition: impedit4.cxx:971
void SetFixedCellHeight(bool bUseFixedCellHeight)
Definition: impedit3.cxx:2846
OUString aWordDelimiters
Definition: impedit.hxx:528
sal_Int32 GetBigTextObjectStart() const
Definition: impedit.hxx:1134
bool IsAutoColorEnabled() const
Definition: impedit.hxx:791
void AddPortionIterated(EditView const &rEditView, const EditSelection &rSel, const css::uno::Reference< css::linguistic2::XSpellAlternatives > &xAlt, svx::SpellPortions &rToFill)
Definition: impedit4.cxx:2004
const Size & GetMaxAutoPaperSize() const
Definition: impedit.hxx:884
bool bKernAsianPunctuation
Definition: impedit.hxx:599
EditEngine * pEditEngine
Definition: impedit.hxx:508
void SetEditTextObjectPool(SfxItemPool *pP)
Definition: impedit.hxx:1109
EditPaM InsertParagraph(sal_Int32 nPara)
Definition: impedit3.cxx:4381
double scaleYSpacingValue(sal_uInt16 nYValue) const
Definition: impedit.hxx:751
void FormatFullDoc()
Definition: impedit3.cxx:393
const OUString & GetAutoCompleteText() const
Definition: impedit.hxx:1141
void Write(SvStream &rOutput, EETextFormat eFormat, const EditSelection &rSel)
Definition: impedit4.cxx:177
css::uno::Reference< css::i18n::XExtendedInputSequenceChecker > const & ImplGetInputSequenceChecker() const
Definition: impedit3.cxx:4637
EditSelection CreateSel(const ESelection &rSel)
Definition: impedit.hxx:1258
void CreateAndInsertEmptyLine(ParaPortion *pParaPortion)
Definition: impedit3.cxx:1755
void GetCharAttribs(sal_Int32 nPara, std::vector< EECharAttrib > &rLst) const
Definition: impedit5.cxx:739
void SetUndoMode(bool b)
Definition: impedit.hxx:910
EditPaM ConnectContents(sal_Int32 nLeftNode, bool bBackward)
Definition: impedit3.cxx:4137
DECL_LINK(OnlineSpellHdl, Timer *, void)
std::unique_ptr< ConvInfo > pConvInfo
Definition: impedit.hxx:552
void SetMinColumnWrapHeight(tools::Long nVal)
Definition: impedit.hxx:887
bool bFormatted
Definition: impedit.hxx:602
void GetLineBoundaries(sal_Int32 &rStart, sal_Int32 &rEnd, sal_Int32 nParagraph, sal_Int32 nLine) const
Definition: impedit2.cxx:3641
void ClearOverflowingParaNum()
Definition: impedit.hxx:1155
bool IsFirstWordCapitalization() const
Definition: impedit.hxx:1174
EditPaM Read(SvStream &rInput, const OUString &rBaseURL, EETextFormat eFormat, const EditSelection &rSel, SvKeyValueIterator *pHTTPHeaderAttrs=nullptr)
Definition: impedit4.cxx:86
Range GetLineXPosStartEnd(const ParaPortion *pParaPortion, const EditLine *pLine) const
Definition: impedit2.cxx:4090
double mfSpacingScaleX
Definition: impedit.hxx:537
bool IsScriptChange(const EditPaM &rPaM) const
Definition: impedit2.cxx:1909
EditPaM ReadXML(SvStream &rInput, EditSelection aSel)
Definition: impedit4.cxx:126
void ForceAutoColor(bool b)
Definition: impedit.hxx:792
bool mbFuzzing
Definition: impedit.hxx:615
bool mbSkipOutsideFormat
Definition: impedit.hxx:614
SvxCellJustifyMethod GetJustifyMethod(sal_Int32 nPara) const
Definition: impedit2.cxx:2109
DECL_LINK(StatusTimerHdl, Timer *, void)
EditSelectionEngine & GetSelEngine()
Definition: impedit.hxx:901
EditPaM DeleteSelected(const EditSelection &rEditSelection)
Definition: impedit2.cxx:260
EditUndoManager & GetUndoManager()
Definition: impedit.hxx:1290
sal_Int32 mnColumnSpacing
Definition: impedit.hxx:580
void PutSpellingToSentenceStart(EditView const &rEditView)
Definition: impedit4.cxx:2196
void ImplUpdateOverflowingParaNum(tools::Long)
Definition: impedit3.cxx:4854
bool IsFormatted() const
Definition: impedit.hxx:916
void InitScriptTypes(sal_Int32 nPara)
Definition: impedit2.cxx:1661
bool bUpdateLayout
Definition: impedit.hxx:605
sal_Int16 mnColumns
Definition: impedit.hxx:579
void SetActiveView(EditView *pView)
Definition: impedit2.cxx:3805
EditPaM CursorVisualStartEnd(EditView const *pEditView, const EditPaM &rPaM, bool bStart)
Definition: impedit2.cxx:984
bool MouseButtonUp(const MouseEvent &rMouseEvent, EditView *pView)
Definition: impedit2.cxx:599
VclPtr< OutputDevice > pRefDev
Definition: impedit.hxx:517
bool ImpSearch(const SvxSearchItem &rSearchItem, const EditSelection &rSearchSelection, const EditPaM &rStartPos, EditSelection &rFoundSel)
Definition: impedit4.cxx:2564
SfxUndoManager * SetUndoManager(SfxUndoManager *pNew)
Definition: impedit.hxx:1300
void SetFlatMode(bool bFlat)
Definition: impedit3.cxx:4433
ConvInfo * GetConvInfo() const
Definition: impedit.hxx:1073
tools::Long getYOverflowDirectionAware(const Point &pt, const tools::Rectangle &rectMax) const
Definition: impedit3.cxx:3204
void ResetUndoManager()
Definition: impedit5.cxx:277
void ShowParagraph(sal_Int32 nParagraph, bool bShow)
Definition: impedit3.cxx:4163
css::uno::Reference< css::linguistic2::XSpellAlternatives > ImpFindNextError(EditSelection &rSelection)
Definition: impedit4.cxx:1878
OnDemandTransliterationWrapper xTransliterationWrapper
Definition: impedit.hxx:561
bool IsReplaceLeadingSingleQuotationMark() const
Definition: impedit.hxx:1179
sal_Int32 GetChar(const ParaPortion *pParaPortion, const EditLine *pLine, tools::Long nX, bool bSmart=true)
Definition: impedit2.cxx:3969
EditPaM CursorDown(const EditPaM &rPaM, EditView const *pEditView)
Definition: impedit2.cxx:1314
std::optional< EditSelection > SelectParagraph(sal_Int32 nPara)
Definition: impedit3.cxx:4401
void InitDoc(bool bKeepParaAttribs)
Definition: impedit2.cxx:230
void RecalcTextPortion(ParaPortion *pParaPortion, sal_Int32 nStartPos, sal_Int32 nNewChars)
Definition: impedit3.cxx:2665
void SetMaxAutoPaperSize(const Size &rSz)
Definition: impedit.hxx:885
static EditPaM CursorStartOfParagraph(const EditPaM &rPaM)
Definition: impedit2.cxx:1400
bool IsInSelectionMode() const
Definition: impedit.hxx:982
EditPaM DeleteLeftOrRight(const EditSelection &rEditSelection, sal_uInt8 nMode, DeleteMode nDelMode)
Definition: impedit2.cxx:2355
bool HasConvertibleTextPortion(LanguageType nLang)
Definition: impedit4.cxx:1493
void GetAllMisspellRanges(std::vector< editeng::MisspellRanges > &rRanges) const
Definition: impedit4.cxx:1362
void adjustYDirectionAware(Point &pt, tools::Long y) const
Definition: impedit3.cxx:3180
void ImpConvert(OUString &rConvTxt, LanguageType &rConvTxtLang, EditView *pEditView, LanguageType nSrcLang, const ESelection &rConvRange, bool bAllowImplicitChangesForNotConvertibleText, LanguageType nTargetLang, const vcl::Font *pTargetFont)
Definition: impedit4.cxx:1645
Link< EENotify &, void > aNotifyHdl
Definition: impedit.hxx:588
VclPtr< VirtualDevice > mpOwnDev
Definition: impedit.hxx:518
void SetRefDevice(OutputDevice *pRefDef)
Definition: impedit2.cxx:194
bool HasUndoManager() const
Definition: impedit.hxx:629
std::unique_ptr< EditUndoSetAttribs > CreateAttribUndo(EditSelection aSel, const SfxItemSet &rSet)
Definition: impedit5.cxx:178
EditPaM InsertLineBreak(const EditSelection &aEditSelection)
Definition: impedit2.cxx:3108
sal_uInt32 CalcLineWidth(ParaPortion *pPortion, EditLine *pLine, bool bIgnoreExtraSpace)
Definition: impedit2.cxx:3439
sal_Int32 mnOverflowingLine
Definition: impedit.hxx:576
EditSelection PasteText(css::uno::Reference< css::datatransfer::XTransferable > const &rxDataObj, const OUString &rBaseURL, const EditPaM &rPaM, bool bUseSpecial)
Definition: impedit2.cxx:3882
void setXDirectionAwareFrom(Point &ptDest, const Point &ptSrc) const
Definition: impedit3.cxx:3188
Link< EditView *, void > maBeginDropHdl
Definition: impedit.hxx:596
void ImplExpandCompressedPortions(EditLine *pLine, ParaPortion *pParaPortion, tools::Long nRemainingWidth)
Definition: impedit3.cxx:4805
void SetValidPaperSize(const Size &rSz)
Definition: impedit2.cxx:4433
bool bForceAutoColor
Definition: impedit.hxx:609
bool IsKernAsianPunctuation() const
Definition: impedit.hxx:1151
static bool DoVisualCursorTraveling()
Definition: impedit2.cxx:4478
sal_uInt16 nOnePixelInRef
Definition: impedit.hxx:568
ViewsType aEditViews
Definition: impedit.hxx:509
OutputDevice * GetRefDevice() const
Definition: impedit.hxx:1024
const ParaPortion * GetPrevVisPortion(const ParaPortion *pCurPortion) const
Definition: impedit3.cxx:4311
const Link< EditView *, void > & GetEndDropHdl() const
Definition: impedit.hxx:1170
css::uno::Reference< css::datatransfer::XTransferable > CreateTransferable(const EditSelection &rSelection)
Definition: impedit2.cxx:3835
EditSelection InsertTextObject(const EditTextObject &, EditPaM aPaM)
Definition: impedit4.cxx:1170
void UpdateParagraphsWithStyleSheet(SfxStyleSheet *pStyle)
Definition: impedit5.cxx:99
void setScale(double fFontScaleX, double fFontScaleY, double fSpacingScaleX, double fSpacingScaleY)
Definition: impedit3.cxx:4451
void CreateSpellInfo(bool bMultipleDocs)
Definition: impedit4.cxx:1432
void SetAllMisspellRanges(const std::vector< editeng::MisspellRanges > &rRanges)
Definition: impedit4.cxx:1379
sal_uInt32 CalcTextWidth(bool bIgnoreExtraSpace)
Definition: impedit2.cxx:3364
EditPaM AutoCorrect(const EditSelection &rCurEditSelection, sal_Unicode c, bool bOverwrite, vcl::Window const *pFrameWin=nullptr)
Definition: impedit2.cxx:2541
void SetTextRanger(std::unique_ptr< TextRanger > pRanger)
Definition: impedit3.cxx:2780
void Paint(ImpEditView *pView, const tools::Rectangle &rRect, OutputDevice *pTargetDevice)
Definition: impedit3.cxx:4064
const ViewsType & GetEditViews() const
Definition: impedit.hxx:850
tools::Long getWidthDirectionAware(const Size &sz) const
Definition: impedit3.cxx:3162
Link< EditStatus &, void > aStatusHdlLink
Definition: impedit.hxx:587
Link< MoveParagraphsInfo &, void > aEndMovingParagraphsHdl
Definition: impedit.hxx:592
void ImpRemoveParagraph(sal_Int32 nPara)
Definition: impedit2.cxx:2506
double scaleXSpacingValue(tools::Long nXValue) const
Definition: impedit.hxx:743
bool WriteItemListAsRTF(ItemList &rLst, SvStream &rOutput, sal_Int32 nPara, sal_Int32 nPos, std::vector< std::unique_ptr< SvxFontItem > > &rFontTable, SvxColorList &rColorList)
Definition: impedit4.cxx:237
EditPaM ImpDeleteSelection(const EditSelection &rCurSel)
Definition: impedit2.cxx:2446
const Color & GetBackgroundColor() const
Definition: impedit.hxx:785
VclPtr< VirtualDevice > pVirtDev
Definition: impedit.hxx:516
const svtools::ColorConfig & GetColorConfig() const
Definition: impedit.hxx:1001
EESpellState Spell(EditView *pEditView, weld::Widget *pDialogParent, bool bMultipleDoc)
Definition: impedit4.cxx:1448
TextRanger * GetTextRanger() const
Definition: impedit.hxx:879
bool IsCallParaInsertedOrDeleted() const
Definition: impedit.hxx:914
const SfxPoolItem & GetParaAttrib(sal_Int32 nPara, sal_uInt16 nWhich) const
Definition: impedit5.cxx:732
void SetSpeller(css::uno::Reference< css::linguistic2::XSpellChecker1 > const &xSpl)
Definition: impedit.hxx:1043
sal_Int32 GetSpaceBeforeAndMinLabelWidth(const ContentNode *pNode, sal_Int32 *pnSpaceBefore=nullptr, sal_Int32 *pnMinLabelWidth=nullptr) const
Definition: impedit3.cxx:4505
void SetVertical(bool bVertical)
Definition: impedit3.cxx:2797
tools::Long CalcVertLineSpacing(Point &rStartPos) const
Definition: impedit3.cxx:4333
std::unique_ptr< TextRanger > pTextRanger
Definition: impedit.hxx:511
sal_Int32 LogicToTwips(sal_Int32 n)
Definition: impedit4.cxx:3100
void IdleFormatAndLayout(EditView *pCurView)
Definition: impedit.hxx:832
EditView * GetActiveView() const
Definition: impedit.hxx:1038
void InvalidateFromParagraph(sal_Int32 nFirstInvPara)
Definition: impedit3.cxx:4255
void adjustXDirectionAware(Point &pt, tools::Long x) const
Definition: impedit3.cxx:3172
CharCompressType GetAsianCompressionMode() const
Definition: impedit.hxx:1148
ESelection CreateESel(const EditSelection &rSel) const
Definition: impedit.hxx:1246
void ApplyChangedSentence(EditView const &rEditView, const svx::SpellPortions &rNewPortions, bool bRecheck)
Definition: impedit4.cxx:2072
ContentNode * GetPrevVisNode(ContentNode const *pCurNode)
Definition: impedit3.cxx:4291
void InsertUndo(std::unique_ptr< EditUndo > pUndo, bool bTryMerge=false)
Definition: impedit5.cxx:264
EditPaM ImpConnectParagraphs(ContentNode *pLeft, ContentNode *pRight, bool bBackward=false)
Definition: impedit2.cxx:2265
void SetKernAsianPunctuation(bool b)
Definition: impedit4.cxx:3068
SfxItemPool * pTextObjectPool
Definition: impedit.hxx:514
static std::shared_ptr< SvxForbiddenCharactersTable > const & GetForbiddenCharsTable()
Definition: impedit2.cxx:4455
bool IsFormatting() const
Definition: impedit.hxx:917
tools::Rectangle PaMtoEditCursor(EditPaM aPaM, GetCursorFlags nFlags=GetCursorFlags::NONE)
Definition: impedit2.cxx:3155
void EnableSkipOutsideFormat(bool set)
Definition: impedit.hxx:1184
EditPaM ReadText(SvStream &rInput, EditSelection aSel)
Definition: impedit4.cxx:109
bool HasScriptType(sal_Int32 nPara, sal_uInt16 nType) const
Definition: impedit2.cxx:1937
EditPaM CursorVisualLeftRight(EditView const *pEditView, const EditPaM &rPaM, sal_uInt16 nCharacterIteratorMode, bool bToLeft)
Definition: impedit2.cxx:1039
void EnableAutoColor(bool b)
Definition: impedit.hxx:790
sal_Int32 mnOverflowingPara
Definition: impedit.hxx:575
void ParaAttribsChanged(ContentNode const *pNode, bool bIgnoreUndoCheck=false)
Definition: impedit2.cxx:780
InternalEditStatus & GetStatus()
Definition: impedit.hxx:1030
const Link< EENotify &, void > & GetNotifyHdl() const
Definition: impedit.hxx:997
void CreateTextPortions(ParaPortion *pParaPortion, sal_Int32 &rStartPos)
Definition: impedit3.cxx:2570
static EditPaM CursorEndOfParagraph(const EditPaM &rPaM)
Definition: impedit2.cxx:1407
double roundToNearestPt(double fInput) const
Definition: impedit4.cxx:3108
EditPaM ReadRTF(SvStream &rInput, EditSelection aSel)
Definition: impedit4.cxx:136
bool bUndoEnabled
Definition: impedit.hxx:606
EditSelection ImpMoveParagraphs(Range aParagraphs, sal_Int32 nNewPos)
Definition: impedit2.cxx:2149
void SetLanguageAndFont(const ESelection &rESel, LanguageType nLang, sal_uInt16 nLangWhichId, const vcl::Font *pFont, sal_uInt16 nFontWhichId)
Definition: impedit4.cxx:1612
void ImpRemoveChars(const EditPaM &rPaM, sal_Int32 nChars)
Definition: impedit2.cxx:2122
css::uno::Reference< css::i18n::XBreakIterator > const & ImplGetBreakIterator() const
Definition: impedit3.cxx:4627
void CheckPageOverflow()
Definition: impedit3.cxx:594
void Redo(EditView *pView)
Definition: impedit5.cxx:301
EditPaM CursorEndOfDoc()
Definition: impedit2.cxx:1420
bool SetUpdateLayout(bool bUpdate, EditView *pCurView=nullptr, bool bForceUpdate=false)
Definition: impedit3.cxx:4146
EditSelection SelectWord(const EditSelection &rCurSelection, sal_Int16 nWordType=css::i18n::WordType::ANYWORD_IGNOREWHITESPACES, bool bAcceptStartOfWord=true)
Definition: impedit2.cxx:1576
void ImpBreakLine(ParaPortion *pParaPortion, EditLine *pLine, TextPortion const *pPortion, sal_Int32 nPortionStart, tools::Long nRemainingWidth, bool bCanHyphenate)
Definition: impedit3.cxx:1906
bool IsInputSequenceCheckingRequired(sal_Unicode nChar, const EditSelection &rCurSel) const
Definition: impedit2.cxx:1631
SfxStyleSheetPool * pStylePool
Definition: impedit.hxx:513
void WriteItemAsRTF(const SfxPoolItem &rItem, SvStream &rOutput, sal_Int32 nPara, sal_Int32 nPos, std::vector< std::unique_ptr< SvxFontItem > > &rFontTable, SvxColorList &rColorList)
Definition: impedit4.cxx:658
void SetRefMapMode(const MapMode &rMapMode)
Definition: impedit2.cxx:210
void ReleaseMouse()
Definition: impedit2.cxx:649
void SetAddExtLeading(bool b)
Definition: impedit4.cxx:3081
sal_Int32 GetOverflowingParaNum() const
Definition: impedit.hxx:1153
css::uno::Reference< css::linguistic2::XHyphenator > xHyphenator
Definition: impedit.hxx:547
void SetText(const OUString &rText)
Definition: impedit2.cxx:708
SvxCellVerJustify GetVerJustification(sal_Int32 nPara) const
Definition: impedit2.cxx:2115
bool IsUpdateLayout() const
Definition: impedit.hxx:847
void SetDefaultHorizontalTextDirection(EEHorizontalTextDirection eHTextDir)
Definition: impedit.hxx:869
void InsertContent(ContentNode *pNode, sal_Int32 nPos)
Definition: impedit3.cxx:4117
sal_uInt32 CalcParaWidth(sal_Int32 nParagraph, bool bIgnoreExtraSpace)
Definition: impedit2.cxx:3384
tools::Long Calc1ColumnTextHeight(tools::Long *pHeightNTP)
Definition: impedit2.cxx:3500
bool MouseButtonDown(const MouseEvent &rMouseEvent, EditView *pView)
Definition: impedit2.cxx:300
OnDemandLocaleDataWrapper xLocaleDataWrapper
Definition: impedit.hxx:560
IdleFormattter aIdleFormatter
Definition: impedit.hxx:570
std::unique_ptr< EditTextObject > CreateTextObject()
Definition: impedit4.cxx:980
const Size & GetMinAutoPaperSize() const
Definition: impedit.hxx:881
EditDoc aEditDoc
Definition: impedit.hxx:505
EditPaM ImpInsertText(const EditSelection &aCurEditSelection, const OUString &rStr)
Definition: impedit2.cxx:2715
void TextModified()
Definition: impedit2.cxx:768
void setRoundToNearestPt(bool bRound)
Definition: impedit.hxx:775
ErrCode WriteText(SvStream &rOutput, EditSelection aSel)
Definition: impedit4.cxx:199
OUString aAutoCompleteText
Definition: impedit.hxx:554
void ParaAttribsToCharAttribs(ContentNode *pNode)
Definition: impedit5.cxx:756
static bool IsVisualCursorTravelingEnabled()
Definition: impedit2.cxx:4465
void SetEndDropHdl(const Link< EditView *, void > &rLink)
sets a link that is called at the end of a drag operation at an edit view
Definition: impedit.hxx:1169
bool IsUndoEnabled() const
Definition: impedit.hxx:909
virtual void Notify(SfxBroadcaster &rBC, const SfxHint &rHint) override
Definition: impedit5.cxx:144
tools::Rectangle aInvalidRect
Definition: impedit.hxx:565
svtools::ColorConfig maColorConfig
Definition: impedit.hxx:520
bool ImplHasText() const
Definition: impedit4.cxx:3095
void SetPaperSize(const Size &rSz)
Definition: impedit.hxx:853
EditPaM CursorUp(const EditPaM &rPaM, EditView const *pEditView)
Definition: impedit2.cxx:1270
void InitWritingDirections(sal_Int32 nPara)
Definition: impedit2.cxx:1957
EditPaM InsertText(const EditSelection &aCurEditSelection, const OUString &rStr)
Definition: impedit2.cxx:662
EditPaM EndOfWord(const EditPaM &rPaM)
Definition: impedit2.cxx:1557
bool IsModified() const
Definition: impedit.hxx:978
EditPaM InsertTextUserInput(const EditSelection &rCurEditSelection, sal_Unicode c, bool bOverwrite)
Definition: impedit2.cxx:2613
Size getTopLeftDocOffset(const tools::Rectangle &rect) const
Definition: impedit3.cxx:3239
bool IsRightToLeft(sal_Int32 nPara) const
Definition: impedit2.cxx:2006
void getSpacingScale(double &rX, double &rY) const
Definition: impedit.hxx:1128
Link< RtfImportInfo &, void > aRtfImportHdl
Definition: impedit.hxx:590
EditPaM InsertTab(const EditSelection &rEditSelection)
Definition: impedit2.cxx:3038
void SetStyleSheet(EditSelection aSel, SfxStyleSheet *pStyle)
Definition: impedit5.cxx:47
const ParaPortionList & GetParaPortions() const
Definition: impedit.hxx:827
Link< HtmlImportInfo &, void > aHtmlImportHdl
Definition: impedit.hxx:589
void CheckIdleFormatter()
Definition: impedit3.cxx:379
bool Search(const SvxSearchItem &rSearchItem, EditView *pView)
Definition: impedit4.cxx:2532
double mfFontScaleX
Definition: impedit.hxx:535
css::uno::Reference< css::i18n::XBreakIterator > xBI
Definition: impedit.hxx:549
tools::Long getHeightDirectionAware(const Size &sz) const
Definition: impedit3.cxx:3167
Timer aOnlineSpellTimer
Definition: impedit.hxx:572
void DelayedCallStatusHdl()
Definition: impedit.hxx:1032
std::shared_ptr< editeng::SharedVclResources > pSharedVCL
Definition: impedit.hxx:493
bool bCallParaInsertedOrDeleted
Definition: impedit.hxx:610
EditView * pActiveView
Definition: impedit.hxx:510
void SetDefaultLanguage(LanguageType eLang)
Definition: impedit.hxx:1055
void SetTextColumns(sal_Int16 nColumns, sal_Int32 nSpacing)
Definition: impedit3.cxx:2826
void SetStatusEventHdl(const Link< EditStatus &, void > &rLink)
Definition: impedit.hxx:993
void SetBackgroundColor(const Color &rColor)
Definition: impedit.cxx:220
tools::Long nInvMore
Definition: impedit.hxx:280
void ScrollStateChange()
Definition: impedit.cxx:1500
bool IsVertical() const
Definition: impedit.cxx:748
EditView::OutWindowSet aOutWindowSet
Definition: impedit.hxx:273
bool bReadOnly
Definition: impedit.hxx:286
bool DoInvalidateMore() const
Definition: impedit.hxx:444
void CutCopy(css::uno::Reference< css::datatransfer::clipboard::XClipboard > const &rxClipboard, bool bCut)
Definition: impedit.cxx:1916
void AddDragAndDropListeners()
Definition: impedit.cxx:2651
void DrawSelectionXOR()
Definition: impedit.hxx:395
bool IsTopToBottom() const
Definition: impedit.cxx:753
bool DoAutoSize() const
Definition: impedit.hxx:441
vcl::Cursor * GetCursor()
Definition: impedit.hxx:1353
void SelectionChanged()
Definition: impedit.cxx:315
void SuppressLOKMessages(bool bSet)
Definition: impedit.hxx:475
sal_uInt16 nCursorBidiLevel
Definition: impedit.hxx:284
void RegisterOtherShell(OutlinerViewShell *pViewShell)
Informs this edit view about which other shell listens to it.
Definition: impedit.cxx:235
EditViewCallbacks * mpEditViewCallbacks
mechanism to change from the classic refresh mode that simply
Definition: impedit.hxx:304
EditView * pEditView
Definition: impedit.hxx:264
void ShowDDCursor(const tools::Rectangle &rRect)
Definition: impedit.cxx:2166
void RecalcOutputArea()
Definition: impedit.cxx:965
ImpEditView(EditView *pView, EditEngine *pEng, vcl::Window *pWindow)
Definition: impedit.cxx:183
bool IsBulletArea(const Point &rPos, sal_Int32 *pPara)
Definition: impedit.cxx:1882
std::optional< Color > mxBackgroundColor
Definition: impedit.hxx:266
EditViewCallbacks * getEditViewCallbacks() const
Definition: impedit.hxx:310
const tools::Rectangle & GetLOKSpecialOutputArea() const
Definition: impedit.cxx:2731
void CalcAnchorPoint()
Definition: impedit.cxx:1040
tools::Rectangle ImplGetEditCursor(EditPaM &aPaM, GetCursorFlags nShowCursorFlags, sal_Int32 &nTextPortionStart, const ParaPortion *pParaPortion) const
Definition: impedit.cxx:1111
bool mbBroadcastLOKViewCursor
Definition: impedit.hxx:306
vcl::Window * GetWindow() const
Definition: impedit.hxx:403
bool IsSuppressLOKMessages() const
Definition: impedit.hxx:476
void SetLOKSpecialFlags(LOKSpecialFlags eFlags)
Definition: impedit.cxx:2754
void Paste(css::uno::Reference< css::datatransfer::clipboard::XClipboard > const &rxClipboard, bool bUseSpecial=false)
Definition: impedit.cxx:1949
EVControlBits nControl
Definition: impedit.hxx:281
OUString SpellIgnoreWord()
Definition: impedit.cxx:1788
const tools::Rectangle & GetOutputArea() const
Definition: impedit.hxx:366
void SetBroadcastLOKViewCursor(bool bSet)
Definition: impedit.hxx:326
void SetOutputArea(const tools::Rectangle &rRect)
Definition: impedit.cxx:864
bool DoAutoScroll() const
Definition: impedit.hxx:440
void InvalidateAtWindow(const tools::Rectangle &rRect)
Definition: impedit.cxx:888
bool MouseMove(const MouseEvent &rMouseEvent)
Definition: impedit.cxx:1750
void dragEnter(const css::datatransfer::dnd::DropTargetDragEnterEvent &dtdee) override
Definition: impedit.cxx:2461
bool mbSuppressLOKMessages
Definition: impedit.hxx:307
void SetNegativeX(bool bSet)
Definition: impedit.hxx:478
void drop(const css::datatransfer::dnd::DropTargetDropEvent &dtde) override
Definition: impedit.cxx:2389
void GetSelectionRectangles(EditSelection aTmpSel, std::vector< tools::Rectangle > &rLogicRects)
Definition: impedit.cxx:662
EESelectionMode eSelectionMode
Definition: impedit.hxx:293
void dragGestureRecognized(const css::datatransfer::dnd::DragGestureEvent &dge) override
Definition: impedit.cxx:2216
bool bClickedInSelection
Definition: impedit.hxx:287
void dragExit(const css::datatransfer::dnd::DropTargetEvent &dte) override
Definition: impedit.cxx:2488
EditSelection aEditSelection
Definition: impedit.hxx:294
tools::Rectangle GetVisDocArea() const
Definition: impedit.cxx:758
const SvxFieldItem * GetField(const Point &rPos, sal_Int32 *pPara, sal_Int32 *pPos) const
Definition: impedit.cxx:1845
void SetInvalidateMore(sal_uInt16 nPixel)
Definition: impedit.hxx:462
bool MouseButtonUp(const MouseEvent &rMouseEvent)
Definition: impedit.cxx:1710
Point aAnchorPoint
Definition: impedit.hxx:290
void HideDDCursor()
Definition: impedit.cxx:2155
tools::Rectangle GetEditCursor() const
Definition: impedit.cxx:1149
bool DoAutoHeight() const
Definition: impedit.hxx:443
bool MouseButtonDown(const MouseEvent &rMouseEvent)
Definition: impedit.cxx:1737
bool HasLOKSpecialPositioning() const
Definition: impedit.cxx:2749
sal_uInt16 GetCursorBidiLevel() const
Definition: impedit.hxx:357
tools::Long GetVisDocTop() const
Definition: impedit.hxx:385
void dragOver(const css::datatransfer::dnd::DropTargetDragEvent &dtde) override
Definition: impedit.cxx:2500
sal_uInt32 nTravelXPos
Definition: impedit.hxx:282
void SetSelectionMode(EESelectionMode eMode)
Definition: impedit.cxx:836
bool HasSelection() const
Definition: impedit.hxx:392
void lokSelectionCallback(const std::optional< tools::PolyPolygon > &pPolyPoly, bool bStartHandleVisible, bool bEndHandleVisible)
Definition: impedit.cxx:325
bool DoAutoWidth() const
Definition: impedit.hxx:442
void SetInsertMode(bool bInsert)
Definition: impedit.cxx:1762
css::uno::Reference< css::datatransfer::dnd::XDragSourceListener > mxDnDListener
Definition: impedit.hxx:277
std::unique_ptr< DragAndDropInfo > pDragAndDropInfo
Definition: impedit.hxx:275
EEAnchorMode GetAnchorMode() const
Definition: impedit.hxx:425
EditView * GetEditViewPtr()
Definition: impedit.hxx:352
virtual ~ImpEditView() override
Definition: impedit.cxx:212
const OutlinerViewShell * GetViewShell() const
Definition: impedit.cxx:240
void SetAnchorMode(EEAnchorMode eMode)
Definition: impedit.cxx:1034
bool IsInsertMode() const
Definition: impedit.hxx:435
std::optional< PointerStyle > mxPointer
Definition: impedit.hxx:274
tools::Long GetVisDocRight() const
Definition: impedit.hxx:386
void dragDropEnd(const css::datatransfer::dnd::DragSourceDropEvent &dsde) override
Definition: impedit.cxx:2297
const EditSelection & GetEditSelection() const
Definition: impedit.hxx:390
tools::Rectangle aOutArea
Definition: impedit.hxx:291
tools::Long GetVisDocBottom() const
Definition: impedit.hxx:387
EEAnchorMode eAnchorMode
Definition: impedit.hxx:295
std::unique_ptr< LOKSpecialPositioning > mpLOKSpecialPositioning
Definition: impedit.hxx:305
void SetLOKSpecialVisArea(const tools::Rectangle &rVisArea)
Definition: impedit.cxx:2737
Point aVisDocStartPos
Definition: impedit.hxx:292
sal_uInt16 GetScrollDiffX() const
Definition: impedit.hxx:354
VclPtr< vcl::Window > pOutWin
Definition: impedit.hxx:272
void RegisterViewShell(OutlinerViewShell *pViewShell)
Informs this edit view about which view shell contains it.
Definition: impedit.cxx:230
void SetScrollDiffX(sal_uInt16 n)
Definition: impedit.hxx:355
void CreateAnchor()
Definition: impedit.cxx:2052
PointerStyle GetPointer()
Definition: impedit.hxx:1333
sal_uInt16 GetInvalidateMore() const
Definition: impedit.hxx:463
tools::Long GetVisDocLeft() const
Definition: impedit.hxx:384
std::unique_ptr< vcl::Cursor, o3tl::default_delete< vcl::Cursor > > pCursor
Definition: impedit.hxx:265
OutlinerViewShell * mpViewShell
Containing view shell, if any.
Definition: impedit.hxx:268
css::uno::Reference< css::datatransfer::clipboard::XClipboard > GetClipboard() const
Definition: impedit.cxx:1651
bool IsInSelection(const EditPaM &rPaM)
Definition: impedit.cxx:2023
bool IsWrongSpelledWord(const EditPaM &rPaM, bool bMarkIfWrong)
Definition: impedit.cxx:1771
bool PostKeyEvent(const KeyEvent &rKeyEvent, vcl::Window const *pFrameWin)
Definition: impedit.cxx:1661
void DeleteSelected()
Definition: impedit.cxx:1827
void ShowCursor(bool bGotoCursor, bool bForceVisCursor)
Definition: impedit.cxx:1174
sal_uInt16 nScrollDiffX
Definition: impedit.hxx:285
Point GetWindowPos(const Point &rDocPos) const
Definition: impedit.cxx:790
bool SetCursorAtPoint(const Point &rPointPixel)
Definition: impedit.cxx:2102
Point GetDocPos(const Point &rWindowPos) const
Definition: impedit.cxx:763
OutlinerViewShell * mpOtherShell
Another shell, just listening to our state, if any.
Definition: impedit.hxx:270
void setEditViewCallbacks(EditViewCallbacks *pEditViewCallbacks)
Definition: impedit.hxx:317
void ImplDrawHighlightRect(OutputDevice &rTarget, const Point &rDocPosTopLeft, const Point &rDocPosBottomRight, tools::PolyPolygon *pPolyPoly, bool bLOKCalcRTL)
Definition: impedit.cxx:669
void SetVisDocStartPos(const Point &rPos)
Definition: impedit.hxx:382
bool IsSelectionAtPoint(const Point &rPosPixel)
Definition: impedit.cxx:2083
bool IsPasteEnabled() const
Definition: impedit.hxx:437
bool Command(const CommandEvent &rCEvt)
Definition: impedit.cxx:1755
OutputDevice & GetOutputDevice() const
Definition: impedit.cxx:846
void DeselectAll()
Definition: impedit.cxx:2061
void SetLOKSpecialOutputArea(const tools::Rectangle &rOutputArea)
Definition: impedit.cxx:2725
const Color & GetBackgroundColor() const
Definition: impedit.cxx:225
void InitLOKSpecialPositioning(MapUnit eUnit, const tools::Rectangle &rOutputArea, const Point &rVisDocStartPos)
Definition: impedit.cxx:2715
void SetEditSelection(const EditSelection &rEditSelection)
Definition: impedit.cxx:245
GetCursorFlags nExtraCursorFlags
Definition: impedit.hxx:283
bool bActiveDragAndDropListener
Definition: impedit.hxx:288
bool mbNegativeX
Definition: impedit.hxx:308
weld::Widget * GetPopupParent(tools::Rectangle &rRect) const
Definition: impedit.cxx:853
void ReleaseMouse()
Definition: impedit.cxx:1732
bool IsNegativeX() const
Definition: impedit.hxx:479
void SetCursorBidiLevel(sal_uInt16 n)
Definition: impedit.hxx:358
bool DoSingleLinePaste() const
Definition: impedit.hxx:439
EditEngine * pEditEngine
Definition: impedit.hxx:271
void RemoveDragAndDropListeners()
Definition: impedit.cxx:2682
void ResetOutputArea(const tools::Rectangle &rRect)
Definition: impedit.cxx:905
Pair Scroll(tools::Long ndX, tools::Long ndY, ScrollRangeCheck nRangeCheck=ScrollRangeCheck::NoNegative)
Definition: impedit.cxx:1506
tools::Rectangle GetLOKSpecialVisArea() const
Definition: impedit.cxx:2743
bool DoStretch() const
Definition: editstt2.hxx:64
This is meant just for Calc, where all positions in logical units (twips for LOK) are computed by doi...
Definition: impedit.hxx:213
tools::Rectangle maOutArea
Definition: impedit.hxx:246
void SetOutputArea(const tools::Rectangle &rOutputArea)
Definition: impedit.cxx:85
LOKSpecialPositioning(const ImpEditView &rImpEditView, MapUnit eUnit, const tools::Rectangle &rOutputArea, const Point &rVisDocStartPos)
Definition: impedit.cxx:67
LOKSpecialFlags meFlags
Definition: impedit.hxx:249
bool IsTopToBottom() const
Definition: impedit.cxx:110
const ImpEditView & mrImpEditView
Definition: impedit.hxx:245
tools::Long GetVisDocBottom() const
Definition: impedit.hxx:230
tools::Long GetVisDocRight() const
Definition: impedit.hxx:229
Point GetRefPoint() const
Definition: impedit.cxx:176
tools::Rectangle GetVisDocArea() const
Definition: impedit.cxx:100
Point GetWindowPos(const Point &rDocPos, MapUnit eDocPosUnit) const
Definition: impedit.cxx:115
tools::Long GetVisDocTop() const
Definition: impedit.hxx:228
const tools::Rectangle & GetOutputArea() const
Definition: impedit.cxx:90
void ReInit(MapUnit eUnit, const tools::Rectangle &rOutputArea, const Point &rVisDocStartPos)
Definition: impedit.cxx:78
tools::Long GetVisDocLeft() const
Definition: impedit.hxx:227
void SetFlags(LOKSpecialFlags eFlags)
Definition: impedit.hxx:236
Point convertUnit(const Point &rPos, MapUnit ePosUnit) const
Definition: impedit.cxx:160
void SetVisDocStartPos(const Point &rVisDocStartPos)
Definition: impedit.cxx:95
bool IsVertical() const
Definition: impedit.cxx:105
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.
Definition: outliner.hxx:372
constexpr tools::Long Y() const
constexpr tools::Long X() const
This item stores a field (SvxFieldData).
Definition: flditem.hxx:70
void Stop()
virtual void Start(bool bStartTimer=true) override
void disposeAndClear()
reference_type * get() const
static VclPtr< reference_type > Create(Arg &&... arg)
constexpr tools::Long GetWidth() const
constexpr tools::Long GetHeight() const
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)
ExtTextInputAttr
#define DBG_ASSERT(sCon, aError)
aCursorMoveIdle Stop()
EETextFormat
Definition: editdata.hxx:35
EESpellState
Definition: editdata.hxx:40
EERemoveParaAttribsMode
Definition: editdata.hxx:46
EEAnchorMode
Definition: editdata.hxx:41
EEHorizontalTextDirection
Definition: editdata.hxx:36
EESelectionMode
Definition: editdata.hxx:37
std::vector< Color > SvxColorList
Definition: editdoc.hxx:131
AsianCompressionFlags
Definition: editdoc.hxx:339
DeleteMode
Definition: editdoc.hxx:335
TextRotation
Definition: editobj.hxx:55
EVControlBits
Definition: editstat.hxx:61
LOKSpecialFlags
Definition: editview.hxx:89
ScrollRangeCheck
Definition: editview.hxx:84
std::vector< EditSelection > SpellContentSelections
Definition: impedit.hxx:154
AsianCompressionFlags GetCharTypeForCompression(sal_Unicode cChar)
Definition: impedit3.cxx:117
void ConvertAndPutItems(SfxItemSet &rDest, const SfxItemSet &rSource, const MapUnit *pSourceUnit=nullptr, const MapUnit *pDestUnit=nullptr)
Definition: editdoc.cxx:888
void ConvertItem(std::unique_ptr< SfxPoolItem > &rPoolItem, MapUnit eSourceUnit, MapUnit eDestUnit)
Definition: editdoc.cxx:823
GetCursorFlags
Definition: impedit.hxx:93
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...
sal_Int64 n
SvtScriptType
sal_uInt16 nPos
MapUnit
NONE
void set(css::uno::UnoInterfaceReference const &value)
std::vector< SpellPortion > SpellPortions
Definition: outliner.hxx:87
long Long
PointerStyle
#define nPixel
EPaM aConvStart
Definition: impedit.hxx:173
bool bConvToEnd
Definition: impedit.hxx:176
ConvInfo()
Definition: impedit.hxx:179
EPaM aConvTo
Definition: impedit.hxx:174
bool bMultipleDoc
Definition: impedit.hxx:177
EPaM aConvContinue
Definition: impedit.hxx:175
ESelection aBeginDragSel
Definition: impedit.hxx:111
EditPaM aDropDest
Definition: impedit.hxx:112
bool bHasValidData
Definition: impedit.hxx:120
VclPtr< VirtualDevice > pBackground
Definition: impedit.hxx:115
tools::Rectangle aCurSavedCursor
Definition: impedit.hxx:108
bool bOutlinerMode
Definition: impedit.hxx:122
sal_uInt16 nCursorWidth
Definition: impedit.hxx:110
sal_uInt16 nSensibleRange
Definition: impedit.hxx:109
const SvxFieldItem * pField
Definition: impedit.hxx:116
bool bDragAccepted
Definition: impedit.hxx:123
ESelection aDropSel
Definition: impedit.hxx:114
tools::Rectangle aCurCursor
Definition: impedit.hxx:107
sal_Int32 nOutlinerDropDest
Definition: impedit.hxx:113
Definition: editdoc.hxx:56
sal_Int32 nIndex
Definition: editdoc.hxx:58
sal_Int32 nPara
Definition: editdoc.hxx:57
sal_Int32 nStartPara
Definition: editdata.hxx:113
sal_Int32 nEndPos
Definition: editdata.hxx:116
sal_Int32 nStartPos
Definition: editdata.hxx:114
sal_Int32 nEndPara
Definition: editdata.hxx:115
sal_uInt16 nMaxAscent
Definition: impedit.hxx:184
sal_uInt16 GetHeight() const
Definition: impedit.hxx:188
sal_uInt16 nMaxDescent
Definition: impedit.hxx:185
tools::Rectangle aArea
Definition: impedit.hxx:1201
tools::Long nHeightNeededToNotWrap
Definition: impedit.hxx:1200
OUString aOldTextAfterStartPos
Definition: impedit.hxx:139
bool bWasCursorOverwrite
Definition: impedit.hxx:143
sal_Int32 nLen
Definition: impedit.hxx:142
std::unique_ptr< ExtTextInputAttr[]> pAttribs
Definition: impedit.hxx:140
ImplIMEInfos(const EditPaM &rPos, OUString aOldTextAfterStartPos)
Definition: impedit5.cxx:820
void DestroyAttribs()
Definition: impedit5.cxx:839
EditPaM aPos
Definition: impedit.hxx:141
void CopyAttribs(const ExtTextInputAttr *pA, sal_uInt16 nL)
Definition: impedit5.cxx:832
bool bMultipleDoc
Definition: impedit.hxx:165
EPaM aSpellTo
Definition: impedit.hxx:163
EPaM aSpellStart
Definition: impedit.hxx:162
SpellContentSelections aLastSpellContentSelections
Definition: impedit.hxx:160
bool bSpellToEnd
Definition: impedit.hxx:164
EESpellState eState
Definition: impedit.hxx:161
EditPaM aCurSentenceStart
Definition: impedit.hxx:158
svx::SpellPortions aLastSpellPortions
Definition: impedit.hxx:159
SvxCellJustifyMethod
Definition: svxenum.hxx:110
SvxCellVerJustify
Definition: svxenum.hxx:116
SvxAdjust
Definition: svxenum.hxx:77
TransliterationFlags
unsigned char sal_uInt8
sal_uInt16 sal_Unicode
Count