forked from chromium/chromium
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhud_display.h
71 lines (51 loc) · 1.88 KB
/
hud_display.h
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
// Copyright 2020 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_HUD_DISPLAY_HUD_DISPLAY_H_
#define ASH_HUD_DISPLAY_HUD_DISPLAY_H_
#include "ash/ash_export.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 {
public:
METADATA_HEADER(HUDDisplayView);
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:
HUDHeaderView* header_view_ = nullptr; // not owned
GraphsContainerView* graphs_container_ = nullptr; // not owned
HUDSettingsView* settings_view_ = nullptr; // not owned
SEQUENCE_CHECKER(ui_sequence_checker_);
};
} // namespace hud_display
} // namespace ash
#endif // ASH_HUD_DISPLAY_HUD_DISPLAY_H_