2025-12-04 15:24:44 +08:00
|
|
|
|
import { BimButtonGroup } from '../index';
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 底部工具栏 (Toolbar)
|
|
|
|
|
|
* BimButtonGroup 的子类,专门用于加载工具栏默认按钮。
|
|
|
|
|
|
*/
|
|
|
|
|
|
export class Toolbar extends BimButtonGroup {
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 重写初始化,加载默认按钮
|
|
|
|
|
|
*/
|
|
|
|
|
|
public async init(): Promise<void> {
|
|
|
|
|
|
await super.init();
|
|
|
|
|
|
|
|
|
|
|
|
// 动态加载默认按钮配置
|
2025-12-08 10:02:24 +08:00
|
|
|
|
const { createHomeButton } = await import('./buttons/home');
|
2025-12-04 15:24:44 +08:00
|
|
|
|
const { locationButton } = await import('./buttons/location');
|
|
|
|
|
|
const { walkMenuButton } = await import('./buttons/walk/walk-menu');
|
|
|
|
|
|
const { walkPersonButton } = await import('./buttons/walk/walk-person');
|
|
|
|
|
|
const { walkBirdButton } = await import('./buttons/walk/walk-bird');
|
|
|
|
|
|
const { settingButton } = await import('./buttons/setting');
|
|
|
|
|
|
const { infoButton } = await import('./buttons/info');
|
2025-12-22 18:48:38 +08:00
|
|
|
|
const { createMeasureButton } = await import('./buttons/measure');
|
2025-12-04 15:24:44 +08:00
|
|
|
|
|
|
|
|
|
|
this.addGroup('group-1');
|
2025-12-08 10:02:24 +08:00
|
|
|
|
|
|
|
|
|
|
// 使用工厂函数创建按钮,并注入 engine
|
|
|
|
|
|
if (this.engine) {
|
|
|
|
|
|
this.addButton(createHomeButton(this.engine));
|
2025-12-22 18:48:38 +08:00
|
|
|
|
this.addButton(createMeasureButton(this.engine));
|
2025-12-08 10:02:24 +08:00
|
|
|
|
} else {
|
|
|
|
|
|
console.warn('[Toolbar] Engine not available when creating buttons.');
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2025-12-04 15:24:44 +08:00
|
|
|
|
this.addButton(walkMenuButton);
|
|
|
|
|
|
this.addButton(walkPersonButton);
|
|
|
|
|
|
this.addButton(walkBirdButton);
|
|
|
|
|
|
this.addButton(locationButton);
|
|
|
|
|
|
this.addGroup('group-2');
|
|
|
|
|
|
this.addButton(settingButton);
|
|
|
|
|
|
this.addButton(infoButton);
|
|
|
|
|
|
|
|
|
|
|
|
this.render();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|