/// <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); } }
/// <summary> /// [内部メソッド] /// 排他的イベントを割り当てる /// </summary> private void allocateExclusiveEvent(Win32ApiWrapper.TouchEventData[] eventData) { // タッチイベントフラグを取得する Win32ApiWrapper.TouchEventFlags eventFlags = eventData[0].dwEventFlags; // 接触点の座標情報を設定する TouchPoint touchPoint1 = new TouchPoint(eventData[0].x, eventData[0].y); TouchPoint touchPoint2 = null; if (eventData.Length > 1) { touchPoint2 = new TouchPoint(eventData[1].x, eventData[1].y); } // 各イベントを割り当てる if (eventData.Length > 1 && eventData[1].dwEventFlags.IsDown()) { // 「ピンチ」操作の開始を検知する this.baseTwoTouchDistanceCentiPixel = Calculator.CalcurateDistance(touchPoint1.X, touchPoint1.Y, touchPoint2.X, touchPoint2.Y); } else if (eventData.Length > 1 && eventData[1].dwEventFlags.IsMove()) { // 「ピンチ」イベントを実行する executePinchEvent(touchPoint1, touchPoint2); } else if (eventFlags.IsUp()) { if (isSwipe(touchPoint1)) { // 「スワイプ」イベントを実行する executeSwipeEvent(touchPoint1); } else if (isDoubleTap()) { // 「ダブルタップ」イベントを実行する executeDoubleTapEvent(touchPoint1); } else if (isTap()) { // 「タップ」イベントを実行する executeTapEvent(touchPoint1); } } }