Files
Mozilla/mozilla/toolkit/content/widgets/progressmeter.xml
scott%scott-macgregor.org 34e6ec4d96 Test fix from Neil to see if we can fix why some folks see the undetermined progressmeter draw past
the edge of the progressbar. Will back out if it does not fix it.


git-svn-id: svn://10.0.0.236/branches/AVIARY_1_0_20040515_BRANCH@159900 18797224-902f-48f8-a5cc-f745e15eee43
2004-07-27 07:17:24 +00:00

84 lines
2.9 KiB
XML

<?xml version="1.0"?>
<bindings id="progressmeterBindings"
xmlns="http://www.mozilla.org/xbl"
xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
xmlns:xbl="http://www.mozilla.org/xbl">
<binding id="progressmeter">
<resources>
<stylesheet src="chrome://global/skin/progressmeter.css"/>
</resources>
<content>
<xul:spacer class="progress-bar" xbl:inherits="mode"/>
<xul:spacer class="progress-remainder" xbl:inherits="mode"/>
</content>
<implementation implements="nsIAccessibleProvider">
<property name="label" onset="if (this.label != val) this.setAttribute('label',val); return val;"
onget="return this.getAttribute('label');"/>
<property name="mode" onset="if (this.mode != val) this.setAttribute('mode', val); return val;"
onget="return this.getAttribute('mode');"/>
<property name="value" onget="return this.getAttribute('value');">
<setter><![CDATA[
var p = Math.round(val);
var c = this.value;
if (p != c) {
var delta = p - c;
if (delta < 0)
delta = -delta;
if (delta > 3 || p == 0 || p == 100)
this.setAttribute("value", p);
}
return p;
]]></setter>
</property>
<property name="accessible">
<getter>
<![CDATA[
var accService = Components.classes["@mozilla.org/accessibilityService;1"].getService(Components.interfaces.nsIAccessibilityService);
return accService.createXULProgressMeterAccessible(this);
]]>
</getter>
</property>
</implementation>
</binding>
<binding id="progressmeter-undetermined"
extends="chrome://global/content/bindings/progressmeter.xml#progressmeter">
<content>
<xul:stack style="overflow: -moz-hidden-unscrollable;" class="progress-remainder" flex="1" anonid="stack">
<xul:spacer class="progress-bar" anonid="spacer" top="0" style="margin-right: -1000px;"/>
</xul:stack>
</content>
<implementation>
<method name="init">
<body><![CDATA[
var stack = document.getAnonymousElementByAttribute(this, "anonid", "stack");
var spacer = document.getAnonymousElementByAttribute(this, "anonid", "spacer");
var position = 125;
var interval = setInterval(function nextStep() {
try {
spacer.height = stack.boxObject.height;
spacer.width = stack.boxObject.width * 25 / 100;
spacer.left = stack.boxObject.width * (100 - position) / 100;
if (!--position)
position = 125;
} catch (e) {
clearInterval(interval);
}
}, 10);
]]></body>
</method>
<constructor>this.init();</constructor>
</implementation>
</binding>
</bindings>