1 // Copyright (c) 2011 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 #include "chrome/browser/ui/views/repost_form_warning_view.h"
6
7 #include "base/utf_string_conversions.h"
8 #include "chrome/browser/repost_form_warning_controller.h"
9 #include "chrome/browser/ui/browser_list.h"
10 #include "chrome/browser/ui/browser_window.h"
11 #include "content/browser/tab_contents/navigation_controller.h"
12 #include "content/browser/tab_contents/tab_contents.h"
13 #include "grit/generated_resources.h"
14 #include "ui/base/l10n/l10n_util.h"
15 #include "ui/base/message_box_flags.h"
16 #include "views/controls/message_box_view.h"
17 #include "views/window/window.h"
18
19 namespace browser {
20
21 // Declared in browser_dialogs.h so others don't have to depend on our header.
ShowRepostFormWarningDialog(gfx::NativeWindow parent_window,TabContents * tab_contents)22 void ShowRepostFormWarningDialog(gfx::NativeWindow parent_window,
23 TabContents* tab_contents) {
24 new RepostFormWarningView(parent_window, tab_contents);
25 }
26
27 } // namespace browser
28
29 //////////////////////////////////////////////////////////////////////////////
30 // RepostFormWarningView, constructor & destructor:
31
RepostFormWarningView(gfx::NativeWindow parent_window,TabContents * tab_contents)32 RepostFormWarningView::RepostFormWarningView(
33 gfx::NativeWindow parent_window,
34 TabContents* tab_contents)
35 : controller_(new RepostFormWarningController(tab_contents)),
36 message_box_view_(NULL) {
37 message_box_view_ = new views::MessageBoxView(
38 ui::MessageBoxFlags::kIsConfirmMessageBox,
39 UTF16ToWide(l10n_util::GetStringUTF16(IDS_HTTP_POST_WARNING)),
40 std::wstring());
41 controller_->Show(this);
42 }
43
~RepostFormWarningView()44 RepostFormWarningView::~RepostFormWarningView() {
45 }
46
47 //////////////////////////////////////////////////////////////////////////////
48 // RepostFormWarningView, views::DialogDelegate implementation:
49
GetWindowTitle() const50 std::wstring RepostFormWarningView::GetWindowTitle() const {
51 return UTF16ToWide(l10n_util::GetStringUTF16(IDS_HTTP_POST_WARNING_TITLE));
52 }
53
GetDialogButtonLabel(ui::MessageBoxFlags::DialogButton button) const54 std::wstring RepostFormWarningView::GetDialogButtonLabel(
55 ui::MessageBoxFlags::DialogButton button) const {
56 if (button == ui::MessageBoxFlags::DIALOGBUTTON_OK)
57 return UTF16ToWide(l10n_util::GetStringUTF16(IDS_HTTP_POST_WARNING_RESEND));
58 if (button == ui::MessageBoxFlags::DIALOGBUTTON_CANCEL)
59 return UTF16ToWide(l10n_util::GetStringUTF16(IDS_CANCEL));
60 return std::wstring();
61 }
62
GetContentsView()63 views::View* RepostFormWarningView::GetContentsView() {
64 return message_box_view_;
65 }
66
Cancel()67 bool RepostFormWarningView::Cancel() {
68 controller_->Cancel();
69 return true;
70 }
71
Accept()72 bool RepostFormWarningView::Accept() {
73 controller_->Continue();
74 return true;
75 }
76
77 ///////////////////////////////////////////////////////////////////////////////
78 // RepostFormWarningView, RepostFormWarning implementation:
79
DeleteDelegate()80 void RepostFormWarningView::DeleteDelegate() {
81 delete this;
82 }
83