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

Issue 2744463002: Add VectorIconButton functionality to ImageButton. (Closed)

Created:
3 years, 9 months ago by Bret
Modified:
3 years, 9 months ago
CC:
chromium-reviews, asanka, msramek+watch_chromium.org, yusukes+watch_chromium.org, dcheng, markusheintz_, miu+watch_chromium.org, extensions-reviews_chromium.org, msw+watch_chromium.org, awdf+watch_chromium.org, raymes+watch_chromium.org, dbeam+watch-downloads_chromium.org, nona+watch_chromium.org, chromium-apps-reviews_chromium.org, vabr+watchlistpasswordmanager_chromium.org, Peter Beverloo, mlamouri+watch-notifications_chromium.org, hcarmona+bubble_chromium.org, gcasto+watchlist_chromium.org, bruthig+ink_drop_chromium.org, rouslan+bubble_chromium.org, groby+bubble_chromium.org, tfarina, shuchen+watch_chromium.org, James Su
Target Ref:
refs/heads/master
Project:
chromium
Visibility:
Public.

Description

Move VectorIconButton functionality into static utilities. There are only a few users of VectorIconButton, and its hard-coded nature means it is not very flexible. This patch moves its functionality into two static utilities, one which creates an ImageButton with the existing vector button styling, and another that updates the ImageButton's images from an icon. The owner classes are now responsible for updating the styling if the theme changes. BUG=691895 Review-Url: https://codereview.chromium.org/2744463002 Cr-Commit-Position: refs/heads/master@{#458601} Committed: https://chromium.googlesource.com/chromium/src/+/b7f329f1bcb344b270da73f0ef23650198886a0f

Patch Set 1 #

Patch Set 2 : minor edits #

Patch Set 3 : fix button_example #

Patch Set 4 : fix cros build #

Total comments: 9

Patch Set 5 : WIP: use observer #

Total comments: 30

Patch Set 6 : wip: address high-level comments #

Total comments: 1

Patch Set 7 : use static utility #

Patch Set 8 : tests #

Total comments: 24

Patch Set 9 : address comments #

Patch Set 10 : comments 2 #

Patch Set 11 : fix typo in tests #

Patch Set 12 : fix cros build #

Total comments: 2

Patch Set 13 : check details #

Unified diffs Side-by-side diffs Delta from patch set Stats (+248 lines, -296 lines) Patch
M chrome/browser/ui/views/apps/app_info_dialog/app_info_dialog_container.cc View 1 2 3 4 5 6 7 8 9 10 11 4 chunks +5 lines, -6 lines 0 comments Download
M chrome/browser/ui/views/download/download_item_view.h View 1 2 3 4 5 6 7 8 9 8 chunks +16 lines, -13 lines 0 comments Download
M chrome/browser/ui/views/download/download_item_view.cc View 1 2 3 4 5 6 7 8 9 10 11 12 7 chunks +23 lines, -27 lines 0 comments Download
M chrome/browser/ui/views/download/download_shelf_view.h View 1 2 3 4 5 6 7 8 5 chunks +11 lines, -12 lines 0 comments Download
M chrome/browser/ui/views/download/download_shelf_view.cc View 1 2 3 4 5 6 7 8 5 chunks +7 lines, -9 lines 0 comments Download
M chrome/browser/ui/views/find_bar_view.h View 1 2 3 4 5 6 6 chunks +9 lines, -12 lines 0 comments Download
M chrome/browser/ui/views/find_bar_view.cc View 1 2 3 4 5 6 7 8 6 chunks +13 lines, -15 lines 0 comments Download
M chrome/browser/ui/views/infobars/infobar_view.h View 1 2 3 4 5 6 3 chunks +4 lines, -6 lines 0 comments Download
M chrome/browser/ui/views/infobars/infobar_view.cc View 1 2 3 4 5 6 7 8 3 chunks +4 lines, -7 lines 0 comments Download
M chrome/browser/ui/views/payments/editor_view_controller.h View 1 2 3 4 5 6 1 chunk +0 lines, -1 line 0 comments Download
M chrome/browser/ui/views/payments/payment_request_sheet_controller.h View 1 2 3 4 5 6 3 chunks +3 lines, -4 lines 0 comments Download
M chrome/browser/ui/views/payments/payment_request_views_util.h View 1 2 3 4 5 6 7 8 2 chunks +2 lines, -2 lines 0 comments Download
M chrome/browser/ui/views/payments/payment_request_views_util.cc View 1 2 3 4 5 6 7 8 9 3 chunks +5 lines, -4 lines 0 comments Download
M ui/views/BUILD.gn View 1 2 3 4 5 6 7 8 4 chunks +4 lines, -4 lines 0 comments Download
M ui/views/animation/ink_drop_host_view.h View 1 2 3 4 5 6 2 chunks +9 lines, -9 lines 0 comments Download
M ui/views/bubble/bubble_frame_view.h View 1 2 3 4 5 6 5 chunks +6 lines, -7 lines 0 comments Download
M ui/views/bubble/bubble_frame_view.cc View 1 2 3 4 5 6 7 8 9 2 chunks +6 lines, -6 lines 0 comments Download
M ui/views/controls/button/image_button.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +2 lines, -0 lines 0 comments Download
A ui/views/controls/button/image_button_factory.h View 1 2 3 4 5 6 7 8 9 1 chunk +35 lines, -0 lines 0 comments Download
A ui/views/controls/button/image_button_factory.cc View 1 2 3 4 5 6 7 8 1 chunk +43 lines, -0 lines 0 comments Download
A ui/views/controls/button/image_button_factory_unittest.cc View 1 2 3 4 5 6 7 8 9 1 chunk +41 lines, -0 lines 0 comments Download
M ui/views/controls/button/vector_icon_button.h View 1 2 3 4 5 6 1 chunk +0 lines, -50 lines 0 comments Download
M ui/views/controls/button/vector_icon_button.cc View 1 2 3 4 5 6 1 chunk +0 lines, -64 lines 0 comments Download
D ui/views/controls/button/vector_icon_button_delegate.h View 5 6 1 chunk +0 lines, -25 lines 0 comments Download
D ui/views/controls/button/vector_icon_button_delegate.cc View 5 6 1 chunk +0 lines, -13 lines 0 comments Download

