| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "ui/app_list/views/search_result_page_view.h" | 5 #include "ui/app_list/views/search_result_page_view.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 | 10 |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 44 views::Background::CreateSolidBackground(kCardBackgroundColor)); | 44 views::Background::CreateSolidBackground(kCardBackgroundColor)); |
| 45 AddChildView(content_view); | 45 AddChildView(content_view); |
| 46 } | 46 } |
| 47 | 47 |
| 48 ~SearchCardView() override {} | 48 ~SearchCardView() override {} |
| 49 }; | 49 }; |
| 50 | 50 |
| 51 } // namespace | 51 } // namespace |
| 52 | 52 |
| 53 SearchResultPageView::SearchResultPageView() : selected_index_(0) { | 53 SearchResultPageView::SearchResultPageView() : selected_index_(0) { |
| 54 if (switches::IsExperimentalAppListEnabled()) { | 54 gfx::ShadowValue shadow = GetShadowForZHeight(kSearchResultZHeight); |
| 55 gfx::ShadowValue shadow = GetShadowForZHeight(kSearchResultZHeight); | 55 std::unique_ptr<views::Border> border(new views::ShadowBorder(shadow)); |
| 56 std::unique_ptr<views::Border> border(new views::ShadowBorder(shadow)); | |
| 57 | 56 |
| 58 gfx::Insets insets = gfx::Insets(kTopPadding, kExperimentalSearchBoxPadding, | 57 gfx::Insets insets = |
| 59 0, kExperimentalSearchBoxPadding); | 58 gfx::Insets(kTopPadding, kSearchBoxPadding, 0, kSearchBoxPadding); |
| 60 insets += -border->GetInsets(); | 59 insets += -border->GetInsets(); |
| 61 | 60 |
| 62 views::BoxLayout* layout = | 61 views::BoxLayout* layout = |
| 63 new views::BoxLayout(views::BoxLayout::kVertical, 0, 0, kGroupSpacing); | 62 new views::BoxLayout(views::BoxLayout::kVertical, 0, 0, kGroupSpacing); |
| 64 layout->set_inside_border_insets(insets); | 63 layout->set_inside_border_insets(insets); |
| 65 | 64 |
| 66 SetLayoutManager(layout); | 65 SetLayoutManager(layout); |
| 67 } else { | |
| 68 SetLayoutManager(new views::FillLayout); | |
| 69 } | |
| 70 } | 66 } |
| 71 | 67 |
| 72 SearchResultPageView::~SearchResultPageView() { | 68 SearchResultPageView::~SearchResultPageView() { |
| 73 } | 69 } |
| 74 | 70 |
| 75 void SearchResultPageView::SetSelection(bool select) { | 71 void SearchResultPageView::SetSelection(bool select) { |
| 76 if (select) | 72 if (select) |
| 77 SetSelectedIndex(0, false); | 73 SetSelectedIndex(0, false); |
| 78 else | 74 else |
| 79 ClearSelectedIndex(); | 75 ClearSelectedIndex(); |
| 80 } | 76 } |
| 81 | 77 |
| 82 void SearchResultPageView::AddSearchResultContainerView( | 78 void SearchResultPageView::AddSearchResultContainerView( |
| 83 AppListModel::SearchResults* results_model, | 79 AppListModel::SearchResults* results_model, |
| 84 SearchResultContainerView* result_container) { | 80 SearchResultContainerView* result_container) { |
| 85 views::View* view_to_add = result_container; | 81 AddChildView(new SearchCardView(result_container)); |
| 86 if (switches::IsExperimentalAppListEnabled()) | |
| 87 view_to_add = new SearchCardView(result_container); | |
| 88 | |
| 89 AddChildView(view_to_add); | |
| 90 result_container_views_.push_back(result_container); | 82 result_container_views_.push_back(result_container); |
| 91 result_container->SetResults(results_model); | 83 result_container->SetResults(results_model); |
| 92 result_container->set_delegate(this); | 84 result_container->set_delegate(this); |
| 93 } | 85 } |
| 94 | 86 |
| 95 bool SearchResultPageView::OnKeyPressed(const ui::KeyEvent& event) { | 87 bool SearchResultPageView::OnKeyPressed(const ui::KeyEvent& event) { |
| 96 if (HasSelection() && | 88 if (HasSelection() && |
| 97 result_container_views_.at(selected_index_)->OnKeyPressed(event)) { | 89 result_container_views_.at(selected_index_)->OnKeyPressed(event)) { |
| 98 return true; | 90 return true; |
| 99 } | 91 } |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 168 SearchResultContainerView* old_selection = | 160 SearchResultContainerView* old_selection = |
| 169 HasSelection() ? result_container_views_[selected_index_] : nullptr; | 161 HasSelection() ? result_container_views_[selected_index_] : nullptr; |
| 170 | 162 |
| 171 // Truncate the currently selected container's selection if necessary. If | 163 // Truncate the currently selected container's selection if necessary. If |
| 172 // there are no results, the selection will be cleared below. | 164 // there are no results, the selection will be cleared below. |
| 173 if (old_selection && old_selection->num_results() > 0 && | 165 if (old_selection && old_selection->num_results() > 0 && |
| 174 old_selection->selected_index() >= old_selection->num_results()) { | 166 old_selection->selected_index() >= old_selection->num_results()) { |
| 175 old_selection->SetSelectedIndex(old_selection->num_results() - 1); | 167 old_selection->SetSelectedIndex(old_selection->num_results() - 1); |
| 176 } | 168 } |
| 177 | 169 |
| 178 if (switches::IsExperimentalAppListEnabled()) { | 170 // Sort the result container views by their score. |
| 179 // Sort the result container views by their score. | 171 std::sort(result_container_views_.begin(), result_container_views_.end(), |
| 180 std::sort(result_container_views_.begin(), result_container_views_.end(), | 172 [](const SearchResultContainerView* a, |
| 181 [](const SearchResultContainerView* a, | 173 const SearchResultContainerView* b) -> bool { |
| 182 const SearchResultContainerView* b) -> bool { | 174 return a->container_score() > b->container_score(); |
| 183 return a->container_score() > b->container_score(); | 175 }); |
| 184 }); | |
| 185 | 176 |
| 186 int result_y_index = 0; | 177 int result_y_index = 0; |
| 187 for (size_t i = 0; i < result_container_views_.size(); ++i) { | 178 for (size_t i = 0; i < result_container_views_.size(); ++i) { |
| 188 SearchResultContainerView* view = result_container_views_[i]; | 179 SearchResultContainerView* view = result_container_views_[i]; |
| 189 ReorderChildView(view->parent(), i); | 180 ReorderChildView(view->parent(), i); |
| 190 | 181 |
| 191 view->NotifyFirstResultYIndex(result_y_index); | 182 view->NotifyFirstResultYIndex(result_y_index); |
| 192 | 183 |
| 193 result_y_index += view->GetYSize(); | 184 result_y_index += view->GetYSize(); |
| 194 } | |
| 195 } | 185 } |
| 196 | 186 |
| 197 Layout(); | 187 Layout(); |
| 198 | 188 |
| 199 SearchResultContainerView* new_selection = nullptr; | 189 SearchResultContainerView* new_selection = nullptr; |
| 200 if (HasSelection() && | 190 if (HasSelection() && |
| 201 result_container_views_[selected_index_]->num_results() > 0) { | 191 result_container_views_[selected_index_]->num_results() > 0) { |
| 202 new_selection = result_container_views_[selected_index_]; | 192 new_selection = result_container_views_[selected_index_]; |
| 203 } | 193 } |
| 204 | 194 |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 237 | 227 |
| 238 gfx::Rect onscreen_bounds( | 228 gfx::Rect onscreen_bounds( |
| 239 GetPageBoundsForState(AppListModel::STATE_SEARCH_RESULTS)); | 229 GetPageBoundsForState(AppListModel::STATE_SEARCH_RESULTS)); |
| 240 onscreen_bounds -= bounds().OffsetFromOrigin(); | 230 onscreen_bounds -= bounds().OffsetFromOrigin(); |
| 241 gfx::Path path; | 231 gfx::Path path; |
| 242 path.addRect(gfx::RectToSkRect(onscreen_bounds)); | 232 path.addRect(gfx::RectToSkRect(onscreen_bounds)); |
| 243 set_clip_path(path); | 233 set_clip_path(path); |
| 244 } | 234 } |
| 245 | 235 |
| 246 int SearchResultPageView::GetSearchBoxZHeight() const { | 236 int SearchResultPageView::GetSearchBoxZHeight() const { |
| 247 return switches::IsExperimentalAppListEnabled() | 237 return kSearchResultZHeight; |
| 248 ? kSearchResultZHeight | |
| 249 : AppListPage::GetSearchBoxZHeight(); | |
| 250 } | 238 } |
| 251 | 239 |
| 252 void SearchResultPageView::OnHidden() { | 240 void SearchResultPageView::OnHidden() { |
| 253 ClearSelectedIndex(); | 241 ClearSelectedIndex(); |
| 254 } | 242 } |
| 255 | 243 |
| 256 } // namespace app_list | 244 } // namespace app_list |
| OLD | NEW |