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#ifndef ASH_ROOT_WINDOW_SETTINGS_H_
6#define ASH_ROOT_WINDOW_SETTINGS_H_
7
8#include "ash/ash_export.h"
9#include "base/basictypes.h"
10
11namespace aura {
12class Window;
13}
14
15namespace ash {
16
17class RootWindowController;
18
19// Per root window information should be stored here
20// instead of using plain aura root window property because
21// it can prevent mis-using on non root window.
22struct RootWindowSettings {
23  RootWindowSettings();
24
25  // ID of the display associated with the root window.
26  int64 display_id;
27
28  // RootWindowController for the root window. This may be NULL
29  // for the root window used for mirroring.
30  RootWindowController* controller;
31};
32
33// Initializes and returns RootWindowSettings for |root|.
34// It is owned by the |root|.
35RootWindowSettings* InitRootWindowSettings(aura::Window* root);
36
37// Returns the RootWindowSettings for |root|.
38ASH_EXPORT RootWindowSettings* GetRootWindowSettings(aura::Window* root);
39
40// const version of GetRootWindowSettings.
41ASH_EXPORT const RootWindowSettings*
42GetRootWindowSettings(const aura::Window* root);
43
44}  // namespace ash
45
46#endif  // ASH_ROOT_WINDOW_SETTINGS_H_
47