sync_ui_util.h revision 731df977c0511bca2206b5f333555b1205ff1f43
1c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Copyright (c) 2009 The Chromium Authors. All rights reserved.
2c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Use of this source code is governed by a BSD-style license that can be
3c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// found in the LICENSE file.
4c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
5c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#ifndef CHROME_BROWSER_SYNC_SYNC_UI_UTIL_H_
6c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#define CHROME_BROWSER_SYNC_SYNC_UI_UTIL_H_
73345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#pragma once
8c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
9731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#include <string>
10731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
11c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "base/string16.h"
12731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#include "base/values.h"
13c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "chrome/browser/sync/profile_sync_service.h"
14c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
15c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass Profile;
16731df977c0511bca2206b5f333555b1205ff1f43Iain Merrickclass ListValue;
17731df977c0511bca2206b5f333555b1205ff1f43Iain Merrickclass DictionaryValue;
18c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
19c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Utility functions to gather current sync status information from the sync
20c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// service and constructs messages suitable for showing in UI.
21c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochnamespace sync_ui_util {
22c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
23c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochenum MessageType {
24c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  PRE_SYNCED,  // User has not set up sync.
25c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  SYNCED,      // We are synced and authenticated to a gmail account.
26c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  SYNC_ERROR,  // A sync error (such as invalid credentials) has occurred.
27c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch};
28c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
29c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// TODO(akalin): audit the use of ProfileSyncService* service below,
30c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// and use const ProfileSyncService& service where possible.
31c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
32c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Create status and link labels for the current status labels and link text
33c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// by querying |service|.
34c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochMessageType GetStatusLabels(ProfileSyncService* service,
35c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch                            string16* status_label,
36c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch                            string16* link_label);
37c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
38c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochMessageType GetStatus(ProfileSyncService* service);
39c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
40c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Determines whether or not the sync error button should be visible.
41c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochbool ShouldShowSyncErrorButton(ProfileSyncService* service);
42c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
43c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Returns a string with the synchronization status.
44c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochstring16 GetSyncMenuLabel(ProfileSyncService* service);
45c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
46c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Open the appropriate sync dialog for the given profile (which can be
47c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// incognito).  |code| should be one of the START_FROM_* codes.
48c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochvoid OpenSyncMyBookmarksDialog(
49c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch    Profile* profile, ProfileSyncService::SyncEventCodes code);
50c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
51731df977c0511bca2206b5f333555b1205ff1f43Iain Merrickvoid AddBoolSyncDetail(ListValue* details,
52731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick                       const std::string& stat_name,
53731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick                       bool stat_value);
54731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
55731df977c0511bca2206b5f333555b1205ff1f43Iain Merrickvoid ConstructAboutInformation(ProfileSyncService* service,
56731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick                               DictionaryValue* strings);
57731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
58731df977c0511bca2206b5f333555b1205ff1f43Iain Merrickvoid AddIntSyncDetail(ListValue* details,
59731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick                      const std::string& stat_name,
60731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick                      int64 stat_value);
61731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick}  // namespace sync_ui_util
62c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#endif  // CHROME_BROWSER_SYNC_SYNC_UI_UTIL_H_
63c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
64