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