diff options
| author | Neil <nyamatongwe@gmail.com> | 2018-03-27 13:51:21 +1100 | 
|---|---|---|
| committer | Neil <nyamatongwe@gmail.com> | 2018-03-27 13:51:21 +1100 | 
| commit | fb9f493960b075b034b18d61036d36f384f2e3f8 (patch) | |
| tree | d30067e494888c0fc76f78b7d3f7bb78c9ffc15a /src/ContractionState.h | |
| parent | ccfaed3e4d322b1aebedbe5e42f315434af94459 (diff) | |
| download | scintilla-mirror-fb9f493960b075b034b18d61036d36f384f2e3f8.tar.gz | |
Use an interface for ContractionState so that there can be different
implementations of that interface.
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  | 
