import { BimButtonGroup } from '../index'; /** * 底部工具栏 (Toolbar) * BimButtonGroup 的子类,专门用于加载工具栏默认按钮。 */ export class Toolbar extends BimButtonGroup { /** * 重写初始化,加载默认按钮 */ public async init(): Promise { await super.init(); // 动态加载默认按钮配置 const { createHomeButton } = await import('./buttons/home'); const { createZoomBoxButton } = await import('./buttons/zoom-box'); const { createWalkMenuButton } = await import('./buttons/walk/walk-menu'); const { createMapButton } = await import('./buttons/map'); const { createPropertyButton } = await import('./buttons/property'); const { createSettingButton } = await import('./buttons/setting'); const { createInfoButton } = await import('./buttons/info'); const { createFullscreenButton } = await import('./buttons/fullscreen'); const { createMeasureButton } = await import('./buttons/measure'); const { createSectionMenuButton } = await import('./buttons/section/section-menu'); const { createSectionPlaneButton } = await import('./buttons/section/section-plane'); const { createSectionAxisButton } = await import('./buttons/section/section-axis'); const { createSectionBoxButton } = await import('./buttons/section/section-box'); this.addGroup('group-1'); // 使用工厂函数创建按钮,并注入 engine if (this.engine) { this.addButton(createHomeButton(this.engine)); // 你要求:在"首页"后面添加"选框放大" this.addButton(createZoomBoxButton(this.engine)); this.addButton(createMeasureButton(this.engine)); this.addButton(createSectionMenuButton(this.engine)); this.addButton(createSectionPlaneButton(this.engine)); this.addButton(createSectionAxisButton(this.engine)); this.addButton(createSectionBoxButton(this.engine)); this.addButton(createWalkMenuButton(this.engine)); this.addButton(createMapButton(this.engine)); this.addButton(createPropertyButton(this.engine)); this.addGroup('group-2'); this.addButton(createSettingButton(this.engine)); this.addButton(createInfoButton(this.engine)); this.addButton(createFullscreenButton(this.engine)); } else { console.warn('[Toolbar] Engine not available when creating buttons.'); } this.render(); } }