-
Notifications
You must be signed in to change notification settings - Fork 12
/
Copy pathduplicate as pattern.sketchplugin
66 lines (56 loc) · 1.76 KB
/
duplicate as pattern.sketchplugin
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
// duplicate the selection and put the clone into the other edge.
var layer = selection[0];
var frame = [layer frame];
var parent = [layer parentGroup];
parentWidth = [[parent frame] width];
parentHeight = [[parent frame] height];
// left and top edge
if ([frame x] < 0) {
var clone = [layer duplicate];
var frame2 = [clone frame];
[frame2 setX: [frame x] + parentWidth];
}
if ([frame y] < 0) {
var clone = [layer duplicate];
var frame2 = [clone frame];
[frame2 setY: [frame y] + parentHeight];
}
// right and bottom edge
if ([frame x] + [frame width] > parentWidth) {
var clone = [layer duplicate];
var frame2 = [clone frame];
[frame2 setX: [frame x] - parentWidth];
}
if ([frame y] + [frame height] > parentHeight) {
var clone = [layer duplicate];
var frame2 = [clone frame];
[frame2 setY: [frame y] - parentHeight];
}
// top-left corner
if ([frame x] < 0 && [frame y] < 0) {
var clone = [layer duplicate];
var frame2 = [clone frame];
[frame2 setX: [frame x] + parentWidth];
[frame2 setY: [frame y] + parentHeight];
}
// bottom-right corner
if ([frame x] + [frame width] > parentWidth && [frame y] + [frame height] > parentHeight) {
var clone = [layer duplicate];
var frame2 = [clone frame];
[frame2 setX: [frame x] - parentWidth];
[frame2 setY: [frame y] - parentHeight];
}
// top-right corner
if ([frame y] < 0 && [frame x] + [frame width] > parentWidth) {
var clone = [layer duplicate];
var frame2 = [clone frame];
[frame2 setX: [frame x] - parentWidth];
[frame2 setY: [frame y] + parentHeight];
}
// bottom-left corner
if ([frame x] < 0 && [frame y] + [frame height] > parentHeight) {
var clone = [layer duplicate];
var frame2 = [clone frame];
[frame2 setX: [frame x] + parentWidth];
[frame2 setY: [frame y] - parentHeight];
}