Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Anton.Dordzheev
committed
May 14, 2016
0 parents
commit 1aa402a
Showing
4 changed files
with
95 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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'); | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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" | ||
] | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
{ | ||
"version" : "1.0" | ||
} |