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_IMPORTER_IMPORT_PROGRESS_DIALOG_GTK_H_
6#define CHROME_BROWSER_UI_GTK_IMPORTER_IMPORT_PROGRESS_DIALOG_GTK_H_
7#pragma once
8
9#include "base/basictypes.h"
10#include "base/compiler_specific.h"
11#include "base/memory/ref_counted.h"
12#include "chrome/browser/importer/importer_data_types.h"
13#include "chrome/browser/importer/importer_progress_observer.h"
14#include "ui/base/gtk/gtk_signal.h"
15
16class ImporterHost;
17class ImporterObserver;
18class Profile;
19
20typedef struct _GtkWidget Widget;
21typedef struct _GtkWindow GtkWindow;
22
23class ImportProgressDialogGtk : public importer::ImporterProgressObserver {
24 public:
25  // Displays the import progress dialog box and starts the import process.
26  static void StartImport(GtkWindow* parent,
27                          uint16 items,
28                          ImporterHost* importer_host,
29                          ImporterObserver* importer_observer,
30                          const importer::SourceProfile& source_profile,
31                          Profile* profile,
32                          bool first_run);
33
34 private:
35  ImportProgressDialogGtk(GtkWindow* parent,
36                          uint16 items,
37                          ImporterHost* importer_host,
38                          ImporterObserver* importer_observer,
39                          const string16& importer_name,
40                          bool bookmarks_import);
41  virtual ~ImportProgressDialogGtk();
42
43  CHROMEGTK_CALLBACK_1(ImportProgressDialogGtk, void, OnResponse, int);
44
45  void ShowDialog();
46
47  void CloseDialog();
48
49  // importer::ImporterProgressObserver:
50  virtual void ImportStarted() OVERRIDE;
51  virtual void ImportItemStarted(importer::ImportItem item) OVERRIDE;
52  virtual void ImportItemEnded(importer::ImportItem item) OVERRIDE;
53  virtual void ImportEnded() OVERRIDE;
54
55  // Parent window.
56  GtkWindow* parent_;
57
58  // Import progress dialog.
59  GtkWidget* dialog_;
60
61  // Bookmarks/Favorites checkbox.
62  GtkWidget* bookmarks_;
63
64  // Search Engines checkbox.
65  GtkWidget* search_engines_;
66
67  // Passwords checkbox.
68  GtkWidget* passwords_;
69
70  // History checkbox.
71  GtkWidget* history_;
72
73  // Items to import from the other browser.
74  uint16 items_;
75
76  // Utility class that does the actual import.
77  scoped_refptr<ImporterHost> importer_host_;
78
79  // Observer that we need to notify about import events.
80  ImporterObserver* importer_observer_;
81
82  // True if the import operation is in progress.
83  bool importing_;
84
85  DISALLOW_COPY_AND_ASSIGN(ImportProgressDialogGtk);
86};
87
88#endif  // CHROME_BROWSER_UI_GTK_IMPORTER_IMPORT_PROGRESS_DIALOG_GTK_H_
89