mirror of
https://github.com/gryf/pentadactyl-pm.git
synced 2025-12-21 09:17:58 +01:00
added comments to ui.js, thanks cirmin. Note: Please try
to avoid trailing whitespace, I had to remove 18 of these things, but otherwise nice job, thanks :)
This commit is contained in:
@@ -75,6 +75,12 @@ function CommandLine() //{{{
|
|||||||
var keepCommand = false;
|
var keepCommand = false;
|
||||||
var lastEcho = null;
|
var lastEcho = null;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A class for managing the history of an inputField
|
||||||
|
*
|
||||||
|
* @param {Object} inputField
|
||||||
|
* @param {string} mode
|
||||||
|
*/
|
||||||
function History(inputField, mode)
|
function History(inputField, mode)
|
||||||
{
|
{
|
||||||
if (!(this instanceof arguments.callee))
|
if (!(this instanceof arguments.callee))
|
||||||
@@ -85,11 +91,16 @@ function CommandLine() //{{{
|
|||||||
this.reset();
|
this.reset();
|
||||||
}
|
}
|
||||||
History.prototype = {
|
History.prototype = {
|
||||||
|
/**
|
||||||
|
* Empties the history.
|
||||||
|
*/
|
||||||
reset: function ()
|
reset: function ()
|
||||||
{
|
{
|
||||||
this.index = null;
|
this.index = null;
|
||||||
},
|
},
|
||||||
|
/**
|
||||||
|
* Permanently save the history
|
||||||
|
*/
|
||||||
save: function ()
|
save: function ()
|
||||||
{
|
{
|
||||||
let str = this.input.value;
|
let str = this.input.value;
|
||||||
@@ -99,13 +110,23 @@ function CommandLine() //{{{
|
|||||||
this.store.push(str);
|
this.store.push(str);
|
||||||
this.store.truncate(options["history"], true);
|
this.store.truncate(options["history"], true);
|
||||||
},
|
},
|
||||||
|
/**
|
||||||
|
* Set the current match to val
|
||||||
|
*
|
||||||
|
* @param {string} val
|
||||||
|
*/
|
||||||
replace: function (val)
|
replace: function (val)
|
||||||
{
|
{
|
||||||
this.input.value = val;
|
this.input.value = val;
|
||||||
liberator.triggerCallback("change", currentExtendedMode, val);
|
liberator.triggerCallback("change", currentExtendedMode, val);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* move up or (if backward) down in the history
|
||||||
|
*
|
||||||
|
* @param {boolean} backward
|
||||||
|
* @param {boolean} matchCurrent XXX: what?
|
||||||
|
*/
|
||||||
select: function (backward, matchCurrent)
|
select: function (backward, matchCurrent)
|
||||||
{
|
{
|
||||||
// always reset the tab completion if we use up/down keys
|
// always reset the tab completion if we use up/down keys
|
||||||
@@ -154,6 +175,11 @@ function CommandLine() //{{{
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A class for tab completions on an input field
|
||||||
|
*
|
||||||
|
* @param {Object} input
|
||||||
|
*/
|
||||||
function Completions(input)
|
function Completions(input)
|
||||||
{
|
{
|
||||||
if (!(this instanceof arguments.callee))
|
if (!(this instanceof arguments.callee))
|
||||||
@@ -529,16 +555,28 @@ function CommandLine() //{{{
|
|||||||
var multilineRegexp = null;
|
var multilineRegexp = null;
|
||||||
var multilineCallback = null;
|
var multilineCallback = null;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @private - highlight the messageBox according to group
|
||||||
|
*/
|
||||||
function setHighlightGroup(group)
|
function setHighlightGroup(group)
|
||||||
{
|
{
|
||||||
messageBox.setAttributeNS(NS.uri, "highlight", group);
|
messageBox.setAttributeNS(NS.uri, "highlight", group);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Whether the command line must be open.
|
/**
|
||||||
|
* @private - Determines whether the command line should be visible.
|
||||||
|
*
|
||||||
|
* @return {boolean}
|
||||||
|
*/
|
||||||
function commandShown() modes.main == modes.COMMAND_LINE &&
|
function commandShown() modes.main == modes.COMMAND_LINE &&
|
||||||
!(modes.extended & (modes.INPUT_MULTILINE | modes.OUTPUT_MULTILINE));
|
!(modes.extended & (modes.INPUT_MULTILINE | modes.OUTPUT_MULTILINE));
|
||||||
|
|
||||||
// sets the prompt - for example, : or /
|
/**
|
||||||
|
* @private - set the prompt to val styled with highlightGroup
|
||||||
|
*
|
||||||
|
* @param {string} val
|
||||||
|
* @param {string} highlightGroup
|
||||||
|
*/
|
||||||
function setPrompt(val, highlightGroup)
|
function setPrompt(val, highlightGroup)
|
||||||
{
|
{
|
||||||
promptWidget.value = val;
|
promptWidget.value = val;
|
||||||
@@ -547,7 +585,11 @@ function CommandLine() //{{{
|
|||||||
promptWidget.setAttributeNS(NS.uri, "highlight", highlightGroup || commandline.HL_NORMAL);
|
promptWidget.setAttributeNS(NS.uri, "highlight", highlightGroup || commandline.HL_NORMAL);
|
||||||
}
|
}
|
||||||
|
|
||||||
// sets the command - e.g. 'tabopen', 'open http://example.com/'
|
/**
|
||||||
|
* @private - set the command to cmd and move the user's cursor to the end.
|
||||||
|
*
|
||||||
|
* @param {string} cmd
|
||||||
|
*/
|
||||||
function setCommand(cmd)
|
function setCommand(cmd)
|
||||||
{
|
{
|
||||||
commandWidget.value = cmd;
|
commandWidget.value = cmd;
|
||||||
@@ -555,6 +597,14 @@ function CommandLine() //{{{
|
|||||||
commandWidget.selectionEnd = cmd.length;
|
commandWidget.selectionEnd = cmd.length;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @private - display a message styled with highlightGroup
|
||||||
|
* and, if forceSingle is true, ensure it takes only one line.
|
||||||
|
*
|
||||||
|
* @param {string} str
|
||||||
|
* @param {string} highlightGroup
|
||||||
|
* @param {boolean} forceSingle
|
||||||
|
*/
|
||||||
function echoLine(str, highlightGroup, forceSingle)
|
function echoLine(str, highlightGroup, forceSingle)
|
||||||
{
|
{
|
||||||
setHighlightGroup(highlightGroup);
|
setHighlightGroup(highlightGroup);
|
||||||
@@ -570,7 +620,14 @@ function CommandLine() //{{{
|
|||||||
echoMultiline(<span highlight="Message">{str}</span>, highlightGroup);
|
echoMultiline(<span highlight="Message">{str}</span>, highlightGroup);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: resize upon a window resize
|
/**
|
||||||
|
* Display a multiline message, possible through a "more" like interface
|
||||||
|
*
|
||||||
|
* TODO: resize upon a window resize
|
||||||
|
*
|
||||||
|
* @param {string} str
|
||||||
|
* @param {string} highlightGroup
|
||||||
|
*/
|
||||||
function echoMultiline(str, highlightGroup)
|
function echoMultiline(str, highlightGroup)
|
||||||
{
|
{
|
||||||
let doc = multilineOutputWidget.contentDocument;
|
let doc = multilineOutputWidget.contentDocument;
|
||||||
@@ -615,6 +672,10 @@ function CommandLine() //{{{
|
|||||||
commandline.updateMorePrompt();
|
commandline.updateMorePrompt();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @private - ensure that the Multiline input widget is the
|
||||||
|
* correct size.
|
||||||
|
*/
|
||||||
function autosizeMultilineInputWidget()
|
function autosizeMultilineInputWidget()
|
||||||
{
|
{
|
||||||
let lines = multilineInputWidget.value.split("\n").length - 1;
|
let lines = multilineInputWidget.value.split("\n").length - 1;
|
||||||
@@ -622,7 +683,16 @@ function CommandLine() //{{{
|
|||||||
multilineInputWidget.setAttribute("rows", Math.max(lines, 1));
|
multilineInputWidget.setAttribute("rows", Math.max(lines, 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
// used for the :echo[err] commands
|
/**
|
||||||
|
* @private - eval()s a javascript expression
|
||||||
|
* and returns a string suitable to be echo'd.
|
||||||
|
*
|
||||||
|
* If useColor is true, util.objectToString will
|
||||||
|
* colorize object output.
|
||||||
|
*
|
||||||
|
* @param {string} arg
|
||||||
|
* @param {boolean} useColor
|
||||||
|
*/
|
||||||
function echoArgumentToString(arg, useColor)
|
function echoArgumentToString(arg, useColor)
|
||||||
{
|
{
|
||||||
if (!arg)
|
if (!arg)
|
||||||
@@ -891,6 +961,9 @@ function CommandLine() //{{{
|
|||||||
storage.styles.removeSheet(true, "silent-mode");
|
storage.styles.removeSheet(true, "silent-mode");
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* XXX: This function is not used!
|
||||||
|
*/
|
||||||
runSilently: function (fn, self)
|
runSilently: function (fn, self)
|
||||||
{
|
{
|
||||||
let wasSilent = this.silent;
|
let wasSilent = this.silent;
|
||||||
@@ -918,6 +991,16 @@ function CommandLine() //{{{
|
|||||||
|
|
||||||
get message() messageBox.value,
|
get message() messageBox.value,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Changes the command line to display the following prompt (usually ":")
|
||||||
|
* followed by the command, in the given mode. Valid modes are
|
||||||
|
* attributes of the "modes" variable, and modes.EX is probably
|
||||||
|
* a good choice.
|
||||||
|
*
|
||||||
|
* @param {string} prompt
|
||||||
|
* @param {string} cmd
|
||||||
|
* @param {number} mode
|
||||||
|
*/
|
||||||
open: function open(prompt, cmd, extendedMode)
|
open: function open(prompt, cmd, extendedMode)
|
||||||
{
|
{
|
||||||
// save the current prompts, we need it later if the command widget
|
// save the current prompts, we need it later if the command widget
|
||||||
@@ -942,7 +1025,11 @@ function CommandLine() //{{{
|
|||||||
liberator.triggerCallback("change", currentExtendedMode, cmd);
|
liberator.triggerCallback("change", currentExtendedMode, cmd);
|
||||||
},
|
},
|
||||||
|
|
||||||
// normally used when pressing <Esc>, does not execute a command
|
/**
|
||||||
|
* Removes any input from the command line, without executing its
|
||||||
|
* contents. Removes any "More" windows or other such output.
|
||||||
|
* Pressing <ESC> in EX mode normally has this effect.
|
||||||
|
*/
|
||||||
close: function close()
|
close: function close()
|
||||||
{
|
{
|
||||||
let mode = currentExtendedMode;
|
let mode = currentExtendedMode;
|
||||||
@@ -976,14 +1063,33 @@ function CommandLine() //{{{
|
|||||||
keepCommand = false;
|
keepCommand = false;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Hide any auto-completion/More-ing that is happening.
|
||||||
|
*/
|
||||||
hide: function hide()
|
hide: function hide()
|
||||||
{
|
{
|
||||||
commandlineWidget.collapsed = true;
|
commandlineWidget.collapsed = true;
|
||||||
},
|
},
|
||||||
|
|
||||||
// liberator.echo uses different order of flags as it omits the highlight group, change v.commandline.echo argument order? --mst
|
/**
|
||||||
|
* Output the given string onto the command line coloured
|
||||||
|
* using the rules according to highlightGroup. If not
|
||||||
|
* given higlightGroup defaults to commandline.HL_NORMAL
|
||||||
|
* and other possibe values are at commandline.HL_[A-Z]*.
|
||||||
|
*
|
||||||
|
* Flags can be any of:
|
||||||
|
* commandline.APPEND_TO_MESSAGES (causes message to be added to the messagesHistory)
|
||||||
|
* commandline.FORCE_SINGLELINE | commandline.DISALLOW_MULTILINE
|
||||||
|
* commandline.FORCE_MULTILINE
|
||||||
|
*
|
||||||
|
* @param {string} str
|
||||||
|
* @param {string} highlightGroup
|
||||||
|
* @param {number} flags
|
||||||
|
*/
|
||||||
echo: function echo(str, highlightGroup, flags)
|
echo: function echo(str, highlightGroup, flags)
|
||||||
{
|
{
|
||||||
|
// liberator.echo uses different order of flags as it omits the highlight group, change v.commandline.echo argument order? --mst
|
||||||
if (silent)
|
if (silent)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
@@ -1028,8 +1134,23 @@ function CommandLine() //{{{
|
|||||||
return true;
|
return true;
|
||||||
},
|
},
|
||||||
|
|
||||||
// this will prompt the user for a string
|
/**
|
||||||
// commandline.input("(s)ave or (o)pen the file?")
|
* Prompt the user for a string and execute the given
|
||||||
|
* callback with that as the only argument on <CR>
|
||||||
|
* extra can have any of the following attributes:
|
||||||
|
*
|
||||||
|
* onChange: A function to be called with the current input every time it changes
|
||||||
|
* completer: A function called with a ?context? when the user tries to tabcomplete
|
||||||
|
* promptHighlight: The HighlightGroup to use (default commandline.HL_QUESTION, others
|
||||||
|
* can be found at commandline.HL_[A-Z]*)
|
||||||
|
*
|
||||||
|
* This function sets the mode to modes.COMMAND_LINE, and thus popping the mode will
|
||||||
|
* stop further input from being waited for (useful for stopping onChange)
|
||||||
|
*
|
||||||
|
* @param {string} prompt
|
||||||
|
* @param {function(string)} callback
|
||||||
|
* @param {Object} extra
|
||||||
|
*/
|
||||||
input: function input(prompt, callback, extra)
|
input: function input(prompt, callback, extra)
|
||||||
{
|
{
|
||||||
extra = extra || {};
|
extra = extra || {};
|
||||||
@@ -1049,8 +1170,14 @@ function CommandLine() //{{{
|
|||||||
completions = Completions(commandWidget.inputField);
|
completions = Completions(commandWidget.inputField);
|
||||||
},
|
},
|
||||||
|
|
||||||
// reads a multi line input and returns the string once the last line matches
|
/**
|
||||||
// @param untilRegexp
|
* Get a multiline input from a user, up to but not including
|
||||||
|
* the line which matches the given regular expression. Then
|
||||||
|
* execute the callback with that string as a parameter.
|
||||||
|
*
|
||||||
|
* @param {RegExp} untilRegexp
|
||||||
|
* @param {function(string)} callbackFunc
|
||||||
|
*/
|
||||||
inputMultiline: function inputMultiline(untilRegexp, callbackFunc)
|
inputMultiline: function inputMultiline(untilRegexp, callbackFunc)
|
||||||
{
|
{
|
||||||
// Kludge.
|
// Kludge.
|
||||||
@@ -1070,6 +1197,13 @@ function CommandLine() //{{{
|
|||||||
setTimeout(function () { multilineInputWidget.focus(); }, 10);
|
setTimeout(function () { multilineInputWidget.focus(); }, 10);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handle events, the come from liberator when liberator.mode = modes.COMMAND_LINE
|
||||||
|
* but also takes blur/focus/input events raw from #liberator-commandline-command
|
||||||
|
* in the XUL
|
||||||
|
*
|
||||||
|
* @param {Event} event
|
||||||
|
*/
|
||||||
onEvent: function onEvent(event)
|
onEvent: function onEvent(event)
|
||||||
{
|
{
|
||||||
let command = this.command;
|
let command = this.command;
|
||||||
@@ -1162,6 +1296,12 @@ function CommandLine() //{{{
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Multiline input events, they will come straight from
|
||||||
|
* #liberator-multiline-input in the XUL.
|
||||||
|
*
|
||||||
|
* @param {Event} event
|
||||||
|
*/
|
||||||
onMultilineInputEvent: function onMultilineInputEvent(event)
|
onMultilineInputEvent: function onMultilineInputEvent(event)
|
||||||
{
|
{
|
||||||
if (event.type == "keypress")
|
if (event.type == "keypress")
|
||||||
@@ -1196,8 +1336,16 @@ function CommandLine() //{{{
|
|||||||
return true;
|
return true;
|
||||||
},
|
},
|
||||||
|
|
||||||
// FIXME: if 'more' is set and the MOW is not scrollable we should still
|
/**
|
||||||
// allow a down motion after an up rather than closing
|
* Handle events when we are in multiline output mode,
|
||||||
|
* these come from liberator when modes.extended & modes.MULTILINE_OUTPUT
|
||||||
|
* and also from #liberator-multiline-output in the XUL
|
||||||
|
*
|
||||||
|
* FIXME: if 'more' is set and the MOW is not scrollable we should still
|
||||||
|
* allow a down motion after an up rather than closing
|
||||||
|
*
|
||||||
|
* @param {Event} event
|
||||||
|
*/
|
||||||
onMultilineOutputEvent: function onMultilineOutputEvent(event)
|
onMultilineOutputEvent: function onMultilineOutputEvent(event)
|
||||||
{
|
{
|
||||||
let win = multilineOutputWidget.contentWindow;
|
let win = multilineOutputWidget.contentWindow;
|
||||||
@@ -1407,6 +1555,15 @@ function CommandLine() //{{{
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Refresh or remove the prompt that displays when in multiline mode.
|
||||||
|
* showHelp will cause the possible key-options to be displayed,
|
||||||
|
* force will cause a display of the default message even if it
|
||||||
|
* could be at the end of the output.
|
||||||
|
*
|
||||||
|
* @param {boolean} force
|
||||||
|
* @param {boolean} showHelp
|
||||||
|
*/
|
||||||
updateMorePrompt: function updateMorePrompt(force, showHelp)
|
updateMorePrompt: function updateMorePrompt(force, showHelp)
|
||||||
{
|
{
|
||||||
if (outputContainer.collapsed)
|
if (outputContainer.collapsed)
|
||||||
@@ -1424,6 +1581,14 @@ function CommandLine() //{{{
|
|||||||
echoLine("Press ENTER or type command to continue", this.HL_QUESTION, true);
|
echoLine("Press ENTER or type command to continue", this.HL_QUESTION, true);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Changes the height of the multilineOutputWidget to fit
|
||||||
|
* its contents, if <b>open</b> is true, it will cause the
|
||||||
|
* widget to uncollapse, if not it will leave the widget
|
||||||
|
* closed.
|
||||||
|
*
|
||||||
|
* @param {boolean} open
|
||||||
|
*/
|
||||||
updateOutputHeight: function updateOutputHeight(open)
|
updateOutputHeight: function updateOutputHeight(open)
|
||||||
{
|
{
|
||||||
if (!open && outputContainer.collapsed)
|
if (!open && outputContainer.collapsed)
|
||||||
@@ -1446,6 +1611,10 @@ function CommandLine() //{{{
|
|||||||
outputContainer.collapsed = false;
|
outputContainer.collapsed = false;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Disable any active completion functions by calling their cancelFunc's
|
||||||
|
* Will also remove the completions preview window.
|
||||||
|
*/
|
||||||
resetCompletions: function resetCompletions()
|
resetCompletions: function resetCompletions()
|
||||||
{
|
{
|
||||||
autocompleteTimer.reset();
|
autocompleteTimer.reset();
|
||||||
@@ -1782,6 +1951,14 @@ function StatusLine() //{{{
|
|||||||
|
|
||||||
return {
|
return {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update the status bar to indicate how secure the website is
|
||||||
|
* secure => https:// with valid certificate
|
||||||
|
* broken => https:// with invalid certificate
|
||||||
|
* insecure => http://
|
||||||
|
*
|
||||||
|
* @param {'secure'|'broken'|'insecure'} type
|
||||||
|
*/
|
||||||
setClass: function setClass(type)
|
setClass: function setClass(type)
|
||||||
{
|
{
|
||||||
const highlightGroup = {
|
const highlightGroup = {
|
||||||
@@ -1803,7 +1980,14 @@ function StatusLine() //{{{
|
|||||||
this.updateBufferPosition();
|
this.updateBufferPosition();
|
||||||
},
|
},
|
||||||
|
|
||||||
// if "url" is omitted, build a usable string for the URL
|
/**
|
||||||
|
* Update which URL is displayed on the status line,
|
||||||
|
* if url is omitted then buffer.URL is used instead and
|
||||||
|
* status icons [+-â¤] are updated to match whether one can
|
||||||
|
* go back/forwards in history/have bookmarked the page.
|
||||||
|
*
|
||||||
|
* @param {string} url
|
||||||
|
*/
|
||||||
updateUrl: function updateUrl(url)
|
updateUrl: function updateUrl(url)
|
||||||
{
|
{
|
||||||
if (typeof url == "string")
|
if (typeof url == "string")
|
||||||
@@ -1846,6 +2030,13 @@ function StatusLine() //{{{
|
|||||||
urlWidget.value = url;
|
urlWidget.value = url;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the contents of the status line's input buffer
|
||||||
|
* to the given string.
|
||||||
|
*
|
||||||
|
* Used for displaying partial key combinations in
|
||||||
|
* normal mode.
|
||||||
|
*/
|
||||||
updateInputBuffer: function updateInputBuffer(buffer)
|
updateInputBuffer: function updateInputBuffer(buffer)
|
||||||
{
|
{
|
||||||
if (!buffer || typeof buffer != "string")
|
if (!buffer || typeof buffer != "string")
|
||||||
@@ -1854,6 +2045,17 @@ function StatusLine() //{{{
|
|||||||
inputBufferWidget.value = buffer;
|
inputBufferWidget.value = buffer;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update the display of the progress bar.
|
||||||
|
* If the parameter is a string, it will be
|
||||||
|
* displayed literally. Otherwise it must be a number
|
||||||
|
* less than one.
|
||||||
|
* Negative numbers cause a "Loading..." status,
|
||||||
|
* Positive (< 1) numbers cause an arrow ==> of length
|
||||||
|
* proportional to the arrow.
|
||||||
|
*
|
||||||
|
* @param {string|number} progress
|
||||||
|
*/
|
||||||
updateProgress: function updateProgress(progress)
|
updateProgress: function updateProgress(progress)
|
||||||
{
|
{
|
||||||
if (!progress)
|
if (!progress)
|
||||||
@@ -1881,7 +2083,13 @@ function StatusLine() //{{{
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
// you can omit either of the 2 arguments
|
/**
|
||||||
|
* Display the correct tabcount (e.g. [1/5]) on the status bar.
|
||||||
|
* If either parameter is omitted, they will be calculated.
|
||||||
|
*
|
||||||
|
* @param {number} currentIndex
|
||||||
|
* @param {number} totalTabs
|
||||||
|
*/
|
||||||
updateTabCount: function updateTabCount(currentIndex, totalTabs)
|
updateTabCount: function updateTabCount(currentIndex, totalTabs)
|
||||||
{
|
{
|
||||||
if (!liberator.has("tabs"))
|
if (!liberator.has("tabs"))
|
||||||
@@ -1906,7 +2114,16 @@ function StatusLine() //{{{
|
|||||||
tabCountWidget.value = "[" + currentIndex + "/" + totalTabs + "]";
|
tabCountWidget.value = "[" + currentIndex + "/" + totalTabs + "]";
|
||||||
},
|
},
|
||||||
|
|
||||||
// percent is given between 0 and 1
|
/**
|
||||||
|
* Display the correct position on the status bar, if the
|
||||||
|
* percent parameter is omitted it will be calculated.
|
||||||
|
*
|
||||||
|
* Negative numbers are set to "All", Zero implies "Top"
|
||||||
|
* One or above is "Bot", and anything else is multiplied by
|
||||||
|
* a hundred and displayed as a percentage.
|
||||||
|
*
|
||||||
|
* @param {number} percent
|
||||||
|
*/
|
||||||
updateBufferPosition: function updateBufferPosition(percent)
|
updateBufferPosition: function updateBufferPosition(percent)
|
||||||
{
|
{
|
||||||
if (!percent || typeof percent != "number")
|
if (!percent || typeof percent != "number")
|
||||||
|
|||||||
Reference in New Issue
Block a user