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

Unified Diff: chrome/browser/ui/app_list/app_list_service_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
« no previous file with comments | « chrome/browser/ui/app_list/app_list_factory.h ('k') | chrome/browser/ui/app_list/app_list_service_views.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/app_list/app_list_service_views.h
diff --git a/chrome/browser/ui/views/app_list/linux/app_list_service_linux.h b/chrome/browser/ui/app_list/app_list_service_views.h
similarity index 36%
copy from chrome/browser/ui/views/app_list/linux/app_list_service_linux.h
copy to chrome/browser/ui/app_list/app_list_service_views.h
index 81a204695c91c6d29b6a439334aec381bb3d3972..925f4f132ec00744aec9b12e85206f3b4ce36789 100644
--- a/chrome/browser/ui/views/app_list/linux/app_list_service_linux.h
+++ b/chrome/browser/ui/app_list/app_list_service_views.h
@@ -1,26 +1,34 @@
-// Copyright 2013 The Chromium Authors. All rights reserved.
+// Copyright 2014 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_LINUX_APP_LIST_SERVICE_LINUX_H_
-#define CHROME_BROWSER_UI_VIEWS_APP_LIST_LINUX_APP_LIST_SERVICE_LINUX_H_
+#ifndef CHROME_BROWSER_UI_APP_LIST_APP_LIST_SERVICE_VIEWS_H_
+#define CHROME_BROWSER_UI_APP_LIST_APP_LIST_SERVICE_VIEWS_H_
#include "base/memory/scoped_ptr.h"
#include "chrome/browser/ui/app_list/app_list_service_impl.h"
+#include "chrome/browser/ui/app_list/app_list_shower_delegate.h"
+#include "chrome/browser/ui/app_list/app_list_shower_views.h"
-template <typename T> struct DefaultSingletonTraits;
+class AppListControllerDelegate;
-class AppListShower;
-
-// AppListServiceLinux manages global resources needed for the app list to
-// operate, and controls when the app list is opened and closed.
-class AppListServiceLinux : public AppListServiceImpl {
+// AppListServiceViews manages a desktop app list that uses toolkit-views.
+class AppListServiceViews : public AppListServiceImpl,
+ public AppListShowerDelegate {
public:
- virtual ~AppListServiceLinux();
+ explicit AppListServiceViews(
+ scoped_ptr<AppListControllerDelegate> controller_delegate);
+ virtual ~AppListServiceViews();
+
+ // Set |can_dismiss| to prevent the app list dismissing when losing focus. For
+ // example, while showing a window-modal dialog.
+ void set_can_dismiss(bool can_dismiss) { can_dismiss_ = can_dismiss; }
- static AppListServiceLinux* GetInstance();
- void set_can_close(bool can_close);
- void OnViewBeingDestroyed();
+ AppListShower& shower() { return shower_; }
+
+ // Called by the AppListControllerDelegate when it is told that the app list
+ // view must be destroyed.
+ virtual void OnViewBeingDestroyed();
// AppListService overrides:
virtual void Init(Profile* initial_profile) OVERRIDE;
@@ -32,19 +40,17 @@ class AppListServiceLinux : public AppListServiceImpl {
virtual Profile* GetCurrentAppListProfile() OVERRIDE;
virtual AppListControllerDelegate* GetControllerDelegate() OVERRIDE;
- // AppListServiceImpl overrides:
- virtual void CreateShortcut() OVERRIDE;
+ // AppListShowerDelegate overrides:
+ virtual AppListControllerDelegate* GetControllerDelegateForCreate() OVERRIDE;
private:
- friend struct DefaultSingletonTraits<AppListServiceLinux>;
-
- AppListServiceLinux();
+ // Responsible for creating the app list and responding to profile changes.
+ AppListShower shower_;
- // Responsible for putting views on the screen.
- scoped_ptr<AppListShower> shower_;
+ bool can_dismiss_;
scoped_ptr<AppListControllerDelegate> controller_delegate_;
- DISALLOW_COPY_AND_ASSIGN(AppListServiceLinux);
+ DISALLOW_COPY_AND_ASSIGN(AppListServiceViews);
};
-#endif // CHROME_BROWSER_UI_VIEWS_APP_LIST_LINUX_APP_LIST_SERVICE_LINUX_H_
+#endif // CHROME_BROWSER_UI_APP_LIST_APP_LIST_SERVICE_VIEWS_H_
« no previous file with comments | « chrome/browser/ui/app_list/app_list_factory.h ('k') | chrome/browser/ui/app_list/app_list_service_views.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698