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 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