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 <[email protected]> 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 { 12 13 /** 14 */ 15 class IContractionState { 16 public: ~IContractionState()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