1 // Copyright 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_TOUCH_TOUCH_HUD_PROJECTION_H_ 6 #define ASH_TOUCH_TOUCH_HUD_PROJECTION_H_ 7 8 #include <map> 9 10 #include "ash/touch/touch_observer_hud.h" 11 12 namespace ash { 13 namespace internal { 14 15 class TouchPointView; 16 17 // A heads-up display to show active touch points on the screen. As a derivative 18 // of TouchObserverHUD, objects of this class manage their own lifetime. 19 class TouchHudProjection : public TouchObserverHUD { 20 public: 21 explicit TouchHudProjection(aura::Window* initial_root); 22 23 // Overriden from TouchObserverHUD. 24 virtual void Clear() OVERRIDE; 25 26 private: 27 friend class TouchHudProjectionTest; 28 29 virtual ~TouchHudProjection(); 30 31 // Overriden from TouchObserverHUD. 32 virtual void OnTouchEvent(ui::TouchEvent* event) OVERRIDE; 33 virtual void SetHudForRootWindowController( 34 RootWindowController* controller) OVERRIDE; 35 virtual void UnsetHudForRootWindowController( 36 RootWindowController* controller) OVERRIDE; 37 38 std::map<int, TouchPointView*> points_; 39 40 DISALLOW_COPY_AND_ASSIGN(TouchHudProjection); 41 }; 42 43 } // namespace internal 44 } // namespace ash 45 46 #endif // ASH_TOUCH_TOUCH_HUD_PROJECTION_H_ 47