From fdf481ba49097edcfe9ace5888a263ab2fb437d6 Mon Sep 17 00:00:00 2001 From: "xji@chromium.org" Date: Tue, 24 Jan 2012 06:14:07 +0000 Subject: Aura: apply UI font list to cros. - change IDS_UI_FONT_FAMILY_CROS back to 12px in default. - GetDefaultFont() in platform_font_pango.cc returns IDS_UI_FONT_FAMILY_CROS for Aura Chrome OS. - views::NativeTextfieldViews::UpdateFont() applies the size from the passed-in font on Chrome OS - OmniboxViewViews requests a larger font size. - Correspondingly, decrease OmniboxViewViews's vertical margin so that the display area has greater height to accommodate larger font size. BUG=103860, 109961 TEST=visual on omnibox and popup, bookmark bubble, findbar, and omnibox in popup. Review URL: http://codereview.chromium.org/9192018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@118802 0039d316-1c4b-4281-b951-d872f2087c98 --- .../browser/ui/views/omnibox/omnibox_view_views.cc | 54 ++++++++++++++-------- .../browser/ui/views/omnibox/omnibox_view_views.h | 10 ++-- 2 files changed, 40 insertions(+), 24 deletions(-) (limited to 'chrome') diff --git a/chrome/browser/ui/views/omnibox/omnibox_view_views.cc b/chrome/browser/ui/views/omnibox/omnibox_view_views.cc index 4854676..81f1e12 100644 --- a/chrome/browser/ui/views/omnibox/omnibox_view_views.cc +++ b/chrome/browser/ui/views/omnibox/omnibox_view_views.cc @@ -132,8 +132,6 @@ void ApplyURLStyle(views::Textfield* textfield, textfield->ApplyStyleRange(style); } -const int kAutocompleteVerticalMargin = 4; - // TODO(oshima): I'm currently using slightly different color than // gtk/win omnibox so that I can tell which one is used from its color. // Fix this once we finish all features. @@ -142,6 +140,21 @@ const SkColor kNormalTextColor = SK_ColorBLACK; const SkColor kSecureSchemeColor = SK_ColorGREEN; const SkColor kSecurityErrorSchemeColor = SK_ColorRED; +// The following 2 const values are the same as in browser_defaults. +const int kAutocompleteEditFontPixelSize = 15; +const int kAutocompleteEditFontPixelSizeInPopup = 10; + +// The following 2 values are based on kAutocompleteEditFontPixelSize and +// kAutocompleteEditFontPixelSizeInPopup. They should be changed accordingly +// if font size for autocomplete edit (in popup) change. +const int kAutocompleteVerticalMargin = 1; +const int kAutocompleteVerticalMarginInPopup = 2; + +int GetEditFontPixelSize(bool popup_window_mode) { + return popup_window_mode ? kAutocompleteEditFontPixelSizeInPopup : + kAutocompleteEditFontPixelSize; +} + } // namespace // static @@ -154,23 +167,16 @@ OmniboxViewViews::OmniboxViewViews(AutocompleteEditController* controller, CommandUpdater* command_updater, bool popup_window_mode, LocationBarView* location_bar) - : model_(new AutocompleteEditModel(this, controller, profile)), - popup_view_(CreatePopupView(location_bar)), + : popup_window_mode_(popup_window_mode), + model_(new AutocompleteEditModel(this, controller, profile)), controller_(controller), toolbar_model_(toolbar_model), command_updater_(command_updater), - popup_window_mode_(popup_window_mode), security_level_(ToolbarModel::NONE), ime_composing_before_change_(false), delete_at_end_pressed_(false), location_bar_view_(location_bar), ime_candidate_window_open_(false) { - set_border(views::Border::CreateEmptyBorder(kAutocompleteVerticalMargin, 0, - kAutocompleteVerticalMargin, 0)); -#if defined(OS_CHROMEOS) - chromeos::input_method::InputMethodManager::GetInstance()-> - AddCandidateWindowObserver(this); -#endif } OmniboxViewViews::~OmniboxViewViews() { @@ -199,6 +205,25 @@ void OmniboxViewViews::Init() { if (popup_window_mode_) textfield_->SetReadOnly(true); + const int font_size = GetEditFontPixelSize(popup_window_mode_); + const int old_size = textfield_->font().GetFontSize(); + if (font_size != old_size) + textfield_->SetFont(textfield_->font().DeriveFont(font_size - old_size)); + + // Create popup view using the same font as |textfield_|'s. + popup_view_.reset( + new AutocompletePopupContentsView( + textfield_->font(), this, model_.get(), location_bar_view_)); + + const int vertical_margin = !popup_window_mode_ ? + kAutocompleteVerticalMargin : kAutocompleteVerticalMarginInPopup; + set_border(views::Border::CreateEmptyBorder(vertical_margin, 0, + vertical_margin, 0)); +#if defined(OS_CHROMEOS) + chromeos::input_method::InputMethodManager::GetInstance()-> + AddCandidateWindowObserver(this); +#endif + // Manually invoke SetBaseColor() because TOOLKIT_VIEWS doesn't observe // themes. SetBaseColor(); @@ -808,13 +833,6 @@ string16 OmniboxViewViews::GetSelectedText() const { return textfield_->GetSelectedText(); } -AutocompletePopupView* OmniboxViewViews::CreatePopupView( - View* location_bar) { - typedef AutocompletePopupContentsView AutocompleteContentsView; - return new AutocompleteContentsView(gfx::Font(), this, model_.get(), - location_bar); -} - #if defined(USE_AURA) // static OmniboxView* OmniboxView::CreateOmniboxView( diff --git a/chrome/browser/ui/views/omnibox/omnibox_view_views.h b/chrome/browser/ui/views/omnibox/omnibox_view_views.h index 53b0699..e4a9b18 100644 --- a/chrome/browser/ui/views/omnibox/omnibox_view_views.h +++ b/chrome/browser/ui/views/omnibox/omnibox_view_views.h @@ -187,10 +187,12 @@ class OmniboxViewViews // Returns the selected text. string16 GetSelectedText() const; - AutocompletePopupView* CreatePopupView(View* location_bar); - views::Textfield* textfield_; + // When true, the location bar view is read only and also is has a slightly + // different presentation (smaller font size). This is used for popups. + bool popup_window_mode_; + scoped_ptr model_; scoped_ptr popup_view_; AutocompleteEditController* controller_; @@ -200,10 +202,6 @@ class OmniboxViewViews // edit, such as invoking the keyword editor. CommandUpdater* command_updater_; - // When true, the location bar view is read only and also is has a slightly - // different presentation (smaller font size). This is used for popups. - bool popup_window_mode_; - ToolbarModel::SecurityLevel security_level_; // Selection at the point where the user started using the -- cgit v1.1