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

Side by Side Diff: ui/app_list/app_list_model.h

Issue 10386224: app_list: Add search box and search result view for v2. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix win_aura Created 8 years, 6 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 | Annotate | Revision Log
OLDNEW
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 UI_APP_LIST_APP_LIST_MODEL_H_ 5 #ifndef UI_APP_LIST_APP_LIST_MODEL_H_
6 #define UI_APP_LIST_APP_LIST_MODEL_H_ 6 #define UI_APP_LIST_APP_LIST_MODEL_H_
7 #pragma once 7 #pragma once
8 8
9 #include "base/basictypes.h" 9 #include "base/basictypes.h"
10 #include "base/memory/scoped_ptr.h"
10 #include "ui/app_list/app_list_export.h" 11 #include "ui/app_list/app_list_export.h"
11 #include "ui/app_list/app_list_item_model.h"
12 #include "ui/base/models/list_model.h" 12 #include "ui/base/models/list_model.h"
13 13
14 namespace app_list { 14 namespace app_list {
15 15
16 // Model for AppListModelView that owns a list of AppListItemModel. 16 class AppListItemModel;
17 class SearchBoxModel;
18 class SearchResult;
19
20 // Master model of app list that consists of three sub models: Apps,
21 // SearchBoxModel and SearchResults. The Apps sub model owns a list of
22 // AppListItemModel and is displayed in the grid view. SearchBoxModel is
23 // the model for SearchBoxView. SearchResults owns a list of SearchResult.
17 class APP_LIST_EXPORT AppListModel { 24 class APP_LIST_EXPORT AppListModel {
18 public: 25 public:
26 typedef ui::ListModel<AppListItemModel> Apps;
27 typedef ui::ListModel<SearchResult> SearchResults;
28
19 AppListModel(); 29 AppListModel();
20 ~AppListModel(); 30 ~AppListModel();
21 31
22 // Adds an item to the model. The model takes ownership of |item|. 32 Apps* apps() { return apps_.get(); }
23 void AddItem(AppListItemModel* item); 33 SearchBoxModel* search_box() { return search_box_.get(); }
24 void AddItemAt(size_t index, AppListItemModel* item); 34 SearchResults* results() { return results_.get(); }
25
26 void DeleteItemAt(size_t index);
27
28 AppListItemModel* GetItemAt(size_t index);
29
30 void AddObserver(ui::ListModelObserver* observer);
31 void RemoveObserver(ui::ListModelObserver* observer);
32
33 size_t item_count() const { return items_.item_count(); }
34 35
35 private: 36 private:
36 typedef ui::ListModel<AppListItemModel> Items; 37 scoped_ptr<Apps> apps_;
37 Items items_; 38
39 scoped_ptr<SearchBoxModel> search_box_;
40 scoped_ptr<SearchResults> results_;
38 41
39 DISALLOW_COPY_AND_ASSIGN(AppListModel); 42 DISALLOW_COPY_AND_ASSIGN(AppListModel);
40 }; 43 };
41 44
42 } // namespace app_list 45 } // namespace app_list
43 46
44 #endif // UI_APP_LIST_APP_LIST_MODEL_H_ 47 #endif // UI_APP_LIST_APP_LIST_MODEL_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698