コード例 #1
0
            public void ButtonPress(Vector3 mousePos, IBrowserUI uiHandler, Vector2 browserSize)
            {
                var now = Time.realtimeSinceStartup;

                if (now - lastPressTime > uiHandler.InputSettings.multiclickSpeed)
                {
                    //too long ago? forget the past
                    repeatCount = 0;
                }

                if (repeatCount > 0)
                {
                    //close enough to be a multiclick?
                    var p1 = Vector2.Scale(mousePos, browserSize);
                    var p2 = Vector2.Scale(lastPosition, browserSize);
                    if (Vector2.Distance(p1, p2) > uiHandler.InputSettings.multiclickTolerance)
                    {
                        repeatCount = 0;
                    }
                }

                repeatCount++;

                lastPressTime = now;
                lastPosition  = mousePos;
            }
コード例 #2
0
        private void HandleMouseInput()
        {
            IBrowserUI  uIHandler     = browser.UIHandler;
            Vector2     mousePosition = uIHandler.MousePosition;
            MouseButton mouseButtons  = uIHandler.MouseButtons;
            Vector2     mouseScroll   = uIHandler.MouseScroll;

            if (mousePosition != prevPos)
            {
                BrowserNative.zfb_mouseMove(browser.browserId, mousePosition.x, 1f - mousePosition.y);
            }
            if (mouseScroll.sqrMagnitude != 0f)
            {
                BrowserNative.zfb_mouseScroll(browser.browserId, (int)mouseScroll.x * uIHandler.InputSettings.scrollSpeed, (int)mouseScroll.y * uIHandler.InputSettings.scrollSpeed);
            }
            bool flag  = (prevButtons & MouseButton.Left) != (mouseButtons & MouseButton.Left);
            bool flag2 = (mouseButtons & MouseButton.Left) == MouseButton.Left;
            bool flag3 = (prevButtons & MouseButton.Middle) != (mouseButtons & MouseButton.Middle);
            bool down  = (mouseButtons & MouseButton.Middle) == MouseButton.Middle;
            bool flag4 = (prevButtons & MouseButton.Right) != (mouseButtons & MouseButton.Right);
            bool down2 = (mouseButtons & MouseButton.Right) == MouseButton.Right;

            if (flag)
            {
                if (flag2)
                {
                    leftClickHistory.ButtonPress(mousePosition, uIHandler, browser.Size);
                }
                BrowserNative.zfb_mouseButton(browser.browserId, BrowserNative.MouseButton.MBT_LEFT, flag2, flag2 ? leftClickHistory.repeatCount : 0);
            }
            if (flag3)
            {
                BrowserNative.zfb_mouseButton(browser.browserId, BrowserNative.MouseButton.MBT_MIDDLE, down, 1);
            }
            if (flag4)
            {
                BrowserNative.zfb_mouseButton(browser.browserId, BrowserNative.MouseButton.MBT_RIGHT, down2, 1);
            }
            prevPos     = mousePosition;
            prevButtons = mouseButtons;
        }
コード例 #3
0
            public void ButtonPress(Vector3 mousePos, IBrowserUI uiHandler, Vector2 browserSize)
            {
                float realtimeSinceStartup = Time.realtimeSinceStartup;

                if (realtimeSinceStartup - lastPressTime > uiHandler.InputSettings.multiclickSpeed)
                {
                    repeatCount = 0;
                }
                if (repeatCount > 0)
                {
                    Vector2 a = Vector2.Scale(mousePos, browserSize);
                    Vector2 b = Vector2.Scale(lastPosition, browserSize);
                    if (Vector2.Distance(a, b) > uiHandler.InputSettings.multiclickTolerance)
                    {
                        repeatCount = 0;
                    }
                }
                repeatCount++;
                lastPressTime = realtimeSinceStartup;
                lastPosition  = mousePos;
            }