| // Copyright 2014 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef ATHENA_ENV_PUBLIC_ATHENA_ENV_H_ |
| #define ATHENA_ENV_PUBLIC_ATHENA_ENV_H_ |
| |
| #include "athena/athena_export.h" |
| #include "base/callback_forward.h" |
| |
| namespace aura { |
| class WindowTreeHost; |
| } |
| |
| namespace gfx { |
| class Insets; |
| } |
| |
| namespace athena { |
| |
| // AthenaEnv creates/shuts down the environment necessary to |
| // start Athena shell. |
| class ATHENA_EXPORT AthenaEnv { |
| public: |
| static void Create(); |
| static AthenaEnv* Get(); |
| static void Shutdown(); |
| |
| virtual ~AthenaEnv() {} |
| |
| // Returns the single WindowTreeHost for the primary display. |
| virtual aura::WindowTreeHost* GetHost() = 0; |
| |
| // Sets the insets for the primary displays's work area. |
| virtual void SetDisplayWorkAreaInsets(const gfx::Insets& insets) = 0; |
| |
| // Adds the callback called when the athena is about to exit. |
| virtual void AddTerminatingCallback(const base::Closure& closure) = 0; |
| virtual void RemoveTerminatingCallback(const base::Closure& closure) = 0; |
| |
| // Called when the athena is about to exist. |
| virtual void OnTerminating() = 0; |
| }; |
| |
| } // namespace athena |
| |
| #endif // ATHENA_ENV_PUBLIC_ATHENA_ENV_H_ |