Home | History | Annotate | Download | only in ash
      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 
     11 namespace aura {
     12 class Window;
     13 }
     14 
     15 namespace ash {
     16 
     17 class 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.
     22 struct 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|.
     35 RootWindowSettings* InitRootWindowSettings(aura::Window* root);
     36 
     37 // Returns the RootWindowSettings for |root|.
     38 ASH_EXPORT RootWindowSettings* GetRootWindowSettings(aura::Window* root);
     39 
     40 // const version of GetRootWindowSettings.
     41 ASH_EXPORT const RootWindowSettings*
     42 GetRootWindowSettings(const aura::Window* root);
     43 
     44 }  // namespace ash
     45 
     46 #endif  // ASH_ROOT_WINDOW_SETTINGS_H_
     47