| OLD | NEW |
| 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/overflow_bubble.h" | 5 #include "ash/shelf/overflow_bubble.h" |
| 6 | 6 |
| 7 #include "ash/shelf/overflow_bubble_view.h" | 7 #include "ash/shelf/overflow_bubble_view.h" |
| 8 #include "ash/shelf/overflow_button.h" | 8 #include "ash/shelf/overflow_button.h" |
| 9 #include "ash/shelf/shelf.h" |
| 9 #include "ash/shelf/shelf_view.h" | 10 #include "ash/shelf/shelf_view.h" |
| 10 #include "ash/shelf/wm_shelf.h" | |
| 11 #include "ash/shell_port.h" | 11 #include "ash/shell_port.h" |
| 12 #include "ash/system/tray/tray_background_view.h" | 12 #include "ash/system/tray/tray_background_view.h" |
| 13 #include "ui/gfx/geometry/rect.h" | 13 #include "ui/gfx/geometry/rect.h" |
| 14 #include "ui/views/widget/widget.h" | 14 #include "ui/views/widget/widget.h" |
| 15 | 15 |
| 16 namespace ash { | 16 namespace ash { |
| 17 | 17 |
| 18 OverflowBubble::OverflowBubble(WmShelf* wm_shelf) | 18 OverflowBubble::OverflowBubble(Shelf* shelf) |
| 19 : wm_shelf_(wm_shelf), | 19 : shelf_(shelf), |
| 20 bubble_(nullptr), | 20 bubble_(nullptr), |
| 21 overflow_button_(nullptr), | 21 overflow_button_(nullptr), |
| 22 shelf_view_(nullptr) { | 22 shelf_view_(nullptr) { |
| 23 DCHECK(wm_shelf_); | 23 DCHECK(shelf_); |
| 24 ShellPort::Get()->AddPointerWatcher(this, | 24 ShellPort::Get()->AddPointerWatcher(this, |
| 25 views::PointerWatcherEventTypes::BASIC); | 25 views::PointerWatcherEventTypes::BASIC); |
| 26 } | 26 } |
| 27 | 27 |
| 28 OverflowBubble::~OverflowBubble() { | 28 OverflowBubble::~OverflowBubble() { |
| 29 Hide(); | 29 Hide(); |
| 30 ShellPort::Get()->RemovePointerWatcher(this); | 30 ShellPort::Get()->RemovePointerWatcher(this); |
| 31 } | 31 } |
| 32 | 32 |
| 33 void OverflowBubble::Show(OverflowButton* overflow_button, | 33 void OverflowBubble::Show(OverflowButton* overflow_button, |
| 34 ShelfView* shelf_view) { | 34 ShelfView* shelf_view) { |
| 35 DCHECK(overflow_button); | 35 DCHECK(overflow_button); |
| 36 DCHECK(shelf_view); | 36 DCHECK(shelf_view); |
| 37 | 37 |
| 38 Hide(); | 38 Hide(); |
| 39 | 39 |
| 40 bubble_ = new OverflowBubbleView(wm_shelf_); | 40 bubble_ = new OverflowBubbleView(shelf_); |
| 41 bubble_->InitOverflowBubble(overflow_button, shelf_view); | 41 bubble_->InitOverflowBubble(overflow_button, shelf_view); |
| 42 shelf_view_ = shelf_view; | 42 shelf_view_ = shelf_view; |
| 43 overflow_button_ = overflow_button; | 43 overflow_button_ = overflow_button; |
| 44 | 44 |
| 45 TrayBackgroundView::InitializeBubbleAnimations(bubble_->GetWidget()); | 45 TrayBackgroundView::InitializeBubbleAnimations(bubble_->GetWidget()); |
| 46 bubble_->GetWidget()->AddObserver(this); | 46 bubble_->GetWidget()->AddObserver(this); |
| 47 bubble_->GetWidget()->Show(); | 47 bubble_->GetWidget()->Show(); |
| 48 | 48 |
| 49 overflow_button->OnOverflowBubbleShown(); | 49 overflow_button->OnOverflowBubbleShown(); |
| 50 } | 50 } |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 95 void OverflowBubble::OnWidgetDestroying(views::Widget* widget) { | 95 void OverflowBubble::OnWidgetDestroying(views::Widget* widget) { |
| 96 DCHECK(widget == bubble_->GetWidget()); | 96 DCHECK(widget == bubble_->GetWidget()); |
| 97 // Update the overflow button in the parent ShelfView. | 97 // Update the overflow button in the parent ShelfView. |
| 98 overflow_button_->SchedulePaint(); | 98 overflow_button_->SchedulePaint(); |
| 99 bubble_ = nullptr; | 99 bubble_ = nullptr; |
| 100 overflow_button_ = nullptr; | 100 overflow_button_ = nullptr; |
| 101 shelf_view_ = nullptr; | 101 shelf_view_ = nullptr; |
| 102 } | 102 } |
| 103 | 103 |
| 104 } // namespace ash | 104 } // namespace ash |
| OLD | NEW |