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

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

Issue 2835233005: Revert of Introduce a type of View background that stays in sync with its host (Closed)
Patch Set: 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 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
168 using internal::BottomAlignedBoxLayout; 168 using internal::BottomAlignedBoxLayout;
169 169
170 TrayBubbleView::InitParams::InitParams(AnchorAlignment anchor_alignment, 170 TrayBubbleView::InitParams::InitParams(AnchorAlignment anchor_alignment,
171 int min_width, 171 int min_width,
172 int max_width) 172 int max_width)
173 : anchor_alignment(anchor_alignment), 173 : anchor_alignment(anchor_alignment),
174 min_width(min_width), 174 min_width(min_width),
175 max_width(max_width), 175 max_width(max_width),
176 max_height(0), 176 max_height(0),
177 can_activate(false), 177 can_activate(false),
178 close_on_deactivate(true) {} 178 close_on_deactivate(true),
179 bg_color(gfx::kPlaceholderColor) {}
179 180
180 TrayBubbleView::InitParams::InitParams(const InitParams& other) = default; 181 TrayBubbleView::InitParams::InitParams(const InitParams& other) = default;
181 182
182 // static 183 // static
183 TrayBubbleView* TrayBubbleView::Create(View* anchor, 184 TrayBubbleView* TrayBubbleView::Create(View* anchor,
184 Delegate* delegate, 185 Delegate* delegate,
185 InitParams* init_params) { 186 InitParams* init_params) {
186 return new TrayBubbleView(anchor, delegate, *init_params); 187 return new TrayBubbleView(anchor, delegate, *init_params);
187 } 188 }
188 189
189 TrayBubbleView::TrayBubbleView(View* anchor, 190 TrayBubbleView::TrayBubbleView(View* anchor,
190 Delegate* delegate, 191 Delegate* delegate,
191 const InitParams& init_params) 192 const InitParams& init_params)
192 : BubbleDialogDelegateView(anchor, 193 : BubbleDialogDelegateView(anchor,
193 GetArrowAlignment(init_params.anchor_alignment)), 194 GetArrowAlignment(init_params.anchor_alignment)),
194 params_(init_params), 195 params_(init_params),
195 layout_(new BottomAlignedBoxLayout(this)), 196 layout_(new BottomAlignedBoxLayout(this)),
196 delegate_(delegate), 197 delegate_(delegate),
197 preferred_width_(init_params.min_width), 198 preferred_width_(init_params.min_width),
198 bubble_border_(new BubbleBorder( 199 bubble_border_(new BubbleBorder(arrow(),
199 arrow(), 200 BubbleBorder::NO_ASSETS,
200 BubbleBorder::NO_ASSETS, 201 init_params.bg_color)),
201 init_params.bg_color.value_or(gfx::kPlaceholderColor))),
202 owned_bubble_border_(bubble_border_), 202 owned_bubble_border_(bubble_border_),
203 is_gesture_dragging_(false), 203 is_gesture_dragging_(false),
204 mouse_actively_entered_(false) { 204 mouse_actively_entered_(false) {
205 bubble_border_->set_use_theme_background_color(!init_params.bg_color);
206 bubble_border_->set_alignment(BubbleBorder::ALIGN_EDGE_TO_ANCHOR_EDGE); 205 bubble_border_->set_alignment(BubbleBorder::ALIGN_EDGE_TO_ANCHOR_EDGE);
207 bubble_border_->set_paint_arrow(BubbleBorder::PAINT_NONE); 206 bubble_border_->set_paint_arrow(BubbleBorder::PAINT_NONE);
208 set_can_activate(params_.can_activate); 207 set_can_activate(params_.can_activate);
209 DCHECK(anchor_widget()); // Computed by BubbleDialogDelegateView(). 208 DCHECK(anchor_widget()); // Computed by BubbleDialogDelegateView().
210 set_notify_enter_exit_on_child(true); 209 set_notify_enter_exit_on_child(true);
211 set_close_on_deactivate(init_params.close_on_deactivate); 210 set_close_on_deactivate(init_params.close_on_deactivate);
212 set_margins(gfx::Insets()); 211 set_margins(gfx::Insets());
213 SetPaintToLayer(); 212 SetPaintToLayer();
214 213
215 bubble_content_mask_.reset( 214 bubble_content_mask_.reset(
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
378 377
379 void TrayBubbleView::ViewHierarchyChanged( 378 void TrayBubbleView::ViewHierarchyChanged(
380 const ViewHierarchyChangedDetails& details) { 379 const ViewHierarchyChangedDetails& details) {
381 if (details.is_add && details.child == this) { 380 if (details.is_add && details.child == this) {
382 details.parent->SetPaintToLayer(); 381 details.parent->SetPaintToLayer();
383 details.parent->layer()->SetMasksToBounds(true); 382 details.parent->layer()->SetMasksToBounds(true);
384 } 383 }
385 } 384 }
386 385
387 } // namespace views 386 } // 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