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

Side by Side Diff: ash/shelf/shelf_button.cc

Issue 2899253002: chromeos: Rename ash::WmShelf to Shelf (Closed)
Patch Set: rebase Created 3 years, 7 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
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/shelf/shelf_button.h" 5 #include "ash/shelf/shelf_button.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "ash/ash_constants.h" 9 #include "ash/ash_constants.h"
10 #include "ash/shelf/ink_drop_button_listener.h" 10 #include "ash/shelf/ink_drop_button_listener.h"
11 #include "ash/shelf/shelf.h"
11 #include "ash/shelf/shelf_constants.h" 12 #include "ash/shelf/shelf_constants.h"
12 #include "ash/shelf/shelf_view.h" 13 #include "ash/shelf/shelf_view.h"
13 #include "ash/shelf/wm_shelf.h"
14 #include "base/memory/ptr_util.h" 14 #include "base/memory/ptr_util.h"
15 #include "base/time/time.h" 15 #include "base/time/time.h"
16 #include "skia/ext/image_operations.h" 16 #include "skia/ext/image_operations.h"
17 #include "ui/accessibility/ax_node_data.h" 17 #include "ui/accessibility/ax_node_data.h"
18 #include "ui/compositor/layer.h" 18 #include "ui/compositor/layer.h"
19 #include "ui/gfx/animation/animation_delegate.h" 19 #include "ui/gfx/animation/animation_delegate.h"
20 #include "ui/gfx/animation/throb_animation.h" 20 #include "ui/gfx/animation/throb_animation.h"
21 #include "ui/gfx/canvas.h" 21 #include "ui/gfx/canvas.h"
22 #include "ui/gfx/geometry/vector2d.h" 22 #include "ui/gfx/geometry/vector2d.h"
23 #include "ui/gfx/image/image_skia_operations.h" 23 #include "ui/gfx/image/image_skia_operations.h"
(...skipping 323 matching lines...) Expand 10 before | Expand all | Expand 10 after
347 return true; 347 return true;
348 } 348 }
349 349
350 void ShelfButton::GetAccessibleNodeData(ui::AXNodeData* node_data) { 350 void ShelfButton::GetAccessibleNodeData(ui::AXNodeData* node_data) {
351 node_data->role = ui::AX_ROLE_BUTTON; 351 node_data->role = ui::AX_ROLE_BUTTON;
352 node_data->SetName(shelf_view_->GetTitleForView(this)); 352 node_data->SetName(shelf_view_->GetTitleForView(this));
353 } 353 }
354 354
355 void ShelfButton::Layout() { 355 void ShelfButton::Layout() {
356 const gfx::Rect button_bounds(GetContentsBounds()); 356 const gfx::Rect button_bounds(GetContentsBounds());
357 WmShelf* wm_shelf = shelf_view_->wm_shelf(); 357 Shelf* shelf = shelf_view_->shelf();
358 const bool is_horizontal_shelf = wm_shelf->IsHorizontalAlignment(); 358 const bool is_horizontal_shelf = shelf->IsHorizontalAlignment();
359 const int icon_pad = 359 const int icon_pad =
360 is_horizontal_shelf ? kIconPaddingHorizontal : kIconPaddingVertical; 360 is_horizontal_shelf ? kIconPaddingHorizontal : kIconPaddingVertical;
361 int x_offset = is_horizontal_shelf ? 0 : icon_pad; 361 int x_offset = is_horizontal_shelf ? 0 : icon_pad;
362 int y_offset = is_horizontal_shelf ? icon_pad : 0; 362 int y_offset = is_horizontal_shelf ? icon_pad : 0;
363 363
364 int icon_width = std::min(kIconSize, button_bounds.width() - x_offset); 364 int icon_width = std::min(kIconSize, button_bounds.width() - x_offset);
365 int icon_height = std::min(kIconSize, button_bounds.height() - y_offset); 365 int icon_height = std::min(kIconSize, button_bounds.height() - y_offset);
366 366
367 // If on the left or top 'invert' the inset so the constant gap is on 367 // If on the left or top 'invert' the inset so the constant gap is on
368 // the interior (towards the center of display) edge of the shelf. 368 // the interior (towards the center of display) edge of the shelf.
369 if (SHELF_ALIGNMENT_LEFT == wm_shelf->GetAlignment()) 369 if (SHELF_ALIGNMENT_LEFT == shelf->alignment())
370 x_offset = button_bounds.width() - (kIconSize + icon_pad); 370 x_offset = button_bounds.width() - (kIconSize + icon_pad);
371 371
372 // Center icon with respect to the secondary axis. 372 // Center icon with respect to the secondary axis.
373 if (is_horizontal_shelf) 373 if (is_horizontal_shelf)
374 x_offset = std::max(0, button_bounds.width() - icon_width) / 2; 374 x_offset = std::max(0, button_bounds.width() - icon_width) / 2;
375 else 375 else
376 y_offset = std::max(0, button_bounds.height() - icon_height) / 2; 376 y_offset = std::max(0, button_bounds.height() - icon_height) / 2;
377 377
378 // Expand bounds to include shadows. 378 // Expand bounds to include shadows.
379 gfx::Insets insets_shadows = gfx::ShadowValue::GetMargin(icon_shadows_); 379 gfx::Insets insets_shadows = gfx::ShadowValue::GetMargin(icon_shadows_);
380 // Adjust offsets to center icon, not icon + shadow. 380 // Adjust offsets to center icon, not icon + shadow.
381 x_offset += (insets_shadows.left() - insets_shadows.right()) / 2; 381 x_offset += (insets_shadows.left() - insets_shadows.right()) / 2;
382 y_offset += (insets_shadows.top() - insets_shadows.bottom()) / 2; 382 y_offset += (insets_shadows.top() - insets_shadows.bottom()) / 2;
383 gfx::Rect icon_view_bounds = 383 gfx::Rect icon_view_bounds =
384 gfx::Rect(button_bounds.x() + x_offset, button_bounds.y() + y_offset, 384 gfx::Rect(button_bounds.x() + x_offset, button_bounds.y() + y_offset,
385 icon_width, icon_height); 385 icon_width, icon_height);
386 // The indicator should be aligned with the icon, not the icon + shadow. 386 // The indicator should be aligned with the icon, not the icon + shadow.
387 gfx::Point indicator_midpoint = icon_view_bounds.CenterPoint(); 387 gfx::Point indicator_midpoint = icon_view_bounds.CenterPoint();
388 icon_view_bounds.Inset(insets_shadows); 388 icon_view_bounds.Inset(insets_shadows);
389 icon_view_bounds.AdjustToFit(gfx::Rect(size())); 389 icon_view_bounds.AdjustToFit(gfx::Rect(size()));
390 icon_view_->SetBoundsRect(icon_view_bounds); 390 icon_view_->SetBoundsRect(icon_view_bounds);
391 391
392 // Icon size has been incorrect when running 392 // Icon size has been incorrect when running
393 // PanelLayoutManagerTest.PanelAlignmentSecondDisplay on valgrind bot, see 393 // PanelLayoutManagerTest.PanelAlignmentSecondDisplay on valgrind bot, see
394 // http://crbug.com/234854. 394 // http://crbug.com/234854.
395 DCHECK_LE(icon_width, kIconSize); 395 DCHECK_LE(icon_width, kIconSize);
396 DCHECK_LE(icon_height, kIconSize); 396 DCHECK_LE(icon_height, kIconSize);
397 397
398 switch (wm_shelf->GetAlignment()) { 398 switch (shelf->alignment()) {
399 case SHELF_ALIGNMENT_BOTTOM: 399 case SHELF_ALIGNMENT_BOTTOM:
400 case SHELF_ALIGNMENT_BOTTOM_LOCKED: 400 case SHELF_ALIGNMENT_BOTTOM_LOCKED:
401 indicator_midpoint.set_y(button_bounds.bottom() - kIndicatorRadiusDip - 401 indicator_midpoint.set_y(button_bounds.bottom() - kIndicatorRadiusDip -
402 kIndicatorOffsetFromBottom); 402 kIndicatorOffsetFromBottom);
403 break; 403 break;
404 case SHELF_ALIGNMENT_LEFT: 404 case SHELF_ALIGNMENT_LEFT:
405 indicator_midpoint.set_x(button_bounds.x() + kIndicatorRadiusDip + 405 indicator_midpoint.set_x(button_bounds.x() + kIndicatorRadiusDip +
406 kIndicatorOffsetFromBottom); 406 kIndicatorOffsetFromBottom);
407 break; 407 break;
408 case SHELF_ALIGNMENT_RIGHT: 408 case SHELF_ALIGNMENT_RIGHT:
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
494 if (listener_) 494 if (listener_)
495 listener_->ButtonPressed(this, event, GetInkDrop()); 495 listener_->ButtonPressed(this, event, GetInkDrop());
496 } 496 }
497 497
498 void ShelfButton::UpdateState() { 498 void ShelfButton::UpdateState() {
499 indicator_->SetVisible(!(state_ & STATE_HIDDEN) && 499 indicator_->SetVisible(!(state_ & STATE_HIDDEN) &&
500 (state_ & STATE_ACTIVE || state_ & STATE_ATTENTION || 500 (state_ & STATE_ACTIVE || state_ & STATE_ATTENTION ||
501 state_ & STATE_RUNNING)); 501 state_ & STATE_RUNNING));
502 502
503 const bool is_horizontal_shelf = 503 const bool is_horizontal_shelf =
504 shelf_view_->wm_shelf()->IsHorizontalAlignment(); 504 shelf_view_->shelf()->IsHorizontalAlignment();
505 icon_view_->SetHorizontalAlignment(is_horizontal_shelf 505 icon_view_->SetHorizontalAlignment(is_horizontal_shelf
506 ? views::ImageView::CENTER 506 ? views::ImageView::CENTER
507 : views::ImageView::LEADING); 507 : views::ImageView::LEADING);
508 icon_view_->SetVerticalAlignment(is_horizontal_shelf 508 icon_view_->SetVerticalAlignment(is_horizontal_shelf
509 ? views::ImageView::LEADING 509 ? views::ImageView::LEADING
510 : views::ImageView::CENTER); 510 : views::ImageView::CENTER);
511 SchedulePaint(); 511 SchedulePaint();
512 } 512 }
513 513
514 } // namespace ash 514 } // namespace ash
OLDNEW
« no previous file with comments | « ash/shelf/shelf_bezel_event_handler.cc ('k') | ash/shelf/shelf_button_pressed_metric_tracker_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698