Wiresheet zoom, from the View menu, the toolbar and Ctrl+wheel
A ladder of scales from 50% to 300%, stepped by Zoom In / Zoom Out / Zoom 100%, by the two buttons beside the navigation arrows, and by Ctrl and the wheel, which holds the point under the pointer still. A menu or keyboard zoom holds the middle of the view instead, so it closes in on what is already being looked at. Painting and routing stay at 1:1, because that is where every metric is tuned: box header and row heights, wire stubs, lane gaps, standoffs, knob radii. Zoom scales the finished picture, so a zoomed sheet keeps the proportions of a 1:1 one and the router reaches the same decisions at every scale. Text comes along because the three box fonts are resized once the boxes have been measured with them. redraw_links replaces the direct draw_links calls a drag or a drop makes: the router reads box positions off the canvas, so the boxes go back to 1:1 for the routing pass and the result is scaled again. Canvas coordinates carry the zoom, which is why the drag, release and drop handlers now snap against meta_scale * zoom -- a box dragged the same distance across the screen lands on the same meta step at 50%, 100% and 200%. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -85,6 +85,9 @@ Undoing back to the depth of the last save clears the dirty tint rather than lea
|
||||
| `Ctrl`/`Cmd` + `B` | Show or hide the tree/palette column |
|
||||
| `Ctrl` + `W` | Tidy Layout: re-flow the open sheet |
|
||||
| `Alt` + `Left` / `Alt` + `Right` | Back and forward through the sheets opened this session |
|
||||
| `Ctrl`/`Cmd` + `+` / `-` | Zoom the sheet in and out |
|
||||
| `Ctrl`/`Cmd` + `0` | Zoom back to 100% |
|
||||
| `Ctrl` + wheel | Zoom around the pointer |
|
||||
|
||||
Both `Command-` and `Control-` are bound for each, so the same build works on macOS and
|
||||
Windows; menu accelerators render as `Cmd` or `Ctrl` per platform. Tidy Layout is the
|
||||
@@ -96,6 +99,17 @@ exception, on `Control-` alone: `Cmd` + `W` closes the window on macOS.
|
||||
it back at its configured width. ttk has no hide flag for a pane, so the column is dropped
|
||||
from the paned window and re-inserted at the front.
|
||||
|
||||
**Zoom In**, **Zoom Out** and **Zoom 100%** step a ladder of scales, with the two zoom
|
||||
buttons and the percentage sitting beside the navigation arrows in the toolbar. The sheet
|
||||
is painted and routed at 1:1 -- box metrics, wire stubs, lane gaps, clearances and knob
|
||||
radii are all tuned in those pixels -- and `apply_sheet_zoom` scales the finished picture,
|
||||
so a zoomed sheet keeps exactly the proportions of a 1:1 one and the router makes the same
|
||||
decisions at every scale. Text scales because the three box fonts are resized after the
|
||||
boxes were measured with them. `redraw_links()` is what a drag or a drop calls: it puts
|
||||
the boxes back to 1:1 for the routing pass and scales the result again, since the router
|
||||
reads box positions straight off the canvas. Canvas coordinates therefore carry the zoom,
|
||||
which is why the drag, release and drop handlers snap against `meta_scale * zoom`.
|
||||
|
||||
**Back** and **Forward** walk the sheets opened this session, mirrored by the two arrow
|
||||
buttons in the toolbar. The history records the element whose children are painted -- the
|
||||
same thing `app_state.current_sheet_parent` holds -- rather than a tree item id, because
|
||||
|
||||
Reference in New Issue
Block a user