diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/AutoComplete.cxx | 4 | ||||
| -rw-r--r-- | src/AutoComplete.h | 4 | ||||
| -rw-r--r-- | src/Platform.h | 1 | ||||
| -rw-r--r-- | src/ScintillaBase.cxx | 16 | 
4 files changed, 19 insertions, 6 deletions
| diff --git a/src/AutoComplete.cxx b/src/AutoComplete.cxx index fec0f20e9..87077e92a 100644 --- a/src/AutoComplete.cxx +++ b/src/AutoComplete.cxx @@ -39,6 +39,7 @@ AutoComplete::AutoComplete() :  	typesep('?'),  	ignoreCase(false),  	chooseSingle(false), +	options(AutoCompleteOption::Normal),  	posStart(0),  	startLen(0),  	cancelAtStartPos(true), @@ -63,10 +64,11 @@ bool AutoComplete::Active() const noexcept {  void AutoComplete::Start(Window &parent, int ctrlID,  	Sci::Position position, Point location, Sci::Position startLen_, -	int lineHeight, bool unicodeMode, Technology technology) { +	int lineHeight, bool unicodeMode, Technology technology, ListOptions listOptions) {  	if (active) {  		Cancel();  	} +	lb->SetOptions(listOptions);  	lb->Create(parent, ctrlID, location, lineHeight, unicodeMode, technology);  	lb->Clear();  	active = true; diff --git a/src/AutoComplete.h b/src/AutoComplete.h index c46530771..fa8f57287 100644 --- a/src/AutoComplete.h +++ b/src/AutoComplete.h @@ -25,6 +25,7 @@ public:  	bool ignoreCase;  	bool chooseSingle; +	AutoCompleteOption options;  	std::unique_ptr<ListBox> lb;  	Sci::Position posStart;  	Sci::Position startLen; @@ -49,7 +50,8 @@ public:  	/// Display the auto completion list positioned to be near a character position  	void Start(Window &parent, int ctrlID, Sci::Position position, Point location, -		Sci::Position startLen_, int lineHeight, bool unicodeMode, Scintilla::Technology technology); +		Sci::Position startLen_, int lineHeight, bool unicodeMode, Scintilla::Technology technology, +		ListOptions listOptions);  	/// The stop chars are characters which, when typed, cause the auto completion list to disappear  	void SetStopChars(const char *stopChars_); diff --git a/src/Platform.h b/src/Platform.h index 10c63dd23..ce04d9b22 100644 --- a/src/Platform.h +++ b/src/Platform.h @@ -313,6 +313,7 @@ struct ListOptions {  	std::optional<ColourRGBA> back;  	std::optional<ColourRGBA> foreSelected;  	std::optional<ColourRGBA> backSelected; +	AutoCompleteOption options=AutoCompleteOption::Normal;  };  class ListBox : public Window { diff --git a/src/ScintillaBase.cxx b/src/ScintillaBase.cxx index 0adca2f6f..238299734 100644 --- a/src/ScintillaBase.cxx +++ b/src/ScintillaBase.cxx @@ -257,16 +257,17 @@ void ScintillaBase::AutoCompleteStart(Sci::Position lenEntered, const char *list  			return;  		}  	} -	ac.Start(wMain, idAutoComplete, sel.MainCaret(), PointMainCaret(), -				lenEntered, vs.lineHeight, IsUnicodeMode(), technology);  	ListOptions options{  		vs.ElementColour(Element::List),  		vs.ElementColour(Element::ListBack),  		vs.ElementColour(Element::ListSelected), -		vs.ElementColour(Element::ListSelectedBack) +		vs.ElementColour(Element::ListSelectedBack), +		ac.options,  	}; -	ac.lb->SetOptions(options); + +	ac.Start(wMain, idAutoComplete, sel.MainCaret(), PointMainCaret(), +				lenEntered, vs.lineHeight, IsUnicodeMode(), technology, options);  	const PRectangle rcClient = GetClientRectangle();  	Point pt = LocationFromPosition(sel.MainCaret() - lenEntered); @@ -942,6 +943,13 @@ sptr_t ScintillaBase::WndProc(Message iMessage, uptr_t wParam, sptr_t lParam) {  	case Message::AutoCGetAutoHide:  		return ac.autoHide; +	case Message::AutoCSetOptions: +		ac.options = static_cast<AutoCompleteOption>(wParam); +		break; + +	case Message::AutoCGetOptions: +		return static_cast<sptr_t>(ac.options); +  	case Message::AutoCSetDropRestOfWord:  		ac.dropRestOfWord = wParam != 0;  		break; | 
