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_
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"
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
27 class ASH_EXPORT TouchHudDebug
: public TouchObserverHUD
{
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 void Clear() override
;
55 ~TouchHudDebug() override
;
57 void SetMode(Mode mode
);
59 void UpdateTouchPointLabel(int index
);
61 // Overriden from TouchObserverHUD.
62 void OnTouchEvent(ui::TouchEvent
* event
) override
;
63 void OnDisplayMetricsChanged(const gfx::Display
& display
,
64 uint32_t metrics
) override
;
65 void SetHudForRootWindowController(RootWindowController
* controller
) override
;
66 void UnsetHudForRootWindowController(
67 RootWindowController
* controller
) override
;
69 static const int kMaxTouchPoints
= 32;
73 scoped_ptr
<TouchLog
> touch_log_
;
75 TouchHudCanvas
* canvas_
;
76 views::View
* label_container_
;
77 views::Label
* touch_labels_
[kMaxTouchPoints
];
79 DISALLOW_COPY_AND_ASSIGN(TouchHudDebug
);
84 #endif // ASH_TOUCH_TOUCH_HUD_DEBUG_H_