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.
5 #ifndef ATHENA_ENV_PUBLIC_ATHENA_ENV_H_
6 #define ATHENA_ENV_PUBLIC_ATHENA_ENV_H_
8 #include "athena/athena_export.h"
9 #include "base/callback_forward.h"
21 // AthenaEnv creates/shuts down the environment necessary to
22 // start Athena shell.
23 class ATHENA_EXPORT AthenaEnv
{
26 static AthenaEnv
* Get();
27 static void Shutdown();
29 virtual ~AthenaEnv() {}
31 // Returns the single WindowTreeHost for the primary display.
32 virtual aura::WindowTreeHost
* GetHost() = 0;
34 // Sets the insets for the primary displays's work area.
35 virtual void SetDisplayWorkAreaInsets(const gfx::Insets
& insets
) = 0;
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;
41 // Called when the athena is about to exist.
42 virtual void OnTerminating() = 0;
47 #endif // ATHENA_ENV_PUBLIC_ATHENA_ENV_H_