1ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved.
2c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Use of this source code is governed by a BSD-style license that can be
3c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// found in the LICENSE file.
4c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
5c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#ifndef CHROME_BROWSER_CHROMEOS_EXTERNAL_PROTOCOL_DIALOG_H_
6c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#define CHROME_BROWSER_CHROMEOS_EXTERNAL_PROTOCOL_DIALOG_H_
73345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#pragma once
8c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
9c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "base/time.h"
10c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "views/window/dialog_delegate.h"
11c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
12c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass GURL;
13c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass TabContents;
14c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
15ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsennamespace views {
16ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenclass MessageBoxView;
17ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen}
18ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
19c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// An external protocol dialog for ChromeOS. Unlike other platforms,
20c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// ChromeOS does not support launching external program, therefore,
21c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// this dialog simply says it is not supported.
22c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass ExternalProtocolDialog : public views::DialogDelegate {
23c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch public:
24c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // RunExternalProtocolDialog calls this private constructor.
25c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  ExternalProtocolDialog(TabContents* tab_contents, const GURL& url);
26c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
27c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  virtual ~ExternalProtocolDialog();
28c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
29c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // views::DialogDelegate Methods:
30c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  virtual int GetDialogButtons() const;
31c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  virtual std::wstring GetDialogButtonLabel(
32c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch      MessageBoxFlags::DialogButton button) const;
33c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  virtual std::wstring GetWindowTitle() const;
34c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  virtual void DeleteDelegate();
35c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  virtual bool Accept();
36c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  virtual views::View* GetContentsView();
37c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
38c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // views::WindowDelegate Methods:
39c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  virtual bool IsAlwaysOnTop() const { return false; }
40c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  virtual bool IsModal() const { return false; }
41c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
42c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch private:
43c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // The message box view whose commands we handle.
44ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  views::MessageBoxView* message_box_view_;
45c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
46c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // The time at which this dialog was created.
47c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  base::TimeTicks creation_time_;
48c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
49c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // The scheme of the url.
503345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  std::string scheme_;
51c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
52c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  DISALLOW_COPY_AND_ASSIGN(ExternalProtocolDialog);
53c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch};
54c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
55c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#endif  // CHROME_BROWSER_CHROMEOS_EXTERNAL_PROTOCOL_DIALOG_H_
56