forked from 1b-agent/opencadstudio-upstream
feat: add style selector comboboxes to Annotate ribbon tab
New StyleComboGroup RibbonItem renders a dropdown combobox for selecting text style, dimension style, multileader style, or table style. Ribbon groups in the Annotate tab now match the reference layout: each group has a large tool on the left and a style combobox with tool rows on the right. Each combobox shows the active style name, opens a scrollable item list on click, and has an optional "Manage…" row that fires the style manager command (STYLE / DIMSTYLE / MLEADERSTYLE / TABLESTYLE). Style state is synced from the document on every layer refresh via sync_ribbon_styles(). RibbonStyleChanged message propagates selections back to the acadrust document header and the active_mleader_style field. Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
This commit is contained in:
1 parent
08b9a21d31
commit
bd68114bde
7 files changed
+431
-36
No files matched your search
@@ -79,6 +79,27 @@ pub enum RibbonItem {
|
||||
LayerComboGroup { row2: Vec<ToolDef>, row3: Vec<ToolDef> },
|
||||
/// Match Properties (large button) + Color / Linetype / Lineweight combos on the right.
|
||||
PropertiesGroup { match_prop: ToolDef },
|
||||
/// A style selector combobox (text / dim / mleader / table style) with
|
||||
/// optional small tool rows below it.
|
||||
StyleComboGroup {
|
||||
/// Which style domain this combo controls.
|
||||
style_key: StyleKey,
|
||||
/// Unique dropdown id (must be unique across the ribbon).
|
||||
combo_id: &'static str,
|
||||
/// Optional command to run when the user opens the style manager.
|
||||
manager_cmd: Option<&'static str>,
|
||||
/// Small tool rows rendered below the combo (0–2 rows).
|
||||
rows: Vec<Vec<ToolDef>>,
|
||||
},
|
||||
}
|
||||
|
||||
/// Identifies which style list a `StyleComboGroup` refers to.
|
||||
#[derive(Clone, Copy, PartialEq, Eq, Debug)]
|
||||
pub enum StyleKey {
|
||||
TextStyle,
|
||||
DimStyle,
|
||||
MLeaderStyle,
|
||||
TableStyle,
|
||||
}
|
||||
|
||||
impl From<ToolDef> for RibbonItem {
|
||||
|
||||
Reference in new issue
Block a user