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

Side by Side Diff: chrome/browser/ui/views/dropdown_bar_view.cc

Issue 1478303003: Converted all Views to use an InkDropDelegate instead of a InkDropAnimationController. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Added missing include. Created 5 years 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
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 "chrome/browser/ui/views/dropdown_bar_view.h" 5 #include "chrome/browser/ui/views/dropdown_bar_view.h"
6 6
7 #include "chrome/browser/themes/theme_service.h" 7 #include "chrome/browser/themes/theme_service.h"
8 #include "chrome/browser/ui/view_ids.h" 8 #include "chrome/browser/ui/view_ids.h"
9 #include "chrome/browser/ui/views/frame/browser_view.h" 9 #include "chrome/browser/ui/views/frame/browser_view.h"
10 #include "grit/theme_resources.h" 10 #include "grit/theme_resources.h"
11 #include "third_party/skia/include/core/SkCanvas.h" 11 #include "third_party/skia/include/core/SkCanvas.h"
12 #include "third_party/skia/include/core/SkRect.h" 12 #include "third_party/skia/include/core/SkRect.h"
13 #include "ui/base/resource/resource_bundle.h" 13 #include "ui/base/resource/resource_bundle.h"
14 #include "ui/gfx/canvas.h" 14 #include "ui/gfx/canvas.h"
15 #include "ui/gfx/image/image_skia.h" 15 #include "ui/gfx/image/image_skia.h"
16 #include "ui/views/background.h" 16 #include "ui/views/background.h"
17 #include "ui/views/border.h" 17 #include "ui/views/border.h"
18 #include "ui/views/painter.h" 18 #include "ui/views/painter.h"
19 #include "ui/views/widget/widget.h" 19 #include "ui/views/widget/widget.h"
20 20
21 namespace { 21 namespace {
22 22
23 // When we are animating, we draw only the top part of the left and right
24 // edges to give the illusion that the find dialog is attached to the
25 // window during this animation; this is the height of the items we draw.
26 const int kAnimatingEdgeHeight = 5;
27
23 // Background to paint toolbar background with rounded corners. 28 // Background to paint toolbar background with rounded corners.
24 class DropdownBackground : public views::Background { 29 class DropdownBackground : public views::Background {
25 public: 30 public:
26 explicit DropdownBackground(BrowserView* browser, 31 explicit DropdownBackground(BrowserView* browser,
27 const gfx::ImageSkia* left_alpha_mask, 32 const gfx::ImageSkia* left_alpha_mask,
28 const gfx::ImageSkia* right_alpha_mask); 33 const gfx::ImageSkia* right_alpha_mask);
29 ~DropdownBackground() override {} 34 ~DropdownBackground() override {}
30 35
31 // Overridden from views::Background. 36 // Overridden from views::Background.
32 void Paint(gfx::Canvas* canvas, views::View* view) const override; 37 void Paint(gfx::Canvas* canvas, views::View* view) const override;
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
75 0, 0, left_edge_width, height, false, paint); 80 0, 0, left_edge_width, height, false, paint);
76 81
77 // Draw right edge. 82 // Draw right edge.
78 int x_right_edge = view->bounds().width() - right_edge_width; 83 int x_right_edge = view->bounds().width() - right_edge_width;
79 canvas->DrawImageInt(*right_alpha_mask_, 0, 0, right_edge_width, 84 canvas->DrawImageInt(*right_alpha_mask_, 0, 0, right_edge_width,
80 mask_height, x_right_edge, 0, right_edge_width, height, false, paint); 85 mask_height, x_right_edge, 0, right_edge_width, height, false, paint);
81 } 86 }
82 87
83 } // namespace 88 } // namespace
84 89
85 DropdownBarView::DropdownBarView(DropdownBarHost* host) : host_(host) {} 90 DropdownBarView::DropdownBarView(DropdownBarHost* host)
91 : host_(host),
92 animation_offset_(0) {
93 }
86 94
87 DropdownBarView::~DropdownBarView() { 95 DropdownBarView::~DropdownBarView() {
88 } 96 }
89 97
90 //////////////////////////////////////////////////////////////////////////////// 98 ////////////////////////////////////////////////////////////////////////////////
99 // DropDownBarView, public:
100
101 void DropdownBarView::SetAnimationOffset(int offset) {
102 animation_offset_ = offset;
103 set_clip_insets(gfx::Insets(animation_offset_, 0, 0, 0));
104 }
105
106 // DropDownBarView, views::View overrides:
107 void DropdownBarView::OnPaint(gfx::Canvas* canvas) {
108 OnPaintBackground(canvas);
109 OnPaintBorder(canvas);
110
111 if (animation_offset() > 0) {
112 gfx::Canvas animating_edges(
113 gfx::Size(bounds().width(), kAnimatingEdgeHeight),
114 canvas->image_scale(),
115 false);
116 canvas->Translate(bounds().OffsetFromOrigin());
117 OnPaintBackground(&animating_edges);
118 OnPaintBorder(&animating_edges);
119 canvas->DrawImageInt(gfx::ImageSkia(animating_edges.ExtractImageRep()),
120 bounds().x(), animation_offset());
121 }
122 }
123
124 ////////////////////////////////////////////////////////////////////////////////
91 // DropDownBarView, protected: 125 // DropDownBarView, protected:
92 126
93 void DropdownBarView::SetBackground(const gfx::ImageSkia* left_alpha_mask, 127 void DropdownBarView::SetBackground(const gfx::ImageSkia* left_alpha_mask,
94 const gfx::ImageSkia* right_alpha_mask) { 128 const gfx::ImageSkia* right_alpha_mask) {
95 set_background(new DropdownBackground(host()->browser_view(), left_alpha_mask, 129 set_background(new DropdownBackground(host()->browser_view(), left_alpha_mask,
96 right_alpha_mask)); 130 right_alpha_mask));
97 } 131 }
98 132
99 void DropdownBarView::SetBorderFromIds(int left_border_image_id, 133 void DropdownBarView::SetBorderFromIds(int left_border_image_id,
100 int middle_border_image_id, 134 int middle_border_image_id,
101 int right_border_image_id) { 135 int right_border_image_id) {
102 int border_image_ids[3] = {left_border_image_id, middle_border_image_id, 136 int border_image_ids[3] = {left_border_image_id, middle_border_image_id,
103 right_border_image_id}; 137 right_border_image_id};
104 SetBorder(views::Border::CreateBorderPainter( 138 SetBorder(views::Border::CreateBorderPainter(
105 new views::HorizontalPainter(border_image_ids), gfx::Insets())); 139 new views::HorizontalPainter(border_image_ids), gfx::Insets()));
106 } 140 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698