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

Side by Side Diff: services/ui/display/screen_manager_ozone.h

Issue 2685003002: Rename ScreeManagerOzone to ScreenManagerOzoneInternal (Closed)
Patch Set: patch for landing Created 3 years, 10 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 unified diff | Download patch
« no previous file with comments | « services/ui/display/BUILD.gn ('k') | services/ui/display/screen_manager_ozone.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2016 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.
4
5 #ifndef SERVICES_UI_DISPLAY_SCREEN_MANAGER_OZONE_H_
6 #define SERVICES_UI_DISPLAY_SCREEN_MANAGER_OZONE_H_
7
8 #include <stdint.h>
9
10 #include <memory>
11
12 #include "base/macros.h"
13 #include "mojo/public/cpp/bindings/binding_set.h"
14 #include "services/service_manager/public/cpp/connection.h"
15 #include "services/service_manager/public/cpp/interface_factory.h"
16 #include "services/ui/display/screen_manager.h"
17 #include "services/ui/display/viewport_metrics.h"
18 #include "services/ui/public/interfaces/display/display_controller.mojom.h"
19 #include "services/ui/public/interfaces/display/test_display_controller.mojom.h"
20 #include "ui/display/display.h"
21 #include "ui/display/display_observer.h"
22 #include "ui/display/manager/chromeos/display_configurator.h"
23 #include "ui/display/manager/display_manager.h"
24 #include "ui/display/types/display_constants.h"
25
26 namespace display {
27
28 class DisplayChangeObserver;
29 class FakeDisplayController;
30 class ScreenBase;
31 class TouchTransformController;
32
33 // ScreenManagerOzone provides the necessary functionality to configure all
34 // attached physical displays on the ozone platform.
35 class ScreenManagerOzone
36 : public ScreenManager,
37 public mojom::TestDisplayController,
38 public mojom::DisplayController,
39 public DisplayObserver,
40 public DisplayManager::Delegate,
41 public service_manager::InterfaceFactory<mojom::DisplayController>,
42 public service_manager::InterfaceFactory<mojom::TestDisplayController> {
43 public:
44 ScreenManagerOzone();
45 ~ScreenManagerOzone() override;
46
47 void SetPrimaryDisplayId(int64_t display_id);
48
49 // ScreenManager:
50 void AddInterfaces(service_manager::InterfaceRegistry* registry) override;
51 void Init(ScreenManagerDelegate* delegate) override;
52 void RequestCloseDisplay(int64_t display_id) override;
53 int64_t GetPrimaryDisplayId() const override;
54
55 // mojom::TestDisplayController:
56 void ToggleAddRemoveDisplay() override;
57 void ToggleDisplayResolution() override;
58
59 // mojom::DisplayController:
60 void IncreaseInternalDisplayZoom() override;
61 void DecreaseInternalDisplayZoom() override;
62 void ResetInternalDisplayZoom() override;
63 void RotateCurrentDisplayCW() override;
64 void SwapPrimaryDisplay() override;
65 void ToggleMirrorMode() override;
66 void SetDisplayWorkArea(int64_t display_id,
67 const gfx::Size& size,
68 const gfx::Insets& insets) override;
69 void TakeDisplayControl(const TakeDisplayControlCallback& callback) override;
70 void RelinquishDisplayControl(
71 const RelinquishDisplayControlCallback& callback) override;
72
73 private:
74 friend class ScreenManagerOzoneTest;
75
76 ViewportMetrics GetViewportMetricsForDisplay(const Display& display);
77
78 // DisplayObserver:
79 void OnDisplayAdded(const Display& new_display) override;
80 void OnDisplayRemoved(const Display& old_display) override;
81 void OnDisplayMetricsChanged(const Display& display,
82 uint32_t changed_metrics) override;
83
84 // DisplayManager::Delegate:
85 void CreateOrUpdateMirroringDisplay(
86 const DisplayInfoList& display_info_list) override;
87 void CloseMirroringDisplayIfNotNecessary() override;
88 void PreDisplayConfigurationChange(bool clear_focus) override;
89 void PostDisplayConfigurationChange(bool must_clear_window) override;
90 DisplayConfigurator* display_configurator() override;
91
92 // mojo::InterfaceFactory<mojom::DisplayController>:
93 void Create(const service_manager::Identity& remote_identity,
94 mojom::DisplayControllerRequest request) override;
95
96 // mojo::InterfaceFactory<mojom::TestDisplayController>:
97 void Create(const service_manager::Identity& remote_identity,
98 mojom::TestDisplayControllerRequest request) override;
99
100 DisplayConfigurator display_configurator_;
101 std::unique_ptr<DisplayManager> display_manager_;
102 std::unique_ptr<DisplayChangeObserver> display_change_observer_;
103 std::unique_ptr<TouchTransformController> touch_transform_controller_;
104
105 ScreenBase* screen_ = nullptr;
106 ScreenManagerDelegate* delegate_ = nullptr;
107
108 std::unique_ptr<NativeDisplayDelegate> native_display_delegate_;
109
110 // If not null it provides a way to modify the display state when running off
111 // device (eg. running mustash on Linux).
112 FakeDisplayController* fake_display_controller_ = nullptr;
113
114 int64_t primary_display_id_ = kInvalidDisplayId;
115
116 mojo::BindingSet<mojom::DisplayController> controller_bindings_;
117 mojo::BindingSet<mojom::TestDisplayController> test_bindings_;
118
119 DISALLOW_COPY_AND_ASSIGN(ScreenManagerOzone);
120 };
121
122 } // namespace display
123
124 #endif // SERVICES_UI_DISPLAY_SCREEN_MANAGER_OZONE_H_
OLDNEW
« no previous file with comments | « services/ui/display/BUILD.gn ('k') | services/ui/display/screen_manager_ozone.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698