| OLD | NEW |
| 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 // For WinDDK ATL compatibility, these ATL headers must come first. | 5 // For WinDDK ATL compatibility, these ATL headers must come first. |
| 6 #include "build/build_config.h" | 6 #include "build/build_config.h" |
| 7 #if defined(OS_WIN) | 7 #if defined(OS_WIN) |
| 8 #include <atlbase.h> // NOLINT | 8 #include <atlbase.h> // NOLINT |
| 9 #include <atlwin.h> // NOLINT | 9 #include <atlwin.h> // NOLINT |
| 10 #endif | 10 #endif |
| 11 | 11 |
| 12 #include "chrome/browser/ui/views/autocomplete/autocomplete_result_view.h" | 12 #include "chrome/browser/ui/views/autocomplete/autocomplete_result_view.h" |
| 13 | 13 |
| 14 #include <algorithm> // NOLINT | 14 #include <algorithm> // NOLINT |
| 15 | 15 |
| 16 #include "base/i18n/bidi_line_iterator.h" | 16 #include "base/i18n/bidi_line_iterator.h" |
| 17 #include "chrome/browser/autocomplete/autocomplete_popup_model.h" | 17 #include "chrome/browser/autocomplete/autocomplete_popup_model.h" |
| 18 #include "chrome/browser/ui/views/autocomplete/autocomplete_result_view_model.h" | 18 #include "chrome/browser/ui/views/autocomplete/autocomplete_result_view_model.h" |
| 19 #include "chrome/browser/ui/views/location_bar/location_bar_view.h" | 19 #include "chrome/browser/ui/views/location_bar/location_bar_view.h" |
| 20 #include "grit/generated_resources.h" | 20 #include "grit/generated_resources.h" |
| 21 #include "grit/theme_resources.h" | 21 #include "grit/theme_resources.h" |
| 22 #include "ui/base/l10n/l10n_util.h" | 22 #include "ui/base/l10n/l10n_util.h" |
| 23 #include "ui/base/native_theme/native_theme.h" |
| 23 #include "ui/base/resource/resource_bundle.h" | 24 #include "ui/base/resource/resource_bundle.h" |
| 24 #include "ui/base/text/text_elider.h" | 25 #include "ui/base/text/text_elider.h" |
| 25 #include "ui/gfx/canvas.h" | 26 #include "ui/gfx/canvas.h" |
| 26 #include "ui/gfx/color_utils.h" | 27 #include "ui/gfx/color_utils.h" |
| 27 #include "ui/base/native_theme/native_theme.h" | |
| 28 | 28 |
| 29 namespace { | 29 namespace { |
| 30 | 30 |
| 31 const char16 kEllipsis[] = { 0x2026, 0x0 }; | 31 const char16 kEllipsis[] = { 0x2026, 0x0 }; |
| 32 | 32 |
| 33 // The minimum distance between the top and bottom of the {icon|text} and the | 33 // The minimum distance between the top and bottom of the {icon|text} and the |
| 34 // top or bottom of the row. | 34 // top or bottom of the row. |
| 35 const int kMinimumIconVerticalPadding = 2; | 35 const int kMinimumIconVerticalPadding = 2; |
| 36 const int kMinimumTextVerticalPadding = 3; | 36 const int kMinimumTextVerticalPadding = 3; |
| 37 | 37 |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 110 model_index_(model_index), | 110 model_index_(model_index), |
| 111 normal_font_(font), | 111 normal_font_(font), |
| 112 bold_font_(bold_font), | 112 bold_font_(bold_font), |
| 113 ellipsis_width_(font.GetStringWidth(string16(kEllipsis))), | 113 ellipsis_width_(font.GetStringWidth(string16(kEllipsis))), |
| 114 mirroring_context_(new MirroringContext()), | 114 mirroring_context_(new MirroringContext()), |
| 115 keyword_icon_(new views::ImageView()), | 115 keyword_icon_(new views::ImageView()), |
| 116 ALLOW_THIS_IN_INITIALIZER_LIST( | 116 ALLOW_THIS_IN_INITIALIZER_LIST( |
| 117 animation_(new ui::SlideAnimation(this))) { | 117 animation_(new ui::SlideAnimation(this))) { |
| 118 CHECK_GE(model_index, 0); | 118 CHECK_GE(model_index, 0); |
| 119 if (default_icon_size_ == 0) { | 119 if (default_icon_size_ == 0) { |
| 120 default_icon_size_ = ui::ResourceBundle::GetSharedInstance().GetBitmapNamed( | 120 default_icon_size_ = |
| 121 ui::ResourceBundle::GetSharedInstance().GetImageSkiaNamed( |
| 121 AutocompleteMatch::TypeToIcon(AutocompleteMatch::URL_WHAT_YOU_TYPED))-> | 122 AutocompleteMatch::TypeToIcon(AutocompleteMatch::URL_WHAT_YOU_TYPED))-> |
| 122 width(); | 123 width(); |
| 123 } | 124 } |
| 124 keyword_icon_->set_owned_by_client(); | 125 keyword_icon_->set_owned_by_client(); |
| 125 keyword_icon_->EnableCanvasFlippingForRTLUI(true); | 126 keyword_icon_->EnableCanvasFlippingForRTLUI(true); |
| 126 keyword_icon_->SetImage(GetKeywordIcon()); | 127 keyword_icon_->SetImage(GetKeywordIcon()); |
| 127 keyword_icon_->SizeToPreferredSize(); | 128 keyword_icon_->SizeToPreferredSize(); |
| 128 } | 129 } |
| 129 | 130 |
| 130 AutocompleteResultView::~AutocompleteResultView() { | 131 AutocompleteResultView::~AutocompleteResultView() { |
| (...skipping 500 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 631 mirroring_context_->Initialize(x, keyword_text_bounds_.width()); | 632 mirroring_context_->Initialize(x, keyword_text_bounds_.width()); |
| 632 PaintMatch(canvas, *match_.associated_keyword.get(), x); | 633 PaintMatch(canvas, *match_.associated_keyword.get(), x); |
| 633 } | 634 } |
| 634 } | 635 } |
| 635 | 636 |
| 636 void AutocompleteResultView::AnimationProgressed( | 637 void AutocompleteResultView::AnimationProgressed( |
| 637 const ui::Animation* animation) { | 638 const ui::Animation* animation) { |
| 638 Layout(); | 639 Layout(); |
| 639 SchedulePaint(); | 640 SchedulePaint(); |
| 640 } | 641 } |
| OLD | NEW |