feat(plot): horizontal rulers alongside the vertical cursors
This commit is contained in:
1 parent
2d819c4228
commit
63f9655ae1
11 files changed
+514
-29
No files matched your search
@@ -81,7 +81,15 @@ using plot::RegionGrab;
|
||||
/// nearest one winning. A marker is drawn on top of everything and is hit-tested
|
||||
/// the same way: the shaded band between two measurement cursors is grabbed by
|
||||
/// dragging either of the cursors that bound it, because its edges *are* those
|
||||
/// cursors -- no second path, no second tolerance.
|
||||
/// cursors -- no second path, no second tolerance. A *horizontal* ruler is the same
|
||||
/// target turned a quarter turn: the distance measured is the pointer's to the
|
||||
/// ruler's row rather than to a marker's column, and it is the same radius, so a
|
||||
/// point within reach of one of each resolves to the nearer and neither orientation
|
||||
/// widens the other's reach. The drag that follows writes only the coordinate the
|
||||
/// grabbed cursor's orientation owns -- `set_cursor_x()` for a marker,
|
||||
/// `set_cursor_y()` for a ruler -- and a dragged ruler is clamped to its own y
|
||||
/// axis' range, because a pointer past the top or bottom of `axes` has no data
|
||||
/// under it to follow (see `move_cursor()`).
|
||||
/// 2. **Regions next**, resolved nearest-first against the geometry `Plot::layout()`
|
||||
/// measured: a bound within the grab radius beats the body (so the bound of a
|
||||
/// wide region is grabbable even though the pointer is inside the fill), the
|
||||
@@ -184,8 +192,9 @@ class Controller {
|
||||
DragMode drag_mode() const noexcept { return mode_; }
|
||||
/// The current box-zoom selection in pixels; meaningful while BoxZoom.
|
||||
Rect selection_rect() const noexcept { return selection_; }
|
||||
/// The cursor under the pointer, or `kInvalid` when the pointer is outside the
|
||||
/// plot area or no cursor is within a few pixels.
|
||||
/// The cursor under the pointer -- a vertical marker or a horizontal ruler, whichever
|
||||
/// line the pointer is nearer -- or `kInvalid` when the pointer is outside the plot area
|
||||
/// or no cursor is within a few pixels.
|
||||
u64 hovered_cursor() const;
|
||||
/// The cursor a drag is moving, or `kInvalid` when no cursor drag is open. The two
|
||||
/// are the same answer the plot publishes for the renderer (see HotHandles), for a
|
||||
|
||||
Reference in new issue
Block a user