diff options
Diffstat (limited to 'indra/llui')
| -rw-r--r-- | indra/llui/lllineeditor.cpp | 10 | ||||
| -rw-r--r-- | indra/llui/lllineeditor.h | 3 | 
2 files changed, 11 insertions, 2 deletions
| diff --git a/indra/llui/lllineeditor.cpp b/indra/llui/lllineeditor.cpp index 2a92337388..48d49af588 100644 --- a/indra/llui/lllineeditor.cpp +++ b/indra/llui/lllineeditor.cpp @@ -157,7 +157,8 @@ LLLineEditor::LLLineEditor(const LLLineEditor::Params& p)  	mHighlightColor(p.highlight_color()),  	mPreeditBgColor(p.preedit_bg_color()),  	mGLFont(p.font), -	mContextMenuHandle() +	mContextMenuHandle(), +	mAutoreplaceCallback()  {  	llassert( mMaxLengthBytes > 0 ); @@ -207,7 +208,6 @@ LLLineEditor::~LLLineEditor()  	gFocusMgr.releaseFocusIfNeeded( this );  } -  void LLLineEditor::onFocusReceived()  {  	gEditMenuHandler = this; @@ -971,6 +971,12 @@ void LLLineEditor::addChar(const llwchar uni_char)  		LLUI::reportBadKeystroke();  	} +	if (!mReadOnly && mAutoreplaceCallback != NULL) +	{ +		// call callback +		mAutoreplaceCallback(mText, mCursorPos); +	} +  	getWindow()->hideCursorUntilMouseMove();  } diff --git a/indra/llui/lllineeditor.h b/indra/llui/lllineeditor.h index 40f931ecc1..71dd53f608 100644 --- a/indra/llui/lllineeditor.h +++ b/indra/llui/lllineeditor.h @@ -189,6 +189,9 @@ public:  	virtual BOOL	setTextArg( const std::string& key, const LLStringExplicit& text );  	virtual BOOL	setLabelArg( const std::string& key, const LLStringExplicit& text ); +	typedef boost::function<void(LLUIString&, S32&)> autoreplace_callback_t; +	autoreplace_callback_t mAutoreplaceCallback; +	void			setAutoreplaceCallback(autoreplace_callback_t cb) { mAutoreplaceCallback = cb; }  	void			setLabel(const LLStringExplicit &new_label) { mLabel = new_label; }  	const std::string& 	getLabel()	{ return mLabel.getString(); } | 
