public virtual void OnInput(ref POINTER_INFO ptr) { if (Container != null) { ptr.callerIsControl = true; Container.OnInput(ptr); } }
public override void OnInput(POINTER_INFO ptr) { if (deleted) { return; } if (!m_controlIsEnabled) { switch (ptr.evt) { case POINTER_INFO.INPUT_EVENT.NO_CHANGE: if (list != null && ptr.active) { list.ListDragged(ptr); } break; case POINTER_INFO.INPUT_EVENT.DRAG: if (list != null && !ptr.isTap) { list.ListDragged(ptr); } break; case POINTER_INFO.INPUT_EVENT.TAP: case POINTER_INFO.INPUT_EVENT.RELEASE: case POINTER_INFO.INPUT_EVENT.RELEASE_OFF: if (list != null) { list.PointerReleased(); } break; } // Apply any mousewheel scrolling to our list: if (list != null && ptr.inputDelta.z != 0 && ptr.type != POINTER_INFO.POINTER_TYPE.RAY) { list.ScrollWheel(ptr.inputDelta.z); } if (Container != null) { ptr.callerIsControl = true; Container.OnInput(ptr); } return; } // Do our own tap checking with the list's // own threshold: if (list != null && Vector3.SqrMagnitude(ptr.origPos - ptr.devicePos) > (list.dragThreshold * list.dragThreshold)) { ptr.isTap = false; if (ptr.evt == POINTER_INFO.INPUT_EVENT.TAP) { ptr.evt = POINTER_INFO.INPUT_EVENT.RELEASE; } } else { ptr.isTap = true; } if (inputDelegate != null) { inputDelegate(ref ptr); } // Change the state if necessary: switch (ptr.evt) { case POINTER_INFO.INPUT_EVENT.NO_CHANGE: if (list != null && ptr.active) // If this is a hold { list.ListDragged(ptr); } break; case POINTER_INFO.INPUT_EVENT.DRAG: if (list != null && !ptr.isTap) { list.ListDragged(ptr); } break; case POINTER_INFO.INPUT_EVENT.TAP: if (list == null) { break; } if (ptr.callerIsControl) { list.DidClick(ptr.targetObj); } list.PointerReleased(); break; case POINTER_INFO.INPUT_EVENT.RELEASE: case POINTER_INFO.INPUT_EVENT.RELEASE_OFF: if (list != null) { list.PointerReleased(); } break; } // Apply any mousewheel scrolling to our list: if (list != null && ptr.inputDelta.z != 0 && ptr.type != POINTER_INFO.POINTER_TYPE.RAY) { list.ScrollWheel(ptr.inputDelta.z); } base.OnInput(ptr); }
public override void OnInput(POINTER_INFO ptr) { if (deleted) { return; } if (!m_controlIsEnabled) { switch (ptr.evt) { case POINTER_INFO.INPUT_EVENT.NO_CHANGE: case POINTER_INFO.INPUT_EVENT.DRAG: list.ListDragged(ptr); break; case POINTER_INFO.INPUT_EVENT.TAP: case POINTER_INFO.INPUT_EVENT.RELEASE: case POINTER_INFO.INPUT_EVENT.RELEASE_OFF: list.PointerReleased(); break; } if (Container != null) { ptr.callerIsControl = true; Container.OnInput(ptr); } return; } // Do our own tap checking with the list's // own threshold: if (Vector3.SqrMagnitude(ptr.origPos - ptr.devicePos) > (list.dragThreshold * list.dragThreshold)) { ptr.isTap = false; if (ptr.evt == POINTER_INFO.INPUT_EVENT.TAP) { ptr.evt = POINTER_INFO.INPUT_EVENT.RELEASE; } } else { ptr.isTap = true; } if (inputDelegate != null) { inputDelegate(ref ptr); } // Change the state if necessary: switch (ptr.evt) { case POINTER_INFO.INPUT_EVENT.NO_CHANGE: if (ptr.active) // If this is a hold { list.ListDragged(ptr); } break; case POINTER_INFO.INPUT_EVENT.DRAG: if (!ptr.isTap) { list.ListDragged(ptr); } break; case POINTER_INFO.INPUT_EVENT.TAP: list.PointerReleased(); break; case POINTER_INFO.INPUT_EVENT.RELEASE: case POINTER_INFO.INPUT_EVENT.RELEASE_OFF: list.PointerReleased(); break; } base.OnInput(ptr); }