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