| // Copyright 2013 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef ASH_TOUCH_TOUCH_HUD_PROJECTION_H_ |
| #define ASH_TOUCH_TOUCH_HUD_PROJECTION_H_ |
| |
| #include <map> |
| |
| #include "ash/touch/touch_observer_hud.h" |
| |
| namespace ash { |
| class TouchPointView; |
| |
| // A heads-up display to show active touch points on the screen. As a derivative |
| // of TouchObserverHUD, objects of this class manage their own lifetime. |
| class TouchHudProjection : public TouchObserverHUD { |
| public: |
| explicit TouchHudProjection(aura::Window* initial_root); |
| |
| // Overriden from TouchObserverHUD. |
| virtual void Clear() OVERRIDE; |
| |
| private: |
| friend class TouchHudProjectionTest; |
| |
| virtual ~TouchHudProjection(); |
| |
| // Overriden from TouchObserverHUD. |
| virtual void OnTouchEvent(ui::TouchEvent* event) OVERRIDE; |
| virtual void SetHudForRootWindowController( |
| RootWindowController* controller) OVERRIDE; |
| virtual void UnsetHudForRootWindowController( |
| RootWindowController* controller) OVERRIDE; |
| |
| std::map<int, TouchPointView*> points_; |
| |
| DISALLOW_COPY_AND_ASSIGN(TouchHudProjection); |
| }; |
| |
| } // namespace ash |
| |
| #endif // ASH_TOUCH_TOUCH_HUD_PROJECTION_H_ |