Update Russian translation (#3918)
[geany-mirror.git] / scintilla / src / EditModel.h
blobf62c28b1faafb515ad775a31ec7f9864d286e59d
1 // Scintilla source code edit control
2 /** @file EditModel.h
3 ** Defines the editor state that must be visible to EditorView.
4 **/
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.
8 #ifndef EDITMODEL_H
9 #define EDITMODEL_H
11 namespace Scintilla::Internal {
13 /**
15 class Caret {
16 public:
17 bool active;
18 bool on;
19 int period;
21 Caret() noexcept;
24 class EditModel {
25 public:
26 bool inOverstrike;
27 int xOffset; ///< Horizontal scrolled amount in pixels
28 bool trackLineWidth;
30 SpecialRepresentations reprs;
31 Caret caret;
32 SelectionPosition posDrag;
33 Sci::Position braces[2];
34 int bracesMatchStyle;
35 int highlightGuideColumn;
36 bool hasFocus;
37 Selection sel;
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;
47 // Hotspot support
48 Range hotspot;
49 bool hotspotSingleLine;
50 Sci::Position hoverIndicatorPos;
52 Scintilla::ChangeHistoryOption changeHistoryOption = Scintilla::ChangeHistoryOption::Disabled;
54 // Wrapping support
55 int wrapWidth;
57 Document *pdoc;
59 EditModel();
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;
65 virtual ~EditModel();
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;
81 #endif