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

Side by Side Diff: ash/display/display_manager.h

Issue 12505005: Store rotation/ui scale to local state. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 9 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef ASH_DISPLAY_DISPLAY_MANAGER_H_ 5 #ifndef ASH_DISPLAY_DISPLAY_MANAGER_H_
6 #define ASH_DISPLAY_DISPLAY_MANAGER_H_ 6 #define ASH_DISPLAY_DISPLAY_MANAGER_H_
7 7
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 15 matching lines...) Expand all
26 namespace test { 26 namespace test {
27 class DisplayManagerTestApi; 27 class DisplayManagerTestApi;
28 class SystemGestureEventFilterTest; 28 class SystemGestureEventFilterTest;
29 } 29 }
30 namespace internal { 30 namespace internal {
31 31
32 // DisplayManager maintains the current display configurations, 32 // DisplayManager maintains the current display configurations,
33 // and notifies observers when configuration changes. 33 // and notifies observers when configuration changes.
34 // This is exported for unittest. 34 // This is exported for unittest.
35 // 35 //
36 // TODO(oshima): gfx::Screen needs to return translated coordinates 36 // TODO(oshima): Make this non internal.
37 // if the root window is translated. crbug.com/119268.
38 class ASH_EXPORT DisplayManager : public aura::RootWindowObserver { 37 class ASH_EXPORT DisplayManager : public aura::RootWindowObserver {
39 public: 38 public:
40 DisplayManager(); 39 DisplayManager();
41 virtual ~DisplayManager(); 40 virtual ~DisplayManager();
42 41
43 // Used to emulate display change when run in a desktop environment instead 42 // Used to emulate display change when run in a desktop environment instead
44 // of on a device. 43 // of on a device.
45 static void CycleDisplay(); 44 static void CycleDisplay();
46 static void ToggleDisplayScaleFactor(); 45 static void ToggleDisplayScaleFactor();
47 46
47 // Returns next valud ui scales.
James Cook 2013/03/22 16:53:14 "Returns next valid UI scale."
oshima 2013/03/22 18:20:42 Done.
48 static float GetNextUIScale(float scale, bool up);
49
48 // When set to true, the MonitorManager calls OnDisplayBoundsChanged 50 // When set to true, the MonitorManager calls OnDisplayBoundsChanged
49 // even if the display's bounds didn't change. Used to swap primary 51 // even if the display's bounds didn't change. Used to swap primary
50 // display. 52 // display.
51 void set_force_bounds_changed(bool force_bounds_changed) { 53 void set_force_bounds_changed(bool force_bounds_changed) {
52 force_bounds_changed_ = force_bounds_changed; 54 force_bounds_changed_ = force_bounds_changed;
53 } 55 }
54 56
55 // Returns the display id of the first display in the outupt list. 57 // Returns the display id of the first display in the outupt list.
56 int64 first_display_id() const { return first_display_id_; } 58 int64 first_display_id() const { return first_display_id_; }
57 59
(...skipping 24 matching lines...) Expand all
82 84
83 // Clears the overscan insets 85 // Clears the overscan insets
84 void ClearCustomOverscanInsets(int64 display_id); 86 void ClearCustomOverscanInsets(int64 display_id);
85 87
86 // Sets the display's rotation. 88 // Sets the display's rotation.
87 void SetDisplayRotation(int64 display_id, gfx::Display::Rotation rotation); 89 void SetDisplayRotation(int64 display_id, gfx::Display::Rotation rotation);
88 90
89 // Sets the display's ui scale. 91 // Sets the display's ui scale.
90 void SetDisplayUIScale(int64 display_id, float ui_scale); 92 void SetDisplayUIScale(int64 display_id, float ui_scale);
91 93
94 // Register per display properties. |overscan_insets| is NULL if
95 // the display has no custom overscan insets.
96 void RegisterDisplayProperty(int64 display_id,
97 gfx::Display::Rotation rotation,
98 float ui_scale,
99 const gfx::Insets* overscan_insets);
100
92 // Tells if display rotation/ui scaling features are enabled. 101 // Tells if display rotation/ui scaling features are enabled.
93 bool IsDisplayRotationEnabled() const; 102 bool IsDisplayRotationEnabled() const;
94 bool IsDisplayUIScalingEnabled() const; 103 bool IsDisplayUIScalingEnabled() const;
95 104
96 // Returns the current overscan insets for the specified |display_id|. 105 // Returns the current overscan insets for the specified |display_id|.
97 // Returns an empty insets (0, 0, 0, 0) if no insets are specified for 106 // Returns an empty insets (0, 0, 0, 0) if no insets are specified for
98 // the display. 107 // the display.
99 gfx::Insets GetOverscanInsets(int64 display_id) const; 108 gfx::Insets GetOverscanInsets(int64 display_id) const;
100 109
101 // Called when display configuration has changed. The new display 110 // Called when display configuration has changed. The new display
102 // configurations is passed as a vector of Display object, which 111 // configurations is passed as a vector of Display object, which
103 // contains each display's new infomration. 112 // contains each display's new infomration.
104 void OnNativeDisplaysChanged( 113 void OnNativeDisplaysChanged(
105 const std::vector<DisplayInfo>& display_info_list); 114 const std::vector<DisplayInfo>& display_info_list);
106 115
107 // Updates the internal display data and notifies observers about the changes. 116 // Updates the internal display data and notifies observers about the changes.
108 void UpdateDisplays(const std::vector<DisplayInfo>& display_info_list); 117 void UpdateDisplays(const std::vector<DisplayInfo>& display_info_list);
109 118
119 // Updates current displays using current |display_info_|.
120 void UpdateDisplays();
121
110 // Obsoleted: Do not use in new code. 122 // Obsoleted: Do not use in new code.
111 // Returns the display at |index|. The display at 0 is 123 // Returns the display at |index|. The display at 0 is
112 // no longer considered "primary". 124 // no longer considered "primary".
113 gfx::Display* GetDisplayAt(size_t index); 125 gfx::Display* GetDisplayAt(size_t index);
114 126
115 const gfx::Display* GetPrimaryDisplayCandidate() const; 127 const gfx::Display* GetPrimaryDisplayCandidate() const;
116 128
117 // Returns the logical number of displays. This returns 1 129 // Returns the logical number of displays. This returns 1
118 // when displays are mirrored. 130 // when displays are mirrored.
119 size_t GetNumDisplays() const; 131 size_t GetNumDisplays() const;
120 132
121 // Returns the number of connected displays. This returns 2 133 // Returns the number of connected displays. This returns 2
122 // when displays are mirrored. 134 // when displays are mirrored.
123 size_t num_connected_displays() const { return num_connected_displays_; } 135 size_t num_connected_displays() const { return num_connected_displays_; }
124 136
125 int64 mirrored_display_id() const { return mirrored_display_id_; } 137 int64 mirrored_display_id() const { return mirrored_display_id_; }
126 138
127 // Returns the display object nearest given |window|. 139 // Returns the display object nearest given |window|.
128 const gfx::Display& GetDisplayNearestPoint( 140 const gfx::Display& GetDisplayNearestPoint(
129 const gfx::Point& point) const; 141 const gfx::Point& point) const;
130 142
131 // Returns the display object nearest given |point|. 143 // Returns the display object nearest given |point|.
132 const gfx::Display& GetDisplayNearestWindow( 144 const gfx::Display& GetDisplayNearestWindow(
133 const aura::Window* window) const; 145 const aura::Window* window) const;
134 146
135 // Returns the display that most closely intersects |match_rect|. 147 // Returns the display that most closely intersects |match_rect|.
136 const gfx::Display& GetDisplayMatching( 148 const gfx::Display& GetDisplayMatching(
137 const gfx::Rect& match_rect)const; 149 const gfx::Rect& match_rect)const;
138 150
139 // Retuns the display info associated with |display|. 151 // Retuns the display info associated with |display_id|.
140 const DisplayInfo& GetDisplayInfo(const gfx::Display& display) const; 152 const DisplayInfo& GetDisplayInfo(int64 display_id) const;
141 153
142 // Returns the human-readable name for the display |id|. 154 // Returns the human-readable name for the display |id|.
143 std::string GetDisplayNameForId(int64 id); 155 std::string GetDisplayNameForId(int64 id);
144 156
145 // RootWindowObserver overrides: 157 // RootWindowObserver overrides:
146 virtual void OnRootWindowResized(const aura::RootWindow* root, 158 virtual void OnRootWindowResized(const aura::RootWindow* root,
147 const gfx::Size& new_size) OVERRIDE; 159 const gfx::Size& new_size) OVERRIDE;
148 160
149 private: 161 private:
150 FRIEND_TEST_ALL_PREFIXES(ExtendedDesktopTest, ConvertPoint); 162 FRIEND_TEST_ALL_PREFIXES(ExtendedDesktopTest, ConvertPoint);
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
214 226
215 DISALLOW_COPY_AND_ASSIGN(DisplayManager); 227 DISALLOW_COPY_AND_ASSIGN(DisplayManager);
216 }; 228 };
217 229
218 extern const aura::WindowProperty<int64>* const kDisplayIdKey; 230 extern const aura::WindowProperty<int64>* const kDisplayIdKey;
219 231
220 } // namespace internal 232 } // namespace internal
221 } // namespace ash 233 } // namespace ash
222 234
223 #endif // ASH_DISPLAY_DISPLAY_MANAGER_H_ 235 #endif // ASH_DISPLAY_DISPLAY_MANAGER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698