// Copyright (c) 2010 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/views/modal_dialog_delegate.h" #include "base/logging.h" #include "chrome/browser/views/window.h" #include "views/window/window.h" void ModalDialogDelegate::ShowModalDialog() { gfx::NativeWindow root_hwnd = GetDialogRootWindow(); // GetMessageBoxRootWindow() will be NULL if there's no selected tab (e.g., // during shutdown), in which case we simply skip showing this dialog. if (!root_hwnd) { Cancel(); } else { dialog_ = browser::CreateViewsWindow(root_hwnd, gfx::Rect(), this); dialog_->Show(); } } void ModalDialogDelegate::ActivateModalDialog() { DCHECK(dialog_); // Ensure that the dialog is visible and at the top of the z-order. These // conditions may not be true if the dialog was opened on a different virtual // desktop to the one the browser window is on. dialog_->Show(); dialog_->Activate(); } void ModalDialogDelegate::CloseModalDialog() { // If the dialog is visible close it. if (dialog_) dialog_->Close(); } ModalDialogDelegate::ModalDialogDelegate() : dialog_(NULL) { }