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

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

Issue 11417121: Undo all existing overscan settings before updating to a new overscan settings (2nd) (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years 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
« no previous file with comments | « ash/display/display_controller_unittest.cc ('k') | ash/display/display_manager.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
79 // Returns the current overscan insets for the specified |display_id|. 79 // Returns the current overscan insets for the specified |display_id|.
80 // Returns an empty insets (0, 0, 0, 0) if no insets are specified for 80 // Returns an empty insets (0, 0, 0, 0) if no insets are specified for
81 // the display. 81 // the display.
82 gfx::Insets GetOverscanInsets(int64 display_id) const; 82 gfx::Insets GetOverscanInsets(int64 display_id) const;
83 83
84 // Called when display configuration has changed. The new display 84 // Called when display configuration has changed. The new display
85 // configurations is passed as a vector of Display object, which 85 // configurations is passed as a vector of Display object, which
86 // contains each display's new infomration. 86 // contains each display's new infomration.
87 void OnNativeDisplaysChanged(const std::vector<gfx::Display>& displays); 87 void OnNativeDisplaysChanged(const std::vector<gfx::Display>& displays);
88 88
89 // Updates the internal display data and notifies observers about the changes.
90 void UpdateDisplays(const std::vector<gfx::Display>& displays);
91
89 // Create a root window for given |display|. 92 // Create a root window for given |display|.
90 aura::RootWindow* CreateRootWindowForDisplay(const gfx::Display& display); 93 aura::RootWindow* CreateRootWindowForDisplay(const gfx::Display& display);
91 94
92 // Obsoleted: Do not use in new code. 95 // Obsoleted: Do not use in new code.
93 // Returns the display at |index|. The display at 0 is 96 // Returns the display at |index|. The display at 0 is
94 // no longer considered "primary". 97 // no longer considered "primary".
95 gfx::Display* GetDisplayAt(size_t index); 98 gfx::Display* GetDisplayAt(size_t index);
96 99
97 size_t GetNumDisplays() const; 100 size_t GetNumDisplays() const;
98 101
(...skipping 21 matching lines...) Expand all
120 FRIEND_TEST_ALL_PREFIXES(DisplayManagerTest, TestNativeDisplaysChanged); 123 FRIEND_TEST_ALL_PREFIXES(DisplayManagerTest, TestNativeDisplaysChanged);
121 FRIEND_TEST_ALL_PREFIXES(DisplayManagerTest, 124 FRIEND_TEST_ALL_PREFIXES(DisplayManagerTest,
122 NativeDisplaysChangedAfterPrimaryChange); 125 NativeDisplaysChangedAfterPrimaryChange);
123 friend class ash::AcceleratorControllerTest; 126 friend class ash::AcceleratorControllerTest;
124 friend class test::DisplayManagerTestApi; 127 friend class test::DisplayManagerTestApi;
125 friend class DisplayManagerTest; 128 friend class DisplayManagerTest;
126 friend class test::SystemGestureEventFilterTest; 129 friend class test::SystemGestureEventFilterTest;
127 130
128 typedef std::vector<gfx::Display> DisplayList; 131 typedef std::vector<gfx::Display> DisplayList;
129 132
133 // Metadata for each display.
134 struct DisplayInfo {
135 // The cached name of the display.
136 std::string name;
137
138 // The original bounds_in_pixel for the display. This can be different from
139 // the current one in case of overscan insets.
140 gfx::Rect original_bounds_in_pixel;
141
142 // The overscan insets for the display.
143 gfx::Insets overscan_insets_in_dip;
144 };
145
130 void Init(); 146 void Init();
131 void CycleDisplayImpl(); 147 void CycleDisplayImpl();
132 void ScaleDisplayImpl(); 148 void ScaleDisplayImpl();
133 149
134 gfx::Display& FindDisplayForRootWindow(const aura::RootWindow* root); 150 gfx::Display& FindDisplayForRootWindow(const aura::RootWindow* root);
135 gfx::Display& FindDisplayForId(int64 id); 151 gfx::Display& FindDisplayForId(int64 id);
136 152
137 // Refer to |aura::DisplayManager::CreateDisplayFromSpec| API for 153 // Refer to |aura::DisplayManager::CreateDisplayFromSpec| API for
138 // the format of |spec|. 154 // the format of |spec|.
139 void AddDisplayFromSpec(const std::string& spec); 155 void AddDisplayFromSpec(const std::string& spec);
(...skipping 17 matching lines...) Expand all
157 173
158 DisplayList displays_; 174 DisplayList displays_;
159 175
160 int64 internal_display_id_; 176 int64 internal_display_id_;
161 177
162 // An internal display cache used when the internal display is disconnectd. 178 // An internal display cache used when the internal display is disconnectd.
163 scoped_ptr<gfx::Display> internal_display_; 179 scoped_ptr<gfx::Display> internal_display_;
164 180
165 bool force_bounds_changed_; 181 bool force_bounds_changed_;
166 182
167 // The mapping from the display ID to its overscan insets. 183 // The mapping from the display ID to its internal data.
168 std::map<int64, gfx::Insets> overscan_mapping_; 184 std::map<int64, DisplayInfo> display_info_;
169
170 // The cached display's name for the display ID.
171 std::map<int64, std::string> display_names_;
172 185
173 DISALLOW_COPY_AND_ASSIGN(DisplayManager); 186 DISALLOW_COPY_AND_ASSIGN(DisplayManager);
174 }; 187 };
175 188
176 extern const aura::WindowProperty<int64>* const kDisplayIdKey; 189 extern const aura::WindowProperty<int64>* const kDisplayIdKey;
177 190
178 } // namespace internal 191 } // namespace internal
179 } // namespace ash 192 } // namespace ash
180 193
181 #endif // ASH_DISPLAY_DISPLAY_MANAGER_H_ 194 #endif // ASH_DISPLAY_DISPLAY_MANAGER_H_
OLDNEW
« no previous file with comments | « ash/display/display_controller_unittest.cc ('k') | ash/display/display_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698