private ISkiaInputComponent getSkiaInputComponent(SKPoint point) { List <ISkiaInputComponent> inputComponents = new List <ISkiaInputComponent>(); for (int i = 0; i < SkiaBehaviourEngine.SkiaObjectCount; i++) { SkiaObject skiaObject = SkiaBehaviourEngine.GetSkiaObject(i); if (skiaObject is ISkiaInputComponent) { ISkiaInputComponent inputComponent = skiaObject as ISkiaInputComponent; if (inputComponent.FirstTouchArea.IsOverlapPoint(point)) { inputComponents.Add(inputComponent); } } } if (inputComponents.Count == 0) { return(null); } ISkiaInputComponent topInputComponent = inputComponents[0]; for (int i = 0; i < inputComponents.Count; i++) { if (inputComponents[i].InputHeightLevel > topInputComponent.InputHeightLevel) { topInputComponent = inputComponents[i]; } } return(topInputComponent); }
public static SkiaInputManager GetSkiaInputManager(this SkiaBehaviourEngine self) { for (int i = 0; i < self.SkiaObjectCount; i++) { SkiaObject skiaObject = self.GetSkiaObject(i); if (skiaObject is SkiaInputManager) { return(skiaObject as SkiaInputManager); } } return(null); }