public static void AddManipulators <T>(T instance, VisualElement element) { IOnMouse mouseHandler = instance as IOnMouse; if (mouseHandler != null) { //Debug.LogFormat("Adding 'MouseManipulator' to '{0}'", instance.GetType().Name); element.AddManipulator(new RedOwlMouseManipulator(mouseHandler.IsContentDragger, mouseHandler.MouseFilters.ToArray())); } IOnContextMenu contextMenuHandler = instance as IOnContextMenu; if (contextMenuHandler != null) { //Debug.LogFormat("Adding 'ContextualMenuManipulator' to '{0}'", instance.GetType().Name); element.AddManipulator(new ContextualMenuManipulator(contextMenuHandler.OnContextMenu)); } IOnKeyboard keyboardHandler = instance as IOnKeyboard; if (keyboardHandler != null) { //Debug.LogFormat("Adding 'KeyboardManipulator' to '{0}'", instance.GetType().Name); element.AddManipulator(new RedOwlKeyboardManipulator(keyboardHandler.KeyboardFilters.ToArray())); } IOnWheel wheelHandler = instance as IOnWheel; IOnZoom zoomHandler = instance as IOnZoom; if (wheelHandler != null || zoomHandler != null) { //Debug.LogFormat("Adding 'WheelManipulator' to '{0}'", instance.GetType().Name); element.AddManipulator(new RedOwlWheelManipulator()); } }
protected override void RegisterCallbacksOnTarget() { wheelTarget = target as IOnWheel; zoomTarget = target as IOnZoom; if (wheelTarget != null || zoomTarget != null) { if (zoomTarget != null) { zoomMinScale = zoomTarget.zoomMinScale; zoomMaxScale = zoomTarget.zoomMaxScale; zoomScaleStep = zoomTarget.zoomScaleStep; zoomCurrentScale = 1f; zoomModifiers = zoomTarget.zoomActivationModifiers; } target.RegisterCallback <WheelEvent>(OnWheel); } }