void Button::internalClickCallback (const ModifierKeys& modifiers) { if (clickTogglesState) setToggleState ((radioGroupId != 0) || ! lastToggleState, false); sendClickMessage (modifiers); }
//============================================================================== void Button::setToggleState (const bool shouldBeOn, const bool sendChangeNotification) { if (shouldBeOn != lastToggleState) { if (getToggleState() != shouldBeOn) // this test means that if the value is void rather than explicitly set to isOn = shouldBeOn; // false, it won't be changed unless the required value is true. lastToggleState = shouldBeOn; repaint(); WeakReference<Component> deletionWatcher (this); if (sendChangeNotification) { sendClickMessage (ModifierKeys()); if (deletionWatcher == nullptr) return; } if (lastToggleState) { turnOffOtherButtonsInGroup (sendChangeNotification); if (deletionWatcher == nullptr) return; } sendStateMessage(); } }
void LLPanelClassifiedInfo::onTeleportClick() { if (!getPosGlobal().isExactlyZero()) { sendClickMessage("teleport"); gAgent.teleportViaLocation(getPosGlobal()); LLFloaterWorldMap::getInstance()->trackLocation(getPosGlobal()); } }
void LLPanelClassifiedInfo::sendClickMessage(const std::string& type) { sendClickMessage( type, fromSearch(), getClassifiedId(), getParcelId(), getPosGlobal(), getSimName()); }
void Button::internalClickCallback (const ModifierKeys& modifiers) { if (clickTogglesState) { const bool shouldBeOn = (radioGroupId != 0 || ! lastToggleState); if (shouldBeOn != getToggleState()) { setToggleState (shouldBeOn, sendNotification); return; } } sendClickMessage (modifiers); }
void LLPanelClassifiedInfo::onOpen(const LLSD& key) { LLUUID avatar_id = key["classified_creator_id"]; if(avatar_id.isNull()) { return; } if(getAvatarId().notNull()) { LLAvatarPropertiesProcessor::getInstance()->removeObserver(getAvatarId(), this); } setAvatarId(avatar_id); resetData(); resetControls(); scrollToTop(); setClassifiedId(key["classified_id"]); setClassifiedName(key["classified_name"]); setDescription(key["classified_desc"]); setSnapshotId(key["classified_snapshot_id"]); setFromSearch(key["from_search"]); LL_INFOS() << "Opening classified [" << getClassifiedName() << "] (" << getClassifiedId() << ")" << LL_ENDL; LLAvatarPropertiesProcessor::getInstance()->addObserver(getAvatarId(), this); LLAvatarPropertiesProcessor::getInstance()->sendClassifiedInfoRequest(getClassifiedId()); gGenericDispatcher.addHandler("classifiedclickthrough", &sClassifiedClickThrough); // While we're at it let's get the stats from the new table if that // capability exists. std::string url = gAgent.getRegion()->getCapability("SearchStatRequest"); if (!url.empty()) { LL_INFOS() << "Classified stat request via capability" << LL_ENDL; LLSD body; body["classified_id"] = getClassifiedId(); LLHTTPClient::post(url, body, new LLClassifiedStatsResponder(getClassifiedId())); } // Update classified click stats. // *TODO: Should we do this when opening not from search? sendClickMessage("profile"); setInfoLoaded(false); }
//============================================================================== void Button::setToggleState (const bool shouldBeOn, const NotificationType notification) { if (shouldBeOn != lastToggleState) { WeakReference<Component> deletionWatcher (this); if (shouldBeOn) { turnOffOtherButtonsInGroup (notification); if (deletionWatcher == nullptr) return; } // This test is done so that if the value is void rather than explicitly set to // false, the value won't be changed unless the required value is true. if (getToggleState() != shouldBeOn) { isOn = shouldBeOn; if (deletionWatcher == nullptr) return; } lastToggleState = shouldBeOn; repaint(); if (notification != dontSendNotification) { // async callbacks aren't possible here jassert (notification != sendNotificationAsync); sendClickMessage (ModifierKeys::getCurrentModifiers()); if (deletionWatcher == nullptr) return; } if (notification != dontSendNotification) sendStateMessage(); else buttonStateChanged(); } }
void LLPanelClassifiedInfo::onMapClick() { sendClickMessage("map"); LLFloaterWorldMap::getInstance()->trackLocation(getPosGlobal()); LLFloaterReg::showInstance("world_map", "center"); }