| 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_
|
|
|