diff options
Diffstat (limited to 'chrome/browser/views/sync/sync_setup_wizard.h')
-rw-r--r-- | chrome/browser/views/sync/sync_setup_wizard.h | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/chrome/browser/views/sync/sync_setup_wizard.h b/chrome/browser/views/sync/sync_setup_wizard.h new file mode 100644 index 0000000..7de7253 --- /dev/null +++ b/chrome/browser/views/sync/sync_setup_wizard.h @@ -0,0 +1,50 @@ +// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_VIEWS_SYNC_SYNC_SETUP_WIZARD_H_ +#define CHROME_BROWSER_VIEWS_SYNC_SYNC_SETUP_WIZARD_H_ + +#include "base/basictypes.h" + +class SyncSetupFlowContainer; + +class ProfileSyncService; + +class SyncSetupWizard { + public: + enum State { + GAIA_LOGIN = 0, + GAIA_SUCCESS, + MERGE_AND_SYNC, + DONE + }; + + explicit SyncSetupWizard(ProfileSyncService* service); + ~SyncSetupWizard(); + + // Advances the wizard to the specified state if possible, or opens a + // new dialog starting at |advance_state|. If the wizard has never ran + // through to completion, it will always attempt to do so. Otherwise, e.g + // for a transient auth failure, it will just run as far as is necessary + // based on |advance_state| (so for auth failure, up to GAIA_SUCCESS). + void Step(State advance_state); + + // Whether or not a dialog is currently showing. Useful to determine + // if various buttons in the UI should be enabled or disabled. + bool IsVisible() const; + + private: + // If we just need to pop open an individual dialog, say to collect + // gaia credentials in the event of a steady-state auth failure, this is + // a "discrete" run (as in not a continuous wizard flow). This returns + // the end state to pass to Run for a given |start_state|. + static State GetEndStateForDiscreteRun(State start_state); + + ProfileSyncService* service_; + SyncSetupFlowContainer* flow_container_; + + DISALLOW_COPY_AND_ASSIGN(SyncSetupWizard); +}; + +#endif // CHROME_BROWSER_VIEWS_SYNC_SYNC_SETUP_WIZARD_H_ |