﻿$engine JScript
$uname ProcessSelectedText
$dname Обработка выделенного текста
$addin global
$addin stdlib

////////////////////////////////////////////////////////////////////////////////////////
////{ Cкрипт "Обработка выделеного текста" (processSelectedText.js) для проекта "Снегопат"
////
//// Автор: Александр Кунташов <kuntashov@gmail.com>, http://compaud.ru/blog
////}
////////////////////////////////////////////////////////////////////////////////////////

function macrosОбработатьВыделенныйТекст() {
    var textWindow = stdlib.require('TextWindow.js').GetTextWindow();
    if (!textWindow)
        return;
        
    var textProcessor = new SelTextProcessor(textWindow);
    textProcessor.open();
}

function SelTextProcessor(textWindow) {
    this.form = loadScriptForm(SelfScript.fullPath.replace(/js$/, 'ssf'), this);
    this.jsCode = this.form.Controls.JavaScriptCode;
    this.result = this.form.Controls.Result;
    
    this.textWindow = textWindow;
    this.inputText = this.textWindow.GetSelectedText();
}

SelTextProcessor.prototype.open = function () {
    this.jsCode.Clear();
    this.result.Clear();
    this.form.DoModal();
}

SelTextProcessor.prototype.processText = function () {
    var inputText = this.inputText;
    var result = eval(this.jsCode.GetText());
    this.result.SetText(result);
}

SelTextProcessor.prototype.pasteResult = function () {
    this.textWindow.SetSelectedText(this.result.GetText());
}

SelTextProcessor.prototype.CancelClick = function (Control) {
    this.form.Close();
}

SelTextProcessor.prototype.OKClick = function (Control) {
    this.pasteResult();
    this.Close();
}

SelTextProcessor.prototype.CmdBarRun = function (Control) {
    this.processText();
}


