//static bool LLNotifyBox::onNotification(const LLSD& notify) { LLNotificationPtr notification = LLNotifications::instance().find(notify["id"].asUUID()); if (!notification) return false; if(notify["sigtype"].asString() == "add" || notify["sigtype"].asString() == "change") { //bring existing notification to top LLNotifyBox* boxp = LLNotifyBox::getInstance(notification->getID()); if (boxp && !boxp->isDead()) { gNotifyBoxView->showOnly(boxp); } else { bool is_script_dialog = (notification->getName() == "ScriptDialog" || notification->getName() == "ScriptDialogGroup"); LLNotifyBox* notify_box = new LLNotifyBox( notification, is_script_dialog); //layout_script_dialog); gNotifyBoxView->addChild(notify_box); } } else if (notify["sigtype"].asString() == "delete") { LLNotifyBox* boxp = LLNotifyBox::getInstance(notification->getID()); if (boxp && !boxp->isDead()) { boxp->close(); } } return false; }
// static void LLNotifyBox::onClickButton(void* data) { InstanceAndS32* self_and_button = (InstanceAndS32*)data; LLNotifyBox* self = self_and_button->mSelf; S32 button = self_and_button->mButton; // for caution notifications, check if the last button in the prompt was clicked // unless it is the only button, in which case it will just be an "OK" button if ((self->mIsCaution) && (button > 0) && (button == (self->mNumOptions - 1))) { // show an alert dialog containing more explanation about the debit permission LLAlertDialog::showXml("DebitPermissionDetails"); // keep this notification open return; } if (self->mBehavior->mCallback) { self->mBehavior->mCallback(button, self->mBehavior->mData); self->mBehavior->mCallback = NULL; // Notification callbacks only expect to be called once ever } self->close(); }
//static bool LLNotifyBox::onNotification(const LLSD& notify) { LLNotificationPtr notification = LLNotifications::instance().find(notify["id"].asUUID()); if (!notification) return false; if (notify["sigtype"].asString() == "add" || notify["sigtype"].asString() == "change") { if (notification->getPayload().has("SUPPRESS_TOAST")) { chat_notification(notification); return false; } //bring existing notification to top //This getInstance is ugly, as LLNotifyBox is derived from both LLInstanceTracker and LLEventTimer, which also is derived from its own LLInstanceTracker //Have to explicitly determine which getInstance function to use. LLNotifyBox* boxp = LLInstanceTracker<LLNotifyBox, LLUUID>::getInstance(notification->getID()); if (boxp && !boxp->isDead()) { gNotifyBoxView->showOnly(boxp); } else { gNotifyBoxView->addChild(new LLNotifyBox(notification)); } } else if (notify["sigtype"].asString() == "delete") { LLNotifyBox* boxp = LLInstanceTracker<LLNotifyBox, LLUUID>::getInstance(notification->getID()); if (boxp && !boxp->isDead()) { boxp->close(); } } return false; }
//static bool LLNotifyBox::onNotification(const LLSD& notify) { LLNotificationPtr notification = LLNotifications::instance().find(notify["id"].asUUID()); if (!notification) return false; if(notify["sigtype"].asString() == "add" || notify["sigtype"].asString() == "change") { //bring existing notification to top //This getInstance is ugly, as LLNotifyBox is derived from both LLInstanceTracker and LLEventTimer, which also is derived from its own LLInstanceTracker //Have to explicitly determine which getInstance function to use. LLNotifyBox* boxp = LLInstanceTracker<LLNotifyBox, LLUUID>::getInstance(notification->getID()); if (boxp && !boxp->isDead()) { gNotifyBoxView->showOnly(boxp); } else { bool is_script_dialog = (notification->getName() == "ScriptDialog" || notification->getName() == "ScriptDialogGroup"); LLNotifyBox* notify_box = new LLNotifyBox( notification, is_script_dialog); //layout_script_dialog); gNotifyBoxView->addChild(notify_box); } } else if (notify["sigtype"].asString() == "delete") { LLNotifyBox* boxp = LLInstanceTracker<LLNotifyBox, LLUUID>::getInstance(notification->getID()); if (boxp && !boxp->isDead()) { boxp->close(); } } return false; }