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

Unified Diff: ui/views/controls/menu/menu_image_util.cc

Issue 25144002: views: Make sure menu checks and submenu arrows have high contrast even when selected. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: sync Created 7 years, 3 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/views/controls/menu/menu_image_util.h ('k') | ui/views/controls/menu/menu_item_view.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/views/controls/menu/menu_image_util.cc
diff --git a/ui/views/controls/menu/menu_image_util.cc b/ui/views/controls/menu/menu_image_util.cc
index 2a881da1d2465693f5f640b71fa13eb9e521bbe4..2a585cb2dcb5cdd6a58eda4e6de319fe1b3f1d33 100644
--- a/ui/views/controls/menu/menu_image_util.cc
+++ b/ui/views/controls/menu/menu_image_util.cc
@@ -105,15 +105,15 @@ gfx::ImageSkia* CreateRadioButtonImage(bool selected) {
class SubmenuArrowImageSource : public gfx::CanvasImageSource {
public:
- SubmenuArrowImageSource()
- : gfx::CanvasImageSource(GetSubmenuArrowSize(), false) {
- }
+ SubmenuArrowImageSource(int image_id)
+ : gfx::CanvasImageSource(ui::ResourceBundle::GetSharedInstance().
+ GetImageNamed(image_id).ToImageSkia()->size(), false),
+ image_id_(image_id) {}
virtual ~SubmenuArrowImageSource() {}
virtual void Draw(gfx::Canvas* canvas) OVERRIDE {
ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance();
- const gfx::ImageSkia* r =
- rb.GetImageNamed(IDR_MENU_HIERARCHY_ARROW).ToImageSkia();
+ const gfx::ImageSkia* r = rb.GetImageNamed(image_id_).ToImageSkia();
canvas->Scale(-1, 1);
canvas->DrawImageInt(*r, - r->width(), 0);
}
@@ -124,38 +124,52 @@ class SubmenuArrowImageSource : public gfx::CanvasImageSource {
.GetImageNamed(IDR_MENU_HIERARCHY_ARROW).ToImageSkia()->size();
}
+ int image_id_;
+
DISALLOW_COPY_AND_ASSIGN(SubmenuArrowImageSource);
};
-gfx::ImageSkia* GetRtlSubmenuArrowImage() {
+gfx::ImageSkia GetRtlSubmenuArrowImage(bool rtl,
+ bool dark_background) {
+ int image_id = dark_background ? IDR_MENU_HIERARCHY_ARROW_DARK_BACKGROUND :
+ IDR_MENU_HIERARCHY_ARROW;
+
+ if (!rtl) {
+ return ui::ResourceBundle::GetSharedInstance().GetImageNamed(image_id).
+ AsImageSkia();
+ }
+
static gfx::ImageSkia* kRtlArrow = NULL;
- if (!kRtlArrow) {
- SubmenuArrowImageSource* source = new SubmenuArrowImageSource();
- kRtlArrow = new gfx::ImageSkia(source, source->size());
+ static gfx::ImageSkia* kRtlArrowDarkBg = NULL;
+ gfx::ImageSkia** image = dark_background ? &kRtlArrowDarkBg : &kRtlArrow;
+
+ if (!*image) {
+ SubmenuArrowImageSource* source = new SubmenuArrowImageSource(image_id);
+ *image = new gfx::ImageSkia(source, source->size());
}
- return kRtlArrow;
+
+ return **image;
}
} // namespace
namespace views {
-const gfx::ImageSkia* GetMenuCheckImage() {
- return ui::ResourceBundle::GetSharedInstance().GetImageNamed(
- IDR_MENU_CHECK_CHECKED).ToImageSkia();
+gfx::ImageSkia GetMenuCheckImage(bool dark_background) {
+ int image_id = dark_background ? IDR_MENU_CHECK_CHECKED_DARK_BACKGROUND :
+ IDR_MENU_CHECK_CHECKED;
+ return ui::ResourceBundle::GetSharedInstance().GetImageNamed(image_id).
+ AsImageSkia();
}
-const gfx::ImageSkia* GetRadioButtonImage(bool selected) {
+gfx::ImageSkia GetRadioButtonImage(bool selected) {
int image_id = selected ? IDR_MENU_RADIO_SELECTED : IDR_MENU_RADIO_EMPTY;
- return ui::ResourceBundle::GetSharedInstance().GetImageNamed(
- image_id).ToImageSkia();
+ return ui::ResourceBundle::GetSharedInstance().GetImageNamed(image_id).
+ AsImageSkia();
}
-const gfx::ImageSkia* GetSubmenuArrowImage() {
- ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance();
- return base::i18n::IsRTL()
- ? GetRtlSubmenuArrowImage()
- : rb.GetImageNamed(IDR_MENU_HIERARCHY_ARROW).ToImageSkia();
+gfx::ImageSkia GetSubmenuArrowImage(bool dark_background) {
+ return GetRtlSubmenuArrowImage(base::i18n::IsRTL(), dark_background);
}
} // namespace views
« no previous file with comments | « ui/views/controls/menu/menu_image_util.h ('k') | ui/views/controls/menu/menu_item_view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698