#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 {
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
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;
}
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);
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_;
scoped_ptr<InputStateLookup> input_state_lookup_;
scoped_ptr<ui::PlatformEventSource> event_source_;
+ ui::ContextFactory* context_factory_;
+
DISALLOW_COPY_AND_ASSIGN(Env);
};