OLD | NEW |
---|---|
(Empty) | |
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 | |
3 // found in the LICENSE file. | |
4 | |
5 #include "ui/app_list/views/search_result_page_view.h" | |
6 | |
7 #include "ui/app_list/app_list_view_delegate.h" | |
8 #include "ui/app_list/search_result.h" | |
9 #include "ui/app_list/views/app_list_main_view.h" | |
10 #include "ui/app_list/views/search_box_view.h" | |
11 #include "ui/app_list/views/search_result_list_view.h" | |
12 #include "ui/app_list/views/search_result_tile_item_view.h" | |
13 #include "ui/views/layout/box_layout.h" | |
14 #include "ui/views/widget/widget.h" | |
15 | |
16 namespace app_list { | |
17 | |
18 namespace { | |
19 | |
20 const int kGroupSpacing = 20; | |
21 | |
22 // Tile container constants. | |
23 const size_t kNumSearchResultTiles = 5; | |
24 const int kTileSpacing = 10; | |
25 | |
26 } // namespace | |
27 | |
28 SearchResultPageView::SearchResultPageView(AppListMainView* app_list_main_view, | |
29 AppListViewDelegate* view_delegate) | |
30 : results_view_( | |
31 new SearchResultListView(app_list_main_view, view_delegate)), | |
32 tiles_container_(new views::View) { | |
33 SetLayoutManager( | |
34 new views::BoxLayout(views::BoxLayout::kVertical, 0, 0, kGroupSpacing)); | |
35 | |
36 // The view containing the search results. | |
37 AddChildView(results_view_); | |
38 | |
39 // The view containing the start page tiles. | |
40 InitTilesContainer(); | |
41 AddChildView(tiles_container_); | |
42 | |
43 AppListModel::SearchResults* model = view_delegate->GetModel()->results(); | |
44 SetResults(model); | |
45 results_view_->SetResults(model); | |
46 } | |
47 | |
48 SearchResultPageView::~SearchResultPageView() { | |
49 } | |
50 | |
51 void SearchResultPageView::InitTilesContainer() { | |
52 views::BoxLayout* tiles_layout_manager = | |
53 new views::BoxLayout(views::BoxLayout::kHorizontal, 0, 0, kTileSpacing); | |
54 tiles_layout_manager->set_main_axis_alignment( | |
55 views::BoxLayout::MAIN_AXIS_ALIGNMENT_CENTER); | |
56 tiles_container_->SetLayoutManager(tiles_layout_manager); | |
Matt Giuca
2014/11/04 07:44:37
nit: Feels cramped; make some blank lines.
calamity
2014/11/06 04:55:01
Done.
| |
57 for (size_t i = 0; i < kNumSearchResultTiles; ++i) { | |
58 SearchResultTileItemView* tile_item = new SearchResultTileItemView(); | |
59 tiles_container_->AddChildView(tile_item); | |
60 tile_views_.push_back(tile_item); | |
61 } | |
62 } | |
63 | |
64 bool SearchResultPageView::OnKeyPressed(const ui::KeyEvent& event) { | |
65 return results_view_->OnKeyPressed(event); | |
66 } | |
67 | |
68 void SearchResultPageView::Update() { | |
69 results_view_->SetSelectedIndex(0); | |
70 std::vector<SearchResult*> display_results = | |
71 AppListModel::FilterSearchResultsByDisplayType( | |
72 results(), SearchResult::DISPLAY_TILE, kNumSearchResultTiles); | |
Matt Giuca
2014/11/04 07:44:37
nit: ditto
calamity
2014/11/06 04:55:01
Done.
| |
73 for (size_t i = 0; i < kNumSearchResultTiles; ++i) { | |
74 SearchResult* item = NULL; | |
Matt Giuca
2014/11/04 07:44:37
nullptr
calamity
2014/11/06 04:55:01
Done.
| |
75 if (i < display_results.size()) | |
76 item = display_results[i]; | |
Matt Giuca
2014/11/04 07:44:37
I think this can read nicer as:
SearchResult* item
calamity
2014/11/06 04:55:01
Done.
| |
77 tile_views_[i]->SetSearchResult(item); | |
78 } | |
79 tiles_container_->Layout(); | |
80 Layout(); | |
81 } | |
82 | |
83 } // namespace app_list | |
OLD | NEW |