| OLD | NEW |
| 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef CHROME_BROWSER_EXTENSIONS_EXTENSION_POPUP_HOST_H_ | 5 #ifndef CHROME_BROWSER_EXTENSIONS_EXTENSION_POPUP_HOST_H_ |
| 6 #define CHROME_BROWSER_EXTENSIONS_EXTENSION_POPUP_HOST_H_ | 6 #define CHROME_BROWSER_EXTENSIONS_EXTENSION_POPUP_HOST_H_ |
| 7 | 7 |
| 8 #include "base/scoped_ptr.h" | 8 #include "base/scoped_ptr.h" |
| 9 #include "build/build_config.h" | 9 #include "build/build_config.h" |
| 10 #if defined(TOOLKIT_VIEWS) | 10 #if defined(TOOLKIT_VIEWS) |
| (...skipping 18 matching lines...) Expand all Loading... |
| 29 public BrowserBubble::Delegate, | 29 public BrowserBubble::Delegate, |
| 30 #endif | 30 #endif |
| 31 public NotificationObserver { | 31 public NotificationObserver { |
| 32 public: | 32 public: |
| 33 // Classes wishing to host pop-ups should inherit from this class, and | 33 // Classes wishing to host pop-ups should inherit from this class, and |
| 34 // implement the virtual methods below. This class manages the lifetime | 34 // implement the virtual methods below. This class manages the lifetime |
| 35 // of an ExtensionPopupHost instance. | 35 // of an ExtensionPopupHost instance. |
| 36 class PopupDelegate { | 36 class PopupDelegate { |
| 37 public: | 37 public: |
| 38 PopupDelegate() {} | 38 PopupDelegate() {} |
| 39 virtual ~PopupDelegate() {} | 39 virtual ~PopupDelegate(); |
| 40 virtual Browser* GetBrowser() = 0; | 40 virtual Browser* GetBrowser() const = 0; |
| 41 virtual RenderViewHost* GetRenderViewHost() = 0; | 41 virtual RenderViewHost* GetRenderViewHost() = 0; |
| 42 virtual Profile* GetProfile(); |
| 42 | 43 |
| 43 // Constructs, or returns the existing ExtensionPopupHost instance. | 44 // Constructs, or returns the existing ExtensionPopupHost instance. |
| 44 ExtensionPopupHost* popup_host(); | 45 ExtensionPopupHost* popup_host(); |
| 46 |
| 45 private: | 47 private: |
| 46 scoped_ptr<ExtensionPopupHost> popup_host_; | 48 scoped_ptr<ExtensionPopupHost> popup_host_; |
| 47 | 49 |
| 48 DISALLOW_COPY_AND_ASSIGN(PopupDelegate); | 50 DISALLOW_COPY_AND_ASSIGN(PopupDelegate); |
| 49 }; | 51 }; |
| 50 | 52 |
| 51 explicit ExtensionPopupHost(PopupDelegate* delegate); | 53 explicit ExtensionPopupHost(PopupDelegate* delegate); |
| 52 virtual ~ExtensionPopupHost(); | 54 virtual ~ExtensionPopupHost(); |
| 53 | 55 |
| 56 void RevokeDelegate() { delegate_ = NULL; } |
| 57 |
| 54 // Dismiss the hosted pop-up, if one is present. | 58 // Dismiss the hosted pop-up, if one is present. |
| 55 void DismissPopup(); | 59 void DismissPopup(); |
| 56 | 60 |
| 57 #if defined(TOOLKIT_VIEWS) | 61 #if defined(TOOLKIT_VIEWS) |
| 58 ExtensionPopup* child_popup() const { return child_popup_; } | 62 ExtensionPopup* child_popup() const { return child_popup_; } |
| 59 void set_child_popup(ExtensionPopup* popup) { | 63 void set_child_popup(ExtensionPopup* popup) { |
| 60 // An extension may only have one popup active at a given time. | 64 // An extension may only have one popup active at a given time. |
| 61 DismissPopup(); | 65 DismissPopup(); |
| 62 child_popup_ = popup; | 66 child_popup_ = popup; |
| 63 } | 67 } |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 96 PopupDelegate* delegate_; | 100 PopupDelegate* delegate_; |
| 97 | 101 |
| 98 // Boolean value used to ensure that the host only registers for event | 102 // Boolean value used to ensure that the host only registers for event |
| 99 // notifications once. | 103 // notifications once. |
| 100 bool listeners_registered_; | 104 bool listeners_registered_; |
| 101 | 105 |
| 102 DISALLOW_COPY_AND_ASSIGN(ExtensionPopupHost); | 106 DISALLOW_COPY_AND_ASSIGN(ExtensionPopupHost); |
| 103 }; | 107 }; |
| 104 | 108 |
| 105 #endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_POPUP_HOST_H_ | 109 #endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_POPUP_HOST_H_ |
| OLD | NEW |