diff options
Diffstat (limited to 'indra')
39 files changed, 530 insertions, 270 deletions
| diff --git a/indra/llui/llfloaterreg.cpp b/indra/llui/llfloaterreg.cpp index f8e07913fb..03925f922c 100644 --- a/indra/llui/llfloaterreg.cpp +++ b/indra/llui/llfloaterreg.cpp @@ -367,7 +367,7 @@ std::string LLFloaterReg::declareVisibilityControl(const std::string& name)  std::string LLFloaterReg::declareDockStateControl(const std::string& name)  {  	std::string controlname = getDockStateControlName(name); -	LLUI::sSettingGroups["floater"]->declareBOOL(controlname, FALSE, +	LLUI::sSettingGroups["floater"]->declareBOOL(controlname, TRUE,  												 llformat("Window Docking state for %s", name.c_str()),  												 TRUE);  	return controlname; diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 2978ef210f..cba9b09dc0 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -238,7 +238,6 @@ set(viewer_SOURCE_FILES      llhudrender.cpp      llhudtext.cpp      llhudview.cpp -    llimcontrolpanel.cpp      llimfloater.cpp      llimhandler.cpp      llimpanel.cpp @@ -291,6 +290,7 @@ set(viewer_SOURCE_FILES      llnotificationalerthandler.cpp      llnotificationgrouphandler.cpp      llnotificationmanager.cpp +    llnotificationofferhandler.cpp      llnotificationscripthandler.cpp      llnotificationtiphandler.cpp      llnotify.cpp @@ -727,7 +727,6 @@ set(viewer_HEADER_FILES      llhudrender.h      llhudtext.h      llhudview.h -    llimcontrolpanel.h      llimfloater.h      llimpanel.h      llimview.h diff --git a/indra/newview/llavataractions.cpp b/indra/newview/llavataractions.cpp index 97e0aa5f46..67ffe54b7e 100644 --- a/indra/newview/llavataractions.cpp +++ b/indra/newview/llavataractions.cpp @@ -57,6 +57,7 @@  #include "llviewerobjectlist.h"  #include "llviewermessage.h"	// for handle_lure  #include "llviewerregion.h" +#include "llimfloater.h"  // static @@ -176,7 +177,8 @@ void LLAvatarActions::startIM(const LLUUID& id)  	std::string name;  	gCacheName->getFullName(id, name); -	gIMMgr->addSession(name, IM_NOTHING_SPECIAL, id); +	LLUUID session_id = gIMMgr->addSession(name, IM_NOTHING_SPECIAL, id); +	LLIMFloater::show(session_id);  	make_ui_sound("UISndStartIM");  } diff --git a/indra/newview/llchathistory.cpp b/indra/newview/llchathistory.cpp index e561507e69..2ccd6b7d35 100644 --- a/indra/newview/llchathistory.cpp +++ b/indra/newview/llchathistory.cpp @@ -132,8 +132,7 @@ public:  		menu = LLUICtrlFactory::getInstance()->createFromFile<LLMenuGL>("menu_object_icon.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance());  		mPopupMenuHandleObject = menu->getHandle(); -		LLPanel* visible_panel = getChild<LLPanel>("im_header"); -		visible_panel->setMouseDownCallback(boost::bind(&LLChatHistoryHeader::onHeaderPanelClick, this, _2, _3, _4)); +		setMouseDownCallback(boost::bind(&LLChatHistoryHeader::onHeaderPanelClick, this, _2, _3, _4));  		return LLPanel::postBuild();  	} @@ -290,7 +289,11 @@ mMessageSeparatorFilename(p.message_separator),  mLeftTextPad(p.left_text_pad),  mRightTextPad(p.right_text_pad),  mLeftWidgetPad(p.left_widget_pad), -mRightWidgetPad(p.right_widget_pad) +mRightWidgetPad(p.right_widget_pad), +mTopSeparatorPad(p.top_separator_pad), +mBottomSeparatorPad(p.bottom_separator_pad), +mTopHeaderPad(p.top_header_pad), +mBottomHeaderPad(p.bottom_header_pad)  {  } @@ -332,16 +335,30 @@ void LLChatHistory::appendWidgetMessage(const LLChat& chat, LLStyle::Params& sty  	LLView* view = NULL;  	std::string view_text; +	LLInlineViewSegment::Params p; +	p.force_newline = true; +	p.left_pad = mLeftWidgetPad; +	p.right_pad = mRightWidgetPad; +  	if (mLastFromName == chat.mFromName)  	{  		view = getSeparator();  		view_text = "\n"; +		p.top_pad = mTopSeparatorPad; +		p.bottom_pad = mBottomSeparatorPad;  	}  	else  	{  		view = getHeader(chat);  		view_text = chat.mFromName + MESSAGE_USERNAME_DATE_SEPARATOR + formatCurrentTime() + '\n'; +		if (getText().size() == 0) +			p.top_pad = 0; +		else +			p.top_pad = mTopHeaderPad; +		p.bottom_pad = mBottomHeaderPad;  	} +	p.view = view; +  	//Prepare the rect for the view  	LLRect target_rect = getDocumentView()->getRect();  	// squeeze down the widget by subtracting padding off left and right @@ -350,12 +367,6 @@ void LLChatHistory::appendWidgetMessage(const LLChat& chat, LLStyle::Params& sty  	view->reshape(target_rect.getWidth(), view->getRect().getHeight());  	view->setOrigin(target_rect.mLeft, view->getRect().mBottom); -	LLInlineViewSegment::Params p; -	p.view = view; -	p.force_newline = true; -	p.left_pad = mLeftWidgetPad; -	p.right_pad = mRightWidgetPad; -  	appendWidget(p, view_text, false);  	//Append the text message diff --git a/indra/newview/llchathistory.h b/indra/newview/llchathistory.h index 92dcfdd958..3789ebff4e 100644 --- a/indra/newview/llchathistory.h +++ b/indra/newview/llchathistory.h @@ -54,6 +54,14 @@ class LLChatHistory : public LLTextEditor  			Optional<S32>			left_widget_pad;  			//Widget right padding from the scroll rect  			Optional<S32>			right_widget_pad; +			//Separator top padding +			Optional<S32>			top_separator_pad; +			//Separator bottom padding +			Optional<S32>			bottom_separator_pad; +			//Header top padding +			Optional<S32>			top_header_pad; +			//Header bottom padding +			Optional<S32>			bottom_header_pad;  			Params()  			:	message_header("message_header"), @@ -61,7 +69,11 @@ class LLChatHistory : public LLTextEditor  				left_text_pad("left_text_pad"),  				right_text_pad("right_text_pad"),  				left_widget_pad("left_widget_pad"), -				right_widget_pad("right_widget_pad") +				right_widget_pad("right_widget_pad"), +				top_separator_pad("top_separator_pad"), +				bottom_separator_pad("bottom_separator_pad"), +				top_header_pad("top_header_pad"), +				bottom_header_pad("bottom_header_pad")  				{  				} @@ -105,9 +117,16 @@ class LLChatHistory : public LLTextEditor  		std::string mLastFromName;  		std::string mMessageHeaderFilename;  		std::string mMessageSeparatorFilename; +  		S32 mLeftTextPad;  		S32 mRightTextPad; +  		S32 mLeftWidgetPad;  		S32 mRightWidgetPad; + +		S32 mTopSeparatorPad; +		S32 mBottomSeparatorPad; +		S32 mTopHeaderPad; +		S32 mBottomHeaderPad;  };  #endif /* LLCHATHISTORY_H_ */ diff --git a/indra/newview/llchiclet.cpp b/indra/newview/llchiclet.cpp index 0f259b885c..53c4bb32ca 100644 --- a/indra/newview/llchiclet.cpp +++ b/indra/newview/llchiclet.cpp @@ -211,7 +211,7 @@ LLIMChiclet::LLIMChiclet(const LLIMChiclet::Params& p)  	LLRect chiclet_rect = p.rect;  	LLRect overlay_icon_rect = LLRect(chiclet_rect.getWidth()/2, chiclet_rect.mTop, chiclet_rect.mRight, chiclet_rect.getHeight()/2);   	// shift an icon a little bit to the right and up corner of a chiclet -	overlay_icon_rect.translate(overlay_icon_rect.getWidth()/4, overlay_icon_rect.getHeight()/4); +	overlay_icon_rect.translate(overlay_icon_rect.getWidth()/5, overlay_icon_rect.getHeight()/5);  	mNewMessagesIcon->setRect(overlay_icon_rect);  	addChild(mNewMessagesIcon); @@ -246,8 +246,6 @@ BOOL LLIMChiclet::handleMouseDown(S32 x, S32 y, MASK mask)  void LLIMChiclet::draw()  {  	LLUICtrl::draw(); - -	gl_rect_2d(0, getRect().getHeight(), getRect().getWidth(), 0, LLColor4(0.0f,0.0f,0.0f,1.f), FALSE);  }  // static diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp index 66a3e3e85c..7e8701bf21 100644 --- a/indra/newview/llimview.cpp +++ b/indra/newview/llimview.cpp @@ -1604,7 +1604,6 @@ LLUUID LLIMMgr::addSession(  		LLIMModel::getInstance()->newSession(session_id, name, dialog, other_participant_id, ids);  	} -	LLIMFloater::show(session_id);  	//*TODO remove this "floater" thing when Communicate Floater's gone  	LLFloaterIMPanel* floater = findFloaterBySession(session_id); diff --git a/indra/newview/lljoystickbutton.cpp b/indra/newview/lljoystickbutton.cpp index 4fd3b7bddc..bd6702a0b2 100644 --- a/indra/newview/lljoystickbutton.cpp +++ b/indra/newview/lljoystickbutton.cpp @@ -517,43 +517,52 @@ void LLJoystickCameraRotate::draw()  	LLGLSUIDefault gls_ui;  	getImageUnselected()->draw( 0, 0 ); +	LLPointer<LLUIImage> image = getImageSelected();  	if( mInTop )  	{ -		drawRotatedImage( getImageSelected()->getImage(), 0 ); +		drawRotatedImage( getImageSelected(), 0 );  	}  	if( mInRight )  	{ -		drawRotatedImage( getImageSelected()->getImage(), 1 ); +		drawRotatedImage( getImageSelected(), 1 );  	}  	if( mInBottom )  	{ -		drawRotatedImage( getImageSelected()->getImage(), 2 ); +		drawRotatedImage( getImageSelected(), 2 );  	}  	if( mInLeft )  	{ -		drawRotatedImage( getImageSelected()->getImage(), 3 ); +		drawRotatedImage( getImageSelected(), 3 );  	}  }  // Draws image rotated by multiples of 90 degrees -void LLJoystickCameraRotate::drawRotatedImage( LLTexture* image, S32 rotations ) +void LLJoystickCameraRotate::drawRotatedImage( LLPointer<LLUIImage> image, S32 rotations )  {  	S32 width = image->getWidth();  	S32 height = image->getHeight(); - +	LLTexture* texture = image->getImage(); + +	/* +	 * Scale  texture coordinate system  +	 * to handle the different between image size and size of texture. +	 * If we will use default matrix,  +	 * it may break texture mapping after rotation. +	 * see EXT-2023 Camera floater: arrows became shifted when pressed. +	 */   	F32 uv[][2] =   	{ -		{ 1.f, 1.f }, -		{ 0.f, 1.f }, +		{ (F32)width/texture->getWidth(), (F32)height/texture->getHeight() }, +		{ 0.f, (F32)height/texture->getHeight() },  		{ 0.f, 0.f }, -		{ 1.f, 0.f } +		{ (F32)width/texture->getWidth(), 0.f }  	}; -	gGL.getTexUnit(0)->bind(image); +	gGL.getTexUnit(0)->bind(texture);  	gGL.color4fv(UI_VERTEX_COLOR.mV); diff --git a/indra/newview/lljoystickbutton.h b/indra/newview/lljoystickbutton.h index 8caef30fa4..4c657913b8 100644 --- a/indra/newview/lljoystickbutton.h +++ b/indra/newview/lljoystickbutton.h @@ -150,7 +150,7 @@ public:  protected:  	F32				getOrbitRate();  	virtual void	updateSlop(); -	void			drawRotatedImage( LLTexture* image, S32 rotations ); +	void			drawRotatedImage( LLPointer<LLUIImage> image, S32 rotations );  protected:  	BOOL			mInLeft; diff --git a/indra/newview/llnearbychat.cpp b/indra/newview/llnearbychat.cpp index 81d033d7f9..974291a54e 100644 --- a/indra/newview/llnearbychat.cpp +++ b/indra/newview/llnearbychat.cpp @@ -61,7 +61,7 @@  static const S32 RESIZE_BAR_THICKNESS = 3;  LLNearbyChat::LLNearbyChat(const LLSD& key)  -	: LLDockableFloater(NULL, key) +	: LLDockableFloater(NULL, false, key)  	,mChatHistory(NULL)  { @@ -107,12 +107,14 @@ BOOL LLNearbyChat::postBuild()  void    LLNearbyChat::applySavedVariables()  { -  	if (mRectControl.size() > 1)  	{  		const LLRect& rect = LLUI::sSettingGroups["floater"]->getRect(mRectControl); -		reshape(rect.getWidth(), rect.getHeight()); -		setRect(rect); +		if(!rect.isEmpty() && rect.isValid()) +		{ +			reshape(rect.getWidth(), rect.getHeight()); +			setRect(rect); +		}  	} diff --git a/indra/newview/llnotificationhandler.h b/indra/newview/llnotificationhandler.h index cd4e640ec4..23998a0e5d 100644 --- a/indra/newview/llnotificationhandler.h +++ b/indra/newview/llnotificationhandler.h @@ -53,7 +53,8 @@ typedef enum e_notification_type  	NT_GROUPCHAT,   	NT_NEARBYCHAT,   	NT_ALERT, -	NT_ALERTMODAL +	NT_ALERTMODAL, +	NT_OFFER  } ENotificationType;  /** @@ -231,6 +232,27 @@ protected:  	bool	mIsModal;  }; +/** + * Handler for offers notices. + * It manages life time of offer notices. + */ +class LLOfferHandler : public LLSysHandler +{ +public: +	LLOfferHandler(e_notification_type type, const LLSD& id); +	virtual ~LLOfferHandler(); + +	// base interface functions +	virtual bool processNotification(const LLSD& notify); + +protected: +	virtual void onDeleteToast(LLToast* toast); +	virtual void initChannel(); + +	// own handlers +	void onRejectToast(LLUUID& id); +}; +  }  #endif diff --git a/indra/newview/llnotificationmanager.cpp b/indra/newview/llnotificationmanager.cpp index 81a6b32917..1083cf3634 100644 --- a/indra/newview/llnotificationmanager.cpp +++ b/indra/newview/llnotificationmanager.cpp @@ -63,6 +63,7 @@ void LLNotificationManager::init()  	LLNotificationChannel::buildChannel("Alerts", "Visible", LLNotificationFilters::filterBy<std::string>(&LLNotification::getType, "alert"));  	LLNotificationChannel::buildChannel("AlertModal", "Visible", LLNotificationFilters::filterBy<std::string>(&LLNotification::getType, "alertmodal"));  	LLNotificationChannel::buildChannel("IM Notifications", "Visible", LLNotificationFilters::filterBy<std::string>(&LLNotification::getType, "notifytoast")); +	LLNotificationChannel::buildChannel("Offer", "Visible", LLNotificationFilters::filterBy<std::string>(&LLNotification::getType, "offer"));  	LLNotifications::instance().getChannel("Notifications")->connectChanged(boost::bind(&LLNotificationManager::onNotification, this, _1));  	LLNotifications::instance().getChannel("NotificationTips")->connectChanged(boost::bind(&LLNotificationManager::onNotification, this, _1)); @@ -70,6 +71,7 @@ void LLNotificationManager::init()  	LLNotifications::instance().getChannel("Alerts")->connectChanged(boost::bind(&LLNotificationManager::onNotification, this, _1));  	LLNotifications::instance().getChannel("AlertModal")->connectChanged(boost::bind(&LLNotificationManager::onNotification, this, _1));  	LLNotifications::instance().getChannel("IM Notifications")->connectChanged(boost::bind(&LLNotificationManager::onNotification, this, _1)); +	LLNotifications::instance().getChannel("Offer")->connectChanged(boost::bind(&LLNotificationManager::onNotification, this, _1));  	mNotifyHandlers["notify"] = boost::shared_ptr<LLEventHandler>(new LLScriptHandler(NT_NOTIFY, LLSD()));  	mNotifyHandlers["notifytip"] =  boost::shared_ptr<LLEventHandler>(new LLTipHandler(NT_NOTIFY, LLSD())); @@ -80,6 +82,7 @@ void LLNotificationManager::init()  	mNotifyHandlers["notifytoast"] = boost::shared_ptr<LLEventHandler>(new LLIMHandler(NT_IMCHAT, LLSD()));  	mNotifyHandlers["nearbychat"] = boost::shared_ptr<LLEventHandler>(new LLNearbyChatHandler(NT_NEARBYCHAT, LLSD())); +	mNotifyHandlers["offer"] = boost::shared_ptr<LLEventHandler>(new LLOfferHandler(NT_OFFER, LLSD()));  }  //-------------------------------------------------------------------------- diff --git a/indra/newview/llnotificationofferhandler.cpp b/indra/newview/llnotificationofferhandler.cpp new file mode 100644 index 0000000000..8e3a44682c --- /dev/null +++ b/indra/newview/llnotificationofferhandler.cpp @@ -0,0 +1,153 @@ +/** + * @file llnotificationofferhandler.cpp + * @brief Notification Handler Class for Simple Notifications and Notification Tips + * + * $LicenseInfo:firstyear=2000&license=viewergpl$ + * + * Copyright (c) 2000-2009, Linden Research, Inc. + * + * Second Life Viewer Source Code + * The source code in this file ("Source Code") is provided by Linden Lab + * to you under the terms of the GNU General Public License, version 2.0 + * ("GPL"), unless you have obtained a separate licensing agreement + * ("Other License"), formally executed by you and Linden Lab.  Terms of + * the GPL can be found in doc/GPL-license.txt in this distribution, or + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 + * + * There are special exceptions to the terms and conditions of the GPL as + * it is applied to this Source Code. View the full text of the exception + * in the file doc/FLOSS-exception.txt in this software distribution, or + * online at + * http://secondlifegrid.net/programs/open_source/licensing/flossexception + * + * By copying, modifying or distributing this software, you acknowledge + * that you have read and understood your obligations described above, + * and agree to abide by those obligations. + * + * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO + * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, + * COMPLETENESS OR PERFORMANCE. + * $/LicenseInfo$ + */ + + +#include "llviewerprecompiledheaders.h" // must be first include + +#include "llnotificationhandler.h" +#include "lltoastnotifypanel.h" +#include "llviewercontrol.h" +#include "llviewerwindow.h" +#include "llimview.h" +#include "llimfloater.h" +#include "llnotificationmanager.h" + +using namespace LLNotificationsUI; + +//-------------------------------------------------------------------------- +LLOfferHandler::LLOfferHandler(e_notification_type type, const LLSD& id) +{ +	mType = type; + +	// Getting a Channel for our notifications +	mChannel = LLChannelManager::getInstance()->createNotificationChannel(); +	mChannel->setControlHovering(true); + +	LLScreenChannel* channel = dynamic_cast<LLScreenChannel*>(mChannel); +	if(channel) +		channel->setOnRejectToastCallback(boost::bind(&LLOfferHandler::onRejectToast, this, _1)); +} + +//-------------------------------------------------------------------------- +LLOfferHandler::~LLOfferHandler() +{ +} + +//-------------------------------------------------------------------------- +void LLOfferHandler::initChannel() +{ +	S32 channel_right_bound = gViewerWindow->getWorldViewRect().mRight - gSavedSettings.getS32("NotificationChannelRightMargin"); +	S32 channel_width = gSavedSettings.getS32("NotifyBoxWidth"); +	mChannel->init(channel_right_bound - channel_width, channel_right_bound); +} + +//-------------------------------------------------------------------------- +bool LLOfferHandler::processNotification(const LLSD& notify) +{ +	if(!mChannel) +	{ +		return false; +	} + +	LLNotificationPtr notification = LLNotifications::instance().find(notify["id"].asUUID()); + +	if(!notification) +		return false; + +	// arrange a channel on a screen +	if(!mChannel->getVisible()) +	{ +		initChannel(); +	} + +	if(notify["sigtype"].asString() == "add" || notify["sigtype"].asString() == "change") +	{ +		// add message to IM +		LLUUID session_id = LLIMMgr::computeSessionID(IM_NOTHING_SPECIAL, notification->getPayload()["from_id"]); +		if (!LLIMMgr::instance().hasSession(session_id)) +		{ +			// create session with faked type to avoid creating chicklets +			session_id = LLIMMgr::instance().addSession( +					notification->getSubstitutions()["NAME"], IM_NOTHING_SPECIAL, +					notification->getPayload()["from_id"]); +		} +		LLIMMgr::instance().addMessage(session_id, LLUUID(), +				notification->getSubstitutions()["NAME"], +				notification->getMessage()); + +		LLToastNotifyPanel* notify_box = new LLToastNotifyPanel(notification); + +		LLToast::Params p; +		p.notif_id = notification->getID(); +		p.notification = notification; +		p.panel = notify_box; +		p.on_delete_toast = boost::bind(&LLOfferHandler::onDeleteToast, this, _1); + +		LLScreenChannel* channel = dynamic_cast<LLScreenChannel*>(mChannel); +		if(channel) +			channel->addToast(p); + +		// send a signal to the counter manager +		mNewNotificationSignal(); +	} +	else if (notify["sigtype"].asString() == "delete") +	{ +		mChannel->killToastByNotificationID(notification->getID()); +	} + +	return true; +} + +//-------------------------------------------------------------------------- + +void LLOfferHandler::onDeleteToast(LLToast* toast) +{ +	// send a signal to the counter manager +	mDelNotificationSignal(); + +	// send a signal to a listener to let him perform some action +	// in this case listener is a SysWellWindow and it will remove a corresponding item from its list +	mNotificationIDSignal(toast->getNotificationID()); +} + +//-------------------------------------------------------------------------- +void LLOfferHandler::onRejectToast(LLUUID& id) +{ +	LLNotificationPtr notification = LLNotifications::instance().find(id); + +	if (notification +			&& LLNotificationManager::getInstance()->getHandlerForNotification( +					notification->getType()) == this) +	{ +		LLNotifications::instance().cancel(notification); +	} +} diff --git a/indra/newview/llnotificationscripthandler.cpp b/indra/newview/llnotificationscripthandler.cpp index 070af432d6..dac7a4ca3a 100644 --- a/indra/newview/llnotificationscripthandler.cpp +++ b/indra/newview/llnotificationscripthandler.cpp @@ -37,6 +37,7 @@  #include "lltoastnotifypanel.h"  #include "llviewercontrol.h"  #include "llviewerwindow.h" +#include "llnotificationmanager.h"  using namespace LLNotificationsUI; @@ -129,7 +130,9 @@ void LLScriptHandler::onRejectToast(LLUUID& id)  {  	LLNotificationPtr notification = LLNotifications::instance().find(id); -	if(notification) +	if (notification +			&& LLNotificationManager::getInstance()->getHandlerForNotification( +					notification->getType()) == this)  	{  		LLNotifications::instance().cancel(notification);  	} diff --git a/indra/newview/llpanelgroup.cpp b/indra/newview/llpanelgroup.cpp index 10f015774a..61f2396168 100644 --- a/indra/newview/llpanelgroup.cpp +++ b/indra/newview/llpanelgroup.cpp @@ -291,6 +291,7 @@ void LLPanelGroup::update(LLGroupChange gc)  	if(gdatap)  	{  		childSetValue("group_name", gdatap->mName); +		childSetToolTip("group_name",gdatap->mName);  		LLButton* btn_join = getChild<LLButton>("btn_join");  		LLUICtrl* join_text = getChild<LLUICtrl>("join_cost_text"); @@ -337,7 +338,10 @@ void LLPanelGroup::setGroupID(const LLUUID& group_id)  	LLGroupMgrGroupData* gdatap = LLGroupMgr::getInstance()->getGroupData(mID);  	if(gdatap) +	{  		childSetValue("group_name", gdatap->mName); +		childSetToolTip("group_name",gdatap->mName); +	}  	LLButton* button_apply = findChild<LLButton>("btn_apply");  	LLButton* button_refresh = findChild<LLButton>("btn_refresh"); diff --git a/indra/newview/llpanellandmarks.cpp b/indra/newview/llpanellandmarks.cpp index 1ad4327b76..c516546282 100644 --- a/indra/newview/llpanellandmarks.cpp +++ b/indra/newview/llpanellandmarks.cpp @@ -101,6 +101,8 @@ BOOL LLLandmarksPanel::postBuild()  	initLandmarksInventroyPanel();  	initMyInventroyPanel();  	initLibraryInventroyPanel(); +	getChild<LLAccordionCtrlTab>("tab_favorites")->setDisplayChildren(true); +	getChild<LLAccordionCtrlTab>("tab_landmarks")->setDisplayChildren(true);  	gIdleCallbacks.addFunction(LLLandmarksPanel::doIdle, this);  	return TRUE; @@ -422,6 +424,7 @@ void LLLandmarksPanel::initAccordion(const std::string& accordion_tab_name, LLIn  	mAccordionTabs.push_back(accordion_tab);  	accordion_tab->setDropDownStateChangedCallback(  		boost::bind(&LLLandmarksPanel::onAccordionExpandedCollapsed, this, _2, inventory_list)); +	accordion_tab->setDisplayChildren(false);  }  void LLLandmarksPanel::onAccordionExpandedCollapsed(const LLSD& param, LLInventorySubTreePanel* inventory_list) @@ -618,21 +621,19 @@ void LLLandmarksPanel::onClipboardAction(const LLSD& userdata) const  void LLLandmarksPanel::onFoldingAction(const LLSD& userdata)  { -	LLFolderView* landmarks_folder = mLandmarksInventoryPanel->getRootFolder(); -	LLFolderView* fav_folder = mFavoritesInventoryPanel->getRootFolder(); +	if(!mCurrentSelectedList) return; + +	LLFolderView* root_folder = mCurrentSelectedList->getRootFolder();  	std::string command_name = userdata.asString();  	if ("expand_all" == command_name)  	{ -		landmarks_folder->setOpenArrangeRecursively(TRUE, LLFolderViewFolder::RECURSE_DOWN); -		fav_folder->setOpenArrangeRecursively(TRUE, LLFolderViewFolder::RECURSE_DOWN); -		landmarks_folder->arrangeAll(); -		fav_folder->arrangeAll(); +		root_folder->setOpenArrangeRecursively(TRUE, LLFolderViewFolder::RECURSE_DOWN); +		root_folder->arrangeAll();  	}  	else if ("collapse_all" == command_name)  	{ -		landmarks_folder->closeAllFolders(); -		fav_folder->closeAllFolders(); +		root_folder->closeAllFolders();  	}  	else if ( "sort_by_date" == command_name)  	{ @@ -643,9 +644,6 @@ void LLLandmarksPanel::onFoldingAction(const LLSD& userdata)  	}  	else  	{ -		if(!mCurrentSelectedList) return; - -		LLFolderView* root_folder = mCurrentSelectedList->getRootFolder();  		root_folder->doToSelected(&gInventory, userdata);  	}  } diff --git a/indra/newview/llpanelpeople.cpp b/indra/newview/llpanelpeople.cpp index 2f8fae0f5d..65a7b5322b 100644 --- a/indra/newview/llpanelpeople.cpp +++ b/indra/newview/llpanelpeople.cpp @@ -454,7 +454,7 @@ BOOL LLPanelPeople::postBuild()  	mNearbyList->setCommitCallback(boost::bind(&LLPanelPeople::onAvatarListCommitted, this, mNearbyList));  	mRecentList->setCommitCallback(boost::bind(&LLPanelPeople::onAvatarListCommitted, this, mRecentList)); -	mGroupList->setDoubleClickCallback(boost::bind(&LLPanelPeople::onGroupInfoButtonClicked, this)); +	mGroupList->setDoubleClickCallback(boost::bind(&LLPanelPeople::onChatButtonClicked, this));  	mGroupList->setCommitCallback(boost::bind(&LLPanelPeople::updateButtons, this));  	LLAccordionCtrlTab* accordion_tab = getChild<LLAccordionCtrlTab>("tab_all"); @@ -992,9 +992,6 @@ void LLPanelPeople::onFriendsViewSortMenuItemClicked(const LLSD& userdata)  		mAllFriendList->toggleIcons();  		mOnlineFriendList->toggleIcons();  	} -	else if (chosen_item == "organize_offline") -	{ -	}  }  void LLPanelPeople::onGroupsViewSortMenuItemClicked(const LLSD& userdata) diff --git a/indra/newview/llpanelpick.cpp b/indra/newview/llpanelpick.cpp index 103f041686..f5c4f89702 100644 --- a/indra/newview/llpanelpick.cpp +++ b/indra/newview/llpanelpick.cpp @@ -413,6 +413,8 @@ BOOL LLPanelPickEdit::postBuild()  	childSetAction(XML_BTN_SAVE, boost::bind(&LLPanelPickEdit::onClickSave, this));  	childSetAction("set_to_curr_location_btn", boost::bind(&LLPanelPickEdit::onClickSetLocation, this)); +	initTexturePickerMouseEvents(); +  	return TRUE;  } diff --git a/indra/newview/llpanelplaceprofile.cpp b/indra/newview/llpanelplaceprofile.cpp index 9d9a0cc96f..2a9ba4697d 100644 --- a/indra/newview/llpanelplaceprofile.cpp +++ b/indra/newview/llpanelplaceprofile.cpp @@ -55,6 +55,23 @@  static LLRegisterPanelClassWrapper<LLPanelPlaceProfile> t_place_profile("panel_place_profile"); +// Statics for textures filenames +static std::string icon_pg; +static std::string icon_m; +static std::string icon_r; +static std::string icon_voice; +static std::string icon_voice_no; +static std::string icon_fly; +static std::string icon_fly_no; +static std::string icon_push; +static std::string icon_push_no; +static std::string icon_build; +static std::string icon_build_no; +static std::string icon_scripts; +static std::string icon_scripts_no; +static std::string icon_damage; +static std::string icon_damage_no; +  LLPanelPlaceProfile::LLPanelPlaceProfile()  :	LLPanelPlaceInfo(),  	mForSalePanel(NULL), @@ -119,6 +136,22 @@ BOOL LLPanelPlaceProfile::postBuild()  	mResaleText = getChild<LLTextEditor>("resale");  	mSaleToText = getChild<LLTextBox>("sale_to"); +	icon_pg = getString("icon_PG"); +	icon_m = getString("icon_M"); +	icon_r = getString("icon_R"); +	icon_voice = getString("icon_Voice"); +	icon_voice_no = getString("icon_VoiceNo"); +	icon_fly = getString("icon_Fly"); +	icon_fly_no = getString("icon_FlyNo"); +	icon_push = getString("icon_Push"); +	icon_push_no = getString("icon_PushNo"); +	icon_build = getString("icon_Build"); +	icon_build_no = getString("icon_BuildNo"); +	icon_scripts = getString("icon_Scripts"); +	icon_scripts_no = getString("icon_ScriptsNo"); +	icon_damage = getString("icon_Damage"); +	icon_damage_no = getString("icon_DamageNo"); +  	return TRUE;  } @@ -231,22 +264,22 @@ void LLPanelPlaceProfile::displaySelectedParcelInfo(LLParcel* parcel,  	case SIM_ACCESS_MATURE:  		parcel_data.flags = 0x1; -		mParcelRatingIcon->setValue("parcel_drk_M"); -		mRegionRatingIcon->setValue("parcel_drk_M"); +		mParcelRatingIcon->setValue(icon_m); +		mRegionRatingIcon->setValue(icon_m);  		break;  	case SIM_ACCESS_ADULT:  		parcel_data.flags = 0x2; -		mParcelRatingIcon->setValue("parcel_drk_R"); -		mRegionRatingIcon->setValue("parcel_drk_R"); +		mParcelRatingIcon->setValue(icon_r); +		mRegionRatingIcon->setValue(icon_r);  		break;  	default:  		parcel_data.flags = 0; -		mParcelRatingIcon->setValue("parcel_drk_PG"); -		mRegionRatingIcon->setValue("parcel_drk_PG"); +		mParcelRatingIcon->setValue(icon_pg); +		mRegionRatingIcon->setValue(icon_pg);  	}  	std::string rating = LLViewerRegion::accessToString(sim_access); @@ -270,45 +303,45 @@ void LLPanelPlaceProfile::displaySelectedParcelInfo(LLParcel* parcel,  	// Processing parcel characteristics  	if (parcel->getParcelFlagAllowVoice())  	{ -		mVoiceIcon->setValue("parcel_drk_Voice"); +		mVoiceIcon->setValue(icon_voice);  		mVoiceText->setText(on);  	}  	else  	{ -		mVoiceIcon->setValue("parcel_drk_VoiceNo"); +		mVoiceIcon->setValue(icon_voice_no);  		mVoiceText->setText(off);  	}  	if (!region->getBlockFly() && parcel->getAllowFly())  	{ -		mFlyIcon->setValue("parcel_drk_Fly"); +		mFlyIcon->setValue(icon_fly);  		mFlyText->setText(on);  	}  	else  	{ -		mFlyIcon->setValue("parcel_drk_FlyNo"); +		mFlyIcon->setValue(icon_fly_no);  		mFlyText->setText(off);  	}  	if (region->getRestrictPushObject() || parcel->getRestrictPushObject())  	{ -		mPushIcon->setValue("parcel_drk_PushNo"); +		mPushIcon->setValue(icon_push_no);  		mPushText->setText(off);  	}  	else  	{ -		mPushIcon->setValue("parcel_drk_Push"); +		mPushIcon->setValue(icon_push);  		mPushText->setText(on);  	}  	if (parcel->getAllowModify())  	{ -		mBuildIcon->setValue("parcel_drk_Build"); +		mBuildIcon->setValue(icon_build);  		mBuildText->setText(on);  	}  	else  	{ -		mBuildIcon->setValue("parcel_drk_BuildNo"); +		mBuildIcon->setValue(icon_build_no);  		mBuildText->setText(off);  	} @@ -316,23 +349,23 @@ void LLPanelPlaceProfile::displaySelectedParcelInfo(LLParcel* parcel,  	   (region->getRegionFlags() & REGION_FLAGS_ESTATE_SKIP_SCRIPTS) ||  	   !parcel->getAllowOtherScripts())  	{ -		mScriptsIcon->setValue("parcel_drk_ScriptsNo"); +		mScriptsIcon->setValue(icon_scripts_no);  		mScriptsText->setText(off);  	}  	else  	{ -		mScriptsIcon->setValue("parcel_drk_Scripts"); +		mScriptsIcon->setValue(icon_scripts);  		mScriptsText->setText(on);  	}  	if (region->getAllowDamage() || parcel->getAllowDamage())  	{ -		mDamageIcon->setValue("parcel_drk_Damage"); +		mDamageIcon->setValue(icon_damage);  		mDamageText->setText(on);  	}  	else  	{ -		mDamageIcon->setValue("parcel_drk_DamageNo"); +		mDamageIcon->setValue(icon_damage_no);  		mDamageText->setText(off);  	} diff --git a/indra/newview/llpanelteleporthistory.cpp b/indra/newview/llpanelteleporthistory.cpp index 437af1c4e7..a34f029095 100644 --- a/indra/newview/llpanelteleporthistory.cpp +++ b/indra/newview/llpanelteleporthistory.cpp @@ -71,9 +71,10 @@ public:  	static void showPlaceInfoPanel(S32 index);  private: -	void onInfoBtnClick(); +	void onProfileBtnClick(); -	LLButton* mInfoBtn; +	LLButton* mProfileBtn; +	  	LLTeleportHistoryPanel::ContextMenu *mContextMenu;  	S32 mIndex; @@ -95,8 +96,9 @@ BOOL LLTeleportHistoryFlatItem::postBuild()  	LLTextBox *region = getChild<LLTextBox>("region");  	region->setValue(mRegionName); -	mInfoBtn = getChild<LLButton>("info_btn"); -	mInfoBtn->setClickedCallback(boost::bind(&LLTeleportHistoryFlatItem::onInfoBtnClick, this)); +	mProfileBtn = getChild<LLButton>("profile_btn"); +         +	mProfileBtn->setClickedCallback(boost::bind(&LLTeleportHistoryFlatItem::onProfileBtnClick, this));  	return true;  } @@ -111,7 +113,7 @@ void LLTeleportHistoryFlatItem::setValue(const LLSD& value)  void LLTeleportHistoryFlatItem::onMouseEnter(S32 x, S32 y, MASK mask)  {  	childSetVisible("hovered_icon", true); -	mInfoBtn->setVisible(true); +	mProfileBtn->setVisible(true);  	LLPanel::onMouseEnter(x, y, mask);  } @@ -119,7 +121,7 @@ void LLTeleportHistoryFlatItem::onMouseEnter(S32 x, S32 y, MASK mask)  void LLTeleportHistoryFlatItem::onMouseLeave(S32 x, S32 y, MASK mask)  {  	childSetVisible("hovered_icon", false); -	mInfoBtn->setVisible(false); +	mProfileBtn->setVisible(false);  	LLPanel::onMouseLeave(x, y, mask);  } @@ -142,7 +144,7 @@ void LLTeleportHistoryFlatItem::showPlaceInfoPanel(S32 index)  	LLSideTray::getInstance()->showPanel("panel_places", params);  } -void LLTeleportHistoryFlatItem::onInfoBtnClick() +void LLTeleportHistoryFlatItem::onProfileBtnClick()  {  	LLTeleportHistoryFlatItem::showPlaceInfoPanel(mIndex);  } diff --git a/indra/newview/llscreenchannel.h b/indra/newview/llscreenchannel.h index 987bc4b596..fd31690622 100644 --- a/indra/newview/llscreenchannel.h +++ b/indra/newview/llscreenchannel.h @@ -204,8 +204,7 @@ public:  	// signal on rejecting of a toast event  	typedef boost::function<void (LLUUID id)> reject_tost_callback_t;  	typedef boost::signals2::signal<void (LLUUID id)> reject_tost_signal_t; -	reject_tost_signal_t mRejectToastSignal;	 -	boost::signals2::connection setOnRejectToastCallback(reject_tost_callback_t cb) { return mRejectToastSignal.connect(cb); } +	reject_tost_signal_t mRejectToastSignal; boost::signals2::connection setOnRejectToastCallback(reject_tost_callback_t cb) { return mRejectToastSignal.connect(cb); }  private:  	struct ToastElem diff --git a/indra/newview/llsyswellwindow.cpp b/indra/newview/llsyswellwindow.cpp index c255418429..723ac0fc33 100644 --- a/indra/newview/llsyswellwindow.cpp +++ b/indra/newview/llsyswellwindow.cpp @@ -66,6 +66,7 @@ BOOL LLSysWellWindow::postBuild()  	// init connections to the list's update events  	connectListUpdaterToSignal("notify");  	connectListUpdaterToSignal("groupnotify"); +	connectListUpdaterToSignal("offer");  	// get a corresponding channel  	initChannel(); diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index d42c4372dc..b30acd47f1 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -3442,26 +3442,13 @@ void handle_show_side_tray()  	root->addChild(side_tray);  } -class LLSelfFriends : public view_listener_t +class LLShowPanelPeopleTab : public view_listener_t  {  	bool handleEvent(const LLSD& userdata)  	{ -		// Open "Friends" tab of the "People" panel in side tray. +		// Open tab of the "People" panel in side tray.  		LLSD param; -		param["people_panel_tab_name"] = "friends_panel"; - -		LLSideTray::getInstance()->showPanel("panel_people", param); -		return true; -	} -}; - -class LLSelfGroups : public view_listener_t -{ -	bool handleEvent(const LLSD& userdata) -	{ -		// Open "Groups" tab of the "People" panel in side tray. -		LLSD param; -		param["people_panel_tab_name"] = "groups_panel"; +		param["people_panel_tab_name"] = userdata.asString();  		LLSideTray::getInstance()->showPanel("panel_people", param);  		return true;  	} @@ -7940,8 +7927,7 @@ void initialize_menus()  	view_listener_t::addMenu(new LLSelfEnableRemoveAllAttachments(), "Self.EnableRemoveAllAttachments");  	// we don't use boost::bind directly to delay side tray construction -	view_listener_t::addMenu(new LLSelfFriends(), "Self.Friends"); -	view_listener_t::addMenu(new LLSelfGroups(), "Self.Groups"); +	view_listener_t::addMenu( new LLShowPanelPeopleTab(), "SideTray.PanelPeopleTab");  	 // Avatar pie menu  	view_listener_t::addMenu(new LLObjectMute(), "Avatar.Mute"); diff --git a/indra/newview/skins/default/colors.xml b/indra/newview/skins/default/colors.xml index 1e0da13162..572a4cf9e9 100644 --- a/indra/newview/skins/default/colors.xml +++ b/indra/newview/skins/default/colors.xml @@ -651,7 +651,7 @@  	 value="0 0 0 .33" />      <color       name="TimeTextColor" -     reference="LtGray_50" /> +     reference="LtGray" />      <color       name="TitleBarFocusColor"       reference="White_10" /> diff --git a/indra/newview/skins/default/xui/en/floater_color_picker.xml b/indra/newview/skins/default/xui/en/floater_color_picker.xml index e4b9d3f6bc..4380ff8f4b 100644 --- a/indra/newview/skins/default/xui/en/floater_color_picker.xml +++ b/indra/newview/skins/default/xui/en/floater_color_picker.xml @@ -168,26 +168,29 @@      <check_box       follows="left|bottom"       height="20" -     label="Apply Now" +     label="Apply now"       layout="topleft"       left="12"       name="apply_immediate"       top_pad="185"       width="100" /> -    <button -     follows="left|top" -     height="32" +         <button +     follows="left|bottom" +     height="28" +     image_selected="eye_button_active.tga" +     image_unselected="eye_button_inactive.tga"       layout="topleft" -     left_pad="30" -     name="color_pipette" -     width="32" /> +     left_pad="50" +     name="Pipette" +     width="28" />      <button       follows="right|bottom"       height="20"       label="Ok" -     label_selected="Select" +     label_selected="Ok"       layout="topleft" -     left_pad="50" +     right="-120" +     top_delta="9"       name="select_btn"       width="100" />      <button @@ -197,6 +200,7 @@       label_selected="Cancel"       layout="topleft"       left_pad="5" +     right="-10"       name="cancel_btn"       width="100" />      <text diff --git a/indra/newview/skins/default/xui/en/floater_texture_ctrl.xml b/indra/newview/skins/default/xui/en/floater_texture_ctrl.xml index 88afa54972..4679ae467d 100644 --- a/indra/newview/skins/default/xui/en/floater_texture_ctrl.xml +++ b/indra/newview/skins/default/xui/en/floater_texture_ctrl.xml @@ -23,14 +23,16 @@       type="string"       length="1"       follows="left|top" +     text_color="White" +     font="SansSerifBig"       halign="center" -     height="14" +     height="17"       layout="topleft"       left="4"       name="Multiple"       top="96"       width="163"> -        Multiple +        Multiple textures      </text>      <text       type="string" @@ -42,7 +44,7 @@       name="unknown"       top_pad="80"       width="163"> -        Dimensions: [DIMENSIONS] +        Size: [DIMENSIONS]      </text>      <button       enabled="false" @@ -55,7 +57,7 @@       left_delta="0"       name="Default"       top_pad="4" -     width="64" /> +     width="80" />      <button       enabled="false"       follows="left|bottom" @@ -67,7 +69,7 @@       left_pad="4"       name="None"       top_delta="0" -     width="64" /> +     width="80" />      <button       follows="left|bottom"       font="SansSerifSmall" @@ -77,74 +79,75 @@       layout="topleft"       left="4"       name="Blank" -     top="232" -     width="64" /> -    <check_box -     height="24" +     top_pad="5" +     width="80" /> +         <button +     follows="left|bottom" +     height="28" +     image_selected="eye_button_active.tga" +     image_unselected="eye_button_inactive.tga" +     layout="topleft" +     left_pad="50" +     top_delta="3" +     name="Pipette" +     width="28" /> +   <check_box +     follows="left|bottom" +     height="20"       initial_value="true" -     label="Show Folders" +     label="Apply now"       layout="topleft" -     left="175" -     name="show_folders_check" -     top="20" -     width="201" /> +     left="4" +     name="apply_immediate_check" +     top="262" +     width="120" />      <filter_editor       follows="left|top|right" -     height="16" -     label="Type here to search" +     height="23" +     label="Filter textures"       layout="topleft" -     left_delta="0" +     left="175"       name="inventory search editor" -     top_delta="0" +     top="20"       width="231" />      <inventory_panel       allow_multi_select="false" -     border="true" -     follows="left|top|right|bottom" -     height="216" +     bg_visible="true" +     bg_alpha_color="DkGray2" +     border="false" +     follows="all" +     height="200"       layout="topleft"       left_delta="0"       name="inventory panel"       top_pad="4"       width="231" /> -    <check_box -     follows="left|bottom" -     height="20" -     initial_value="true" -     label="Apply Immediately" -     layout="topleft" -     left="4" -     name="apply_immediate_check" -     top="262" -     width="150" /> -    <button -     follows="left|bottom" -     height="32" -     image_selected="eye_button_active.tga" -     image_unselected="eye_button_inactive.tga" +     <check_box +     height="14" +     initial_value="false" +     label="Show folders"       layout="topleft" -     left="139" -     name="Pipette" -     top="250" -     width="32" /> -    <button +     name="show_folders_check" +     top_pad="0" +     left_delta="-3" +     width="200" /> +         <button       follows="right|bottom"       height="20" -     label="Cancel" -     label_selected="Cancel" +     label="Ok" +     label_selected="Ok"       layout="topleft" -     left="186" -     name="Cancel" -     top="262" +     right="-120" +     name="Select"       width="100" />      <button       follows="right|bottom"       height="20" -     label="Select" -     label_selected="Select" +     label="Cancel" +     label_selected="Cancel"       layout="topleft" -     left_pad="4" -     name="Select" -     top_delta="0" +     right="-10" +     left_pad="5" +     name="Cancel"       width="100" />  </floater> 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 ce5ee83f55..3d65878cf8 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 @@ -36,13 +36,14 @@     label="My Friends"     name="my_friends">      <menu_item_call.on_click -     function="Self.Friends" -     parameter="" /> +    function="SideTray.PanelPeopleTab" +    parameter="friends_panel" />    </menu_item_call>    <menu_item_call     label="My Groups"     name="my_groups">      <menu_item_call.on_click -     function="Self.Groups" /> +     function="SideTray.PanelPeopleTab" +     parameter="groups_panel" />    </menu_item_call>  </menu> diff --git a/indra/newview/skins/default/xui/en/menu_people_friends_view_sort.xml b/indra/newview/skins/default/xui/en/menu_people_friends_view_sort.xml index eedb4383bb..f1117d1419 100644 --- a/indra/newview/skins/default/xui/en/menu_people_friends_view_sort.xml +++ b/indra/newview/skins/default/xui/en/menu_people_friends_view_sort.xml @@ -31,9 +31,6 @@       function="CheckControl"       parameter="FriendsListShowIcons" />    </menu_item_check> -  <menu_item_call name="organize_offline" label="Organize Offline Friends"> -    <menu_item_call.on_click function="People.Friends.ViewSort.Action" userdata="organize_offline" /> -  </menu_item_call>    <menu_item_separator layout="topleft" />    <menu_item_call name="show_blocked_list" label="Show Blocked Residents & Objects">      <menu_item_call.on_click function="SideTray.ShowPanel" parameter="panel_block_list_sidetray" /> diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml index 3f63f493b1..ebdfb01787 100644 --- a/indra/newview/skins/default/xui/en/menu_viewer.xml +++ b/indra/newview/skins/default/xui/en/menu_viewer.xml @@ -114,25 +114,22 @@       layout="topleft"       name="Communicate"       tear_off="true"> -        <menu_item_check +        <menu_item_call           label="My Friends"           layout="topleft"           name="My Friends"           shortcut="control|shift|F"> -            <menu_item_check.on_check -             function="Floater.Visible" -             parameter="contacts.friends" /> -            <menu_item_check.on_click -             function="Floater.Toggle" -             parameter="contacts.friends" /> -        </menu_item_check> +            <menu_item_call.on_click +             function="SideTray.PanelPeopleTab" +             parameter="friends_panel" /> +            </menu_item_call>          <menu_item_call           label="My Groups"           layout="topleft"           name="My Groups">              <menu_item_call.on_click -             function="Floater.Show" -             parameter="contacts.groups" /> +             function="SideTray.PanelPeopleTab" +             parameter="groups_panel" />          </menu_item_call>          <menu_item_separator           layout="topleft" /> @@ -155,18 +152,15 @@               function="Floater.Toggle"               parameter="nearby_chat" />          </menu_item_check> -        <menu_item_check -         label="Nearby Speakers" +        <menu_item_call +         label="Nearby People"           layout="topleft"           name="Active Speakers"           shortcut="control|shift|A"> -            <menu_item_check.on_check -             function="Floater.Visible" -             parameter="active_speakers" /> -            <menu_item_check.on_click -             function="Floater.Toggle" -             parameter="active_speakers" /> -        </menu_item_check> +            <menu_item_call.on_click +             function="SideTray.PanelPeopleTab" +             parameter="nearby_panel" /> +            </menu_item_call>          <menu_item_check           label="Nearby Media"           layout="topleft" diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index babed28f10..f26a4d09d4 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -4982,7 +4982,7 @@ An object named [OBJECTFROMNAME] owned by (an unknown Resident) has given you a    <notification     icon="notify.tga"     name="UserGiveItem" -   type="notify"> +   type="offer">  [NAME] has given you a [OBJECTTYPE] named '[OBJECTNAME]'.      <form name="form">        <button @@ -5028,7 +5028,7 @@ An object named [OBJECTFROMNAME] owned by (an unknown Resident) has given you a    <notification     icon="notify.tga"     name="TeleportOffered" -   type="notify"> +   type="offer">  [NAME] has offered to teleport you to their location:  [MESSAGE] @@ -5065,7 +5065,7 @@ An object named [OBJECTFROMNAME] owned by (an unknown Resident) has given you a    <notification     icon="notify.tga"     name="OfferFriendship" -   type="notify"> +   type="offer">  [NAME] is offering friendship.  [MESSAGE] @@ -5105,7 +5105,7 @@ An object named [OBJECTFROMNAME] owned by (an unknown Resident) has given you a    <notification     icon="notify.tga"     name="FriendshipAccepted" -   type="notify"> +   type="offer">  [NAME] accepted your friendship offer.    </notification> diff --git a/indra/newview/skins/default/xui/en/panel_chat_header.xml b/indra/newview/skins/default/xui/en/panel_chat_header.xml index a9f622e018..64519b2571 100644 --- a/indra/newview/skins/default/xui/en/panel_chat_header.xml +++ b/indra/newview/skins/default/xui/en/panel_chat_header.xml @@ -1,53 +1,44 @@  <?xml version="1.0" encoding="utf-8" standalone="yes" ?>  <panel + background_visible="true" + bevel_style="in" + bg_alpha_color="black"   follows="left|top|right" - height="57" - label="im_header_container" + height="20" + label="im_header"   layout="topleft" - left="8" - name="im_header_container"> -    <panel -     background_visible="true" -     bevel_style="in" -     bg_alpha_color="black" -     follows="left|top|right" -     height="30" -     label="im_header" + name="im_header" > +    <avatar_icon +     follows="left" +     height="16" +     image_name="icon_avatar_online.tga"       layout="topleft" -     name="im_header" -     top_pad="17"> -        <avatar_icon -         follows="left" -         height="20" -         image_name="icon_avatar_online.tga" -         layout="topleft" -         left="5" -         mouse_opaque="true" -         name="avatar_icon" -         top="5" -         width="20" /> -        <text -         follows="left|right" -         font="SansSerifBigBold" -         height="20" -         layout="topleft" -         left_pad="10" -         right="-50" -         name="user_name" -         text_color="white" -         top="5" -         value="Darth Vader" -         use_ellipses="true" /> -        <text -         follows="right" -         font="SansSerifBig" -         height="20" -         layout="topleft" -         name="time_box" -         right="0" -         text_color="white" -         top="5" -         value="23:30" -         width="50" /> -    </panel> +     left="2" +     mouse_opaque="true" +     name="avatar_icon" +     top="2" +     width="16" /> +    <text +     follows="left|right" +     font="SansSerifBigBold" +     height="20" +     layout="topleft" +     left_pad="6" +     right="-50" +     name="user_name" +     text_color="white" +     top="3" +     value="Darth Vader" +     use_ellipses="true" /> +    <text +     follows="right" +     font="SansSerifBig" +     height="20" +     layout="topleft" +     name="time_box" +     right="0" +     text_color="white" +     top="3" +     value="23:30" +     width="50" />  </panel> diff --git a/indra/newview/skins/default/xui/en/panel_chat_separator.xml b/indra/newview/skins/default/xui/en/panel_chat_separator.xml index bacc750e86..d0a2ddb289 100644 --- a/indra/newview/skins/default/xui/en/panel_chat_separator.xml +++ b/indra/newview/skins/default/xui/en/panel_chat_separator.xml @@ -1,16 +1,8 @@  <?xml version="1.0" encoding="utf-8" standalone="yes" ?>  <panel + background_visible="true" + bg_alpha_color="black"   follows="left|right|top" - height="9" + height="1"   layout="topleft" - left="8" - name="chat_separator_container"> -    <panel -     background_visible="true" -     bg_alpha_color="black" -     follows="left|right|top" -     height="1" -     layout="topleft" -     name="chat_separator_panel" -     top_pad="3" /> -</panel> + name="chat_separator_panel" /> diff --git a/indra/newview/skins/default/xui/en/panel_edit_pick.xml b/indra/newview/skins/default/xui/en/panel_edit_pick.xml index 282b3f3e55..f4a212ba0a 100644 --- a/indra/newview/skins/default/xui/en/panel_edit_pick.xml +++ b/indra/newview/skins/default/xui/en/panel_edit_pick.xml @@ -64,9 +64,9 @@       top="20"       left="10"       name="pick_snapshot" /> -          <button +          <icon             height="18" -           image_overlay="AddItem_Off" +           image_name="AddItem_Off"             layout="topleft"             right="-5"             name="edit_icon" diff --git a/indra/newview/skins/default/xui/en/panel_edit_profile.xml b/indra/newview/skins/default/xui/en/panel_edit_profile.xml index fedc49ae87..2378ae518b 100644 --- a/indra/newview/skins/default/xui/en/panel_edit_profile.xml +++ b/indra/newview/skins/default/xui/en/panel_edit_profile.xml @@ -116,9 +116,9 @@               top_pad="0"               width="102" />            </panel> -           <button +           <icon             height="18" -           image_overlay="AddItem_Off" +           image_name="AddItem_Off"             layout="topleft"             name="2nd_life_edit_icon"             label="" @@ -171,9 +171,9 @@               top_pad="0"               width="102" />            </panel> -           <button +           <icon             height="18" -           image_overlay="AddItem_Off" +           image_name="AddItem_Off"             layout="topleft"             name="real_world_edit_icon"             label="" diff --git a/indra/newview/skins/default/xui/en/panel_navigation_bar.xml b/indra/newview/skins/default/xui/en/panel_navigation_bar.xml index cdce073a9e..44fd44cde5 100644 --- a/indra/newview/skins/default/xui/en/panel_navigation_bar.xml +++ b/indra/newview/skins/default/xui/en/panel_navigation_bar.xml @@ -23,7 +23,7 @@  	<icon  	 follows="all"  	 image_name="NavBar_BG_NoFav" -	 mouse_opaque="true" +	 mouse_opaque="false"  	 name="bg_icon_no_fav"  	 scale_image="true"  	 visible="false" diff --git a/indra/newview/skins/default/xui/en/panel_place_profile.xml b/indra/newview/skins/default/xui/en/panel_place_profile.xml index b300bd0141..65f150b33c 100644 --- a/indra/newview/skins/default/xui/en/panel_place_profile.xml +++ b/indra/newview/skins/default/xui/en/panel_place_profile.xml @@ -92,6 +92,52 @@       name="acquired_date">          [wkday,datetime,local] [mth,datetime,local] [day,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] [year,datetime,local]      </string> +    <!-- Texture names for parcel permissions icons --> +    <string +     name="icon_PG" +     value="parcel_drk_PG" /> +    <string +     name="icon_M" +     value="parcel_drk_M" /> +    <string +     name="icon_R" +     value="parcel_drk_R" /> +    <string +     name="icon_Voice" +     value="parcel_drk_Voice" /> +    <string +     name="icon_VoiceNo" +     value="parcel_drk_VoiceNo" /> +    <string +     name="icon_Fly" +     value="parcel_drk_Fly" /> +    <string +     name="icon_FlyNo" +     value="parcel_drk_FlyNo" /> +    <string +     name="icon_Push" +     value="parcel_drk_Push" /> +    <string +     name="icon_PushNo" +     value="parcel_drk_PushNo" /> +    <string +     name="icon_Build" +     value="parcel_drk_Build" /> +    <string +     name="icon_BuildNo" +     value="parcel_drk_BuildNo" /> +    <string +     name="icon_Scripts" +     value="parcel_drk_Scripts" /> +    <string +     name="icon_ScriptsNo" +     value="parcel_drk_ScriptsNo" /> +    <string +     name="icon_Damage" +     value="parcel_drk_Damage" /> +    <string +     name="icon_DamageNo" +     value="parcel_drk_DamageNo" />      <button       follows="top|right"       height="23" @@ -211,15 +257,6 @@               use_ellipses="true"               value="SampleRegion"               width="290" /> -       <!-- <icon -             follows="top|right" -             height="16" -             image_name="Icon_For_Sale" -             layout="topleft" -             left="3" -             mouse_opaque="true" -             name="icon_for_sale" -             width="16" />-->              <text               follows="left|top|right"               height="14" diff --git a/indra/newview/skins/default/xui/en/panel_prim_media_controls.xml b/indra/newview/skins/default/xui/en/panel_prim_media_controls.xml index d384abf038..fc5ccdb63e 100644 --- a/indra/newview/skins/default/xui/en/panel_prim_media_controls.xml +++ b/indra/newview/skins/default/xui/en/panel_prim_media_controls.xml @@ -412,6 +412,8 @@ function="MediaCtrl.CommitURL" />  	  </button>  	</layout_panel>  	<!-- Scroll pad --> +<!-- +disabled  	<layout_panel  		name="media_panel_scroll"  		auto_resize="false" @@ -477,6 +479,8 @@ function="MediaCtrl.CommitURL" />  		  min_width="8"  		  width="8" />  	</layout_panel> +disabled +-->  	<layout_panel  		name="zoom_frame"  		auto_resize="false" diff --git a/indra/newview/skins/default/xui/en/panel_teleport_history_item.xml b/indra/newview/skins/default/xui/en/panel_teleport_history_item.xml index 0073a1f1a0..1f67a0a732 100644 --- a/indra/newview/skins/default/xui/en/panel_teleport_history_item.xml +++ b/indra/newview/skins/default/xui/en/panel_teleport_history_item.xml @@ -49,16 +49,6 @@       width="242" />      <button       follows="right" -     height="16" -     image_pressed="Info_Press" -     image_unselected="Info_Over" -     left_pad="3" -     right="-31" -     name="info_btn" -     top_delta="-2" -     width="16" /> -    <button -     follows="right"       height="20"       image_overlay="ForwardArrow_Off"       layout="topleft" @@ -66,5 +56,6 @@       right="-3"       name="profile_btn"       top_delta="-2" +     visible="false"       width="20" />  </panel> diff --git a/indra/newview/skins/default/xui/en/widgets/chat_history.xml b/indra/newview/skins/default/xui/en/widgets/chat_history.xml index ea6997ebd5..32916c0816 100644 --- a/indra/newview/skins/default/xui/en/widgets/chat_history.xml +++ b/indra/newview/skins/default/xui/en/widgets/chat_history.xml @@ -6,6 +6,10 @@  	right_text_pad="15"      left_widget_pad="0"  	right_widget_pad="10" +	top_separator_pad="5" +	bottom_separator_pad="5" +	top_header_pad="17" +	bottom_header_pad="10"  	max_length="2147483647"  	enabled="false"  	track_bottom="true" | 
