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

Unified Diff: chrome/browser/ui/views/location_bar/location_bar_view.cc

Issue 11360144: Converts some of the omnibox related classes to support multiple (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 1 month 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
Index: chrome/browser/ui/views/location_bar/location_bar_view.cc
diff --git a/chrome/browser/ui/views/location_bar/location_bar_view.cc b/chrome/browser/ui/views/location_bar/location_bar_view.cc
index eaf2d4d1ce96ca2e1d3eb7614682c3531589a3d4..205c88fcfbc982fd3e65884f04b1929632360936 100644
--- a/chrome/browser/ui/views/location_bar/location_bar_view.cc
+++ b/chrome/browser/ui/views/location_bar/location_bar_view.cc
@@ -78,6 +78,10 @@
#include "ui/views/controls/label.h"
#include "ui/views/widget/widget.h"
+#if defined(OS_WIN)
+#include "ui/base/native_theme/native_theme_win.h"
+#endif
+
#if defined(OS_WIN) && !defined(USE_AURA)
#include "chrome/browser/ui/views/omnibox/omnibox_view_win.h"
#endif
@@ -88,6 +92,7 @@
#endif
#if defined(USE_AURA)
+#include "ui/base/native_theme/native_theme_aura.h"
#include "ui/compositor/layer.h"
#include "ui/compositor/scoped_layer_animation_settings.h"
#endif
@@ -240,6 +245,10 @@ LocationBarView::~LocationBarView() {
}
void LocationBarView::Init() {
+ // We need to be in a Widget, otherwise GetNativeTheme() may change and we're
+ // not prepared for that.
+ DCHECK(GetWidget());
+
ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance();
if (mode_ == POPUP) {
font_ = rb.GetFont(ui::ResourceBundle::BaseFont);
@@ -258,9 +267,12 @@ void LocationBarView::Init() {
location_icon_view_->SetVisible(true);
location_icon_view_->set_drag_controller(this);
+ const ui::NativeTheme* theme = GetNativeTheme();
+
ev_bubble_view_ =
new EVBubbleView(kEVBubbleBackgroundImages, IDR_OMNIBOX_HTTPS_VALID,
- GetColor(ToolbarModel::EV_SECURE, SECURITY_TEXT), this);
+ GetColor(theme, ToolbarModel::EV_SECURE, SECURITY_TEXT),
+ this);
AddChildView(ev_bubble_view_);
ev_bubble_view_->SetVisible(false);
ev_bubble_view_->set_drag_controller(this);
@@ -276,7 +288,7 @@ void LocationBarView::Init() {
selected_keyword_view_ = new SelectedKeywordView(
kSelectedKeywordBackgroundImages, IDR_KEYWORD_SEARCH_MAGNIFIER,
- GetColor(ToolbarModel::NONE, TEXT),
+ GetColor(theme, ToolbarModel::NONE, TEXT),
profile_);
AddChildView(selected_keyword_view_);
selected_keyword_view_->SetFont(font_);
@@ -292,7 +304,7 @@ void LocationBarView::Init() {
new ContentSettingImageView(static_cast<ContentSettingsType>(i),
kCSBubbleBackgroundImages, this,
font_,
- GetColor(ToolbarModel::NONE, TEXT));
+ GetColor(theme, ToolbarModel::NONE, TEXT));
content_setting_views_.push_back(content_blocked_view);
AddChildView(content_blocked_view);
content_blocked_view->SetVisible(false);
@@ -304,7 +316,7 @@ void LocationBarView::Init() {
web_intents_button_view_ =
new WebIntentsButtonView(this, kWIBubbleBackgroundImages, font_,
- GetColor(ToolbarModel::NONE, TEXT));
+ GetColor(theme, ToolbarModel::NONE, TEXT));
AddChildView(web_intents_button_view_);
open_pdf_in_reader_view_ = new OpenPDFInReaderView(this);
@@ -343,24 +355,34 @@ bool LocationBarView::IsInitialized() const {
}
// static
-SkColor LocationBarView::GetColor(ToolbarModel::SecurityLevel security_level,
+SkColor LocationBarView::GetColor(const ui::NativeTheme* theme,
+ ToolbarModel::SecurityLevel security_level,
ColorKind kind) {
- switch (kind) {
#if defined(OS_WIN)
- case BACKGROUND: return color_utils::GetSysSkColor(COLOR_WINDOW);
- case TEXT: return color_utils::GetSysSkColor(COLOR_WINDOWTEXT);
- case SELECTED_TEXT: return color_utils::GetSysSkColor(COLOR_HIGHLIGHTTEXT);
-#else
+ if (theme == ui::NativeThemeWin::instance()) {
+ switch (kind) {
+ case BACKGROUND:
+ return color_utils::GetSysSkColor(COLOR_WINDOW);
+ case TEXT:
+ return color_utils::GetSysSkColor(COLOR_WINDOWTEXT);
+ case SELECTED_TEXT:
+ return color_utils::GetSysSkColor(COLOR_HIGHLIGHTTEXT);
+ default:
+ // Other cases are handled below.
+ break;
+ }
+ }
+#endif
+ switch (kind) {
// TODO(beng): source from theme provider.
case BACKGROUND: return kOmniboxBackgroundColor;
case TEXT: return SK_ColorBLACK;
case SELECTED_TEXT: return SK_ColorWHITE;
-#endif
case DEEMPHASIZED_TEXT:
return color_utils::AlphaBlend(
- GetColor(security_level, TEXT),
- GetColor(security_level, BACKGROUND),
+ GetColor(theme, security_level, TEXT),
+ GetColor(theme, security_level, BACKGROUND),
128);
case SECURITY_TEXT: {
@@ -372,7 +394,7 @@ SkColor LocationBarView::GetColor(ToolbarModel::SecurityLevel security_level,
break;
case ToolbarModel::SECURITY_WARNING:
- return GetColor(security_level, DEEMPHASIZED_TEXT);
+ return GetColor(theme, security_level, DEEMPHASIZED_TEXT);
break;
case ToolbarModel::SECURITY_ERROR:
@@ -381,15 +403,16 @@ SkColor LocationBarView::GetColor(ToolbarModel::SecurityLevel security_level,
default:
NOTREACHED();
- return GetColor(security_level, TEXT);
+ return GetColor(theme, security_level, TEXT);
}
- return color_utils::GetReadableColor(color, GetColor(security_level,
+ return color_utils::GetReadableColor(color, GetColor(theme,
Peter Kasting 2012/11/08 18:55:47 Nit: Or return color_utils::GetReadableColo
+ security_level,
BACKGROUND));
}
default:
NOTREACHED();
- return GetColor(security_level, TEXT);
+ return GetColor(theme, security_level, TEXT);
}
}
@@ -613,7 +636,8 @@ void LocationBarView::SetInstantSuggestion(const string16& text) {
suggested_text_view_->SetHorizontalAlignment(gfx::ALIGN_LEFT);
suggested_text_view_->SetAutoColorReadabilityEnabled(false);
suggested_text_view_->SetEnabledColor(LocationBarView::GetColor(
- ToolbarModel::NONE, LocationBarView::DEEMPHASIZED_TEXT));
+ GetNativeTheme(), ToolbarModel::NONE,
+ LocationBarView::DEEMPHASIZED_TEXT));
suggested_text_view_->SetText(text);
suggested_text_view_->SetFont(location_entry_->GetFont());
AddChildView(suggested_text_view_);
@@ -970,7 +994,7 @@ void LocationBarView::OnPaint(gfx::Canvas* canvas) {
// OmniboxPopupContentsView::OnPaint()).
gfx::Rect bounds(GetContentsBounds());
bounds.Inset(0, kVerticalEdgeThickness);
- SkColor color(GetColor(ToolbarModel::NONE, BACKGROUND));
+ SkColor color(GetColor(GetNativeTheme(), ToolbarModel::NONE, BACKGROUND));
if (mode_ == NORMAL) {
SkPaint paint;
paint.setStyle(SkPaint::kFill_Style);
@@ -1272,8 +1296,9 @@ void LocationBarView::PaintPageActionBackgrounds(gfx::Canvas* canvas) {
const int32 tab_id = SessionID::IdForTab(tab_contents->web_contents());
const ToolbarModel::SecurityLevel security_level = model_->GetSecurityLevel();
- const SkColor text_color = GetColor(security_level, TEXT);
- const SkColor background_color = GetColor(security_level, BACKGROUND);
+ const ui::NativeTheme* theme = GetNativeTheme();
+ const SkColor text_color = GetColor(theme, security_level, TEXT);
+ const SkColor background_color = GetColor(theme, security_level, BACKGROUND);
for (PageActionViews::const_iterator
page_action_view = page_action_views_.begin();

Powered by Google App Engine
This is Rietveld 408576698