Coverage Report

Created: 2026-06-07 07:41

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/serenity/Userland/Libraries/LibWeb/UIEvents/WheelEvent.h
Line
Count
Source
1
/*
2
 * Copyright (c) 2022, Aliaksandr Kalenik <kalenik.aliaksandr@gmail.com>
3
 *
4
 * SPDX-License-Identifier: BSD-2-Clause
5
 */
6
7
#pragma once
8
9
#include <LibWeb/UIEvents/MouseEvent.h>
10
#include <LibWeb/UIEvents/UIEvent.h>
11
#include <LibWeb/WebIDL/Types.h>
12
13
namespace Web::UIEvents {
14
15
enum WheelDeltaMode : WebIDL::UnsignedLong {
16
    DOM_DELTA_PIXEL = 0,
17
    DOM_DELTA_LINE = 1,
18
    DOM_DELTA_PAGE = 2,
19
};
20
21
struct WheelEventInit : public MouseEventInit {
22
    double delta_x = 0;
23
    double delta_y = 0;
24
    double delta_z = 0;
25
26
    WebIDL::UnsignedLong delta_mode = WheelDeltaMode::DOM_DELTA_PIXEL;
27
};
28
29
class WheelEvent final : public MouseEvent {
30
    WEB_PLATFORM_OBJECT(WheelEvent, MouseEvent);
31
    JS_DECLARE_ALLOCATOR(WheelEvent);
32
33
public:
34
    [[nodiscard]] static JS::NonnullGCPtr<WheelEvent> create(JS::Realm&, FlyString const& event_name, WheelEventInit const& = {}, double page_x = 0, double page_y = 0, double offset_x = 0, double offset_y = 0);
35
    [[nodiscard]] static JS::NonnullGCPtr<WheelEvent> construct_impl(JS::Realm&, FlyString const& event_name, WheelEventInit const& = {});
36
37
    static WebIDL::ExceptionOr<JS::NonnullGCPtr<WheelEvent>> create_from_platform_event(JS::Realm&, FlyString const& event_name, CSSPixelPoint screen, CSSPixelPoint page, CSSPixelPoint client, CSSPixelPoint offset, double delta_x, double delta_y, unsigned button, unsigned buttons, unsigned modifiers);
38
39
    virtual ~WheelEvent() override;
40
41
0
    double delta_x() const { return m_delta_x; }
42
0
    double delta_y() const { return m_delta_y; }
43
0
    double delta_z() const { return m_delta_z; }
44
0
    WebIDL::UnsignedLong delta_mode() const { return m_delta_mode; }
45
46
private:
47
    WheelEvent(JS::Realm&, FlyString const& event_name, WheelEventInit const& event_init, double page_x, double page_y, double offset_x, double offset_y);
48
49
    virtual void initialize(JS::Realm&) override;
50
51
    double m_delta_x { 0 };
52
    double m_delta_y { 0 };
53
    double m_delta_z { 0 };
54
    WebIDL::UnsignedLong m_delta_mode { WheelDeltaMode::DOM_DELTA_PIXEL };
55
};
56
57
}