// Copyright (c) 2009 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/app_modal_dialog.h" #include "chrome/browser/app_modal_dialog_queue.h" #include "chrome/browser/native_app_modal_dialog.h" #include "chrome/browser/tab_contents/tab_contents.h" #include "chrome/common/notification_service.h" #include "chrome/common/notification_type.h" AppModalDialog::AppModalDialog(TabContents* tab_contents, const std::wstring& title) : skip_this_dialog_(false), tab_contents_(tab_contents), native_dialog_(NULL), title_(title) { } AppModalDialog::~AppModalDialog() { } void AppModalDialog::ShowModalDialog() { if (tab_contents_) tab_contents_->Activate(); CreateAndShowDialog(); NotificationService::current()->Notify( NotificationType::APP_MODAL_DIALOG_SHOWN, Source(this), NotificationService::NoDetails()); } void AppModalDialog::CreateAndShowDialog() { native_dialog_ = CreateNativeDialog(); native_dialog_->ShowAppModalDialog(); } void AppModalDialog::ActivateModalDialog() { DCHECK(native_dialog_); native_dialog_->ActivateAppModalDialog(); } void AppModalDialog::CloseModalDialog() { DCHECK(native_dialog_); native_dialog_->CloseAppModalDialog(); } void AppModalDialog::CompleteDialog() { Singleton()->ShowNextDialog(); }