diff options
author | Nat Goodspeed <nat@lindenlab.com> | 2009-10-17 12:00:12 -0400 |
---|---|---|
committer | Nat Goodspeed <nat@lindenlab.com> | 2009-10-17 12:00:12 -0400 |
commit | ed84101a6e31760b7a44de857669ce255ee67d9b (patch) | |
tree | e64cbf7227ac8dd98dd58d6ae45dff6709a10e84 /indra/llui | |
parent | 2a5c25cb3a47a319559aae6de1206e91b3c1647e (diff) |
Introduce LLView::isAvailable() to test enabled & visible.
Better term? The point of the method is to verify that a user could
actually interact with the LLView in question.
Diffstat (limited to 'indra/llui')
-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 ); |