summaryrefslogtreecommitdiff
path: root/indra/newview/llstatusbar.cpp
diff options
context:
space:
mode:
authorLynx Linden <lynx@lindenlab.com>2009-11-13 12:55:34 +0000
committerLynx Linden <lynx@lindenlab.com>2009-11-13 12:55:34 +0000
commita69bce6928f84d53edc776b19018c7726002be74 (patch)
tree5c1e589b031e6261d6e916c7dc92819f07720d30 /indra/newview/llstatusbar.cpp
parentbc9daf3ab2ed5c33a738e5f882b1237c7bd3d120 (diff)
EXT-2458: Added global mute/unmute button to the status bar.
Diffstat (limited to 'indra/newview/llstatusbar.cpp')
-rw-r--r--indra/newview/llstatusbar.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/indra/newview/llstatusbar.cpp b/indra/newview/llstatusbar.cpp
index 4dccdfd7e6..b649a0c38e 100644
--- a/indra/newview/llstatusbar.cpp
+++ b/indra/newview/llstatusbar.cpp
@@ -109,6 +109,7 @@ const S32 TEXT_HEIGHT = 18;
static void onClickBuyCurrency(void*);
static void onClickHealth(void*);
static void onClickScriptDebug(void*);
+static void onClickVolume(void*);
std::vector<std::string> LLStatusBar::sDays;
std::vector<std::string> LLStatusBar::sMonths;
@@ -116,6 +117,12 @@ const U32 LLStatusBar::MAX_DATE_STRING_LENGTH = 2000;
LLStatusBar::LLStatusBar(const LLRect& rect)
: LLPanel(),
+ mTextHealth(NULL),
+ mTextTime(NULL),
+ mSGBandwidth(NULL),
+ mSGPacketLoss(NULL),
+ mBtnBuyCurrency(NULL),
+ mBtnVolume(NULL),
mBalance(0),
mHealth(100),
mSquareMetersCredit(0),
@@ -148,6 +155,11 @@ LLStatusBar::LLStatusBar(const LLRect& rect)
mBtnBuyCurrency = getChild<LLButton>( "buycurrency" );
mBtnBuyCurrency->setClickedCallback( onClickBuyCurrency, this );
+ mBtnVolume = getChild<LLButton>( "volume_btn" );
+ mBtnVolume->setClickedCallback( onClickVolume, this );
+
+ gSavedSettings.getControl("MuteAudio")->getSignal()->connect(boost::bind(&LLStatusBar::onVolumeChanged, this, _2));
+
childSetAction("scriptout", onClickScriptDebug, this);
childSetAction("health", onClickHealth, this);
@@ -333,6 +345,10 @@ void LLStatusBar::refresh()
mSGBandwidth->setVisible(net_stats_visible);
mSGPacketLoss->setVisible(net_stats_visible);
childSetEnabled("stat_btn", net_stats_visible);
+
+ // update the master volume button state
+ BOOL mute_audio = gSavedSettings.getBOOL("MuteAudio");
+ mBtnVolume->setToggleState(mute_audio);
}
void LLStatusBar::setVisibleForMouselook(bool visible)
@@ -488,6 +504,13 @@ static void onClickScriptDebug(void*)
LLFloaterScriptDebug::show(LLUUID::null);
}
+static void onClickVolume(void* data)
+{
+ // toggle the master mute setting
+ BOOL mute_audio = gSavedSettings.getBOOL("MuteAudio");
+ gSavedSettings.setBOOL("MuteAudio", !mute_audio);
+}
+
// sets the static variables necessary for the date
void LLStatusBar::setupDate()
{
@@ -562,6 +585,10 @@ BOOL can_afford_transaction(S32 cost)
return((cost <= 0)||((gStatusBar) && (gStatusBar->getBalance() >=cost)));
}
+void LLStatusBar::onVolumeChanged(const LLSD& newvalue)
+{
+ refresh();
+}
// Implements secondlife:///app/balance/request to request a L$ balance
// update via UDP message system. JC