| 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 #ifndef CHROME_BROWSER_UI_VIEWS_OMNIBOX_OMNIBOX_RESULT_VIEW_H_ | 5 #ifndef CHROME_BROWSER_UI_VIEWS_OMNIBOX_OMNIBOX_RESULT_VIEW_H_ |
| 6 #define CHROME_BROWSER_UI_VIEWS_OMNIBOX_OMNIBOX_RESULT_VIEW_H_ | 6 #define CHROME_BROWSER_UI_VIEWS_OMNIBOX_OMNIBOX_RESULT_VIEW_H_ |
| 7 | 7 |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/gtest_prod_util.h" | 10 #include "base/gtest_prod_util.h" |
| 11 #include "chrome/browser/bitmap_fetcher/bitmap_fetcher_service.h" | 11 #include "chrome/browser/bitmap_fetcher/bitmap_fetcher_service.h" |
| 12 #include "components/omnibox/autocomplete_match.h" | 12 #include "components/omnibox/autocomplete_match.h" |
| 13 #include "components/omnibox/suggestion_answer.h" |
| 13 #include "third_party/skia/include/core/SkColor.h" | 14 #include "third_party/skia/include/core/SkColor.h" |
| 14 #include "ui/gfx/animation/animation_delegate.h" | 15 #include "ui/gfx/animation/animation_delegate.h" |
| 15 #include "ui/gfx/animation/slide_animation.h" | 16 #include "ui/gfx/animation/slide_animation.h" |
| 16 #include "ui/gfx/font_list.h" | 17 #include "ui/gfx/font_list.h" |
| 17 #include "ui/gfx/geometry/rect.h" | 18 #include "ui/gfx/geometry/rect.h" |
| 18 #include "ui/views/controls/image_view.h" | 19 #include "ui/views/controls/image_view.h" |
| 19 #include "ui/views/view.h" | 20 #include "ui/views/view.h" |
| 20 | 21 |
| 21 class LocationBarView; | 22 class LocationBarView; |
| 22 class OmniboxPopupContentsView; | 23 class OmniboxPopupContentsView; |
| (...skipping 17 matching lines...) Expand all Loading... |
| 40 | 41 |
| 41 enum ColorKind { | 42 enum ColorKind { |
| 42 BACKGROUND = 0, | 43 BACKGROUND = 0, |
| 43 TEXT, | 44 TEXT, |
| 44 DIMMED_TEXT, | 45 DIMMED_TEXT, |
| 45 URL, | 46 URL, |
| 46 DIVIDER, | 47 DIVIDER, |
| 47 NUM_KINDS | 48 NUM_KINDS |
| 48 }; | 49 }; |
| 49 | 50 |
| 51 // The minimum distance between the top and bottom of the text and the |
| 52 // top or bottom of the row. |
| 53 static const int kMinimumTextVerticalPadding = 3; |
| 54 |
| 50 OmniboxResultView(OmniboxPopupContentsView* model, | 55 OmniboxResultView(OmniboxPopupContentsView* model, |
| 51 int model_index, | 56 int model_index, |
| 52 LocationBarView* location_bar_view, | 57 LocationBarView* location_bar_view, |
| 53 const gfx::FontList& font_list); | 58 const gfx::FontList& font_list); |
| 54 ~OmniboxResultView() override; | 59 ~OmniboxResultView() override; |
| 55 | 60 |
| 56 SkColor GetColor(ResultViewState state, ColorKind kind) const; | 61 SkColor GetColor(ResultViewState state, ColorKind kind) const; |
| 57 | 62 |
| 58 // Updates the match used to paint the contents of this result view. We copy | 63 // Updates the match used to paint the contents of this result view. We copy |
| 59 // the match so that we can continue to paint the last result even after the | 64 // the match so that we can continue to paint the last result even after the |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 110 // |classifications| and |force_dim| are used to style the text. | 115 // |classifications| and |force_dim| are used to style the text. |
| 111 scoped_ptr<gfx::RenderText> CreateClassifiedRenderText( | 116 scoped_ptr<gfx::RenderText> CreateClassifiedRenderText( |
| 112 const base::string16& text, | 117 const base::string16& text, |
| 113 const ACMatchClassifications& classifications, | 118 const ACMatchClassifications& classifications, |
| 114 bool force_dim) const; | 119 bool force_dim) const; |
| 115 | 120 |
| 116 const gfx::Rect& text_bounds() const { return text_bounds_; } | 121 const gfx::Rect& text_bounds() const { return text_bounds_; } |
| 117 | 122 |
| 118 void set_edge_item_padding(int value) { edge_item_padding_ = value; } | 123 void set_edge_item_padding(int value) { edge_item_padding_ = value; } |
| 119 void set_item_padding(int value) { item_padding_ = value; } | 124 void set_item_padding(int value) { item_padding_ = value; } |
| 120 void set_minimum_text_vertical_padding(int value) { | |
| 121 minimum_text_vertical_padding_ = value; | |
| 122 } | |
| 123 | 125 |
| 124 private: | 126 private: |
| 125 // views::View: | 127 // views::View: |
| 126 const char* GetClassName() const override; | 128 const char* GetClassName() const override; |
| 127 | 129 |
| 128 gfx::ImageSkia GetIcon() const; | 130 gfx::ImageSkia GetIcon() const; |
| 129 const gfx::ImageSkia* GetKeywordIcon() const; | 131 const gfx::ImageSkia* GetKeywordIcon() const; |
| 130 | 132 |
| 131 // Whether to render only the keyword match. Returns true if |match_| has an | 133 // Whether to render only the keyword match. Returns true if |match_| has an |
| 132 // associated keyword match that has been animated so close to the start that | 134 // associated keyword match that has been animated so close to the start that |
| (...skipping 15 matching lines...) Expand all Loading... |
| 148 // gfx::AnimationDelegate: | 150 // gfx::AnimationDelegate: |
| 149 void AnimationProgressed(const gfx::Animation* animation) override; | 151 void AnimationProgressed(const gfx::Animation* animation) override; |
| 150 | 152 |
| 151 // Returns the offset at which the contents of the |match| should be displayed | 153 // Returns the offset at which the contents of the |match| should be displayed |
| 152 // within the text bounds. The directionality of UI and match contents is used | 154 // within the text bounds. The directionality of UI and match contents is used |
| 153 // to determine the offset relative to the correct edge. | 155 // to determine the offset relative to the correct edge. |
| 154 int GetDisplayOffset(const AutocompleteMatch& match, | 156 int GetDisplayOffset(const AutocompleteMatch& match, |
| 155 bool is_ui_rtl, | 157 bool is_ui_rtl, |
| 156 bool is_match_contents_rtl) const; | 158 bool is_match_contents_rtl) const; |
| 157 | 159 |
| 160 int GetAnswerLineHeight() const; |
| 161 int GetContentLineHeight() const; |
| 162 |
| 163 void AppendAnswerText(const SuggestionAnswer::TextField& text_field); |
| 164 |
| 158 static int default_icon_size_; | 165 static int default_icon_size_; |
| 159 | 166 |
| 160 // Default values cached here, may be overridden using the setters above. | 167 // Default values cached here, may be overridden using the setters above. |
| 161 int edge_item_padding_; | 168 int edge_item_padding_; |
| 162 int item_padding_; | 169 int item_padding_; |
| 163 int minimum_text_vertical_padding_; | |
| 164 | 170 |
| 165 // This row's model and model index. | 171 // This row's model and model index. |
| 166 OmniboxPopupContentsView* model_; | 172 OmniboxPopupContentsView* model_; |
| 167 size_t model_index_; | 173 size_t model_index_; |
| 168 | 174 |
| 169 LocationBarView* location_bar_view_; | 175 LocationBarView* location_bar_view_; |
| 170 // Note: image_service_ may be null in some unit tests. | 176 // Note: image_service_ may be null in some unit tests. |
| 171 BitmapFetcherService* image_service_; | 177 BitmapFetcherService* image_service_; |
| 172 | 178 |
| 173 const gfx::FontList font_list_; | 179 const gfx::FontList font_list_; |
| (...skipping 27 matching lines...) Expand all Loading... |
| 201 mutable scoped_ptr<gfx::RenderText> keyword_description_rendertext_; | 207 mutable scoped_ptr<gfx::RenderText> keyword_description_rendertext_; |
| 202 | 208 |
| 203 mutable int separator_width_; | 209 mutable int separator_width_; |
| 204 | 210 |
| 205 base::WeakPtrFactory<OmniboxResultView> weak_ptr_factory_; | 211 base::WeakPtrFactory<OmniboxResultView> weak_ptr_factory_; |
| 206 | 212 |
| 207 DISALLOW_COPY_AND_ASSIGN(OmniboxResultView); | 213 DISALLOW_COPY_AND_ASSIGN(OmniboxResultView); |
| 208 }; | 214 }; |
| 209 | 215 |
| 210 #endif // CHROME_BROWSER_UI_VIEWS_OMNIBOX_OMNIBOX_RESULT_VIEW_H_ | 216 #endif // CHROME_BROWSER_UI_VIEWS_OMNIBOX_OMNIBOX_RESULT_VIEW_H_ |
| OLD | NEW |