| 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/system/tray/tray_background_view.h" | 5 #include "ash/system/tray/tray_background_view.h" |
| 6 | 6 |
| 7 #include "ash/launcher/background_animator.h" | 7 #include "ash/launcher/background_animator.h" |
| 8 #include "ash/shell.h" | 8 #include "ash/shell.h" |
| 9 #include "ash/shell_window_ids.h" | 9 #include "ash/shell_window_ids.h" |
| 10 #include "ash/system/status_area_widget.h" |
| 11 #include "ash/system/status_area_widget_delegate.h" |
| 10 #include "ash/system/tray/tray_constants.h" | 12 #include "ash/system/tray/tray_constants.h" |
| 11 #include "ui/aura/window.h" | 13 #include "ui/aura/window.h" |
| 12 #include "ui/gfx/canvas.h" | 14 #include "ui/gfx/canvas.h" |
| 13 #include "ui/gfx/skia_util.h" | 15 #include "ui/gfx/skia_util.h" |
| 14 #include "ui/views/background.h" | 16 #include "ui/views/background.h" |
| 15 #include "ui/views/layout/box_layout.h" | 17 #include "ui/views/layout/box_layout.h" |
| 16 | 18 |
| 17 namespace { | 19 namespace { |
| 18 | 20 |
| 19 const SkColor kTrayBackgroundAlpha = 100; | 21 const SkColor kTrayBackgroundAlpha = 100; |
| (...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 130 this, 0, kTrayBackgroundAlpha)), | 132 this, 0, kTrayBackgroundAlpha)), |
| 131 ALLOW_THIS_IN_INITIALIZER_LIST(hover_background_animator_( | 133 ALLOW_THIS_IN_INITIALIZER_LIST(hover_background_animator_( |
| 132 this, 0, kTrayBackgroundHoverAlpha - kTrayBackgroundAlpha)) { | 134 this, 0, kTrayBackgroundHoverAlpha - kTrayBackgroundAlpha)) { |
| 133 set_notify_enter_exit_on_child(true); | 135 set_notify_enter_exit_on_child(true); |
| 134 | 136 |
| 135 // Initially we want to paint the background, but without the hover effect. | 137 // Initially we want to paint the background, but without the hover effect. |
| 136 SetPaintsBackground(true, internal::BackgroundAnimator::CHANGE_IMMEDIATE); | 138 SetPaintsBackground(true, internal::BackgroundAnimator::CHANGE_IMMEDIATE); |
| 137 hover_background_animator_.SetPaintsBackground(false, | 139 hover_background_animator_.SetPaintsBackground(false, |
| 138 internal::BackgroundAnimator::CHANGE_IMMEDIATE); | 140 internal::BackgroundAnimator::CHANGE_IMMEDIATE); |
| 139 | 141 |
| 140 SetBorder(); | |
| 141 | |
| 142 tray_container_ = new TrayContainer(shelf_alignment_); | 142 tray_container_ = new TrayContainer(shelf_alignment_); |
| 143 SetContents(tray_container_); | 143 SetContents(tray_container_); |
| 144 } | 144 } |
| 145 | 145 |
| 146 TrayBackgroundView::~TrayBackgroundView() { | 146 TrayBackgroundView::~TrayBackgroundView() { |
| 147 } | 147 } |
| 148 | 148 |
| 149 void TrayBackgroundView::OnMouseEntered(const views::MouseEvent& event) { | 149 void TrayBackgroundView::OnMouseEntered(const views::MouseEvent& event) { |
| 150 hover_background_animator_.SetPaintsBackground(true, | 150 hover_background_animator_.SetPaintsBackground(true, |
| 151 internal::BackgroundAnimator::CHANGE_ANIMATE); | 151 internal::BackgroundAnimator::CHANGE_ANIMATE); |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 186 hide_background_animator_.SetPaintsBackground(value, change_type); | 186 hide_background_animator_.SetPaintsBackground(value, change_type); |
| 187 } | 187 } |
| 188 | 188 |
| 189 void TrayBackgroundView::SetShelfAlignment(ShelfAlignment alignment) { | 189 void TrayBackgroundView::SetShelfAlignment(ShelfAlignment alignment) { |
| 190 shelf_alignment_ = alignment; | 190 shelf_alignment_ = alignment; |
| 191 SetBorder(); | 191 SetBorder(); |
| 192 tray_container_->SetAlignment(alignment); | 192 tray_container_->SetAlignment(alignment); |
| 193 } | 193 } |
| 194 | 194 |
| 195 void TrayBackgroundView::SetBorder() { | 195 void TrayBackgroundView::SetBorder() { |
| 196 views::View* parent = status_area_widget_->status_area_widget_delegate(); |
| 197 int child_count = parent->child_count(); |
| 198 DCHECK(child_count > 0); |
| 199 int on_edge = (this == parent->child_at(child_count-1)); |
| 196 // Change the border padding for different shelf alignment. | 200 // Change the border padding for different shelf alignment. |
| 197 if (shelf_alignment() == SHELF_ALIGNMENT_BOTTOM) { | 201 if (shelf_alignment() == SHELF_ALIGNMENT_BOTTOM) { |
| 198 set_border(views::Border::CreateEmptyBorder(0, 0, | 202 set_border(views::Border::CreateEmptyBorder( |
| 199 kPaddingFromBottomOfScreenBottomAlignment, | 203 0, 0, kPaddingFromBottomOfScreenBottomAlignment, |
| 200 kPaddingFromRightEdgeOfScreenBottomAlignment)); | 204 on_edge ? kPaddingFromRightEdgeOfScreenBottomAlignment : 0)); |
| 201 } else if (shelf_alignment() == SHELF_ALIGNMENT_LEFT) { | 205 } else if (shelf_alignment() == SHELF_ALIGNMENT_LEFT) { |
| 202 set_border(views::Border::CreateEmptyBorder(0, | 206 set_border(views::Border::CreateEmptyBorder( |
| 203 kPaddingFromOuterEdgeOfLauncherVerticalAlignment, | 207 0, kPaddingFromOuterEdgeOfLauncherVerticalAlignment, |
| 204 kPaddingFromBottomOfScreenVerticalAlignment, | 208 on_edge ? kPaddingFromBottomOfScreenVerticalAlignment : 0, |
| 205 kPaddingFromInnerEdgeOfLauncherVerticalAlignment)); | 209 kPaddingFromInnerEdgeOfLauncherVerticalAlignment)); |
| 206 } else { | 210 } else { |
| 207 set_border(views::Border::CreateEmptyBorder(0, | 211 set_border(views::Border::CreateEmptyBorder( |
| 208 kPaddingFromInnerEdgeOfLauncherVerticalAlignment, | 212 0, kPaddingFromInnerEdgeOfLauncherVerticalAlignment, |
| 209 kPaddingFromBottomOfScreenVerticalAlignment, | 213 on_edge ? kPaddingFromBottomOfScreenVerticalAlignment : 0, |
| 210 kPaddingFromOuterEdgeOfLauncherVerticalAlignment)); | 214 kPaddingFromOuterEdgeOfLauncherVerticalAlignment)); |
| 211 } | 215 } |
| 212 } | 216 } |
| 213 | 217 |
| 214 } // namespace internal | 218 } // namespace internal |
| 215 } // namespace ash | 219 } // namespace ash |
| OLD | NEW |