Index: chrome/browser/ui/cocoa/apps/quit_with_apps_controller_mac.h |
diff --git a/chrome/browser/ui/cocoa/apps/quit_with_apps_controller_mac.h b/chrome/browser/ui/cocoa/apps/quit_with_apps_controller_mac.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..b10caaf90ec149e648dfe7e14fd5931a061129d5 |
--- /dev/null |
+++ b/chrome/browser/ui/cocoa/apps/quit_with_apps_controller_mac.h |
@@ -0,0 +1,49 @@ |
+// 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_COCOA_APPS_QUIT_WITH_APPS_CONTROLLER_MAC_H_ |
+#define CHROME_BROWSER_UI_COCOA_APPS_QUIT_WITH_APPS_CONTROLLER_MAC_H_ |
+ |
+#include "base/macros.h" |
+#include "base/memory/scoped_ptr.h" |
+#include "chrome/browser/notifications/notification.h" |
+ |
+class PrefRegistrySimple; |
+ |
+// QuitWithAppsController checks whether any apps are running and shows a |
+// notification to quit all of them. |
+class QuitWithAppsController : public NotificationDelegate { |
+ public: |
+ static const char kQuitWithAppsNotificationID[]; |
+ |
+ QuitWithAppsController(); |
+ |
+ // NotificationDelegate interface. |
+ virtual void Display() OVERRIDE; |
+ virtual void Error() OVERRIDE; |
+ virtual void Close(bool by_user) OVERRIDE; |
+ virtual void Click() OVERRIDE; |
+ virtual void ButtonClick(int button_index) OVERRIDE; |
+ virtual content::RenderViewHost* GetRenderViewHost() const OVERRIDE; |
+ virtual std::string id() const OVERRIDE; |
+ |
+ // Attempt to quit Chrome. This will display a notification and return false |
+ // if there are apps running. |
+ bool ShouldQuit(); |
+ |
+ // Register prefs used by QuitWithAppsController. |
+ static void RegisterPrefs(PrefRegistrySimple* registry); |
+ |
+ private: |
+ virtual ~QuitWithAppsController(); |
+ |
+ scoped_ptr<Notification> notification_; |
+ |
+ // Whether to suppress showing the notification for the rest of the session. |
+ bool suppress_for_session_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(QuitWithAppsController); |
+}; |
+ |
+#endif // CHROME_BROWSER_UI_COCOA_APPS_QUIT_WITH_APPS_CONTROLLER_MAC_H_ |