first_run_dialog.h revision 5d1f7b1de12d16ceb2c938c56701a3e8bfa558f7
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/message_loop/message_pump_dispatcher.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 base::MessagePumpDispatcher { 22 public: 23 // Displays the first run UI for reporting opt-in, import data etc. 24 // Returns true if the dialog was shown. 25 static bool Show(Profile* profile); 26 27 private: 28 explicit FirstRunDialog(Profile* profile); 29 virtual ~FirstRunDialog(); 30 31 // views::DialogDelegate: 32 virtual views::View* CreateExtraView() OVERRIDE; 33 virtual void OnClosed() OVERRIDE; 34 virtual bool Accept() OVERRIDE; 35 virtual int GetDialogButtons() const OVERRIDE; 36 37 // views::LinkListener: 38 virtual void LinkClicked(views::Link* source, int event_flags) OVERRIDE; 39 40 // Overridden from MessagePumpDispatcher: 41 virtual uint32_t Dispatch(const base::NativeEvent& event) OVERRIDE; 42 43 Profile* profile_; 44 views::Checkbox* make_default_; 45 views::Checkbox* report_crashes_; 46 47 // Set to false as soon as the user clicks a dialog button; this tells the 48 // dispatcher we're done. 49 bool should_show_dialog_; 50}; 51 52#endif // CHROME_BROWSER_UI_VIEWS_FIRST_RUN_DIALOG_H_ 53