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_VIEWS_IMPORTER_IMPORT_PROGRESS_DIALOG_VIEW_H_ 6dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen#define CHROME_BROWSER_UI_VIEWS_IMPORTER_IMPORT_PROGRESS_DIALOG_VIEW_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" 12ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "base/memory/scoped_ptr.h" 13dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen#include "chrome/browser/importer/importer_data_types.h" 14ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "chrome/browser/importer/importer_progress_observer.h" 15dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen#include "views/view.h" 16dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen#include "views/window/dialog_delegate.h" 17ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 18ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenclass ImporterHost; 19ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenclass ImporterObserver; 20dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen 21dc0f95d653279beabeb9817299e2902918ba123eKristian Monsennamespace views { 22dc0f95d653279beabeb9817299e2902918ba123eKristian Monsenclass CheckmarkThrobber; 23dc0f95d653279beabeb9817299e2902918ba123eKristian Monsenclass Label; 24dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen} 25dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen 26dc0f95d653279beabeb9817299e2902918ba123eKristian Monsenclass ImportProgressDialogView : public views::View, 27dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen public views::DialogDelegate, 28ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen public importer::ImporterProgressObserver { 29dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen public: 30dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen // |items| is a bitmask of importer::ImportItem being imported. 31dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen // |bookmark_import| is true if we're importing bookmarks from a 32dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen // bookmarks.html file. 33dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen ImportProgressDialogView(HWND parent_window, 34dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen uint16 items, 35dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen ImporterHost* importer_host, 36dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen ImporterObserver* importer_observer, 37ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen const string16& importer_name, 38dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen bool bookmarks_import); 39dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen virtual ~ImportProgressDialogView(); 40dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen 41dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen protected: 42dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen // views::View: 43dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen virtual gfx::Size GetPreferredSize() OVERRIDE; 44dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen virtual void ViewHierarchyChanged(bool is_add, 45dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen views::View* parent, 46dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen views::View* child) OVERRIDE; 47dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen 48dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen // views::DialogDelegate: 49dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen virtual int GetDialogButtons() const OVERRIDE; 50dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen virtual std::wstring GetDialogButtonLabel( 51dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen MessageBoxFlags::DialogButton button) const OVERRIDE; 52dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen virtual bool IsModal() const OVERRIDE; 53dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen virtual std::wstring GetWindowTitle() const OVERRIDE; 54dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen virtual bool Cancel() OVERRIDE; 55dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen virtual views::View* GetContentsView() OVERRIDE; 56dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen 57dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen private: 58dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen // Set up the control layout within this dialog. 59dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen void InitControlLayout(); 60dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen 61ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // importer::ImporterProgressObserver: 62ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual void ImportStarted() OVERRIDE; 63dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen virtual void ImportItemStarted(importer::ImportItem item) OVERRIDE; 64dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen virtual void ImportItemEnded(importer::ImportItem item) OVERRIDE; 65dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen virtual void ImportEnded() OVERRIDE; 66dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen 67dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen // The native window that we are parented to. Can be NULL. 68dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen HWND parent_window_; 69dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen 70dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen // Various dialog controls. 71dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen scoped_ptr<views::CheckmarkThrobber> state_bookmarks_; 72dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen scoped_ptr<views::CheckmarkThrobber> state_searches_; 73dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen scoped_ptr<views::CheckmarkThrobber> state_passwords_; 74dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen scoped_ptr<views::CheckmarkThrobber> state_history_; 75dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen scoped_ptr<views::CheckmarkThrobber> state_cookies_; 76dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen views::Label* label_info_; 77dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen scoped_ptr<views::Label> label_bookmarks_; 78dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen scoped_ptr<views::Label> label_searches_; 79dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen scoped_ptr<views::Label> label_passwords_; 80dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen scoped_ptr<views::Label> label_history_; 81dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen scoped_ptr<views::Label> label_cookies_; 82dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen 83dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen // Items to import from the other browser 84dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen uint16 items_; 85dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen 86dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen // Utility class that does the actual import. 87dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen scoped_refptr<ImporterHost> importer_host_; 88dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen 89dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen // Observer that we need to notify about import events. 90dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen ImporterObserver* importer_observer_; 91dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen 92dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen // True if the import operation is in progress. 93dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen bool importing_; 94dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen 95dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen // Are we importing a bookmarks.html file? 96dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen bool bookmarks_import_; 97dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen 98dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen DISALLOW_COPY_AND_ASSIGN(ImportProgressDialogView); 99dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen}; 100dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen 101dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen#endif // CHROME_BROWSER_UI_VIEWS_IMPORTER_IMPORT_PROGRESS_DIALOG_VIEW_H_ 102