/** * button.js - button element for blessed * Copyright (c) 2013-2015, Christopher Jeffrey and contributors (MIT License). * https://github.com/chjj/blessed */ /** * Modules */ var Node = require('./node'); var Input = require('./input'); /** * Button */ function Button(options) { var self = this; if (!(this instanceof Node)) { return new Button(options); } options = options || {}; if (options.autoFocus == null) { options.autoFocus = false; } Input.call(this, options); this.on('keypress', function(ch, key) { if (key.name === 'enter' || key.name === 'space') { return self.press(); } }); if (this.options.mouse) { this.on('click', function() { return self.press(); }); } } Button.prototype.__proto__ = Input.prototype; Button.prototype.type = 'button'; Button.prototype.press = function() { this.focus(); this.value = true; var result = this.emit('press'); delete this.value; return result; }; /** * Expose */ module.exports = Button;