feat(ui): feature-parity context menu — Snap Overrides, transparent Pan/Zoom, ARC keyword flow

The command menu now follows the commercial solutions' layout row for row: Enter, Cancel,
Recent Input ▸, the command's keywords, Snap Overrides ▸ (every object snap
with its glyph, Mid Between 2 Points, None, Osnap Settings…), then Pan and
Zoom. Pan / Zoom run transparently while a command is active ('PAN,
'ZOOM …): navigation modes leave the command untouched and an interactive
ZOOM Window parks it and resumes it afterwards. Rows carry an icon gutter
so labels align; the Enter row shows a default value ("<0.5000>") as its
hint instead of a second finish row.

ARC gets the commercial solutions' prompt flow with all keywords: start [Center], second
point [Center/End], end; after Center: end [Angle/chord Length]; after
End: center [Angle/Direction/Radius]; Enter continues tangent. The
previous default (Center/Start/End with method codes) stays as ARC_CSE.

Object snaps gain a one-shot "None" override. New strings in all locales.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
PanosandClaude Opus 5 committed 2026-09-17 12:05:15 +03:00
1 parent 96df4928c7
commit 02cd98e790
34 files changed
+1305 -67

No files matched your search

+13
View File
@@ -5135,6 +5135,19 @@ pub(super) fn message_attribute(source: &str) -> Option<(&'static str, &'static
"Shortcut menu" => Some(("options", "right-click-mode-shortcut-menu")),
"Time-sensitive (quick click = Enter)" => Some(("options", "right-click-mode-time-sensitive")),
"Enter first, second click = menu" => Some(("options", "right-click-mode-enter-first")),
"ARC Specify start point of arc:" => Some(("draw", "arc-specify-start-point-of-arc")),
"ARC Specify second point of arc:" => Some(("draw", "arc-specify-second-point-of-arc")),
"ARC Specify end point of arc:" => Some(("draw", "arc-specify-end-point-of-arc")),
"ARC Specify center point of arc:" => Some(("draw", "arc-specify-center-point-of-arc")),
"ARC Specify included angle:" => Some(("draw", "arc-specify-included-angle")),
"ARC Specify length of chord:" => Some(("draw", "arc-specify-length-of-chord")),
"ARC Specify tangent direction for the start point of arc:" => Some(("draw", "arc-specify-tangent-direction-for-the-start-point-of-arc")),
"ARC Specify radius of arc:" => Some(("draw", "arc-specify-radius-of-arc")),
"chord Length" => Some(("draw", "chord-length")),
"Snap Overrides" => Some(("ui", "snap-overrides")),
"Mid Between 2 Points" => Some(("ui", "mid-between-2-points")),
"Osnap Settings..." => Some(("ui", "osnap-settings")),
"Snap override: None (next pick only)." => Some(("ui", "snap-override-none-next-pick-only")),
_ => None,
}
}