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

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

Issue 15779010: Correct vertical positioning for the IME autocompletion. (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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 263 matching lines...) Expand 10 before | Expand all | Expand 10 after
274 AddChildView(ev_bubble_view_); 274 AddChildView(ev_bubble_view_);
275 275
276 // Initialize the Omnibox view. 276 // Initialize the Omnibox view.
277 location_entry_.reset(CreateOmniboxView(this, model_, profile_, 277 location_entry_.reset(CreateOmniboxView(this, model_, profile_,
278 command_updater_, is_popup_mode_, this, font, font_y_offset)); 278 command_updater_, is_popup_mode_, this, font, font_y_offset));
279 SetLocationEntryFocusable(true); 279 SetLocationEntryFocusable(true);
280 location_entry_view_ = location_entry_->AddToView(this); 280 location_entry_view_ = location_entry_->AddToView(this);
281 281
282 // Initialize the inline autocomplete view which is visible only when IME is 282 // Initialize the inline autocomplete view which is visible only when IME is
283 // turned on. Use the same font with the omnibox and highlighted background. 283 // turned on. Use the same font with the omnibox and highlighted background.
284 ime_inline_autocomplete_view_ = new views::Label(); 284 ime_inline_autocomplete_view_ = new views::Label(string16(), font);
285 ime_inline_autocomplete_view_->set_border(
286 views::Border::CreateEmptyBorder(font_y_offset, 0, 0, 0));
285 ime_inline_autocomplete_view_->SetHorizontalAlignment(gfx::ALIGN_LEFT); 287 ime_inline_autocomplete_view_->SetHorizontalAlignment(gfx::ALIGN_LEFT);
286 ime_inline_autocomplete_view_->SetAutoColorReadabilityEnabled(false); 288 ime_inline_autocomplete_view_->SetAutoColorReadabilityEnabled(false);
287 ime_inline_autocomplete_view_->set_background( 289 ime_inline_autocomplete_view_->set_background(
288 views::Background::CreateSolidBackground(GetNativeTheme()->GetSystemColor( 290 views::Background::CreateSolidBackground(GetNativeTheme()->GetSystemColor(
289 ui::NativeTheme::kColorId_TextfieldSelectionBackgroundFocused))); 291 ui::NativeTheme::kColorId_TextfieldSelectionBackgroundFocused)));
290 ime_inline_autocomplete_view_->SetEnabledColor( 292 ime_inline_autocomplete_view_->SetEnabledColor(
291 GetNativeTheme()->GetSystemColor( 293 GetNativeTheme()->GetSystemColor(
292 ui::NativeTheme::kColorId_TextfieldSelectionColor)); 294 ui::NativeTheme::kColorId_TextfieldSelectionColor));
293 ime_inline_autocomplete_view_->SetFont(font);
294 ime_inline_autocomplete_view_->SetVisible(false); 295 ime_inline_autocomplete_view_->SetVisible(false);
295 AddChildView(ime_inline_autocomplete_view_); 296 AddChildView(ime_inline_autocomplete_view_);
296 297
297 const SkColor text_color = GetColor(ToolbarModel::NONE, TEXT); 298 const SkColor text_color = GetColor(ToolbarModel::NONE, TEXT);
298 selected_keyword_view_ = new SelectedKeywordView( 299 selected_keyword_view_ = new SelectedKeywordView(
299 bubble_font, bubble_font_y_offset, text_color, background_color, 300 bubble_font, bubble_font_y_offset, text_color, background_color,
300 profile_); 301 profile_);
301 AddChildView(selected_keyword_view_); 302 AddChildView(selected_keyword_view_);
302 303
303 suggested_text_view_ = new views::Label(string16(), font); 304 suggested_text_view_ = new views::Label(string16(), font);
(...skipping 611 matching lines...) Expand 10 before | Expand all | Expand 10 after
915 omnibox_views->SetHorizontalMargins(0, omnibox_views_margin); 916 omnibox_views->SetHorizontalMargins(0, omnibox_views_margin);
916 917
917 // Layout |ime_inline_autocomplete_view_| next to the user input. 918 // Layout |ime_inline_autocomplete_view_| next to the user input.
918 if (ime_inline_autocomplete_view_->visible()) { 919 if (ime_inline_autocomplete_view_->visible()) {
919 int width = 920 int width =
920 ime_inline_autocomplete_view_->font().GetStringWidth( 921 ime_inline_autocomplete_view_->font().GetStringWidth(
921 ime_inline_autocomplete_view_->text()) + 922 ime_inline_autocomplete_view_->text()) +
922 ime_inline_autocomplete_view_->GetInsets().width(); 923 ime_inline_autocomplete_view_->GetInsets().width();
923 // All the target languages (IMEs) are LTR, and we do not need to support 924 // All the target languages (IMEs) are LTR, and we do not need to support
924 // RTL so far. In other words, no testable RTL environment so far. 925 // RTL so far. In other words, no testable RTL environment so far.
925 int x; 926 int x = location_needed_width;
926 if (width > entry_width) { 927 if (width > entry_width)
927 x = 0; 928 x = 0;
928 } else if (location_needed_width + width > entry_width) { 929 else if (location_needed_width + width > entry_width)
929 x = entry_width - width; 930 x = entry_width - width;
930 } else {
931 x = location_needed_width;
932 }
933 location_bounds.set_width(x); 931 location_bounds.set_width(x);
934 ime_inline_autocomplete_view_->SetBounds( 932 ime_inline_autocomplete_view_->SetBounds(
935 location_bounds.right(), 933 location_bounds.right(), location_bounds.y(),
936 location_bounds.y(),
937 std::min(width, entry_width), 934 std::min(width, entry_width),
938 location_bounds.height()); 935 ime_inline_autocomplete_view_->GetPreferredSize().height());
939 } 936 }
940 937
941 location_entry_view_->SetBoundsRect(location_bounds); 938 location_entry_view_->SetBoundsRect(location_bounds);
942 } 939 }
943 940
944 void LocationBarView::OnPaint(gfx::Canvas* canvas) { 941 void LocationBarView::OnPaint(gfx::Canvas* canvas) {
945 View::OnPaint(canvas); 942 View::OnPaint(canvas);
946 943
947 // Maximized popup windows don't draw the horizontal edges. We implement this 944 // 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. 945 // by simply expanding the paint area outside the view by the edge thickness.
(...skipping 600 matching lines...) Expand 10 before | Expand all | Expand 10 after
1549 int LocationBarView::GetInternalHeight(bool use_preferred_size) { 1546 int LocationBarView::GetInternalHeight(bool use_preferred_size) {
1550 int total_height = 1547 int total_height =
1551 use_preferred_size ? GetPreferredSize().height() : height(); 1548 use_preferred_size ? GetPreferredSize().height() : height();
1552 return std::max(total_height - (vertical_edge_thickness() * 2), 0); 1549 return std::max(total_height - (vertical_edge_thickness() * 2), 0);
1553 } 1550 }
1554 1551
1555 bool LocationBarView::HasValidSuggestText() const { 1552 bool LocationBarView::HasValidSuggestText() const {
1556 return suggested_text_view_->visible() && 1553 return suggested_text_view_->visible() &&
1557 !suggested_text_view_->size().IsEmpty(); 1554 !suggested_text_view_->size().IsEmpty();
1558 } 1555 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698