| // Copyright 2013 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef CHROME_BROWSER_UI_VIEWS_APP_LIST_WIN_APP_LIST_SERVICE_WIN_H_ |
| #define CHROME_BROWSER_UI_VIEWS_APP_LIST_WIN_APP_LIST_SERVICE_WIN_H_ |
| |
| #include "base/callback.h" |
| #include "base/memory/scoped_ptr.h" |
| #include "chrome/browser/ui/app_list/app_list_service_views.h" |
| |
| class ActivationTrackerWin; |
| |
| template <typename T> struct DefaultSingletonTraits; |
| |
| class AppListServiceWin : public AppListServiceViews { |
| public: |
| ~AppListServiceWin() override; |
| |
| static AppListServiceWin* GetInstance(); |
| |
| // AppListService overrides: |
| void SetAppListNextPaintCallback(void (*callback)()) override; |
| void Init(Profile* initial_profile) override; |
| void ShowForProfile(Profile* requested_profile) override; |
| void CreateShortcut() override; |
| |
| private: |
| friend struct DefaultSingletonTraits<AppListServiceWin>; |
| |
| // AppListServiceViews overrides: |
| void OnViewBeingDestroyed() override; |
| |
| // AppListShowerDelegate overrides: |
| void OnViewCreated() override; |
| void OnViewDismissed() override; |
| void MoveNearCursor(app_list::AppListView* view) override; |
| |
| AppListServiceWin(); |
| |
| bool IsWarmupNeeded(); |
| void ScheduleWarmup(); |
| |
| // Loads the profile last used with the app list and populates the view from |
| // it without showing it so that the next show is faster. Does nothing if the |
| // view already exists, or another profile is in the middle of being loaded to |
| // be shown. |
| void LoadProfileForWarmup(); |
| void OnLoadProfileForWarmup(Profile* initial_profile); |
| |
| scoped_ptr<ActivationTrackerWin> activation_tracker_; |
| |
| base::Closure next_paint_callback_; |
| |
| DISALLOW_COPY_AND_ASSIGN(AppListServiceWin); |
| }; |
| |
| #endif // CHROME_BROWSER_UI_VIEWS_APP_LIST_WIN_APP_LIST_SERVICE_WIN_H_ |