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