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_GTK_FIRST_RUN_DIALOG_H_ 6 #define CHROME_BROWSER_UI_GTK_FIRST_RUN_DIALOG_H_ 7 8 typedef struct _GtkButton GtkButton; 9 typedef struct _GtkWidget GtkWidget; 10 11 #include "base/compiler_specific.h" 12 #include "chrome/browser/first_run/first_run.h" 13 #include "ui/base/gtk/gtk_signal.h" 14 15 class FirstRunDialog { 16 public: 17 // Displays the first run UI for reporting opt-in, import data etc. 18 // Returns true if the dialog was shown. 19 static bool Show(Profile* profile); 20 21 private: 22 explicit FirstRunDialog(Profile* profile); 23 virtual ~FirstRunDialog(); 24 25 CHROMEGTK_CALLBACK_1(FirstRunDialog, void, OnResponseDialog, int); 26 CHROMEG_CALLBACK_0(FirstRunDialog, void, OnLearnMoreLinkClicked, GtkButton*); 27 28 void ShowReportingDialog(); 29 30 // This method closes the first run window and quits the message loop so that 31 // the Chrome startup can continue. This should be called when all the 32 // first run tasks are done. 33 void FirstRunDone(); 34 35 Profile* profile_; 36 37 // Dialog that holds the bug reporting and default browser checkboxes. 38 GtkWidget* dialog_; 39 40 // Crash reporting checkbox 41 GtkWidget* report_crashes_; 42 43 // Make browser default checkbox 44 GtkWidget* make_default_; 45 46 // Whether we should show the dialog asking the user whether to report 47 // crashes and usage stats. 48 bool show_reporting_dialog_; 49 50 // User response (accept or cancel) is returned through this. 51 int* response_; 52 53 DISALLOW_COPY_AND_ASSIGN(FirstRunDialog); 54 }; 55 56 #endif // CHROME_BROWSER_UI_GTK_FIRST_RUN_DIALOG_H_ 57