Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(34)

Unified Diff: ash/touch/touch_hud_debug.h

Issue 17063013: Separate projection mode from rest of touch HUD (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ash/shell.cc ('k') | ash/touch/touch_hud_debug.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ash/touch/touch_hud_debug.h
diff --git a/ash/touch/touch_hud_debug.h b/ash/touch/touch_hud_debug.h
new file mode 100644
index 0000000000000000000000000000000000000000..34130f57009a870461103649c46136693a3ee54f
--- /dev/null
+++ b/ash/touch/touch_hud_debug.h
@@ -0,0 +1,87 @@
+// Copyright (c) 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_DEBUG_H_
+#define ASH_TOUCH_TOUCH_HUD_DEBUG_H_
+
+#include <map>
+
+#include "ash/ash_export.h"
+#include "ash/touch/touch_observer_hud.h"
+#include "base/memory/scoped_ptr.h"
+#include "base/values.h"
+
+namespace views {
+class Label;
+class View;
+}
+
+namespace ash {
+namespace internal {
+
+class TouchHudCanvas;
+class TouchLog;
+
+// A heads-up display to show touch traces on the screen and log touch events.
+// As a derivative of TouchObserverHUD, objects of this class manage their own
+// lifetime.
+class ASH_EXPORT TouchHudDebug : public TouchObserverHUD {
+ public:
+ enum Mode {
+ FULLSCREEN,
+ REDUCED_SCALE,
+ INVISIBLE,
+ };
+
+ explicit TouchHudDebug(aura::RootWindow* initial_root);
+
+ // Returns the log of touch events for all displays as a dictionary mapping id
+ // of each display to its touch log.
+ static scoped_ptr<DictionaryValue> GetAllAsDictionary();
+
+ // Changes the display mode (e.g. scale, visibility). Calling this repeatedly
+ // cycles between a fixed number of display modes.
+ void ChangeToNextMode();
+
+ // Returns log of touch events as a list value. Each item in the list is a
+ // trace of one touch point.
+ scoped_ptr<ListValue> GetLogAsList() const;
+
+ Mode mode() const { return mode_; }
+
+ // Overriden from TouchObserverHUD.
+ virtual void Clear() OVERRIDE;
+
+ private:
+ virtual ~TouchHudDebug();
+
+ void SetMode(Mode mode);
+
+ void UpdateTouchPointLabel(int index);
+
+ // Overriden from TouchObserverHUD.
+ virtual void OnTouchEvent(ui::TouchEvent* event) OVERRIDE;
+ virtual void OnDisplayBoundsChanged(const gfx::Display& display) OVERRIDE;
+ virtual void SetHudForRootWindowController(
+ RootWindowController* controller) OVERRIDE;
+ virtual void UnsetHudForRootWindowController(
+ RootWindowController* controller) OVERRIDE;
+
+ static const int kMaxTouchPoints = 32;
+
+ Mode mode_;
+
+ scoped_ptr<TouchLog> touch_log_;
+
+ TouchHudCanvas* canvas_;
+ views::View* label_container_;
+ views::Label* touch_labels_[kMaxTouchPoints];
+
+ DISALLOW_COPY_AND_ASSIGN(TouchHudDebug);
+};
+
+} // namespace internal
+} // namespace ash
+
+#endif // ASH_TOUCH_TOUCH_HUD_DEBUG_H_
« no previous file with comments | « ash/shell.cc ('k') | ash/touch/touch_hud_debug.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698