1 | // Scintilla source code edit control |
2 | /** @file ContractionState.h |
3 | ** Manages visibility of lines for folding and wrapping. |
4 | **/ |
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. |
7 | |
8 | #ifndef CONTRACTIONSTATE_H |
9 | #define CONTRACTIONSTATE_H |
10 | |
11 | namespace Scintilla::Internal { |
12 | |
13 | /** |
14 | */ |
15 | class IContractionState { |
16 | public: |
17 | virtual ~IContractionState() {}; |
18 | |
19 | virtual void Clear()=0; |
20 | |
21 | virtual Sci::Line LinesInDoc() const noexcept=0; |
22 | virtual Sci::Line LinesDisplayed() const noexcept=0; |
23 | virtual Sci::Line DisplayFromDoc(Sci::Line lineDoc) const noexcept=0; |
24 | virtual Sci::Line DisplayLastFromDoc(Sci::Line lineDoc) const noexcept=0; |
25 | virtual Sci::Line DocFromDisplay(Sci::Line lineDisplay) const noexcept=0; |
26 | |
27 | virtual void InsertLines(Sci::Line lineDoc, Sci::Line lineCount)=0; |
28 | virtual void DeleteLines(Sci::Line lineDoc, Sci::Line lineCount)=0; |
29 | |
30 | virtual bool GetVisible(Sci::Line lineDoc) const noexcept=0; |
31 | virtual bool SetVisible(Sci::Line lineDocStart, Sci::Line lineDocEnd, bool isVisible)=0; |
32 | virtual bool HiddenLines() const noexcept=0; |
33 | |
34 | virtual const char *GetFoldDisplayText(Sci::Line lineDoc) const noexcept=0; |
35 | virtual bool SetFoldDisplayText(Sci::Line lineDoc, const char *text)=0; |
36 | |
37 | virtual bool GetExpanded(Sci::Line lineDoc) const noexcept=0; |
38 | virtual bool SetExpanded(Sci::Line lineDoc, bool isExpanded)=0; |
39 | virtual Sci::Line ContractedNext(Sci::Line lineDocStart) const noexcept =0; |
40 | |
41 | virtual int GetHeight(Sci::Line lineDoc) const noexcept=0; |
42 | virtual bool SetHeight(Sci::Line lineDoc, int height)=0; |
43 | |
44 | virtual void ShowAll() noexcept=0; |
45 | }; |
46 | |
47 | std::unique_ptr<IContractionState> ContractionStateCreate(bool largeDocument); |
48 | |
49 | } |
50 | |
51 | #endif |
52 | |