mirror of
https://github.com/storytold/cadcraft.git
synced 2026-11-03 00:42:46 -06:00
* Dynamic Input: pointer input boxes, Tab separator, relative entry While a command asks for a point and Dynamic Input is on, the cursor tooltip shows a pair of value boxes, following AutoCAD's pointer input: - The first point of a command is X and Y, absolute. - Second and next points default to polar (distance and angle) measured from the last point, so no `@` is needed. - Typing `,` after a value locks it as X and moves to Y; `<` locks it as the distance and moves to the angle. A locked value holds the cursor and shows a lock. - Tab types the separator for the format on show, so `40` Tab `90` is 40 units at 90 degrees, and with the Cartesian setting `40` Tab `40` is 40 over and 40 up. - Enter or Space sends the entry with `@` in front, filling an empty box from the cursor. A plain number and Enter is still direct distance entry; `@`/`#` entries, keywords and command names go through untouched. The command-line text is the single source of truth: the boxes are a view of it, so the command line always shows exactly what will be sent (`40,`, `40<90`) and Backspace simply edits it. Tab is taken from egui in the raw input hook (desktop and web) while no widget has focus. Otherwise egui moves keyboard focus to the next button on Tab and the command line stops receiving keystrokes. Two new settings mirror AutoCAD's: DYNPIFORMAT (1 = second points start Cartesian) and DYNPICOORDS (1 = absolute), through SETVAR and in Drafting Settings under Dynamic Input. The tooltip uses the theme tokens, matching the command line. Scripts, the control channel and MCP never pass through the boxes and keep the plain command-line rules. The parsing lives in a small pure module (dyninput.rs) with unit tests. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019uMCkRAB8DMd8MEmoY9Vyr * Dynamic Input tooltip: border colour from theme tokens Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Brandon Thomas <echelon@gmail.com>