blob: bacc4da328486db07b0f2593af8a91c91fbb9ebe [file] [log] [blame]
// Copyright 2016 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 UI_ASH_METRICS_POINTER_METRICS_RECORDER_H_
#define UI_ASH_METRICS_POINTER_METRICS_RECORDER_H_
#include "ash/ash_export.h"
#include "base/macros.h"
#include "ui/events/event_handler.h"
namespace ash {
// Form factor of the down event.
// This enum is used to control a UMA histogram buckets. If you change this
// enum, you should update DownEventMetric as well.
enum class DownEventFormFactor {
kClamshell = 0,
kTabletModeLandscape,
kTabletModePortrait,
kFormFactorCount,
};
// Input type of the down event.
// This enum is used to control a UMA histogram buckets. If you change this
// enum, you should update DownEventMetric as well.
enum class DownEventSource {
kUnknown = 0, // Deprecated, never occurs in practice.
kMouse,
kStylus,
kTouch,
kSourceCount,
};
// Input, FormFactor, and Destination Combination of the down event.
// This enum is used to back an UMA histogram and new values should
// be inserted immediately above kCombinationCount.
enum class DownEventMetric {
// All "Unknown" types are deprecated, never occur in practice.
kUnknownClamshellOthers = 0,
kUnknownClamshellBrowser,
kUnknownClamshellChromeApp,
kUnknownClamshellArcApp,
kUnknownTabletLandscapeOthers,
kUnknownTabletLandscapeBrowser,
kUnknownTabletLandscapeChromeApp,
kUnknownTabletLandscapeArcApp,
kUnknownTabletPortraitOthers,
kUnknownTabletPortraitBrowser,
kUnknownTabletPortraitChromeApp,
kUnknownTabletPortraitArcApp,
kMouseClamshellOthers,
kMouseClamshellBrowser,
kMouseClamshellChromeApp,
kMouseClamshellArcApp,
kMouseTabletLandscapeOthers,
kMouseTabletLandscapeBrowser,
kMouseTabletLandscapeChromeApp,
kMouseTabletLandscapeArcApp,
kMouseTabletPortraitOthers,
kMouseTabletPortraitBrowser,
kMouseTabletPortraitChromeApp,
kMouseTabletPortraitArcApp,
kStylusClamshellOthers,
kStylusClamshellBrowser,
kStylusClamshellChromeApp,
kStylusClamshellArcApp,
kStylusTabletLandscapeOthers,
kStylusTabletLandscapeBrowser,
kStylusTabletLandscapeChromeApp,
kStylusTabletLandscapeArcApp,
kStylusTabletPortraitOthers,
kStylusTabletPortraitBrowser,
kStylusTabletPortraitChromeApp,
kStylusTabletPortraitArcApp,
kTouchClamshellOthers,
kTouchClamshellBrowser,
kTouchClamshellChromeApp,
kTouchClamshellArcApp,
kTouchTabletLandscapeOthers,
kTouchTabletLandscapeBrowser,
kTouchTabletLandscapeChromeApp,
kTouchTabletLandscapeArcApp,
kTouchTabletPortraitOthers,
kTouchTabletPortraitBrowser,
kTouchTabletPortraitChromeApp,
kTouchTabletPortraitArcApp,
kCombinationCount,
};
// A metrics recorder that records pointer related metrics.
class ASH_EXPORT PointerMetricsRecorder : public ui::EventHandler {
public:
PointerMetricsRecorder();
~PointerMetricsRecorder() override;
// ui::EventHandler:
void OnMouseEvent(ui::MouseEvent* event) override;
void OnTouchEvent(ui::TouchEvent* event) override;
private:
DISALLOW_COPY_AND_ASSIGN(PointerMetricsRecorder);
};
} // namespace ash
#endif // UI_ASH_METRICS_POINTER_METRICS_RECORDER_H_