all files / lib/ui/ Button.js

85.71% Statements 18/21
25% Branches 1/4
66.67% Functions 2/3
94.74% Lines 18/19
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34                                
var blessed = require('blessed');
var _ = require('lodash');
 
var util = require('slap-util');
 
var BaseWidget = require('base-widget');
var Slap = require('./Slap');
 
function Button (opts) {
  var self = this;
 
  Iif (!(self instanceof Button)) return new Button(opts);
 
  opts = _.merge({
    mouse: true,
    focusable: true,
    shrink: true,
    padding: {left: 1, right: 1}
  }, Slap.global.options.button, opts);
  opts.style.focus = opts.style.hover;
  BaseWidget.blessed.Button.call(self, opts);
  BaseWidget.call(self, opts);
}
Button.prototype.__proto__ = BaseWidget.blessed.Button.prototype;
Button.prototype._initHandlers = function () {
  var self = this;
  self.on('keypress', function (ch, key) {
    if (key.name === 'enter') self.screen.slap._stopKeyPropagation().done(); // FIXME: hack
  });
  return BaseWidget.prototype._initHandlers.apply(self, arguments);
};
 
module.exports = Button;