blob: 5dc3363f1e35b474df77ff2b5b052364ef20de16 [file] [log] [blame]
[email protected]f8e6aad2013-08-30 21:49:111// 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_WM_ROOT_WINDOW_SETTINGS_H_
6#define ASH_WM_ROOT_WINDOW_SETTINGS_H_
7
8#include "ash/ash_export.h"
9#include "base/basictypes.h"
10
11namespace aura {
12class RootWindow;
13}
14
15namespace ash {
16namespace internal {
17
18class RootWindowController;
19
20// Per root window information should be stored here
21// instead of using plain aura root window property because
22// it can prevent mis-using on non root window.
23struct RootWindowSettings {
24 RootWindowSettings();
25
26 // Indicate if the window in the active workspace should
27 // use the transparent "solo-window" header style.
28 bool solo_window_header;
29
30 // ID of the display associated with the root window.
31 int64 display_id;
32
33 // RootWindowController for the root window. This may be NULL
34 // for the root window used for mirroring.
35 RootWindowController* controller;
36};
37
38// Initializes and creates RootWindowSettings for |root|, and returns
39// the property.
40RootWindowSettings* InitRootWindowSettings(aura::RootWindow* root);
41
42// Returns the RootWindowSettings for |root|.
43ASH_EXPORT RootWindowSettings* GetRootWindowSettings(aura::RootWindow* root);
44
45// const version of GetRootWindowSettings.
46ASH_EXPORT const RootWindowSettings*
47GetRootWindowSettings(const aura::RootWindow* root);
48
49} // namespace internal
50} // namespace ash
51
52#endif // ASH_WM_ROOT_WINDOW_SETTINGS_H_