Chromium Code Reviews| 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); |
| }; |