1*04fd306cSNickeau<?php
2*04fd306cSNickeau
3*04fd306cSNickeaunamespace Facebook\WebDriver\Interactions\Internal;
4*04fd306cSNickeau
5*04fd306cSNickeauuse Facebook\WebDriver\Internal\WebDriverLocatable;
6*04fd306cSNickeauuse Facebook\WebDriver\WebDriverAction;
7*04fd306cSNickeauuse Facebook\WebDriver\WebDriverMouse;
8*04fd306cSNickeau
9*04fd306cSNickeauclass WebDriverMoveToOffsetAction extends WebDriverMouseAction implements WebDriverAction
10*04fd306cSNickeau{
11*04fd306cSNickeau    /**
12*04fd306cSNickeau     * @var int|null
13*04fd306cSNickeau     */
14*04fd306cSNickeau    private $xOffset;
15*04fd306cSNickeau    /**
16*04fd306cSNickeau     * @var int|null
17*04fd306cSNickeau     */
18*04fd306cSNickeau    private $yOffset;
19*04fd306cSNickeau
20*04fd306cSNickeau    /**
21*04fd306cSNickeau     * @param WebDriverMouse $mouse
22*04fd306cSNickeau     * @param WebDriverLocatable|null $location_provider
23*04fd306cSNickeau     * @param int|null $x_offset
24*04fd306cSNickeau     * @param int|null $y_offset
25*04fd306cSNickeau     */
26*04fd306cSNickeau    public function __construct(
27*04fd306cSNickeau        WebDriverMouse $mouse,
28*04fd306cSNickeau        WebDriverLocatable $location_provider = null,
29*04fd306cSNickeau        $x_offset = null,
30*04fd306cSNickeau        $y_offset = null
31*04fd306cSNickeau    ) {
32*04fd306cSNickeau        parent::__construct($mouse, $location_provider);
33*04fd306cSNickeau        $this->xOffset = $x_offset;
34*04fd306cSNickeau        $this->yOffset = $y_offset;
35*04fd306cSNickeau    }
36*04fd306cSNickeau
37*04fd306cSNickeau    public function perform()
38*04fd306cSNickeau    {
39*04fd306cSNickeau        $this->mouse->mouseMove(
40*04fd306cSNickeau            $this->getActionLocation(),
41*04fd306cSNickeau            $this->xOffset,
42*04fd306cSNickeau            $this->yOffset
43*04fd306cSNickeau        );
44*04fd306cSNickeau    }
45*04fd306cSNickeau}
46