diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/ScintillaBase.cxx | 20 | ||||
| -rw-r--r-- | src/ScintillaBase.h | 1 | 
2 files changed, 21 insertions, 0 deletions
| diff --git a/src/ScintillaBase.cxx b/src/ScintillaBase.cxx index 3aba5fb7b..8b6e7a4cb 100644 --- a/src/ScintillaBase.cxx +++ b/src/ScintillaBase.cxx @@ -392,6 +392,23 @@ int ScintillaBase::AutoCompleteGetCurrent() {  	return ac.lb->GetSelection();  } +int ScintillaBase::AutoCompleteGetCurrentText(char *buffer) { +	if (ac.Active()) { +		int item = ac.lb->GetSelection(); +		char selected[1000]; +		selected[0] = '\0'; +		if (item != -1) { +			ac.lb->GetValue(item, selected, sizeof(selected)); +			if (buffer != NULL) +				strcpy(buffer, selected); +			return strlen(selected); +		} +	} +	if (buffer != NULL) +		*buffer = '\0'; +	return 0; +} +  void ScintillaBase::CallTipShow(Point pt, const char *defn) {  	ac.Cancel();  	pt.y += vs.lineHeight; @@ -564,6 +581,9 @@ sptr_t ScintillaBase::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lPara  	case SCI_AUTOCGETCURRENT:  		return AutoCompleteGetCurrent(); +	case SCI_AUTOCGETCURRENTTEXT: +		return AutoCompleteGetCurrentText(reinterpret_cast<char *>(lParam)); +  	case SCI_AUTOCSETCANCELATSTART:  		ac.cancelAtStartPos = wParam != 0;  		break; diff --git a/src/ScintillaBase.h b/src/ScintillaBase.h index 15b514c2b..73fcd72b5 100644 --- a/src/ScintillaBase.h +++ b/src/ScintillaBase.h @@ -72,6 +72,7 @@ protected:  	void AutoCompleteCancel();  	void AutoCompleteMove(int delta);  	int AutoCompleteGetCurrent(); +	int AutoCompleteGetCurrentText(char *buffer);  	void AutoCompleteCharacterAdded(char ch);  	void AutoCompleteCharacterDeleted();  	void AutoCompleteCompleted(); | 
