mirror of
https://github.com/xibyte/jsketcher
synced 2025-12-06 16:33:15 +01:00
80 lines
2.3 KiB
TypeScript
80 lines
2.3 KiB
TypeScript
import objectToolActions from '../../sketcher/actions/objectToolActions';
|
|
import measureActions from '../../sketcher/actions/measureActions';
|
|
import {insertAfter} from 'gems/iterables';
|
|
import operationActions from "../../sketcher/actions/operationActions";
|
|
import constraintGlobalActions from "../../sketcher/actions/constraintGlobalActions";
|
|
import generalToolActions from "../../sketcher/actions/generalToolActions";
|
|
import sketcherControlActions from "./sketcherControlActions";
|
|
import {ApplicationContext} from "cad/context";
|
|
import {RiCompasses2Line} from "react-icons/ri";
|
|
|
|
export default function (ctx: ApplicationContext) {
|
|
|
|
const convertedActions = [
|
|
...constraintGlobalActions,
|
|
...measureActions,
|
|
...generalToolActions,
|
|
...objectToolActions,
|
|
...operationActions,
|
|
].map(convertSketcherAction);
|
|
|
|
const SKETCHER_MODE_HEADS_UP_ACTIONS = [
|
|
['sketchSaveAndExit', 'sketchExit'],
|
|
'-',
|
|
generalToolActions.map(a => toSketcherActionId(a.id)),
|
|
'-',
|
|
[
|
|
...objectToolActions.map(a => toSketcherActionId(a.id)),
|
|
toSketcherActionId('Offset'),
|
|
toSketcherActionId('MirrorStart'),
|
|
],
|
|
'-',
|
|
measureActions.map(a => toSketcherActionId(a.id)),
|
|
'-',
|
|
//constraintGlobalActions.map(a => toSketcherActionId(a.id)),
|
|
//'-',
|
|
['LookAtFace'],
|
|
'-',
|
|
['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', '-');
|
|
|
|
ctx.workbenchService.registerWorkbench({
|
|
workbenchId: 'sketcher',
|
|
internal: true,
|
|
features: [],
|
|
actions: [
|
|
...sketcherControlActions,
|
|
...convertedActions
|
|
],
|
|
ui: {
|
|
toolbar: SKETCHER_MODE_HEADS_UP_ACTIONS,
|
|
toolbarStyle: 'compact'
|
|
},
|
|
icon: RiCompasses2Line
|
|
});
|
|
}
|
|
|
|
const SKETCHER_PREFIX = 'sketcher.';
|
|
|
|
function toSketcherActionId(id: string): string {
|
|
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)
|
|
}
|
|
}
|
|
|
|
|