diff options
Diffstat (limited to 'indra/newview/llnotificationmanager.cpp')
-rw-r--r-- | indra/newview/llnotificationmanager.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/indra/newview/llnotificationmanager.cpp b/indra/newview/llnotificationmanager.cpp index 81a6b32917..4401bb953f 100644 --- a/indra/newview/llnotificationmanager.cpp +++ b/indra/newview/llnotificationmanager.cpp @@ -36,9 +36,11 @@ #include "llnotificationmanager.h" + #include "llnearbychathandler.h" +#include "llnotifications.h" -#include "boost/bind.hpp" +#include <boost/bind.hpp> using namespace LLNotificationsUI; @@ -63,6 +65,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 +73,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 +84,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())); } //-------------------------------------------------------------------------- @@ -102,16 +107,17 @@ bool LLNotificationManager::onNotification(const LLSD& notify) } //-------------------------------------------------------------------------- -void LLNotificationManager::onChat(const LLChat& msg,ENotificationType type) +void LLNotificationManager::onChat(const LLChat& msg, const LLSD &args) { - switch(type) + // check ENotificationType argument + switch(args["type"].asInteger()) { case NT_NEARBYCHAT: { LLNearbyChatHandler* handle = dynamic_cast<LLNearbyChatHandler*>(mNotifyHandlers["nearbychat"].get()); if(handle) - handle->processChat(msg); + handle->processChat(msg, args); } break; default: //no need to handle all enum types |