Updating trunk VERSION from 2139.0 to 2140.0
[chromium-blink-merge.git] / ash / touch / touch_hud_debug.h
blob12ba64aeefd40d9f82c71208a6f5978256038e41
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.
5 #ifndef ASH_TOUCH_TOUCH_HUD_DEBUG_H_
6 #define ASH_TOUCH_TOUCH_HUD_DEBUG_H_
8 #include <map>
10 #include "ash/ash_export.h"
11 #include "ash/touch/touch_observer_hud.h"
12 #include "base/memory/scoped_ptr.h"
13 #include "base/values.h"
15 namespace views {
16 class Label;
17 class View;
20 namespace ash {
21 class TouchHudCanvas;
22 class TouchLog;
24 // A heads-up display to show touch traces on the screen and log touch events.
25 // As a derivative of TouchObserverHUD, objects of this class manage their own
26 // lifetime.
27 class ASH_EXPORT TouchHudDebug : public TouchObserverHUD {
28 public:
29 enum Mode {
30 FULLSCREEN,
31 REDUCED_SCALE,
32 INVISIBLE,
35 explicit TouchHudDebug(aura::Window* initial_root);
37 // Returns the log of touch events for all displays as a dictionary mapping id
38 // of each display to its touch log.
39 static scoped_ptr<base::DictionaryValue> GetAllAsDictionary();
41 // Changes the display mode (e.g. scale, visibility). Calling this repeatedly
42 // cycles between a fixed number of display modes.
43 void ChangeToNextMode();
45 // Returns log of touch events as a list value. Each item in the list is a
46 // trace of one touch point.
47 scoped_ptr<base::ListValue> GetLogAsList() const;
49 Mode mode() const { return mode_; }
51 // Overriden from TouchObserverHUD.
52 virtual void Clear() OVERRIDE;
54 private:
55 virtual ~TouchHudDebug();
57 void SetMode(Mode mode);
59 void UpdateTouchPointLabel(int index);
61 // Overriden from TouchObserverHUD.
62 virtual void OnTouchEvent(ui::TouchEvent* event) OVERRIDE;
63 virtual void OnDisplayMetricsChanged(const gfx::Display& display,
64 uint32_t metrics) OVERRIDE;
65 virtual void SetHudForRootWindowController(
66 RootWindowController* controller) OVERRIDE;
67 virtual void UnsetHudForRootWindowController(
68 RootWindowController* controller) OVERRIDE;
70 static const int kMaxTouchPoints = 32;
72 Mode mode_;
74 scoped_ptr<TouchLog> touch_log_;
76 TouchHudCanvas* canvas_;
77 views::View* label_container_;
78 views::Label* touch_labels_[kMaxTouchPoints];
80 DISALLOW_COPY_AND_ASSIGN(TouchHudDebug);
83 } // namespace ash
85 #endif // ASH_TOUCH_TOUCH_HUD_DEBUG_H_