aboutsummaryrefslogtreecommitdiffstats
path: root/ui/jquery.ui.progressbar.js
diff options
context:
space:
mode:
Diffstat (limited to 'ui/jquery.ui.progressbar.js')
-rw-r--r--ui/jquery.ui.progressbar.js119
1 files changed, 119 insertions, 0 deletions
diff --git a/ui/jquery.ui.progressbar.js b/ui/jquery.ui.progressbar.js
new file mode 100644
index 000000000..079216877
--- /dev/null
+++ b/ui/jquery.ui.progressbar.js
@@ -0,0 +1,119 @@
+/*
+ * jQuery UI Progressbar @VERSION
+ *
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI/Progressbar
+ *
+ * Depends:
+ * jquery.ui.core.js
+ */
+(function($) {
+
+$.widget("ui.progressbar", {
+
+ _init: function() {
+
+ this.element
+ .addClass("ui-progressbar"
+ + " ui-widget"
+ + " ui-widget-content"
+ + " ui-corner-all")
+ .attr({
+ role: "progressbar",
+ "aria-valuemin": this._valueMin(),
+ "aria-valuemax": this._valueMax(),
+ "aria-valuenow": this._value()
+ });
+
+ this.valueDiv = $('<div class="ui-progressbar-value ui-widget-header ui-corner-left"></div>').appendTo(this.element);
+
+ this._refreshValue();
+
+ },
+
+ destroy: function() {
+
+ this.element
+ .removeClass("ui-progressbar"
+ + " ui-widget"
+ + " ui-widget-content"
+ + " ui-corner-all")
+ .removeAttr("role")
+ .removeAttr("aria-valuemin")
+ .removeAttr("aria-valuemax")
+ .removeAttr("aria-valuenow")
+ .removeData("progressbar")
+ .unbind(".progressbar");
+
+ this.valueDiv.remove();
+
+ $.widget.prototype.destroy.apply(this, arguments);
+
+ return this;
+ },
+
+ value: function(newValue) {
+ if (newValue === undefined) {
+ return this._value();
+ }
+
+ this._setData('value', newValue);
+ return this;
+ },
+
+ _setData: function(key, value) {
+
+ switch (key) {
+ case 'value':
+ this.options.value = value;
+ this._refreshValue();
+ this._trigger('change', null, {});
+ break;
+ }
+
+ $.widget.prototype._setData.apply(this, arguments);
+
+ },
+
+ _value: function() {
+ var val = this.options.value;
+ // normalize invalid value
+ if (typeof val != "number")
+ val = 0;
+ if (val < this._valueMin()) val = this._valueMin();
+ if (val > this._valueMax()) val = this._valueMax();
+
+ return val;
+
+ },
+
+ _valueMin: function() {
+ var valueMin = 0;
+ return valueMin;
+ },
+
+ _valueMax: function() {
+ var valueMax = 100;
+ return valueMax;
+ },
+
+ _refreshValue: function() {
+ var value = this.value();
+ this.valueDiv[value == this._valueMax() ? 'addClass' : 'removeClass']("ui-corner-right");
+ this.valueDiv.width(value + '%');
+ this.element.attr("aria-valuenow", value);
+ }
+
+});
+
+$.extend($.ui.progressbar, {
+ version: "@VERSION",
+ defaults: {
+ value: 0
+ }
+});
+
+})(jQuery);