summaryrefslogtreecommitdiff
path: root/indra/llui
diff options
context:
space:
mode:
authorNat Goodspeed <nat@lindenlab.com>2009-10-17 12:00:12 -0400
committerNat Goodspeed <nat@lindenlab.com>2009-10-17 12:00:12 -0400
commited84101a6e31760b7a44de857669ce255ee67d9b (patch)
treee64cbf7227ac8dd98dd58d6ae45dff6709a10e84 /indra/llui
parent2a5c25cb3a47a319559aae6de1206e91b3c1647e (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.cpp12
-rw-r--r--indra/llui/llview.h5
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 );