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

Unified Diff: chrome/browser/ui/app_list/app_list_shower_views.h

Issue 225053004: Refactor views app list services to allow more code sharing (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase+sim30 Created 6 years, 8 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/app_list/app_list_shower_views.h
diff --git a/chrome/browser/ui/app_list/app_list_shower.h b/chrome/browser/ui/app_list/app_list_shower_views.h
similarity index 49%
rename from chrome/browser/ui/app_list/app_list_shower.h
rename to chrome/browser/ui/app_list/app_list_shower_views.h
index 4228d951a4a55a26074610727d3d4ea3ecdd9b09..f574a2f641118bb82b1b2b237975c92a6abedcdd 100644
--- a/chrome/browser/ui/app_list/app_list_shower.h
+++ b/chrome/browser/ui/app_list/app_list_shower_views.h
@@ -2,65 +2,74 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef CHROME_BROWSER_UI_APP_LIST_APP_LIST_SHOWER_H_
-#define CHROME_BROWSER_UI_APP_LIST_APP_LIST_SHOWER_H_
+#ifndef CHROME_BROWSER_UI_APP_LIST_APP_LIST_SHOWER_VIEWS_H_
+#define CHROME_BROWSER_UI_APP_LIST_APP_LIST_SHOWER_VIEWS_H_
#include "base/memory/scoped_ptr.h"
-#include "chrome/browser/ui/app_list/app_list.h"
-#include "chrome/browser/ui/app_list/app_list_factory.h"
#include "ui/app_list/pagination_model.h"
#include "ui/gfx/native_widget_types.h"
namespace app_list {
-class AppListModel;
+class AppListView;
}
+class AppListShowerDelegate;
class AppListShowerUnitTest;
class Profile;
class ScopedKeepAlive;
-// Creates and shows an AppList as needed for non-Ash desktops. It is owned
-// by AppListService.
+// Creates and shows an AppList as needed for non-Ash desktops. It is owned by
+// AppListServiceViews.
class AppListShower {
public:
- AppListShower(scoped_ptr<AppListFactory> factory,
- AppListService* service);
- ~AppListShower();
-
- void set_can_close(bool can_close) {
- can_close_app_list_ = can_close;
- }
+ explicit AppListShower(AppListShowerDelegate* delegate);
+ virtual ~AppListShower();
void ShowForProfile(Profile* requested_profile);
gfx::NativeWindow GetWindow();
- AppList* app_list() { return app_list_.get(); }
+ app_list::AppListView* app_list() { return app_list_; }
Profile* profile() const { return profile_; }
// Create or recreate, and initialize |app_list_| from |requested_profile|.
void CreateViewForProfile(Profile* requested_profile);
void DismissAppList();
- void HandleViewBeingDestroyed();
- bool IsAppListVisible() const;
+
+ // Virtual functions mocked out in tests.
+ virtual void HandleViewBeingDestroyed();
+ virtual bool IsAppListVisible() const;
void WarmupForProfile(Profile* profile);
- bool HasView() const;
+ virtual bool HasView() const;
+
+ protected:
+ virtual app_list::AppListView* MakeViewForCurrentProfile();
+ virtual void UpdateViewForNewProfile();
+
+ // Shows the app list, activates it, and ensures the taskbar icon is updated.
+ virtual void Show();
+ virtual void Hide();
private:
friend class ::AppListShowerUnitTest;
void ResetKeepAlive();
- scoped_ptr<AppListFactory> factory_;
- scoped_ptr<ScopedKeepAlive> keep_alive_;
- scoped_ptr<AppList> app_list_;
- AppListService* service_; // Weak ptr, owns this.
+ AppListShowerDelegate* delegate_; // Weak. Owns this.
+
+ // The profile currently shown by |app_list_|.
Profile* profile_;
- bool can_close_app_list_;
+
+ // The view, once created. Owned by native widget.
+ app_list::AppListView* app_list_;
// Used to keep the browser process alive while the app list is visible.
+ scoped_ptr<ScopedKeepAlive> keep_alive_;
+
+ bool window_icon_updated_;
+ app_list::PaginationModel pagination_model_;
DISALLOW_COPY_AND_ASSIGN(AppListShower);
};
-#endif // CHROME_BROWSER_UI_APP_LIST_APP_LIST_SHOWER_H_
+#endif // CHROME_BROWSER_UI_APP_LIST_APP_LIST_SHOWER_VIEWS_H_
« no previous file with comments | « chrome/browser/ui/app_list/app_list_shower_delegate.h ('k') | chrome/browser/ui/app_list/app_list_shower_views.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698