Subversion Repositories general

Compare Revisions

Regard whitespace Rev 1332 → Rev 1333

/mozilla/latrus/trunk/src/chrome/content/latrus.js
1,24 → 1,25
var latRusWorker = null;
var latRusEnabled = false;
var latRusShowHint = true;
var LatRus = {
inited: false,
worker: null,
enabled: false,
showHint: true,
 
var LatRus = {
init: function()
{
latRusWorker = new Worker();
 
LatRus.worker = new LatRusWorker_Rus();
LatRus.setEnabled(false);
inited = true;
},
 
onKeyPress: function(aEvent)
{
if(!latRusEnabled) return;
if(!LatRus.enabled) return;
if(aEvent.ctrlKey || aEvent.altKey || aEvent.charCode == 0) return true;
if(aEvent.keyCode == 255) return; // our loop event
 
var newEvent = aEvent.target.ownerDocument.createEvent("KeyEvents");
newEvent.initKeyEvent(aEvent.type, aEvent.bubbles, aEvent.cancelable, aEvent.view,
false, false, false, false, 255, latRusWorker.convertCode(aEvent.charCode));
false, false, false, false, 255, LatRus.worker.convertCode(aEvent.charCode));
aEvent.preventDefault();
aEvent.originalTarget.dispatchEvent(newEvent);
},
25,12 → 26,12
 
toggleEnabled: function()
{
LatRus.setEnabled(!latRusEnabled);
LatRus.setEnabled(!LatRus.enabled);
},
 
setEnabled: function(enabled)
{
latRusEnabled = enabled;
LatRus.enabled = enabled;
LatRus.updateEnabled();
},
 
38,12 → 39,12
{
var item = document.getElementById("context-latrus-enabled");
if(item) {
item.setAttribute("checked", latRusEnabled);
item.setAttribute("checked", LatRus.enabled);
}
 
var panel = document.getElementById("latrus-panel");
if(panel) {
panel.label = (latRusEnabled ? "RUS" : "LAT");
panel.label = (LatRus.enabled ? "RUS" : "LAT");
}
},
92,7 → 93,7
var selection = LatRus.getSelectedText(e);
if(!selection) return;
 
var res = latRusWorker[transformation].call(latRusWorker, selection);
var res = LatRus.worker[transformation].call(LatRus.worker, selection);
var start = e.selectionStart;
var end = e.selectionEnd;
var scrollTop = e.scrollTop;
107,12 → 108,12
 
toggleHint: function()
{
LatRus.setHint(!latRusShowHint);
LatRus.setHint(!LatRus.ShowHint);
},
 
setHint: function(showHint)
{
latRusShowHint = showHint;
LatRus.ShowHint = showHint;
LatRus.updateHint();
},
 
120,17 → 121,17
{
var item = document.getElementById("panel-latrus-show-hint");
if(item) {
item.setAttribute("checked", latRusShowHint);
item.setAttribute("checked", LatRus.ShowHint);
}
 
var panel = document.getElementById("latrus_hint");
if(panel) {
panel.hidden = !latRusShowHint;
panel.hidden = !LatRus.ShowHint;
}
 
var splitter = document.getElementById("latrus_splitter");
if(splitter) {
splitter.hidden = !latRusShowHint;
splitter.hidden = !LatRus.ShowHint;
}
},
 
141,39 → 142,25
};
 
