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 12namespace ash { 13class 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. 17class 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