-
-
Notifications
You must be signed in to change notification settings - Fork 3.5k
/
default_controls.ts
115 lines (101 loc) · 3.38 KB
/
default_controls.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
//@ts-nocheck
(function(global) {
var fabric = global.fabric, controlsUtils = fabric.controlsUtils,
scaleSkewStyleHandler = controlsUtils.scaleSkewCursorStyleHandler,
scaleStyleHandler = controlsUtils.scaleCursorStyleHandler,
scalingEqually = controlsUtils.scalingEqually,
scalingYOrSkewingX = controlsUtils.scalingYOrSkewingX,
scalingXOrSkewingY = controlsUtils.scalingXOrSkewingY,
scaleOrSkewActionName = controlsUtils.scaleOrSkewActionName,
objectControls = fabric.Object.prototype.controls;
objectControls.ml = new fabric.Control({
x: -0.5,
y: 0,
cursorStyleHandler: scaleSkewStyleHandler,
actionHandler: scalingXOrSkewingY,
getActionName: scaleOrSkewActionName,
});
objectControls.mr = new fabric.Control({
x: 0.5,
y: 0,
cursorStyleHandler: scaleSkewStyleHandler,
actionHandler: scalingXOrSkewingY,
getActionName: scaleOrSkewActionName,
});
objectControls.mb = new fabric.Control({
x: 0,
y: 0.5,
cursorStyleHandler: scaleSkewStyleHandler,
actionHandler: scalingYOrSkewingX,
getActionName: scaleOrSkewActionName,
});
objectControls.mt = new fabric.Control({
x: 0,
y: -0.5,
cursorStyleHandler: scaleSkewStyleHandler,
actionHandler: scalingYOrSkewingX,
getActionName: scaleOrSkewActionName,
});
objectControls.tl = new fabric.Control({
x: -0.5,
y: -0.5,
cursorStyleHandler: scaleStyleHandler,
actionHandler: scalingEqually
});
objectControls.tr = new fabric.Control({
x: 0.5,
y: -0.5,
cursorStyleHandler: scaleStyleHandler,
actionHandler: scalingEqually
});
objectControls.bl = new fabric.Control({
x: -0.5,
y: 0.5,
cursorStyleHandler: scaleStyleHandler,
actionHandler: scalingEqually
});
objectControls.br = new fabric.Control({
x: 0.5,
y: 0.5,
cursorStyleHandler: scaleStyleHandler,
actionHandler: scalingEqually
});
objectControls.mtr = new fabric.Control({
x: 0,
y: -0.5,
actionHandler: controlsUtils.rotationWithSnapping,
cursorStyleHandler: controlsUtils.rotationStyleHandler,
offsetY: -40,
withConnection: true,
actionName: 'rotate',
});
if (fabric.Textbox) {
// this is breaking the prototype inheritance, no time / ideas to fix it.
// is important to document that if you want to have all objects to have a
// specific custom control, you have to add it to Object prototype and to Textbox
// prototype. The controls are shared as references. So changes to control `tr`
// can still apply to all objects if needed.
var textBoxControls = fabric.Textbox.prototype.controls = { };
textBoxControls.mtr = objectControls.mtr;
textBoxControls.tr = objectControls.tr;
textBoxControls.br = objectControls.br;
textBoxControls.tl = objectControls.tl;
textBoxControls.bl = objectControls.bl;
textBoxControls.mt = objectControls.mt;
textBoxControls.mb = objectControls.mb;
textBoxControls.mr = new fabric.Control({
x: 0.5,
y: 0,
actionHandler: controlsUtils.changeWidth,
cursorStyleHandler: scaleSkewStyleHandler,
actionName: 'resizing',
});
textBoxControls.ml = new fabric.Control({
x: -0.5,
y: 0,
actionHandler: controlsUtils.changeWidth,
cursorStyleHandler: scaleSkewStyleHandler,
actionName: 'resizing',
});
}
})(typeof exports !== 'undefined' ? exports : window);