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_RESTART_MESSAGE_BOX_H_
64a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch#define CHROME_BROWSER_UI_VIEWS_RESTART_MESSAGE_BOX_H_
74a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch#pragma once
84a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch
94a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch#include "base/basictypes.h"
1072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#include "ui/gfx/native_widget_types.h"
114a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch#include "views/window/dialog_delegate.h"
124a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch
13ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsennamespace views {
144a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdochclass MessageBoxView;
15ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen}
164a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch
174a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch// A dialog box that tells the user that s/he needs to restart Chrome
184a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch// for a change to take effect.
194a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdochclass RestartMessageBox : public views::DialogDelegate {
204a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch public:
214a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch  // This box is modal to |parent_window|.
224a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch  static void ShowMessageBox(gfx::NativeWindow parent_window);
234a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch
244a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch protected:
254a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch  // views::DialogDelegate:
264a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch  virtual int GetDialogButtons() const;
274a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch  virtual std::wstring GetDialogButtonLabel(
284a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch      MessageBoxFlags::DialogButton button) const;
294a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch  virtual std::wstring GetWindowTitle() const;
304a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch
314a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch  // views::WindowDelegate:
324a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch  virtual void DeleteDelegate();
334a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch  virtual bool IsModal() const;
344a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch  virtual views::View* GetContentsView();
354a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch
364a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch private:
374a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch  explicit RestartMessageBox(gfx::NativeWindow parent_window);
384a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch  virtual ~RestartMessageBox();
394a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch
40ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  views::MessageBoxView* message_box_view_;
414a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch
424a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch  DISALLOW_COPY_AND_ASSIGN(RestartMessageBox);
434a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch};
444a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch
454a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch#endif  // CHROME_BROWSER_UI_VIEWS_RESTART_MESSAGE_BOX_H_
46