예제 #1
0
        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());
            }
        }
예제 #2
0
        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);
            }
        }