diff options
Diffstat (limited to 'indra/newview')
| -rw-r--r-- | indra/newview/llpanelavatar.cpp | 25 | ||||
| -rw-r--r-- | indra/newview/llpanelavatar.h | 12 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/menu_profile_overflow.xml | 15 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/panel_profile.xml | 20 | 
4 files changed, 65 insertions, 7 deletions
| diff --git a/indra/newview/llpanelavatar.cpp b/indra/newview/llpanelavatar.cpp index 3b54f1546e..f0aa189b7f 100644 --- a/indra/newview/llpanelavatar.cpp +++ b/indra/newview/llpanelavatar.cpp @@ -41,6 +41,7 @@  #include "llimview.h"  #include "lltexteditor.h"  #include "lltexturectrl.h" +#include "lltoggleablemenu.h"  #include "lltooldraganddrop.h"  #include "llscrollcontainer.h"  #include "llavatariconctrl.h" @@ -333,8 +334,14 @@ BOOL LLPanelAvatarProfile::postBuild()  	childSetCommitCallback("im",(boost::bind(&LLPanelAvatarProfile::onIMButtonClick,this)),NULL);  	childSetCommitCallback("call",(boost::bind(&LLPanelAvatarProfile::onCallButtonClick,this)),NULL);  	childSetCommitCallback("teleport",(boost::bind(&LLPanelAvatarProfile::onTeleportButtonClick,this)),NULL); +	childSetCommitCallback("overflow_btn", boost::bind(&LLPanelAvatarProfile::onOverflowButtonClicked, this), NULL);  	childSetCommitCallback("share",(boost::bind(&LLPanelAvatarProfile::onShareButtonClick,this)),NULL); +	LLUICtrl::CommitCallbackRegistry::ScopedRegistrar registrar; +	registrar.add("Profile.Pay",  boost::bind(&LLPanelAvatarProfile::pay, this)); + +	mProfileMenu = LLUICtrlFactory::getInstance()->createFromFile<LLToggleableMenu>("menu_profile_overflow.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance()); +  	LLTextureCtrl* pic = getChild<LLTextureCtrl>("2nd_life_pic");  	pic->setFallbackImageName("default_profile_picture.j2c"); @@ -513,6 +520,11 @@ void LLPanelAvatarProfile::fillAccountStatus(const LLAvatarData* avatar_data)  	childSetValue("acc_status_text", caption_text);  } +void LLPanelAvatarProfile::pay() +{ +	LLAvatarActions::pay(getAvatarId()); +} +  void LLPanelAvatarProfile::onUrlTextboxClicked(const std::string& url)  {  	LLWeb::loadURL(url); @@ -552,6 +564,19 @@ void LLPanelAvatarProfile::onShareButtonClick()  	//*TODO not implemented  } +void LLPanelAvatarProfile::onOverflowButtonClicked() +{ +	if (!mProfileMenu->toggleVisibility()) +		return; + +	LLView* btn = getChild<LLView>("overflow_btn"); +	LLRect rect = btn->getRect(); + +	mProfileMenu->updateParent(LLMenuGL::sMenuContainer); +	mProfileMenu->setButtonRect(btn->getLocalRect(), btn); +	LLMenuGL::showPopup(this, mProfileMenu, rect.mRight, rect.mTop); +} +  //////////////////////////////////////////////////////////////////////////  //////////////////////////////////////////////////////////////////////////  ////////////////////////////////////////////////////////////////////////// diff --git a/indra/newview/llpanelavatar.h b/indra/newview/llpanelavatar.h index ae0b8e9844..a0caf0c915 100644 --- a/indra/newview/llpanelavatar.h +++ b/indra/newview/llpanelavatar.h @@ -38,6 +38,7 @@  class LLComboBox;  class LLLineEditor; +class LLToggleableMenu;  enum EOnlineStatus  { @@ -160,12 +161,17 @@ protected:  	 * Fills Avatar's online status.  	 */  	virtual void fillOnlineStatus(const LLAvatarData* avatar_data); -	 +  	/**  	 * Fills account status.  	 */  	virtual void fillAccountStatus(const LLAvatarData* avatar_data); +	/** +	 * Opens "Pay Resident" dialog. +	 */ +	void pay(); +  	void onUrlTextboxClicked(const std::string& url);  	void onHomepageTextboxClicked();  	void onAddFriendButtonClick(); @@ -173,10 +179,12 @@ protected:  	void onCallButtonClick();  	void onTeleportButtonClick();  	void onShareButtonClick(); +	void onOverflowButtonClicked();  private: -	std::string mGroups; +	std::string 			mGroups; +	LLToggleableMenu*		mProfileMenu;  };  /** diff --git a/indra/newview/skins/default/xui/en/menu_profile_overflow.xml b/indra/newview/skins/default/xui/en/menu_profile_overflow.xml new file mode 100644 index 0000000000..7b52fecef7 --- /dev/null +++ b/indra/newview/skins/default/xui/en/menu_profile_overflow.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<toggleable_menu + height="50" + layout="topleft" + mouse_opaque="false" + name="profile_overflow_menu" + width="120"> +    <menu_item_call +     label="Pay" +     layout="topleft" +     name="pay"> +        <menu_item_call.on_click +         function="Profile.Pay" /> +    </menu_item_call> +</toggleable_menu> diff --git a/indra/newview/skins/default/xui/en/panel_profile.xml b/indra/newview/skins/default/xui/en/panel_profile.xml index 0f5e96416d..5110b6b2ef 100644 --- a/indra/newview/skins/default/xui/en/panel_profile.xml +++ b/indra/newview/skins/default/xui/en/panel_profile.xml @@ -283,7 +283,7 @@           mouse_opaque="false"           name="add_friend"           top="5" -         width="75" /> +         width="76" />          <button           follows="bottom|left"           height="19" @@ -292,7 +292,7 @@           name="im"           top="5"           left_pad="5" -         width="45" /> +         width="31" />          <button           follows="bottom|left"           height="19" @@ -301,7 +301,7 @@           name="call"           left_pad="5"           top="5" -         width="45" /> +         width="40" />          <button           enabled="false"           follows="bottom|left" @@ -311,7 +311,7 @@           name="show_on_map_btn"           top="5"           left_pad="5" -         width="45" /> +         width="42" />          <button           follows="bottom|left"           height="19" @@ -320,7 +320,17 @@           name="teleport"           left_pad="5"           top="5" -         width="80" /> +         width="64" /> +        <button +         follows="bottom|right" +         font="SansSerifSmall" +         height="19" +         label="▼" +         layout="topleft" +         name="overflow_btn" +         right="-1" +         top="5" +         width="21" />   </panel>   <panel       follows="bottom|left" | 
