15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef CHROME_BROWSER_SYNC_SYNC_GLOBAL_ERROR_H_ 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define CHROME_BROWSER_SYNC_SYNC_GLOBAL_ERROR_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/basictypes.h" 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/compiler_specific.h" 102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "chrome/browser/sync/profile_sync_service_observer.h" 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/ui/global_error/global_error.h" 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class ProfileSyncService; 14c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)class SigninManagerBase; 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Shows sync errors on the wrench menu using a bubble view and a 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// menu item. 180f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles)class SyncGlobalError : public GlobalErrorWithStandardBubble, 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public ProfileSyncServiceObserver { 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 21c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SyncGlobalError(ProfileSyncService* service, SigninManagerBase* signin); 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~SyncGlobalError(); 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool HasMenuItem() OVERRIDE; 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual int MenuItemCommandID() OVERRIDE; 26a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) virtual base::string16 MenuItemLabel() OVERRIDE; 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void ExecuteMenuItem(Browser* browser) OVERRIDE; 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool HasBubbleView() OVERRIDE; 30a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) virtual base::string16 GetBubbleViewTitle() OVERRIDE; 31d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) virtual std::vector<base::string16> GetBubbleViewMessages() OVERRIDE; 32a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) virtual base::string16 GetBubbleViewAcceptButtonLabel() OVERRIDE; 33a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) virtual base::string16 GetBubbleViewCancelButtonLabel() OVERRIDE; 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void OnBubbleViewDidClose(Browser* browser) OVERRIDE; 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void BubbleViewAcceptButtonPressed(Browser* browser) OVERRIDE; 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void BubbleViewCancelButtonPressed(Browser* browser) OVERRIDE; 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // ProfileSyncServiceObserver implementation. 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void OnStateChanged() OVERRIDE; 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 42a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) base::string16 bubble_accept_label_; 43a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) base::string16 bubble_message_; 44a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) base::string16 menu_label_; 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ProfileSyncService* service_; 46c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SigninManagerBase* signin_; 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(SyncGlobalError); 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // CHROME_BROWSER_SYNC_SYNC_GLOBAL_ERROR_H_ 52