Skip to content

Instantly share code, notes, and snippets.

@sonburn
Created March 22, 2017 22:32
Show Gist options
  • Save sonburn/70ee2d4b79dbcd2a3820132f713e253c to your computer and use it in GitHub Desktop.
Save sonburn/70ee2d4b79dbcd2a3820132f713e253c to your computer and use it in GitHub Desktop.
var doc = context.document
var page = doc.currentPage()
var pages = doc.pages()
var count = 0;
var navbarSymbol = findSymbolByName("Material/Bar/Nav");
for (i = 0; i < pages.count(); i++) {
var artboards = pages[i].artboards()
for (j = 0; j < artboards.count(); j++) {
var appGroup = findLayerByName(artboards[j],"Application",MSLayerGroup);
var artboardWidth = artboards[j].frame().width();
var artboardHeight = artboards[j].frame().height();
if (appGroup) {
appGroup.setHasClickThrough(true);
var navbarSymbolInstance = navbarSymbol.newSymbolInstance();
appGroup.addLayers([navbarSymbolInstance]);
navbarSymbolInstance.frame().setWidth(artboardWidth);
navbarSymbolInstance.frame().setY(artboardHeight-navbarSymbol.frame().height());
count++
}
}
}
doc.showMessage(count + ' Application layers were modified');
function findLayerByName(scope,layerName,type) {
var scope = scope.layers();
if (scope) {
for (var i = 0; i < scope.count(); i++) {
var name = scope.objectAtIndex(i).name().trim();
if ((!type && name == layerName) || (type && name == layerName && scope.objectAtIndex(i) instanceof type)) {
return scope.objectAtIndex(i);
}
}
}
return false;
}
function findSymbolByName(symbolName) {
var symbols = doc.documentData().allSymbols();
for (var i = 0; i < symbols.count(); i++) {
if (symbols.objectAtIndex(i).name() == symbolName) {
return symbols.objectAtIndex(i);
}
}
return false;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment