blob: c3101a92b5eae1efec512d222a8466489ee648bd [file] [log] [blame]
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "third_party/blink/renderer/core/page/scrolling/scroll_customization_callbacks.h"
#include "third_party/blink/renderer/core/dom/node.h"
#include "third_party/blink/renderer/core/page/scrolling/scroll_state_callback.h"
namespace blink {
void ScrollCustomizationCallbacks::SetDistributeScroll(
Node* node,
ScrollStateCallback* scroll_state_callback) {
distribute_scroll_callbacks_.Set(node, scroll_state_callback);
}
ScrollStateCallback* ScrollCustomizationCallbacks::GetDistributeScroll(
Node* node) {
auto it = distribute_scroll_callbacks_.find(node);
if (it == distribute_scroll_callbacks_.end())
return nullptr;
return it->value.Get();
}
void ScrollCustomizationCallbacks::SetApplyScroll(
Node* node,
ScrollStateCallback* scroll_state_callback) {
apply_scroll_callbacks_.Set(node, scroll_state_callback);
}
void ScrollCustomizationCallbacks::RemoveApplyScroll(Node* node) {
apply_scroll_callbacks_.erase(node);
}
ScrollStateCallback* ScrollCustomizationCallbacks::GetApplyScroll(Node* node) {
auto it = apply_scroll_callbacks_.find(node);
if (it == apply_scroll_callbacks_.end())
return nullptr;
return it->value.Get();
}
bool ScrollCustomizationCallbacks::InScrollPhase(Node* node) const {
return in_scrolling_phase_.Contains(node) && in_scrolling_phase_.at(node);
}
void ScrollCustomizationCallbacks::SetInScrollPhase(Node* node, bool value) {
DCHECK(node);
in_scrolling_phase_.Set(node, value);
}
} // namespace blink