From fdb25e5add7305d8b92067f610eff1b5c18482de Mon Sep 17 00:00:00 2001 From: Mike Antipov 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(-) (limited to 'indra') 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(NOTIFICATION_WELL_ANCHOR_NAME), this, + LLBottomTray::getInstance()->getChild(getAnchorViewName()), this, getDockTongue(), LLDockControl::TOP, boost::bind(&LLSysWellWindow::getAllowedRect, this, _1))); } } @@ -373,6 +374,15 @@ LLNotificationWellWindow* LLNotificationWellWindow::getInstance(const LLSD& key return LLFloaterReg::getTypedInstance("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("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" > + + IM SESSIONS + + + NOTIFICATIONS + +