diff options
Diffstat (limited to 'src/ScintillaBase.cxx')
| -rw-r--r-- | src/ScintillaBase.cxx | 20 | 
1 files changed, 20 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; | 
