diff options
| -rw-r--r-- | indra/llui/llview.cpp | 12 | ||||
| -rw-r--r-- | indra/llui/llview.h | 5 | 
2 files changed, 17 insertions, 0 deletions
diff --git a/indra/llui/llview.cpp b/indra/llui/llview.cpp index 1df8838738..2be8b8c17d 100644 --- a/indra/llui/llview.cpp +++ b/indra/llui/llview.cpp @@ -439,6 +439,18 @@ void LLView::setEnabled(BOOL enabled)  }  //virtual +bool LLView::isAvailable() const +{ +    return isInEnabledChain() && isInVisibleChain(); +} + +//static +bool LLView::isAvailable(const LLView* view) +{ +    return view && view->isAvailable(); +} + +//virtual  BOOL LLView::setLabelArg( const std::string& key, const LLStringExplicit& text )  {  	return FALSE; diff --git a/indra/llui/llview.h b/indra/llui/llview.h index 7ddff2bd9e..f630932317 100644 --- a/indra/llui/llview.h +++ b/indra/llui/llview.h @@ -304,6 +304,11 @@ public:  	BOOL			getVisible() const			{ return mVisible; }  	virtual void	setEnabled(BOOL enabled);  	BOOL			getEnabled() const			{ return mEnabled; } +	/// 'available' in this context means 'visible and enabled': in other +	/// words, can a user actually interact with this? +	virtual bool	isAvailable() const; +	/// The static isAvailable() tests an LLView* that could be NULL. +	static bool		isAvailable(const LLView* view);  	U8              getSoundFlags() const       { return mSoundFlags; }  	virtual BOOL	setLabelArg( const std::string& key, const LLStringExplicit& text );  | 
