1 // Scintilla source code edit control 2 /** @file EditModel.cxx 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. 7 8 #include <cstddef> 9 #include <cstdlib> 10 #include <cassert> 11 #include <cstring> 12 #include <cmath> 13 14 #include <stdexcept> 15 #include <string> 16 #include <vector> 17 #include <map> 18 #include <algorithm> 19 #include <memory> 20 21 #include "Platform.h" 22 23 #include "ILoader.h" 24 #include "ILexer.h" 25 #include "Scintilla.h" 26 27 #include "Position.h" 28 #include "UniqueString.h" 29 #include "SplitVector.h" 30 #include "Partitioning.h" 31 #include "RunStyles.h" 32 #include "ContractionState.h" 33 #include "CellBuffer.h" 34 #include "KeyMap.h" 35 #include "Indicator.h" 36 #include "LineMarker.h" 37 #include "Style.h" 38 #include "ViewStyle.h" 39 #include "CharClassify.h" 40 #include "Decoration.h" 41 #include "CaseFolder.h" 42 #include "Document.h" 43 #include "UniConversion.h" 44 #include "Selection.h" 45 #include "PositionCache.h" 46 #include "EditModel.h" 47 48 using namespace Scintilla; 49 Caret()50Caret::Caret() : 51 active(false), on(false), period(500) {} 52 EditModel()53EditModel::EditModel() : braces{} { 54 inOverstrike = false; 55 xOffset = 0; 56 trackLineWidth = false; 57 posDrag = SelectionPosition(Sci::invalidPosition); 58 braces[0] = Sci::invalidPosition; 59 braces[1] = Sci::invalidPosition; 60 bracesMatchStyle = STYLE_BRACEBAD; 61 highlightGuideColumn = 0; 62 primarySelection = true; 63 imeInteraction = imeWindowed; 64 foldFlags = 0; 65 foldDisplayTextStyle = SC_FOLDDISPLAYTEXT_HIDDEN; 66 hotspot = Range(Sci::invalidPosition); 67 hoverIndicatorPos = Sci::invalidPosition; 68 wrapWidth = LineLayout::wrapWidthInfinite; 69 pdoc = new Document(SC_DOCUMENTOPTION_DEFAULT); 70 pdoc->AddRef(); 71 pcs = ContractionStateCreate(pdoc->IsLarge()); 72 } 73 ~EditModel()74EditModel::~EditModel() { 75 pdoc->Release(); 76 pdoc = nullptr; 77 } 78