Print Preview: Changing displayed error message when PDF Viewer is missing.
[chromium-blink-merge.git] / chrome / browser / sync / sync_ui_util.h
blob68738bc21de2b84316cdcd0fb8583960df608c3c
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_
7 #pragma once
9 #include <string>
11 #include "base/string16.h"
12 #include "base/values.h"
13 #include "chrome/browser/sync/profile_sync_service.h"
15 class Browser;
16 class Profile;
17 class ListValue;
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 {
24 enum MessageType {
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,
58 Browser* browser,
59 ProfileSyncService::SyncEventCodes code);
61 void AddBoolSyncDetail(ListValue* details,
62 const std::string& stat_name,
63 bool stat_value);
65 // |service| can be NULL.
66 void ConstructAboutInformation(ProfileSyncService* service,
67 DictionaryValue* strings);
69 void AddIntSyncDetail(ListValue* details,
70 const std::string& stat_name,
71 int64 stat_value);
72 } // namespace sync_ui_util
73 #endif // CHROME_BROWSER_SYNC_SYNC_UI_UTIL_H_