1// Copyright (c) 2012 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#ifndef CHROME_BROWSER_CHROMEOS_DISPLAY_DISPLAY_PREFERENCES_H_
6#define CHROME_BROWSER_CHROMEOS_DISPLAY_DISPLAY_PREFERENCES_H_
7
8#include "base/basictypes.h"
9#include "third_party/cros_system_api/dbus/service_constants.h"
10
11class PrefRegistrySimple;
12
13namespace ash {
14struct DisplayLayout;
15}
16
17namespace gfx {
18class Display;
19class Insets;
20}
21
22namespace chromeos {
23
24// Registers the prefs associated with display settings and stored
25// into Local State.
26void RegisterDisplayLocalStatePrefs(PrefRegistrySimple* registry);
27
28// Stores the current displays prefereces (both primary display id and
29// dispay layout).
30void StoreDisplayPrefs();
31
32// If there is an internal display, stores |rotation_lock| along with the
33// current rotation of the internal display. Otherwise no data is stored.
34void StoreDisplayRotationPrefs(bool rotation_lock);
35
36// Sets the display layout for the current displays.
37void SetCurrentDisplayLayout(const ash::DisplayLayout& layout);
38
39// Load display preferences from Local Store. |first_run_after_boot| is used
40// determine if a certain preference should be applied at boot time or
41// restart.
42void LoadDisplayPreferences(bool first_run_after_boot);
43
44// Stores the display layout for given display pairs for tests.
45void StoreDisplayLayoutPrefForTest(int64 id1,
46                                   int64 id2,
47                                   const ash::DisplayLayout& layout);
48
49// Stores the given |power_state| for tests.
50void StoreDisplayPowerStateForTest(DisplayPowerState power_state);
51
52}  // namespace chromeos
53
54#endif  // CHROME_BROWSER_CHROMEOS_DISPLAY_DISPLAY_PREFERENCES_H_
55