summaryrefslogtreecommitdiff
path: root/indra/newview/lloutputmonitorctrl.h
diff options
context:
space:
mode:
authorJames Cook <james@lindenlab.com>2010-01-15 12:02:56 -0800
committerJames Cook <james@lindenlab.com>2010-01-15 12:02:56 -0800
commit4acf56d2a79a4f3bb555977aeaef21e15e26f684 (patch)
treeac0d8ff2225916323d9b942246edd458e04fd738 /indra/newview/lloutputmonitorctrl.h
parent3f83c05f7c71887825c907b0e148d81cd7de5324 (diff)
parentc9cf84913d306103da51dc83e5932ff3fb308d32 (diff)
Merge in viewer-2-0 changes
Diffstat (limited to 'indra/newview/lloutputmonitorctrl.h')
-rw-r--r--indra/newview/lloutputmonitorctrl.h29
1 files changed, 28 insertions, 1 deletions
diff --git a/indra/newview/lloutputmonitorctrl.h b/indra/newview/lloutputmonitorctrl.h
index 85ea552a57..2bbfa251e9 100644
--- a/indra/newview/lloutputmonitorctrl.h
+++ b/indra/newview/lloutputmonitorctrl.h
@@ -36,6 +36,7 @@
#include "v4color.h"
#include "llview.h"
#include "llmutelist.h"
+#include "llspeakingindicatormanager.h"
class LLTextBox;
class LLUICtrlFactory;
@@ -45,7 +46,7 @@ class LLUICtrlFactory;
//
class LLOutputMonitorCtrl
-: public LLView, LLMuteListObserver
+: public LLView, public LLSpeakingIndicator, LLMuteListObserver
{
public:
struct Params : public LLInitParam::Block<Params, LLView::Params>
@@ -90,7 +91,29 @@ public:
//called by mute list
virtual void onChange();
+ /**
+ * Implementation of LLSpeakingIndicator interface.
+ * Behavior is implemented via changing visibility.
+ *
+ * If instance is in visible chain now (all parents are visible) it changes visibility
+ * and notify parent about this.
+ *
+ * Otherwise it marks an instance as dirty and stores necessary visibility.
+ * It will be applied in next draw and parent will be notified.
+ */
+ virtual void switchIndicator(bool switch_on);
+
private:
+
+ /**
+ * Notifies parent about changed visibility.
+ *
+ * Passes LLSD with "visibility_changed" => <current visibility> value.
+ * For now it is processed by LLAvatarListItem to update (reshape) its children.
+ * Implemented fo complete EXT-3976
+ */
+ void notifyParentVisibilityChanged();
+
//static LLColor4 sColorMuted;
//static LLColor4 sColorNormal;
//static LLColor4 sColorOverdriven;
@@ -117,6 +140,10 @@ private:
/** uuid of a speaker being monitored */
LLUUID mSpeakerId;
+
+ /** indicates if the instance is dirty and should notify parent */
+ bool mIsSwitchDirty;
+ bool mShouldSwitchOn;
};
#endif