Feat: add Dimension Style Manager dialog (DIMSTYLE/DDIM)

- Add DimStyleDialogOpen/Close/Apply/Select/Tab/New/SetCurrent/Delete
  messages and DsEdit/DsToggle with DsField enum for fine-grained edits
- Store active dialog state (selected style, current tab, edit buffers)
  directly on H7CAD for all 28 most-used DimStyle properties
- dimstyle_overlay: 5-tab modal panel (Lines, Arrows, Text,
  Scale/Units, Tolerances) with style list, Apply and Close buttons
- DIMSTYLE / DDIM with no sub-command now opens the dialog;
  DIMSTYLE LIST / NEW / SET sub-commands remain available

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Hakan Seven 2026-04-06 14:25:13 +03:00
commit 911e36ba04
4 changed files with 519 additions and 2 deletions

View file

@ -2090,7 +2090,11 @@ impl H7CAD {
let parts: Vec<&str> = raw_rest.split_whitespace().collect();
let sub = parts.get(0).map(|s| s.to_uppercase()).unwrap_or_default();
match sub.as_str() {
"" | "LIST" | "?" => {
// No sub-command or "DIALOG" → open the DimStyle Manager dialog
"" | "DIALOG" | "UI" => {
return Task::done(Message::DimStyleDialogOpen);
}
"LIST" | "?" => {
let styles: Vec<String> = self.tabs[i].scene.document
.dim_styles.iter()
.map(|s| format!("{}(txt:{:.2} asz:{:.2})", s.name, s.dimtxt, s.dimasz))