mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-10 02:08:38 +09:00
99 lines
2.6 KiB
JavaScript
99 lines
2.6 KiB
JavaScript
/*
|
|
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
*/
|
|
|
|
var curTaskIndex = 0;
|
|
var numTasks = 0;
|
|
var stringBundle;
|
|
|
|
var msgShutdownService = Components.classes["@mozilla.org/messenger/msgshutdownservice;1"]
|
|
.getService(Components.interfaces.nsIMsgShutdownService);
|
|
|
|
function onLoad()
|
|
{
|
|
numTasks = msgShutdownService.getNumTasks();
|
|
|
|
stringBundle = document.getElementById("bundle_shutdown");
|
|
document.title = stringBundle.getString("shutdownDialogTitle");
|
|
|
|
updateTaskProgressLabel(1);
|
|
updateProgressMeter(0);
|
|
|
|
msgShutdownService.startShutdownTasks();
|
|
}
|
|
|
|
function updateProgressLabel(inTaskName)
|
|
{
|
|
var curTaskLabel = document.getElementById("shutdownStatus_label");
|
|
curTaskLabel.value = inTaskName;
|
|
}
|
|
|
|
function updateTaskProgressLabel(inCurTaskNum)
|
|
{
|
|
var taskProgressLabel = document.getElementById("shutdownTask_label");
|
|
taskProgressLabel.value = stringBundle.getFormattedString("taskProgress", [inCurTaskNum, numTasks]);
|
|
}
|
|
|
|
function updateProgressMeter(inPercent)
|
|
{
|
|
var taskProgressmeter = document.getElementById('shutdown_progressmeter');
|
|
taskProgressmeter.value = inPercent;
|
|
}
|
|
|
|
function onCancel()
|
|
{
|
|
msgShutdownService.cancelShutdownTasks();
|
|
}
|
|
|
|
function nsMsgShutdownTaskListener()
|
|
{
|
|
msgShutdownService.setShutdownListener(this);
|
|
}
|
|
|
|
nsMsgShutdownTaskListener.prototype =
|
|
{
|
|
QueryInterface : function(iid)
|
|
{
|
|
if (iid.equals(Components.interfaces.nsIWebProgressListener) ||
|
|
iid.equals(Components.interfaces.nsISupportsWeakReference) ||
|
|
iid.equals(Components.interfaces.nsISupports))
|
|
return this;
|
|
|
|
throw Components.results.NS_NOINTERFACE;
|
|
},
|
|
|
|
onStateChange: function(aWebProgress, aRequest, aStateFlags, aStatus)
|
|
{
|
|
if (aStateFlags & Components.interfaces.nsIWebProgressListener.STATE_STOP)
|
|
{
|
|
window.close();
|
|
}
|
|
},
|
|
|
|
onProgressChange: function(aWebProgress, aRequest, aCurSelfProgress, aMaxSelfProgress, aCurTotalProgress, aMaxTotalProgress)
|
|
{
|
|
updateProgressMeter(((aCurTotalProgress / aMaxTotalProgress) * 100));
|
|
updateTaskProgressLabel(aCurTotalProgress + 1);
|
|
},
|
|
|
|
onLocationChange: function(aWebProgress, aRequest, aLocation, aFlags)
|
|
{
|
|
// we can ignore this notification
|
|
},
|
|
|
|
onStatusChange: function(aWebProgress, aRequest, aStatus, aMessage)
|
|
{
|
|
if (aMessage)
|
|
updateProgressLabel(aMessage);
|
|
},
|
|
|
|
onSecurityChange: function(aWebProgress, aRequest, state)
|
|
{
|
|
// we can ignore this notification
|
|
}
|
|
}
|
|
|
|
var MsgShutdownTaskListener = new nsMsgShutdownTaskListener();
|
|
|