webgui/www/extras/yui-webgui/build/codeArea/codeArea.js

45 lines
1.2 KiB
JavaScript

/*global YAHOO, document */
(function () {
var proto, event = YAHOO.util.Event;
YAHOO.namespace('YAHOO.WebGUI');
YAHOO.WebGUI.CodeArea = function (el) {
this.el = el;
};
proto = YAHOO.WebGUI.CodeArea.prototype;
proto.draw = function () {
var el = this.el;
if (typeof el === 'string') {
el = this.el = document.getElementById(el);
}
el.style.fontFamily = 'monospace';
};
proto.render = function () {
this.draw();
this.bind();
};
proto.bind = function () {
new YAHOO.util.KeyListener(this.el, { keys: 9 }, {
fn : this.onTab,
scope : this,
correctScope : true
}).enable();
};
proto.onTab = function (type, args) {
var el = this.el,
e = args[1],
start = el.selectionStart,
end = el.selectionEnd,
top = el.scrollTop,
old = el.value,
str = old.slice(0, start) + '\t' + old.slice(end, old.length);
el.value = str;
el.selectionStart = el.selectionEnd = start + 1;
el.scrollTop = top;
event.stopEvent(e);
};
}());