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

Side by Side Diff: ui/aura_shell/app_list/results_view.h

Issue 8890049: [Aura] Implement views-based applist. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebased and refactored Created 9 years 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
(Empty)
1 // Copyright (c) 2011 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 #ifndef UI_AURA_SHELL_APP_LIST_RESULTS_VIEW_H_
6 #define UI_AURA_SHELL_APP_LIST_RESULTS_VIEW_H_
7 #pragma once
8
9 #include <string>
10 #include <vector>
11
12 #include "ui/aura_shell/aura_shell_export.h"
13 #include "ui/base/models/list_model_observer.h"
14 #include "ui/views/controls/button/button.h"
15 #include "ui/views/view.h"
16
17 namespace views {
18 class BoundsAnimator;
19 }
20
21 namespace aura_shell {
22
23 class AppListModel;
24 class TilesPageView;
25
26 // ResultView displays UI for AppListModel. Each group is displayed in a
sky 2011/12/14 16:51:33 displays the UI for an
xiyuan 2011/12/20 00:14:42 Done.
27 // page (TilesPageView) and each item is displayed in a tile (TileView).
sky 2011/12/14 16:51:33 It would be nice if these names matched your model
xiyuan 2011/12/20 00:14:42 Done. ResultsView -> AppListGroupsView TilesPageV
28 // If there are more than one group, a button strip is displayed to allow
29 // user switching between pages.
30 class AURA_SHELL_EXPORT ResultsView : public views::View,
31 public views::ButtonListener,
32 public ui::ListModelObserver {
33 public:
34 explicit ResultsView(AppListModel* model);
35 virtual ~ResultsView();
36
37 // Gets current focused tile.
38 views::View* GetFocusedTile() const;
39
40 private:
41 // Updates from model.
42 void Update();
43
44 // Adds a result group page.
45 void AddPage(const std::string& title, TilesPageView* page);
46
47 // Gets preferred number of tiles per row.
48 int GetPreferredTilesPerRow() const;
49
50 // Gets current result page.
51 TilesPageView* GetCurrentPageView() const;
52
53 // Sets current result page.
54 void SetCurrentPage(int page);
55
56 // Overridden from views::View:
57 virtual void Layout() OVERRIDE;
58 virtual bool OnKeyPressed(const views::KeyEvent& event) OVERRIDE;
59
60 // Overridden from views::ButtonListener:
61 virtual void ButtonPressed(views::Button* sender,
62 const views::Event& event) OVERRIDE;
63
64 // Overridden from ListModelObserver:
65 virtual void ListItemsAdded(int start, int count) OVERRIDE;
66 virtual void ListItemsRemoved(int start, int count) OVERRIDE;
67 virtual void ListItemsChanged(int start, int count) OVERRIDE;
68
69 AppListModel* model_; // Owned by parent AppListView.
70
71 std::vector<TilesPageView*> pages_;
72 views::View* page_buttons_;
73 int current_page_;
74
75 scoped_ptr<views::BoundsAnimator> animator_;
76
77 DISALLOW_COPY_AND_ASSIGN(ResultsView);
78 };
79
80 } // namespace aura_shell
81
82 #endif // UI_AURA_SHELL_APP_LIST_RESULTS_VIEW_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698