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 ); |