return true;
return true;
this.control.focus();
return this.getAttribute("incremental") == "true";
if (val)
this.setAttribute("incremental", "true");
else
this.removeAttribute("incremental");
return this.control.value;
false
return Components.interfaces.nsIAccessibleProvider.XFormsSliderRange;
var value = this.control.value;
return isNaN(value) ? "" : value;
= this.start && value <= this.end;
]]>
End is an error.
if (!isNaN(aStart) && !isNaN(aEnd)) {
if (aStart > aEnd) {
this.delegate.reportError("rangeBeginEndError");
return false;
}
}
if (isNaN(aStep)) {
// Step is not specified and will depend on the values of start
// and end (which also may not be specified).
if (isNaN(aStart) && isNaN(aEnd)) {
// None of the range attributes are specified! Show a default
// slider with 20 steps.
this.start = 0;
this.end = 20;
this.step = 1;
} else if (!isNaN(aStart) && isNaN(aEnd)) {
// Start is specified but End is not. Set end to start + 20 with
// a default step of 1 to maintain our maximum range of 20 steps.
this.start = aStart;
this.end = this.start + 20;
this.step = 1;
} else if (isNaN(aStart) && !isNaN(aEnd)) {
// End is specified but Start is not. Use a default step of 1
// and adjust start to maintain the maximum range of 20 steps.
this.start = aEnd - 20;
this.end = aEnd;
this.step = 1;
} else {
// Both Start and End are specified. Calculate a step value
// that will maintain our maximum range of 20 steps.
this.start = aStart;
this.end = aEnd;
this.step = Math.round((aEnd - aStart) / 20);
}
} else {
// Step is specified. Adjust start and end to maintain our
// maximum range of 20 steps.
if (isNaN(aStart) && isNaN(aEnd)) {
// Neither Start nor End is specified. Calculate values for start
// and end such that the slider has a maximum of 20 steps of size
// aStep.
this.start = 0;
this.end = this.start + (aStep * 20);
this.step = aStep;
} else if (!isNaN(aStart) && isNaN(aEnd)) {
// Begin is specified but End is not. Adjust end such that we
// have 20 steps of size aStep between start and end.
this.start = aStart;
this.end = this.start + (aStep * 20);
this.step = aStep;
} else if (isNaN(aStart) && !isNaN(aEnd)) {
// End is specified but Start is not. Adjust start such that we
// have 20 steps of size aStep between start and end.
this.start = aEnd - (aStep * 20);
this.end = aEnd;
this.step = aStep;
} else {
// Both Start and End are specified, but the specified Step
// value may not be suitable for maintaining the maximum
// range of 20 steps.
if ((aEnd - aStart) / aStep > 20) {
// Honor the specified start and end values, but adjust
// the Step value.
this.step = Math.round((aEnd - aStart) / 20);
} else {
this.step = aStep;
}
this.start = aStart;
this.end = aEnd;
}
}
return true;
]]>