mirror of
https://github.com/embarklabs/neo-blessed.git
synced 2025-01-11 11:34:20 +00:00
add getScroll method.
This commit is contained in:
parent
16bbb5ea24
commit
45f8f0e5bb
@ -3108,7 +3108,7 @@ Element.prototype.render = function() {
|
|||||||
if (this.alwaysScroll) {
|
if (this.alwaysScroll) {
|
||||||
y = this.childBase / (i - (yl - yi));
|
y = this.childBase / (i - (yl - yi));
|
||||||
} else {
|
} else {
|
||||||
y = (this.childBase + this.childOffset) / i;
|
y = (this.childBase + this.childOffset) / (i - 1);
|
||||||
}
|
}
|
||||||
y = yi + ((yl - yi) * y | 0);
|
y = yi + ((yl - yi) * y | 0);
|
||||||
if (y >= yl) y = yl - 1;
|
if (y >= yl) y = yl - 1;
|
||||||
@ -3635,10 +3635,15 @@ ScrollableBox.prototype._scrollBottom = function() {
|
|||||||
return bottom;
|
return bottom;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
ScrollableBox.prototype.setScroll =
|
||||||
ScrollableBox.prototype.scrollTo = function(offset) {
|
ScrollableBox.prototype.scrollTo = function(offset) {
|
||||||
return this.scroll(offset - (this.childBase + this.childOffset));
|
return this.scroll(offset - (this.childBase + this.childOffset));
|
||||||
};
|
};
|
||||||
|
|
||||||
|
ScrollableBox.prototype.getScroll = function() {
|
||||||
|
return this.childBase + this.childOffset;
|
||||||
|
};
|
||||||
|
|
||||||
ScrollableBox.prototype.scroll = function(offset, always) {
|
ScrollableBox.prototype.scroll = function(offset, always) {
|
||||||
if (!this.scrollable) return;
|
if (!this.scrollable) return;
|
||||||
|
|
||||||
@ -3755,6 +3760,31 @@ ScrollableBox.prototype.resetScroll = function() {
|
|||||||
return this.emit('scroll');
|
return this.emit('scroll');
|
||||||
};
|
};
|
||||||
|
|
||||||
|
ScrollableBox.prototype.getScrollPerc = function(s) {
|
||||||
|
var pos = this.lpos || this._getCoords();
|
||||||
|
if (!pos) return s ? -1 : 0;
|
||||||
|
|
||||||
|
var height = (pos.yl - pos.yi) - this.iheight
|
||||||
|
, i = Math.max(this._clines.length, this._scrollBottom())
|
||||||
|
, p;
|
||||||
|
|
||||||
|
if (height < i) {
|
||||||
|
if (this.alwaysScroll) {
|
||||||
|
p = this.childBase / (i - height);
|
||||||
|
} else {
|
||||||
|
p = (this.childBase + this.childOffset) / (i - 1);
|
||||||
|
}
|
||||||
|
return p * 100;
|
||||||
|
}
|
||||||
|
|
||||||
|
return s ? -1 : 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
ScrollableBox.prototype.setScrollPerc = function(i) {
|
||||||
|
var m = Math.max(this._clines.length, this._scrollBottom());
|
||||||
|
return this.scrollTo((i / 100) * m | 0);
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ScrollableText
|
* ScrollableText
|
||||||
*/
|
*/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user