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.
5 #ifndef CHROME_BROWSER_SYNC_SYNC_UI_UTIL_H_
6 #define CHROME_BROWSER_SYNC_SYNC_UI_UTIL_H_
11 #include "base/string16.h"
12 #include "base/values.h"
13 #include "chrome/browser/sync/profile_sync_service.h"
18 class DictionaryValue
;
20 // Utility functions to gather current sync status information from the sync
21 // service and constructs messages suitable for showing in UI.
22 namespace sync_ui_util
{
25 PRE_SYNCED
, // User has not set up sync.
26 SYNCED
, // We are synced and authenticated to a gmail account.
27 SYNC_ERROR
, // A sync error (such as invalid credentials) has occurred.
28 SYNC_PROMO
, // A situation has occurred which should be brought to the user's
29 // attention, but not as an error.
32 // TODO(akalin): audit the use of ProfileSyncService* service below,
33 // and use const ProfileSyncService& service where possible.
35 // Create status and link labels for the current status labels and link text
36 // by querying |service|.
37 MessageType
GetStatusLabels(ProfileSyncService
* service
,
38 string16
* status_label
,
39 string16
* link_label
);
41 // Same as above but for use specifically on the New Tab Page.
42 MessageType
GetStatusLabelsForNewTabPage(ProfileSyncService
* service
,
43 string16
* status_label
,
44 string16
* link_label
);
46 MessageType
GetStatus(ProfileSyncService
* service
);
48 // Determines whether or not the sync error button should be visible.
49 bool ShouldShowSyncErrorButton(ProfileSyncService
* service
);
51 // Returns a string with the synchronization status.
52 string16
GetSyncMenuLabel(ProfileSyncService
* service
);
54 // Open the appropriate sync dialog for the given profile (which can be
55 // incognito). |browser| is the browser window that should be used if the UI
56 // is in-window (i.e., WebUI). |code| should be one of the START_FROM_* codes.
57 void OpenSyncMyBookmarksDialog(Profile
* profile
,
59 ProfileSyncService::SyncEventCodes code
);
61 void AddBoolSyncDetail(ListValue
* details
,
62 const std::string
& stat_name
,
65 // |service| can be NULL.
66 void ConstructAboutInformation(ProfileSyncService
* service
,
67 DictionaryValue
* strings
);
69 void AddIntSyncDetail(ListValue
* details
,
70 const std::string
& stat_name
,
72 } // namespace sync_ui_util
73 #endif // CHROME_BROWSER_SYNC_SYNC_UI_UTIL_H_