OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 #include "ash/display/cursor_window_controller.h" | 5 #include "ash/display/cursor_window_controller.h" |
6 | 6 |
7 #include "ash/ash_constants.h" | 7 #include "ash/ash_constants.h" |
8 #include "ash/display/mirror_window_controller.h" | 8 #include "ash/display/mirror_window_controller.h" |
9 #include "ash/display/window_tree_host_manager.h" | 9 #include "ash/display/window_tree_host_manager.h" |
10 #include "ash/public/cpp/shell_window_ids.h" | 10 #include "ash/public/cpp/shell_window_ids.h" |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
83 gfx::Size size_; | 83 gfx::Size size_; |
84 | 84 |
85 DISALLOW_COPY_AND_ASSIGN(CursorWindowDelegate); | 85 DISALLOW_COPY_AND_ASSIGN(CursorWindowDelegate); |
86 }; | 86 }; |
87 | 87 |
88 CursorWindowController::CursorWindowController() | 88 CursorWindowController::CursorWindowController() |
89 : is_cursor_compositing_enabled_(false), | 89 : is_cursor_compositing_enabled_(false), |
90 container_(NULL), | 90 container_(NULL), |
91 cursor_type_(ui::CursorType::kNone), | 91 cursor_type_(ui::CursorType::kNone), |
92 visible_(true), | 92 visible_(true), |
93 cursor_set_(ui::CURSOR_SET_NORMAL), | 93 cursor_size_(ui::CursorSize::kNormal), |
94 large_cursor_size_in_dip_(ash::kDefaultLargeCursorSize), | 94 large_cursor_size_in_dip_(ash::kDefaultLargeCursorSize), |
95 delegate_(new CursorWindowDelegate()) {} | 95 delegate_(new CursorWindowDelegate()) {} |
96 | 96 |
97 CursorWindowController::~CursorWindowController() { | 97 CursorWindowController::~CursorWindowController() { |
98 SetContainer(NULL); | 98 SetContainer(NULL); |
99 } | 99 } |
100 | 100 |
101 void CursorWindowController::SetLargeCursorSizeInDip( | 101 void CursorWindowController::SetLargeCursorSizeInDip( |
102 int large_cursor_size_in_dip) { | 102 int large_cursor_size_in_dip) { |
103 large_cursor_size_in_dip = | 103 large_cursor_size_in_dip = |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
183 } | 183 } |
184 | 184 |
185 void CursorWindowController::SetCursor(gfx::NativeCursor cursor) { | 185 void CursorWindowController::SetCursor(gfx::NativeCursor cursor) { |
186 if (cursor_type_ == cursor.native_type()) | 186 if (cursor_type_ == cursor.native_type()) |
187 return; | 187 return; |
188 cursor_type_ = cursor.native_type(); | 188 cursor_type_ = cursor.native_type(); |
189 UpdateCursorImage(); | 189 UpdateCursorImage(); |
190 UpdateCursorVisibility(); | 190 UpdateCursorVisibility(); |
191 } | 191 } |
192 | 192 |
193 void CursorWindowController::SetCursorSet(ui::CursorSetType cursor_set) { | 193 void CursorWindowController::SetCursorSize(ui::CursorSize cursor_size) { |
194 cursor_set_ = cursor_set; | 194 cursor_size_ = cursor_size; |
195 UpdateCursorImage(); | 195 UpdateCursorImage(); |
196 } | 196 } |
197 | 197 |
198 void CursorWindowController::SetVisibility(bool visible) { | 198 void CursorWindowController::SetVisibility(bool visible) { |
199 visible_ = visible; | 199 visible_ = visible; |
200 UpdateCursorVisibility(); | 200 UpdateCursorVisibility(); |
201 } | 201 } |
202 | 202 |
203 void CursorWindowController::SetContainer(aura::Window* container) { | 203 void CursorWindowController::SetContainer(aura::Window* container) { |
204 if (container_ == container) | 204 if (container_ == container) |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
239 const float original_scale = Shell::Get() | 239 const float original_scale = Shell::Get() |
240 ->display_manager() | 240 ->display_manager() |
241 ->GetDisplayInfo(display_.id()) | 241 ->GetDisplayInfo(display_.id()) |
242 .device_scale_factor(); | 242 .device_scale_factor(); |
243 // And use the nearest resource scale factor. | 243 // And use the nearest resource scale factor. |
244 cursor_scale = | 244 cursor_scale = |
245 ui::GetScaleForScaleFactor(ui::GetSupportedScaleFactor(original_scale)); | 245 ui::GetScaleForScaleFactor(ui::GetSupportedScaleFactor(original_scale)); |
246 } | 246 } |
247 int resource_id; | 247 int resource_id; |
248 // TODO(hshi): support custom cursor set. | 248 // TODO(hshi): support custom cursor set. |
249 if (!ui::GetCursorDataFor(cursor_set_, cursor_type_, cursor_scale, | 249 if (!ui::GetCursorDataFor(cursor_size_, cursor_type_, cursor_scale, |
250 &resource_id, &hot_point_)) { | 250 &resource_id, &hot_point_)) { |
251 return; | 251 return; |
252 } | 252 } |
253 const gfx::ImageSkia* image = | 253 const gfx::ImageSkia* image = |
254 ResourceBundle::GetSharedInstance().GetImageSkiaNamed(resource_id); | 254 ResourceBundle::GetSharedInstance().GetImageSkiaNamed(resource_id); |
255 if (!is_cursor_compositing_enabled_) { | 255 if (!is_cursor_compositing_enabled_) { |
256 gfx::ImageSkia rotated = *image; | 256 gfx::ImageSkia rotated = *image; |
257 switch (display_.rotation()) { | 257 switch (display_.rotation()) { |
258 case display::Display::ROTATE_0: | 258 case display::Display::ROTATE_0: |
259 break; | 259 break; |
(...skipping 21 matching lines...) Expand all Loading... |
281 delegate_->SetCursorImage( | 281 delegate_->SetCursorImage( |
282 image_rep.pixel_size(), | 282 image_rep.pixel_size(), |
283 gfx::ImageSkia::CreateFrom1xBitmap(image_rep.sk_bitmap())); | 283 gfx::ImageSkia::CreateFrom1xBitmap(image_rep.sk_bitmap())); |
284 } else { | 284 } else { |
285 gfx::ImageSkia resized = *image; | 285 gfx::ImageSkia resized = *image; |
286 | 286 |
287 // Rescale cursor size. This is used with the combination of accessibility | 287 // Rescale cursor size. This is used with the combination of accessibility |
288 // large cursor. We don't need to care about the case where cursor | 288 // large cursor. We don't need to care about the case where cursor |
289 // compositing is disabled as we always use cursor compositing if | 289 // compositing is disabled as we always use cursor compositing if |
290 // accessibility large cursor is enabled. | 290 // accessibility large cursor is enabled. |
291 if (cursor_set_ == ui::CursorSetType::CURSOR_SET_LARGE && | 291 if (cursor_size_ == ui::CursorSize::kLarge && |
292 large_cursor_size_in_dip_ != image->size().width()) { | 292 large_cursor_size_in_dip_ != image->size().width()) { |
293 float rescale = static_cast<float>(large_cursor_size_in_dip_) / | 293 float rescale = static_cast<float>(large_cursor_size_in_dip_) / |
294 static_cast<float>(image->size().width()); | 294 static_cast<float>(image->size().width()); |
295 resized = gfx::ImageSkiaOperations::CreateResizedImage( | 295 resized = gfx::ImageSkiaOperations::CreateResizedImage( |
296 *image, skia::ImageOperations::ResizeMethod::RESIZE_GOOD, | 296 *image, skia::ImageOperations::ResizeMethod::RESIZE_GOOD, |
297 gfx::ScaleToCeiledSize(image->size(), rescale)); | 297 gfx::ScaleToCeiledSize(image->size(), rescale)); |
298 hot_point_ = gfx::ScaleToCeiledPoint(hot_point_, rescale); | 298 hot_point_ = gfx::ScaleToCeiledPoint(hot_point_, rescale); |
299 } | 299 } |
300 | 300 |
301 const gfx::ImageSkiaRep& image_rep = | 301 const gfx::ImageSkiaRep& image_rep = |
(...skipping 20 matching lines...) Expand all Loading... |
322 cursor_window_->Show(); | 322 cursor_window_->Show(); |
323 else | 323 else |
324 cursor_window_->Hide(); | 324 cursor_window_->Hide(); |
325 } | 325 } |
326 | 326 |
327 const gfx::ImageSkia& CursorWindowController::GetCursorImageForTest() const { | 327 const gfx::ImageSkia& CursorWindowController::GetCursorImageForTest() const { |
328 return delegate_->cursor_image(); | 328 return delegate_->cursor_image(); |
329 } | 329 } |
330 | 330 |
331 } // namespace ash | 331 } // namespace ash |
OLD | NEW |