| Index: views/events/event.h
|
| diff --git a/views/events/event.h b/views/events/event.h
|
| index d1b9b88d326f9fb1927fb8a9ca0951672ef1cd47..015eb0885d16e72c4e6672af4b578bc2dcce13f1 100644
|
| --- a/views/events/event.h
|
| +++ b/views/events/event.h
|
| @@ -6,410 +6,7 @@
|
| #define VIEWS_EVENTS_EVENT_H_
|
| #pragma once
|
|
|
| -#include "base/basictypes.h"
|
| -#include "base/time.h"
|
| -#include "ui/base/events.h"
|
| -#include "ui/base/keycodes/keyboard_codes.h"
|
| -#include "ui/gfx/point.h"
|
| -#include "views/views_export.h"
|
| -
|
| -namespace ui {
|
| -class OSExchangeData;
|
| -}
|
| -
|
| -#if defined(USE_AURA)
|
| -namespace aura {
|
| -class Event;
|
| -}
|
| -#endif
|
| -
|
| -// TODO(msw): Remove GTK support from views event code when possible.
|
| -#if defined(TOOLKIT_USES_GTK)
|
| -typedef union _GdkEvent GdkEvent;
|
| -#endif
|
| -
|
| -namespace views {
|
| -
|
| -#if defined(USE_AURA)
|
| -typedef aura::Event* NativeEvent;
|
| -#else
|
| -typedef base::NativeEvent NativeEvent;
|
| -#endif
|
| -
|
| -class View;
|
| -
|
| -namespace internal {
|
| -class NativeWidgetView;
|
| -class RootView;
|
| -}
|
| -
|
| -////////////////////////////////////////////////////////////////////////////////
|
| -//
|
| -// Event class
|
| -//
|
| -// An event encapsulates an input event that can be propagated into view
|
| -// hierarchies. An event has a type, some flags and a time stamp.
|
| -//
|
| -// Each major event type has a corresponding Event subclass.
|
| -//
|
| -// Events are immutable but support copy
|
| -//
|
| -////////////////////////////////////////////////////////////////////////////////
|
| -class VIEWS_EXPORT Event {
|
| - public:
|
| - const NativeEvent& native_event() const { return native_event_; }
|
| -#if defined(TOOLKIT_USES_GTK)
|
| - GdkEvent* gdk_event() const { return gdk_event_; }
|
| -#endif
|
| - ui::EventType type() const { return type_; }
|
| - const base::Time& time_stamp() const { return time_stamp_; }
|
| - int flags() const { return flags_; }
|
| - void set_flags(int flags) { flags_ = flags; }
|
| -
|
| - // The following methods return true if the respective keys were pressed at
|
| - // the time the event was created.
|
| - bool IsShiftDown() const { return (flags_ & ui::EF_SHIFT_DOWN) != 0; }
|
| - bool IsControlDown() const { return (flags_ & ui::EF_CONTROL_DOWN) != 0; }
|
| - bool IsCapsLockDown() const { return (flags_ & ui::EF_CAPS_LOCK_DOWN) != 0; }
|
| - bool IsAltDown() const { return (flags_ & ui::EF_ALT_DOWN) != 0; }
|
| -
|
| - bool IsMouseEvent() const {
|
| - return type_ == ui::ET_MOUSE_PRESSED ||
|
| - type_ == ui::ET_MOUSE_DRAGGED ||
|
| - type_ == ui::ET_MOUSE_RELEASED ||
|
| - type_ == ui::ET_MOUSE_MOVED ||
|
| - type_ == ui::ET_MOUSE_ENTERED ||
|
| - type_ == ui::ET_MOUSE_EXITED ||
|
| - type_ == ui::ET_MOUSEWHEEL;
|
| - }
|
| -
|
| - bool IsTouchEvent() const {
|
| - return type_ == ui::ET_TOUCH_RELEASED ||
|
| - type_ == ui::ET_TOUCH_PRESSED ||
|
| - type_ == ui::ET_TOUCH_MOVED ||
|
| - type_ == ui::ET_TOUCH_STATIONARY ||
|
| - type_ == ui::ET_TOUCH_CANCELLED;
|
| - }
|
| -
|
| - protected:
|
| - Event(ui::EventType type, int flags);
|
| - Event(const NativeEvent& native_event, ui::EventType type, int flags);
|
| -#if defined(TOOLKIT_USES_GTK)
|
| - Event(GdkEvent* gdk_event, ui::EventType type, int flags);
|
| -#endif
|
| -
|
| - Event(const Event& model)
|
| - : native_event_(model.native_event()),
|
| -#if defined(TOOLKIT_USES_GTK)
|
| - gdk_event_(model.gdk_event_),
|
| -#endif
|
| - type_(model.type()),
|
| - time_stamp_(model.time_stamp()),
|
| - flags_(model.flags()) {
|
| - }
|
| -
|
| - void set_type(ui::EventType type) { type_ = type; }
|
| -
|
| - private:
|
| - void operator=(const Event&);
|
| -
|
| - NativeEvent native_event_;
|
| -#if defined(TOOLKIT_USES_GTK)
|
| - GdkEvent* gdk_event_;
|
| -#endif
|
| - ui::EventType type_;
|
| - base::Time time_stamp_;
|
| - int flags_;
|
| -};
|
| -
|
| -////////////////////////////////////////////////////////////////////////////////
|
| -//
|
| -// LocatedEvent class
|
| -//
|
| -// A generic event that is used for any events that is located at a specific
|
| -// position in the screen.
|
| -//
|
| -////////////////////////////////////////////////////////////////////////////////
|
| -class VIEWS_EXPORT LocatedEvent : public Event {
|
| - public:
|
| - int x() const { return location_.x(); }
|
| - int y() const { return location_.y(); }
|
| - const gfx::Point& location() const { return location_; }
|
| -
|
| - protected:
|
| - explicit LocatedEvent(const NativeEvent& native_event);
|
| -#if defined(TOOLKIT_USES_GTK)
|
| - explicit LocatedEvent(GdkEvent* gdk_event);
|
| -#endif
|
| -
|
| - // TODO(msw): Kill this legacy constructor when we update uses.
|
| - // Simple initialization from cracked metadata.
|
| - LocatedEvent(ui::EventType type, const gfx::Point& location, int flags);
|
| -
|
| - // Create a new LocatedEvent which is identical to the provided model.
|
| - // If source / target views are provided, the model location will be converted
|
| - // from |source| coordinate system to |target| coordinate system.
|
| - LocatedEvent(const LocatedEvent& model, View* source, View* target);
|
| -
|
| - // This constructor is to allow converting the location of an event from the
|
| - // widget's coordinate system to the RootView's coordinate system.
|
| - LocatedEvent(const LocatedEvent& model, View* root);
|
| -
|
| - gfx::Point location_;
|
| -};
|
| -
|
| -class TouchEvent;
|
| -
|
| -////////////////////////////////////////////////////////////////////////////////
|
| -//
|
| -// MouseEvent class
|
| -//
|
| -// A mouse event is used for any input event related to the mouse.
|
| -//
|
| -////////////////////////////////////////////////////////////////////////////////
|
| -class VIEWS_EXPORT MouseEvent : public LocatedEvent {
|
| - public:
|
| - explicit MouseEvent(const NativeEvent& native_event);
|
| -#if defined(TOOLKIT_USES_GTK)
|
| - explicit MouseEvent(GdkEvent* gdk_event);
|
| -#endif
|
| -
|
| - // Create a new MouseEvent which is identical to the provided model.
|
| - // If source / target views are provided, the model location will be converted
|
| - // from |source| coordinate system to |target| coordinate system.
|
| - MouseEvent(const MouseEvent& model, View* source, View* target);
|
| -
|
| - // Creates a new MouseEvent from a TouchEvent. The location of the TouchEvent
|
| - // is the same as the MouseEvent. Other attributes (e.g. type, flags) are
|
| - // mapped from the TouchEvent to appropriate MouseEvent attributes.
|
| - // GestureManager uses this to convert TouchEvents that are not handled by any
|
| - // view.
|
| - explicit MouseEvent(const TouchEvent& touch);
|
| -
|
| - // TODO(msw): Kill this legacy constructor when we update uses.
|
| - // Create a new mouse event
|
| - MouseEvent(ui::EventType type, int x, int y, int flags)
|
| - : LocatedEvent(type, gfx::Point(x, y), flags) {
|
| - }
|
| -
|
| - // Conveniences to quickly test what button is down
|
| - bool IsOnlyLeftMouseButton() const {
|
| - return (flags() & ui::EF_LEFT_BUTTON_DOWN) &&
|
| - !(flags() & (ui::EF_MIDDLE_BUTTON_DOWN | ui::EF_RIGHT_BUTTON_DOWN));
|
| - }
|
| -
|
| - bool IsLeftMouseButton() const {
|
| - return (flags() & ui::EF_LEFT_BUTTON_DOWN) != 0;
|
| - }
|
| -
|
| - bool IsOnlyMiddleMouseButton() const {
|
| - return (flags() & ui::EF_MIDDLE_BUTTON_DOWN) &&
|
| - !(flags() & (ui::EF_LEFT_BUTTON_DOWN | ui::EF_RIGHT_BUTTON_DOWN));
|
| - }
|
| -
|
| - bool IsMiddleMouseButton() const {
|
| - return (flags() & ui::EF_MIDDLE_BUTTON_DOWN) != 0;
|
| - }
|
| -
|
| - bool IsOnlyRightMouseButton() const {
|
| - return (flags() & ui::EF_RIGHT_BUTTON_DOWN) &&
|
| - !(flags() & (ui::EF_LEFT_BUTTON_DOWN | ui::EF_MIDDLE_BUTTON_DOWN));
|
| - }
|
| -
|
| - bool IsRightMouseButton() const {
|
| - return (flags() & ui::EF_RIGHT_BUTTON_DOWN) != 0;
|
| - }
|
| -
|
| - protected:
|
| - MouseEvent(const MouseEvent& model, View* root)
|
| - : LocatedEvent(model, root) {
|
| - }
|
| -
|
| - private:
|
| - friend class internal::NativeWidgetView;
|
| - friend class internal::RootView;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(MouseEvent);
|
| -};
|
| -
|
| -////////////////////////////////////////////////////////////////////////////////
|
| -//
|
| -// TouchEvent class
|
| -//
|
| -// A touch event is generated by touch screen and advanced track
|
| -// pad devices. There is a deliberate direct correspondence between
|
| -// TouchEvent and PlatformTouchPoint.
|
| -//
|
| -////////////////////////////////////////////////////////////////////////////////
|
| -class VIEWS_EXPORT TouchEvent : public LocatedEvent {
|
| - public:
|
| - explicit TouchEvent(const NativeEvent& native_event);
|
| -
|
| - // Create a new touch event.
|
| - TouchEvent(ui::EventType type,
|
| - int x,
|
| - int y,
|
| - int flags,
|
| - int touch_id,
|
| - float radius_x,
|
| - float radius_y,
|
| - float angle,
|
| - float force);
|
| -
|
| - // Create a new TouchEvent which is identical to the provided model.
|
| - // If source / target views are provided, the model location will be converted
|
| - // from |source| coordinate system to |target| coordinate system.
|
| - TouchEvent(const TouchEvent& model, View* source, View* target);
|
| -
|
| - int identity() const { return touch_id_; }
|
| -
|
| - float radius_x() const { return radius_x_; }
|
| - float radius_y() const { return radius_y_; }
|
| - float rotation_angle() const { return rotation_angle_; }
|
| - float force() const { return force_; }
|
| -
|
| - private:
|
| - friend class internal::NativeWidgetView;
|
| - friend class internal::RootView;
|
| -
|
| - TouchEvent(const TouchEvent& model, View* root);
|
| -
|
| - // The identity (typically finger) of the touch starting at 0 and incrementing
|
| - // for each separable additional touch that the hardware can detect.
|
| - const int touch_id_;
|
| -
|
| - // Radius of the X (major) axis of the touch ellipse. 1.0 if unknown.
|
| - const float radius_x_;
|
| -
|
| - // Radius of the Y (minor) axis of the touch ellipse. 1.0 if unknown.
|
| - const float radius_y_;
|
| -
|
| - // Angle of the major axis away from the X axis. Default 0.0.
|
| - const float rotation_angle_;
|
| -
|
| - // Force (pressure) of the touch. Normalized to be [0, 1]. Default to be 0.0.
|
| - const float force_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(TouchEvent);
|
| -};
|
| -
|
| -////////////////////////////////////////////////////////////////////////////////
|
| -// KeyEvent class
|
| -//
|
| -// KeyEvent encapsulates keyboard input events - key press and release.
|
| -//
|
| -////////////////////////////////////////////////////////////////////////////////
|
| -class VIEWS_EXPORT KeyEvent : public Event {
|
| - public:
|
| - explicit KeyEvent(const NativeEvent& native_event);
|
| -#if defined(TOOLKIT_USES_GTK)
|
| - explicit KeyEvent(GdkEvent* gdk_event);
|
| -#endif
|
| -
|
| - // Creates a new KeyEvent synthetically (i.e. not in response to an input
|
| - // event from the host environment). This is typically only used in testing as
|
| - // some metadata obtainable from the underlying native event is not present.
|
| - // It's also used by input methods to fabricate keyboard events.
|
| - KeyEvent(ui::EventType type,
|
| - ui::KeyboardCode key_code,
|
| - int event_flags);
|
| -
|
| - ui::KeyboardCode key_code() const { return key_code_; }
|
| -
|
| - // These setters allow an I18N virtual keyboard to fabricate a keyboard event
|
| - // which does not have a corresponding ui::KeyboardCode (example: U+00E1 Latin
|
| - // small letter A with acute, U+0410 Cyrillic capital letter A.)
|
| - // GetCharacter() and GetUnmodifiedCharacter() return the character.
|
| - void set_character(uint16 character) { character_ = character; }
|
| - void set_unmodified_character(uint16 unmodified_character) {
|
| - unmodified_character_ = unmodified_character;
|
| - }
|
| -
|
| - // Gets the character generated by this key event. It only supports Unicode
|
| - // BMP characters.
|
| - uint16 GetCharacter() const;
|
| -
|
| - // Gets the character generated by this key event ignoring concurrently-held
|
| - // modifiers (except shift).
|
| - uint16 GetUnmodifiedCharacter() const;
|
| -
|
| - private:
|
| - ui::KeyboardCode key_code_;
|
| -
|
| - uint16 character_;
|
| - uint16 unmodified_character_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(KeyEvent);
|
| -};
|
| -
|
| -////////////////////////////////////////////////////////////////////////////////
|
| -//
|
| -// MouseWheelEvent class
|
| -//
|
| -// A MouseWheelEvent is used to propagate mouse wheel user events.
|
| -// Note: e.GetOffset() > 0 means scroll up / left.
|
| -//
|
| -////////////////////////////////////////////////////////////////////////////////
|
| -class VIEWS_EXPORT MouseWheelEvent : public MouseEvent {
|
| - public:
|
| - // See |offset| for details.
|
| - static const int kWheelDelta;
|
| -
|
| - explicit MouseWheelEvent(const NativeEvent& native_event);
|
| -#if defined(TOOLKIT_USES_GTK)
|
| - explicit MouseWheelEvent(GdkEvent* gdk_event);
|
| -#endif
|
| -
|
| - // The amount to scroll. This is in multiples of kWheelDelta.
|
| - int offset() const { return offset_; }
|
| -
|
| - private:
|
| - friend class internal::RootView;
|
| - friend class internal::NativeWidgetView;
|
| -
|
| - MouseWheelEvent(const MouseWheelEvent& model, View* root)
|
| - : MouseEvent(model, root),
|
| - offset_(model.offset_) {
|
| - }
|
| -
|
| - int offset_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(MouseWheelEvent);
|
| -};
|
| -
|
| -////////////////////////////////////////////////////////////////////////////////
|
| -//
|
| -// DropTargetEvent class
|
| -//
|
| -// A DropTargetEvent is sent to the view the mouse is over during a drag and
|
| -// drop operation.
|
| -//
|
| -////////////////////////////////////////////////////////////////////////////////
|
| -class VIEWS_EXPORT DropTargetEvent : public LocatedEvent {
|
| - public:
|
| - DropTargetEvent(const ui::OSExchangeData& data,
|
| - int x,
|
| - int y,
|
| - int source_operations)
|
| - : LocatedEvent(ui::ET_DROP_TARGET_EVENT, gfx::Point(x, y), 0),
|
| - data_(data),
|
| - source_operations_(source_operations) {
|
| - // TODO(msw): Hook up key state flags for CTRL + drag and drop, etc.
|
| - }
|
| -
|
| - const ui::OSExchangeData& data() const { return data_; }
|
| - int source_operations() const { return source_operations_; }
|
| -
|
| - private:
|
| - // Data associated with the drag/drop session.
|
| - const ui::OSExchangeData& data_;
|
| -
|
| - // Bitmask of supported ui::DragDropTypes::DragOperation by the source.
|
| - int source_operations_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(DropTargetEvent);
|
| -};
|
| -
|
| -} // namespace views
|
| +#include "ui/views/events/event.h"
|
| +// TODO(tfarina): remove this file once all includes have been updated.
|
|
|
| #endif // VIEWS_EVENTS_EVENT_H_
|
|
|