Пример #1
0
        public override void HandleInput(PointF relativeMousePos)
        {
            var hit = _mouseRegions.ItemUnderMouse(relativeMousePos);

            if (InputState.MouseButtonDown(MouseButton.Left))
            {
                if (_pressed == null && hit != null)
                {
                    _pressed     = hit.Item2;
                    _highlighted = hit.Item2;
                }
                else
                {
                    _highlighted = _pressed == hit ? _pressed : null;
                }
            }
            else if (_pressed != null)
            {
                if (_pressed == hit)
                {
                    ItemClicked(_pressed);
                }
                _pressed     = null;
                _highlighted = null;
            }
        }
Пример #2
0
        public override void HandleInput(PointF relativeMousePos)
        {
            var hit = _mouseRegions.ItemUnderMouse(relativeMousePos);
            var leftMousePressed = InputState.MouseButtonPressed(MouseButton.Left);

            if (hit != null && hit.Item2 == ColorMap && leftMousePressed)
            {
                var key   = KeyValueAtPos(hit.Item1, relativeMousePos);
                var color = ColorMap[key];
                ColorMap.Add(key, color);
                Changed(ColorMap);
                _selected = key;
                ItemSelected(ColorMap.IndexOfKey(key));
            }
            else if (hit != null && hit.Item2 is float)
            {
                var hitKey = (float)hit.Item2;
                if (leftMousePressed)
                {
                    if (hitKey != _selected)
                    {
                        _selected = hitKey;
                        ItemSelected(ColorMap.IndexOfKey(hitKey));
                    }
                    _dragging = hitKey;
                    return;
                }
                else if (ColorMap.Count > 1 && InputState.MouseButtonPressed(MouseButton.Right))
                {
                    _selected = null;
                    ItemSelected(null);
                    ColorMap.Remove(hitKey);
                    Changed(ColorMap);
                }
            }
            if (_dragging != null && InputState.MouseButtonDown(MouseButton.Left))
            {
                var newKey = KeyValueAtPos(_mouseRegions[0].Item1, relativeMousePos);
                if (newKey >= DomainMin && newKey <= DomainMax &&
                    ColorMap.MoveKey(_dragging.Value, newKey))
                {
                    Changed(ColorMap);
                    _dragging = newKey;
                    _selected = newKey;
                }
            }
            else
            {
                _dragging = null;
            }
        }
Пример #3
0
        public override void HandleInput(PointF relativeMousePos)
        {
            var hit = _mouseRegions.ItemUnderMouse(relativeMousePos);

            if (_active)
            {
                if (hit != null)
                {
                    _value = hit.Item2;
                }
                if (!InputState.MouseButtonDown(MouseButton.Left))
                {
                    _active = false;
                    Selected(_value);
                }
            }
            else if (hit != null && InputState.MouseButtonPressed(MouseButton.Left))
            {
                _active = true;
            }
        }
Пример #4
0
 public override void HandleInput(PointF relativeMousePos)
 {
     if (_mouseRegions != null)
     {
         var hit = _mouseRegions.ItemUnderMouse(relativeMousePos);
         if (InputState.MouseButtonPressed(MouseButton.Left))
         {
             if (hit != null && _selected != hit.Item2.Item1)
             {
                 _selected = hit.Item2.Item1;
                 hit.Item2.Item2(_selected);
             }
             else if (hit == null)
             {
                 _selected = null;
             }
         }
     }
     foreach (var control in Controls.Select(TupleExt.First))
     {
         control.HandleInput(relativeMousePos);
     }
 }