diff options
Diffstat (limited to 'indra/newview/llchiclet.cpp')
-rw-r--r-- | indra/newview/llchiclet.cpp | 1352 |
1 files changed, 676 insertions, 676 deletions
diff --git a/indra/newview/llchiclet.cpp b/indra/newview/llchiclet.cpp index 3444f50e52..3d328e66c8 100644 --- a/indra/newview/llchiclet.cpp +++ b/indra/newview/llchiclet.cpp @@ -1,25 +1,25 @@ -/** +/** * @file llchiclet.cpp * @brief LLChiclet class implementation * * $LicenseInfo:firstyear=2002&license=viewerlgpl$ * Second Life Viewer Source Code * Copyright (C) 2010, Linden Research, Inc. - * + * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; * version 2.1 of the License only. - * + * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * + * * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA * $/LicenseInfo$ */ @@ -44,137 +44,137 @@ static LLDefaultChildRegistry::Register<LLScriptChiclet> t6("chiclet_script"); static LLDefaultChildRegistry::Register<LLInvOfferChiclet> t7("chiclet_offer"); boost::signals2::signal<LLChiclet* (const LLUUID&), - LLIMChiclet::CollectChicletCombiner<std::list<LLChiclet*> > > - LLIMChiclet::sFindChicletsSignal; + LLIMChiclet::CollectChicletCombiner<std::list<LLChiclet*> > > + LLIMChiclet::sFindChicletsSignal; ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// LLSysWellChiclet::Params::Params() - : button("button") - , unread_notifications("unread_notifications") - , max_displayed_count("max_displayed_count", 99) + : button("button") + , unread_notifications("unread_notifications") + , max_displayed_count("max_displayed_count", 99) { - button.name = "button"; - button.tab_stop = FALSE; - button.label = LLStringUtil::null; + button.name = "button"; + button.tab_stop = FALSE; + button.label = LLStringUtil::null; } LLSysWellChiclet::LLSysWellChiclet(const Params& p) - : LLChiclet(p) - , mButton(NULL) - , mCounter(0) - , mMaxDisplayedCount(p.max_displayed_count) - , mIsNewMessagesState(false) - , mFlashToLitTimer(NULL) + : LLChiclet(p) + , mButton(NULL) + , mCounter(0) + , mMaxDisplayedCount(p.max_displayed_count) + , mIsNewMessagesState(false) + , mFlashToLitTimer(NULL) { - LLButton::Params button_params = p.button; - mButton = LLUICtrlFactory::create<LLButton>(button_params); - addChild(mButton); + LLButton::Params button_params = p.button; + mButton = LLUICtrlFactory::create<LLButton>(button_params); + addChild(mButton); - mFlashToLitTimer = new LLFlashTimer(boost::bind(&LLSysWellChiclet::changeLitState, this, _1)); + mFlashToLitTimer = new LLFlashTimer(boost::bind(&LLSysWellChiclet::changeLitState, this, _1)); } LLSysWellChiclet::~LLSysWellChiclet() { - mFlashToLitTimer->unset(); - LLContextMenu* menu = static_cast<LLContextMenu*>(mContextMenuHandle.get()); - if (menu) - { - menu->die(); - mContextMenuHandle.markDead(); - } + mFlashToLitTimer->unset(); + LLContextMenu* menu = static_cast<LLContextMenu*>(mContextMenuHandle.get()); + if (menu) + { + menu->die(); + mContextMenuHandle.markDead(); + } } void LLSysWellChiclet::setCounter(S32 counter) { - // do nothing if the same counter is coming. EXT-3678. - if (counter == mCounter) return; + // do nothing if the same counter is coming. EXT-3678. + if (counter == mCounter) return; - // note same code in LLChicletNotificationCounterCtrl::setCounter(S32 counter) - std::string s_count; - if(counter != 0) - { - static std::string more_messages_exist("+"); - std::string more_messages(counter > mMaxDisplayedCount ? more_messages_exist : ""); - s_count = llformat("%d%s" - , llmin(counter, mMaxDisplayedCount) - , more_messages.c_str() - ); - } + // note same code in LLChicletNotificationCounterCtrl::setCounter(S32 counter) + std::string s_count; + if(counter != 0) + { + static std::string more_messages_exist("+"); + std::string more_messages(counter > mMaxDisplayedCount ? more_messages_exist : ""); + s_count = llformat("%d%s" + , llmin(counter, mMaxDisplayedCount) + , more_messages.c_str() + ); + } - mButton->setLabel(s_count); + mButton->setLabel(s_count); - mCounter = counter; + mCounter = counter; } boost::signals2::connection LLSysWellChiclet::setClickCallback( - const commit_callback_t& cb) + const commit_callback_t& cb) { - return mButton->setClickedCallback(cb); + return mButton->setClickedCallback(cb); } void LLSysWellChiclet::setToggleState(BOOL toggled) { - mButton->setToggleState(toggled); + mButton->setToggleState(toggled); } void LLSysWellChiclet::changeLitState(bool blink) { - setNewMessagesState(!mIsNewMessagesState); + setNewMessagesState(!mIsNewMessagesState); } void LLSysWellChiclet::setNewMessagesState(bool new_messages) { - /* - Emulate 4 states of button by background images, see detains in EXT-3147 - 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 - */ - mButton->setForcePressedState(new_messages); + /* + Emulate 4 states of button by background images, see detains in EXT-3147 + 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 + */ + mButton->setForcePressedState(new_messages); - mIsNewMessagesState = new_messages; + mIsNewMessagesState = new_messages; } void LLSysWellChiclet::updateWidget(bool is_window_empty) { - mButton->setEnabled(!is_window_empty); + mButton->setEnabled(!is_window_empty); - if (LLChicletBar::instanceExists()) - { - LLChicletBar::getInstance()->showWellButton(getName(), !is_window_empty); - } + if (LLChicletBar::instanceExists()) + { + LLChicletBar::getInstance()->showWellButton(getName(), !is_window_empty); + } } // virtual BOOL LLSysWellChiclet::handleRightMouseDown(S32 x, S32 y, MASK mask) { - LLContextMenu* menu_avatar = mContextMenuHandle.get(); - if(!menu_avatar) - { - createMenu(); - menu_avatar = mContextMenuHandle.get(); - } - if (menu_avatar) - { - menu_avatar->show(x, y); - LLMenuGL::showPopup(this, menu_avatar, x, y); - } - return TRUE; + LLContextMenu* menu_avatar = mContextMenuHandle.get(); + if(!menu_avatar) + { + createMenu(); + menu_avatar = mContextMenuHandle.get(); + } + if (menu_avatar) + { + menu_avatar->show(x, y); + LLMenuGL::showPopup(this, menu_avatar, x, y); + } + return TRUE; } /************************************************************************/ /* LLNotificationChiclet implementation */ /************************************************************************/ LLNotificationChiclet::LLNotificationChiclet(const Params& p) -: LLSysWellChiclet(p), - mUreadSystemNotifications(0) +: LLSysWellChiclet(p), + mUreadSystemNotifications(0) { - mNotificationChannel.reset(new ChicletNotificationChannel(this)); - // ensure that notification well window exists, to synchronously - // handle toast add/delete events. - LLFloaterNotificationsTabbed::getInstance()->setSysWellChiclet(this); + mNotificationChannel.reset(new ChicletNotificationChannel(this)); + // ensure that notification well window exists, to synchronously + // handle toast add/delete events. + LLFloaterNotificationsTabbed::getInstance()->setSysWellChiclet(this); } LLNotificationChiclet::~LLNotificationChiclet() @@ -184,81 +184,81 @@ LLNotificationChiclet::~LLNotificationChiclet() void LLNotificationChiclet::onMenuItemClicked(const LLSD& user_data) { - std::string action = user_data.asString(); - if("close all" == action) - { - LLFloaterNotificationsTabbed::getInstance()->closeAll(); - LLIMWellWindow::getInstance()->closeAll(); - } + std::string action = user_data.asString(); + if("close all" == action) + { + LLFloaterNotificationsTabbed::getInstance()->closeAll(); + LLIMWellWindow::getInstance()->closeAll(); + } } bool LLNotificationChiclet::enableMenuItem(const LLSD& user_data) { - std::string item = user_data.asString(); - if (item == "can close all") - { - return mUreadSystemNotifications != 0; - } - return true; + std::string item = user_data.asString(); + if (item == "can close all") + { + return mUreadSystemNotifications != 0; + } + return true; } void LLNotificationChiclet::createMenu() { - if(mContextMenuHandle.get()) - { - LL_WARNS() << "Menu already exists" << LL_ENDL; - return; - } + if(mContextMenuHandle.get()) + { + LL_WARNS() << "Menu already exists" << LL_ENDL; + return; + } - LLUICtrl::CommitCallbackRegistry::ScopedRegistrar registrar; - registrar.add("NotificationWellChicletMenu.Action", - boost::bind(&LLNotificationChiclet::onMenuItemClicked, this, _2)); + LLUICtrl::CommitCallbackRegistry::ScopedRegistrar registrar; + registrar.add("NotificationWellChicletMenu.Action", + boost::bind(&LLNotificationChiclet::onMenuItemClicked, this, _2)); - LLUICtrl::EnableCallbackRegistry::ScopedRegistrar enable_registrar; - enable_registrar.add("NotificationWellChicletMenu.EnableItem", - boost::bind(&LLNotificationChiclet::enableMenuItem, this, _2)); + LLUICtrl::EnableCallbackRegistry::ScopedRegistrar enable_registrar; + enable_registrar.add("NotificationWellChicletMenu.EnableItem", + boost::bind(&LLNotificationChiclet::enableMenuItem, this, _2)); - llassert(LLMenuGL::sMenuContainer != NULL); - LLContextMenu* menu = LLUICtrlFactory::getInstance()->createFromFile<LLContextMenu> - ("menu_notification_well_button.xml", - LLMenuGL::sMenuContainer, - LLViewerMenuHolderGL::child_registry_t::instance()); - if (menu) - { - mContextMenuHandle = menu->getHandle(); - } + llassert(LLMenuGL::sMenuContainer != NULL); + LLContextMenu* menu = LLUICtrlFactory::getInstance()->createFromFile<LLContextMenu> + ("menu_notification_well_button.xml", + LLMenuGL::sMenuContainer, + LLViewerMenuHolderGL::child_registry_t::instance()); + if (menu) + { + mContextMenuHandle = menu->getHandle(); + } } /*virtual*/ void LLNotificationChiclet::setCounter(S32 counter) { - LLSysWellChiclet::setCounter(counter); - updateWidget(getCounter() == 0); - + LLSysWellChiclet::setCounter(counter); + updateWidget(getCounter() == 0); + } bool LLNotificationChiclet::ChicletNotificationChannel::filterNotification( LLNotificationPtr notification ) { - bool displayNotification; - if ( (notification->getName() == "ScriptDialog") // special case for scripts - // if there is no toast window for the notification, filter it - //|| (!LLNotificationWellWindow::getInstance()->findItemByID(notification->getID())) + bool displayNotification; + if ( (notification->getName() == "ScriptDialog") // special case for scripts + // if there is no toast window for the notification, filter it + //|| (!LLNotificationWellWindow::getInstance()->findItemByID(notification->getID())) || (!LLFloaterNotificationsTabbed::getInstance()->findItemByID(notification->getID(), notification->getName())) - ) - { - displayNotification = false; - } - else if( !(notification->canLogToIM() && notification->hasFormElements()) - && (!notification->getPayload().has("give_inventory_notification") - || notification->getPayload()["give_inventory_notification"])) - { - displayNotification = true; - } - else - { - displayNotification = false; - } - return displayNotification; + ) + { + displayNotification = false; + } + else if( !(notification->canLogToIM() && notification->hasFormElements()) + && (!notification->getPayload().has("give_inventory_notification") + || notification->getPayload()["give_inventory_notification"])) + { + displayNotification = true; + } + else + { + displayNotification = false; + } + return displayNotification; } ////////////////////////////////////////////////////////////////////////// @@ -279,40 +279,40 @@ LLChiclet::LLChiclet(const Params& p) } boost::signals2::connection LLChiclet::setLeftButtonClickCallback( - const commit_callback_t& cb) + const commit_callback_t& cb) { - return setCommitCallback(cb); + return setCommitCallback(cb); } BOOL LLChiclet::handleMouseDown(S32 x, S32 y, MASK mask) { - onCommit(); - childrenHandleMouseDown(x,y,mask); - return TRUE; + onCommit(); + childrenHandleMouseDown(x,y,mask); + return TRUE; } boost::signals2::connection LLChiclet::setChicletSizeChangedCallback( - const chiclet_size_changed_callback_t& cb) + const chiclet_size_changed_callback_t& cb) { - return mChicletSizeChangedSignal.connect(cb); + return mChicletSizeChangedSignal.connect(cb); } void LLChiclet::onChicletSizeChanged() { - mChicletSizeChangedSignal(this, getValue()); + mChicletSizeChangedSignal(this, getValue()); } LLSD LLChiclet::getValue() const { - return LLSD(getSessionId()); + return LLSD(getSessionId()); } void LLChiclet::setValue(const LLSD& value) { - if(value.isUUID()) - { - setSessionId(value.asUUID()); - } + if(value.isUUID()) + { + setSessionId(value.asUUID()); + } } ////////////////////////////////////////////////////////////////////////// @@ -330,103 +330,103 @@ LLIMChiclet::LLIMChiclet(const LLIMChiclet::Params& p) LLIMChiclet::~LLIMChiclet() { - auto menu = mPopupMenuHandle.get(); - if (menu) - { - menu->die(); - mPopupMenuHandle.markDead(); - } + auto menu = mPopupMenuHandle.get(); + if (menu) + { + menu->die(); + mPopupMenuHandle.markDead(); + } } /* virtual*/ BOOL LLIMChiclet::postBuild() { - mChicletButton = getChild<LLButton>("chiclet_button"); - mChicletButton->setCommitCallback(boost::bind(&LLIMChiclet::onMouseDown, this)); - mChicletButton->setDoubleClickCallback(boost::bind(&LLIMChiclet::onMouseDown, this)); - return TRUE; + mChicletButton = getChild<LLButton>("chiclet_button"); + mChicletButton->setCommitCallback(boost::bind(&LLIMChiclet::onMouseDown, this)); + mChicletButton->setDoubleClickCallback(boost::bind(&LLIMChiclet::onMouseDown, this)); + return TRUE; } -void LLIMChiclet::enableCounterControl(bool enable) +void LLIMChiclet::enableCounterControl(bool enable) { - mCounterEnabled = enable; - if(!enable) - { - LLChiclet::setShowCounter(false); - } + mCounterEnabled = enable; + if(!enable) + { + LLChiclet::setShowCounter(false); + } } void LLIMChiclet::setRequiredWidth() { - S32 required_width = mDefaultWidth; - reshape(required_width, getRect().getHeight()); - onChicletSizeChanged(); + S32 required_width = mDefaultWidth; + reshape(required_width, getRect().getHeight()); + onChicletSizeChanged(); } void LLIMChiclet::setShowNewMessagesIcon(bool show) { - if(mNewMessagesIcon) - { - mNewMessagesIcon->setVisible(show); - } - setRequiredWidth(); + if(mNewMessagesIcon) + { + mNewMessagesIcon->setVisible(show); + } + setRequiredWidth(); } bool LLIMChiclet::getShowNewMessagesIcon() { - return mNewMessagesIcon->getVisible(); + return mNewMessagesIcon->getVisible(); } void LLIMChiclet::onMouseDown() { - LLFloaterIMSession::toggle(getSessionId()); + LLFloaterIMSession::toggle(getSessionId()); } void LLIMChiclet::setToggleState(bool toggle) { - mChicletButton->setToggleState(toggle); + mChicletButton->setToggleState(toggle); } BOOL LLIMChiclet::handleRightMouseDown(S32 x, S32 y, MASK mask) { - auto menu = static_cast<LLMenuGL*>(mPopupMenuHandle.get()); - if(!menu) - { - createPopupMenu(); - menu = static_cast<LLMenuGL*>(mPopupMenuHandle.get()); - } + auto menu = static_cast<LLMenuGL*>(mPopupMenuHandle.get()); + if(!menu) + { + createPopupMenu(); + menu = static_cast<LLMenuGL*>(mPopupMenuHandle.get()); + } - if (menu) - { - updateMenuItems(); - menu->arrangeAndClear(); - LLMenuGL::showPopup(this, menu, x, y); - } + if (menu) + { + updateMenuItems(); + menu->arrangeAndClear(); + LLMenuGL::showPopup(this, menu, x, y); + } - return TRUE; + return TRUE; } void LLIMChiclet::hidePopupMenu() { - auto menu = mPopupMenuHandle.get(); - if (menu) - { - menu->setVisible(FALSE); - } + auto menu = mPopupMenuHandle.get(); + if (menu) + { + menu->setVisible(FALSE); + } } bool LLIMChiclet::canCreateMenu() { - if(mPopupMenuHandle.get()) - { - LL_WARNS() << "Menu already exists" << LL_ENDL; - return false; - } - if(getSessionId().isNull()) - { - return false; - } - return true; + if(mPopupMenuHandle.get()) + { + LL_WARNS() << "Menu already exists" << LL_ENDL; + return false; + } + if(getSessionId().isNull()) + { + return false; + } + return true; } ////////////////////////////////////////////////////////////////////////// @@ -454,23 +454,23 @@ LLChicletPanel::LLChicletPanel(const Params&p) , mMinWidth(p.min_width) , mShowControls(true) { - LLPanel::Params panel_params; - panel_params.follows.flags(FOLLOWS_LEFT | FOLLOWS_RIGHT); - mScrollArea = LLUICtrlFactory::create<LLPanel>(panel_params,this); + LLPanel::Params panel_params; + panel_params.follows.flags(FOLLOWS_LEFT | FOLLOWS_RIGHT); + mScrollArea = LLUICtrlFactory::create<LLPanel>(panel_params,this); - // important for Show/Hide Camera and Move controls menu in bottom tray to work properly - mScrollArea->setMouseOpaque(false); + // important for Show/Hide Camera and Move controls menu in bottom tray to work properly + mScrollArea->setMouseOpaque(false); - addChild(mScrollArea); + addChild(mScrollArea); } LLChicletPanel::~LLChicletPanel() { - if(LLTransientFloaterMgr::instanceExists()) - { - LLTransientFloaterMgr::getInstance()->removeControlView(mLeftScrollButton); - LLTransientFloaterMgr::getInstance()->removeControlView(mRightScrollButton); - } + if(LLTransientFloaterMgr::instanceExists()) + { + LLTransientFloaterMgr::getInstance()->removeControlView(mLeftScrollButton); + LLTransientFloaterMgr::getInstance()->removeControlView(mRightScrollButton); + } } void LLChicletPanel::onMessageCountChanged(const LLSD& data) @@ -478,564 +478,564 @@ void LLChicletPanel::onMessageCountChanged(const LLSD& data) // *TODO : we either suppress this method or return a value. Right now, it servers no purpose. /* - //LLFloaterIMSession* im_floater = LLFloaterIMSession::findInstance(session_id); - //if (im_floater && im_floater->getVisible() && im_floater->hasFocus()) - //{ - // unread = 0; - //} + //LLFloaterIMSession* im_floater = LLFloaterIMSession::findInstance(session_id); + //if (im_floater && im_floater->getVisible() && im_floater->hasFocus()) + //{ + // unread = 0; + //} */ } void LLChicletPanel::objectChicletCallback(const LLSD& data) { - LLUUID notification_id = data["notification_id"]; - bool new_message = data["new_message"]; + LLUUID notification_id = data["notification_id"]; + bool new_message = data["new_message"]; - std::list<LLChiclet*> chiclets = LLIMChiclet::sFindChicletsSignal(notification_id); - std::list<LLChiclet *>::iterator iter; - for (iter = chiclets.begin(); iter != chiclets.end(); iter++) - { - LLIMChiclet* chiclet = dynamic_cast<LLIMChiclet*>(*iter); - if (chiclet != NULL) - { - chiclet->setShowNewMessagesIcon(new_message); - } - } + std::list<LLChiclet*> chiclets = LLIMChiclet::sFindChicletsSignal(notification_id); + std::list<LLChiclet *>::iterator iter; + for (iter = chiclets.begin(); iter != chiclets.end(); iter++) + { + LLIMChiclet* chiclet = dynamic_cast<LLIMChiclet*>(*iter); + if (chiclet != NULL) + { + chiclet->setShowNewMessagesIcon(new_message); + } + } } BOOL LLChicletPanel::postBuild() { - LLPanel::postBuild(); - LLIMModel::instance().addNewMsgCallback(boost::bind(&LLChicletPanel::onMessageCountChanged, this, _1)); - LLIMModel::instance().addNoUnreadMsgsCallback(boost::bind(&LLChicletPanel::onMessageCountChanged, this, _1)); - LLScriptFloaterManager::getInstance()->addNewObjectCallback(boost::bind(&LLChicletPanel::objectChicletCallback, this, _1)); - LLScriptFloaterManager::getInstance()->addToggleObjectFloaterCallback(boost::bind(&LLChicletPanel::objectChicletCallback, this, _1)); - LLIMChiclet::sFindChicletsSignal.connect(boost::bind(&LLChicletPanel::findChiclet<LLChiclet>, this, _1)); - LLVoiceChannel::setCurrentVoiceChannelChangedCallback(boost::bind(&LLChicletPanel::onCurrentVoiceChannelChanged, this, _1)); + LLPanel::postBuild(); + LLIMModel::instance().addNewMsgCallback(boost::bind(&LLChicletPanel::onMessageCountChanged, this, _1)); + LLIMModel::instance().addNoUnreadMsgsCallback(boost::bind(&LLChicletPanel::onMessageCountChanged, this, _1)); + LLScriptFloaterManager::getInstance()->addNewObjectCallback(boost::bind(&LLChicletPanel::objectChicletCallback, this, _1)); + LLScriptFloaterManager::getInstance()->addToggleObjectFloaterCallback(boost::bind(&LLChicletPanel::objectChicletCallback, this, _1)); + LLIMChiclet::sFindChicletsSignal.connect(boost::bind(&LLChicletPanel::findChiclet<LLChiclet>, this, _1)); + LLVoiceChannel::setCurrentVoiceChannelChangedCallback(boost::bind(&LLChicletPanel::onCurrentVoiceChannelChanged, this, _1)); - mLeftScrollButton=getChild<LLButton>("chicklet_left_scroll_button"); - LLTransientFloaterMgr::getInstance()->addControlView(mLeftScrollButton); - mLeftScrollButton->setMouseDownCallback(boost::bind(&LLChicletPanel::onLeftScrollClick,this)); - mLeftScrollButton->setHeldDownCallback(boost::bind(&LLChicletPanel::onLeftScrollHeldDown,this)); - mLeftScrollButton->setEnabled(false); + mLeftScrollButton=getChild<LLButton>("chicklet_left_scroll_button"); + LLTransientFloaterMgr::getInstance()->addControlView(mLeftScrollButton); + mLeftScrollButton->setMouseDownCallback(boost::bind(&LLChicletPanel::onLeftScrollClick,this)); + mLeftScrollButton->setHeldDownCallback(boost::bind(&LLChicletPanel::onLeftScrollHeldDown,this)); + mLeftScrollButton->setEnabled(false); - mRightScrollButton=getChild<LLButton>("chicklet_right_scroll_button"); - LLTransientFloaterMgr::getInstance()->addControlView(mRightScrollButton); - mRightScrollButton->setMouseDownCallback(boost::bind(&LLChicletPanel::onRightScrollClick,this)); - mRightScrollButton->setHeldDownCallback(boost::bind(&LLChicletPanel::onRightScrollHeldDown,this)); - mRightScrollButton->setEnabled(false); + mRightScrollButton=getChild<LLButton>("chicklet_right_scroll_button"); + LLTransientFloaterMgr::getInstance()->addControlView(mRightScrollButton); + mRightScrollButton->setMouseDownCallback(boost::bind(&LLChicletPanel::onRightScrollClick,this)); + mRightScrollButton->setHeldDownCallback(boost::bind(&LLChicletPanel::onRightScrollHeldDown,this)); + mRightScrollButton->setEnabled(false); - return TRUE; + return TRUE; } void LLChicletPanel::onCurrentVoiceChannelChanged(const LLUUID& session_id) { - static LLUUID s_previous_active_voice_session_id; + static LLUUID s_previous_active_voice_session_id; - std::list<LLChiclet*> chiclets = LLIMChiclet::sFindChicletsSignal(session_id); + std::list<LLChiclet*> chiclets = LLIMChiclet::sFindChicletsSignal(session_id); - for(std::list<LLChiclet *>::iterator it = chiclets.begin(); it != chiclets.end(); ++it) - { - LLIMChiclet* chiclet = dynamic_cast<LLIMChiclet*>(*it); - if(chiclet) - { - if (gSavedSettings.getBOOL("OpenIMOnVoice")) - { - LLFloaterIMContainer::getInstance()->showConversation(session_id); - } - } - } + for(std::list<LLChiclet *>::iterator it = chiclets.begin(); it != chiclets.end(); ++it) + { + LLIMChiclet* chiclet = dynamic_cast<LLIMChiclet*>(*it); + if(chiclet) + { + if (gSavedSettings.getBOOL("OpenIMOnVoice")) + { + LLFloaterIMContainer::getInstance()->showConversation(session_id); + } + } + } - s_previous_active_voice_session_id = session_id; + s_previous_active_voice_session_id = session_id; } bool LLChicletPanel::addChiclet(LLChiclet* chiclet, S32 index) { - if(mScrollArea->addChild(chiclet)) - { - // chiclets should be aligned to right edge of scroll panel - S32 left_shift = 0; + if(mScrollArea->addChild(chiclet)) + { + // chiclets should be aligned to right edge of scroll panel + S32 left_shift = 0; - if (!canScrollLeft()) - { - // init left shift for the first chiclet in the list... - if (mChicletList.empty()) - { - // ...start from the right border of the scroll area for the first added chiclet - left_shift = mScrollArea->getRect().getWidth(); - } - else - { - // ... start from the left border of the first chiclet minus padding - left_shift = getChiclet(0)->getRect().mLeft - getChicletPadding(); - } + if (!canScrollLeft()) + { + // init left shift for the first chiclet in the list... + if (mChicletList.empty()) + { + // ...start from the right border of the scroll area for the first added chiclet + left_shift = mScrollArea->getRect().getWidth(); + } + else + { + // ... start from the left border of the first chiclet minus padding + left_shift = getChiclet(0)->getRect().mLeft - getChicletPadding(); + } - // take into account width of the being added chiclet - left_shift -= chiclet->getRequiredRect().getWidth(); + // take into account width of the being added chiclet + left_shift -= chiclet->getRequiredRect().getWidth(); - // if we overflow the scroll area we do not need to shift chiclets - if (left_shift < 0) - { - left_shift = 0; - } - } + // if we overflow the scroll area we do not need to shift chiclets + if (left_shift < 0) + { + left_shift = 0; + } + } - mChicletList.insert(mChicletList.begin() + index, chiclet); + mChicletList.insert(mChicletList.begin() + index, chiclet); - // shift first chiclet to place it in correct position. - // rest ones will be placed in arrange() - if (!canScrollLeft()) - { - getChiclet(0)->translate(left_shift - getChiclet(0)->getRect().mLeft, 0); - } + // shift first chiclet to place it in correct position. + // rest ones will be placed in arrange() + if (!canScrollLeft()) + { + getChiclet(0)->translate(left_shift - getChiclet(0)->getRect().mLeft, 0); + } - chiclet->setLeftButtonClickCallback(boost::bind(&LLChicletPanel::onChicletClick, this, _1, _2)); - chiclet->setChicletSizeChangedCallback(boost::bind(&LLChicletPanel::onChicletSizeChanged, this, _1, index)); + chiclet->setLeftButtonClickCallback(boost::bind(&LLChicletPanel::onChicletClick, this, _1, _2)); + chiclet->setChicletSizeChangedCallback(boost::bind(&LLChicletPanel::onChicletSizeChanged, this, _1, index)); - arrange(); - LLTransientFloaterMgr::getInstance()->addControlView(LLTransientFloaterMgr::IM, chiclet); + arrange(); + LLTransientFloaterMgr::getInstance()->addControlView(LLTransientFloaterMgr::IM, chiclet); - return true; - } + return true; + } - return false; + return false; } void LLChicletPanel::onChicletSizeChanged(LLChiclet* ctrl, const LLSD& param) { - arrange(); + arrange(); } void LLChicletPanel::onChicletClick(LLUICtrl*ctrl,const LLSD¶m) { - if (mCommitSignal) - { - (*mCommitSignal)(ctrl,param); - } + if (mCommitSignal) + { + (*mCommitSignal)(ctrl,param); + } } void LLChicletPanel::removeChiclet(chiclet_list_t::iterator it) { - LLChiclet* chiclet = *it; - mScrollArea->removeChild(chiclet); - mChicletList.erase(it); - - arrange(); - LLTransientFloaterMgr::getInstance()->removeControlView(LLTransientFloaterMgr::IM, chiclet); - chiclet->die(); + LLChiclet* chiclet = *it; + mScrollArea->removeChild(chiclet); + mChicletList.erase(it); + + arrange(); + LLTransientFloaterMgr::getInstance()->removeControlView(LLTransientFloaterMgr::IM, chiclet); + chiclet->die(); } void LLChicletPanel::removeChiclet(S32 index) { - if(index >= 0 && index < getChicletCount()) - { - removeChiclet(mChicletList.begin() + index); - } + if(index >= 0 && index < getChicletCount()) + { + removeChiclet(mChicletList.begin() + index); + } } S32 LLChicletPanel::getChicletIndex(const LLChiclet* chiclet) { - if(mChicletList.empty()) - return -1; + if(mChicletList.empty()) + return -1; - S32 size = getChicletCount(); - for(int n = 0; n < size; ++n) - { - if(chiclet == mChicletList[n]) - return n; - } + S32 size = getChicletCount(); + for(int n = 0; n < size; ++n) + { + if(chiclet == mChicletList[n]) + return n; + } - return -1; + return -1; } void LLChicletPanel::removeChiclet(LLChiclet*chiclet) { - chiclet_list_t::iterator it = mChicletList.begin(); - for( ; mChicletList.end() != it; ++it) - { - LLChiclet* temp = *it; - if(temp == chiclet) - { - removeChiclet(it); - return; - } - } + chiclet_list_t::iterator it = mChicletList.begin(); + for( ; mChicletList.end() != it; ++it) + { + LLChiclet* temp = *it; + if(temp == chiclet) + { + removeChiclet(it); + return; + } + } } void LLChicletPanel::removeChiclet(const LLUUID& im_session_id) { - chiclet_list_t::iterator it = mChicletList.begin(); - for( ; mChicletList.end() != it; ++it) - { - LLIMChiclet* chiclet = dynamic_cast<LLIMChiclet*>(*it); + chiclet_list_t::iterator it = mChicletList.begin(); + for( ; mChicletList.end() != it; ++it) + { + LLIMChiclet* chiclet = dynamic_cast<LLIMChiclet*>(*it); - if(chiclet->getSessionId() == im_session_id) - { - removeChiclet(it); - return; - } - } + if(chiclet->getSessionId() == im_session_id) + { + removeChiclet(it); + return; + } + } } void LLChicletPanel::removeAll() { - S32 size = getChicletCount(); - for(S32 n = 0; n < size; ++n) - { - mScrollArea->removeChild(mChicletList[n]); - } + S32 size = getChicletCount(); + for(S32 n = 0; n < size; ++n) + { + mScrollArea->removeChild(mChicletList[n]); + } - mChicletList.erase(mChicletList.begin(), mChicletList.end()); + mChicletList.erase(mChicletList.begin(), mChicletList.end()); - showScrollButtonsIfNeeded(); + showScrollButtonsIfNeeded(); } void LLChicletPanel::scrollToChiclet(const LLChiclet* chiclet) { - const LLRect& rect = chiclet->getRect(); + const LLRect& rect = chiclet->getRect(); - if (rect.mLeft < 0) - { - scroll(llabs(rect.mLeft)); - showScrollButtonsIfNeeded(); - } - else - { - S32 scrollWidth = mScrollArea->getRect().getWidth(); + if (rect.mLeft < 0) + { + scroll(llabs(rect.mLeft)); + showScrollButtonsIfNeeded(); + } + else + { + S32 scrollWidth = mScrollArea->getRect().getWidth(); - if (rect.mRight > scrollWidth) - { - scroll(-llabs(rect.mRight - scrollWidth)); - showScrollButtonsIfNeeded(); - } - } + if (rect.mRight > scrollWidth) + { + scroll(-llabs(rect.mRight - scrollWidth)); + showScrollButtonsIfNeeded(); + } + } } void LLChicletPanel::reshape(S32 width, S32 height, BOOL called_from_parent ) { - LLPanel::reshape(width,height,called_from_parent); - - //Needed once- to avoid error at first call of reshape() before postBuild() - if(!mLeftScrollButton||!mRightScrollButton) - return; - - LLRect scroll_button_rect = mLeftScrollButton->getRect(); - mLeftScrollButton->setRect(LLRect(0,scroll_button_rect.mTop,scroll_button_rect.getWidth(), - scroll_button_rect.mBottom)); - scroll_button_rect = mRightScrollButton->getRect(); - mRightScrollButton->setRect(LLRect(width - scroll_button_rect.getWidth(),scroll_button_rect.mTop, - width, scroll_button_rect.mBottom)); - - - bool need_show_scroll = needShowScroll(); - if(need_show_scroll) - { - mScrollArea->setRect(LLRect(scroll_button_rect.getWidth() + mScrollButtonHPad, - height, width - scroll_button_rect.getWidth() - mScrollButtonHPad, 0)); - } - else - { - mScrollArea->setRect(LLRect(0,height, width, 0)); - } - - mShowControls = width >= mMinWidth; - - mScrollArea->setVisible(mShowControls); - - trimChiclets(); - showScrollButtonsIfNeeded(); - -} - -S32 LLChicletPanel::notifyParent(const LLSD& info) -{ - if(info.has("notification")) - { - std::string str_notification = info["notification"]; - if(str_notification == "size_changes") - { - arrange(); - return 1; - } - } - return LLPanel::notifyParent(info); + LLPanel::reshape(width,height,called_from_parent); + + //Needed once- to avoid error at first call of reshape() before postBuild() + if(!mLeftScrollButton||!mRightScrollButton) + return; + + LLRect scroll_button_rect = mLeftScrollButton->getRect(); + mLeftScrollButton->setRect(LLRect(0,scroll_button_rect.mTop,scroll_button_rect.getWidth(), + scroll_button_rect.mBottom)); + scroll_button_rect = mRightScrollButton->getRect(); + mRightScrollButton->setRect(LLRect(width - scroll_button_rect.getWidth(),scroll_button_rect.mTop, + width, scroll_button_rect.mBottom)); + + + bool need_show_scroll = needShowScroll(); + if(need_show_scroll) + { + mScrollArea->setRect(LLRect(scroll_button_rect.getWidth() + mScrollButtonHPad, + height, width - scroll_button_rect.getWidth() - mScrollButtonHPad, 0)); + } + else + { + mScrollArea->setRect(LLRect(0,height, width, 0)); + } + + mShowControls = width >= mMinWidth; + + mScrollArea->setVisible(mShowControls); + + trimChiclets(); + showScrollButtonsIfNeeded(); + +} + +S32 LLChicletPanel::notifyParent(const LLSD& info) +{ + if(info.has("notification")) + { + std::string str_notification = info["notification"]; + if(str_notification == "size_changes") + { + arrange(); + return 1; + } + } + return LLPanel::notifyParent(info); } void LLChicletPanel::setChicletToggleState(const LLUUID& session_id, bool toggle) { - if(session_id.isNull()) - { - LL_WARNS() << "Null Session ID" << LL_ENDL; - } - - // toggle off all chiclets, except specified - S32 size = getChicletCount(); - for(int n = 0; n < size; ++n) - { - LLIMChiclet* chiclet = getChiclet<LLIMChiclet>(n); - if(chiclet && chiclet->getSessionId() != session_id) - { - chiclet->setToggleState(false); - } - } - - // toggle specified chiclet - LLIMChiclet* chiclet = findChiclet<LLIMChiclet>(session_id); - if(chiclet) - { - chiclet->setToggleState(toggle); - } + if(session_id.isNull()) + { + LL_WARNS() << "Null Session ID" << LL_ENDL; + } + + // toggle off all chiclets, except specified + S32 size = getChicletCount(); + for(int n = 0; n < size; ++n) + { + LLIMChiclet* chiclet = getChiclet<LLIMChiclet>(n); + if(chiclet && chiclet->getSessionId() != session_id) + { + chiclet->setToggleState(false); + } + } + + // toggle specified chiclet + LLIMChiclet* chiclet = findChiclet<LLIMChiclet>(session_id); + if(chiclet) + { + chiclet->setToggleState(toggle); + } } void LLChicletPanel::arrange() { - if(mChicletList.empty()) - return; - - //initial arrange of chicklets positions - S32 chiclet_left = getChiclet(0)->getRect().mLeft; - S32 size = getChicletCount(); - for( int n = 0; n < size; ++n) - { - LLChiclet* chiclet = getChiclet(n); - - S32 chiclet_width = chiclet->getRequiredRect().getWidth(); - LLRect rect = chiclet->getRect(); - rect.set(chiclet_left, rect.mTop, chiclet_left + chiclet_width, rect.mBottom); - - chiclet->setRect(rect); - - chiclet_left += chiclet_width + getChicletPadding(); - } - - //reset size and pos on mScrollArea - LLRect rect = getRect(); - LLRect scroll_button_rect = mLeftScrollButton->getRect(); - - bool need_show_scroll = needShowScroll(); - if(need_show_scroll) - { - mScrollArea->setRect(LLRect(scroll_button_rect.getWidth() + mScrollButtonHPad, - rect.getHeight(), rect.getWidth() - scroll_button_rect.getWidth() - mScrollButtonHPad, 0)); - } - else - { - mScrollArea->setRect(LLRect(0,rect.getHeight(), rect.getWidth(), 0)); - } - - trimChiclets(); - showScrollButtonsIfNeeded(); + if(mChicletList.empty()) + return; + + //initial arrange of chicklets positions + S32 chiclet_left = getChiclet(0)->getRect().mLeft; + S32 size = getChicletCount(); + for( int n = 0; n < size; ++n) + { + LLChiclet* chiclet = getChiclet(n); + + S32 chiclet_width = chiclet->getRequiredRect().getWidth(); + LLRect rect = chiclet->getRect(); + rect.set(chiclet_left, rect.mTop, chiclet_left + chiclet_width, rect.mBottom); + + chiclet->setRect(rect); + + chiclet_left += chiclet_width + getChicletPadding(); + } + + //reset size and pos on mScrollArea + LLRect rect = getRect(); + LLRect scroll_button_rect = mLeftScrollButton->getRect(); + + bool need_show_scroll = needShowScroll(); + if(need_show_scroll) + { + mScrollArea->setRect(LLRect(scroll_button_rect.getWidth() + mScrollButtonHPad, + rect.getHeight(), rect.getWidth() - scroll_button_rect.getWidth() - mScrollButtonHPad, 0)); + } + else + { + mScrollArea->setRect(LLRect(0,rect.getHeight(), rect.getWidth(), 0)); + } + + trimChiclets(); + showScrollButtonsIfNeeded(); } void LLChicletPanel::trimChiclets() { - // trim right - if(!mChicletList.empty()) - { - S32 last_chiclet_right = (*mChicletList.rbegin())->getRect().mRight; - S32 first_chiclet_left = getChiclet(0)->getRect().mLeft; - S32 scroll_width = mScrollArea->getRect().getWidth(); - if(last_chiclet_right < scroll_width || first_chiclet_left > 0) - { - shiftChiclets(scroll_width - last_chiclet_right); - } - } + // trim right + if(!mChicletList.empty()) + { + S32 last_chiclet_right = (*mChicletList.rbegin())->getRect().mRight; + S32 first_chiclet_left = getChiclet(0)->getRect().mLeft; + S32 scroll_width = mScrollArea->getRect().getWidth(); + if(last_chiclet_right < scroll_width || first_chiclet_left > 0) + { + shiftChiclets(scroll_width - last_chiclet_right); + } + } } bool LLChicletPanel::needShowScroll() { - if(mChicletList.empty()) - return false; - - S32 chicklet_width = (*mChicletList.rbegin())->getRect().mRight - (*mChicletList.begin())->getRect().mLeft; + if(mChicletList.empty()) + return false; - return chicklet_width>getRect().getWidth(); + S32 chicklet_width = (*mChicletList.rbegin())->getRect().mRight - (*mChicletList.begin())->getRect().mLeft; + + return chicklet_width>getRect().getWidth(); } void LLChicletPanel::showScrollButtonsIfNeeded() { - bool can_scroll_left = canScrollLeft(); - bool can_scroll_right = canScrollRight(); + bool can_scroll_left = canScrollLeft(); + bool can_scroll_right = canScrollRight(); - mLeftScrollButton->setEnabled(can_scroll_left); - mRightScrollButton->setEnabled(can_scroll_right); + mLeftScrollButton->setEnabled(can_scroll_left); + mRightScrollButton->setEnabled(can_scroll_right); - bool show_scroll_buttons = (can_scroll_left || can_scroll_right) && mShowControls; + bool show_scroll_buttons = (can_scroll_left || can_scroll_right) && mShowControls; - mLeftScrollButton->setVisible(show_scroll_buttons); - mRightScrollButton->setVisible(show_scroll_buttons); + mLeftScrollButton->setVisible(show_scroll_buttons); + mRightScrollButton->setVisible(show_scroll_buttons); } void LLChicletPanel::draw() { - child_list_const_iter_t it = getChildList()->begin(); - for( ; getChildList()->end() != it; ++it) - { - LLView* child = *it; - if(child == dynamic_cast<LLView*>(mScrollArea)) - { - LLLocalClipRect clip(mScrollArea->getRect()); - drawChild(mScrollArea); - } - else - { - drawChild(child); - } - } + child_list_const_iter_t it = getChildList()->begin(); + for( ; getChildList()->end() != it; ++it) + { + LLView* child = *it; + if(child == dynamic_cast<LLView*>(mScrollArea)) + { + LLLocalClipRect clip(mScrollArea->getRect()); + drawChild(mScrollArea); + } + else + { + drawChild(child); + } + } } bool LLChicletPanel::canScrollRight() { - if(mChicletList.empty()) - return false; + if(mChicletList.empty()) + return false; - S32 scroll_width = mScrollArea->getRect().getWidth(); - S32 last_chiclet_right = (*mChicletList.rbegin())->getRect().mRight; + S32 scroll_width = mScrollArea->getRect().getWidth(); + S32 last_chiclet_right = (*mChicletList.rbegin())->getRect().mRight; - if(last_chiclet_right > scroll_width) - return true; + if(last_chiclet_right > scroll_width) + return true; - return false; + return false; } bool LLChicletPanel::canScrollLeft() { - if(mChicletList.empty()) - return false; + if(mChicletList.empty()) + return false; - return getChiclet(0)->getRect().mLeft < 0; + return getChiclet(0)->getRect().mLeft < 0; } void LLChicletPanel::scroll(S32 offset) { - shiftChiclets(offset); + shiftChiclets(offset); } void LLChicletPanel::shiftChiclets(S32 offset, S32 start_index /* = 0 */) { - if(start_index < 0 || start_index >= getChicletCount()) - { - return; - } + if(start_index < 0 || start_index >= getChicletCount()) + { + return; + } - chiclet_list_t::const_iterator it = mChicletList.begin() + start_index; - for(;mChicletList.end() != it; ++it) - { - LLChiclet* chiclet = *it; - chiclet->translate(offset,0); - } + chiclet_list_t::const_iterator it = mChicletList.begin() + start_index; + for(;mChicletList.end() != it; ++it) + { + LLChiclet* chiclet = *it; + chiclet->translate(offset,0); + } } void LLChicletPanel::scrollLeft() { - if(canScrollLeft()) - { - S32 offset = getScrollingOffset(); - LLRect first_chiclet_rect = getChiclet(0)->getRect(); + if(canScrollLeft()) + { + S32 offset = getScrollingOffset(); + LLRect first_chiclet_rect = getChiclet(0)->getRect(); + + // shift chiclets in case first chiclet is partially visible + if(first_chiclet_rect.mLeft < 0 && first_chiclet_rect.mRight > 0) + { + offset = llabs(first_chiclet_rect.mLeft); + } - // shift chiclets in case first chiclet is partially visible - if(first_chiclet_rect.mLeft < 0 && first_chiclet_rect.mRight > 0) - { - offset = llabs(first_chiclet_rect.mLeft); - } + scroll(offset); - scroll(offset); - - showScrollButtonsIfNeeded(); - } + showScrollButtonsIfNeeded(); + } } void LLChicletPanel::scrollRight() { - if(canScrollRight()) - { - S32 offset = - getScrollingOffset(); + if(canScrollRight()) + { + S32 offset = - getScrollingOffset(); + + S32 last_chiclet_right = (*mChicletList.rbegin())->getRect().mRight; + S32 scroll_rect_width = mScrollArea->getRect().getWidth(); + // if after scrolling, the last chiclet will not be aligned to + // scroll area right side - align it. + if( last_chiclet_right + offset < scroll_rect_width ) + { + offset = scroll_rect_width - last_chiclet_right; + } - S32 last_chiclet_right = (*mChicletList.rbegin())->getRect().mRight; - S32 scroll_rect_width = mScrollArea->getRect().getWidth(); - // if after scrolling, the last chiclet will not be aligned to - // scroll area right side - align it. - if( last_chiclet_right + offset < scroll_rect_width ) - { - offset = scroll_rect_width - last_chiclet_right; - } + scroll(offset); - scroll(offset); - - showScrollButtonsIfNeeded(); - } + showScrollButtonsIfNeeded(); + } } void LLChicletPanel::onLeftScrollClick() { - scrollLeft(); + scrollLeft(); } void LLChicletPanel::onRightScrollClick() { - scrollRight(); + scrollRight(); } void LLChicletPanel::onLeftScrollHeldDown() { - S32 offset = mScrollingOffset; - mScrollingOffset = mScrollingOffset / mScrollRatio; - scrollLeft(); - mScrollingOffset = offset; + S32 offset = mScrollingOffset; + mScrollingOffset = mScrollingOffset / mScrollRatio; + scrollLeft(); + mScrollingOffset = offset; } void LLChicletPanel::onRightScrollHeldDown() { - S32 offset = mScrollingOffset; - mScrollingOffset = mScrollingOffset / mScrollRatio; - scrollRight(); - mScrollingOffset = offset; + S32 offset = mScrollingOffset; + mScrollingOffset = mScrollingOffset / mScrollRatio; + scrollRight(); + mScrollingOffset = offset; } boost::signals2::connection LLChicletPanel::setChicletClickedCallback( - const commit_callback_t& cb) + const commit_callback_t& cb) { - return setCommitCallback(cb); + return setCommitCallback(cb); } BOOL LLChicletPanel::handleScrollWheel(S32 x, S32 y, S32 clicks) { - if(clicks > 0) - { - scrollRight(); - } - else - { - scrollLeft(); - } - return TRUE; + if(clicks > 0) + { + scrollRight(); + } + else + { + scrollLeft(); + } + return TRUE; } bool LLChicletPanel::isAnyIMFloaterDoked() { - bool res = false; - for (chiclet_list_t::iterator it = mChicletList.begin(); it - != mChicletList.end(); it++) - { - LLFloaterIMSession* im_floater = LLFloaterReg::findTypedInstance<LLFloaterIMSession>( - "impanel", (*it)->getSessionId()); - if (im_floater != NULL && im_floater->getVisible() - && !im_floater->isMinimized() && im_floater->isDocked()) - { - res = true; - break; - } - } + bool res = false; + for (chiclet_list_t::iterator it = mChicletList.begin(); it + != mChicletList.end(); it++) + { + LLFloaterIMSession* im_floater = LLFloaterReg::findTypedInstance<LLFloaterIMSession>( + "impanel", (*it)->getSessionId()); + if (im_floater != NULL && im_floater->getVisible() + && !im_floater->isMinimized() && im_floater->isDocked()) + { + res = true; + break; + } + } - return res; + return res; } ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// LLChicletNotificationCounterCtrl::Params::Params() - : max_displayed_count("max_displayed_count", 99) + : max_displayed_count("max_displayed_count", 99) { } @@ -1059,14 +1059,14 @@ LLChicletInvOfferIconCtrl::LLChicletInvOfferIconCtrl(const Params& p) void LLChicletInvOfferIconCtrl::setValue(const LLSD& value ) { - if(value.asUUID().isNull()) - { - LLIconCtrl::setValue(mDefaultIcon); - } - else - { - LLChicletAvatarIconCtrl::setValue(value); - } + if(value.asUUID().isNull()) + { + LLIconCtrl::setValue(mDefaultIcon); + } + else + { + LLChicletAvatarIconCtrl::setValue(value); + } } ////////////////////////////////////////////////////////////////////////// @@ -1084,63 +1084,63 @@ LLScriptChiclet::LLScriptChiclet(const Params&p) : LLIMChiclet(p) , mChicletIconCtrl(NULL) { - LLButton::Params button_params = p.chiclet_button; - mChicletButton = LLUICtrlFactory::create<LLButton>(button_params); - addChild(mChicletButton); + LLButton::Params button_params = p.chiclet_button; + mChicletButton = LLUICtrlFactory::create<LLButton>(button_params); + addChild(mChicletButton); - LLIconCtrl::Params new_msg_params = p.new_message_icon; - mNewMessagesIcon = LLUICtrlFactory::create<LLIconCtrl>(new_msg_params); - addChild(mNewMessagesIcon); + LLIconCtrl::Params new_msg_params = p.new_message_icon; + mNewMessagesIcon = LLUICtrlFactory::create<LLIconCtrl>(new_msg_params); + addChild(mNewMessagesIcon); - LLIconCtrl::Params icon_params = p.icon; - mChicletIconCtrl = LLUICtrlFactory::create<LLIconCtrl>(icon_params); - addChild(mChicletIconCtrl); + LLIconCtrl::Params icon_params = p.icon; + mChicletIconCtrl = LLUICtrlFactory::create<LLIconCtrl>(icon_params); + addChild(mChicletIconCtrl); - sendChildToFront(mNewMessagesIcon); + sendChildToFront(mNewMessagesIcon); } void LLScriptChiclet::setSessionId(const LLUUID& session_id) { - setShowNewMessagesIcon( getSessionId() != session_id ); + setShowNewMessagesIcon( getSessionId() != session_id ); - LLIMChiclet::setSessionId(session_id); + LLIMChiclet::setSessionId(session_id); - setToolTip(LLScriptFloaterManager::getObjectName(session_id)); + setToolTip(LLScriptFloaterManager::getObjectName(session_id)); } void LLScriptChiclet::onMouseDown() { - LLScriptFloaterManager::getInstance()->toggleScriptFloater(getSessionId()); + LLScriptFloaterManager::getInstance()->toggleScriptFloater(getSessionId()); } void LLScriptChiclet::onMenuItemClicked(const LLSD& user_data) { - std::string action = user_data.asString(); + std::string action = user_data.asString(); - if("end" == action) - { - LLScriptFloaterManager::instance().removeNotification(getSessionId()); - } - else if ("close all" == action) - { - LLIMWellWindow::getInstance()->closeAll(); - } + if("end" == action) + { + LLScriptFloaterManager::instance().removeNotification(getSessionId()); + } + else if ("close all" == action) + { + LLIMWellWindow::getInstance()->closeAll(); + } } void LLScriptChiclet::createPopupMenu() { - if(!canCreateMenu()) - return; + if(!canCreateMenu()) + return; - LLUICtrl::CommitCallbackRegistry::ScopedRegistrar registrar; - registrar.add("ScriptChiclet.Action", boost::bind(&LLScriptChiclet::onMenuItemClicked, this, _2)); + LLUICtrl::CommitCallbackRegistry::ScopedRegistrar registrar; + registrar.add("ScriptChiclet.Action", boost::bind(&LLScriptChiclet::onMenuItemClicked, this, _2)); - LLMenuGL* menu = LLUICtrlFactory::getInstance()->createFromFile<LLMenuGL> - ("menu_script_chiclet.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance()); - if (menu) - { - mPopupMenuHandle = menu->getHandle(); - } + LLMenuGL* menu = LLUICtrlFactory::getInstance()->createFromFile<LLMenuGL> + ("menu_script_chiclet.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance()); + if (menu) + { + mPopupMenuHandle = menu->getHandle(); + } } @@ -1148,7 +1148,7 @@ void LLScriptChiclet::createPopupMenu() ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// -static const std::string INVENTORY_USER_OFFER ("UserGiveItem"); +static const std::string INVENTORY_USER_OFFER ("UserGiveItem"); LLInvOfferChiclet::Params::Params() : icon("icon") @@ -1161,69 +1161,69 @@ LLInvOfferChiclet::LLInvOfferChiclet(const Params&p) : LLIMChiclet(p) , mChicletIconCtrl(NULL) { - LLButton::Params button_params = p.chiclet_button; - mChicletButton = LLUICtrlFactory::create<LLButton>(button_params); - addChild(mChicletButton); + LLButton::Params button_params = p.chiclet_button; + mChicletButton = LLUICtrlFactory::create<LLButton>(button_params); + addChild(mChicletButton); - LLIconCtrl::Params new_msg_params = p.new_message_icon; - mNewMessagesIcon = LLUICtrlFactory::create<LLIconCtrl>(new_msg_params); - addChild(mNewMessagesIcon); + LLIconCtrl::Params new_msg_params = p.new_message_icon; + mNewMessagesIcon = LLUICtrlFactory::create<LLIconCtrl>(new_msg_params); + addChild(mNewMessagesIcon); - LLChicletInvOfferIconCtrl::Params icon_params = p.icon; - mChicletIconCtrl = LLUICtrlFactory::create<LLChicletInvOfferIconCtrl>(icon_params); - addChild(mChicletIconCtrl); + LLChicletInvOfferIconCtrl::Params icon_params = p.icon; + mChicletIconCtrl = LLUICtrlFactory::create<LLChicletInvOfferIconCtrl>(icon_params); + addChild(mChicletIconCtrl); - sendChildToFront(mNewMessagesIcon); + sendChildToFront(mNewMessagesIcon); } void LLInvOfferChiclet::setSessionId(const LLUUID& session_id) { - setShowNewMessagesIcon( getSessionId() != session_id ); + setShowNewMessagesIcon( getSessionId() != session_id ); - setToolTip(LLScriptFloaterManager::getObjectName(session_id)); + setToolTip(LLScriptFloaterManager::getObjectName(session_id)); - LLIMChiclet::setSessionId(session_id); - LLNotificationPtr notification = LLNotifications::getInstance()->find(session_id); + LLIMChiclet::setSessionId(session_id); + LLNotificationPtr notification = LLNotifications::getInstance()->find(session_id); - if ( notification && notification->getName() == INVENTORY_USER_OFFER ) - { - mChicletIconCtrl->setValue(notification->getPayload()["from_id"]); - } - else - { - mChicletIconCtrl->setValue(LLUUID::null); - } + if ( notification && notification->getName() == INVENTORY_USER_OFFER ) + { + mChicletIconCtrl->setValue(notification->getPayload()["from_id"]); + } + else + { + mChicletIconCtrl->setValue(LLUUID::null); + } } void LLInvOfferChiclet::onMouseDown() { - LLScriptFloaterManager::instance().toggleScriptFloater(getSessionId()); + LLScriptFloaterManager::instance().toggleScriptFloater(getSessionId()); } void LLInvOfferChiclet::onMenuItemClicked(const LLSD& user_data) { - std::string action = user_data.asString(); + std::string action = user_data.asString(); - if("end" == action) - { - LLScriptFloaterManager::instance().removeNotification(getSessionId()); - } + if("end" == action) + { + LLScriptFloaterManager::instance().removeNotification(getSessionId()); + } } void LLInvOfferChiclet::createPopupMenu() { - if(!canCreateMenu()) - return; + if(!canCreateMenu()) + return; - LLUICtrl::CommitCallbackRegistry::ScopedRegistrar registrar; - registrar.add("InvOfferChiclet.Action", boost::bind(&LLInvOfferChiclet::onMenuItemClicked, this, _2)); + LLUICtrl::CommitCallbackRegistry::ScopedRegistrar registrar; + registrar.add("InvOfferChiclet.Action", boost::bind(&LLInvOfferChiclet::onMenuItemClicked, this, _2)); - LLMenuGL* menu = LLUICtrlFactory::getInstance()->createFromFile<LLMenuGL> - ("menu_inv_offer_chiclet.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance()); - if (menu) - { - mPopupMenuHandle = menu->getHandle(); - } + LLMenuGL* menu = LLUICtrlFactory::getInstance()->createFromFile<LLMenuGL> + ("menu_inv_offer_chiclet.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance()); + if (menu) + { + mPopupMenuHandle = menu->getHandle(); + } } // EOF |