import_lock_dialog_view.h revision a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7
1// Copyright (c) 2012 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_IMPORTER_IMPORT_LOCK_DIALOG_VIEW_H_
6#define CHROME_BROWSER_UI_VIEWS_IMPORTER_IMPORT_LOCK_DIALOG_VIEW_H_
7
8#include "base/basictypes.h"
9#include "base/callback.h"
10#include "base/compiler_specific.h"
11#include "base/memory/ref_counted.h"
12#include "ui/views/view.h"
13#include "ui/views/window/dialog_delegate.h"
14
15namespace views {
16class Label;
17}
18
19// ImportLockDialogView asks the user to shut down Firefox before starting the
20// profile import.
21class ImportLockDialogView : public views::DialogDelegateView {
22 public:
23  static void Show(gfx::NativeWindow parent,
24                   const base::Callback<void(bool)>& callback);
25
26 private:
27  explicit ImportLockDialogView(const base::Callback<void(bool)>& callback);
28  virtual ~ImportLockDialogView();
29
30  // views::View:
31  virtual gfx::Size GetPreferredSize() OVERRIDE;
32  virtual void Layout() OVERRIDE;
33
34  // views::DialogDelegate:
35  virtual base::string16 GetDialogButtonLabel(
36      ui::DialogButton button) const OVERRIDE;
37  virtual base::string16 GetWindowTitle() const OVERRIDE;
38  virtual bool Accept() OVERRIDE;
39  virtual bool Cancel() OVERRIDE;
40
41 private:
42  views::Label* description_label_;
43
44  // Called with the result of the dialog.
45  base::Callback<void(bool)> callback_;
46
47  DISALLOW_COPY_AND_ASSIGN(ImportLockDialogView);
48};
49
50#endif  // CHROME_BROWSER_UI_VIEWS_IMPORTER_IMPORT_LOCK_DIALOG_VIEW_H_
51