Esempio n. 1
0
        /// <summary>
        /// [内部メソッド]
        /// UP イベントデータを実行する
        /// </summary>
        /// <param name="eventData">イベントデータ</param>
        private void executeUpEvent(Win32ApiWrapper.TouchEventData eventData)
        {
            // 接触点を軌道に追加する
            var touchPoint = new TouchPoint(eventData.x, eventData.y);

            this.orbit.Add(touchPoint);

            // 「タッチアップ」イベントハンドラを実行する
            var teArgs = new TouchEventArgs(touchPoint, this.orbit);

            OnTouchUp(teArgs);
        }
Esempio n. 2
0
        /// <summary>
        /// [内部メソッド]
        /// DOWN ベントを実行する
        /// </summary>
        /// <param name="eventData">イベントデータ</param>
        private void executeDownEvent(Win32ApiWrapper.TouchEventData eventData)
        {
            // タッチ操作のデータを初期化する
            resetFields();

            // タッチの基準点を保持しておく
            this.touchDownTime  = DateTime.Now;
            this.baseTouchPoint = new TouchPoint(eventData.x, eventData.y);

            // 接触点を軌道に追加する
            this.orbit.Add(this.baseTouchPoint);

            // 「タッチダウン」イベントハンドラを実行する
            var teArgs = new TouchEventArgs(this.baseTouchPoint, this.orbit);

            OnTouchDown(teArgs);
        }
Esempio n. 3
0
        /// <summary>
        /// [内部メソッド]
        /// 基本イベントを割り当てる
        /// </summary>
        /// <param name="eventData">イベントデータ</param>
        private void allocateBasicEvent(Win32ApiWrapper.TouchEventData eventData)
        {
            // タッチイベントフラグを取得する
            Win32ApiWrapper.TouchEventFlags eventFlags = eventData.dwEventFlags;

            if (eventFlags.IsDown())
            {
                executeDownEvent(eventData);
            }
            else if (eventFlags.IsMove())
            {
                executeMoveEvent(eventData);
            }
            else if (eventFlags.IsUp())
            {
                executeUpEvent(eventData);
            }
        }
Esempio n. 4
0
        /// <summary>
        /// [内部メソッド]
        /// MOVE イベントを実行する
        /// </summary>
        /// <param name="eventData">イベントデータ</param>
        private void executeMoveEvent(Win32ApiWrapper.TouchEventData eventData)
        {
            // 移動距離が規定の間隔に満たない場合は処理しない
            TouchPoint lastTouchPoint = this.orbit.Last();
            int        distance       = Calculator.CalcurateDistance(lastTouchPoint.X, lastTouchPoint.Y, eventData.x, eventData.y);

            if (distance < this.moveIntervalCentiPixel)
            {
                return;
            }

            //接触点を軌道に追加する
            var touchPoint = new TouchPoint(eventData.x, eventData.y);

            this.orbit.Add(touchPoint);

            // 「タッチムーブ」イベントハンドラを実行する
            var teArgs = new TouchEventArgs(touchPoint, this.orbit);

            OnTouchMove(teArgs);
        }
Esempio n. 5
0
        /// <summary>
        /// [内部メソッド]
        /// 基本イベントを割り当てる
        /// </summary>
        /// <param name="eventData">イベントデータ</param>
        private void allocateBasicEvent(Win32ApiWrapper.TouchEventData eventData)
        {
            Win32ApiWrapper.TouchEventFlags eventFlags = eventData.dwEventFlags;

            if ((eventFlags & Win32ApiWrapper.TouchEventFlags.DOWN) == Win32ApiWrapper.TouchEventFlags.DOWN)
            {
                // 「タッチダウン」イベントハンドラを実行する
                resetFields();
                _touchDownTime  = DateTime.Now;
                _baseTouchPoint = new TouchPoint(eventData.x, eventData.y);
                var teArgs = new TouchEventArgs(_baseTouchPoint, _orbit);
                _orbit.Add(_baseTouchPoint);
                OnTouchDown(teArgs);
            }
            else if ((eventFlags & Win32ApiWrapper.TouchEventFlags.MOVE) == Win32ApiWrapper.TouchEventFlags.MOVE)
            {
                // 移動距離が規定の間隔に満たない場合は処理しない
                TouchPoint lastTouchPoint = _orbit.Last();
                int        distance       = Calculator.CalcurateDistance(lastTouchPoint.X, lastTouchPoint.Y, eventData.x, eventData.y);
                if (distance < _moveInterval)
                {
                    return;
                }

                // 「タッチムーブ」イベントハンドラを実行する
                var touchPoint = new TouchPoint(eventData.x, eventData.y);
                var teArgs     = new TouchEventArgs(touchPoint, _orbit);
                _orbit.Add(touchPoint);
                OnTouchMove(teArgs);
            }
            else if ((eventFlags & Win32ApiWrapper.TouchEventFlags.UP) == Win32ApiWrapper.TouchEventFlags.UP)
            {
                // 「タッチアップ」イベントハンドラを実行する
                var touchPoint = new TouchPoint(eventData.x, eventData.y);
                var teArgs     = new TouchEventArgs(touchPoint, _orbit);
                _orbit.Add(touchPoint);
                OnTouchUp(teArgs);
            }
        }