be1f889211
* remove unfinished polygon and remove selectable for shapes in polygon mode * make group and polygon position remain inside canvas area * click through transparent area in grouped object * add some shortcuts for basic usages * tools button icon in center & switch mode border * fix load svg image * basic rtl support, panzoom have issues in rtl mode * better zoom option both in ltr and rtl * handle zoom event in mask editor * add h button to handle toggle mask * add more mime type * use capital M (shift+m) for toggle mask * allow io shortcuts in mask editor only * make other shapes also remain in canvas bound area * better zoom implementation, zoom from center add zoom to resize event listener * add a border to corner to handle blend of control * add refresh button to go to selection menu * add tooltip to shortcuts and also add shortcut for other tools * make opacity remain in same state when toggled on * opacity for group/ungroup objects * update shortcuts implementation
148 lines
3.7 KiB
TypeScript
148 lines
3.7 KiB
TypeScript
// Copyright: Ankitects Pty Ltd and contributors
|
|
// License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
|
|
|
import * as tr from "@tslib/ftl";
|
|
|
|
import {
|
|
mdiAlignHorizontalCenter,
|
|
mdiAlignHorizontalLeft,
|
|
mdiAlignHorizontalRight,
|
|
mdiAlignVerticalBottom,
|
|
mdiAlignVerticalCenter,
|
|
mdiAlignVerticalTop,
|
|
mdiCopy,
|
|
mdiDeleteOutline,
|
|
mdiGroup,
|
|
mdiUngroup,
|
|
mdiZoomIn,
|
|
mdiZoomOut,
|
|
mdiZoomReset,
|
|
} from "../icons";
|
|
import { deleteItem, duplicateItem, groupShapes, unGroupShapes, zoomIn, zoomOut, zoomReset } from "./lib";
|
|
import {
|
|
alignBottomKeyCombination,
|
|
alignHorizontalCenterKeyCombination,
|
|
alignLeftKeyCombination,
|
|
alignRightKeyCombination,
|
|
alignTopKeyCombination,
|
|
alignVerticalCenterKeyCombination,
|
|
deleteKeyCombination,
|
|
duplicateKeyCombination,
|
|
groupKeyCombination,
|
|
ungroupKeyCombination,
|
|
zoomInKeyCombination,
|
|
zoomOutKeyCombination,
|
|
zoomResetKeyCombination,
|
|
} from "./shortcuts";
|
|
import {
|
|
alignBottom,
|
|
alignHorizontalCenter,
|
|
alignLeft,
|
|
alignRight,
|
|
alignTop,
|
|
alignVerticalCenter,
|
|
} from "./tool-aligns";
|
|
|
|
export const groupUngroupTools = [
|
|
{
|
|
name: "group",
|
|
icon: mdiGroup,
|
|
action: groupShapes,
|
|
tooltip: tr.editingImageOcclusionGroup,
|
|
shortcut: groupKeyCombination,
|
|
},
|
|
{
|
|
name: "ungroup",
|
|
icon: mdiUngroup,
|
|
action: unGroupShapes,
|
|
tooltip: tr.editingImageOcclusionUngroup,
|
|
shortcut: ungroupKeyCombination,
|
|
},
|
|
];
|
|
|
|
export const deleteDuplicateTools = [
|
|
{
|
|
name: "delete",
|
|
icon: mdiDeleteOutline,
|
|
action: deleteItem,
|
|
tooltip: tr.editingImageOcclusionDelete,
|
|
shortcut: deleteKeyCombination,
|
|
},
|
|
{
|
|
name: "duplicate",
|
|
icon: mdiCopy,
|
|
action: duplicateItem,
|
|
tooltip: tr.editingImageOcclusionDuplicate,
|
|
shortcut: duplicateKeyCombination,
|
|
},
|
|
];
|
|
|
|
export const zoomTools = [
|
|
{
|
|
name: "zoomOut",
|
|
icon: mdiZoomOut,
|
|
action: zoomOut,
|
|
tooltip: tr.editingImageOcclusionZoomOut,
|
|
shortcut: zoomOutKeyCombination,
|
|
},
|
|
{
|
|
name: "zoomIn",
|
|
icon: mdiZoomIn,
|
|
action: zoomIn,
|
|
tooltip: tr.editingImageOcclusionZoomIn,
|
|
shortcut: zoomInKeyCombination,
|
|
},
|
|
{
|
|
name: "zoomReset",
|
|
icon: mdiZoomReset,
|
|
action: zoomReset,
|
|
tooltip: tr.editingImageOcclusionZoomReset,
|
|
shortcut: zoomResetKeyCombination,
|
|
},
|
|
];
|
|
|
|
export const alignTools = [
|
|
{
|
|
id: 1,
|
|
icon: mdiAlignHorizontalLeft,
|
|
action: alignLeft,
|
|
tooltip: tr.editingImageOcclusionAlignLeft,
|
|
shortcut: alignLeftKeyCombination,
|
|
},
|
|
{
|
|
id: 2,
|
|
icon: mdiAlignHorizontalCenter,
|
|
action: alignHorizontalCenter,
|
|
tooltip: tr.editingImageOcclusionAlignHCenter,
|
|
shortcut: alignHorizontalCenterKeyCombination,
|
|
},
|
|
{
|
|
id: 3,
|
|
icon: mdiAlignHorizontalRight,
|
|
action: alignRight,
|
|
tooltip: tr.editingImageOcclusionAlignRight,
|
|
shortcut: alignRightKeyCombination,
|
|
},
|
|
{
|
|
id: 4,
|
|
icon: mdiAlignVerticalTop,
|
|
action: alignTop,
|
|
tooltip: tr.editingImageOcclusionAlignTop,
|
|
shortcut: alignTopKeyCombination,
|
|
},
|
|
{
|
|
id: 5,
|
|
icon: mdiAlignVerticalCenter,
|
|
action: alignVerticalCenter,
|
|
tooltip: tr.editingImageOcclusionAlignVCenter,
|
|
shortcut: alignVerticalCenterKeyCombination,
|
|
},
|
|
{
|
|
id: 6,
|
|
icon: mdiAlignVerticalBottom,
|
|
action: alignBottom,
|
|
tooltip: tr.editingImageOcclusionAlignBottom,
|
|
shortcut: alignBottomKeyCombination,
|
|
},
|
|
];
|