示例#1
0
        protected void MouseMoveHandler(object sender, MouseEventArgs e)
        {
            if (_mousePressedOnButton)
            {
                var diff = e.GetPosition(this).X - _mouseRefPosition.X;
                if (!_dragHasModifiedValue && Math.Abs(diff) > SystemParameters.MinimumHorizontalDragDistance)
                {
                    if (StartManipulationEvent != null)
                    {
                        _mouseRefPosition = e.GetPosition(this);
                        diff = 0;
                        StartManipulationEvent(this, EventArgs.Empty);
                    }
                    _dragHasModifiedValue = true;
                }

                if (_dragHasModifiedValue)
                {
                    if (UpdateManipulationEvent != null)
                    {
                        var offset = (float)(diff * UIHelper.SubScaleFromKeyboardModifiers());
                        UpdateManipulationEvent(this, new ParameterGroupManipulatedEventArgs(offset));
                    }
                }
            }
            e.Handled = true;
        }
示例#2
0
        public void ParameterRow_UpdateManipulaitonHandler(object sender, ParameterGroupManipulatedEventArgs e)
        {
            var factor    = (float)(e.Offset / 100.0 * UIHelper.SubScaleFromKeyboardModifiers() + 1);
            var metaInput = ValueHolder.Parent.GetMetaInput(ValueHolder);
            var newValue  = _keepValueBeforeManipulation * (1 + factor * metaInput.Scale);

            newValue = Core.Utilities.Clamp(newValue, metaInput.Min, metaInput.Max);
            _setValueCommand.Value = new Core.Float(newValue);
            _setValueCommand.Do();
            App.Current.UpdateRequiredAfterUserInteraction = true;
        }
示例#3
0
        private void MouseWheelHandler(object sender, MouseWheelEventArgs e)
        {
            float delta = (e.Delta > 0) ? 0.1f : -0.1f;

            if (!_textBox.IsVisible && !_manipulating)
            {
                StartManipulation();
                ManipulateValue(Value + Scale * (float)(delta * UIHelper.SubScaleFromKeyboardModifiers()));
                EndManipulation();
            }
            e.Handled = true;
        }
示例#4
0
        public void UpdateManipulationHandler(object sender, ParameterGroupManipulatedEventArgs e)
        {
            var factor = (float)(e.Offset * UIHelper.SubScaleFromKeyboardModifiers() * 0.01);
            int index  = 0;

            foreach (var opPart in _operatorParts)
            {
                var metaInput = opPart.Parent.GetMetaInput(opPart);
                var newValue  = _keepValuesBeforeManipulation[index] * (factor * metaInput.Scale + 1);
                newValue = Core.Utilities.Clamp(newValue, metaInput.Min, metaInput.Max);
                UpdateManipulationCommand(_parameterControls[index], newValue);
                index++;
            }
            App.Current.UpdateRequiredAfterUserInteraction = true;

            _updateValueGroupMacroCommand.Do();
        }
示例#5
0
        protected void MouseMoveHandler(object sender, MouseEventArgs e)
        {
            if (m_MousePressedOnButton)
            {
                var diff = e.GetPosition(this).X - m_MouseRefPosition.X;
                if (!m_DragHasModifiedValue && Math.Abs(diff) > SystemParameters.MinimumHorizontalDragDistance)
                {
                    m_DragHasModifiedValue = true;
                }

                if (m_DragHasModifiedValue)
                {
                    ManipulateValue(m_ValueRefOnDown + (float)(diff * Scale * UIHelper.SubScaleFromKeyboardModifiers()));
                }
            }
            e.Handled = true;
        }