[email protected] | ebbbb9f | 2011-03-09 13:16:14 | [diff] [blame] | 1 | // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
[email protected] | 965bb09 | 2010-04-09 11:59:02 | [diff] [blame] | 2 | // Use of this source code is governed by a BSD-style license that can be |
3 | // found in the LICENSE file. | ||||
4 | |||||
5 | #ifndef CHROME_BROWSER_REPOST_FORM_WARNING_CONTROLLER_H_ | ||||
6 | #define CHROME_BROWSER_REPOST_FORM_WARNING_CONTROLLER_H_ | ||||
[email protected] | 32b76ef | 2010-07-26 23:08:24 | [diff] [blame] | 7 | #pragma once |
[email protected] | 965bb09 | 2010-04-09 11:59:02 | [diff] [blame] | 8 | |
[email protected] | 299425b | 2011-03-02 07:45:20 | [diff] [blame] | 9 | #include "content/browser/tab_contents/constrained_window.h" |
[email protected] | ebbbb9f | 2011-03-09 13:16:14 | [diff] [blame] | 10 | #include "content/common/notification_observer.h" |
11 | #include "content/common/notification_registrar.h" | ||||
[email protected] | 965bb09 | 2010-04-09 11:59:02 | [diff] [blame] | 12 | |
[email protected] | 965bb09 | 2010-04-09 11:59:02 | [diff] [blame] | 13 | class TabContents; |
14 | |||||
15 | // This class is used to continue or cancel a pending reload when the | ||||
16 | // repost form warning is shown. It is owned by the platform-dependent | ||||
[email protected] | b535bf1e | 2010-04-14 16:19:40 | [diff] [blame] | 17 | // |RepostFormWarning{Gtk,Mac,View}| classes. |
[email protected] | 965bb09 | 2010-04-09 11:59:02 | [diff] [blame] | 18 | class RepostFormWarningController : public NotificationObserver { |
19 | public: | ||||
20 | explicit RepostFormWarningController(TabContents* tab_contents); | ||||
[email protected] | b535bf1e | 2010-04-14 16:19:40 | [diff] [blame] | 21 | virtual ~RepostFormWarningController(); |
[email protected] | 965bb09 | 2010-04-09 11:59:02 | [diff] [blame] | 22 | |
23 | // Show the warning dialog. | ||||
24 | void Show(ConstrainedWindowDelegate* window_delegate); | ||||
25 | |||||
26 | // Cancel the reload. | ||||
27 | void Cancel(); | ||||
28 | |||||
29 | // Continue the reload. | ||||
30 | void Continue(); | ||||
31 | |||||
32 | private: | ||||
[email protected] | 965bb09 | 2010-04-09 11:59:02 | [diff] [blame] | 33 | // NotificationObserver implementation. |
34 | // Watch for a new load or a closed tab and dismiss the dialog if they occur. | ||||
[email protected] | 43211582 | 2011-07-10 15:52:27 | [diff] [blame^] | 35 | virtual void Observe(int type, |
[email protected] | 78994ab0 | 2010-12-08 18:06:44 | [diff] [blame] | 36 | const NotificationSource& source, |
37 | const NotificationDetails& details); | ||||
[email protected] | 965bb09 | 2010-04-09 11:59:02 | [diff] [blame] | 38 | |
39 | // Close the warning dialog. | ||||
40 | void CloseDialog(); | ||||
41 | |||||
42 | NotificationRegistrar registrar_; | ||||
43 | |||||
44 | // Tab contents, used to continue the reload. | ||||
45 | TabContents* tab_contents_; | ||||
46 | |||||
47 | ConstrainedWindow* window_; | ||||
48 | |||||
49 | DISALLOW_COPY_AND_ASSIGN(RepostFormWarningController); | ||||
50 | }; | ||||
51 | |||||
52 | #endif // CHROME_BROWSER_REPOST_FORM_WARNING_CONTROLLER_H_ |