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

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

Issue 1416683003: MD: Implement tab button for location bar's tab to search message (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: better string Created 5 years, 2 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 | « chrome/browser/ui/views/location_bar/keyword_hint_view.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/views/location_bar/keyword_hint_view.cc
diff --git a/chrome/browser/ui/views/location_bar/keyword_hint_view.cc b/chrome/browser/ui/views/location_bar/keyword_hint_view.cc
index eb28b33838e924e319a8e58161846448999f90cb..b4f060caf8b2006476e741496dcc056bbb858425 100644
--- a/chrome/browser/ui/views/location_bar/keyword_hint_view.cc
+++ b/chrome/browser/ui/views/location_bar/keyword_hint_view.cc
@@ -16,24 +16,71 @@
#include "components/search_engines/template_url_service.h"
#include "grit/theme_resources.h"
#include "ui/base/l10n/l10n_util.h"
+#include "ui/base/resource/material_design/material_design_controller.h"
#include "ui/base/resource/resource_bundle.h"
#include "ui/gfx/canvas.h"
+#include "ui/gfx/color_utils.h"
#include "ui/views/controls/image_view.h"
#include "ui/views/controls/label.h"
+namespace {
+
+class TabKeyImage : public views::View {
+ public:
+ TabKeyImage() {}
Peter Kasting 2015/10/29 03:48:43 Nit: Avoid inlining these methods even for classes
+
+ // views::View implementation
Peter Kasting 2015/10/29 03:48:43 Nit: Just "// views::View:"
+ gfx::Size GetPreferredSize() const override { return gfx::Size(34, 18); }
Peter Kasting 2015/10/29 03:48:43 We definitely shouldn't hardcode the width, and we
+
+ void OnPaint(gfx::Canvas* canvas) override {
Peter Kasting 2015/10/29 03:48:43 It seems like you probably want to SaveAndUnscale(
+ gfx::RectF round_rect_bounds(GetLocalBounds());
+ round_rect_bounds.Inset(0.5f, 0.5f);
+ SkScalar radius = SkIntToScalar(2);
Peter Kasting 2015/10/29 03:48:43 Does this match the EV/keyword search bubble corne
+ SkPaint paint;
+ paint.setAntiAlias(true);
+ paint.setStrokeWidth(1);
+ paint.setColor(
+ color_utils::DeriveDefaultIconColor(GetNativeTheme()->GetSystemColor(
+ ui::NativeTheme::kColorId_TextfieldDefaultColor)));
+ paint.setStyle(SkPaint::kStroke_Style);
+ canvas->sk_canvas()->drawRoundRect(gfx::RectFToSkRect(round_rect_bounds),
+ radius, radius, paint);
+
+ gfx::Rect text_bounds(GetLocalBounds());
+ const int kTopPadding = 3;
+ const int kBottomPadding = 2;
+ text_bounds.Inset(0, kTopPadding, 0, kBottomPadding);
Peter Kasting 2015/10/29 03:48:43 I'm concerned about this implementation with diffe
+ canvas->DrawStringRectWithFlags(
+ l10n_util::GetStringUTF16(IDS_TAB_KEY),
+ gfx::FontList().DeriveWithHeightUpperBound(text_bounds.height()),
+ paint.getColor(), text_bounds, gfx::Canvas::TEXT_ALIGN_CENTER);
+ }
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(TabKeyImage);
+};
+
+// Creates and returns a view for depicting the tab key.
+views::View* CreateTabKeyImage() {
Peter Kasting 2015/10/29 03:48:43 Nit: For clarity (that the caller is expected to t
+ if (ui::MaterialDesignController::IsModeMaterial())
+ return new TabKeyImage();
+
+ views::ImageView* tab = new views::ImageView();
+ tab->SetImage(ui::ResourceBundle::GetSharedInstance().GetImageSkiaNamed(
+ IDR_OMNIBOX_KEYWORD_HINT_TAB));
+ return tab;
+}
+
+} // namespace
KeywordHintView::KeywordHintView(Profile* profile,
const gfx::FontList& font_list,
SkColor text_color,
SkColor background_color)
- : profile_(profile),
- tab_image_(new views::ImageView()) {
+ : profile_(profile), tab_key_image_(CreateTabKeyImage()) {
leading_label_ =
CreateLabel(font_list, text_color, background_color);
- tab_image_->SetImage(
- ui::ResourceBundle::GetSharedInstance().GetImageSkiaNamed(
- IDR_OMNIBOX_KEYWORD_HINT_TAB));
- AddChildView(tab_image_);
+ AddChildView(tab_key_image_);
trailing_label_ =
CreateLabel(font_list, text_color, background_color);
}
@@ -68,28 +115,28 @@ void KeywordHintView::SetKeyword(const base::string16& keyword) {
gfx::Size KeywordHintView::GetPreferredSize() const {
// Height will be ignored by the LocationBarView.
return gfx::Size(leading_label_->GetPreferredSize().width() +
- tab_image_->GetPreferredSize().width() +
+ tab_key_image_->GetPreferredSize().width() +
trailing_label_->GetPreferredSize().width(),
0);
}
gfx::Size KeywordHintView::GetMinimumSize() const {
// Height will be ignored by the LocationBarView.
- return tab_image_->GetPreferredSize();
+ return tab_key_image_->GetPreferredSize();
}
void KeywordHintView::Layout() {
- int tab_width = tab_image_->GetPreferredSize().width();
- bool show_labels = (width() != tab_width);
+ gfx::Size tab_size = tab_key_image_->GetPreferredSize();
+ bool show_labels = (width() != tab_size.width());
gfx::Size leading_size(leading_label_->GetPreferredSize());
leading_label_->SetBounds(0, 0, show_labels ? leading_size.width() : 0,
height());
- tab_image_->SetBounds(leading_label_->bounds().right(), 0, tab_width,
- height());
+ tab_key_image_->SetBounds(leading_label_->bounds().right(),
+ (height() - tab_size.height()) / 2,
+ tab_size.width(), tab_size.height());
gfx::Size trailing_size(trailing_label_->GetPreferredSize());
- trailing_label_->SetBounds(tab_image_->bounds().right(), 0,
- show_labels ? trailing_size.width() : 0,
- height());
+ trailing_label_->SetBounds(tab_key_image_->bounds().right(), 0,
+ show_labels ? trailing_size.width() : 0, height());
}
const char* KeywordHintView::GetClassName() const {
« no previous file with comments | « chrome/browser/ui/views/location_bar/keyword_hint_view.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698