diff options
Diffstat (limited to 'src/ContractionState.h')
-rw-r--r-- | src/ContractionState.h | 74 |
1 files changed, 25 insertions, 49 deletions
diff --git a/src/ContractionState.h b/src/ContractionState.h index eb141ea33..a951e0a0c 100644 --- a/src/ContractionState.h +++ b/src/ContractionState.h @@ -10,67 +10,43 @@ namespace Scintilla { -template<class T> -class SparseVector; - /** - */ -class ContractionState { - // These contain 1 element for every document line. - std::unique_ptr<RunStyles<Sci::Line, char>> visible; - std::unique_ptr<RunStyles<Sci::Line, char>> expanded; - std::unique_ptr<RunStyles<Sci::Line, int>> heights; - std::unique_ptr<SparseVector<UniqueString>> foldDisplayTexts; - std::unique_ptr<Partitioning<Sci::Line>> displayLines; - Sci::Line linesInDocument; - - void EnsureData(); - - bool OneToOne() const { - // True when each document line is exactly one display line so need for - // complex data structures. - return visible == nullptr; - } - +*/ +class IContractionState { public: - ContractionState(); - // Deleted so ContractionState objects can not be copied. - ContractionState(const ContractionState &) = delete; - void operator=(const ContractionState &) = delete; - virtual ~ContractionState(); + virtual ~IContractionState() {}; - void Clear(); + virtual void Clear()=0; - Sci::Line LinesInDoc() const; - Sci::Line LinesDisplayed() const; - Sci::Line DisplayFromDoc(Sci::Line lineDoc) const; - Sci::Line DisplayLastFromDoc(Sci::Line lineDoc) const; - Sci::Line DocFromDisplay(Sci::Line lineDisplay) const; + virtual Sci::Line LinesInDoc() const=0; + virtual Sci::Line LinesDisplayed() const=0; + virtual Sci::Line DisplayFromDoc(Sci::Line lineDoc) const=0; + virtual Sci::Line DisplayLastFromDoc(Sci::Line lineDoc) const=0; + virtual Sci::Line DocFromDisplay(Sci::Line lineDisplay) const=0; - void InsertLine(Sci::Line lineDoc); - void InsertLines(Sci::Line lineDoc, Sci::Line lineCount); - void DeleteLine(Sci::Line lineDoc); - void DeleteLines(Sci::Line lineDoc, Sci::Line lineCount); + virtual void InsertLines(Sci::Line lineDoc, Sci::Line lineCount)=0; + virtual void DeleteLines(Sci::Line lineDoc, Sci::Line lineCount)=0; - bool GetVisible(Sci::Line lineDoc) const; - bool SetVisible(Sci::Line lineDocStart, Sci::Line lineDocEnd, bool isVisible); - bool HiddenLines() const; + virtual bool GetVisible(Sci::Line lineDoc) const=0; + virtual bool SetVisible(Sci::Line lineDocStart, Sci::Line lineDocEnd, bool isVisible)=0; + virtual bool HiddenLines() const=0; - const char *GetFoldDisplayText(Sci::Line lineDoc) const; - bool SetFoldDisplayText(Sci::Line lineDoc, const char *text); + virtual const char *GetFoldDisplayText(Sci::Line lineDoc) const=0; + virtual bool GetFoldDisplayTextShown(Sci::Line lineDoc) const=0; + virtual bool SetFoldDisplayText(Sci::Line lineDoc, const char *text)=0; - bool GetExpanded(Sci::Line lineDoc) const; - bool SetExpanded(Sci::Line lineDoc, bool isExpanded); - bool GetFoldDisplayTextShown(Sci::Line lineDoc) const; - Sci::Line ContractedNext(Sci::Line lineDocStart) const; + virtual bool GetExpanded(Sci::Line lineDoc) const=0; + virtual bool SetExpanded(Sci::Line lineDoc, bool isExpanded)=0; + virtual Sci::Line ContractedNext(Sci::Line lineDocStart) const=0; - int GetHeight(Sci::Line lineDoc) const; - bool SetHeight(Sci::Line lineDoc, int height); + virtual int GetHeight(Sci::Line lineDoc) const=0; + virtual bool SetHeight(Sci::Line lineDoc, int height)=0; - void ShowAll(); - void Check() const; + virtual void ShowAll()=0; }; +std::unique_ptr<IContractionState> ContractionStateCreate(); + } #endif |