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

Side by Side Diff: ash/system/tray/tray_background_view.cc

Issue 2036353002: mash: Move ash/common/wm/shelf to ash/common/shelf (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase again Created 4 years, 6 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
« no previous file with comments | « ash/system/tray/tray_background_view.h ('k') | ash/system/tray/tray_image_item.h » ('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 #include "ash/system/tray/tray_background_view.h" 5 #include "ash/system/tray/tray_background_view.h"
6 6
7 #include "ash/common/shelf/wm_shelf_util.h"
7 #include "ash/common/shell_window_ids.h" 8 #include "ash/common/shell_window_ids.h"
8 #include "ash/common/wm/shelf/wm_shelf_util.h"
9 #include "ash/root_window_controller.h" 9 #include "ash/root_window_controller.h"
10 #include "ash/screen_util.h" 10 #include "ash/screen_util.h"
11 #include "ash/shelf/shelf_layout_manager.h" 11 #include "ash/shelf/shelf_layout_manager.h"
12 #include "ash/shelf/shelf_util.h" 12 #include "ash/shelf/shelf_util.h"
13 #include "ash/shelf/shelf_widget.h" 13 #include "ash/shelf/shelf_widget.h"
14 #include "ash/shell.h" 14 #include "ash/shell.h"
15 #include "ash/system/status_area_widget.h" 15 #include "ash/system/status_area_widget.h"
16 #include "ash/system/status_area_widget_delegate.h" 16 #include "ash/system/status_area_widget_delegate.h"
17 #include "ash/system/tray/system_tray.h" 17 #include "ash/system/tray/system_tray.h"
18 #include "ash/system/tray/tray_constants.h" 18 #include "ash/system/tray/tray_constants.h"
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
150 ->Paint(canvas, view->GetLocalBounds()); 150 ->Paint(canvas, view->GetLocalBounds());
151 } 151 }
152 152
153 SkColor color_; 153 SkColor color_;
154 // Reference to the TrayBackgroundView for which this is a background. 154 // Reference to the TrayBackgroundView for which this is a background.
155 TrayBackgroundView* tray_background_view_; 155 TrayBackgroundView* tray_background_view_;
156 156
157 DISALLOW_COPY_AND_ASSIGN(TrayBackground); 157 DISALLOW_COPY_AND_ASSIGN(TrayBackground);
158 }; 158 };
159 159
160 TrayBackgroundView::TrayContainer::TrayContainer(wm::ShelfAlignment alignment) 160 TrayBackgroundView::TrayContainer::TrayContainer(ShelfAlignment alignment)
161 : alignment_(alignment) { 161 : alignment_(alignment) {
162 UpdateLayout(); 162 UpdateLayout();
163 } 163 }
164 164
165 void TrayBackgroundView::TrayContainer::SetAlignment( 165 void TrayBackgroundView::TrayContainer::SetAlignment(ShelfAlignment alignment) {
166 wm::ShelfAlignment alignment) {
167 if (alignment_ == alignment) 166 if (alignment_ == alignment)
168 return; 167 return;
169 alignment_ = alignment; 168 alignment_ = alignment;
170 UpdateLayout(); 169 UpdateLayout();
171 } 170 }
172 171
173 gfx::Size TrayBackgroundView::TrayContainer::GetPreferredSize() const { 172 gfx::Size TrayBackgroundView::TrayContainer::GetPreferredSize() const {
174 if (size_.IsEmpty()) 173 if (size_.IsEmpty())
175 return views::View::GetPreferredSize(); 174 return views::View::GetPreferredSize();
176 return size_; 175 return size_;
(...skipping 10 matching lines...) Expand all
187 186
188 void TrayBackgroundView::TrayContainer::ViewHierarchyChanged( 187 void TrayBackgroundView::TrayContainer::ViewHierarchyChanged(
189 const ViewHierarchyChangedDetails& details) { 188 const ViewHierarchyChangedDetails& details) {
190 if (details.parent == this) 189 if (details.parent == this)
191 PreferredSizeChanged(); 190 PreferredSizeChanged();
192 } 191 }
193 192
194 void TrayBackgroundView::TrayContainer::UpdateLayout() { 193 void TrayBackgroundView::TrayContainer::UpdateLayout() {
195 // Adjust the size of status tray dark background by adding additional 194 // Adjust the size of status tray dark background by adding additional
196 // empty border. 195 // empty border.
197 if (wm::IsHorizontalAlignment(alignment_)) { 196 if (IsHorizontalAlignment(alignment_)) {
198 SetBorder(views::Border::CreateEmptyBorder( 197 SetBorder(views::Border::CreateEmptyBorder(
199 kPaddingFromEdgeOfShelf, 198 kPaddingFromEdgeOfShelf,
200 kPaddingFromEdgeOfShelf, 199 kPaddingFromEdgeOfShelf,
201 kPaddingFromEdgeOfShelf, 200 kPaddingFromEdgeOfShelf,
202 kPaddingFromEdgeOfShelf)); 201 kPaddingFromEdgeOfShelf));
203 202
204 views::BoxLayout* layout = 203 views::BoxLayout* layout =
205 new views::BoxLayout(views::BoxLayout::kHorizontal, 0, 0, 0); 204 new views::BoxLayout(views::BoxLayout::kHorizontal, 0, 0, 0);
206 layout->SetDefaultFlex(1); 205 layout->SetDefaultFlex(1);
207 views::View::SetLayoutManager(layout); 206 views::View::SetLayoutManager(layout);
(...skipping 11 matching lines...) Expand all
219 } 218 }
220 PreferredSizeChanged(); 219 PreferredSizeChanged();
221 } 220 }
222 221
223 //////////////////////////////////////////////////////////////////////////////// 222 ////////////////////////////////////////////////////////////////////////////////
224 // TrayBackgroundView 223 // TrayBackgroundView
225 224
226 TrayBackgroundView::TrayBackgroundView(StatusAreaWidget* status_area_widget) 225 TrayBackgroundView::TrayBackgroundView(StatusAreaWidget* status_area_widget)
227 : status_area_widget_(status_area_widget), 226 : status_area_widget_(status_area_widget),
228 tray_container_(NULL), 227 tray_container_(NULL),
229 shelf_alignment_(wm::SHELF_ALIGNMENT_BOTTOM), 228 shelf_alignment_(SHELF_ALIGNMENT_BOTTOM),
230 background_(NULL), 229 background_(NULL),
231 hide_background_animator_(this, 0, kTrayBackgroundAlpha), 230 hide_background_animator_(this, 0, kTrayBackgroundAlpha),
232 hover_background_animator_( 231 hover_background_animator_(
233 this, 232 this,
234 0, 233 0,
235 kTrayBackgroundHoverAlpha - kTrayBackgroundAlpha), 234 kTrayBackgroundHoverAlpha - kTrayBackgroundAlpha),
236 hovered_(false), 235 hovered_(false),
237 draw_background_as_active_(false), 236 draw_background_as_active_(false),
238 widget_observer_(new TrayWidgetObserver(this)) { 237 widget_observer_(new TrayWidgetObserver(this)) {
239 set_notify_enter_exit_on_child(true); 238 set_notify_enter_exit_on_child(true);
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
398 397
399 void TrayBackgroundView::SetContentsBackground() { 398 void TrayBackgroundView::SetContentsBackground() {
400 background_ = new TrayBackground(this); 399 background_ = new TrayBackground(this);
401 tray_container_->set_background(background_); 400 tray_container_->set_background(background_);
402 } 401 }
403 402
404 ShelfLayoutManager* TrayBackgroundView::GetShelfLayoutManager() { 403 ShelfLayoutManager* TrayBackgroundView::GetShelfLayoutManager() {
405 return status_area_widget()->shelf_widget()->shelf_layout_manager(); 404 return status_area_widget()->shelf_widget()->shelf_layout_manager();
406 } 405 }
407 406
408 void TrayBackgroundView::SetShelfAlignment(wm::ShelfAlignment alignment) { 407 void TrayBackgroundView::SetShelfAlignment(ShelfAlignment alignment) {
409 shelf_alignment_ = alignment; 408 shelf_alignment_ = alignment;
410 SetTrayBorder(); 409 SetTrayBorder();
411 tray_container_->SetAlignment(alignment); 410 tray_container_->SetAlignment(alignment);
412 } 411 }
413 412
414 void TrayBackgroundView::SetTrayBorder() { 413 void TrayBackgroundView::SetTrayBorder() {
415 views::View* parent = status_area_widget_->status_area_widget_delegate(); 414 views::View* parent = status_area_widget_->status_area_widget_delegate();
416 // Tray views are laid out right-to-left or bottom-to-top 415 // Tray views are laid out right-to-left or bottom-to-top
417 bool on_edge = (this == parent->child_at(0)); 416 bool on_edge = (this == parent->child_at(0));
418 int left_edge, top_edge, right_edge, bottom_edge; 417 int left_edge, top_edge, right_edge, bottom_edge;
419 if (wm::IsHorizontalAlignment(shelf_alignment())) { 418 if (IsHorizontalAlignment(shelf_alignment())) {
420 top_edge = ShelfLayoutManager::kShelfItemInset; 419 top_edge = ShelfLayoutManager::kShelfItemInset;
421 left_edge = 0; 420 left_edge = 0;
422 bottom_edge = kShelfSize - 421 bottom_edge = kShelfSize -
423 ShelfLayoutManager::kShelfItemInset - kShelfItemHeight; 422 ShelfLayoutManager::kShelfItemInset - kShelfItemHeight;
424 right_edge = on_edge ? kPaddingFromEdgeOfShelf : 0; 423 right_edge = on_edge ? kPaddingFromEdgeOfShelf : 0;
425 } else if (shelf_alignment() == wm::SHELF_ALIGNMENT_LEFT) { 424 } else if (shelf_alignment() == SHELF_ALIGNMENT_LEFT) {
426 top_edge = 0; 425 top_edge = 0;
427 left_edge = kShelfSize - 426 left_edge = kShelfSize -
428 ShelfLayoutManager::kShelfItemInset - kShelfItemHeight; 427 ShelfLayoutManager::kShelfItemInset - kShelfItemHeight;
429 bottom_edge = on_edge ? kPaddingFromEdgeOfShelf : 0; 428 bottom_edge = on_edge ? kPaddingFromEdgeOfShelf : 0;
430 right_edge = ShelfLayoutManager::kShelfItemInset; 429 right_edge = ShelfLayoutManager::kShelfItemInset;
431 } else { // SHELF_ALIGNMENT_RIGHT 430 } else { // SHELF_ALIGNMENT_RIGHT
432 top_edge = 0; 431 top_edge = 0;
433 left_edge = ShelfLayoutManager::kShelfItemInset; 432 left_edge = ShelfLayoutManager::kShelfItemInset;
434 bottom_edge = on_edge ? kPaddingFromEdgeOfShelf : 0; 433 bottom_edge = on_edge ? kPaddingFromEdgeOfShelf : 0;
435 right_edge = kShelfSize - 434 right_edge = kShelfSize -
(...skipping 20 matching lines...) Expand all
456 // This is needed so that OnImplicitAnimationsCompleted() is called even upon 455 // This is needed so that OnImplicitAnimationsCompleted() is called even upon
457 // destruction of the animator. This can occure when parallel animations 456 // destruction of the animator. This can occure when parallel animations
458 // caused by ScreenRotationAnimator end before the animations of 457 // caused by ScreenRotationAnimator end before the animations of
459 // TrayBackgroundView. This allows for a proper update to the visual state of 458 // TrayBackgroundView. This allows for a proper update to the visual state of
460 // the view. (crbug.com/476667) 459 // the view. (crbug.com/476667)
461 return true; 460 return true;
462 } 461 }
463 462
464 void TrayBackgroundView::HideTransformation() { 463 void TrayBackgroundView::HideTransformation() {
465 gfx::Transform transform; 464 gfx::Transform transform;
466 if (wm::IsHorizontalAlignment(shelf_alignment_)) 465 if (IsHorizontalAlignment(shelf_alignment_))
467 transform.Translate(width(), 0.0f); 466 transform.Translate(width(), 0.0f);
468 else 467 else
469 transform.Translate(0.0f, height()); 468 transform.Translate(0.0f, height());
470 layer()->SetTransform(transform); 469 layer()->SetTransform(transform);
471 } 470 }
472 471
473 aura::Window* TrayBackgroundView::GetBubbleWindowContainer() const { 472 aura::Window* TrayBackgroundView::GetBubbleWindowContainer() const {
474 return ash::Shell::GetContainer( 473 return ash::Shell::GetContainer(
475 tray_container()->GetWidget()->GetNativeWindow()->GetRootWindow(), 474 tray_container()->GetWidget()->GetNativeWindow()->GetRootWindow(),
476 ash::kShellWindowId_SettingBubbleContainer); 475 ash::kShellWindowId_SettingBubbleContainer);
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
552 kPaddingFromRightEdgeOfScreenBottomAlignment : 551 kPaddingFromRightEdgeOfScreenBottomAlignment :
553 rect.width() - kPaddingFromRightEdgeOfScreenBottomAlignment, 552 rect.width() - kPaddingFromRightEdgeOfScreenBottomAlignment,
554 rect.height() - kPaddingFromBottomOfScreenBottomAlignment, 553 rect.height() - kPaddingFromBottomOfScreenBottomAlignment,
555 0, 0); 554 0, 0);
556 } 555 }
557 } 556 }
558 return rect; 557 return rect;
559 } 558 }
560 559
561 TrayBubbleView::AnchorAlignment TrayBackgroundView::GetAnchorAlignment() const { 560 TrayBubbleView::AnchorAlignment TrayBackgroundView::GetAnchorAlignment() const {
562 if (shelf_alignment_ == wm::SHELF_ALIGNMENT_LEFT) 561 if (shelf_alignment_ == SHELF_ALIGNMENT_LEFT)
563 return TrayBubbleView::ANCHOR_ALIGNMENT_LEFT; 562 return TrayBubbleView::ANCHOR_ALIGNMENT_LEFT;
564 if (shelf_alignment_ == wm::SHELF_ALIGNMENT_RIGHT) 563 if (shelf_alignment_ == SHELF_ALIGNMENT_RIGHT)
565 return TrayBubbleView::ANCHOR_ALIGNMENT_RIGHT; 564 return TrayBubbleView::ANCHOR_ALIGNMENT_RIGHT;
566 return TrayBubbleView::ANCHOR_ALIGNMENT_BOTTOM; 565 return TrayBubbleView::ANCHOR_ALIGNMENT_BOTTOM;
567 } 566 }
568 567
569 void TrayBackgroundView::SetDrawBackgroundAsActive(bool visible) { 568 void TrayBackgroundView::SetDrawBackgroundAsActive(bool visible) {
570 if (draw_background_as_active_ == visible) 569 if (draw_background_as_active_ == visible)
571 return; 570 return;
572 draw_background_as_active_ = visible; 571 draw_background_as_active_ = visible;
573 if (!background_) 572 if (!background_)
574 return; 573 return;
575 574
576 // Do not change gradually, changing color between grey and blue is weird. 575 // Do not change gradually, changing color between grey and blue is weird.
577 if (draw_background_as_active_) 576 if (draw_background_as_active_)
578 background_->set_color(kTrayBackgroundPressedColor); 577 background_->set_color(kTrayBackgroundPressedColor);
579 else if (hovered_) 578 else if (hovered_)
580 background_->set_alpha(kTrayBackgroundHoverAlpha); 579 background_->set_alpha(kTrayBackgroundHoverAlpha);
581 else 580 else
582 background_->set_alpha(kTrayBackgroundAlpha); 581 background_->set_alpha(kTrayBackgroundAlpha);
583 SchedulePaint(); 582 SchedulePaint();
584 } 583 }
585 584
586 void TrayBackgroundView::UpdateBubbleViewArrow( 585 void TrayBackgroundView::UpdateBubbleViewArrow(
587 views::TrayBubbleView* bubble_view) { 586 views::TrayBubbleView* bubble_view) {
588 // Nothing to do here. 587 // Nothing to do here.
589 } 588 }
590 589
591 } // namespace ash 590 } // namespace ash
OLDNEW
« no previous file with comments | « ash/system/tray/tray_background_view.h ('k') | ash/system/tray/tray_image_item.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698