* reorder tabs: plan trip before adding lanes
This order of tasks should be more logical for most people.
* Copy tweaks
"trip" is better than "route" since you don't pick the route, only the
start/end points. The route is inferred based on the available roads.
* Smaller elevation plot
it was much wider than any other UI element, meaning the column
dramatically jumps sizes when switching to this tab.
* better align line-plot x-axis
* Avoid jittering UI while switching through tabs.
* fixup! Avoid jittering UI while switching through tabs.
* fixup! Copy tweaks
* fixup! reorder tabs: plan trip before adding lanes
* fixup! Copy tweaks
The pattern is somewhat similar to how different components share a
Panel. The "outer-most" piece owns the World, calls into InputWaypoints
to fill out the World, and plumbs un-handled events to it.
Also handle a tricky low-level bug with ctx.normal_left_click() and
detecting drags vs clicks.
Now finally there's no buggy conflicts between dragging waypoints and
hovering on the alternate routes!
This one is the most complicated, and it's still not done, but it's not
any buggier than the ad-hoc implementation. I still need to figure out
how to merge the two worlds of waypoints and routes.
This one also required a large, but mechanical, refactor to lift
ToggleZoomed and the concept of unzoomed/zoomed from map_gui to
widgetry.
Also some drag-n-drop API tweaks:
- Don't require the caller to set `named()`
- Vertical card layout!
Some UX issues:
- deletion button alignment
- horizontal card alignment off
- sync up highlighting between map and cards
- selection state for a waypoint is meaningless
in preparation for dragon-drop.
These were using MultiButtons, a widgetry concept kind of redundant with
DrawWithTooltips. I think at some point we had more visual mapping
between the stage icon and the intersection on the map, to help when
synchronizing many intersections. But the functionality remaining today
just looks like clicking one intersection inside the icon, which is
barely noticeable and not helpful, so sacrifice this to proceed.
cyan.
For the moment, just to simplify things, bake the edited color into the
bike network layer. Probably will split it out later, maybe moving the
proposal management to the legend row.
Alternatives considered:
- put Layers in the App struct, since it's shared -- but only for the
ungap tool. It'd be nice to split it into its own standalone crate now,
but it'll be some work to refactor edit mode out of game.
- put Layers in App session