Update Scintilla to version 3.5.7
[TortoiseGit.git] / ext / scintilla / src / EditModel.h
blobbde14c03c8c453c13be3459b31d8842db566538c
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 ContractionState cs;
49 // Hotspot support
50 Range hotspot;
51 int hoverIndicatorPos;
53 // Wrapping support
54 int wrapWidth;
56 Document *pdoc;
58 EditModel();
59 virtual ~EditModel();
60 virtual int TopLineOfMain() const = 0;
61 virtual Point GetVisibleOriginInMain() const = 0;
62 virtual int LinesOnScreen() const = 0;
63 virtual Range GetHotSpotRange() const = 0;
66 #ifdef SCI_NAMESPACE
68 #endif
70 #endif