mirror of
https://github.com/nuintun/command-manager.git
synced 2025-06-07 11:34:05 +08:00
86 lines
1.6 KiB
JavaScript
86 lines
1.6 KiB
JavaScript
/**
|
|
* Created by nuintun on 2015/11/24.
|
|
*/
|
|
|
|
'use strict';
|
|
|
|
module.exports = function (Terminal){
|
|
/**
|
|
* showCursor
|
|
*/
|
|
Terminal.prototype.showCursor = function (){
|
|
if (this.cursor && !this._cursor) {
|
|
this._cursor = true;
|
|
this.cursorState = 1;
|
|
|
|
this.refresh(this.y, this.y);
|
|
|
|
if (this.cursorBlink && !this._blink && this._blinker) {
|
|
this._blink = setInterval(this._blinker, this.cursorBlinkSpeed);
|
|
}
|
|
}
|
|
};
|
|
|
|
/**
|
|
* hideCursor
|
|
*/
|
|
Terminal.prototype.hideCursor = function (){
|
|
if (this._cursor) {
|
|
delete this._cursor;
|
|
|
|
this.cursorState = 0;
|
|
|
|
clearInterval(this._blink);
|
|
|
|
delete this._blink;
|
|
|
|
if (!this.cursorBlink) {
|
|
delete this._blinker;
|
|
}
|
|
|
|
this.refresh(this.y, this.y);
|
|
}
|
|
};
|
|
|
|
/**
|
|
* startBlink
|
|
*/
|
|
Terminal.prototype.startBlink = function (){
|
|
if (this.cursor && this.cursorBlink && !this._blink) {
|
|
var context = this;
|
|
|
|
this._blinker = function (){
|
|
if (context._cursor) {
|
|
context.cursorState ^= 1;
|
|
|
|
context.refresh(context.y, context.y);
|
|
}
|
|
};
|
|
|
|
if (this._cursor) {
|
|
this._blink = setInterval(this._blinker, this.cursorBlinkSpeed);
|
|
}
|
|
}
|
|
};
|
|
|
|
/**
|
|
* stopBlink
|
|
*/
|
|
Terminal.prototype.stopBlink = function (){
|
|
if (this._blink && this._blinker) {
|
|
clearInterval(this._blink);
|
|
|
|
delete this._blink;
|
|
delete this._blinker;
|
|
|
|
if (this.cursor && this._cursor) {
|
|
this.cursorState = 1;
|
|
} else {
|
|
this.cursorState = 0;
|
|
}
|
|
|
|
this.refresh(this.y, this.y);
|
|
}
|
|
};
|
|
};
|