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

Side by Side Diff: chrome/browser/ui/views/location_bar/location_bar_view.cc

Issue 16286003: Increase omnibox size by 2 px. Increase nominal font size in omnibox to 16 px. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 7 years, 6 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 unified diff | Download patch | Annotate | Revision Log
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/location_bar/location_bar_view.h" 5 #include "chrome/browser/ui/views/location_bar/location_bar_view.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <map> 8 #include <map>
9 9
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
139 #endif 139 #endif
140 140
141 if (((*font_y_offset >= 0) && 141 if (((*font_y_offset >= 0) &&
142 ((*font_y_offset + font->GetHeight()) <= height)) || 142 ((*font_y_offset + font->GetHeight()) <= height)) ||
143 (font->GetFontSize() <= 1)) 143 (font->GetFontSize() <= 1))
144 return; 144 return;
145 *font = font->DeriveFont(-1); 145 *font = font->DeriveFont(-1);
146 } 146 }
147 } 147 }
148 148
149 // Height of the location bar's round corner region.
150 const int kBorderRoundCornerHeight = 5;
151 // Width of location bar's round corner region.
152 const int kBorderRoundCornerWidth = 4;
153 // Radius of the round corners inside the location bar.
154 const int kBorderCornerRadius = 2;
155
156 } // namespace 149 } // namespace
157 150
158 151
159 // LocationBarView ----------------------------------------------------------- 152 // LocationBarView -----------------------------------------------------------
160 153
161 // static 154 // static
162 const int LocationBarView::kNormalHorizontalEdgeThickness = 2; 155 const int LocationBarView::kNormalEdgeThickness = 2;
163 const int LocationBarView::kPopupEdgeThickness = 1; 156 const int LocationBarView::kPopupEdgeThickness = 1;
164 const int LocationBarView::kNormalVerticalEdgeThickness = 3;
165 const int LocationBarView::kIconInternalPadding = 2; 157 const int LocationBarView::kIconInternalPadding = 2;
166 const int LocationBarView::kBubblePadding = 1; 158 const int LocationBarView::kBubblePadding = 1;
167 const char LocationBarView::kViewClassName[] = "LocationBarView"; 159 const char LocationBarView::kViewClassName[] = "LocationBarView";
168 160
169 LocationBarView::LocationBarView(Browser* browser, 161 LocationBarView::LocationBarView(Browser* browser,
170 Profile* profile, 162 Profile* profile,
171 CommandUpdater* command_updater, 163 CommandUpdater* command_updater,
172 ToolbarModel* model, 164 ToolbarModel* model,
173 Delegate* delegate, 165 Delegate* delegate,
174 bool is_popup_mode) 166 bool is_popup_mode)
(...skipping 20 matching lines...) Expand all
195 script_bubble_icon_view_(NULL), 187 script_bubble_icon_view_(NULL),
196 star_view_(NULL), 188 star_view_(NULL),
197 action_box_button_view_(NULL), 189 action_box_button_view_(NULL),
198 is_popup_mode_(is_popup_mode), 190 is_popup_mode_(is_popup_mode),
199 show_focus_rect_(false), 191 show_focus_rect_(false),
200 template_url_service_(NULL), 192 template_url_service_(NULL),
201 animation_offset_(0) { 193 animation_offset_(0) {
202 if (!views::Textfield::IsViewsTextfieldEnabled()) 194 if (!views::Textfield::IsViewsTextfieldEnabled())
203 set_id(VIEW_ID_OMNIBOX); 195 set_id(VIEW_ID_OMNIBOX);
204 196
205 const int kOmniboxPopupImages[] = { 197 const int kOmniboxBorderImages[] = IMAGE_GRID(IDR_OMNIBOX_BORDER);
206 IDR_OMNIBOX_POPUP_BORDER_EDGE, 198 const int kOmniboxPopupImages[] = IMAGE_GRID(IDR_OMNIBOX_POPUP_BORDER);
207 IDR_OMNIBOX_POPUP_BORDER_CENTER, 199 background_border_painter_.reset(
208 IDR_OMNIBOX_POPUP_BORDER_EDGE, 200 views::Painter::CreateImageGridPainter(
209 }; 201 is_popup_mode_ ? kOmniboxPopupImages : kOmniboxBorderImages));
210 background_painter_.reset( 202 #if defined(OS_CHROMEOS)
211 is_popup_mode_ ? 203 if (!is_popup_mode_) {
212 new views::HorizontalPainter(kOmniboxPopupImages) : 204 const int kOmniboxFillingImages[] = IMAGE_GRID(IDR_OMNIBOX_FILLING);
213 views::Painter::CreateImagePainter( 205 background_filling_painter_.reset(
214 *ui::ResourceBundle::GetSharedInstance().GetImageNamed( 206 views::Painter::CreateImageGridPainter(kOmniboxFillingImages));
215 IDR_OMNIBOX_BORDER).ToImageSkia(), 207 }
216 gfx::Insets(kBorderRoundCornerHeight, kBorderRoundCornerWidth, 208 #endif
217 kBorderRoundCornerHeight, kBorderRoundCornerWidth)));
218 209
219 edit_bookmarks_enabled_.Init( 210 edit_bookmarks_enabled_.Init(
220 prefs::kEditBookmarksEnabled, 211 prefs::kEditBookmarksEnabled,
221 profile_->GetPrefs(), 212 profile_->GetPrefs(),
222 base::Bind(&LocationBarView::Update, 213 base::Bind(&LocationBarView::Update,
223 base::Unretained(this), 214 base::Unretained(this),
224 static_cast<content::WebContents*>(NULL))); 215 static_cast<content::WebContents*>(NULL)));
225 216
226 if (browser_) 217 if (browser_)
227 browser_->toolbar_model()->SetSupportsExtractionOfURLLikeSearchTerms(true); 218 browser_->toolbar_model()->SetSupportsExtractionOfURLLikeSearchTerms(true);
(...skipping 448 matching lines...) Expand 10 before | Expand all | Expand 10 after
676 else 667 else
677 set_focusable(focusable); 668 set_focusable(focusable);
678 } 669 }
679 670
680 bool LocationBarView::IsLocationEntryFocusableInRootView() const { 671 bool LocationBarView::IsLocationEntryFocusableInRootView() const {
681 OmniboxViewViews* omnibox_views = GetOmniboxViewViews(location_entry_.get()); 672 OmniboxViewViews* omnibox_views = GetOmniboxViewViews(location_entry_.get());
682 return omnibox_views ? omnibox_views->IsFocusable() : View::IsFocusable(); 673 return omnibox_views ? omnibox_views->IsFocusable() : View::IsFocusable();
683 } 674 }
684 675
685 gfx::Size LocationBarView::GetPreferredSize() { 676 gfx::Size LocationBarView::GetPreferredSize() {
686 return background_painter_->GetMinimumSize(); 677 return background_border_painter_->GetMinimumSize();
687 } 678 }
688 679
689 void LocationBarView::Layout() { 680 void LocationBarView::Layout() {
690 if (!location_entry_.get()) 681 if (!location_entry_.get())
691 return; 682 return;
692 683
693 // TODO(jhawkins): Remove once crbug.com/101994 is fixed. 684 // TODO(jhawkins): Remove once crbug.com/101994 is fixed.
694 CHECK(location_icon_view_); 685 CHECK(location_icon_view_);
695 686
696 selected_keyword_view_->SetVisible(false); 687 selected_keyword_view_->SetVisible(false);
(...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after
937 std::min(width, entry_width), 928 std::min(width, entry_width),
938 location_bounds.height()); 929 location_bounds.height());
939 } 930 }
940 931
941 location_entry_view_->SetBoundsRect(location_bounds); 932 location_entry_view_->SetBoundsRect(location_bounds);
942 } 933 }
943 934
944 void LocationBarView::OnPaint(gfx::Canvas* canvas) { 935 void LocationBarView::OnPaint(gfx::Canvas* canvas) {
945 View::OnPaint(canvas); 936 View::OnPaint(canvas);
946 937
938 // Fill the location bar background color behind the border. Parts of the
939 // border images are meant to rest atop the toolbar background and parts atop
940 // the omnibox background, so we can't just blindly fill our entire bounds.
941 const int horizontal_edge_thickness = GetHorizontalEdgeThickness();
942 if (!background_filling_painter_) {
943 gfx::Rect bounds(GetContentsBounds());
944 bounds.Inset(horizontal_edge_thickness, vertical_edge_thickness());
945 SkColor color(GetColor(ToolbarModel::NONE, BACKGROUND));
946 if (is_popup_mode_) {
947 canvas->FillRect(bounds, color);
948 } else {
949 SkPaint paint;
950 paint.setStyle(SkPaint::kFill_Style);
951 paint.setColor(color);
952 const int kBorderCornerRadius = 2;
953 canvas->DrawRoundRect(bounds, kBorderCornerRadius, paint);
954 }
955 }
956
947 // Maximized popup windows don't draw the horizontal edges. We implement this 957 // Maximized popup windows don't draw the horizontal edges. We implement this
948 // by simply expanding the paint area outside the view by the edge thickness. 958 // by simply expanding the paint area outside the view by the edge thickness.
949 const int horizontal_edge_thickness = GetHorizontalEdgeThickness();
950 gfx::Rect background_rect(GetContentsBounds()); 959 gfx::Rect background_rect(GetContentsBounds());
951 if (is_popup_mode_ && (horizontal_edge_thickness == 0)) 960 if (is_popup_mode_ && (horizontal_edge_thickness == 0))
952 background_rect.Inset(-kPopupEdgeThickness, 0); 961 background_rect.Inset(-kPopupEdgeThickness, 0);
953 views::Painter::PaintPainterAt(canvas, background_painter_.get(), 962 views::Painter::PaintPainterAt(canvas, background_border_painter_.get(),
954 background_rect); 963 background_rect);
964 if (background_filling_painter_)
965 background_filling_painter_->Paint(canvas, size());
955 966
956 // Draw the background color so that the graphical elements at the edges 967 if (!is_popup_mode_)
957 // appear over the correct color. (The edit draws its own background, so this
958 // isn't important for that.)
959 // TODO(pkasting): We need images that are transparent in the middle, so we
960 // can draw the border images over the background color instead of the
961 // reverse; this antialiases better (see comments in
962 // OmniboxPopupContentsView::OnPaint()).
963 gfx::Rect bounds(GetContentsBounds());
964 bounds.Inset(horizontal_edge_thickness, vertical_edge_thickness());
965 SkColor color(GetColor(ToolbarModel::NONE, BACKGROUND));
966 if (is_popup_mode_) {
967 canvas->FillRect(bounds, color);
968 } else {
969 SkPaint paint;
970 paint.setStyle(SkPaint::kFill_Style);
971 paint.setAntiAlias(true);
972 // TODO(jamescook): Make the corners of the dropdown match the corners of
973 // the omnibox.
974 // Paint the actual background color.
975 paint.setColor(color);
976 canvas->DrawRoundRect(bounds, kBorderCornerRadius, paint);
977 PaintPageActionBackgrounds(canvas); 968 PaintPageActionBackgrounds(canvas);
978 }
979 969
980 // For non-InstantExtendedAPI cases, if necessary, show focus rect. 970 // For non-InstantExtendedAPI cases, if necessary, show focus rect.
981 // Note: |Canvas::DrawFocusRect| paints a dashed rect with gray color. 971 // Note: |Canvas::DrawFocusRect| paints a dashed rect with gray color.
982 if (show_focus_rect_ && HasFocus()) { 972 if (show_focus_rect_ && HasFocus()) {
983 gfx::Rect r = location_entry_view_->bounds(); 973 gfx::Rect r = location_entry_view_->bounds();
984 // TODO(jamescook): Is this still needed? 974 // TODO(jamescook): Is this still needed?
985 r.Inset(-1, 0); 975 r.Inset(-1, 0);
986 #if defined(OS_WIN) 976 #if defined(OS_WIN)
987 r.Inset(0, -1); 977 r.Inset(0, -1);
988 #endif 978 #endif
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
1121 1111
1122 InstantController* LocationBarView::GetInstant() { 1112 InstantController* LocationBarView::GetInstant() {
1123 return delegate_->GetInstant(); 1113 return delegate_->GetInstant();
1124 } 1114 }
1125 1115
1126 WebContents* LocationBarView::GetWebContents() const { 1116 WebContents* LocationBarView::GetWebContents() const {
1127 return delegate_->GetWebContents(); 1117 return delegate_->GetWebContents();
1128 } 1118 }
1129 1119
1130 int LocationBarView::GetHorizontalEdgeThickness() const { 1120 int LocationBarView::GetHorizontalEdgeThickness() const {
1131 if (!is_popup_mode_)
1132 return kNormalHorizontalEdgeThickness;
1133
1134 // In maximized popup mode, there isn't any edge. 1121 // In maximized popup mode, there isn't any edge.
1135 return (browser_ && browser_->window() && browser_->window()->IsMaximized()) ? 1122 return (is_popup_mode_ && browser_ && browser_->window() &&
1136 0 : kPopupEdgeThickness; 1123 browser_->window()->IsMaximized()) ? 0 : vertical_edge_thickness();
1137 } 1124 }
1138 1125
1139 void LocationBarView::RefreshContentSettingViews() { 1126 void LocationBarView::RefreshContentSettingViews() {
1140 for (ContentSettingViews::const_iterator i(content_setting_views_.begin()); 1127 for (ContentSettingViews::const_iterator i(content_setting_views_.begin());
1141 i != content_setting_views_.end(); ++i) { 1128 i != content_setting_views_.end(); ++i) {
1142 (*i)->Update(model_->GetInputInProgress() ? NULL : GetWebContents()); 1129 (*i)->Update(model_->GetInputInProgress() ? NULL : GetWebContents());
1143 } 1130 }
1144 } 1131 }
1145 1132
1146 void LocationBarView::DeletePageActionViews() { 1133 void LocationBarView::DeletePageActionViews() {
(...skipping 402 matching lines...) Expand 10 before | Expand all | Expand 10 after
1549 int LocationBarView::GetInternalHeight(bool use_preferred_size) { 1536 int LocationBarView::GetInternalHeight(bool use_preferred_size) {
1550 int total_height = 1537 int total_height =
1551 use_preferred_size ? GetPreferredSize().height() : height(); 1538 use_preferred_size ? GetPreferredSize().height() : height();
1552 return std::max(total_height - (vertical_edge_thickness() * 2), 0); 1539 return std::max(total_height - (vertical_edge_thickness() * 2), 0);
1553 } 1540 }
1554 1541
1555 bool LocationBarView::HasValidSuggestText() const { 1542 bool LocationBarView::HasValidSuggestText() const {
1556 return suggested_text_view_->visible() && 1543 return suggested_text_view_->visible() &&
1557 !suggested_text_view_->size().IsEmpty(); 1544 !suggested_text_view_->size().IsEmpty();
1558 } 1545 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698