Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 #include "ash/common/system/tray/tray_background_view.h" | 5 #include "ash/common/system/tray/tray_background_view.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "ash/common/ash_constants.h" | 9 #include "ash/common/ash_constants.h" |
| 10 #include "ash/common/material_design/material_design_controller.h" | 10 #include "ash/common/material_design/material_design_controller.h" |
| (...skipping 273 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 284 // TrayBackgroundView | 284 // TrayBackgroundView |
| 285 | 285 |
| 286 TrayBackgroundView::TrayBackgroundView(WmShelf* wm_shelf) | 286 TrayBackgroundView::TrayBackgroundView(WmShelf* wm_shelf) |
| 287 // Note the ink drop style is ignored. | 287 // Note the ink drop style is ignored. |
| 288 : ActionableView(nullptr, TrayPopupInkDropStyle::FILL_BOUNDS), | 288 : ActionableView(nullptr, TrayPopupInkDropStyle::FILL_BOUNDS), |
| 289 wm_shelf_(wm_shelf), | 289 wm_shelf_(wm_shelf), |
| 290 tray_container_(NULL), | 290 tray_container_(NULL), |
| 291 shelf_alignment_(SHELF_ALIGNMENT_BOTTOM), | 291 shelf_alignment_(SHELF_ALIGNMENT_BOTTOM), |
| 292 background_(NULL), | 292 background_(NULL), |
| 293 is_active_(false), | 293 is_active_(false), |
| 294 is_separator_visible_(true), | |
| 294 widget_observer_(new TrayWidgetObserver(this)) { | 295 widget_observer_(new TrayWidgetObserver(this)) { |
| 295 DCHECK(wm_shelf_); | 296 DCHECK(wm_shelf_); |
| 296 set_notify_enter_exit_on_child(true); | 297 set_notify_enter_exit_on_child(true); |
| 297 set_ink_drop_base_color(kShelfInkDropBaseColor); | 298 set_ink_drop_base_color(kShelfInkDropBaseColor); |
| 298 set_ink_drop_visible_opacity(kShelfInkDropVisibleOpacity); | 299 set_ink_drop_visible_opacity(kShelfInkDropVisibleOpacity); |
| 299 | 300 |
| 300 tray_container_ = new TrayContainer(shelf_alignment_); | 301 tray_container_ = new TrayContainer(shelf_alignment_); |
| 301 SetContents(tray_container_); | 302 SetContents(tray_container_); |
| 302 tray_event_filter_.reset(new TrayEventFilter); | 303 tray_event_filter_.reset(new TrayEventFilter); |
| 303 | 304 |
| (...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 513 // Nothing to do here. | 514 // Nothing to do here. |
| 514 } | 515 } |
| 515 | 516 |
| 516 void TrayBackgroundView::UpdateShelfItemBackground(int alpha) { | 517 void TrayBackgroundView::UpdateShelfItemBackground(int alpha) { |
| 517 if (background_) { | 518 if (background_) { |
| 518 background_->set_alpha(alpha); | 519 background_->set_alpha(alpha); |
| 519 SchedulePaint(); | 520 SchedulePaint(); |
| 520 } | 521 } |
| 521 } | 522 } |
| 522 | 523 |
| 524 void TrayBackgroundView::SetSeparatorVisibility(bool is_shown) { | |
|
James Cook
2017/01/09 23:50:53
nit: whatever you choose in the header, make sure
yiyix
2017/01/10 01:02:53
Done.
| |
| 525 if (is_separator_visible_ == is_shown) | |
| 526 return; | |
| 527 is_separator_visible_ = is_shown; | |
| 528 SchedulePaint(); | |
|
James Cook
2017/01/09 23:50:53
Is this needed? The two places you call SetSeparat
yiyix
2017/01/10 01:02:53
I don't need SchedulePaint() now. I was thinking h
| |
| 529 } | |
| 530 | |
| 523 views::View* TrayBackgroundView::GetBubbleAnchor() const { | 531 views::View* TrayBackgroundView::GetBubbleAnchor() const { |
| 524 return tray_container_; | 532 return tray_container_; |
| 525 } | 533 } |
| 526 | 534 |
| 527 gfx::Insets TrayBackgroundView::GetBubbleAnchorInsets() const { | 535 gfx::Insets TrayBackgroundView::GetBubbleAnchorInsets() const { |
| 528 gfx::Insets anchor_insets = GetBubbleAnchor()->GetInsets(); | 536 gfx::Insets anchor_insets = GetBubbleAnchor()->GetInsets(); |
| 529 gfx::Insets tray_bg_insets = GetInsets(); | 537 gfx::Insets tray_bg_insets = GetInsets(); |
| 530 if (GetAnchorAlignment() == TrayBubbleView::ANCHOR_ALIGNMENT_BOTTOM) { | 538 if (GetAnchorAlignment() == TrayBubbleView::ANCHOR_ALIGNMENT_BOTTOM) { |
| 531 return gfx::Insets(-tray_bg_insets.top(), anchor_insets.left(), | 539 return gfx::Insets(-tray_bg_insets.top(), anchor_insets.left(), |
| 532 -tray_bg_insets.bottom(), anchor_insets.right()); | 540 -tray_bg_insets.bottom(), anchor_insets.right()); |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 574 paint_bounds.Inset(gfx::Insets(1)); | 582 paint_bounds.Inset(gfx::Insets(1)); |
| 575 } | 583 } |
| 576 canvas->DrawSolidFocusRect(paint_bounds, kFocusBorderColor, | 584 canvas->DrawSolidFocusRect(paint_bounds, kFocusBorderColor, |
| 577 kFocusBorderThickness); | 585 kFocusBorderThickness); |
| 578 } | 586 } |
| 579 | 587 |
| 580 void TrayBackgroundView::OnPaint(gfx::Canvas* canvas) { | 588 void TrayBackgroundView::OnPaint(gfx::Canvas* canvas) { |
| 581 ActionableView::OnPaint(canvas); | 589 ActionableView::OnPaint(canvas); |
| 582 if (!MaterialDesignController::IsShelfMaterial() || | 590 if (!MaterialDesignController::IsShelfMaterial() || |
| 583 shelf()->GetBackgroundType() == | 591 shelf()->GetBackgroundType() == |
| 584 ShelfBackgroundType::SHELF_BACKGROUND_DEFAULT) { | 592 ShelfBackgroundType::SHELF_BACKGROUND_DEFAULT || |
| 593 !is_separator_visible_) { | |
| 585 return; | 594 return; |
| 586 } | 595 } |
| 587 // In the given |canvas|, for a horizontal shelf draw a separator line to the | 596 // In the given |canvas|, for a horizontal shelf draw a separator line to the |
| 588 // right or left of the TrayBackgroundView when the system is LTR or RTL | 597 // right or left of the TrayBackgroundView when the system is LTR or RTL |
| 589 // aligned, respectively. For a vertical shelf draw the separator line | 598 // aligned, respectively. For a vertical shelf draw the separator line |
| 590 // underneath the items instead. | 599 // underneath the items instead. |
| 591 const bool horizontal_shelf = IsHorizontalAlignment(shelf_alignment_); | 600 const bool horizontal_shelf = IsHorizontalAlignment(shelf_alignment_); |
| 592 const gfx::Rect local_bounds = GetLocalBounds(); | 601 const gfx::Rect local_bounds = GetLocalBounds(); |
| 593 const int height = kTrayItemSize; | 602 const int height = kTrayItemSize; |
| 594 const int x = | 603 const int x = |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 631 } | 640 } |
| 632 | 641 |
| 633 gfx::Rect TrayBackgroundView::GetBackgroundBounds() const { | 642 gfx::Rect TrayBackgroundView::GetBackgroundBounds() const { |
| 634 gfx::Insets insets = GetBackgroundInsets(); | 643 gfx::Insets insets = GetBackgroundInsets(); |
| 635 gfx::Rect bounds = GetLocalBounds(); | 644 gfx::Rect bounds = GetLocalBounds(); |
| 636 bounds.Inset(insets); | 645 bounds.Inset(insets); |
| 637 return bounds; | 646 return bounds; |
| 638 } | 647 } |
| 639 | 648 |
| 640 } // namespace ash | 649 } // namespace ash |
| OLD | NEW |