Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / ui / aura / env.h
index 159ac48..f04c7a5 100644 (file)
@@ -7,12 +7,14 @@
 
 #include "base/memory/scoped_ptr.h"
 #include "base/observer_list.h"
+#include "base/supports_user_data.h"
 #include "ui/aura/aura_export.h"
 #include "ui/events/event_handler.h"
 #include "ui/events/event_target.h"
 #include "ui/gfx/point.h"
 
 namespace ui {
+class ContextFactory;
 class PlatformEventSource;
 }
 namespace aura {
@@ -27,11 +29,8 @@ class Window;
 class WindowTreeHost;
 
 // A singleton object that tracks general state within Aura.
-class AURA_EXPORT Env : public ui::EventTarget {
+class AURA_EXPORT Env : public ui::EventTarget, public base::SupportsUserData {
  public:
-  Env();
-  virtual ~Env();
-
   // Creates the single Env instance (if it hasn't been created yet). If
   // |create_event_source| is true a PlatformEventSource is created.
   // TODO(sky): nuke |create_event_source|. Only necessary while mojo's
@@ -43,7 +42,7 @@ class AURA_EXPORT Env : public ui::EventTarget {
   void AddObserver(EnvObserver* observer);
   void RemoveObserver(EnvObserver* observer);
 
-  const int mouse_button_flags() const { return mouse_button_flags_; }
+  int mouse_button_flags() const { return mouse_button_flags_; }
   void set_mouse_button_flags(int mouse_button_flags) {
     mouse_button_flags_ = mouse_button_flags;
   }
@@ -62,11 +61,19 @@ class AURA_EXPORT Env : public ui::EventTarget {
   bool is_touch_down() const { return is_touch_down_; }
   void set_touch_down(bool value) { is_touch_down_ = value; }
 
+  void set_context_factory(ui::ContextFactory* context_factory) {
+    context_factory_ = context_factory;
+  }
+  ui::ContextFactory* context_factory() { return context_factory_; }
+
  private:
   friend class test::EnvTestHelper;
   friend class Window;
   friend class WindowTreeHost;
 
+  Env();
+  ~Env() override;
+
   // See description of CreateInstance() for deatils of |create_event_source|.
   void Init(bool create_event_source);
 
@@ -80,14 +87,13 @@ class AURA_EXPORT Env : public ui::EventTarget {
   void NotifyHostActivated(WindowTreeHost* host);
 
   // Overridden from ui::EventTarget:
-  virtual bool CanAcceptEvent(const ui::Event& event) OVERRIDE;
-  virtual ui::EventTarget* GetParentTarget() OVERRIDE;
-  virtual scoped_ptr<ui::EventTargetIterator> GetChildIterator() const OVERRIDE;
-  virtual ui::EventTargeter* GetEventTargeter() OVERRIDE;
+  bool CanAcceptEvent(const ui::Event& event) override;
+  ui::EventTarget* GetParentTarget() override;
+  scoped_ptr<ui::EventTargetIterator> GetChildIterator() const override;
+  ui::EventTargeter* GetEventTargeter() override;
 
   ObserverList<EnvObserver> observers_;
 
-  static Env* instance_;
   int mouse_button_flags_;
   // Location of last mouse event, in screen coordinates.
   gfx::Point last_mouse_location_;
@@ -96,6 +102,8 @@ class AURA_EXPORT Env : public ui::EventTarget {
   scoped_ptr<InputStateLookup> input_state_lookup_;
   scoped_ptr<ui::PlatformEventSource> event_source_;
 
+  ui::ContextFactory* context_factory_;
+
   DISALLOW_COPY_AND_ASSIGN(Env);
 };