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 12 namespace ash { 13 14 namespace internal { 15 16 // An event filter that transforms input event properties in extended desktop 17 // environment. 18 class 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