blob: 9ce08ff7205df0ef3d5cc56dc6dd7c53202bd489 [file] [log] [blame]
// Copyright 2015 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 SKY_ENGINE_CORE_EVENTS_POINTEREVENT_H_
#define SKY_ENGINE_CORE_EVENTS_POINTEREVENT_H_
#include "sky/engine/core/events/Event.h"
#include "sky/engine/public/platform/WebInputEvent.h"
namespace blink {
struct PointerEventInit : public EventInit {
int pointer = 0;
String kind;
double x = 0;
double y = 0;
double dx = 0;
double dy = 0;
int buttons = 0;
bool down = false;
bool primary = false;
bool obscured = false;
double pressure = 0;
double pressureMin = 0;
double pressureMax = 0;
double distance = 0;
double distanceMin = 0;
double distanceMax = 0;
double radiusMajor = 0;
double radiusMinor = 0;
double radiusMin = 0;
double radiusMax = 0;
double orientation = 0;
double tilt = 0;
};
class PointerEvent : public Event {
DEFINE_WRAPPERTYPEINFO();
public:
static PassRefPtr<PointerEvent> create()
{
return adoptRef(new PointerEvent);
}
static PassRefPtr<PointerEvent> create(const WebPointerEvent& event)
{
return adoptRef(new PointerEvent(event));
}
static PassRefPtr<PointerEvent> create(const AtomicString& type, const PointerEventInit& initializer)
{
return adoptRef(new PointerEvent(type, initializer));
}
~PointerEvent() override;
const AtomicString& interfaceName() const override;
int pointer() const { return m_pointer; }
const String& kind() const { return m_kind; }
double x() const { return m_x; }
double y() const { return m_y; }
double dx() const { return m_dx; }
double dy() const { return m_dy; }
int buttons() const { return m_buttons; }
bool down() const { return m_down; }
bool primary() const { return m_primary; }
bool obscured() const { return m_obscured; }
double pressure() const { return m_pressure; }
double pressureMin() const { return m_pressureMin; }
double pressureMax() const { return m_pressureMax; }
double distance() const { return m_distance; }
double distanceMin() const { return m_distanceMin; }
double distanceMax() const { return m_distanceMax; }
double radiusMajor() const { return m_radiusMajor; }
double radiusMinor() const { return m_radiusMinor; }
double radiusMin() const { return m_radiusMin; }
double radiusMax() const { return m_radiusMax; }
double orientation() const { return m_orientation; }
double tilt() const { return m_tilt; }
void setDx(double dx) { m_dx = dx; }
void setDy(double dy) { m_dy = dy; }
private:
PointerEvent();
explicit PointerEvent(const WebPointerEvent& event);
PointerEvent(const AtomicString&, const PointerEventInit&);
int m_pointer;
String m_kind;
double m_x;
double m_y;
double m_dx;
double m_dy;
int m_buttons;
bool m_down;
bool m_primary;
bool m_obscured;
double m_pressure;
double m_pressureMin;
double m_pressureMax;
double m_distance;
double m_distanceMin;
double m_distanceMax;
double m_radiusMajor;
double m_radiusMinor;
double m_radiusMin;
double m_radiusMax;
double m_orientation;
double m_tilt;
};
} // namespace blink
#endif // SKY_ENGINE_CORE_EVENTS_POINTEREVENT_H_