1// Copyright 2013 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.
4
5#include "ui/app_list/app_list_switches.h"
6
7#include "base/command_line.h"
8
9namespace app_list {
10namespace switches {
11
12// If set, the app info context menu item is not available in the app list UI.
13const char kDisableAppInfo[] = "disable-app-list-app-info";
14
15// If set, Drive apps will not be shown side-by-side with Chrome apps.
16const char kDisableDriveAppsInAppList[] = "disable-drive-apps-in-app-list";
17
18// Disables syncing of the app list independent of extensions.
19const char kDisableSyncAppList[] = "disable-sync-app-list";
20
21// If set, the app list will be centered and wide instead of tall.
22const char kEnableCenteredAppList[] = "enable-centered-app-list";
23
24// If set, the experimental app list will be used. Implies
25// --enable-centered-app-list.
26const char kEnableExperimentalAppList[] = "enable-experimental-app-list";
27
28// Enables syncing of the app list independent of extensions.
29const char kEnableSyncAppList[] = "enable-sync-app-list";
30
31bool IsAppListSyncEnabled() {
32#if defined(TOOLKIT_VIEWS)
33  return !CommandLine::ForCurrentProcess()->HasSwitch(kDisableSyncAppList);
34#else
35  return CommandLine::ForCurrentProcess()->HasSwitch(kEnableSyncAppList);
36#endif
37}
38
39bool IsFolderUIEnabled() {
40#if !defined(TOOLKIT_VIEWS)
41  return false;  // Folder UI not implemented for Cocoa.
42#endif
43  // Folder UI is available only when AppList sync is enabled, and should
44  // not be disabled separately.
45  return IsAppListSyncEnabled();
46}
47
48bool IsVoiceSearchEnabled() {
49  // Speech recognition in AppList is only for ChromeOS right now.
50#if defined(OS_CHROMEOS)
51  return true;
52#else
53  return false;
54#endif
55}
56
57bool IsAppInfoEnabled() {
58#if defined(TOOLKIT_VIEWS)
59  return !CommandLine::ForCurrentProcess()->HasSwitch(kDisableAppInfo);
60#else
61  return false;
62#endif
63}
64
65bool IsExperimentalAppListEnabled() {
66  return CommandLine::ForCurrentProcess()->HasSwitch(
67      kEnableExperimentalAppList);
68}
69
70bool IsCenteredAppListEnabled() {
71  return CommandLine::ForCurrentProcess()->HasSwitch(kEnableCenteredAppList) ||
72         IsExperimentalAppListEnabled();
73}
74
75bool IsDriveAppsInAppListEnabled() {
76#if defined(OS_CHROMEOS)
77  // Disable Drive app integration due to http://crbug.com/420034
78  // TODO(xiyuan): Revisit this after the bug is fixed.
79  return false;
80#else
81  return false;
82#endif
83}
84
85}  // namespace switches
86}  // namespace app_list
87