• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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