-
Notifications
You must be signed in to change notification settings - Fork 11
/
toggle-specs.cocoascript
34 lines (31 loc) · 985 Bytes
/
toggle-specs.cocoascript
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
var layerprefix = "specs";
var visibility = nil;
var onRun = function (context) {
var doc = context.document;
var pages = [doc pages];
var pageLoop = [pages objectEnumerator];
while (page = [pageLoop nextObject]) {
hideOrShowSpecs(page);
}
}
function hideOrShowSpecs(layer){
//show or hide layer if it matches prefix
var layername = [layer name];
if (layername.substr(0, layerprefix.length) == layerprefix){
// determine whether to toggle all specs on or off
if (visibility == nil) {
visibility = [layer isVisible] ? false : true;
}
[layer setIsVisible: visibility];
}
// iterate over children recursively if we can
if ([layer class] == "MSArtboardGroup" || [layer class] == "MSLayerGroup" || [layer class] == "MSPage"]{
var childLayers = [layer layers].array();
if (childLayers){
var loop = [childLayers objectEnumerator];
while (item = [loop nextObject]) {
hideOrShowSpecs(item);
}
}
}
}