// Copyright 2017 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "ui/display/manager/test/touch_device_manager_test_api.h"
#include "ui/display/manager/managed_display_info.h"
#include "ui/events/devices/touchscreen_device.h"
namespace display::test {
TouchDeviceManagerTestApi::TouchDeviceManagerTestApi(
TouchDeviceManager* touch_device_manager)
: touch_device_manager_(touch_device_manager) {
DCHECK(touch_device_manager_);
}
TouchDeviceManagerTestApi::~TouchDeviceManagerTestApi() {}
void TouchDeviceManagerTestApi::Associate(ManagedDisplayInfo* display_info,
const ui::TouchscreenDevice& device) {
touch_device_manager_->Associate(display_info, device);
}
void TouchDeviceManagerTestApi::Associate(int64_t display_id,
const ui::TouchscreenDevice& device) {
touch_device_manager_
->active_touch_associations_[TouchDeviceIdentifier::FromDevice(device)] =
display_id;
}
std::size_t TouchDeviceManagerTestApi::GetTouchDeviceCount(
const ManagedDisplayInfo& info) const {
std::size_t count = 0;
for (const auto& association :
touch_device_manager_->active_touch_associations_) {
if (association.second == info.id())
count++;
}
return count;
}
bool TouchDeviceManagerTestApi::AreAssociated(
const ManagedDisplayInfo& info,
const ui::TouchscreenDevice& device) const {
return touch_device_manager_->DisplayHasTouchDevice(info.id(), device);
}
void TouchDeviceManagerTestApi::ResetTouchDeviceManager() {
touch_device_manager_->RegisterTouchAssociations(
TouchDeviceManager::TouchAssociationMap(),
TouchDeviceManager::PortAssociationMap());
}
} // namespace display::test