Home | History | Annotate | Download | only in views
      1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef CHROME_BROWSER_UI_VIEWS_REPOST_FORM_WARNING_VIEW_H_
      6 #define CHROME_BROWSER_UI_VIEWS_REPOST_FORM_WARNING_VIEW_H_
      7 #pragma once
      8 
      9 #include "content/browser/tab_contents/constrained_window.h"
     10 #include "ui/gfx/native_widget_types.h"
     11 #include "views/window/dialog_delegate.h"
     12 
     13 class ConstrainedWindow;
     14 class NavigationController;
     15 class RepostFormWarningController;
     16 class TabContents;
     17 
     18 namespace views {
     19 class MessageBoxView;
     20 class Window;
     21 }
     22 
     23 // Displays a dialog that warns the user that they are about to resubmit
     24 // a form.
     25 // To display the dialog, allocate this object on the heap. It will open the
     26 // dialog from its constructor and then delete itself when the user dismisses
     27 // the dialog.
     28 class RepostFormWarningView : public ConstrainedDialogDelegate {
     29  public:
     30   // Use BrowserWindow::ShowRepostFormWarningDialog to use.
     31   RepostFormWarningView(gfx::NativeWindow parent_window,
     32                         TabContents* tab_contents);
     33 
     34   // views::DialogDelegate Methods:
     35   virtual std::wstring GetWindowTitle() const;
     36   virtual std::wstring GetDialogButtonLabel(
     37       MessageBoxFlags::DialogButton button) const;
     38   virtual void DeleteDelegate();
     39 
     40   virtual bool Cancel();
     41   virtual bool Accept();
     42 
     43   // views::WindowDelegate Methods:
     44   virtual views::View* GetContentsView();
     45 
     46  private:
     47   virtual ~RepostFormWarningView();
     48 
     49   // The message box view whose commands we handle.
     50   views::MessageBoxView* message_box_view_;
     51 
     52   scoped_ptr<RepostFormWarningController> controller_;
     53 
     54   DISALLOW_COPY_AND_ASSIGN(RepostFormWarningView);
     55 };
     56 
     57 #endif  // CHROME_BROWSER_UI_VIEWS_REPOST_FORM_WARNING_VIEW_H_
     58