20
20
class ContractionState {
21
21
// These contain 1 element for every document line.
25
SparseVector<const char *> *foldDisplayTexts;
26
Partitioning *displayLines;
22
std::unique_ptr<RunStyles> visible;
23
std::unique_ptr<RunStyles> expanded;
24
std::unique_ptr<RunStyles> heights;
25
std::unique_ptr<SparseVector<UniqueString>> foldDisplayTexts;
26
std::unique_ptr<Partitioning> displayLines;
27
Sci::Line linesInDocument;
31
31
bool OneToOne() const {
32
32
// True when each document line is exactly one display line so need for
33
33
// complex data structures.
34
return visible == nullptr;
38
38
ContractionState();
39
// Deleted so ContractionState objects can not be copied.
40
ContractionState(const ContractionState &) = delete;
41
void operator=(const ContractionState &) = delete;
39
42
virtual ~ContractionState();
43
int LinesInDoc() const;
44
int LinesDisplayed() const;
45
int DisplayFromDoc(int lineDoc) const;
46
int DisplayLastFromDoc(int lineDoc) const;
47
int DocFromDisplay(int lineDisplay) const;
49
void InsertLine(int lineDoc);
50
void InsertLines(int lineDoc, int lineCount);
51
void DeleteLine(int lineDoc);
52
void DeleteLines(int lineDoc, int lineCount);
54
bool GetVisible(int lineDoc) const;
55
bool SetVisible(int lineDocStart, int lineDocEnd, bool isVisible);
46
Sci::Line LinesInDoc() const;
47
Sci::Line LinesDisplayed() const;
48
Sci::Line DisplayFromDoc(Sci::Line lineDoc) const;
49
Sci::Line DisplayLastFromDoc(Sci::Line lineDoc) const;
50
Sci::Line DocFromDisplay(Sci::Line lineDisplay) const;
52
void InsertLine(Sci::Line lineDoc);
53
void InsertLines(Sci::Line lineDoc, Sci::Line lineCount);
54
void DeleteLine(Sci::Line lineDoc);
55
void DeleteLines(Sci::Line lineDoc, Sci::Line lineCount);
57
bool GetVisible(Sci::Line lineDoc) const;
58
bool SetVisible(Sci::Line lineDocStart, Sci::Line lineDocEnd, bool isVisible);
56
59
bool HiddenLines() const;
58
const char *GetFoldDisplayText(int lineDoc) const;
59
bool SetFoldDisplayText(int lineDoc, const char *text);
61
bool GetExpanded(int lineDoc) const;
62
bool SetExpanded(int lineDoc, bool isExpanded);
63
bool GetFoldDisplayTextShown(int lineDoc) const;
64
int ContractedNext(int lineDocStart) const;
66
int GetHeight(int lineDoc) const;
67
bool SetHeight(int lineDoc, int height);
61
const char *GetFoldDisplayText(Sci::Line lineDoc) const;
62
bool SetFoldDisplayText(Sci::Line lineDoc, const char *text);
64
bool GetExpanded(Sci::Line lineDoc) const;
65
bool SetExpanded(Sci::Line lineDoc, bool isExpanded);
66
bool GetFoldDisplayTextShown(Sci::Line lineDoc) const;
67
Sci::Line ContractedNext(Sci::Line lineDocStart) const;
69
int GetHeight(Sci::Line lineDoc) const;
70
bool SetHeight(Sci::Line lineDoc, int height);
70
73
void Check() const;