// Copyright 2014 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 "ui/events/ozone/evdev/mouse_button_map_evdev.h" #include #include "base/logging.h" namespace ui { namespace { // Defines the range of button codes that we support. // // Check linux/input.h for more info. const MouseButtonMapEvdev::Button kMinMouseButtonCode = BTN_MISC; const MouseButtonMapEvdev::Button kMaxMouseButtonCode = BTN_GEAR_UP; bool IsMouseButton(const MouseButtonMapEvdev::Button button) { return (button >= kMinMouseButtonCode && button <= kMaxMouseButtonCode); } } // namespace MouseButtonMapEvdev::MouseButtonMapEvdev() { ResetButtonMap(); } MouseButtonMapEvdev::~MouseButtonMapEvdev() { } void MouseButtonMapEvdev::UpdateButtonMap(Button button_from, Button button_to) { DCHECK(IsMouseButton(button_from) && IsMouseButton(button_to)); button_map_[button_from] = button_to; } void MouseButtonMapEvdev::ResetButtonMap() { button_map_.clear(); for (Button i = kMinMouseButtonCode; i <= kMaxMouseButtonCode; ++i) button_map_[i] = i; } int MouseButtonMapEvdev::GetMappedButton(const Button button) const { ButtonMap::const_iterator it = button_map_.find(button); DCHECK(it != button_map_.end()); return it->second; } } // namespace ui