diff options
| -rw-r--r-- | include/Scintilla.h | 1 | ||||
| -rw-r--r-- | include/Scintilla.iface | 3 | ||||
| -rw-r--r-- | src/Document.cxx | 9 | ||||
| -rw-r--r-- | src/Document.h | 1 | ||||
| -rw-r--r-- | src/Editor.cxx | 4 | 
5 files changed, 18 insertions, 0 deletions
diff --git a/include/Scintilla.h b/include/Scintilla.h index 4f646cc98..e9dbd653c 100644 --- a/include/Scintilla.h +++ b/include/Scintilla.h @@ -137,6 +137,7 @@ typedef sptr_t (*SciFnDirect)(sptr_t ptr, unsigned int iMessage, uptr_t wParam,  #define SCI_MARKERNEXT 2047  #define SCI_MARKERPREVIOUS 2048  #define SCI_MARKERDEFINEPIXMAP 2049 +#define SCI_MARKERADDSET 2466  #define SC_MARGIN_SYMBOL 0  #define SC_MARGIN_NUMBER 1  #define SCI_SETMARGINTYPEN 2240 diff --git a/include/Scintilla.iface b/include/Scintilla.iface index b02a4a7c4..0678d23ec 100644 --- a/include/Scintilla.iface +++ b/include/Scintilla.iface @@ -313,6 +313,9 @@ fun int MarkerPrevious=2048(int lineStart, int markerMask)  # Define a marker from a pixmap.  fun void MarkerDefinePixmap=2049(int markerNumber, string pixmap) +# Add a set of markers to a line. +fun void MarkerAddSet=2466(int line, int set) +  enu MarginType=SC_MARGIN_  val SC_MARGIN_SYMBOL=0  val SC_MARGIN_NUMBER=1 diff --git a/src/Document.cxx b/src/Document.cxx index 27260d6d4..8b506fbfd 100644 --- a/src/Document.cxx +++ b/src/Document.cxx @@ -108,6 +108,15 @@ int Document::AddMark(int line, int markerNum) {  	return prev;  } +void Document::AddMarkSet(int line, int valueSet) { +	unsigned int m = valueSet; +	for (int i = 0; m; i++, m >>= 1) +		if (m & 1) +			cb.AddMark(line, i); +	DocModification mh(SC_MOD_CHANGEMARKER, LineStart(line), 0, 0, 0, line); +	NotifyModified(mh); +} +  void Document::DeleteMark(int line, int markerNum) {  	cb.DeleteMark(line, markerNum);  	DocModification mh(SC_MOD_CHANGEMARKER, LineStart(line), 0, 0, 0, line); diff --git a/src/Document.h b/src/Document.h index cf5187ae2..5a85abe5d 100644 --- a/src/Document.h +++ b/src/Document.h @@ -176,6 +176,7 @@ public:  	char StyleAt(int position) { return cb.StyleAt(position); }  	int GetMark(int line) { return cb.GetMark(line); }  	int AddMark(int line, int markerNum); +	void AddMarkSet(int line, int valueSet);  	void DeleteMark(int line, int markerNum);  	void DeleteMarkFromHandle(int markerHandle);  	void DeleteAllMarks(int markerNum); diff --git a/src/Editor.cxx b/src/Editor.cxx index 8ebdbd9ae..07c52bc01 100644 --- a/src/Editor.cxx +++ b/src/Editor.cxx @@ -6530,6 +6530,10 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) {  			int markerID = pdoc->AddMark(wParam, lParam);  			return markerID;  		} +	case SCI_MARKERADDSET: +		if (lParam != 0) +			pdoc->AddMarkSet(wParam, lParam); +		break;  	case SCI_MARKERDELETE:  		pdoc->DeleteMark(wParam, lParam);  | 
