68 lines
1.7 KiB
JavaScript
68 lines
1.7 KiB
JavaScript
import { Overlay } from './overlay.js';
|
|
import { Pointer } from './pointer.js';
|
|
import { ModeSwitch } from './tool/modes.js';
|
|
import { OptionsTool } from './tool/options.js';
|
|
import { PlayPause } from './tool/play-pause.js';
|
|
import { Zoom } from './tool/zoom.js';
|
|
import { UtilityTool } from './tool/utility.js';
|
|
import { Toolbar } from './toolbar.js';
|
|
import { ToolbarGroup } from './toolbar-group.js';
|
|
|
|
export function initializeTools(sim) {
|
|
sim.toolbars = {
|
|
tools: new Toolbar(sim, 'Tools'),
|
|
modes: new Toolbar(sim, 'Modes'),
|
|
utils: new Toolbar(sim, 'Utility', { expanded: false }),
|
|
options: new Toolbar(sim, 'Options'),
|
|
params: new Toolbar(sim, 'Parameters'),
|
|
debug: new Toolbar(sim, 'Debug', { expanded: false }),
|
|
};
|
|
const { tools, modes, options, params, debug, utils } = sim.toolbars;
|
|
sim.toolbarGroups = {
|
|
left: new ToolbarGroup(sim)
|
|
.addToolbar(tools)
|
|
.addToolbar(modes)
|
|
.addToolbar(utils),
|
|
right: new ToolbarGroup(sim).topRight()
|
|
.addToolbar(options)
|
|
.addToolbar(params)
|
|
.addToolbar(debug),
|
|
};
|
|
sim.overlay = new Overlay(sim);
|
|
sim.pointer = new Pointer(sim);
|
|
|
|
// Configure toolbars
|
|
|
|
// Primary
|
|
tools.addTool(new Zoom(tools));
|
|
tools.addTool(new PlayPause(tools));
|
|
|
|
// Secondary
|
|
modes.addTool(new ModeSwitch(modes));
|
|
|
|
// Utility
|
|
utils.addTool(new UtilityTool(utils));
|
|
|
|
// Options
|
|
options.addTool(new OptionsTool(options, [
|
|
'pauseDuring',
|
|
'display',
|
|
'collision'
|
|
]));
|
|
|
|
// Parameters
|
|
params.addTool(new OptionsTool(params, [
|
|
'param'
|
|
]));
|
|
|
|
// Debug
|
|
debug.addTool(new OptionsTool(debug, [
|
|
'debug'
|
|
]));
|
|
|
|
for (const id in sim.toolbars) {
|
|
const toolbar = sim.toolbars[id];
|
|
toolbar.applyExpanded();
|
|
}
|
|
}
|