# IconBar 控件功能:创建一个图标工具栏,包含多个可点击的SVG图标按钮,支持选中状态和事件分发。 类型:容器控件 父类控件:`bricks.HBox` ## 初始化参数 | 参数名 | 类型 | 说明 | |-------|------|------| | `opts.cheight` | Number | 子控件高度(字符单位),默认值为 `2` | | `opts.rate` | Number | 缩放比例,影响图标大小,默认值为 `1` | | `opts.margin` | String | 图标之间的左右边距,CSS格式(如 `'10px'`) | | `opts.tools` | Array | 工具项数组,每个工具项是一个对象,包含以下字段:
- `name`: 工具名称(用于标识和事件)
- `icon`: SVG图标的URL
- `rate`: 当前图标的缩放比例(可选)
- `dynsize`: 是否动态调整尺寸(布尔值)
- `tip`: 提示文本(可选) | > 如果未提供 `cheight` 或 `rate`,会自动设置默认值。 ## 主要事件 | 事件名 | 触发条件 | 携带数据 | |--------|---------|--------| | `desc.name`(即 `tools[i].name`) | 点击某个图标时触发,事件名为该图标的 `name` 字段 | 传递对应图标的 `desc` 对象 | | `command` | 所有图标点击都会触发此统一事件 | 传递当前图标的 `desc` 对象 | > 事件通过 `dispatch` 分发,可用于外部监听具体命令或通用操作。 --- # IconTextBar 控件功能:扩展自 `IconBar`,每个工具项显示为“图标 + 文本”组合形式,适用于需要标签说明的工具栏。 类型:容器控件 父类控件:`bricks.IconBar` ## 初始化参数 继承 `IconBar` 的所有参数,并增强 `tools` 数组中每一项的支持: | 参数名 | 类型 | 说明 | |-------|------|------| | `opts.tools[i].label` | String | 显示在图标旁边的文本标签 | | `opts.tools[i].tip` | String | 鼠标悬停提示文本,会应用到整个图标+文本容器上 | | 其他参数同 `IconBar` | —— | 支持 `name`, `icon`, `rate`, `dynsize` 等 | > 每个工具项会被构造成一个水平布局(`HBox`),内部依次添加 `Svg` 和 `Text` 控件。 ## 主要事件 与 `IconBar` 完全一致: | 事件名 | 触发条件 | 携带数据 | |--------|---------|--------| | `desc.name` | 点击某一项时触发,事件名为其 `name` | 对应的 `desc` 对象 | | `command` | 所有点击均触发此事件 | 当前项的 `desc` 对象 | > 事件绑定在整体 `HBox` 上,点击任意部分(图标或文字)都会触发。 --- # FloatIconBar 控件功能:浮动式图标工具栏,初始只显示一个“外挂图标”,鼠标移入时展开完整的 `IconBar`。常用于侧边悬浮工具栏。 类型:容器控件 父类控件:`bricks.HBox` ## 初始化参数 | 参数名 | 类型 | 说明 | |-------|------|------| | `opts` | Object | 传递给内部 `IconBar` 的配置对象,结构同 `IconBar` 的 `opts.tools` 等 | | 内部使用 `bricks_resource('imgs/float-out.png')` | —— | 固定的浮出按钮图标 | > 实际工具项由传入的 `opts` 构建内部 `IconBar` 使用。 ## 主要事件 与内部 `IconBar` 保持一致: | 事件名 | 触发条件 | 携带数据 | |--------|---------|--------| | `desc.name` | 用户点击展开后的某个图标时触发 | 对应图标的 `desc` 对象 | | `command` | 所有图标点击都会触发 | 当前图标的 `desc` 对象 | > 事件来自内嵌的 `IconBar` 实例,自动透传。 此外还具备行为事件: - `mousemove` 在浮出图标上触发展开菜单 - 页面任意位置 `click` 触发收起菜单(通过监听 `bricks.Body`) --- # FloatIconTextBar 控件功能:浮动式“图标+文本”工具栏,是 `FloatIconBar` 的扩展版本,展开后显示带文字标签的工具项。 类型:容器控件 父类控件:`bricks.FloatIconBar` ## 初始化参数 与 `FloatIconBar` 相同: | 参数名 | 类型 | 说明 | |-------|------|------| | `opts` | Object | 包含 `tools` 数组及其他配置,在内部构建 `IconTextBar` 时使用 | > 内部调用 `build_bar(opts)` 创建的是 `IconTextBar` 实例,因此支持 `label`、`tip` 等文本相关属性。 ## 主要事件 与 `IconTextBar` 一致: | 事件名 | 触发条件 | 携带数据 | |--------|---------|--------| | `desc.name` | 点击展开后的某一项时触发 | 该项的 `desc` 对象 | | `command` | 所有点击都触发 | 当前项的 `desc` 对象 | > 所有事件均由内部 `IconTextBar` 实例发出,自动向上冒泡。