diff options
| author | nyamatongwe <unknown> | 2009-04-12 09:38:49 +0000 | 
|---|---|---|
| committer | nyamatongwe <unknown> | 2009-04-12 09:38:49 +0000 | 
| commit | a325c68ec68dcc879929db0299f633acf34ab899 (patch) | |
| tree | 475529c087e0be637c421b667eea4fc2dd71802c /src/CellBuffer.h | |
| parent | 01355323d119b4c7b74d11f5012099813afa3031 (diff) | |
| download | scintilla-mirror-a325c68ec68dcc879929db0299f633acf34ab899.tar.gz | |
Updated for new way of handling per-line data.
Diffstat (limited to 'src/CellBuffer.h')
| -rw-r--r-- | src/CellBuffer.h | 70 | 
1 files changed, 17 insertions, 53 deletions
| diff --git a/src/CellBuffer.h b/src/CellBuffer.h index 6cf8ad056..395f75f0e 100644 --- a/src/CellBuffer.h +++ b/src/CellBuffer.h @@ -12,33 +12,12 @@  namespace Scintilla {  #endif -/** - * This holds the marker identifier and the marker type to display. - * MarkerHandleNumbers are members of lists. - */ -struct MarkerHandleNumber { -	int handle; -	int number; -	MarkerHandleNumber *next; -}; - -/** - * A marker handle set contains any number of MarkerHandleNumbers. - */ -class MarkerHandleSet { -	MarkerHandleNumber *root; - +// Interface to per-line data that wants to see each line insertion and deletion +class PerLine {  public: -	MarkerHandleSet(); -	~MarkerHandleSet(); -	int Length() const; -	int NumberFromHandle(int handle) const; -	int MarkValue() const;	///< Bit set of marker numbers. -	bool Contains(int handle) const; -	bool InsertHandle(int handle, int markerNum); -	void RemoveHandle(int handle); -	bool RemoveNumber(int markerNum); -	void CombineWith(MarkerHandleSet *other); +	virtual ~PerLine() {} +	virtual void InsertLine(int)=0; +	virtual void RemoveLine(int)=0;  };  /** @@ -47,21 +26,14 @@ public:  class LineVector {  	Partitioning starts; -	SplitVector<MarkerHandleSet *> markers; -	SplitVector<int> levels; -	/// Handles are allocated sequentially and should never have to be reused as 32 bit ints are very big. -	int handleCurrent; +	PerLine *perLine;  public:  	LineVector();  	~LineVector();  	void Init(); - -	void ExpandLevels(int sizeNew=-1); -	void ClearLevels(); -	int SetLevel(int line, int level); -	int GetLevel(int line); +	void SetPerLine(PerLine *pl);  	void InsertText(int line, int delta);  	void InsertLine(int line, int position); @@ -81,6 +53,15 @@ public:  	void DeleteMark(int line, int markerNum, bool all);  	void DeleteMarkFromHandle(int markerHandle);  	int LineFromHandle(int markerHandle); + +	void ClearLevels(); +	int SetLevel(int line, int level); +	int GetLevel(int line); + +	int SetLineState(int line, int state); +	int GetLineState(int line); +	int GetMaxLineState(); +  };  enum actionType { insertAction, removeAction, startAction, containerAction }; @@ -160,8 +141,6 @@ private:  	LineVector lv; -	SplitVector<int> lineStates; -  public:  	CellBuffer(); @@ -175,6 +154,7 @@ public:  	int Length() const;  	void Allocate(int newSize); +	void SetPerLine(PerLine *pl);  	int Lines() const;  	int LineStart(int line) const;  	int LineFromPosition(int pos) { return lv.LineFromPosition(pos); } @@ -197,14 +177,6 @@ public:  	void SetSavePoint();  	bool IsSavePoint(); -	/// Line marker functions -	int AddMark(int line, int markerNum); -	void DeleteMark(int line, int markerNum); -	void DeleteMarkFromHandle(int markerHandle); -	int GetMark(int line); -	void DeleteAllMarks(int markerNum); -	int LineFromHandle(int markerHandle); -  	/// Actions without undo  	void BasicInsertString(int position, const char *s, int insertLength);  	void BasicDeleteChars(int position, int deleteLength); @@ -226,14 +198,6 @@ public:  	int StartRedo();  	const Action &GetRedoStep() const;  	void PerformRedoStep(); - -	int SetLineState(int line, int state); -	int GetLineState(int line); -	int GetMaxLineState(); - -	int SetLevel(int line, int level); -	int GetLevel(int line); -	void ClearLevels();  };  #ifdef SCI_NAMESPACE | 
