1ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved. 24a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch// Use of this source code is governed by a BSD-style license that can be 34a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch// found in the LICENSE file. 44a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 54a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch#ifndef CHROME_BROWSER_UI_VIEWS_JS_MODAL_DIALOG_VIEWS_H_ 64a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch#define CHROME_BROWSER_UI_VIEWS_JS_MODAL_DIALOG_VIEWS_H_ 74a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch#pragma once 84a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen#include "chrome/browser/ui/app_modal_dialogs/js_modal_dialog.h" 104a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 114a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch#include <string> 124a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 1321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen#include "chrome/browser/ui/app_modal_dialogs/native_app_modal_dialog.h" 1472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#include "ui/base/message_box_flags.h" 154a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch#include "views/window/dialog_delegate.h" 164a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 17ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsennamespace views { 184a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdochclass MessageBoxView; 19ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen} 204a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 214a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdochclass JSModalDialogViews : public NativeAppModalDialog, 224a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch public views::DialogDelegate { 234a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch public: 244a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch explicit JSModalDialogViews(JavaScriptAppModalDialog* parent); 254a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch virtual ~JSModalDialogViews(); 264a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 274a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch // Overridden from NativeAppModalDialog: 284a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch virtual int GetAppModalDialogButtons() const; 294a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch virtual void ShowAppModalDialog(); 304a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch virtual void ActivateAppModalDialog(); 314a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch virtual void CloseAppModalDialog(); 324a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch virtual void AcceptAppModalDialog(); 334a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch virtual void CancelAppModalDialog(); 344a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 354a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch // Overridden from views::DialogDelegate: 364a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch virtual int GetDefaultDialogButton() const; 374a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch virtual int GetDialogButtons() const; 384a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch virtual std::wstring GetWindowTitle() const; 394a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch virtual void WindowClosing(); 404a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch virtual void DeleteDelegate(); 414a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch virtual bool Cancel(); 424a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch virtual bool Accept(); 434a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch virtual std::wstring GetDialogButtonLabel( 4472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen ui::MessageBoxFlags::DialogButton button) const; 454a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 464a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch // Overridden from views::WindowDelegate: 47dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen virtual bool IsModal() const; 484a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch virtual views::View* GetContentsView(); 494a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch virtual views::View* GetInitiallyFocusedView(); 504a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch virtual void OnClose(); 514a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 524a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch private: 534a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch // A pointer to the AppModalDialog that owns us. 544a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch JavaScriptAppModalDialog* parent_; 554a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 564a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch // The message box view whose commands we handle. 57ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen views::MessageBoxView* message_box_view_; 584a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 594a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch DISALLOW_COPY_AND_ASSIGN(JSModalDialogViews); 604a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch}; 614a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch 624a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch#endif // CHROME_BROWSER_UI_VIEWS_JS_MODAL_DIALOG_VIEWS_H_ 63