1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
ash / hud_display / hud_display.h [blame]
// Copyright 2020 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef ASH_HUD_DISPLAY_HUD_DISPLAY_H_
#define ASH_HUD_DISPLAY_HUD_DISPLAY_H_
#include "ash/ash_export.h"
#include "base/memory/raw_ptr.h"
#include "base/sequence_checker.h"
#include "ui/views/view.h"
namespace ash {
namespace hud_display {
enum class HUDDisplayMode;
class GraphsContainerView;
class HUDHeaderView;
class HUDSettingsView;
// HUDDisplayView class can be used to display a system monitoring overview.
class HUDDisplayView : public views::View {
METADATA_HEADER(HUDDisplayView, views::View)
public:
HUDDisplayView();
HUDDisplayView(const HUDDisplayView&) = delete;
HUDDisplayView& operator=(const HUDDisplayView&) = delete;
~HUDDisplayView() override;
// Destroys global instance.
static void Destroy();
// Creates/Destroys global singleton.
static void Toggle();
// True when HUD is shown.
static bool ASH_EXPORT IsShown();
// Called from ClientView. Responsible for moving widget when clicked outside
// of the children.
int NonClientHitTest(const gfx::Point& point);
// Changes UI display mode.
void SetDisplayMode(const HUDDisplayMode display_mode);
// Callback from SettingsButton.
void OnSettingsToggle();
// Returns true if HUD is in overlay mode.
bool IsOverlay();
// Changes HUD overlay flag.
void ToggleOverlay();
ASH_EXPORT static HUDDisplayView* GetForTesting();
ASH_EXPORT HUDSettingsView* GetSettingsViewForTesting();
ASH_EXPORT void ToggleSettingsForTesting();
private:
raw_ptr<HUDHeaderView> header_view_ = nullptr; // not owned
raw_ptr<GraphsContainerView> graphs_container_ = nullptr; // not owned
raw_ptr<HUDSettingsView> settings_view_ = nullptr; // not owned
SEQUENCE_CHECKER(ui_sequence_checker_);
};
} // namespace hud_display
} // namespace ash
#endif // ASH_HUD_DISPLAY_HUD_DISPLAY_H_