Messages

Total messages: 72 (28 generated)
Bret
PTAL pkasting and sky
3 years, 9 months ago (2017-03-09 00:53:54 UTC) #3
sky
+estade and bruthig in case they are interested I'm definitely interested in having a *lot* ...
3 years, 9 months ago (2017-03-09 04:05:02 UTC) #17
bruthig
https://codereview.chromium.org/2744463002/diff/50001/ui/views/animation/ink_drop_host_view.cc File ui/views/animation/ink_drop_host_view.cc (right): https://codereview.chromium.org/2744463002/diff/50001/ui/views/animation/ink_drop_host_view.cc#newcode301 ui/views/animation/ink_drop_host_view.cc:301: return gfx::Size(std::min(size().width(), kDefaultInkDropSize), |kDefaultInkDropSize| is somewhat of an arbitrary ...
3 years, 9 months ago (2017-03-09 05:04:42 UTC) #18
sky
On 2017/03/09 05:04:42, bruthig wrote: > https://codereview.chromium.org/2744463002/diff/50001/ui/views/animation/ink_drop_host_view.cc > File ui/views/animation/ink_drop_host_view.cc (right): > > https://codereview.chromium.org/2744463002/diff/50001/ui/views/animation/ink_drop_host_view.cc#newcode301 > ...
3 years, 9 months ago (2017-03-09 05:11:27 UTC) #19
Peter Kasting
It sounds like there's some significant interface design discussion ongoing, so maybe I'll stay out ...
3 years, 9 months ago (2017-03-09 06:21:05 UTC) #20
sky
As to an interface like ImageProvider. I would rather not expose that as a core ...
3 years, 9 months ago (2017-03-09 20:44:07 UTC) #21
Bret
I pondered the comments and if we want to avoid giving ImageButton knowledge of vector ...
3 years, 9 months ago (2017-03-09 22:32:37 UTC) #22
Peter Kasting
On 2017/03/09 22:32:37, Bret Sepulveda wrote: > I pondered the comments and if we want ...
3 years, 9 months ago (2017-03-09 22:36:39 UTC) #23
sky
I really want fewer button classes, but I want it done in such a way ...
3 years, 9 months ago (2017-03-09 23:35:33 UTC) #24
Bret
> Assuming we refactor the button classes eventually, which route makes it easier > to ...
3 years, 9 months ago (2017-03-09 23:36:49 UTC) #25
Bret
Upon further reflection, I think I'll revert to refactoring VectorIconButton instead. That should be a ...
3 years, 9 months ago (2017-03-10 01:43:47 UTC) #26
bruthig
https://codereview.chromium.org/2744463002/diff/50001/ui/views/animation/ink_drop_host_view.cc File ui/views/animation/ink_drop_host_view.cc (right): https://codereview.chromium.org/2744463002/diff/50001/ui/views/animation/ink_drop_host_view.cc#newcode301 ui/views/animation/ink_drop_host_view.cc:301: return gfx::Size(std::min(size().width(), kDefaultInkDropSize), On 2017/03/09 22:32:37, Bret Sepulveda wrote: ...
3 years, 9 months ago (2017-03-10 14:35:25 UTC) #27
Bret
sky@ and bruthig@, PTAL at work-in-progress patchset 5. I played around with VectorIconButton and started ...
3 years, 9 months ago (2017-03-11 01:25:35 UTC) #28
bruthig
I will let sky@ comment further as OWNER but I'm liking the way this is ...
3 years, 9 months ago (2017-03-13 15:19:49 UTC) #29
sky
I like it! https://codereview.chromium.org/2744463002/diff/70001/ui/views/controls/button/vector_icon_image_button_observer.h File ui/views/controls/button/vector_icon_image_button_observer.h (right): https://codereview.chromium.org/2744463002/diff/70001/ui/views/controls/button/vector_icon_image_button_observer.h#newcode23 ui/views/controls/button/vector_icon_image_button_observer.h:23: class VIEWS_EXPORT VectorIconImageButtonObserver : public ViewObserver ...
3 years, 9 months ago (2017-03-13 16:21:57 UTC) #30
Bret
No new patchset, just looking for input on potential directions I could take this. https://codereview.chromium.org/2744463002/diff/70001/ui/views/controls/button/vector_icon_image_button_observer.cc ...
3 years, 9 months ago (2017-03-15 00:07:13 UTC) #31
Evan Stade
https://codereview.chromium.org/2744463002/diff/70001/ui/views/controls/button/image_button.cc File ui/views/controls/button/image_button.cc (right): https://codereview.chromium.org/2744463002/diff/70001/ui/views/controls/button/image_button.cc#newcode99 ui/views/controls/button/image_button.cc:99: void ImageButton::SetPadding(const gfx::Insets& padding) { What is the motivation ...
3 years, 9 months ago (2017-03-15 15:04:02 UTC) #32
sky
https://codereview.chromium.org/2744463002/diff/70001/ui/views/controls/button/vector_icon_image_button_observer.cc File ui/views/controls/button/vector_icon_image_button_observer.cc (right): https://codereview.chromium.org/2744463002/diff/70001/ui/views/controls/button/vector_icon_image_button_observer.cc#newcode44 ui/views/controls/button/vector_icon_image_button_observer.cc:44: void VectorIconImageButtonObserver::UpdateButtonImages(View* view) { On 2017/03/15 00:07:13, Bret Sepulveda ...
3 years, 9 months ago (2017-03-15 15:05:11 UTC) #33
bruthig
https://codereview.chromium.org/2744463002/diff/70001/ui/views/controls/button/vector_icon_image_button_observer.cc File ui/views/controls/button/vector_icon_image_button_observer.cc (right): https://codereview.chromium.org/2744463002/diff/70001/ui/views/controls/button/vector_icon_image_button_observer.cc#newcode44 ui/views/controls/button/vector_icon_image_button_observer.cc:44: void VectorIconImageButtonObserver::UpdateButtonImages(View* view) { > You shouldn't need this. ...
3 years, 9 months ago (2017-03-15 15:53:20 UTC) #34
Evan Stade
https://codereview.chromium.org/2744463002/diff/70001/ui/views/controls/button/vector_icon_image_button_observer.h File ui/views/controls/button/vector_icon_image_button_observer.h (right): https://codereview.chromium.org/2744463002/diff/70001/ui/views/controls/button/vector_icon_image_button_observer.h#newcode23 ui/views/controls/button/vector_icon_image_button_observer.h:23: class VIEWS_EXPORT VectorIconImageButtonObserver : public ViewObserver { On 2017/03/15 ...
3 years, 9 months ago (2017-03-15 16:59:25 UTC) #35
sky
https://codereview.chromium.org/2744463002/diff/70001/ui/views/controls/button/vector_icon_image_button_observer.cc File ui/views/controls/button/vector_icon_image_button_observer.cc (right): https://codereview.chromium.org/2744463002/diff/70001/ui/views/controls/button/vector_icon_image_button_observer.cc#newcode44 ui/views/controls/button/vector_icon_image_button_observer.cc:44: void VectorIconImageButtonObserver::UpdateButtonImages(View* view) { On 2017/03/15 15:53:20, bruthig wrote: ...
3 years, 9 months ago (2017-03-15 17:01:54 UTC) #36
Peter Kasting
https://codereview.chromium.org/2744463002/diff/70001/ui/views/controls/button/vector_icon_image_button_observer.h File ui/views/controls/button/vector_icon_image_button_observer.h (right): https://codereview.chromium.org/2744463002/diff/70001/ui/views/controls/button/vector_icon_image_button_observer.h#newcode23 ui/views/controls/button/vector_icon_image_button_observer.h:23: class VIEWS_EXPORT VectorIconImageButtonObserver : public ViewObserver { On 2017/03/15 ...
3 years, 9 months ago (2017-03-15 18:03:02 UTC) #37
Peter Kasting
https://codereview.chromium.org/2744463002/diff/70001/ui/views/controls/button/vector_icon_image_button_observer.h File ui/views/controls/button/vector_icon_image_button_observer.h (right): https://codereview.chromium.org/2744463002/diff/70001/ui/views/controls/button/vector_icon_image_button_observer.h#newcode23 ui/views/controls/button/vector_icon_image_button_observer.h:23: class VIEWS_EXPORT VectorIconImageButtonObserver : public ViewObserver { On 2017/03/15 ...
3 years, 9 months ago (2017-03-15 18:16:46 UTC) #38
bruthig
https://codereview.chromium.org/2744463002/diff/70001/ui/views/controls/button/vector_icon_image_button_observer.cc File ui/views/controls/button/vector_icon_image_button_observer.cc (right): https://codereview.chromium.org/2744463002/diff/70001/ui/views/controls/button/vector_icon_image_button_observer.cc#newcode44 ui/views/controls/button/vector_icon_image_button_observer.cc:44: void VectorIconImageButtonObserver::UpdateButtonImages(View* view) { On 2017/03/15 17:01:54, sky wrote: ...
3 years, 9 months ago (2017-03-15 21:41:21 UTC) #39
Evan Stade
https://codereview.chromium.org/2744463002/diff/70001/ui/views/controls/button/vector_icon_image_button_observer.h File ui/views/controls/button/vector_icon_image_button_observer.h (right): https://codereview.chromium.org/2744463002/diff/70001/ui/views/controls/button/vector_icon_image_button_observer.h#newcode23 ui/views/controls/button/vector_icon_image_button_observer.h:23: class VIEWS_EXPORT VectorIconImageButtonObserver : public ViewObserver { On 2017/03/15 ...
3 years, 9 months ago (2017-03-15 22:46:20 UTC) #40
Evan Stade
> I think we should just be folding the functionality into ImageButton, i.e. > ImageButton::SetVectorIcon(gfx::VectorIcon, ...
3 years, 9 months ago (2017-03-15 22:50:43 UTC) #41
Bret
I uploaded a new WIP patchset, let me know what you think. The main changes ...
3 years, 9 months ago (2017-03-15 23:39:20 UTC) #42
sky
https://codereview.chromium.org/2744463002/diff/70001/ui/views/controls/button/vector_icon_image_button_observer.cc File ui/views/controls/button/vector_icon_image_button_observer.cc (right): https://codereview.chromium.org/2744463002/diff/70001/ui/views/controls/button/vector_icon_image_button_observer.cc#newcode44 ui/views/controls/button/vector_icon_image_button_observer.cc:44: void VectorIconImageButtonObserver::UpdateButtonImages(View* view) { On 2017/03/15 23:39:19, Bret Sepulveda ...
3 years, 9 months ago (2017-03-15 23:48:04 UTC) #43
Evan Stade
On 2017/03/15 23:39:20, Bret Sepulveda wrote: > To estade's suggestion, I added ImageButton::SetVectorIcon in patchset ...
3 years, 9 months ago (2017-03-16 00:01:20 UTC) #44
sky
On 2017/03/15 22:46:20, Evan Stade wrote: > https://codereview.chromium.org/2744463002/diff/70001/ui/views/controls/button/vector_icon_image_button_observer.h > File ui/views/controls/button/vector_icon_image_button_observer.h (right): > > https://codereview.chromium.org/2744463002/diff/70001/ui/views/controls/button/vector_icon_image_button_observer.h#newcode23 ...
3 years, 9 months ago (2017-03-16 04:12:00 UTC) #45
sky
https://codereview.chromium.org/2744463002/diff/90001/ui/views/controls/button/image_button.h File ui/views/controls/button/image_button.h (right): https://codereview.chromium.org/2744463002/diff/90001/ui/views/controls/button/image_button.h#newcode76 ui/views/controls/button/image_button.h:76: void SetPadding(const gfx::Insets& padding); SetPadding makes it sound like ...
3 years, 9 months ago (2017-03-16 04:12:43 UTC) #46
Evan Stade
On 2017/03/16 04:12:00, sky wrote: > On 2017/03/15 22:46:20, Evan Stade wrote: > > > ...
3 years, 9 months ago (2017-03-16 14:12:36 UTC) #47
sky
Yes!!! I would probably put the function in a separate file, but that's a small ...
3 years, 9 months ago (2017-03-16 16:26:09 UTC) #48
Bret
PTAL at patchset 8, which uses Evan's idea. I removed the harmony-related changes and updated ...
3 years, 9 months ago (2017-03-17 01:52:31 UTC) #50
bruthig
net negative CL for a big win!! LGTM
3 years, 9 months ago (2017-03-17 13:31:38 UTC) #51
Evan Stade
lgtm with nits https://codereview.chromium.org/2744463002/diff/130001/chrome/browser/ui/views/download/download_item_view.cc File chrome/browser/ui/views/download/download_item_view.cc (right): https://codereview.chromium.org/2744463002/diff/130001/chrome/browser/ui/views/download/download_item_view.cc#newcode502 chrome/browser/ui/views/download/download_item_view.cc:502: UpdateDropdownButton(); this may not be necessary ...
3 years, 9 months ago (2017-03-17 13:54:45 UTC) #52
sky
Nice cleanup! LGTM https://codereview.chromium.org/2744463002/diff/130001/ui/views/controls/button/image_button_util.h File ui/views/controls/button/image_button_util.h (right): https://codereview.chromium.org/2744463002/diff/130001/ui/views/controls/button/image_button_util.h#newcode5 ui/views/controls/button/image_button_util.h:5: #ifndef UI_VIEWS_CONTROLS_BUTTON_IMAGE_BUTTON_UTIL_H_ On 2017/03/17 13:54:44, Evan ...
3 years, 9 months ago (2017-03-17 15:38:12 UTC) #53
Bret
https://codereview.chromium.org/2744463002/diff/130001/chrome/browser/ui/views/download/download_item_view.cc File chrome/browser/ui/views/download/download_item_view.cc (right): https://codereview.chromium.org/2744463002/diff/130001/chrome/browser/ui/views/download/download_item_view.cc#newcode502 chrome/browser/ui/views/download/download_item_view.cc:502: UpdateDropdownButton(); On 2017/03/17 13:54:44, Evan Stade wrote: > this ...
3 years, 9 months ago (2017-03-17 23:41:42 UTC) #54
Evan Stade
https://codereview.chromium.org/2744463002/diff/130001/chrome/browser/ui/views/download/download_item_view.cc File chrome/browser/ui/views/download/download_item_view.cc (right): https://codereview.chromium.org/2744463002/diff/130001/chrome/browser/ui/views/download/download_item_view.cc#newcode502 chrome/browser/ui/views/download/download_item_view.cc:502: UpdateDropdownButton(); On 2017/03/17 23:41:41, Bret Sepulveda wrote: > On ...
3 years, 9 months ago (2017-03-18 00:27:58 UTC) #55
Bret
I'll submit this when I get in next week if there are no more comments. ...
3 years, 9 months ago (2017-03-18 20:12:53 UTC) #56
Evan Stade
https://codereview.chromium.org/2744463002/diff/210001/chrome/browser/ui/views/download/download_item_view.cc File chrome/browser/ui/views/download/download_item_view.cc (right): https://codereview.chromium.org/2744463002/diff/210001/chrome/browser/ui/views/download/download_item_view.cc#newcode505 chrome/browser/ui/views/download/download_item_view.cc:505: UpdateDropdownButton(); nit: you should check the details, e.g. https://cs.chromium.org/chromium/src/ash/common/shelf/shelf_view.cc?rcl=34fb331c43ae36ce0a10705f6e5e93f0efbba87d&l=1458
3 years, 9 months ago (2017-03-20 16:34:47 UTC) #65
Bret
https://codereview.chromium.org/2744463002/diff/210001/chrome/browser/ui/views/download/download_item_view.cc File chrome/browser/ui/views/download/download_item_view.cc (right): https://codereview.chromium.org/2744463002/diff/210001/chrome/browser/ui/views/download/download_item_view.cc#newcode505 chrome/browser/ui/views/download/download_item_view.cc:505: UpdateDropdownButton(); On 2017/03/20 16:34:46, Evan Stade wrote: > nit: ...
3 years, 9 months ago (2017-03-21 22:14:24 UTC) #66
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2744463002/230001
3 years, 9 months ago (2017-03-21 22:15:09 UTC) #69
commit-bot: I haz the power
3 years, 9 months ago (2017-03-21 23:23:58 UTC) #72
Message was sent while issue was closed.
Committed patchset #13 (id:230001) as
https://chromium.googlesource.com/chromium/src/+/b7f329f1bcb344b270da73f0ef23...

Powered by Google App Engine
This is Rietveld 408576698