• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2011 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 #pragma once
8 
9 typedef struct _GtkButton GtkButton;
10 typedef struct _GtkWidget GtkWidget;
11 
12 #include "chrome/browser/first_run/first_run.h"
13 #include "chrome/browser/search_engines/template_url_model_observer.h"
14 #include "ui/base/gtk/gtk_signal.h"
15 
16 class TemplateURL;
17 class TemplateURLModel;
18 
19 class FirstRunDialog : public TemplateURLModelObserver {
20  public:
21   // Displays the first run UI for reporting opt-in, import data etc.
22   static bool Show(Profile* profile, bool randomize_search_engine_order);
23 
24   virtual void OnTemplateURLModelChanged();
25 
26  private:
27   FirstRunDialog(Profile* profile,
28                  bool show_reporting_dialog,
29                  bool show_search_engines_dialog,
30                  int* response);
31   virtual ~FirstRunDialog();
32 
33   CHROMEGTK_CALLBACK_1(FirstRunDialog, void, OnResponseDialog, int);
34   CHROMEGTK_CALLBACK_0(FirstRunDialog, void, OnSearchEngineButtonClicked);
35   CHROMEGTK_CALLBACK_0(FirstRunDialog, void, OnSearchEngineWindowDestroy);
36   CHROMEG_CALLBACK_0(FirstRunDialog, void, OnLearnMoreLinkClicked, GtkButton*);
37 
38   void ShowSearchEngineWindow();
39   void ShowReportingDialog();
40 
41   // This method closes the first run window and quits the message loop so that
42   // the Chrome startup can continue. This should be called when all the
43   // first run tasks are done.
44   void FirstRunDone();
45 
46   // The search engine choice window. This is created and shown before
47   // |dialog_|.
48   GtkWidget* search_engine_window_;
49 
50   // Dialog that holds the bug reporting and default browser checkboxes.
51   GtkWidget* dialog_;
52 
53   // Container for the search engine choices.
54   GtkWidget* search_engine_hbox_;
55 
56   // Crash reporting checkbox
57   GtkWidget* report_crashes_;
58 
59   // Make browser default checkbox
60   GtkWidget* make_default_;
61 
62   // Our current profile
63   Profile* profile_;
64 
65   // Owned by the profile_.
66   TemplateURLModel* search_engines_model_;
67 
68   // The search engine the user chose, or NULL if the user has not chosen a
69   // search engine.
70   TemplateURL* chosen_search_engine_;
71 
72   // Whether we should show the dialog asking the user whether to report
73   // crashes and usage stats.
74   bool show_reporting_dialog_;
75 
76   // User response (accept or cancel) is returned through this.
77   int* response_;
78 
79   DISALLOW_COPY_AND_ASSIGN(FirstRunDialog);
80 };
81 
82 #endif  // CHROME_BROWSER_UI_GTK_FIRST_RUN_DIALOG_H_
83