1 // Scintilla source code edit control
3 ** Defines the editor state that must be visible to EditorView.
5 // Copyright 1998-2014 by Neil Hodgson <neilh@scintilla.org>
6 // The License.txt file describes the conditions under which this software may be distributed.
11 namespace Scintilla::Internal
{
27 int xOffset
; ///< Horizontal scrolled amount in pixels
30 SpecialRepresentations reprs
;
32 SelectionPosition posDrag
;
33 Sci::Position braces
[2];
35 int highlightGuideColumn
;
38 bool primarySelection
;
40 Scintilla::IMEInteraction imeInteraction
;
41 Scintilla::Bidirectional bidirectional
;
43 Scintilla::FoldFlag foldFlags
;
44 Scintilla::FoldDisplayTextStyle foldDisplayTextStyle
;
45 UniqueString defaultFoldDisplayText
;
46 std::unique_ptr
<IContractionState
> pcs
;
49 bool hotspotSingleLine
;
50 Sci::Position hoverIndicatorPos
;
52 Scintilla::ChangeHistoryOption changeHistoryOption
= Scintilla::ChangeHistoryOption::Disabled
;
60 // Deleted so EditModel objects can not be copied.
61 EditModel(const EditModel
&) = delete;
62 EditModel(EditModel
&&) = delete;
63 EditModel
&operator=(const EditModel
&) = delete;
64 EditModel
&operator=(EditModel
&&) = delete;
66 virtual Sci::Line
TopLineOfMain() const noexcept
= 0;
67 virtual Point
GetVisibleOriginInMain() const = 0;
68 virtual Sci::Line
LinesOnScreen() const = 0;
69 bool BidirectionalEnabled() const noexcept
;
70 bool BidirectionalR2L() const noexcept
;
71 SurfaceMode
CurrentSurfaceMode() const noexcept
;
72 void SetDefaultFoldDisplayText(const char *text
);
73 const char *GetDefaultFoldDisplayText() const noexcept
;
74 const char *GetFoldDisplayText(Sci::Line lineDoc
) const noexcept
;
75 InSelection
LineEndInSelection(Sci::Line lineDoc
) const;
76 [[nodiscard
]] int GetMark(Sci::Line line
) const;