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; } }
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; } }
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; } }
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); } }