1 // Scintilla source code edit control
2 /** @file ContractionState.h
3 ** Manages visibility of lines for folding and wrapping.
5 // Copyright 1998-2007 by Neil Hodgson <neilh@scintilla.org>
6 // The License.txt file describes the conditions under which this software may be distributed.
8 #ifndef CONTRACTIONSTATE_H
9 #define CONTRACTIONSTATE_H
20 class ContractionState
{
21 // These contain 1 element for every document line.
25 SparseVector
<const char *> *foldDisplayTexts
;
26 Partitioning
*displayLines
;
31 bool OneToOne() const {
32 // True when each document line is exactly one display line so need for
33 // complex data structures.
39 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
);
56 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
);