private void MouseMove(Point2d m) { var mouse_prev_state = mouse_current_state; mouse_current_state = new mouse_state(m); mouse_current_state.hovered = RayTrace(m); if (mouse_enter_state == null) mouse_current_state.UpdateCursor(this); if (mouse_current_state.hovered != mouse_prev_state.hovered) this.Invalidate(); if (mouse_enter_state != null) this.Invalidate(); }
public Vector4d() { p1 = new Point2d(); p2 = new Point2d(); }
private LineT RayTrace(Point2d m) { var line = YCoordinateToPos((int)m.y); if (tasks.Count() <= line) return -1; var time_interval = tasks[line]; if (DateTimeToXCoordinate(time_interval.start) > m.x) return -1; var end_coord = DateTimeToXCoordinate(time_interval.end); if (end_coord < m.x) return -1; if (end_coord - m.x < 5) mouse_current_state.point_mode = active_zone.RESIZE_ZONE; else mouse_current_state.point_mode = active_zone.MOVE_ZONE; return line; }
public mouse_state(Point2d m) { coords = m; }