Server IP : 85.214.239.14 / Your IP : 18.118.82.168 Web Server : Apache/2.4.62 (Debian) System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.18 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : OFF | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /proc/3/task/3/root/proc/3/root/lib/node_modules/pm2/node_modules/blessed/lib/widgets/ |
Upload File : |
/** * question.js - question element for blessed * Copyright (c) 2013-2015, Christopher Jeffrey and contributors (MIT License). * https://github.com/chjj/blessed */ /** * Modules */ var Node = require('./node'); var Box = require('./box'); var Button = require('./button'); /** * Question */ function Question(options) { if (!(this instanceof Node)) { return new Question(options); } options = options || {}; options.hidden = true; Box.call(this, options); this._.okay = new Button({ screen: this.screen, parent: this, top: 2, height: 1, left: 2, width: 6, content: 'Okay', align: 'center', bg: 'black', hoverBg: 'blue', autoFocus: false, mouse: true }); this._.cancel = new Button({ screen: this.screen, parent: this, top: 2, height: 1, shrink: true, left: 10, width: 8, content: 'Cancel', align: 'center', bg: 'black', hoverBg: 'blue', autoFocus: false, mouse: true }); } Question.prototype.__proto__ = Box.prototype; Question.prototype.type = 'question'; Question.prototype.ask = function(text, callback) { var self = this; var press, okay, cancel; // Keep above: // var parent = this.parent; // this.detach(); // parent.append(this); this.show(); this.setContent(' ' + text); this.onScreenEvent('keypress', press = function(ch, key) { if (key.name === 'mouse') return; if (key.name !== 'enter' && key.name !== 'escape' && key.name !== 'q' && key.name !== 'y' && key.name !== 'n') { return; } done(null, key.name === 'enter' || key.name === 'y'); }); this._.okay.on('press', okay = function() { done(null, true); }); this._.cancel.on('press', cancel = function() { done(null, false); }); this.screen.saveFocus(); this.focus(); function done(err, data) { self.hide(); self.screen.restoreFocus(); self.removeScreenEvent('keypress', press); self._.okay.removeListener('press', okay); self._.cancel.removeListener('press', cancel); return callback(err, data); } this.screen.render(); }; /** * Expose */ module.exports = Question;