jsketcher/web/app/cad/sketch/sketcherUIContrib.js
2020-05-05 02:13:41 -07:00

61 lines
1.9 KiB
JavaScript

import {startOperation} from "../../sketcher/actions";
import objectToolActions from '../../sketcher/actions/objectToolActions';
import measureActions from '../../sketcher/actions/measureActions';
import {insertAfter} from '../../../../modules/gems/iterables';
import operationActions from "../../sketcher/actions/operationActions";
import constraintGlobalActions from "../../sketcher/actions/constraintGlobalActions";
import generalToolActions from "../../sketcher/actions/generalToolActions";
import sketcherControlActions from "./sketcherControlActions";
export default function ({services, streams}) {
services.action.registerActions(sketcherControlActions);
services.action.registerActions([
...constraintGlobalActions,
...measureActions,
...generalToolActions,
...objectToolActions,
...operationActions,
].map(convertSketcherAction));
}
const SKETCHER_PREFIX = 'sketcher.';
function toSketcherActionId(id) {
return SKETCHER_PREFIX + id;
}
function convertSketcherAction(action) {
return {
id: toSketcherActionId(action.id),
appearance: {
icon: action.icon,
label: action.shortName,
info: action.description,
},
invoke: ({services}, e) => action.invoke(services.sketcher.inPlaceEditor.sketcherAppContext)
}
}
export const SKETCHER_MODE_HEADS_UP_ACTIONS = [
['sketchSaveAndExit', 'sketchExit'],
'-',
generalToolActions.map(a => toSketcherActionId(a.id)),
'-',
[
...objectToolActions.map(a => toSketcherActionId(a.id)),
toSketcherActionId('Offset'),
],
'-',
measureActions.map(a => toSketcherActionId(a.id)),
'-',
constraintGlobalActions.map(a => toSketcherActionId(a.id)),
'-',
['sketchOpenInTab']
];
insertAfter(SKETCHER_MODE_HEADS_UP_ACTIONS, SKETCHER_PREFIX + 'Export', '-');
insertAfter(SKETCHER_MODE_HEADS_UP_ACTIONS, SKETCHER_PREFIX + 'PanTool', '-');
insertAfter(SKETCHER_MODE_HEADS_UP_ACTIONS, SKETCHER_PREFIX + 'BezierTool', '-');