1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 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_UI_PROTOCOL_DIALOG_DELEGATE_H_ 6 #define CHROME_BROWSER_UI_PROTOCOL_DIALOG_DELEGATE_H_ 7 8 #include "base/basictypes.h" 9 #include "url/gurl.h" 10 11 // Interface implemented by objects that wish to show a dialog box Window for 12 // handling special protocols. The window that is displayed uses this interface 13 // to determine the text displayed and notify the delegate object of certain 14 // events. 15 class ProtocolDialogDelegate { 16 public: 17 explicit ProtocolDialogDelegate(const GURL& url) : url_(url) {} 18 virtual ~ProtocolDialogDelegate() {} 19 20 // Called if the user has chosen to launch the application for this protocol. 21 // |dont_block| is true if the checkbox to prevent future instances of this 22 // dialog is checked. 23 virtual void DoAccept(const GURL& url, bool dont_block) const = 0; 24 25 // Called if the user has chosen to do nothing for this protocol. 26 // |dont_block| is true if the checkbox to prevent future instances of this 27 // dialog is checked. 28 virtual void DoCancel(const GURL& url, bool dont_block) const = 0; 29 30 virtual base::string16 GetMessageText() const = 0; 31 virtual base::string16 GetCheckboxText() const = 0; 32 virtual base::string16 GetTitleText() const = 0; 33 34 const GURL& url() const { return url_; } 35 36 private: 37 const GURL url_; 38 }; 39 40 #endif // CHROME_BROWSER_UI_PROTOCOL_DIALOG_DELEGATE_H_ 41