// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "chrome/browser/ui/views/tab_modal_confirm_dialog_views.h" #include "base/utf_string_conversions.h" #include "chrome/browser/ui/browser_dialogs.h" #include "chrome/browser/ui/browser_list.h" #include "chrome/browser/ui/browser_window.h" #include "chrome/browser/ui/tab_contents/tab_contents.h" #include "chrome/browser/ui/tab_modal_confirm_dialog_delegate.h" #include "chrome/browser/ui/views/constrained_window_views.h" #include "grit/generated_resources.h" #include "ui/base/l10n/l10n_util.h" #include "ui/views/controls/message_box_view.h" namespace browser { // Declared in browser_dialogs.h so others don't have to depend on our header. void ShowTabModalConfirmDialog(TabModalConfirmDialogDelegate* delegate, TabContents* tab_contents) { new TabModalConfirmDialogViews(delegate, tab_contents); } } // namespace browser ////////////////////////////////////////////////////////////////////////////// // TabModalConfirmDialogViews, constructor & destructor: TabModalConfirmDialogViews::TabModalConfirmDialogViews( TabModalConfirmDialogDelegate* delegate, TabContents* tab_contents) : delegate_(delegate), message_box_view_(new views::MessageBoxView( views::MessageBoxView::InitParams(delegate->GetMessage()))) { delegate_->set_window(new ConstrainedWindowViews(tab_contents, this)); } TabModalConfirmDialogViews::~TabModalConfirmDialogViews() { } ////////////////////////////////////////////////////////////////////////////// // TabModalConfirmDialogViews, views::DialogDelegate implementation: string16 TabModalConfirmDialogViews::GetWindowTitle() const { return delegate_->GetTitle(); } string16 TabModalConfirmDialogViews::GetDialogButtonLabel( ui::DialogButton button) const { if (button == ui::DIALOG_BUTTON_OK) return delegate_->GetAcceptButtonTitle(); if (button == ui::DIALOG_BUTTON_CANCEL) return delegate_->GetCancelButtonTitle(); return string16(); } bool TabModalConfirmDialogViews::Cancel() { delegate_->Cancel(); return true; } bool TabModalConfirmDialogViews::Accept() { delegate_->Accept(); return true; } /////////////////////////////////////////////////////////////////////////////// // TabModalConfirmDialogViews, views::WidgetDelegate implementation: views::View* TabModalConfirmDialogViews::GetContentsView() { return message_box_view_; } views::Widget* TabModalConfirmDialogViews::GetWidget() { return message_box_view_->GetWidget(); } const views::Widget* TabModalConfirmDialogViews::GetWidget() const { return message_box_view_->GetWidget(); } void TabModalConfirmDialogViews::DeleteDelegate() { delete this; }