Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
Anton.Dordzheev committed May 14, 2016
0 parents commit 1aa402a
Show file tree
Hide file tree
Showing 4 changed files with 95 additions and 0 deletions.
7 changes: 7 additions & 0 deletions README.md
@@ -0,0 +1,7 @@
# Sketch Set Text
Simple Sketch plugin that set one text value to selected layers.

## How it works
* Select text layers
* Press "ctrl cmd t"
* Enter text
61 changes: 61 additions & 0 deletions Set Text.sketchplugin/Contents/Sketch/Set Text.js
@@ -0,0 +1,61 @@
var getUserResponse = function() {
var userInterface = COSAlertWindow.new();
var textField = NSTextField.alloc().initWithFrame(NSMakeRect(0,0,250,25));

userInterface.setMessageText("Set Text");

textField.setStringValue("");
userInterface.addAccessoryView(textField);

userInterface.addButtonWithTitle("Apply");
userInterface.addButtonWithTitle("Cancel");

return {
result: userInterface.runModal(),
text: textField.stringValue()
};
};

var setText = function(text, layers) {
var layer, oldValue, textToSet;
var applyAtLeastOnce = 0;

for (var i=0; i<layers.count(); i++) {
layer = layers[i];

if (layer.class() == MSTextLayer) {
applyAtLeastOnce++;
oldValue = layer.stringValue();
textToSet = text.replace(/\*/g, oldValue);
layer.setStringValue(textToSet);
layer.setName(textToSet);
}
}
return applyAtLeastOnce;
};

var onRun = function (context) {
var doc = context.document;
var selection = context.selection;
var APPLY = 1000;

if (selection.count() == 0) {
doc.showMessage('Select at least one text layer');
return;
}

var response = getUserResponse();

if (response.result === APPLY) {
var text = response.text.trim();

if (text.length !== 0) {
var applyCount = setText(text, selection);
doc.showMessage(applyCount ?
'Processed layers: ' + applyCount :
'Select at least one text layer');
} else {
doc.showMessage('Text can\'t be blank');
}
}
}
24 changes: 24 additions & 0 deletions Set Text.sketchplugin/Contents/Sketch/manifest.json
@@ -0,0 +1,24 @@
{
"name" : "Set Text",
"author" : "Anton Dordzheev",
"description" : "",
"homepage": "",
"version": "1.0",
"identifier": "com.adordzheev.set-text",
"commands" : [
{
"script" : "Set Text.js",
"handler" : "onRun",
"name" : "Set Text",
"identifier" : "set_text",
"shortcut" : "cmd ctrl t"
}
],
"menu" : {
"title" : "Set Text",
"isRoot" : true,
"items" : [
"set_text"
]
}
}
3 changes: 3 additions & 0 deletions package.json
@@ -0,0 +1,3 @@
{
"version" : "1.0"
}

0 comments on commit 1aa402a

Please sign in to comment.