Complete parametric ribbon and constraint tools

This commit is contained in:
Hakan Seven committed 2026-09-14 01:05:39 +03:00
1 parent f3716bb516
commit 7b4cef41f7
49 files changed
+1438 -103

No files matched your search

+12
View File
@@ -74,6 +74,8 @@ pub struct ToolDef {
pub enum RibbonItem {
/// 1-row button — icon only, no label.
Tool(ToolDef),
/// 1-row button — icon and label.
LabeledTool(ToolDef),
/// 3-row button — icon + label below; full ribbon height.
LargeTool(ToolDef),
/// 1-row dropdown — icon + ▾ on right, no label.
@@ -83,6 +85,14 @@ pub enum RibbonItem {
items: Vec<(&'static str, &'static str, IconKind)>,
default: &'static str,
},
/// 1-row split dropdown — icon and fixed label, plus a menu arrow.
LabeledDropdown {
id: &'static str,
label: &'static str,
icon: IconKind,
items: Vec<(&'static str, &'static str, IconKind)>,
default: &'static str,
},
/// 3-row dropdown — icon + label + ▾ below label; full ribbon height.
LargeDropdown {
id: &'static str,
@@ -91,6 +101,8 @@ pub enum RibbonItem {
items: Vec<(&'static str, &'static str, IconKind)>,
default: &'static str,
},
/// Explicit columns of small icon-only buttons.
ToolGrid { columns: Vec<Vec<ToolDef>> },
/// Layer combo + two rows of small tools below.
/// row2: operates on the layer of a selected object (off/freeze/lock/make-current)
/// row3: all-layers operations + match (on/thaw/unlock/match)