Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6)

Side by Side Diff: ui/app_list/views/search_result_container_view.h

Issue 2609843004: Fix the Crash in the launcher's start page (a better approach). (Closed)
Patch Set: Rebase. Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | ui/app_list/views/search_result_container_view.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2014 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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 #ifndef UI_APP_LIST_VIEWS_SEARCH_RESULT_CONTAINER_VIEW_H_ 5 #ifndef UI_APP_LIST_VIEWS_SEARCH_RESULT_CONTAINER_VIEW_H_
6 #define UI_APP_LIST_VIEWS_SEARCH_RESULT_CONTAINER_VIEW_H_ 6 #define UI_APP_LIST_VIEWS_SEARCH_RESULT_CONTAINER_VIEW_H_
7 7
8 #include <stddef.h> 8 #include <stddef.h>
9 9
10 #include "base/macros.h" 10 #include "base/macros.h"
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
54 54
55 // Updates the distance_from_origin() properties of the results in this 55 // Updates the distance_from_origin() properties of the results in this
56 // container. |y_index| is the absolute y-index of the first result of this 56 // container. |y_index| is the absolute y-index of the first result of this
57 // container (counting from the top of the app list). 57 // container (counting from the top of the app list).
58 virtual void NotifyFirstResultYIndex(int y_index) = 0; 58 virtual void NotifyFirstResultYIndex(int y_index) = 0;
59 59
60 // Gets the number of down keystrokes from the beginning to the end of this 60 // Gets the number of down keystrokes from the beginning to the end of this
61 // container. 61 // container.
62 virtual int GetYSize() = 0; 62 virtual int GetYSize() = 0;
63 63
64 // Schedules an Update call using |update_factory_|. Do nothing if there is a 64 // Batching method that actually performs the update and updates layout.
65 // pending call. 65 void Update();
66 void ScheduleUpdate();
67 66
68 // Returns whether an update is currently scheduled for this container. 67 // Returns whether an update is currently scheduled for this container.
69 bool UpdateScheduled(); 68 bool UpdateScheduled();
70 69
71 // Overridden from ui::ListModelObserver: 70 // Overridden from ui::ListModelObserver:
72 void ListItemsAdded(size_t start, size_t count) override; 71 void ListItemsAdded(size_t start, size_t count) override;
73 void ListItemsRemoved(size_t start, size_t count) override; 72 void ListItemsRemoved(size_t start, size_t count) override;
74 void ListItemMoved(size_t index, size_t target_index) override; 73 void ListItemMoved(size_t index, size_t target_index) override;
75 void ListItemsChanged(size_t start, size_t count) override; 74 void ListItemsChanged(size_t start, size_t count) override;
76 75
77 // Updates the container for being selected. |from_bottom| is true if the view 76 // Updates the container for being selected. |from_bottom| is true if the view
78 // was entered into from a selected view below it; false if entered into from 77 // was entered into from a selected view below it; false if entered into from
79 // above. |directional_movement| is true if the navigation was caused by 78 // above. |directional_movement| is true if the navigation was caused by
80 // directional controls (eg, arrow keys), as opposed to linear controls (eg, 79 // directional controls (eg, arrow keys), as opposed to linear controls (eg,
81 // Tab). 80 // Tab).
82 virtual void OnContainerSelected(bool from_bottom, 81 virtual void OnContainerSelected(bool from_bottom,
83 bool directional_movement) = 0; 82 bool directional_movement) = 0;
84 83
85 private: 84 private:
85 // Schedules an Update call using |update_factory_|. Do nothing if there is a
86 // pending call.
87 void ScheduleUpdate();
88
86 // Updates UI with model. Returns the number of visible results. 89 // Updates UI with model. Returns the number of visible results.
87 virtual int Update() = 0; 90 virtual int DoUpdate() = 0;
88 91
89 // Updates UI for a change in the selected index. 92 // Updates UI for a change in the selected index.
90 virtual void UpdateSelectedIndex(int old_selected, int new_selected) = 0; 93 virtual void UpdateSelectedIndex(int old_selected, int new_selected) = 0;
91 94
92 // Batching method that actually performs the update and updates layout.
93 void DoUpdate();
94
95 Delegate* delegate_; 95 Delegate* delegate_;
96 96
97 int selected_index_; 97 int selected_index_;
98 int num_results_; 98 int num_results_;
99 99
100 double container_score_; 100 double container_score_;
101 101
102 AppListModel::SearchResults* results_; // Owned by AppListModel. 102 AppListModel::SearchResults* results_; // Owned by AppListModel.
103 103
104 // The factory that consolidates multiple Update calls into one. 104 // The factory that consolidates multiple Update calls into one.
105 base::WeakPtrFactory<SearchResultContainerView> update_factory_; 105 base::WeakPtrFactory<SearchResultContainerView> update_factory_;
106 106
107 DISALLOW_COPY_AND_ASSIGN(SearchResultContainerView); 107 DISALLOW_COPY_AND_ASSIGN(SearchResultContainerView);
108 }; 108 };
109 109
110 } // namespace app_list 110 } // namespace app_list
111 111
112 #endif // UI_APP_LIST_VIEWS_SEARCH_RESULT_CONTAINER_VIEW_H_ 112 #endif // UI_APP_LIST_VIEWS_SEARCH_RESULT_CONTAINER_VIEW_H_
OLDNEW
« no previous file with comments | « no previous file | ui/app_list/views/search_result_container_view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698