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 |