diff options
| author | Leyla Farazha <leyla@lindenlab.com> | 2010-12-08 11:58:16 -0800 | 
|---|---|---|
| committer | Leyla Farazha <leyla@lindenlab.com> | 2010-12-08 11:58:16 -0800 | 
| commit | 0c1d9da1c1f3323ce6bb2d9ce6e74ab75df8dca1 (patch) | |
| tree | 8395f9e8cb5d71d544019ff3b933ea6fc48628b3 | |
| parent | 5216304b2cb5789c088ed82f4c46eac3a8179b15 (diff) | |
| parent | 52dd4daadaeaad69c17771ecc1dfdf5de6a2d69f (diff) | |
merge
| -rw-r--r-- | indra/llui/llmenugl.cpp | 2 | ||||
| -rw-r--r-- | indra/llui/llmenugl.h | 15 | ||||
| -rw-r--r-- | indra/llui/llpanel.h | 1 | ||||
| -rw-r--r-- | indra/llui/lluictrl.cpp | 29 | ||||
| -rw-r--r-- | indra/llui/lluictrl.h | 17 | ||||
| -rw-r--r-- | indra/newview/llinspectavatar.cpp | 131 | ||||
| -rw-r--r-- | indra/newview/llviewermenu.cpp | 35 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/inspect_avatar.xml | 44 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/menu_inspect_object_gear.xml | 16 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/menu_inspect_self_gear.xml | 2 | 
10 files changed, 189 insertions, 103 deletions
| diff --git a/indra/llui/llmenugl.cpp b/indra/llui/llmenugl.cpp index 907f2352a0..fd5c2b7fef 100644 --- a/indra/llui/llmenugl.cpp +++ b/indra/llui/llmenugl.cpp @@ -761,7 +761,7 @@ void LLMenuItemCallGL::initFromParams(const Params& p)  {  	if (p.on_visible.isProvided())  	{ -		mVisibleSignal.connect(initVisibleCallback(p.on_visible)); +		mVisibleSignal.connect(initEnableCallback(p.on_visible));  	}  	if (p.on_enable.isProvided())  	{ diff --git a/indra/llui/llmenugl.h b/indra/llui/llmenugl.h index cbb9b4d344..61e06f9e5f 100644 --- a/indra/llui/llmenugl.h +++ b/indra/llui/llmenugl.h @@ -175,9 +175,7 @@ protected:  	// This function appends the character string representation of  	// the current accelerator key and mask to the provided string.  	void appendAcceleratorString( std::string& st ) const; -	 -	void initMenuEnableCallback(const EnableCallbackParam& cb, enable_signal_t& sig); -	 +		  protected:  	KEY mAcceleratorKey;  	MASK mAcceleratorMask; @@ -249,7 +247,7 @@ public:  	{  		Optional<EnableCallbackParam > on_enable;  		Optional<CommitCallbackParam > on_click; -		Optional<VisibleCallbackParam > on_visible; +		Optional<EnableCallbackParam > on_visible;  		Params()  			: on_enable("on_enable"),  			  on_click("on_click"), @@ -284,15 +282,10 @@ public:  	{  		return mEnableSignal.connect(cb);  	} -	 -	boost::signals2::connection setVisibleCallback( const visible_signal_t::slot_type& cb ) -	{ -		return mVisibleSignal.connect(cb); -	} -	 +		  private:  	enable_signal_t mEnableSignal; -	visible_signal_t mVisibleSignal; +	enable_signal_t mVisibleSignal;  };  //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/indra/llui/llpanel.h b/indra/llui/llpanel.h index a8bd5fd5e5..d0986a06d3 100644 --- a/indra/llui/llpanel.h +++ b/indra/llui/llpanel.h @@ -249,7 +249,6 @@ protected:  	LLCallbackMap::map_t mFactoryMap;  	CommitCallbackRegistry::ScopedRegistrar mCommitCallbackRegistrar;  	EnableCallbackRegistry::ScopedRegistrar mEnableCallbackRegistrar; -	VisibleCallbackRegistry::ScopedRegistrar mVisibleCallbackRegistrar;  	commit_signal_t* mVisibleSignal;		// Called when visibility changes, passes new visibility as LLSD() diff --git a/indra/llui/lluictrl.cpp b/indra/llui/lluictrl.cpp index 706712ec5e..6044908ca7 100644 --- a/indra/llui/lluictrl.cpp +++ b/indra/llui/lluictrl.cpp @@ -232,11 +232,6 @@ bool default_enable_handler(LLUICtrl* ctrl, const LLSD& param)  	return true;  } -bool default_visible_handler(LLUICtrl* ctrl, const LLSD& param) -{ -	return true; -} -  LLUICtrl::commit_signal_t::slot_type LLUICtrl::initCommitCallback(const CommitCallbackParam& cb)  { @@ -290,30 +285,6 @@ LLUICtrl::enable_signal_t::slot_type LLUICtrl::initEnableCallback(const EnableCa  	return default_enable_handler;  } -LLUICtrl::visible_signal_t::slot_type LLUICtrl::initVisibleCallback(const VisibleCallbackParam& cb) -{ -	// Set the callback function -	if (cb.function.isProvided()) -	{ -		if (cb.parameter.isProvided()) -			return boost::bind(cb.function(), this, cb.parameter); -		else -			return cb.function(); -	} -	else -	{ -		visible_callback_t* func = (VisibleCallbackRegistry::getValue(cb.function_name)); -		if (func) -		{ -			if (cb.parameter.isProvided()) -				return boost::bind((*func), this, cb.parameter); -			else -				return visible_signal_t::slot_type(*func); -		} -	} -	return default_visible_handler; -} -  // virtual  void LLUICtrl::onMouseEnter(S32 x, S32 y, MASK mask)  { diff --git a/indra/llui/lluictrl.h b/indra/llui/lluictrl.h index b20ff5d798..b9a4f61e15 100644 --- a/indra/llui/lluictrl.h +++ b/indra/llui/lluictrl.h @@ -63,9 +63,6 @@ public:  	typedef boost::function<bool (LLUICtrl* ctrl, const LLSD& param)> enable_callback_t;  	typedef boost::signals2::signal<bool (LLUICtrl* ctrl, const LLSD& param), boost_boolean_combiner> enable_signal_t; -	typedef boost::function<bool (LLUICtrl* ctrl, const LLSD& param)> visible_callback_t; -	typedef boost::signals2::signal<bool (LLUICtrl* ctrl, const LLSD& param), boost_boolean_combiner> visible_signal_t; -	  	struct CallbackParam : public LLInitParam::Block<CallbackParam>  	{  		Ignored					name; @@ -83,16 +80,12 @@ public:  		Optional<commit_callback_t> function;  	}; +	// also used for visible callbacks  	struct EnableCallbackParam : public LLInitParam::Block<EnableCallbackParam, CallbackParam >  	{  		Optional<enable_callback_t> function;  	}; -	 -	struct VisibleCallbackParam : public LLInitParam::Block<VisibleCallbackParam, CallbackParam > -	{ -		Optional<visible_callback_t> function; -	}; -	 +		  	struct EnableControls : public LLInitParam::Choice<EnableControls>  	{  		Alternative<std::string> enabled; @@ -148,7 +141,6 @@ protected:  	commit_signal_t::slot_type initCommitCallback(const CommitCallbackParam& cb);  	enable_signal_t::slot_type initEnableCallback(const EnableCallbackParam& cb); -	visible_signal_t::slot_type initVisibleCallback(const VisibleCallbackParam& cb);  	// We need this virtual so we can override it with derived versions  	virtual LLViewModel* getViewModel() const; @@ -269,10 +261,9 @@ public:  	{};	  	class CommitCallbackRegistry : public CallbackRegistry<commit_callback_t, CommitCallbackRegistry>{}; +	// the enable callback registry is also used for visiblity callbacks  	class EnableCallbackRegistry : public CallbackRegistry<enable_callback_t, EnableCallbackRegistry>{}; -	class VisibleCallbackRegistry : public CallbackRegistry<visible_callback_t, VisibleCallbackRegistry>{}; - -	 +		  protected:  	static bool controlListener(const LLSD& newvalue, LLHandle<LLUICtrl> handle, std::string type); diff --git a/indra/newview/llinspectavatar.cpp b/indra/newview/llinspectavatar.cpp index 83beae29c1..39114d64b4 100644 --- a/indra/newview/llinspectavatar.cpp +++ b/indra/newview/llinspectavatar.cpp @@ -42,10 +42,12 @@  #include "lldateutil.h"  #include "llfloaterreporter.h"  #include "llfloaterworldmap.h" +#include "llimview.h"  #include "llinspect.h"  #include "llmutelist.h"  #include "llpanelblockedlist.h"  #include "llstartup.h" +#include "llspeakers.h"  #include "llviewermenu.h"  #include "llvoiceclient.h"  #include "llviewerobjectlist.h" @@ -99,6 +101,12 @@ private:  	// Set the volume slider to this user's current client-side volume setting,  	// hiding/disabling if the user is not nearby.  	void updateVolumeSlider(); + +	// Shows/hides moderator panel depending on voice state  +	void updateModeratorPanel(); + +	// Moderator ability to enable/disable voice chat for avatar +	void toggleSelectedVoice(bool enabled);  	// Button callbacks  	void onClickAddFriend(); @@ -205,10 +213,12 @@ LLInspectAvatar::LLInspectAvatar(const LLSD& sd)  	mCommitCallbackRegistrar.add("InspectAvatar.Report",	boost::bind(&LLInspectAvatar::onClickReport, this));	  	mCommitCallbackRegistrar.add("InspectAvatar.FindOnMap",	boost::bind(&LLInspectAvatar::onClickFindOnMap, this));	  	mCommitCallbackRegistrar.add("InspectAvatar.ZoomIn", boost::bind(&LLInspectAvatar::onClickZoomIn, this)); -	mVisibleCallbackRegistrar.add("InspectAvatar.VisibleFindOnMap",	boost::bind(&LLInspectAvatar::onVisibleFindOnMap, this));	 -	mVisibleCallbackRegistrar.add("InspectAvatar.VisibleFreezeEject",	 +	mCommitCallbackRegistrar.add("InspectAvatar.DisableVoice", boost::bind(&LLInspectAvatar::toggleSelectedVoice, this, false)); +	mCommitCallbackRegistrar.add("InspectAvatar.EnableVoice", boost::bind(&LLInspectAvatar::toggleSelectedVoice, this, true)); +	mEnableCallbackRegistrar.add("InspectAvatar.VisibleFindOnMap",	boost::bind(&LLInspectAvatar::onVisibleFindOnMap, this));	 +	mEnableCallbackRegistrar.add("InspectAvatar.VisibleFreezeEject",	  		boost::bind(&LLInspectAvatar::onVisibleFreezeEject, this));	 -	mVisibleCallbackRegistrar.add("InspectAvatar.VisibleZoomIn",  +	mEnableCallbackRegistrar.add("InspectAvatar.VisibleZoomIn",   		boost::bind(&LLInspectAvatar::onVisibleZoomIn, this));  	mEnableCallbackRegistrar.add("InspectAvatar.Gear.Enable", boost::bind(&LLInspectAvatar::isNotFriend, this)); @@ -277,6 +287,8 @@ void LLInspectAvatar::onOpen(const LLSD& data)  	requestUpdate();  	updateVolumeSlider(); + +	updateModeratorPanel();  }  // virtual @@ -366,6 +378,119 @@ void LLInspectAvatar::processAvatarData(LLAvatarData* data)  	mPropertiesRequest = NULL;  } +void LLInspectAvatar::updateModeratorPanel() +{ +	bool enable_moderator_panel = false; + +    if (LLVoiceChannel::getCurrentVoiceChannel()) +    { +		LLUUID session_id = LLVoiceChannel::getCurrentVoiceChannel()->getSessionID(); + +		if (session_id != LLUUID::null) +		{ +			LLIMSpeakerMgr* speaker_mgr = LLIMModel::getInstance()->getSpeakerManager(session_id); + +			if (speaker_mgr) +			{ +				LLPointer<LLSpeaker> self_speakerp = speaker_mgr->findSpeaker(gAgent.getID()); +				LLPointer<LLSpeaker> selected_speakerp = speaker_mgr->findSpeaker(mAvatarID); +				 +				if(speaker_mgr->isVoiceActive() && selected_speakerp &&  +					((self_speakerp && self_speakerp->mIsModerator) || gAgent.isGodlike())) +				{ +					getChild<LLUICtrl>("enable_voice")->setVisible(selected_speakerp->mModeratorMutedVoice); +					getChild<LLUICtrl>("disable_voice")->setVisible(!selected_speakerp->mModeratorMutedVoice); + +					enable_moderator_panel = true; +				} +			} +		} +	} + +	if (enable_moderator_panel) +	{ +		if (!getChild<LLUICtrl>("moderator_panel")->getVisible()) +		{ +			getChild<LLUICtrl>("moderator_panel")->setVisible(true); +			// stretch the floater so it can accommodate the moderator panel +			reshape(getRect().getWidth(), getRect().getHeight() + getChild<LLUICtrl>("moderator_panel")->getRect().getHeight()); +		} +	} +	else if (getChild<LLUICtrl>("moderator_panel")->getVisible()) +	{ +		getChild<LLUICtrl>("moderator_panel")->setVisible(false); +		// shrink the inspector floater back to original size +		reshape(getRect().getWidth(), getRect().getHeight() - getChild<LLUICtrl>("moderator_panel")->getRect().getHeight());					 +	} +} + +void LLInspectAvatar::toggleSelectedVoice(bool enabled) +{ +	LLUUID session_id = LLVoiceChannel::getCurrentVoiceChannel()->getSessionID(); +	LLIMSpeakerMgr* speaker_mgr = LLIMModel::getInstance()->getSpeakerManager(session_id); + +	if (speaker_mgr) +	{ +		if (!gAgent.getRegion()) +			return; + +		std::string url = gAgent.getRegion()->getCapability("ChatSessionRequest"); +		LLSD data; +		data["method"] = "mute update"; +		data["session-id"] = session_id; +		data["params"] = LLSD::emptyMap(); +		data["params"]["agent_id"] = mAvatarID; +		data["params"]["mute_info"] = LLSD::emptyMap(); +		// ctrl value represents ability to type, so invert +		data["params"]["mute_info"]["voice"] = !enabled; + +		class MuteVoiceResponder : public LLHTTPClient::Responder +		{ +		public: +			MuteVoiceResponder(const LLUUID& session_id) +			{ +				mSessionID = session_id; +			} + +			virtual void error(U32 status, const std::string& reason) +			{ +				llwarns << status << ": " << reason << llendl; + +				if ( gIMMgr ) +				{ +					//403 == you're not a mod +					//should be disabled if you're not a moderator +					if ( 403 == status ) +					{ +						gIMMgr->showSessionEventError( +							"mute", +							"not_a_moderator", +							mSessionID); +					} +					else +					{ +						gIMMgr->showSessionEventError( +							"mute", +							"generic", +							mSessionID); +					} +				} +			} + +		private: +			LLUUID mSessionID; +		}; + +		LLHTTPClient::post( +			url, +			data, +			new MuteVoiceResponder(speaker_mgr->getSessionID())); +	} + +	closeFloater(); + +} +  void LLInspectAvatar::updateVolumeSlider()  {  	// By convention, we only display and toggle voice mutes, not all mutes diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index 431b4d3c0a..86c29c388e 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -7558,12 +7558,11 @@ void initialize_menus()  	LLUICtrl::EnableCallbackRegistry::Registrar& enable = LLUICtrl::EnableCallbackRegistry::currentRegistrar();  	LLUICtrl::CommitCallbackRegistry::Registrar& commit = LLUICtrl::CommitCallbackRegistry::currentRegistrar(); -	LLUICtrl::VisibleCallbackRegistry::Registrar& visible = LLUICtrl::VisibleCallbackRegistry::currentRegistrar();  	// Generic enable and visible  	// Don't prepend MenuName.Foo because these can be used in any menu.  	enable.add("IsGodCustomerService", boost::bind(&is_god_customer_service)); -	visible.add("IsGodCustomerService", boost::bind(&is_god_customer_service)); +	enable.add("IsGodCustomerService", boost::bind(&is_god_customer_service));  	// Agent  	commit.add("Agent.toggleFlying", boost::bind(&LLAgent::toggleFlying)); @@ -7670,7 +7669,6 @@ void initialize_menus()  	view_listener_t::addMenu(new LLToolsEnableLink(), "Tools.EnableLink");  	view_listener_t::addMenu(new LLToolsEnableUnlink(), "Tools.EnableUnlink");  	view_listener_t::addMenu(new LLToolsEnableBuyOrTake(), "Tools.EnableBuyOrTake"); -	visible.add("Tools.VisibleTakeCopy", boost::bind(&enable_object_take_copy));  	enable.add("Tools.EnableTakeCopy", boost::bind(&enable_object_take_copy));  	view_listener_t::addMenu(new LLToolsEnableSaveToInventory(), "Tools.EnableSaveToInventory");  	view_listener_t::addMenu(new LLToolsEnableSaveToObjectInventory(), "Tools.EnableSaveToObjectInventory"); @@ -7846,7 +7844,6 @@ void initialize_menus()  	view_listener_t::addMenu(new LLSelfStandUp(), "Self.StandUp");  	view_listener_t::addMenu(new LLSelfRemoveAllAttachments(), "Self.RemoveAllAttachments"); -	visible.add("Self.VisibleStandUp", boost::bind(&enable_standup_self));  	enable.add("Self.EnableStandUp", boost::bind(&enable_standup_self));  	view_listener_t::addMenu(new LLSelfEnableRemoveAllAttachments(), "Self.EnableRemoveAllAttachments"); @@ -7869,59 +7866,42 @@ void initialize_menus()  	view_listener_t::addMenu(new LLAvatarEnableAddFriend(), "Avatar.EnableAddFriend");  	enable.add("Avatar.EnableFreezeEject", boost::bind(&enable_freeze_eject, _2)); -	visible.add("Avatar.EnableFreezeEject", boost::bind(&enable_freeze_eject, _2)); +	enable.add("Avatar.EnableFreezeEject", boost::bind(&enable_freeze_eject, _2));  	// Object pie menu  	view_listener_t::addMenu(new LLObjectBuild(), "Object.Build");  	commit.add("Object.Touch", boost::bind(&handle_object_touch));  	commit.add("Object.SitOrStand", boost::bind(&handle_object_sit_or_stand)); -	visible.add("Object.EnableSit", boost::bind(&enable_sit_object)); +	enable.add("Object.EnableSit", boost::bind(&enable_sit_object));  	commit.add("Object.Delete", boost::bind(&handle_object_delete));  	view_listener_t::addMenu(new LLObjectAttachToAvatar(), "Object.AttachToAvatar");  	view_listener_t::addMenu(new LLObjectReturn(), "Object.Return");  	view_listener_t::addMenu(new LLObjectReportAbuse(), "Object.ReportAbuse");  	view_listener_t::addMenu(new LLObjectMute(), "Object.Mute"); -	visible.add("Object.VisibleTake", boost::bind(&visible_take_object)); -	visible.add("Object.VisibleBuy", boost::bind(&visible_buy_object)); +	enable.add("Object.VisibleTake", boost::bind(&visible_take_object)); +	enable.add("Object.VisibleBuy", boost::bind(&visible_buy_object));  	commit.add("Object.Buy", boost::bind(&handle_buy));  	commit.add("Object.Edit", boost::bind(&handle_object_edit));  	commit.add("Object.Inspect", boost::bind(&handle_object_inspect));  	commit.add("Object.Open", boost::bind(&handle_object_open)); -	  	commit.add("Object.Take", boost::bind(&handle_take)); -  	enable.add("Object.EnableOpen", boost::bind(&enable_object_open)); -	visible.add("Object.VisibleOpen", boost::bind(&enable_object_open)); -  	enable.add("Object.EnableTouch", boost::bind(&enable_object_touch)); -	visible.add("Object.VisibleTouch", boost::bind(&enable_object_touch)); -  	view_listener_t::addMenu(new LLObjectEnableTouch(), "Object.EnableTouch");  	view_listener_t::addMenu(new LLObjectEnableSitOrStand(), "Object.EnableSitOrStand"); -	  	enable.add("Object.EnableDelete", boost::bind(&enable_object_delete)); -	visible.add("Object.VisibleDelete", boost::bind(&enable_object_delete)); -  	enable.add("Object.EnableWear", boost::bind(&object_selected_and_point_valid)); -	visible.add("Object.VisibleWear", boost::bind(&object_selected_and_point_valid));  	view_listener_t::addMenu(new LLObjectEnableReturn(), "Object.EnableReturn");  	view_listener_t::addMenu(new LLObjectEnableReportAbuse(), "Object.EnableReportAbuse");  	enable.add("Avatar.EnableMute", boost::bind(&enable_object_mute));  	enable.add("Object.EnableMute", boost::bind(&enable_object_mute)); -	visible.add("Object.VisibleMute", boost::bind(&enable_object_mute));  	enable.add("Object.EnableBuy", boost::bind(&enable_buy_object)); -	/*view_listener_t::addMenu(new LLObjectVisibleTouch(), "Object.VisibleTouch"); -	view_listener_t::addMenu(new LLObjectVisibleCustomTouch(), "Object.VisibleCustomTouch"); -	view_listener_t::addMenu(new LLObjectVisibleStandUp(), "Object.VisibleStandUp"); -	view_listener_t::addMenu(new LLObjectVisibleSitHere(), "Object.VisibleSitHere"); -	view_listener_t::addMenu(new LLObjectVisibleCustomSit(), "Object.VisibleCustomSit");*/ -  	// Attachment pie menu  	enable.add("Attachment.Label", boost::bind(&onEnableAttachmentLabel, _1, _2));  	view_listener_t::addMenu(new LLAttachmentDrop(), "Attachment.Drop"); @@ -7950,12 +7930,9 @@ void initialize_menus()  	commit.add("PayObject", boost::bind(&handle_give_money_dialog));  	enable.add("EnablePayObject", boost::bind(&enable_pay_object)); -	visible.add("VisiblePayObject", boost::bind(&enable_pay_object));  	enable.add("EnablePayAvatar", boost::bind(&enable_pay_avatar));  	enable.add("EnableEdit", boost::bind(&enable_object_edit)); -	visible.add("VisibleBuild", boost::bind(&enable_object_build)); -	visible.add("VisibleEdit", boost::bind(&enable_object_edit)); -	visible.add("Object.VisibleEdit", boost::bind(&enable_object_edit)); +	enable.add("VisibleBuild", boost::bind(&enable_object_build));  	view_listener_t::addMenu(new LLFloaterVisible(), "FloaterVisible");  	view_listener_t::addMenu(new LLShowSidetrayPanel(), "ShowSidetrayPanel"); diff --git a/indra/newview/skins/default/xui/en/inspect_avatar.xml b/indra/newview/skins/default/xui/en/inspect_avatar.xml index 8349f594d9..996d0f1b72 100644 --- a/indra/newview/skins/default/xui/en/inspect_avatar.xml +++ b/indra/newview/skins/default/xui/en/inspect_avatar.xml @@ -33,7 +33,7 @@  [SL_PROFILE]      </string>    <text -     follows="all" +     follows="top|left"       font="SansSerifLarge"       height="16"       left="8" @@ -44,7 +44,7 @@       value="Grumpity ProductEngine"       width="175" />      <text -     follows="all" +     follows="top|left"       height="16"       left="8"       name="user_subtitle" @@ -76,7 +76,7 @@       value="0.5"       width="195" />      <button -     follows="all" +     follows="top|left"       height="16"       image_disabled="Audio_Off"       image_disabled_selected="AudioMute_Off" @@ -89,7 +89,7 @@       name="mute_btn"       width="16" />      <avatar_icon -     follows="all" +     follows="top|left"       height="38"       right="-10"       bevel_style="in" @@ -102,7 +102,7 @@      llinspectavatar.cpp makes visible the most likely default action   -->      <button -     follows="bottom|left" +     follows="top|left"       height="20"       label="Add Friend"       left="8" @@ -110,7 +110,7 @@       name="add_friend_btn"       width="90" />      <button -     follows="bottom|left" +     follows="top|left"       height="20"       label="IM"       left_delta="0" @@ -129,7 +129,8 @@       tab_stop="false"       width="80" />        <!--  gear buttons here --> -     <menu_button +  <menu_button +     follows="top|left"       height="20"       layout="topleft"       image_overlay="OptionsMenu_Off" @@ -147,4 +148,33 @@       right="-5"       top_delta="0"       width="35" /> +  <panel  +    follows="top|left"  +    top="148"  +    left="0"  +    height="60"  +    width="228"  +    visible="false" +    background_visible="true" +    name="moderator_panel" +    background_opaque="true"  +    bg_opaque_color="MouseGray"> +    <button +      name="disable_voice" +      label="Disable Voice" +      top="20" +      width="95" +      height="20" +      left="10" +      commit_callback.function="InspectAvatar.DisableVoice"/> +    <button +      name="enable_voice" +      label="Enable Voice" +      top="20" +      width="95" +      height="20" +      left="10" +      visible="false"  +      commit_callback.function="InspectAvatar.EnableVoice"/> +  </panel>  </floater> diff --git a/indra/newview/skins/default/xui/en/menu_inspect_object_gear.xml b/indra/newview/skins/default/xui/en/menu_inspect_object_gear.xml index 04a247fd54..22df02cd7e 100644 --- a/indra/newview/skins/default/xui/en/menu_inspect_object_gear.xml +++ b/indra/newview/skins/default/xui/en/menu_inspect_object_gear.xml @@ -13,7 +13,7 @@      <menu_item_call.on_click       function="InspectObject.Touch"/>      <menu_item_call.on_visible -     function="Object.VisibleTouch" /> +     function="Object.EnableTouch" />    </menu_item_call>    <menu_item_call    label="Sit" @@ -31,7 +31,7 @@      <menu_item_call.on_click       function="InspectObject.Pay"/>      <menu_item_call.on_visible -     function="VisiblePayObject" /> +     function="EnablePayObject" />    </menu_item_call>    <menu_item_call     label="Buy" @@ -59,7 +59,7 @@      <menu_item_call.on_click       function="InspectObject.TakeFreeCopy"/>      <menu_item_call.on_visible -      function="Tools.VisibleTakeCopy"/> +      function="Tools.EnableTakeCopy"/>    </menu_item_call>    <menu_item_call     label="Open" @@ -68,7 +68,7 @@      <menu_item_call.on_click       function="InspectObject.Open"/>      <menu_item_call.on_visible -     function="Object.VisibleOpen" /> +     function="Object.EnableOpen" />    </menu_item_call>    <menu_item_call     label="Edit" @@ -77,7 +77,7 @@          <menu_item_call.on_click           function="Object.Edit" />          <menu_item_call.on_enable -         function="Object.VisibleEdit"/> +         function="EnableEdit"/>    </menu_item_call>      <menu_item_call     label="Wear" @@ -86,7 +86,7 @@      <menu_item_call.on_click       function="Object.AttachToAvatar" />      <menu_item_call.on_visible -     function="Object.VisibleWear" /> +     function="Object.EnableWear" />    </menu_item_call>      <menu_item_call     label="Report" @@ -102,7 +102,7 @@      <menu_item_call.on_click       function="Object.Mute" />      <menu_item_call.on_visible -     function="Object.VisibleMute" /> +     function="Object.EnableMute" />    </menu_item_call>    <menu_item_call      label="Zoom In" @@ -118,7 +118,7 @@        <menu_item_call.on_click         function="Object.Delete" />        <menu_item_call.on_visible -       function="Object.VisibleDelete" /> +       function="Object.EnableDelete" />    </menu_item_call>    <menu_item_call     label="More Info" diff --git a/indra/newview/skins/default/xui/en/menu_inspect_self_gear.xml b/indra/newview/skins/default/xui/en/menu_inspect_self_gear.xml index 3d65878cf8..9894a01701 100644 --- a/indra/newview/skins/default/xui/en/menu_inspect_self_gear.xml +++ b/indra/newview/skins/default/xui/en/menu_inspect_self_gear.xml @@ -13,7 +13,7 @@       function="Self.StandUp"       parameter="" />      <menu_item_call.on_visible -     function="Self.VisibleStandUp" /> +     function="Self.EnableStandUp" />    </menu_item_call>    <menu_item_call     label="My Appearance" | 
