Update Scintilla to version 3.7.1
[TortoiseGit.git] / ext / scintilla / src / EditModel.h
blobf292f05f36660f41ef419c7b76a596de01a1a385
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 #ifdef SCI_NAMESPACE
12 namespace Scintilla {
13 #endif
15 /**
17 class Caret {
18 public:
19 bool active;
20 bool on;
21 int period;
23 Caret();
26 class EditModel {
27 // Private so EditModel objects can not be copied
28 explicit EditModel(const EditModel &);
29 EditModel &operator=(const EditModel &);
31 public:
32 bool inOverstrike;
33 int xOffset; ///< Horizontal scrolled amount in pixels
34 bool trackLineWidth;
36 SpecialRepresentations reprs;
37 Caret caret;
38 SelectionPosition posDrag;
39 Position braces[2];
40 int bracesMatchStyle;
41 int highlightGuideColumn;
42 Selection sel;
43 bool primarySelection;
45 enum IMEInteraction { imeWindowed, imeInline } imeInteraction;
47 int foldFlags;
48 int foldDisplayTextStyle;
49 ContractionState cs;
50 // Hotspot support
51 Range hotspot;
52 int hoverIndicatorPos;
54 // Wrapping support
55 int wrapWidth;
57 Document *pdoc;
59 EditModel();
60 virtual ~EditModel();
61 virtual int TopLineOfMain() const = 0;
62 virtual Point GetVisibleOriginInMain() const = 0;
63 virtual int LinesOnScreen() const = 0;
64 virtual Range GetHotSpotRange() const = 0;
67 #ifdef SCI_NAMESPACE
69 #endif
71 #endif