Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / athena / env / public / athena_env.h
1 // Copyright 2014 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 ATHENA_ENV_PUBLIC_ATHENA_ENV_H_
6 #define ATHENA_ENV_PUBLIC_ATHENA_ENV_H_
7
8 #include "athena/athena_export.h"
9 #include "base/callback_forward.h"
10
11 namespace aura {
12 class WindowTreeHost;
13 }
14
15 namespace gfx {
16 class Insets;
17 }
18
19 namespace athena {
20
21 // AthenaEnv creates/shuts down the environment necessary to
22 // start Athena shell.
23 class ATHENA_EXPORT AthenaEnv {
24  public:
25   static void Create();
26   static AthenaEnv* Get();
27   static void Shutdown();
28
29   virtual ~AthenaEnv() {}
30
31   // Returns the single WindowTreeHost for the primary display.
32   virtual aura::WindowTreeHost* GetHost() = 0;
33
34   // Sets the insets for the primary displays's work area.
35   virtual void SetDisplayWorkAreaInsets(const gfx::Insets& insets) = 0;
36
37   // Adds the callback called when the athena is about to exit.
38   virtual void AddTerminatingCallback(const base::Closure& closure) = 0;
39   virtual void RemoveTerminatingCallback(const base::Closure& closure) = 0;
40
41   // Called when the athena is about to exist.
42   virtual void OnTerminating() = 0;
43 };
44
45 }  // namespace athena
46
47 #endif  // ATHENA_ENV_PUBLIC_ATHENA_ENV_H_