gravity/sim-tools.js

50 lines
1.4 KiB
JavaScript

import {ModeSwitch} from './tool/modes.js';
import {OptionsTool} from './tool/options.js';
import {PlayPause} from './tool/play-pause.js';
import {UtilityTool} from './tool/utility.js';
import {Zoom} from './tool/zoom.js';
import {ToolbarGroup} from './toolbar-group.js';
import {Toolbar} from './toolbar.js';
export function initializeTools(sim) {
sim.toolbars = {
tools: new Toolbar(sim, 'Tools')
.addTool(new Zoom())
.addTool(new PlayPause()),
modes: new Toolbar(sim, 'Modes')
.addTool(new ModeSwitch()),
utils: new Toolbar(sim, 'Utils', {expanded: false})
.addTool(new UtilityTool()),
options: new Toolbar(sim, 'Options')
.addTool(new OptionsTool([
'pauseDuring',
'display',
'compensate',
])),
params: new Toolbar(sim, 'Params')
.addTool(new OptionsTool([
'param'
])),
debug: new Toolbar(sim, 'Debug', {expanded: false})
.addTool(new OptionsTool([
'debug'
])),
};
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),
};
for (const id in sim.toolbars) {
const toolbar = sim.toolbars[id];
toolbar.applyExpanded();
}
}