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