From fdb25e5add7305d8b92067f610eff1b5c18482de Mon Sep 17 00:00:00 2001
From: Mike Antipov <mantipov@productengine.com>
Date: Mon, 7 Dec 2009 14:20:33 +0200
Subject: Aditional changes for normal task EXT-3081 (Separate Message Well on
 Notifications Well and IM Well)  -- set different titles for IM &
 Notification Well windows  -- set different anchors for IM & Notification
 Well windows

--HG--
branch : product-engine
---
 indra/newview/llsyswellwindow.cpp                     | 19 ++++++++++++++++++-
 indra/newview/llsyswellwindow.h                       | 16 +++++++++++++++-
 .../newview/skins/default/xui/en/floater_sys_well.xml |  9 +++++++++
 3 files changed, 42 insertions(+), 2 deletions(-)

diff --git a/indra/newview/llsyswellwindow.cpp b/indra/newview/llsyswellwindow.cpp
index c288301923..e5a4b456a0 100644
--- a/indra/newview/llsyswellwindow.cpp
+++ b/indra/newview/llsyswellwindow.cpp
@@ -47,6 +47,7 @@
 
 
 static std::string NOTIFICATION_WELL_ANCHOR_NAME = "notification_well_panel";
+static std::string IM_WELL_ANCHOR_NAME = "im_well_panel";
 
 //---------------------------------------------------------------------------------
 LLSysWellWindow::LLSysWellWindow(const LLSD& key) : LLDockableFloater(NULL, key),
@@ -156,7 +157,7 @@ void LLSysWellWindow::setVisible(BOOL visible)
 		if (NULL == getDockControl() && getDockTongue().notNull())
 		{
 			setDockControl(new LLDockControl(
-				LLBottomTray::getInstance()->getChild<LLView>(NOTIFICATION_WELL_ANCHOR_NAME), this,
+				LLBottomTray::getInstance()->getChild<LLView>(getAnchorViewName()), this,
 				getDockTongue(), LLDockControl::TOP, boost::bind(&LLSysWellWindow::getAllowedRect, this, _1)));
 		}
 	}
@@ -373,6 +374,15 @@ LLNotificationWellWindow* LLNotificationWellWindow::getInstance(const LLSD& key
 	return LLFloaterReg::getTypedInstance<LLNotificationWellWindow>("notification_well_window", key);
 }
 
+// virtual
+BOOL LLNotificationWellWindow::postBuild()
+{
+	BOOL rv = LLSysWellWindow::postBuild();
+	setTitle(getString("title_notification_well_window"));
+	return rv;
+}
+
+// virtual
 void LLNotificationWellWindow::setVisible(BOOL visible)
 {
 	if (visible)
@@ -501,6 +511,13 @@ LLIMWellWindow* LLIMWellWindow::getInstance(const LLSD& key /*= LLSD()*/)
 	return LLFloaterReg::getTypedInstance<LLIMWellWindow>("im_well_window", key);
 }
 
+BOOL LLIMWellWindow::postBuild()
+{
+	BOOL rv = LLSysWellWindow::postBuild();
+	setTitle(getString("title_im_well_window"));
+	return rv;
+}
+
 //virtual
 void LLIMWellWindow::sessionAdded(const LLUUID& session_id,
 								   const std::string& name, const LLUUID& other_participant_id)
diff --git a/indra/newview/llsyswellwindow.h b/indra/newview/llsyswellwindow.h
index 21391cebea..d2c494bfe8 100644
--- a/indra/newview/llsyswellwindow.h
+++ b/indra/newview/llsyswellwindow.h
@@ -47,6 +47,10 @@ class LLFlatListView;
 class LLChiclet;
 class LLIMChiclet;
 
+extern std::string NOTIFICATION_WELL_ANCHOR_NAME;
+extern std::string IM_WELL_ANCHOR_NAME;
+
+
 class LLSysWellWindow : public LLDockableFloater
 {
 public:
@@ -92,7 +96,7 @@ protected:
 	void handleItemRemoved(EItemType removed_item_type);
 	bool anotherTypeExists(EItemType item_type) ;
 
-
+	virtual const std::string& getAnchorViewName() = 0;
 
 	void reshapeWindow();
 
@@ -125,16 +129,21 @@ public:
 
 	static void initClass() { getInstance(); }
 
+	/*virtual*/ BOOL postBuild();
 	/*virtual*/ void setVisible(BOOL visible);
 
 	// Operating with items
 	void addItem(LLSysWellItem::Params p);
 
+protected:
+	/*virtual*/ const std::string& getAnchorViewName() { return NOTIFICATION_WELL_ANCHOR_NAME; }
+
 private:
 	// init Window's channel
 	void initChannel();
 	void clearScreenChannels();
 
+
 	void onStoreToast(LLPanel* info_panel, LLUUID id);
 
 	// connect counter and list updaters to the corresponding signals
@@ -160,11 +169,16 @@ public:
 	static LLIMWellWindow* getInstance(const LLSD& key = LLSD());
 	static void initClass() { getInstance(); }
 
+	/*virtual*/ BOOL postBuild();
+
 	// LLIMSessionObserver observe triggers
 	/*virtual*/ void sessionAdded(const LLUUID& session_id, const std::string& name, const LLUUID& other_participant_id);
 	/*virtual*/ void sessionRemoved(const LLUUID& session_id);
 	/*virtual*/ void sessionIDUpdated(const LLUUID& old_session_id, const LLUUID& new_session_id);
 
+protected:
+	/*virtual*/ const std::string& getAnchorViewName() { return IM_WELL_ANCHOR_NAME; }
+
 private:
 	LLChiclet * findIMChiclet(const LLUUID& sessionId);
 	void addIMRow(const LLUUID& sessionId, S32 chicletCounter, const std::string& name, const LLUUID& otherParticipantId);
diff --git a/indra/newview/skins/default/xui/en/floater_sys_well.xml b/indra/newview/skins/default/xui/en/floater_sys_well.xml
index 4e9388c2b2..3fc57372de 100644
--- a/indra/newview/skins/default/xui/en/floater_sys_well.xml
+++ b/indra/newview/skins/default/xui/en/floater_sys_well.xml
@@ -21,6 +21,15 @@
  save_visibility="true"
  single_instance="true"
 >
+    <string
+     name="title_im_well_window">
+        IM SESSIONS
+    </string>
+    <string
+     name="title_notification_well_window">
+        NOTIFICATIONS
+    </string>
+     
     <flat_list_view
 	    color="FloaterDefaultBackgroundColor"
 	    follows="all"
-- 
cgit v1.2.3