feat: MLineStyle manager (MLSTYLE command + dialog)
- MLSTYLE command: LIST, NEW, SET, DEL subcommands - Multiline Style Manager dialog: style list, element details (offset, color, linetype), Set Current / New / Delete buttons - MLINE/ML command now reads document header.multiline_style to apply the current style to newly created MLine entities - MlineCommand.with_style() constructor for style-aware multiline drawing Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
7e6de57c8d
commit
34076b26bb
5 changed files with 407 additions and 6 deletions
|
|
@ -90,6 +90,10 @@ pub(super) struct H7CAD {
|
|||
/// Currently loaded CTB/STB table (None = no override).
|
||||
active_plot_style: Option<crate::io::plot_style::PlotStyleTable>,
|
||||
|
||||
// ── MLineStyle Dialog ─────────────────────────────────────────────────
|
||||
mlstyle_open: bool,
|
||||
mlstyle_selected: String,
|
||||
|
||||
// ── DimStyle Dialog ───────────────────────────────────────────────────
|
||||
dimstyle_open: bool,
|
||||
/// Name of the style currently shown in the dialog.
|
||||
|
|
@ -335,6 +339,13 @@ pub enum Message {
|
|||
PlotStyleLoaded(Option<crate::io::plot_style::PlotStyleTable>),
|
||||
/// Clear the active plot style table.
|
||||
PlotStyleClear,
|
||||
// ── MLineStyle Dialog ─────────────────────────────────────────────────
|
||||
MlStyleDialogOpen,
|
||||
MlStyleDialogClose,
|
||||
MlStyleDialogSelect(String),
|
||||
MlStyleDialogSetCurrent,
|
||||
MlStyleDialogNew,
|
||||
MlStyleDialogDelete,
|
||||
// ── DimStyle Dialog ───────────────────────────────────────────────────
|
||||
DimStyleDialogOpen,
|
||||
DimStyleDialogClose,
|
||||
|
|
@ -396,6 +407,9 @@ impl H7CAD {
|
|||
page_setup_scale: "Fit".to_string(),
|
||||
// Plot style
|
||||
active_plot_style: None,
|
||||
// MLineStyle dialog
|
||||
mlstyle_open: false,
|
||||
mlstyle_selected: "Standard".to_string(),
|
||||
// DimStyle dialog
|
||||
dimstyle_open: false,
|
||||
dimstyle_selected: "Standard".to_string(),
|
||||
|
|
|
|||
Loading…
Reference in a new issue