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

Side by Side Diff: ui/views/bubble/tray_bubble_view.cc

Issue 2838273002: Reland 097f9cde453ea57eb4aa037f44add782391c5eb9 (Closed)
Patch Set: rebase Created 3 years, 7 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 | « ui/views/bubble/tray_bubble_view.h ('k') | ui/views/view.cc » ('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 "ui/views/bubble/tray_bubble_view.h" 5 #include "ui/views/bubble/tray_bubble_view.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/macros.h" 9 #include "base/macros.h"
10 #include "cc/paint/paint_flags.h" 10 #include "cc/paint/paint_flags.h"
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
172 using internal::BottomAlignedBoxLayout; 172 using internal::BottomAlignedBoxLayout;
173 173
174 TrayBubbleView::InitParams::InitParams(AnchorAlignment anchor_alignment, 174 TrayBubbleView::InitParams::InitParams(AnchorAlignment anchor_alignment,
175 int min_width, 175 int min_width,
176 int max_width) 176 int max_width)
177 : anchor_alignment(anchor_alignment), 177 : anchor_alignment(anchor_alignment),
178 min_width(min_width), 178 min_width(min_width),
179 max_width(max_width), 179 max_width(max_width),
180 max_height(0), 180 max_height(0),
181 can_activate(false), 181 can_activate(false),
182 close_on_deactivate(true), 182 close_on_deactivate(true) {}
183 bg_color(gfx::kPlaceholderColor) {}
184 183
185 TrayBubbleView::InitParams::InitParams(const InitParams& other) = default; 184 TrayBubbleView::InitParams::InitParams(const InitParams& other) = default;
186 185
187 // static 186 // static
188 TrayBubbleView* TrayBubbleView::Create(View* anchor, 187 TrayBubbleView* TrayBubbleView::Create(View* anchor,
189 Delegate* delegate, 188 Delegate* delegate,
190 InitParams* init_params) { 189 InitParams* init_params) {
191 return new TrayBubbleView(anchor, delegate, *init_params); 190 return new TrayBubbleView(anchor, delegate, *init_params);
192 } 191 }
193 192
194 TrayBubbleView::TrayBubbleView(View* anchor, 193 TrayBubbleView::TrayBubbleView(View* anchor,
195 Delegate* delegate, 194 Delegate* delegate,
196 const InitParams& init_params) 195 const InitParams& init_params)
197 : BubbleDialogDelegateView(anchor, 196 : BubbleDialogDelegateView(anchor,
198 GetArrowAlignment(init_params.anchor_alignment)), 197 GetArrowAlignment(init_params.anchor_alignment)),
199 params_(init_params), 198 params_(init_params),
200 layout_(new BottomAlignedBoxLayout(this)), 199 layout_(new BottomAlignedBoxLayout(this)),
201 delegate_(delegate), 200 delegate_(delegate),
202 preferred_width_(init_params.min_width), 201 preferred_width_(init_params.min_width),
203 bubble_border_(new BubbleBorder(arrow(), 202 bubble_border_(new BubbleBorder(
204 BubbleBorder::NO_ASSETS, 203 arrow(),
205 init_params.bg_color)), 204 BubbleBorder::NO_ASSETS,
205 init_params.bg_color.value_or(gfx::kPlaceholderColor))),
206 owned_bubble_border_(bubble_border_), 206 owned_bubble_border_(bubble_border_),
207 is_gesture_dragging_(false), 207 is_gesture_dragging_(false),
208 mouse_actively_entered_(false) { 208 mouse_actively_entered_(false) {
209 bubble_border_->set_use_theme_background_color(!init_params.bg_color);
209 bubble_border_->set_alignment(BubbleBorder::ALIGN_EDGE_TO_ANCHOR_EDGE); 210 bubble_border_->set_alignment(BubbleBorder::ALIGN_EDGE_TO_ANCHOR_EDGE);
210 bubble_border_->set_paint_arrow(BubbleBorder::PAINT_NONE); 211 bubble_border_->set_paint_arrow(BubbleBorder::PAINT_NONE);
211 set_can_activate(params_.can_activate); 212 set_can_activate(params_.can_activate);
212 DCHECK(anchor_widget()); // Computed by BubbleDialogDelegateView(). 213 DCHECK(anchor_widget()); // Computed by BubbleDialogDelegateView().
213 set_notify_enter_exit_on_child(true); 214 set_notify_enter_exit_on_child(true);
214 set_close_on_deactivate(init_params.close_on_deactivate); 215 set_close_on_deactivate(init_params.close_on_deactivate);
215 set_margins(gfx::Insets()); 216 set_margins(gfx::Insets());
216 SetPaintToLayer(); 217 SetPaintToLayer();
217 218
218 bubble_content_mask_.reset( 219 bubble_content_mask_.reset(
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after
394 395
395 void TrayBubbleView::ViewHierarchyChanged( 396 void TrayBubbleView::ViewHierarchyChanged(
396 const ViewHierarchyChangedDetails& details) { 397 const ViewHierarchyChangedDetails& details) {
397 if (details.is_add && details.child == this) { 398 if (details.is_add && details.child == this) {
398 details.parent->SetPaintToLayer(); 399 details.parent->SetPaintToLayer();
399 details.parent->layer()->SetMasksToBounds(true); 400 details.parent->layer()->SetMasksToBounds(true);
400 } 401 }
401 } 402 }
402 403
403 } // namespace views 404 } // namespace views
OLDNEW
« no previous file with comments | « ui/views/bubble/tray_bubble_view.h ('k') | ui/views/view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698