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