neo-blessed/README.md

92 lines
2.3 KiB
Markdown
Raw Normal View History

2013-01-27 10:06:58 -06:00
# blessed
A curses-like library for node.js.
2013-01-27 11:14:06 -06:00
As of right now, it does not read all terminfo. It was designed for one
terminal's terminfo: **xterm**, but if you understand the differences between
the three popular vt100-based terminals (xterm, screen, rxvt), you should be
able to use it for any terminal.
2013-01-27 11:14:06 -06:00
I want this library to eventually become a high-level library for terminal
widgets.
## Example Usage
``` js
var blessed = require('blessed')
, program = blessed();
program.on('keypress', function(ch, key) {
if (key.name === 'q') {
program.clear();
program.disableMouse();
program.showCursor();
program.normalBuffer();
process.exit(0);
}
});
2013-01-27 11:14:06 -06:00
program.on('mouse', function(data) {
if (data.action === 'mouseup') return;
program.move(1, program.rows);
program.eraseInLine('right');
if (data.action === 'wheelup') {
program.write('Mouse wheel up at: ' + data.x + ', ' + data.y);
} else if (data.action === 'wheeldown') {
program.write('Mouse wheel down at: ' + data.x + ', ' + data.y);
} else if (data.action === 'mousedown' && data.button === 'left') {
program.write('Left button down at: ' + data.x + ', ' + data.y);
} else if (data.action === 'mousedown' && data.button === 'right') {
program.write('Right button down at: ' + data.x + ', ' + data.y);
} else {
program.write('Mouse at: ' + data.x + ', ' + data.y);
2013-01-27 11:14:06 -06:00
}
program.move(data.x, data.y);
program.bg('red');
program.write(' ');
program.bg('!red');
2013-01-27 11:14:06 -06:00
});
program.on('focus', function() {
program.move(1, program.rows);
program.write('Gained focus.');
});
2013-01-27 11:14:06 -06:00
program.on('blur', function() {
program.move(1, program.rows);
program.write('Lost focus.');
2013-01-27 11:14:06 -06:00
});
program.alternateBuffer();
program.enableMouse();
program.hideCursor();
2013-01-27 11:14:06 -06:00
program.clear();
program.move(1, 1);
program.bg('black');
2013-01-27 12:33:32 -06:00
program.write('Hello world', 'blue fg');
program.setx((program.cols / 2 | 0) - 4);
2013-01-27 11:14:06 -06:00
program.down(5);
program.write('Hi again!');
program.bg('!black');
2013-01-27 11:14:06 -06:00
program.feed();
2013-01-27 11:33:04 -06:00
program.getCursor(function(err, data) {
if (!err) {
program.write('Cursor is at: ' + data.x + ', ' + data.y + '.');
program.feed();
2013-01-27 11:33:04 -06:00
}
2013-01-27 11:14:06 -06:00
program.charset('SCLD');
program.write('abcdefghijklmnopqrstuvwxyz0123456789');
program.charset('US');
program.setx(1);
2013-01-27 11:14:06 -06:00
});
```
2013-01-27 10:06:58 -06:00
## License
Copyright (c) 2013, Christopher Jeffrey. (MIT License)
See LICENSE for more info.