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