diff options
Diffstat (limited to 'indra/llui')
| -rw-r--r-- | indra/llui/lltextbase.cpp | 27 | ||||
| -rw-r--r-- | indra/llui/lltextbase.h | 334 | ||||
| -rw-r--r-- | indra/llui/lltextutil.cpp | 34 | ||||
| -rw-r--r-- | indra/llui/lltextutil.h | 15 | ||||
| -rw-r--r-- | indra/llui/llurlentry.cpp | 13 | ||||
| -rw-r--r-- | indra/llui/llurlentry.h | 2 | 
6 files changed, 242 insertions, 183 deletions
| diff --git a/indra/llui/lltextbase.cpp b/indra/llui/lltextbase.cpp index ccd22ee050..223998569b 100644 --- a/indra/llui/lltextbase.cpp +++ b/indra/llui/lltextbase.cpp @@ -40,6 +40,7 @@  #include "llscrollcontainer.h"  #include "llstl.h"  #include "lltextparser.h" +#include "lltextutil.h"  #include "lltooltip.h"  #include "lluictrl.h"  #include "llurlaction.h" @@ -1595,6 +1596,9 @@ void LLTextBase::appendTextImpl(const std::string &new_text, const LLStyle::Para  		while ( LLUrlRegistry::instance().findUrl(text, match,  		        boost::bind(&LLTextBase::replaceUrlLabel, this, _1, _2)) )  		{ +			 +			LLTextUtil::processUrlMatch(&match,this); +  			start = match.getStart();  			end = match.getEnd()+1; @@ -1619,22 +1623,6 @@ void LLTextBase::appendTextImpl(const std::string &new_text, const LLStyle::Para  				std::string subtext=text.substr(0,start);  				appendAndHighlightText(subtext, part, style_params);   			} - -			// output an optional icon before the Url -			if (! match.getIcon().empty()) -			{ -				LLUIImagePtr image = LLUI::getUIImage(match.getIcon()); -				if (image) -				{ -					LLStyle::Params icon; -					icon.image = image; -					// Text will be replaced during rendering with the icon, -					// but string cannot be empty or the segment won't be -					// added (or drawn). -					appendImageSegment(icon); -				} -			} -  			// output the styled Url (unless we've been asked to suppress hyperlinking)  			if (match.isLinkDisabled())  			{ @@ -1716,7 +1704,14 @@ void LLTextBase::appendImageSegment(const LLStyle::Params& style_params)  	insertStringNoUndo(getLength(), utf8str_to_wstring(" "), &segments);  } +void LLTextBase::appendWidget(const LLInlineViewSegment::Params& params, const std::string& text, bool allow_undo) +{ +	segment_vec_t segments; +	LLWString widget_wide_text = utf8str_to_wstring(text); +	segments.push_back(new LLInlineViewSegment(params, getLength(), getLength() + widget_wide_text.size())); +	insertStringNoUndo(getLength(), widget_wide_text, &segments); +}  void LLTextBase::appendAndHighlightTextImpl(const std::string &new_text, S32 highlight_part, const LLStyle::Params& style_params)  { diff --git a/indra/llui/lltextbase.h b/indra/llui/lltextbase.h index ff63cc26f5..300ee0f05f 100644 --- a/indra/llui/lltextbase.h +++ b/indra/llui/lltextbase.h @@ -47,8 +47,170 @@  #include <boost/signals2.hpp>  class LLContextMenu; -class LLTextSegment; -class LLNormalTextSegment; +class LLUrlMatch; + +/// +/// A text segment is used to specify a subsection of a text string +/// that should be formatted differently, such as a hyperlink. It +/// includes a start/end offset from the start of the string, a +/// style to render with, an optional tooltip, etc. +/// +class LLTextSegment : public LLRefCount, public LLMouseHandler +{ +public: +	LLTextSegment(S32 start, S32 end) : mStart(start), mEnd(end){}; +	virtual ~LLTextSegment(); + +	virtual bool				getDimensions(S32 first_char, S32 num_chars, S32& width, S32& height) const; +	virtual S32					getOffset(S32 segment_local_x_coord, S32 start_offset, S32 num_chars, bool round) const; +	virtual S32					getNumChars(S32 num_pixels, S32 segment_offset, S32 line_offset, S32 max_chars) const; +	virtual void				updateLayout(const class LLTextBase& editor); +	virtual F32					draw(S32 start, S32 end, S32 selection_start, S32 selection_end, const LLRect& draw_rect); +	virtual bool				canEdit() const; +	virtual void				unlinkFromDocument(class LLTextBase* editor); +	virtual void				linkToDocument(class LLTextBase* editor); + +	virtual const LLColor4&		getColor() const; +	//virtual void 				setColor(const LLColor4 &color); +	virtual LLStyleConstSP		getStyle() const; +	virtual void 				setStyle(LLStyleConstSP style); +	virtual void				setToken( LLKeywordToken* token ); +	virtual LLKeywordToken*		getToken() const; +	virtual void				setToolTip(const std::string& tooltip); +	virtual void				dump() const; + +	// LLMouseHandler interface +	/*virtual*/ BOOL			handleMouseDown(S32 x, S32 y, MASK mask); +	/*virtual*/ BOOL			handleMouseUp(S32 x, S32 y, MASK mask); +	/*virtual*/ BOOL			handleMiddleMouseDown(S32 x, S32 y, MASK mask); +	/*virtual*/ BOOL			handleMiddleMouseUp(S32 x, S32 y, MASK mask); +	/*virtual*/ BOOL			handleRightMouseDown(S32 x, S32 y, MASK mask); +	/*virtual*/ BOOL			handleRightMouseUp(S32 x, S32 y, MASK mask); +	/*virtual*/ BOOL			handleDoubleClick(S32 x, S32 y, MASK mask); +	/*virtual*/ BOOL			handleHover(S32 x, S32 y, MASK mask); +	/*virtual*/ BOOL			handleScrollWheel(S32 x, S32 y, S32 clicks); +	/*virtual*/ BOOL			handleToolTip(S32 x, S32 y, MASK mask); +	/*virtual*/ std::string		getName() const; +	/*virtual*/ void			onMouseCaptureLost(); +	/*virtual*/ void			screenPointToLocal(S32 screen_x, S32 screen_y, S32* local_x, S32* local_y) const; +	/*virtual*/ void			localPointToScreen(S32 local_x, S32 local_y, S32* screen_x, S32* screen_y) const; +	/*virtual*/ BOOL			hasMouseCapture(); + +	S32							getStart() const 					{ return mStart; } +	void						setStart(S32 start)					{ mStart = start; } +	S32							getEnd() const						{ return mEnd; } +	void						setEnd( S32 end )					{ mEnd = end; } + +protected: +	S32				mStart; +	S32				mEnd; +}; + +class LLNormalTextSegment : public LLTextSegment +{ +public: +	LLNormalTextSegment( LLStyleConstSP style, S32 start, S32 end, LLTextBase& editor ); +	LLNormalTextSegment( const LLColor4& color, S32 start, S32 end, LLTextBase& editor, BOOL is_visible = TRUE); +	~LLNormalTextSegment(); + +	/*virtual*/ bool				getDimensions(S32 first_char, S32 num_chars, S32& width, S32& height) const; +	/*virtual*/ S32					getOffset(S32 segment_local_x_coord, S32 start_offset, S32 num_chars, bool round) const; +	/*virtual*/ S32					getNumChars(S32 num_pixels, S32 segment_offset, S32 line_offset, S32 max_chars) const; +	/*virtual*/ F32					draw(S32 start, S32 end, S32 selection_start, S32 selection_end, const LLRect& draw_rect); +	/*virtual*/ bool				canEdit() const { return true; } +	/*virtual*/ const LLColor4&		getColor() const					{ return mStyle->getColor(); } +	/*virtual*/ LLStyleConstSP		getStyle() const					{ return mStyle; } +	/*virtual*/ void 				setStyle(LLStyleConstSP style)	{ mStyle = style; } +	/*virtual*/ void				setToken( LLKeywordToken* token )	{ mToken = token; } +	/*virtual*/ LLKeywordToken*		getToken() const					{ return mToken; } +	/*virtual*/ BOOL				getToolTip( std::string& msg ) const; +	/*virtual*/ void				setToolTip(const std::string& tooltip); +	/*virtual*/ void				dump() const; + +	/*virtual*/ BOOL				handleHover(S32 x, S32 y, MASK mask); +	/*virtual*/ BOOL				handleRightMouseDown(S32 x, S32 y, MASK mask); +	/*virtual*/ BOOL				handleMouseDown(S32 x, S32 y, MASK mask); +	/*virtual*/ BOOL				handleMouseUp(S32 x, S32 y, MASK mask); +	/*virtual*/ BOOL				handleToolTip(S32 x, S32 y, MASK mask); + +protected: +	F32					drawClippedSegment(S32 seg_start, S32 seg_end, S32 selection_start, S32 selection_end, LLRect rect); + +protected: +	class LLTextBase&	mEditor; +	LLStyleConstSP		mStyle; +	S32					mFontHeight; +	LLKeywordToken* 	mToken; +	std::string     	mTooltip; +	boost::signals2::connection mImageLoadedConnection; +}; + +class LLIndexSegment : public LLTextSegment +{ +public: +	LLIndexSegment(S32 pos) : LLTextSegment(pos, pos) {} +}; + +class LLInlineViewSegment : public LLTextSegment +{ +public: +	struct Params : public LLInitParam::Block<Params> +	{ +		Mandatory<LLView*>		view; +		Optional<bool>			force_newline; +		Optional<S32>			left_pad, +								right_pad, +								bottom_pad, +								top_pad; +	}; + +	LLInlineViewSegment(const Params& p, S32 start, S32 end); +	~LLInlineViewSegment(); +	/*virtual*/ bool		getDimensions(S32 first_char, S32 num_chars, S32& width, S32& height) const; +	/*virtual*/ S32			getNumChars(S32 num_pixels, S32 segment_offset, S32 line_offset, S32 max_chars) const; +	/*virtual*/ void		updateLayout(const class LLTextBase& editor); +	/*virtual*/ F32			draw(S32 start, S32 end, S32 selection_start, S32 selection_end, const LLRect& draw_rect); +	/*virtual*/ bool		canEdit() const { return false; } +	/*virtual*/ void		unlinkFromDocument(class LLTextBase* editor); +	/*virtual*/ void		linkToDocument(class LLTextBase* editor); + +private: +	S32 mLeftPad; +	S32 mRightPad; +	S32 mTopPad; +	S32 mBottomPad; +	LLView* mView; +	bool	mForceNewLine; +}; + +class LLLineBreakTextSegment : public LLTextSegment +{ +public: + +	LLLineBreakTextSegment(LLStyleConstSP style,S32 pos); +	LLLineBreakTextSegment(S32 pos); +	~LLLineBreakTextSegment(); +	bool		getDimensions(S32 first_char, S32 num_chars, S32& width, S32& height) const; +	S32			getNumChars(S32 num_pixels, S32 segment_offset, S32 line_offset, S32 max_chars) const; +	F32			draw(S32 start, S32 end, S32 selection_start, S32 selection_end, const LLRect& draw_rect); + +private: +	S32			mFontHeight; +}; + +class LLImageTextSegment : public LLTextSegment +{ +public: +	LLImageTextSegment(LLStyleConstSP style,S32 pos,class LLTextBase& editor); +	~LLImageTextSegment(); +	bool		getDimensions(S32 first_char, S32 num_chars, S32& width, S32& height) const; +	S32			getNumChars(S32 num_pixels, S32 segment_offset, S32 line_offset, S32 max_chars) const; +	F32			draw(S32 start, S32 end, S32 selection_start, S32 selection_end, const LLRect& draw_rect); + +private: +	class LLTextBase&	mEditor; +	LLStyleConstSP	mStyle; +};  typedef LLPointer<LLTextSegment> LLTextSegmentPtr; @@ -196,8 +358,9 @@ public:  	const LLFontGL*			getDefaultFont() const					{ return mDefaultFont; } -	void					appendLineBreakSegment(const LLStyle::Params& style_params); -	void					appendImageSegment(const LLStyle::Params& style_params); +	virtual void			appendLineBreakSegment(const LLStyle::Params& style_params); +	virtual void			appendImageSegment(const LLStyle::Params& style_params); +	virtual void			appendWidget(const LLInlineViewSegment::Params& params, const std::string& text, bool allow_undo);  public:  	// Fired when a URL link is clicked @@ -386,167 +549,4 @@ protected:  }; -/// -/// A text segment is used to specify a subsection of a text string -/// that should be formatted differently, such as a hyperlink. It -/// includes a start/end offset from the start of the string, a -/// style to render with, an optional tooltip, etc. -/// -class LLTextSegment : public LLRefCount, public LLMouseHandler -{ -public: -	LLTextSegment(S32 start, S32 end) : mStart(start), mEnd(end){}; -	virtual ~LLTextSegment(); - -	virtual bool				getDimensions(S32 first_char, S32 num_chars, S32& width, S32& height) const; -	virtual S32					getOffset(S32 segment_local_x_coord, S32 start_offset, S32 num_chars, bool round) const; -	virtual S32					getNumChars(S32 num_pixels, S32 segment_offset, S32 line_offset, S32 max_chars) const; -	virtual void				updateLayout(const class LLTextBase& editor); -	virtual F32					draw(S32 start, S32 end, S32 selection_start, S32 selection_end, const LLRect& draw_rect); -	virtual bool				canEdit() const; -	virtual void				unlinkFromDocument(class LLTextBase* editor); -	virtual void				linkToDocument(class LLTextBase* editor); - -	virtual const LLColor4&		getColor() const; -	//virtual void 				setColor(const LLColor4 &color); -	virtual LLStyleConstSP		getStyle() const; -	virtual void 				setStyle(LLStyleConstSP style); -	virtual void				setToken( LLKeywordToken* token ); -	virtual LLKeywordToken*		getToken() const; -	virtual void				setToolTip(const std::string& tooltip); -	virtual void				dump() const; - -	// LLMouseHandler interface -	/*virtual*/ BOOL			handleMouseDown(S32 x, S32 y, MASK mask); -	/*virtual*/ BOOL			handleMouseUp(S32 x, S32 y, MASK mask); -	/*virtual*/ BOOL			handleMiddleMouseDown(S32 x, S32 y, MASK mask); -	/*virtual*/ BOOL			handleMiddleMouseUp(S32 x, S32 y, MASK mask); -	/*virtual*/ BOOL			handleRightMouseDown(S32 x, S32 y, MASK mask); -	/*virtual*/ BOOL			handleRightMouseUp(S32 x, S32 y, MASK mask); -	/*virtual*/ BOOL			handleDoubleClick(S32 x, S32 y, MASK mask); -	/*virtual*/ BOOL			handleHover(S32 x, S32 y, MASK mask); -	/*virtual*/ BOOL			handleScrollWheel(S32 x, S32 y, S32 clicks); -	/*virtual*/ BOOL			handleToolTip(S32 x, S32 y, MASK mask); -	/*virtual*/ std::string		getName() const; -	/*virtual*/ void			onMouseCaptureLost(); -	/*virtual*/ void			screenPointToLocal(S32 screen_x, S32 screen_y, S32* local_x, S32* local_y) const; -	/*virtual*/ void			localPointToScreen(S32 local_x, S32 local_y, S32* screen_x, S32* screen_y) const; -	/*virtual*/ BOOL			hasMouseCapture(); - -	S32							getStart() const 					{ return mStart; } -	void						setStart(S32 start)					{ mStart = start; } -	S32							getEnd() const						{ return mEnd; } -	void						setEnd( S32 end )					{ mEnd = end; } - -protected: -	S32				mStart; -	S32				mEnd; -}; - -class LLNormalTextSegment : public LLTextSegment -{ -public: -	LLNormalTextSegment( LLStyleConstSP style, S32 start, S32 end, LLTextBase& editor ); -	LLNormalTextSegment( const LLColor4& color, S32 start, S32 end, LLTextBase& editor, BOOL is_visible = TRUE); -	~LLNormalTextSegment(); - -	/*virtual*/ bool				getDimensions(S32 first_char, S32 num_chars, S32& width, S32& height) const; -	/*virtual*/ S32					getOffset(S32 segment_local_x_coord, S32 start_offset, S32 num_chars, bool round) const; -	/*virtual*/ S32					getNumChars(S32 num_pixels, S32 segment_offset, S32 line_offset, S32 max_chars) const; -	/*virtual*/ F32					draw(S32 start, S32 end, S32 selection_start, S32 selection_end, const LLRect& draw_rect); -	/*virtual*/ bool				canEdit() const { return true; } -	/*virtual*/ const LLColor4&		getColor() const					{ return mStyle->getColor(); } -	/*virtual*/ LLStyleConstSP		getStyle() const					{ return mStyle; } -	/*virtual*/ void 				setStyle(LLStyleConstSP style)	{ mStyle = style; } -	/*virtual*/ void				setToken( LLKeywordToken* token )	{ mToken = token; } -	/*virtual*/ LLKeywordToken*		getToken() const					{ return mToken; } -	/*virtual*/ BOOL				getToolTip( std::string& msg ) const; -	/*virtual*/ void				setToolTip(const std::string& tooltip); -	/*virtual*/ void				dump() const; - -	/*virtual*/ BOOL				handleHover(S32 x, S32 y, MASK mask); -	/*virtual*/ BOOL				handleRightMouseDown(S32 x, S32 y, MASK mask); -	/*virtual*/ BOOL				handleMouseDown(S32 x, S32 y, MASK mask); -	/*virtual*/ BOOL				handleMouseUp(S32 x, S32 y, MASK mask); -	/*virtual*/ BOOL				handleToolTip(S32 x, S32 y, MASK mask); - -protected: -	F32					drawClippedSegment(S32 seg_start, S32 seg_end, S32 selection_start, S32 selection_end, LLRect rect); - -protected: -	class LLTextBase&	mEditor; -	LLStyleConstSP		mStyle; -	S32					mFontHeight; -	LLKeywordToken* 	mToken; -	std::string     	mTooltip; -	boost::signals2::connection mImageLoadedConnection; -}; - -class LLIndexSegment : public LLTextSegment -{ -public: -	LLIndexSegment(S32 pos) : LLTextSegment(pos, pos) {} -}; - -class LLInlineViewSegment : public LLTextSegment -{ -public: -	struct Params : public LLInitParam::Block<Params> -	{ -		Mandatory<LLView*>		view; -		Optional<bool>			force_newline; -		Optional<S32>			left_pad, -								right_pad, -								bottom_pad, -								top_pad; -	}; - -	LLInlineViewSegment(const Params& p, S32 start, S32 end); -	~LLInlineViewSegment(); -	/*virtual*/ bool		getDimensions(S32 first_char, S32 num_chars, S32& width, S32& height) const; -	/*virtual*/ S32			getNumChars(S32 num_pixels, S32 segment_offset, S32 line_offset, S32 max_chars) const; -	/*virtual*/ void		updateLayout(const class LLTextBase& editor); -	/*virtual*/ F32			draw(S32 start, S32 end, S32 selection_start, S32 selection_end, const LLRect& draw_rect); -	/*virtual*/ bool		canEdit() const { return false; } -	/*virtual*/ void		unlinkFromDocument(class LLTextBase* editor); -	/*virtual*/ void		linkToDocument(class LLTextBase* editor); - -private: -	S32 mLeftPad; -	S32 mRightPad; -	S32 mTopPad; -	S32 mBottomPad; -	LLView* mView; -	bool	mForceNewLine; -}; - -class LLLineBreakTextSegment : public LLTextSegment -{ -public: - -	LLLineBreakTextSegment(LLStyleConstSP style,S32 pos); -	LLLineBreakTextSegment(S32 pos); -	~LLLineBreakTextSegment(); -	bool		getDimensions(S32 first_char, S32 num_chars, S32& width, S32& height) const; -	S32			getNumChars(S32 num_pixels, S32 segment_offset, S32 line_offset, S32 max_chars) const; -	F32			draw(S32 start, S32 end, S32 selection_start, S32 selection_end, const LLRect& draw_rect); - -private: -	S32			mFontHeight; -}; - -class LLImageTextSegment : public LLTextSegment -{ -public: -	LLImageTextSegment(LLStyleConstSP style,S32 pos,class LLTextBase& editor); -	~LLImageTextSegment(); -	bool		getDimensions(S32 first_char, S32 num_chars, S32& width, S32& height) const; -	S32			getNumChars(S32 num_pixels, S32 segment_offset, S32 line_offset, S32 max_chars) const; -	F32			draw(S32 start, S32 end, S32 selection_start, S32 selection_end, const LLRect& draw_rect); - -private: -	class LLTextBase&	mEditor; -	LLStyleConstSP	mStyle; -}; -  #endif diff --git a/indra/llui/lltextutil.cpp b/indra/llui/lltextutil.cpp index c5f3929fb1..56664071b7 100644 --- a/indra/llui/lltextutil.cpp +++ b/indra/llui/lltextutil.cpp @@ -34,7 +34,9 @@  #include "lluicolor.h"  #include "lltextbox.h" +#include "llurlmatch.h" +boost::function<bool(LLUrlMatch*,LLTextBase*)>	LLTextUtil::TextHelpers::iconCallbackCreationFunction = 0;  void LLTextUtil::textboxSetHighlightedVal(LLTextBox *txtbox, const LLStyle::Params& normal_style, const std::string& text, const std::string& hl)  { @@ -76,4 +78,36 @@ const std::string& LLTextUtil::formatPhoneNumber(const std::string& phone_str)  	return formatted_phone_str;  } +bool LLTextUtil::processUrlMatch(LLUrlMatch* match,LLTextBase* text_base) +{ +	if (match == 0 || text_base == 0) +		return false; + +	if(match->getID() != LLUUID::null && TextHelpers::iconCallbackCreationFunction) +	{ +		bool segment_created = TextHelpers::iconCallbackCreationFunction(match,text_base); +		if(segment_created) +			return true; +	} + +	// output an optional icon before the Url +	if (!match->getIcon().empty() ) +	{ +		LLUIImagePtr image = LLUI::getUIImage(match->getIcon()); +		if (image) +		{ +			LLStyle::Params icon; +			icon.image = image; +			// Text will be replaced during rendering with the icon, +			// but string cannot be empty or the segment won't be +			// added (or drawn). +			text_base->appendImageSegment(icon); + +			return true; +		} +	} +	 +	return false; +} +  // EOF diff --git a/indra/llui/lltextutil.h b/indra/llui/lltextutil.h index 325c3c5b7c..407880d195 100644 --- a/indra/llui/lltextutil.h +++ b/indra/llui/lltextutil.h @@ -36,6 +36,8 @@  #include "llstyle.h"  class LLTextBox; +class LLUrlMatch; +class LLTextBase;  namespace LLTextUtil  { @@ -67,6 +69,19 @@ namespace LLTextUtil  	 * @return reference to string with formatted phone number  	 */  	const std::string& formatPhoneNumber(const std::string& phone_str); + +	bool processUrlMatch(LLUrlMatch* match,LLTextBase* text_base); + +	class TextHelpers +	{ + +		//we need this special callback since we need to create LLAvataIconCtrls while parsing +		//avatar/group url but can't create LLAvataIconCtrl from LLUI +		public: +			static boost::function<bool(LLUrlMatch*,LLTextBase*)> iconCallbackCreationFunction; +	}; + +	  }  #endif // LL_LLTEXTUTIL_H diff --git a/indra/llui/llurlentry.cpp b/indra/llui/llurlentry.cpp index fd56a87345..e075699a6e 100644 --- a/indra/llui/llurlentry.cpp +++ b/indra/llui/llurlentry.cpp @@ -326,6 +326,11 @@ void LLUrlEntryAgent::onAgentNameReceived(const LLUUID& id,  	callObservers(id.asString(), first + " " + last);  } +LLUUID	LLUrlEntryAgent::getID(const std::string &string) const +{ +	return LLUUID(getIDStringFromUrl(string)); +} +  std::string LLUrlEntryAgent::getTooltip(const std::string &string) const  {  	// return a tooltip corresponding to the URL type instead of the generic one @@ -434,6 +439,8 @@ LLUrlEntryGroup::LLUrlEntryGroup()  	mColor = LLUIColorTable::instance().getColor("GroupLinkColor");  } + +  void LLUrlEntryGroup::onGroupNameReceived(const LLUUID& id,  										  const std::string& first,  										  const std::string& last, @@ -443,6 +450,12 @@ void LLUrlEntryGroup::onGroupNameReceived(const LLUUID& id,  	callObservers(id.asString(), first);  } +LLUUID	LLUrlEntryGroup::getID(const std::string &string) const +{ +	return LLUUID(getIDStringFromUrl(string)); +} + +  std::string LLUrlEntryGroup::getLabel(const std::string &url, const LLUrlLabelCallback &cb)  {  	if (!gCacheName) diff --git a/indra/llui/llurlentry.h b/indra/llui/llurlentry.h index 3c21fe8d61..7d718b67a9 100644 --- a/indra/llui/llurlentry.h +++ b/indra/llui/llurlentry.h @@ -172,6 +172,7 @@ public:  	LLUrlEntryAgent();  	/*virtual*/ std::string getLabel(const std::string &url, const LLUrlLabelCallback &cb);  	/*virtual*/ std::string getTooltip(const std::string &string) const; +	/*virtual*/ LLUUID	getID(const std::string &string) const;  private:  	void onAgentNameReceived(const LLUUID& id, const std::string& first,  							 const std::string& last, BOOL is_group); @@ -186,6 +187,7 @@ class LLUrlEntryGroup : public LLUrlEntryBase  public:  	LLUrlEntryGroup();  	/*virtual*/ std::string getLabel(const std::string &url, const LLUrlLabelCallback &cb); +	/*virtual*/ LLUUID	getID(const std::string &string) const;  private:  	void onGroupNameReceived(const LLUUID& id, const std::string& first,  							 const std::string& last, BOOL is_group); | 
