progressbar. automatic focus on elements. test/widget.js. reallyScrollable.
This commit is contained in:
parent
236f5fba00
commit
0e2b626556
|
@ -751,7 +751,7 @@ A progress bar allowing various styles. This can also be used as a form input.
|
||||||
- **orientation** - can be `horizontal` or `vertical`.
|
- **orientation** - can be `horizontal` or `vertical`.
|
||||||
- **barFg, barBg** - (completed) bar foreground and background.
|
- **barFg, barBg** - (completed) bar foreground and background.
|
||||||
(can be contained in `style`: e.g. `style.bar.fg`).
|
(can be contained in `style`: e.g. `style.bar.fg`).
|
||||||
- **ch** - the character to fill the bar with (default is space).
|
- **pch** - the character to fill the bar with (default is space).
|
||||||
- **filled** - the amount filled (0 - 100).
|
- **filled** - the amount filled (0 - 100).
|
||||||
- **value** - same as `filled`.
|
- **value** - same as `filled`.
|
||||||
- **keys** - enable key support.
|
- **keys** - enable key support.
|
||||||
|
|
|
@ -4060,6 +4060,12 @@ ScrollableBox.prototype.__proto__ = Box.prototype;
|
||||||
|
|
||||||
ScrollableBox.prototype.type = 'scrollable-box';
|
ScrollableBox.prototype.type = 'scrollable-box';
|
||||||
|
|
||||||
|
// XXX Potentially use this in place of scrollable checks elsewhere.
|
||||||
|
ScrollableBox.prototype.__defineGetter__('reallyScrollable', function() {
|
||||||
|
if (this.shrink) return this.scrollable;
|
||||||
|
return this._scrollBottom() > this.height;
|
||||||
|
});
|
||||||
|
|
||||||
ScrollableBox.prototype._scrollBottom = function() {
|
ScrollableBox.prototype._scrollBottom = function() {
|
||||||
if (!this.scrollable) return 0;
|
if (!this.scrollable) return 0;
|
||||||
|
|
||||||
|
@ -4533,6 +4539,7 @@ List.prototype.appendItem = function(item) {
|
||||||
self.emit('select', item, self.selected);
|
self.emit('select', item, self.selected);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
self.focus();
|
||||||
self.select(item);
|
self.select(item);
|
||||||
self.screen.render();
|
self.screen.render();
|
||||||
});
|
});
|
||||||
|
@ -5376,6 +5383,7 @@ Button.prototype.__proto__ = Input.prototype;
|
||||||
Button.prototype.type = 'button';
|
Button.prototype.type = 'button';
|
||||||
|
|
||||||
Button.prototype.press = function() {
|
Button.prototype.press = function() {
|
||||||
|
this.focus();
|
||||||
this.value = true;
|
this.value = true;
|
||||||
var result = this.emit('press');
|
var result = this.emit('press');
|
||||||
delete this.value;
|
delete this.value;
|
||||||
|
@ -5403,7 +5411,16 @@ function ProgressBar(options) {
|
||||||
}
|
}
|
||||||
this.value = this.filled;
|
this.value = this.filled;
|
||||||
|
|
||||||
this.ch = options.ch || ' ';
|
this.pch = options.pch || ' ';
|
||||||
|
|
||||||
|
// XXX Workaround that predates the usage of `el.ch`.
|
||||||
|
if (options.ch) {
|
||||||
|
this.pch = options.ch;
|
||||||
|
this.ch = ' ';
|
||||||
|
}
|
||||||
|
if (options.bch) {
|
||||||
|
this.ch = options.bch;
|
||||||
|
}
|
||||||
|
|
||||||
if (!this.style.bar) {
|
if (!this.style.bar) {
|
||||||
this.style.bar = {};
|
this.style.bar = {};
|
||||||
|
@ -5478,7 +5495,7 @@ ProgressBar.prototype.render = function() {
|
||||||
|
|
||||||
dattr = this.sattr(this.style.bar, this.style.bar.fg, this.style.bar.bg);
|
dattr = this.sattr(this.style.bar, this.style.bar.fg, this.style.bar.bg);
|
||||||
|
|
||||||
this.screen.fillRegion(dattr, this.ch, xi, xl, yi, yl);
|
this.screen.fillRegion(dattr, this.pch, xi, xl, yi, yl);
|
||||||
|
|
||||||
if (this.content) {
|
if (this.content) {
|
||||||
var line = this.screen.lines[yi];
|
var line = this.screen.lines[yi];
|
||||||
|
|
|
@ -25,44 +25,12 @@ screen.append(blessed.line({
|
||||||
right: 0
|
right: 0
|
||||||
}));
|
}));
|
||||||
|
|
||||||
/*
|
|
||||||
screen.append(blessed.box({
|
|
||||||
fg: 4,
|
|
||||||
bg: -1,
|
|
||||||
border: {
|
|
||||||
type: 'ascii',
|
|
||||||
fg: -1,
|
|
||||||
bg: -1
|
|
||||||
},
|
|
||||||
content: 'Hello world!',
|
|
||||||
width: '50%',
|
|
||||||
height: '50%',
|
|
||||||
top: 'center',
|
|
||||||
left: 'center'
|
|
||||||
}));
|
|
||||||
|
|
||||||
screen.children[0].append(blessed.box({
|
|
||||||
fg: 4,
|
|
||||||
bg: 3,
|
|
||||||
border: {
|
|
||||||
type: 'bg',
|
|
||||||
fg: 0,
|
|
||||||
bg: 1,
|
|
||||||
ch: '/'
|
|
||||||
},
|
|
||||||
content: 'Foobar',
|
|
||||||
width: '50%',
|
|
||||||
height: '50%',
|
|
||||||
top: 'center',
|
|
||||||
left: 'center'
|
|
||||||
}));
|
|
||||||
*/
|
|
||||||
|
|
||||||
var list = blessed.list({
|
var list = blessed.list({
|
||||||
align: 'center',
|
align: 'center',
|
||||||
mouse: true,
|
mouse: true,
|
||||||
fg: 'blue',
|
fg: 'blue',
|
||||||
bg: 'default',
|
bg: 'default',
|
||||||
|
label: ' My list ',
|
||||||
border: {
|
border: {
|
||||||
type: 'ascii',
|
type: 'ascii',
|
||||||
fg: 'default',
|
fg: 'default',
|
||||||
|
@ -103,16 +71,6 @@ list.items.forEach(function(item) {
|
||||||
item.setHover(item.getText().trim());
|
item.setHover(item.getText().trim());
|
||||||
});
|
});
|
||||||
|
|
||||||
list.prepend(blessed.text({
|
|
||||||
left: 2,
|
|
||||||
content: ' My list '
|
|
||||||
}));
|
|
||||||
|
|
||||||
if (screen.autoPadding) {
|
|
||||||
list.children[0].rleft = -list.ileft + 2;
|
|
||||||
list.children[0].rtop = -list.itop;
|
|
||||||
}
|
|
||||||
|
|
||||||
list.on('keypress', function(ch, key) {
|
list.on('keypress', function(ch, key) {
|
||||||
if (key.name === 'up' || key.name === 'k') {
|
if (key.name === 'up' || key.name === 'k') {
|
||||||
list.up();
|
list.up();
|
||||||
|
@ -125,6 +83,11 @@ list.on('keypress', function(ch, key) {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
list.on('select', function(item, select) {
|
||||||
|
list.setLabel(' ' + item.getText() + ' ');
|
||||||
|
screen.render();
|
||||||
|
});
|
||||||
|
|
||||||
var progress = blessed.progressbar({
|
var progress = blessed.progressbar({
|
||||||
fg: 'blue',
|
fg: 'blue',
|
||||||
bg: 'default',
|
bg: 'default',
|
||||||
|
@ -194,21 +157,7 @@ screen.on('element focus', function(cur, old) {
|
||||||
screen.render();
|
screen.render();
|
||||||
});
|
});
|
||||||
|
|
||||||
/*
|
|
||||||
screen.on('element mouseover', function(el) {
|
|
||||||
el._bg = el.bg;
|
|
||||||
el.bg = 1;
|
|
||||||
screen.render();
|
|
||||||
});
|
|
||||||
|
|
||||||
screen.on('element mouseout', function(el) {
|
|
||||||
el.bg = el._bg;
|
|
||||||
screen.render();
|
|
||||||
});
|
|
||||||
*/
|
|
||||||
|
|
||||||
var input = blessed.textbox({
|
var input = blessed.textbox({
|
||||||
mouse: true,
|
|
||||||
label: ' My Input ',
|
label: ' My Input ',
|
||||||
content: '',
|
content: '',
|
||||||
fg: 'blue',
|
fg: 'blue',
|
||||||
|
@ -268,16 +217,6 @@ screen.on('keypress', function(ch, key) {
|
||||||
? screen.focusPrevious()
|
? screen.focusPrevious()
|
||||||
: screen.focusNext();
|
: screen.focusNext();
|
||||||
}
|
}
|
||||||
//if (key.name === 'i') {
|
|
||||||
// return input.readInput(function(err, value) {
|
|
||||||
// ;
|
|
||||||
// });
|
|
||||||
//}
|
|
||||||
//if (key.name === 'e') {
|
|
||||||
// return input.readEditor(function(err, value) {
|
|
||||||
// ;
|
|
||||||
// });
|
|
||||||
//}
|
|
||||||
if (key.name === 'escape' || key.name === 'q') {
|
if (key.name === 'escape' || key.name === 'q') {
|
||||||
return process.exit(0);
|
return process.exit(0);
|
||||||
}
|
}
|
||||||
|
@ -289,10 +228,6 @@ screen.key('C-z', function() {
|
||||||
|
|
||||||
list.focus();
|
list.focus();
|
||||||
|
|
||||||
//screen.on('element click', function(el) {
|
|
||||||
// el.focus();
|
|
||||||
//});
|
|
||||||
|
|
||||||
screen.render();
|
screen.render();
|
||||||
|
|
||||||
setInterval(function() {
|
setInterval(function() {
|
||||||
|
|
Loading…
Reference in New Issue