protected override void InitializeInternal(RectTransform transformTarget, BoxCollider2D selectionRectCollider, Camera renderCamera)
        {
            MouseInputState newMouseInputState = new MouseInputState(propertyContainer, transformTarget);

            mouseInputState = newMouseInputState;
            pointerState    = newMouseInputState;
            pointerState.AddOnSelectionChangedEvent(GetOnSelectionChangedEvent());
        }
        private IMouseInputState HandleMouseOver()
        {
            IMouseInputState state = this;

            if (DoesStateChange(TargetMousePosition.MOUSE_OVER))
            {
                MouseOverRectState currentState = new MouseOverRectState(TargetMousePosition.MOUSE_OVER, propertyContainer, transformTarget);
                currentState.AddOnSelectionChangedEvent(GetOnSelectionChangedEvent());
                state = currentState;
            }
            return(state);
        }
        private IMouseInputState HandleNotTriggerd()
        {
            IMouseInputState state = this;

            if (DoesStateChange(TargetMousePosition.NO_CORNER))
            {
                MouseInputState currentState = new MouseInputState(TargetMousePosition.NO_CORNER, propertyContainer, transformTarget);
                currentState.AddOnSelectionChangedEvent(GetOnSelectionChangedEvent());
                state = currentState;
            }

            return(state);
        }
        private IMouseInputState HandleCornerTriggered(TargetMousePosition corner)
        {
            IMouseInputState state = this;

            if (DoesStateChange(corner))
            {
                Texture2D cursorTexture = GetCursorTexture(corner);
                //TODO: Unregister old listener
                MouseOverCornerState currentState = new MouseOverCornerState(corner, propertyContainer, transformTarget);
                currentState.AddOnSelectionChangedEvent(GetOnSelectionChangedEvent());
                state = currentState;
            }
            return(state);
        }
        private IMouseInputState OnMouseMove(Vector2 mousePosition)
        {
            IMouseInputState newState = this;

            if (mouseDown)
            {
                Vector3 delta = CalculateChangeVector(mousePosition);

                UpdateSelection(delta);
            }
            else
            {
                newState = GetMouseOverState(mousePosition);
            }
            lastMousePosition = currentMousePosition;

            return(newState);
        }
 void OnMouseUp()
 {
     mouseInputState = mouseInputState.MouseUp(ConvertCurrentMousePostionToWorldSpace());
 }
 private void UpdateMousePos()
 {
     mouseInputState = mouseInputState.UpdateMousePostion(ConvertCurrentMousePostionToWorldSpace());
 }