summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview')
-rw-r--r--indra/newview/llchiclet.cpp98
-rw-r--r--indra/newview/llchiclet.h48
-rw-r--r--indra/newview/llchicletbar.cpp1
-rw-r--r--indra/newview/llconversationmodel.cpp51
-rwxr-xr-xindra/newview/llconversationview.cpp2
-rw-r--r--indra/newview/llfloaterimsession.cpp25
-rw-r--r--indra/newview/llfloaterimsession.h1
-rw-r--r--indra/newview/llfloaterimsessiontab.cpp2
-rw-r--r--indra/newview/llparticipantlist.cpp13
-rw-r--r--indra/newview/llsyswellwindow.cpp38
-rw-r--r--indra/newview/skins/default/textures/bottomtray/Unread_IM.pngbin458 -> 0 bytes
-rw-r--r--indra/newview/skins/default/textures/textures.xml1
-rw-r--r--indra/newview/skins/default/xui/en/menu_im_well_button.xml16
-rw-r--r--indra/newview/skins/default/xui/en/panel_chiclet_bar.xml48
14 files changed, 65 insertions, 279 deletions
diff --git a/indra/newview/llchiclet.cpp b/indra/newview/llchiclet.cpp
index d6860640b7..a665aeb6bd 100644
--- a/indra/newview/llchiclet.cpp
+++ b/indra/newview/llchiclet.cpp
@@ -52,7 +52,6 @@
#include "llsyswellwindow.h"
static LLDefaultChildRegistry::Register<LLChicletPanel> t1("chiclet_panel");
-static LLDefaultChildRegistry::Register<LLIMWellChiclet> t2_0("chiclet_im_well");
static LLDefaultChildRegistry::Register<LLNotificationChiclet> t2("chiclet_notification");
static LLDefaultChildRegistry::Register<LLIMP2PChiclet> t3("chiclet_im_p2p");
static LLDefaultChildRegistry::Register<LLIMGroupChiclet> t4("chiclet_im_group");
@@ -177,103 +176,6 @@ BOOL LLSysWellChiclet::handleRightMouseDown(S32 x, S32 y, MASK mask)
}
/************************************************************************/
-/* LLIMWellChiclet implementation */
-/************************************************************************/
-LLIMWellChiclet::LLIMWellChiclet(const Params& p)
-: LLSysWellChiclet(p)
-{
- LLIMModel::instance().addNewMsgCallback(boost::bind(&LLIMWellChiclet::messageCountChanged, this, _1));
- LLIMModel::instance().addNoUnreadMsgsCallback(boost::bind(&LLIMWellChiclet::messageCountChanged, this, _1));
-
- LLIMMgr::getInstance()->addSessionObserver(this);
-
- LLIMWellWindow::getInstance()->setSysWellChiclet(this);
-}
-
-LLIMWellChiclet::~LLIMWellChiclet()
-{
- LLIMWellWindow* im_well_window = LLIMWellWindow::findInstance();
- if (im_well_window)
- {
- im_well_window->setSysWellChiclet(NULL);
- }
-
- LLIMMgr::getInstance()->removeSessionObserver(this);
-}
-
-void LLIMWellChiclet::onMenuItemClicked(const LLSD& user_data)
-{
- std::string action = user_data.asString();
- if("close all" == action)
- {
- LLIMWellWindow::getInstance()->closeAll();
- }
-}
-
-bool LLIMWellChiclet::enableMenuItem(const LLSD& user_data)
-{
- std::string item = user_data.asString();
- if (item == "can close all")
- {
- return !LLIMWellWindow::getInstance()->isWindowEmpty();
- }
- return true;
-}
-
-void LLIMWellChiclet::createMenu()
-{
- if(mContextMenu)
- {
- llwarns << "Menu already exists" << llendl;
- return;
- }
-
- LLUICtrl::CommitCallbackRegistry::ScopedRegistrar registrar;
- registrar.add("IMWellChicletMenu.Action",
- boost::bind(&LLIMWellChiclet::onMenuItemClicked, this, _2));
-
- LLUICtrl::EnableCallbackRegistry::ScopedRegistrar enable_registrar;
- enable_registrar.add("IMWellChicletMenu.EnableItem",
- boost::bind(&LLIMWellChiclet::enableMenuItem, this, _2));
-
- mContextMenu = LLUICtrlFactory::getInstance()->createFromFile<LLContextMenu>
- ("menu_im_well_button.xml",
- LLMenuGL::sMenuContainer,
- LLViewerMenuHolderGL::child_registry_t::instance());
-}
-
-void LLIMWellChiclet::messageCountChanged(const LLSD& session_data)
-{
- // The singleton class LLChicletBar instance might be already deleted
- // so don't create a new one.
- if (!LLChicletBar::instanceExists())
- {
- return;
- }
-
- const LLUUID& session_id = session_data["session_id"];
- const S32 counter = LLChicletBar::getInstance()->getTotalUnreadIMCount();
- const bool im_not_visible = !LLFloaterReg::instanceVisible("im_container")
- && !LLFloaterReg::instanceVisible("impanel", session_id);
-
- setNewMessagesState(counter > mCounter && im_not_visible);
-
- // we have to flash to 'Lit' state each time new unread message is coming.
- if (counter > mCounter && im_not_visible)
- {
- mFlashToLitTimer->startFlashing();
- }
- else if (counter == 0)
- {
- // if notification is resolved while well is flashing it can leave in the 'Lit' state
- // when flashing finishes itself. Let break flashing here.
- mFlashToLitTimer->stopFlashing();
- }
-
- setCounter(counter);
-}
-
-/************************************************************************/
/* LLNotificationChiclet implementation */
/************************************************************************/
LLNotificationChiclet::LLNotificationChiclet(const Params& p)
diff --git a/indra/newview/llchiclet.h b/indra/newview/llchiclet.h
index 79ffad92ef..7f72c7f9e2 100644
--- a/indra/newview/llchiclet.h
+++ b/indra/newview/llchiclet.h
@@ -865,54 +865,6 @@ protected:
LLContextMenu* mContextMenu;
};
-/**
- * Class represented a chiclet for IM Well Icon.
- *
- * It displays a count of unread messages from other participants in all IM sessions.
- */
-class LLIMWellChiclet : public LLSysWellChiclet, LLIMSessionObserver
-{
- friend class LLUICtrlFactory;
-public:
- /*virtual*/ void sessionAdded(const LLUUID& session_id, const std::string& name, const LLUUID& other_participant_id, BOOL has_offline_msg) {}
- /*virtual*/ void sessionActivated(const LLUUID& session_id, const std::string& name, const LLUUID& other_participant_id) {}
- /*virtual*/ void sessionVoiceOrIMStarted(const LLUUID& session_id) {};
- /*virtual*/ void sessionRemoved(const LLUUID& session_id) { messageCountChanged(LLSD()); }
- /*virtual*/ void sessionIDUpdated(const LLUUID& old_session_id, const LLUUID& new_session_id) {}
-
- ~LLIMWellChiclet();
-protected:
- LLIMWellChiclet(const Params& p);
-
- /**
- * Processes clicks on chiclet popup menu.
- */
- virtual void onMenuItemClicked(const LLSD& user_data);
-
- /**
- * Enables chiclet menu items.
- */
- bool enableMenuItem(const LLSD& user_data);
-
- /**
- * Creates menu.
- */
- /*virtual*/ void createMenu();
-
- /**
- * Handles changes in a session (message was added, messages were read, etc.)
- *
- * It get total count of unread messages from a LLIMMgr in all opened sessions and display it.
- *
- * @param[in] session_data contains session related data, is not used now
- * ["session_id"] - id of an appropriate session
- * ["participant_unread"] - count of unread messages from "real" participants.
- *
- * @see LLIMMgr::getNumberOfUnreadParticipantMessages()
- */
- void messageCountChanged(const LLSD& session_data);
-};
-
class LLNotificationChiclet : public LLSysWellChiclet
{
LOG_CLASS(LLNotificationChiclet);
diff --git a/indra/newview/llchicletbar.cpp b/indra/newview/llchicletbar.cpp
index c66ae1cdd0..cfcde64e7b 100644
--- a/indra/newview/llchicletbar.cpp
+++ b/indra/newview/llchicletbar.cpp
@@ -158,7 +158,6 @@ BOOL LLChicletBar::postBuild()
mToolbarStack = getChild<LLLayoutStack>("toolbar_stack");
mChicletPanel = getChild<LLChicletPanel>("chiclet_list");
- showWellButton("im_well", !LLIMWellWindow::getInstance()->isWindowEmpty());
showWellButton("notification_well", !LLNotificationWellWindow::getInstance()->isWindowEmpty());
LLPanelTopInfoBar::instance().setResizeCallback(boost::bind(&LLChicletBar::fitWithTopInfoBar, this));
diff --git a/indra/newview/llconversationmodel.cpp b/indra/newview/llconversationmodel.cpp
index 0837a49095..728b1a3f4c 100644
--- a/indra/newview/llconversationmodel.cpp
+++ b/indra/newview/llconversationmodel.cpp
@@ -27,9 +27,11 @@
#include "llviewerprecompiledheaders.h"
+#include "llagent.h"
#include "llavatarnamecache.h"
#include "llavataractions.h"
#include "llevents.h"
+#include "llfloaterimsession.h"
#include "llsdutil.h"
#include "llconversationmodel.h"
#include "llimview.h" //For LLIMModel
@@ -161,8 +163,9 @@ void LLConversationItemSession::addParticipant(LLConversationItemParticipant* pa
void LLConversationItemSession::updateParticipantName(LLConversationItemParticipant* participant)
{
- // We modify the session name only in the case of an ad-hoc session, exit otherwise (nothing to do)
- if (getType() != CONV_SESSION_AD_HOC)
+ EConversationType conversation_type = getType();
+ // We modify the session name only in the case of an ad-hoc session or P2P session, exit otherwise (nothing to do)
+ if ((conversation_type != CONV_SESSION_AD_HOC) && (conversation_type != CONV_SESSION_1_ON_1))
{
return;
}
@@ -171,26 +174,37 @@ void LLConversationItemSession::updateParticipantName(LLConversationItemParticip
{
return;
}
- // Build a string containing the participants names and check if ready for display (we don't want "(waiting)" in there)
- bool all_names_resolved = true;
uuid_vec_t temp_uuids; // uuids vector for building the added participants' names string
- child_list_t::iterator iter = mChildren.begin();
- while (iter != mChildren.end())
+ if (conversation_type == CONV_SESSION_AD_HOC)
{
- LLConversationItemParticipant* current_participant = dynamic_cast<LLConversationItemParticipant*>(*iter);
- temp_uuids.push_back(current_participant->getUUID());
- LLAvatarName av_name;
- if (!LLAvatarNameCache::get(current_participant->getUUID(), &av_name))
- {
- // If the name is not in the cache yet, bail out
- // Note: we don't bind ourselves to the LLAvatarNameCache event as we are called by
- // onAvatarNameCache() which is itself attached to the same event.
- all_names_resolved = false;
- break;
+ // Build a string containing the participants UUIDs (minus own agent) and check if ready for display (we don't want "(waiting)" in there)
+ // Note: we don't bind ourselves to the LLAvatarNameCache event as updateParticipantName() is called by
+ // onAvatarNameCache() which is itself attached to the same event.
+ child_list_t::iterator iter = mChildren.begin();
+ while (iter != mChildren.end())
+ {
+ LLConversationItemParticipant* current_participant = dynamic_cast<LLConversationItemParticipant*>(*iter);
+ // Add the avatar uuid to the list (except if it's the own agent uuid)
+ if (current_participant->getUUID() != gAgentID)
+ {
+ LLAvatarName av_name;
+ if (LLAvatarNameCache::get(current_participant->getUUID(), &av_name))
+ {
+ temp_uuids.push_back(current_participant->getUUID());
+ }
+ }
+ iter++;
}
- iter++;
}
- if (all_names_resolved)
+ else if (conversation_type == CONV_SESSION_1_ON_1)
+ {
+ // In the case of a P2P conversersation, we need to grab the name of the other participant in the session instance itself
+ // as we do not create participants for such a session.
+ LLFloaterIMSession *conversationFloater = LLFloaterIMSession::findInstance(mUUID);
+ LLUUID participantID = conversationFloater->getOtherParticipantUUID();
+ temp_uuids.push_back(participantID);
+ }
+ if (temp_uuids.size() != 0)
{
std::string new_session_name;
LLAvatarActions::buildResidentsString(temp_uuids, new_session_name);
@@ -203,6 +217,7 @@ void LLConversationItemSession::removeParticipant(LLConversationItemParticipant*
{
removeChild(participant);
mNeedsRefresh = true;
+ updateParticipantName(participant);
postEvent("remove_participant", this, participant);
}
diff --git a/indra/newview/llconversationview.cpp b/indra/newview/llconversationview.cpp
index a696fbdb47..16d57678db 100755
--- a/indra/newview/llconversationview.cpp
+++ b/indra/newview/llconversationview.cpp
@@ -95,7 +95,7 @@ LLConversationViewSession::~LLConversationViewSession()
LLVoiceClient::getInstance()->removeObserver(mVoiceClientObserver);
}
- delete mFlashTimer;
+ mFlashTimer->unset();
}
bool LLConversationViewSession::isHighlightAllowed()
diff --git a/indra/newview/llfloaterimsession.cpp b/indra/newview/llfloaterimsession.cpp
index e1dc5b91d0..212b0df712 100644
--- a/indra/newview/llfloaterimsession.cpp
+++ b/indra/newview/llfloaterimsession.cpp
@@ -66,7 +66,6 @@ LLFloaterIMSession::LLFloaterIMSession(const LLUUID& session_id)
: LLFloaterIMSessionTab(session_id),
mLastMessageIndex(-1),
mDialog(IM_NOTHING_SPECIAL),
- mSavedTitle(),
mTypingStart(),
mShouldSendTypingState(false),
mMeTyping(false),
@@ -504,9 +503,12 @@ void LLFloaterIMSession::onVoiceChannelStateChanged(
void LLFloaterIMSession::updateSessionName(const std::string& name)
{
- LLFloaterIMSessionTab::updateSessionName(name);
- setTitle(name);
- mTypingStart.setArg("[NAME]", name);
+ if (!name.empty())
+ {
+ LLFloaterIMSessionTab::updateSessionName(name);
+ mTypingStart.setArg("[NAME]", name);
+ setTitle (mOtherTyping ? mTypingStart.getString() : name);
+ }
}
//static
@@ -1095,14 +1097,10 @@ BOOL LLFloaterIMSession::inviteToSession(const uuid_vec_t& ids)
void LLFloaterIMSession::addTypingIndicator(const LLIMInfo* im_info)
{
// We may have lost a "stop-typing" packet, don't add it twice
- if ( im_info && !mOtherTyping )
+ if (im_info && !mOtherTyping)
{
mOtherTyping = true;
- // Save and set new title
- mSavedTitle = getTitle();
- setTitle (mTypingStart);
-
// Update speaker
LLIMSpeakerMgr* speaker_mgr = LLIMModel::getInstance()->getSpeakerManager(mSessionID);
if ( speaker_mgr )
@@ -1114,18 +1112,15 @@ void LLFloaterIMSession::addTypingIndicator(const LLIMInfo* im_info)
void LLFloaterIMSession::removeTypingIndicator(const LLIMInfo* im_info)
{
- if ( mOtherTyping )
+ if (mOtherTyping)
{
mOtherTyping = false;
- // Revert the title to saved one
- setTitle(mSavedTitle);
-
- if ( im_info )
+ if (im_info)
{
// Update speaker
LLIMSpeakerMgr* speaker_mgr = LLIMModel::getInstance()->getSpeakerManager(mSessionID);
- if ( speaker_mgr )
+ if (speaker_mgr)
{
speaker_mgr->setSpeakerTyping(im_info->mFromID, FALSE);
}
diff --git a/indra/newview/llfloaterimsession.h b/indra/newview/llfloaterimsession.h
index f4ec2d457d..72a320041f 100644
--- a/indra/newview/llfloaterimsession.h
+++ b/indra/newview/llfloaterimsession.h
@@ -174,7 +174,6 @@ private:
LLUUID mOtherParticipantUUID;
bool mPositioned;
- std::string mSavedTitle;
LLUIString mTypingStart;
bool mMeTyping;
bool mOtherTyping;
diff --git a/indra/newview/llfloaterimsessiontab.cpp b/indra/newview/llfloaterimsessiontab.cpp
index efc7be6dd6..2d4a714538 100644
--- a/indra/newview/llfloaterimsessiontab.cpp
+++ b/indra/newview/llfloaterimsessiontab.cpp
@@ -43,7 +43,7 @@
#include "lltoolbarview.h"
#include "llfloaterimnearbychat.h"
-const F32 REFRESH_INTERVAL = 0.2f;
+const F32 REFRESH_INTERVAL = 1.0f;
LLFloaterIMSessionTab::LLFloaterIMSessionTab(const LLSD& session_id)
: LLTransientDockableFloater(NULL, true, session_id)
diff --git a/indra/newview/llparticipantlist.cpp b/indra/newview/llparticipantlist.cpp
index 9f89b5f809..6c838f8a45 100644
--- a/indra/newview/llparticipantlist.cpp
+++ b/indra/newview/llparticipantlist.cpp
@@ -366,8 +366,11 @@ bool LLParticipantList::onSpeakerMuteEvent(LLPointer<LLOldEvents::LLEvent> event
void LLParticipantList::addAvatarIDExceptAgent(const LLUUID& avatar_id)
{
- // Do not add if already in there or excluded for some reason
- if (findParticipant(avatar_id)) return;
+ // Do not add if already in there, is the session id (hence not an avatar) or excluded for some reason
+ if (findParticipant(avatar_id) || (avatar_id == mUUID))
+ {
+ return;
+ }
bool is_avatar = LLVoiceClient::getInstance()->isParticipantAvatar(avatar_id);
@@ -391,7 +394,7 @@ void LLParticipantList::addAvatarIDExceptAgent(const LLUUID& avatar_id)
// *TODO : Need to update the online/offline status of the participant
// Hack for this: LLAvatarTracker::instance().isBuddyOnline(avatar_id))
-
+
// Add the participant model to the session's children list
addParticipant(participant);
@@ -413,12 +416,12 @@ void LLParticipantList::adjustParticipant(const LLUUID& speaker_id)
bool LLParticipantList::SpeakerAddListener::handleEvent(LLPointer<LLOldEvents::LLEvent> event, const LLSD& userdata)
{
/**
- * We need to filter speaking objects. These objects shouldn't appear in the list
+ * We need to filter speaking objects. These objects shouldn't appear in the list.
* @see LLFloaterChat::addChat() in llviewermessage.cpp to get detailed call hierarchy
*/
const LLUUID& speaker_id = event->getValue().asUUID();
LLPointer<LLSpeaker> speaker = mParent.mSpeakerMgr->findSpeaker(speaker_id);
- if(speaker.isNull() || speaker->mType == LLSpeaker::SPEAKER_OBJECT)
+ if (speaker.isNull() || (speaker->mType == LLSpeaker::SPEAKER_OBJECT))
{
return false;
}
diff --git a/indra/newview/llsyswellwindow.cpp b/indra/newview/llsyswellwindow.cpp
index 7c000f2dd0..3605129d48 100644
--- a/indra/newview/llsyswellwindow.cpp
+++ b/indra/newview/llsyswellwindow.cpp
@@ -98,8 +98,10 @@ void LLSysWellWindow::onStartUpToastClick(S32 x, S32 y, MASK mask)
void LLSysWellWindow::setSysWellChiclet(LLSysWellChiclet* chiclet)
{
mSysWellChiclet = chiclet;
- if(mSysWellChiclet)
- mSysWellChiclet->updateWidget(isWindowEmpty());
+ if(NULL != mSysWellChiclet)
+ {
+ mSysWellChiclet->updateWidget(isWindowEmpty());
+ }
}
//---------------------------------------------------------------------------------
LLSysWellWindow::~LLSysWellWindow()
@@ -111,7 +113,10 @@ void LLSysWellWindow::removeItemByID(const LLUUID& id)
{
if(mMessageList->removeItemByValue(id))
{
- mSysWellChiclet->updateWidget(isWindowEmpty());
+ if (NULL != mSysWellChiclet)
+ {
+ mSysWellChiclet->updateWidget(isWindowEmpty());
+ }
reshapeWindow();
}
else
@@ -685,11 +690,7 @@ void LLIMWellWindow::addIMRow(const LLUUID& sessionId, S32 chicletCounter,
const std::string& name, const LLUUID& otherParticipantId)
{
RowPanel* item = new RowPanel(this, sessionId, chicletCounter, name, otherParticipantId);
- if (mMessageList->addItem(item, sessionId))
- {
- mSysWellChiclet->updateWidget(isWindowEmpty());
- }
- else
+ if (!mMessageList->addItem(item, sessionId))
{
llwarns << "Unable to add IM Row into the list, sessionID: " << sessionId
<< ", name: " << name
@@ -710,11 +711,7 @@ void LLIMWellWindow::delIMRow(const LLUUID& sessionId)
//But I didn't find why this happen..
gFocusMgr.clearLastFocusForGroup(this);
- if (mMessageList->removeItemByValue(sessionId))
- {
- mSysWellChiclet->updateWidget(isWindowEmpty());
- }
- else
+ if (!mMessageList->removeItemByValue(sessionId))
{
llwarns << "Unable to remove IM Row from the list, sessionID: " << sessionId
<< llendl;
@@ -740,11 +737,7 @@ void LLIMWellWindow::addObjectRow(const LLUUID& notification_id, bool new_messag
if (mMessageList->getItemByValue(notification_id) == NULL)
{
ObjectRowPanel* item = new ObjectRowPanel(notification_id, new_message);
- if (mMessageList->addItem(item, notification_id))
- {
- mSysWellChiclet->updateWidget(isWindowEmpty());
- }
- else
+ if (!mMessageList->addItem(item, notification_id))
{
llwarns << "Unable to add Object Row into the list, notificationID: " << notification_id << llendl;
item->die();
@@ -755,14 +748,7 @@ void LLIMWellWindow::addObjectRow(const LLUUID& notification_id, bool new_messag
void LLIMWellWindow::removeObjectRow(const LLUUID& notification_id)
{
- if (mMessageList->removeItemByValue(notification_id))
- {
- if (mSysWellChiclet)
- {
- mSysWellChiclet->updateWidget(isWindowEmpty());
- }
- }
- else
+ if (!mMessageList->removeItemByValue(notification_id))
{
llwarns << "Unable to remove Object Row from the list, notificationID: " << notification_id << llendl;
}
diff --git a/indra/newview/skins/default/textures/bottomtray/Unread_IM.png b/indra/newview/skins/default/textures/bottomtray/Unread_IM.png
deleted file mode 100644
index 5c0c85b864..0000000000
--- a/indra/newview/skins/default/textures/bottomtray/Unread_IM.png
+++ /dev/null
Binary files differ
diff --git a/indra/newview/skins/default/textures/textures.xml b/indra/newview/skins/default/textures/textures.xml
index a124041565..8d9fa52309 100644
--- a/indra/newview/skins/default/textures/textures.xml
+++ b/indra/newview/skins/default/textures/textures.xml
@@ -642,7 +642,6 @@ with the same filename but different name
<texture name="TrashItem_Press" file_name="icons/TrashItem_Press.png" preload="false" />
<texture name="Unread_Chiclet" file_name="bottomtray/Unread_Chiclet.png" preload="false" />
- <texture name="Unread_IM" file_name="bottomtray/Unread_IM.png" preload="false" />
<texture name="UpArrow_Off" file_name="icons/UpArrow_Off.png" preload="false" />
diff --git a/indra/newview/skins/default/xui/en/menu_im_well_button.xml b/indra/newview/skins/default/xui/en/menu_im_well_button.xml
deleted file mode 100644
index f8dfba91ff..0000000000
--- a/indra/newview/skins/default/xui/en/menu_im_well_button.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<context_menu
- layout="topleft"
- name="IM Well Button Context Menu">
- <menu_item_call
- label="Close All"
- layout="topleft"
- name="Close All">
- <menu_item_call.on_click
- function="IMWellChicletMenu.Action"
- parameter="close all" />
- <menu_item_call.on_enable
- function="IMWellChicletMenu.EnableItem"
- parameter="can close all" />
- </menu_item_call>
-</context_menu>
diff --git a/indra/newview/skins/default/xui/en/panel_chiclet_bar.xml b/indra/newview/skins/default/xui/en/panel_chiclet_bar.xml
index ff0146490b..fc321fdd23 100644
--- a/indra/newview/skins/default/xui/en/panel_chiclet_bar.xml
+++ b/indra/newview/skins/default/xui/en/panel_chiclet_bar.xml
@@ -87,54 +87,6 @@
layout="topleft"
min_height="28"
min_width="37"
- name="im_well_panel"
- top="0"
- width="37">
- <chiclet_im_well
- follows="right"
- height="28"
- layout="topleft"
- left="0"
- max_displayed_count="99"
- name="im_well"
- top="0"
- width="35">
- <!--
-Emulate 4 states of button by background images, see details in EXT-3147. The same should be for notification_well button
-xml attribute Description
-image_unselected "Unlit" - there are no new messages
-image_selected "Unlit" + "Selected" - there are no new messages and the Well is open
-image_pressed "Lit" - there are new messages
-image_pressed_selected "Lit" + "Selected" - there are new messages and the Well is open
- -->
- <button
- auto_resize="false"
- follows="right"
- halign="center"
- height="23"
- image_overlay="Unread_IM"
- image_overlay_alignment="center"
- image_pressed="WellButton_Lit"
- image_pressed_selected="WellButton_Lit_Selected"
- image_selected="PushButton_Press"
- label_color="Black"
- left="0"
- name="Unread IM messages"
- tool_tip="Conversations"
- width="34">
- <init_callback
- function="Button.SetDockableFloaterToggle"
- parameter="im_well_window" />
- </button>
- </chiclet_im_well>
- </layout_panel>
- <layout_panel
- auto_resize="false"
- follows="right"
- height="28"
- layout="topleft"
- min_height="28"
- min_width="37"
name="notification_well_panel"
top="0"
width="37">