-
Notifications
You must be signed in to change notification settings - Fork 48
/
Copy pathmenu.sketchplugin
72 lines (53 loc) · 1.6 KB
/
menu.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
67
68
69
70
71
72
// (ctrl cmd j)
#import 'library/common.js'
var menuHandlers = [
createTransition,
clearTransitions
]
function handleSelection(choice, layer){
menuHandlers[choice](layer)
}
function createTransition(layer){
if (selection === null || [selection count] !== 1 || !Layer.isExportable(selection[0])) {
var msg = 'Please choose exactly one exportable group first.'
return ui.alert(msg, 'Error!')
}
var currentArtboard = [layer parentArtboard]
var artboards = _.filter(Document.artboards(), function(artboard){
return artboard.name !== [currentArtboard name]
})
var artboardNames = _.pluck(artboards, 'name').sort()
var choice = ui.createMenu('Artboard', artboardNames)
if (choice[0] === 1001) { return; }
var sel = choice[1]
var transition = artboardNames[sel]
writeTransition(transition, layer)
}
function clearTransitions(transition, layer){
var settings = loadSettings()
settings.transitions = {}
writeSettings(settings)
}
function writeTransition(transition, layer){
settings = loadSettings()
var artboard = [layer parentArtboard]
artboard = new Artboard(artboard)
layer = new Layer(layer, artboard)
var key = artboard.sanitizedName
var transitionObject = settings.transitions[key] || {}
transitionObject[layer.sanitizedName] = transition.toString()
settings.transitions[key] = transitionObject
writeSettings(settings)
}
function main(){
dpi = 1
var choice = ui.createMenu('Android Kit', [
'Create Transition',
'Clear Transitions'
])
if (choice[0] === 1001) { // cancel
return;
}
handleSelection(choice[1], selection[0])
}
main()