Home | History | Annotate | Download | only in touch
      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