first_run_dialog.h revision cedac228d2dd51db4b79ea1e72c7f249408ee061
1// Copyright 2014 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_FIRST_RUN_DIALOG_H_
6#define CHROME_BROWSER_UI_VIEWS_FIRST_RUN_DIALOG_H_
7
8#include "base/callback.h"
9#include "ui/views/controls/link_listener.h"
10#include "ui/views/window/dialog_delegate.h"
11
12class Profile;
13
14namespace views {
15class Checkbox;
16class Link;
17}
18
19class FirstRunDialog : public views::DialogDelegateView,
20                       public views::LinkListener {
21 public:
22  // Displays the first run UI for reporting opt-in, import data etc.
23  // Returns true if the dialog was shown.
24  static bool Show(Profile* profile);
25
26 private:
27  explicit FirstRunDialog(Profile* profile);
28  virtual ~FirstRunDialog();
29
30  // This terminates the nested message-loop.
31  void Done();
32
33  // views::DialogDelegate:
34  virtual views::View* CreateExtraView() OVERRIDE;
35  virtual void OnClosed() OVERRIDE;
36  virtual bool Accept() OVERRIDE;
37  virtual int GetDialogButtons() const OVERRIDE;
38
39  // views::LinkListener:
40  virtual void LinkClicked(views::Link* source, int event_flags) OVERRIDE;
41
42  Profile* profile_;
43  views::Checkbox* make_default_;
44  views::Checkbox* report_crashes_;
45  base::Closure quit_runloop_;
46
47  DISALLOW_COPY_AND_ASSIGN(FirstRunDialog);
48};
49
50#endif  // CHROME_BROWSER_UI_VIEWS_FIRST_RUN_DIALOG_H_
51