event_transformation_handler.h revision d0247b1b59f9c528cb6df88b4f2b9afaf80d181e
1// Copyright (c) 2013 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef ASH_DISPLAY_EVENT_TRANSFORMATION_HANDLER_H_ 6#define ASH_DISPLAY_EVENT_TRANSFORMATION_HANDLER_H_ 7 8#include "ash/ash_export.h" 9#include "base/compiler_specific.h" 10#include "ui/events/event_handler.h" 11 12namespace ash { 13 14namespace internal { 15 16// An event filter that transforms input event properties in extended desktop 17// environment. 18class ASH_EXPORT EventTransformationHandler : public ui::EventHandler { 19 public: 20 enum TransformationMode { 21 TRANSFORM_AUTO, // Transform events by the default amount. 22 // 1. Linear scaling w.r.t. the device scale factor. 23 // 2. Add 20% more for non-integrated displays. 24 TRANSFORM_NONE, // No transformation. 25 }; 26 27 EventTransformationHandler(); 28 virtual ~EventTransformationHandler(); 29 30 void set_transformation_mode(TransformationMode transformation_mode) { 31 transformation_mode_ = transformation_mode; 32 } 33 34 // Overridden from ui::EventHandler. 35 virtual void OnScrollEvent(ui::ScrollEvent* event) OVERRIDE; 36#if defined(OS_CHROMEOS) 37 virtual void OnTouchEvent(ui::TouchEvent* event) OVERRIDE; 38#endif // defined(OS_CHROMEOS) 39 40 private: 41 TransformationMode transformation_mode_; 42 43 DISALLOW_COPY_AND_ASSIGN(EventTransformationHandler); 44}; 45 46} // namespace internal 47} // namespace ash 48 49#endif // ASH_DISPLAY_EVENT_TRANSFORMATION_HANDLER_H_ 50