/* REGISTER */
if(!latRusWorker && !window.frameElement) {
if(!LatRus.inited && !window.frameElement) {
window.addEventListener('load', LatRus.init, false);
window.addEventListener('keypress', LatRus.onKeyPress, true);
}
 
Worker.engTable = new Array(
'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
'\"', '\'', '§', '$', '&', '/', '(', ')', '=', '?', '`', '-',
'_', '#', '+', '*', ',', '.', 'ä', 'ö', 'ü', 'ß');
Worker.rusTable1 = new Array(
'а', 'б', 'ц', 'д', 'е', 'ф', 'г', 'х', 'и', 'й', 'к', 'л', 'м',
'н', 'о', 'п', 'ч', 'р', 'с', 'т', 'у', 'в', 'ш', 'ж', 'я', 'з',
'ъ', 'ь', '§', '$', '&', '/', '(', ')', '=', '?', '`', '-',
'_', '#', '+', '*', ',', '.', 'э', 'ы', 'ю', 'щ');
Worker.rusTable2 = new Array(
'ф', 'и', 'с', 'в', 'у', 'а', 'п', 'р', 'ш', 'о', 'л', 'д', 'ь',
'т', 'щ', 'з', 'й', 'к', 'ы', 'е', 'г', 'м', 'ц', 'ч', 'я', 'н',
'\"', '/', 'â„–', ';', ':', '?', '*', '(', ')', '_', '=', '.',
',', '\\', 'ъ', 'Ъ', 'б', 'ю');
 
function Worker()
function LatRusWorker()
{
this.init();
}
LatRusWorker.prototype = {
init: function()
{
this.convertCodes = new Object();
this.convertChars = new Object();
this.backCodes = new Object();
this.backChars = new Object();
},
 
Worker.buildConvertTable(Worker.engTable, Worker.rusTable1, true, this.convertCodes, this.convertChars);
Worker.buildConvertTable(Worker.rusTable1, Worker.engTable, true, this.backCodes, this.backChars);
}
 
Worker.buildConvertTable = function(fromTable, toTable, autoUpperCase, resCodes, resChars)
buildConvertTable: function(fromTable, toTable, autoUpperCase, resCodes, resChars)
{
for(var i = 0, l = Math.min(fromTable.length, toTable.length); i < l; ++i) {
resCodes[fromTable[i].charCodeAt(0)] = toTable[i].charCodeAt(0);
188,24 → 175,24
}
}
}
}
},
 
Worker.prototype.convertCode = function(c)
convertCode: function(c)
{
return this.convert(this.convertCodes, c);
}
},
 
Worker.prototype.convertStringForward = function(s)
convertStringForward: function(s)
{
return this.convertString(this.convertChars, s);
}
},
 
Worker.prototype.convertStringBackward = function(s)
convertStringBackward: function(s)
{
return this.convertString(this.backChars, s);
}
},
 
Worker.prototype.convertString = function(table, s)
convertString: function(table, s)
{
var res = "";
214,9 → 201,9
}
 
return res;
}
},
 
Worker.prototype.convert = function(table, c)
convert: function(table, c)
{
if(table) {
var r = table[c];
224,5 → 211,48
}
 
return c; // not found or no table
},
}
 
function LatRusWorker_Rus()
{
this.__super = LatRusWorker;
LatRusWorker_Rus.prototype.__proto__ = this.__super.prototype;
this.__super.call(this);
}
LatRusWorker_Rus.prototype = {
engTable: new Array(
'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
'\"', '\'', '§', '$', '&', '/', '(', ')', '=', '?', '`', '-',
'_', '#', '+', '*', ',', '.', 'ä', 'ö', 'ü', 'ß'),
 
rusTable: new Array(
'а', 'б', 'ц', 'д', 'е', 'ф', 'г', 'х', 'и', 'й', 'к', 'л', 'м',
'н', 'о', 'п', 'ч', 'р', 'с', 'т', 'у', 'в', 'ш', 'ж', 'я', 'з',
'ъ', 'ь', '§', '$', '&', '/', '(', ')', '=', '?', '`', '-',
'_', '#', '+', '*', ',', '.', 'э', 'ы', 'ю', 'щ'),
 
init: function()
{
this.__super.prototype.init.apply(this);
 
this.buildConvertTable(this.engTable, this.rusTable, true, this.convertCodes, this.convertChars);
this.buildConvertTable(this.rusTable, this.engTable, true, this.backCodes, this.backChars);
},
}
 
function LatRusWorker_RusStd()
{
this.__super = LatRusWorker_Rus;
LatRusWorker_RusStd.prototype.__proto__ = this.__super.prototype;
this.__super.call(this);
}
LatRusWorker_RusStd.prototype = {
rusTable: new Array(
'ф', 'и', 'с', 'в', 'у', 'а', 'п', 'р', 'ш', 'о', 'л', 'д', 'ь',
'т', 'щ', 'з', 'й', 'к', 'ы', 'е', 'г', 'м', 'ц', 'ч', 'я', 'н',
'\"', '/', 'â„–', ';', ':', '?', '*', '(', ')', '_', '=', '.',
',', '\\', 'ъ', 'Ъ', 'б', 'ю'),
}