Index: chrome/browser/ui/metro_pin_tab_helper.h |
diff --git a/chrome/browser/ui/metro_pin_tab_helper.h b/chrome/browser/ui/metro_pin_tab_helper.h |
index c72e503236209ea9eb48a5f37c71b16d2b93737e..6700773c13c2f3d8145cfc824c1e5d551ca3b480 100644 |
--- a/chrome/browser/ui/metro_pin_tab_helper.h |
+++ b/chrome/browser/ui/metro_pin_tab_helper.h |
@@ -10,11 +10,23 @@ |
// Per-tab class to help manage metro pinning. |
class MetroPinTabHelper : public content::WebContentsObserver { |
public: |
- explicit MetroPinTabHelper(content::WebContents* tab_contents); |
+ // Objects implement this interface to get notified about changes in the |
+ // metro pinned state. |
+ class Delegate { |
sky
2012/07/20 16:46:41
Move this into its own file.
benwells
2012/07/23 08:03:43
Done.
|
+ public: |
+ // Notification that the pinned state of the current URL changed. |
+ virtual void IsPinnedChanged(content::WebContents* source, bool pinned) = 0; |
+ |
+ protected: |
+ virtual ~Delegate(); |
+ }; |
+ explicit MetroPinTabHelper(content::WebContents* web_contents); |
virtual ~MetroPinTabHelper(); |
bool is_pinned() const { return is_pinned_; } |
+ void set_delegate(Delegate* delegate) { delegate_ = delegate; } |
+ |
void TogglePinnedToStartScreen(); |
// content::WebContentsObserver overrides: |
@@ -26,9 +38,15 @@ class MetroPinTabHelper : public content::WebContentsObserver { |
// Queries the metro driver about the pinned state of the current URL. |
void UpdatePinnedStateForCurrentURL(); |
+ // Update the pinned state and notify the delegate. |
+ void SetIsPinned(bool is_pinned); |
+ |
// Whether the current URL is pinned to the metro start screen. |
bool is_pinned_; |
+ // The delegate that we inform when the is_pinned_ state changes. |
+ Delegate* delegate_; |
+ |
DISALLOW_COPY_AND_ASSIGN(MetroPinTabHelper); |
}; |