void mouse_MouseMoved(float x, float y) { mouseX = x; mouseY = y; if ((_downButtons & MouseButtons.Left) != 0 && _downControl != null) { _hoverControl.OnMouseMove(mouseX - _hoverControl.GetAbsX(), mouseY - _hoverControl.GetAbsY()); } else { Control c = GetControlByPosition(_controls, null, 0, 0, (int)mouseX, (int)mouseY); if (_hoverControl != c) { if (_hoverControl != null) { _hoverControl.OnMouseLeave(); } _hoverControl = c; if (_hoverControl != null) { _hoverControl.OnMouseHover(); } } if (_hoverControl != null) { _hoverControl.OnMouseMove(mouseX - _hoverControl.GetAbsX(), mouseY - _hoverControl.GetAbsY()); } } }
void mouse_MouseButtonReleased(MouseButtons buttons) { Control c = GetControlByPosition(_controls, null, 0, 0, (int)mouseX, (int)mouseY); if (_downControl != null) { _downControl.OnMouseUp(buttons, mouseX - _downControl.GetAbsX(), mouseY - _downControl.GetAbsY()); if (_downControl == c && (_downButtons & buttons) != 0) { _downControl.OnClick(_downButtons & buttons, mouseX - _downControl.GetAbsX(), mouseY - _downControl.GetAbsY()); } } _downButtons &= ~buttons; }
public float GetAbsX() { if (_parent != null) { return(_parent.GetAbsX() + _position.X); } else { return(_position.X); } }
void mouse_MouseButtonPressed(MouseButtons buttons) { SetActiveControl(GetControlByPosition(_controls, null, 0, 0, (int)mouseX, (int)mouseY)); if (_activeControl != null) { _activeControl.OnMouseDown(buttons, mouseX - _activeControl.GetAbsX(), mouseY - _activeControl.GetAbsY()); } _downControl = _activeControl; _downButtons |= buttons; }