constructor and options handling.
This commit is contained in:
parent
8cf00fe1b7
commit
5247b41d8b
|
@ -619,7 +619,7 @@ Program.prototype._bindResponse = function(s) {
|
|||
};
|
||||
|
||||
Program.prototype.receive = function(text, callback) {
|
||||
var listeners = this.listeners('keypress')
|
||||
var listeners = (this._events && this._events['keypress']) || []
|
||||
, bak = listeners.slice()
|
||||
, self = this;
|
||||
|
||||
|
@ -648,7 +648,7 @@ Program.prototype.receive = function(text, callback) {
|
|||
};
|
||||
|
||||
Program.prototype.receive_ = function(text, callback) {
|
||||
var listeners = this.listeners('keypress')
|
||||
var listeners = (this._events && this._events['keypress']) || []
|
||||
, bak = listeners.slice()
|
||||
, self = this;
|
||||
|
||||
|
@ -701,7 +701,7 @@ Program.prototype.rsetx = function(x) {
|
|||
if (!x) return;
|
||||
return x > 0
|
||||
? this.forward(x)
|
||||
: this.back(x);
|
||||
: this.back(-x);
|
||||
};
|
||||
|
||||
Program.prototype.rsety = function(y) {
|
||||
|
@ -709,12 +709,12 @@ Program.prototype.rsety = function(y) {
|
|||
if (!y) return;
|
||||
return y > 0
|
||||
? this.up(y)
|
||||
: this.down(y);
|
||||
: this.down(-y);
|
||||
};
|
||||
|
||||
Program.prototype.rmove = function(x, y) {
|
||||
this.rsetX(x);
|
||||
this.rsetY(y);
|
||||
this.rsetx(x);
|
||||
this.rsety(y);
|
||||
};
|
||||
|
||||
Program.prototype.simpleInsert = function(ch, i, attr) {
|
||||
|
|
|
@ -15,6 +15,10 @@ var EventEmitter = require('events').EventEmitter;
|
|||
*/
|
||||
|
||||
function Node(options) {
|
||||
if (!(this instanceof Node)) {
|
||||
return new Node(options);
|
||||
}
|
||||
|
||||
EventEmitter.call(this);
|
||||
|
||||
this.options = options || {};
|
||||
|
@ -90,6 +94,19 @@ Node.prototype.detach = function(element) {
|
|||
function Screen(options) {
|
||||
var self = this;
|
||||
|
||||
if (!(this instanceof Screen)) {
|
||||
return new Screen(options);
|
||||
}
|
||||
|
||||
if (options && options.rsety && options.listen) {
|
||||
options = { program: options };
|
||||
}
|
||||
|
||||
options = options || {};
|
||||
options.program = options.program
|
||||
|| require('./program').global
|
||||
|| new (require('./program'))(options);
|
||||
|
||||
if (!Screen.global) {
|
||||
Screen.global = this;
|
||||
}
|
||||
|
@ -547,6 +564,10 @@ Screen.prototype.fillRegion = function(attr, ch, xi, xl, yi, yl) {
|
|||
function Element(options) {
|
||||
var self = this;
|
||||
|
||||
if (!(this instanceof Element)) {
|
||||
return new Element(options);
|
||||
}
|
||||
|
||||
Node.call(this, options);
|
||||
|
||||
this.position = {
|
||||
|
@ -997,6 +1018,9 @@ Element.prototype.__defineSetter__('rbottom', function(val) {
|
|||
*/
|
||||
|
||||
function Box(options) {
|
||||
if (!(this instanceof Box)) {
|
||||
return new Box(options);
|
||||
}
|
||||
Element.call(this, options);
|
||||
}
|
||||
|
||||
|
@ -1240,6 +1264,10 @@ Text.prototype.__proto__ = Box.prototype;
|
|||
*/
|
||||
|
||||
function Line(options) {
|
||||
if (!(this instanceof Line)) {
|
||||
return new Line(options);
|
||||
}
|
||||
|
||||
var orientation = options.orientation || 'vertical';
|
||||
delete options.orientation;
|
||||
|
||||
|
@ -1272,6 +1300,9 @@ Line.prototype.__proto__ = Box.prototype;
|
|||
*/
|
||||
|
||||
function ScrollableBox(options) {
|
||||
if (!(this instanceof ScrollableBox)) {
|
||||
return new ScrollableBox(options);
|
||||
}
|
||||
Box.call(this, options);
|
||||
this.scrollable = true;
|
||||
this.childOffset = 0;
|
||||
|
@ -1313,6 +1344,10 @@ ScrollableBox.prototype.scroll = function(offset) {
|
|||
function List(options) {
|
||||
var self = this;
|
||||
|
||||
if (!(this instanceof List)) {
|
||||
return new List(options);
|
||||
}
|
||||
|
||||
ScrollableBox.call(this, options);
|
||||
|
||||
this.items = [];
|
||||
|
@ -1457,6 +1492,10 @@ List.prototype.down = function(offset) {
|
|||
function ScrollableText(options) {
|
||||
var self = this;
|
||||
|
||||
if (!(this instanceof ScrollableText)) {
|
||||
return new ScrollableText(options);
|
||||
}
|
||||
|
||||
options.alwaysScroll = true;
|
||||
|
||||
ScrollableBox.call(this, options);
|
||||
|
@ -1560,6 +1599,9 @@ ScrollableText.prototype._recalculateIndex = function() {
|
|||
*/
|
||||
|
||||
function Input(options) {
|
||||
if (!(this instanceof Input)) {
|
||||
return new Input(options);
|
||||
}
|
||||
Box.call(this, options);
|
||||
}
|
||||
|
||||
|
@ -1570,6 +1612,9 @@ Input.prototype.__proto__ = Box.prototype;
|
|||
*/
|
||||
|
||||
function Textbox(options) {
|
||||
if (!(this instanceof Textbox)) {
|
||||
return new Textbox(options);
|
||||
}
|
||||
Input.call(this, options);
|
||||
this.screen._listenKeys(this);
|
||||
}
|
||||
|
@ -1669,6 +1714,9 @@ Textbox.prototype.setEditor = function(callback) {
|
|||
*/
|
||||
|
||||
function Textarea(options) {
|
||||
if (!(this instanceof Textarea)) {
|
||||
return new Textarea(options);
|
||||
}
|
||||
Input.call(this, options);
|
||||
}
|
||||
|
||||
|
@ -1679,6 +1727,9 @@ Textarea.prototype.__proto__ = Input.prototype;
|
|||
*/
|
||||
|
||||
function Button(options) {
|
||||
if (!(this instanceof Button)) {
|
||||
return new Button(options);
|
||||
}
|
||||
Input.call(this, options);
|
||||
}
|
||||
|
||||
|
@ -1689,6 +1740,9 @@ Button.prototype.__proto__ = Input.prototype;
|
|||
*/
|
||||
|
||||
function ProgressBar(options) {
|
||||
if (!(this instanceof ProgressBar)) {
|
||||
return new ProgressBar(options);
|
||||
}
|
||||
Input.call(this, options);
|
||||
this.filled = options.filled || 0;
|
||||
if (typeof this.filled === 'string') {
|
||||
|
|
Loading…
Reference in New Issue