void WhoIsOnline::handleLink(const std::string& link, MouseEvent *event) { if (!event || event->getButton() == MouseButton::LEFT) { if (chatWindow) { const std::string text = decodeLinkText(link); if (config.getBoolValue("whispertab")) { chatWindow->localChatInput("/q " + text); } else { chatWindow->addInputText(std::string("/w \"").append( text).append("\" ")); } } } else if (event->getButton() == MouseButton::RIGHT) { if (localPlayer && link == localPlayer->getName()) return; if (popupMenu) { if (actorManager) { const std::string text = decodeLinkText(link); Being *const being = actorManager->findBeingByName( text, ActorType::Player); if (being && popupManager) { popupMenu->showPopup(viewport->mMouseX, viewport->mMouseY, being); return; } } popupMenu->showPlayerPopup(link); } } }
void WhoIsOnline::handleLink(const std::string& link, gcn::MouseEvent *event) { if (!event || event->getButton() == gcn::MouseEvent::LEFT) { if (chatWindow) { std::string text = decodeLinkText(link); if (config.getBoolValue("whispertab")) { chatWindow->localChatInput("/q " + text); } else { chatWindow->addInputText(std::string("/w \"").append( text).append("\" ")); } } } else if (event->getButton() == gcn::MouseEvent::RIGHT) { if (player_node && link == player_node->getName()) return; if (viewport) { if (actorSpriteManager) { std::string text = decodeLinkText(link); Being* being = actorSpriteManager->findBeingByName( text, Being::PLAYER); if (being && viewport) { viewport->showPopup(being); return; } } viewport->showPlayerPopup(link); } } }