From 1354d17270961fff662d40f90521223f8fd0d73b Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Tue, 14 Aug 2012 18:59:10 +0400 Subject: update dojo to 1.7.3 --- lib/dijit/form/HorizontalSlider.js | 345 +------------------------------------ 1 file changed, 2 insertions(+), 343 deletions(-) (limited to 'lib/dijit/form/HorizontalSlider.js') diff --git a/lib/dijit/form/HorizontalSlider.js b/lib/dijit/form/HorizontalSlider.js index 93dc4a0c2..cc2563171 100644 --- a/lib/dijit/form/HorizontalSlider.js +++ b/lib/dijit/form/HorizontalSlider.js @@ -1,343 +1,2 @@ -/* - Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved. - Available via Academic Free License >= 2.1 OR the modified BSD license. - see: http://dojotoolkit.org/license for details -*/ - - -if(!dojo._hasResource["dijit.form.HorizontalSlider"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. -dojo._hasResource["dijit.form.HorizontalSlider"] = true; -dojo.provide("dijit.form.HorizontalSlider"); -dojo.require("dijit.form._FormWidget"); -dojo.require("dijit._Container"); -dojo.require("dojo.dnd.move"); -dojo.require("dijit.form.Button"); -dojo.require("dojo.number"); - - -dojo.declare( - "dijit.form.HorizontalSlider", - [dijit.form._FormValueWidget, dijit._Container], -{ - // summary: - // A form widget that allows one to select a value with a horizontally draggable handle - - templateString: dojo.cache("dijit.form", "templates/HorizontalSlider.html", "
-
+
\n"), - - // Overrides FormValueWidget.value to indicate numeric value - value: 0, - - // showButtons: [const] Boolean - // Show increment/decrement buttons at the ends of the slider? - showButtons: true, - - // minimum:: [const] Integer - // The minimum value the slider can be set to. - minimum: 0, - - // maximum: [const] Integer - // The maximum value the slider can be set to. - maximum: 100, - - // discreteValues: Integer - // If specified, indicates that the slider handle has only 'discreteValues' possible positions, - // and that after dragging the handle, it will snap to the nearest possible position. - // Thus, the slider has only 'discreteValues' possible values. - // - // For example, if minimum=10, maxiumum=30, and discreteValues=3, then the slider handle has - // three possible positions, representing values 10, 20, or 30. - // - // If discreteValues is not specified or if it's value is higher than the number of pixels - // in the slider bar, then the slider handle can be moved freely, and the slider's value will be - // computed/reported based on pixel position (in this case it will likely be fractional, - // such as 123.456789). - discreteValues: Infinity, - - // pageIncrement: Integer - // If discreteValues is also specified, this indicates the amount of clicks (ie, snap positions) - // that the slider handle is moved via pageup/pagedown keys. - // If discreteValues is not specified, it indicates the number of pixels. - pageIncrement: 2, - - // clickSelect: Boolean - // If clicking the slider bar changes the value or not - clickSelect: true, - - // slideDuration: Number - // The time in ms to take to animate the slider handle from 0% to 100%, - // when clicking the slider bar to make the handle move. - slideDuration: dijit.defaultDuration, - - // Flag to _Templated (TODO: why is this here? I see no widgets in the template.) - widgetsInTemplate: true, - - attributeMap: dojo.delegate(dijit.form._FormWidget.prototype.attributeMap, { - id: "" - }), - - baseClass: "dijitSlider", - - // Apply CSS classes to up/down arrows and handle per mouse state - cssStateNodes: { - incrementButton: "dijitSliderIncrementButton", - decrementButton: "dijitSliderDecrementButton", - focusNode: "dijitSliderThumb" - }, - - _mousePixelCoord: "pageX", - _pixelCount: "w", - _startingPixelCoord: "x", - _startingPixelCount: "l", - _handleOffsetCoord: "left", - _progressPixelSize: "width", - - _onKeyUp: function(/*Event*/ e){ - if(this.disabled || this.readOnly || e.altKey || e.ctrlKey || e.metaKey){ return; } - this._setValueAttr(this.value, true); - }, - - _onKeyPress: function(/*Event*/ e){ - if(this.disabled || this.readOnly || e.altKey || e.ctrlKey || e.metaKey){ return; } - switch(e.charOrCode){ - case dojo.keys.HOME: - this._setValueAttr(this.minimum, false); - break; - case dojo.keys.END: - this._setValueAttr(this.maximum, false); - break; - // this._descending === false: if ascending vertical (min on top) - // (this._descending || this.isLeftToRight()): if left-to-right horizontal or descending vertical - case ((this._descending || this.isLeftToRight()) ? dojo.keys.RIGHT_ARROW : dojo.keys.LEFT_ARROW): - case (this._descending === false ? dojo.keys.DOWN_ARROW : dojo.keys.UP_ARROW): - case (this._descending === false ? dojo.keys.PAGE_DOWN : dojo.keys.PAGE_UP): - this.increment(e); - break; - case ((this._descending || this.isLeftToRight()) ? dojo.keys.LEFT_ARROW : dojo.keys.RIGHT_ARROW): - case (this._descending === false ? dojo.keys.UP_ARROW : dojo.keys.DOWN_ARROW): - case (this._descending === false ? dojo.keys.PAGE_UP : dojo.keys.PAGE_DOWN): - this.decrement(e); - break; - default: - return; - } - dojo.stopEvent(e); - }, - - _onHandleClick: function(e){ - if(this.disabled || this.readOnly){ return; } - if(!dojo.isIE){ - // make sure you get focus when dragging the handle - // (but don't do on IE because it causes a flicker on mouse up (due to blur then focus) - dijit.focus(this.sliderHandle); - } - dojo.stopEvent(e); - }, - - _isReversed: function(){ - // summary: - // Returns true if direction is from right to left - // tags: - // protected extension - return !this.isLeftToRight(); - }, - - _onBarClick: function(e){ - if(this.disabled || this.readOnly || !this.clickSelect){ return; } - dijit.focus(this.sliderHandle); - dojo.stopEvent(e); - var abspos = dojo.position(this.sliderBarContainer, true); - var pixelValue = e[this._mousePixelCoord] - abspos[this._startingPixelCoord]; - this._setPixelValue(this._isReversed() ? (abspos[this._pixelCount] - pixelValue) : pixelValue, abspos[this._pixelCount], true); - this._movable.onMouseDown(e); - }, - - _setPixelValue: function(/*Number*/ pixelValue, /*Number*/ maxPixels, /*Boolean?*/ priorityChange){ - if(this.disabled || this.readOnly){ return; } - pixelValue = pixelValue < 0 ? 0 : maxPixels < pixelValue ? maxPixels : pixelValue; - var count = this.discreteValues; - if(count <= 1 || count == Infinity){ count = maxPixels; } - count--; - var pixelsPerValue = maxPixels / count; - var wholeIncrements = Math.round(pixelValue / pixelsPerValue); - this._setValueAttr((this.maximum-this.minimum)*wholeIncrements/count + this.minimum, priorityChange); - }, - - _setValueAttr: function(/*Number*/ value, /*Boolean?*/ priorityChange){ - // summary: - // Hook so set('value', value) works. - this._set("value", value); - this.valueNode.value = value; - dijit.setWaiState(this.focusNode, "valuenow", value); - this.inherited(arguments); - var percent = (value - this.minimum) / (this.maximum - this.minimum); - var progressBar = (this._descending === false) ? this.remainingBar : this.progressBar; - var remainingBar = (this._descending === false) ? this.progressBar : this.remainingBar; - if(this._inProgressAnim && this._inProgressAnim.status != "stopped"){ - this._inProgressAnim.stop(true); - } - if(priorityChange && this.slideDuration > 0 && progressBar.style[this._progressPixelSize]){ - // animate the slider - var _this = this; - var props = {}; - var start = parseFloat(progressBar.style[this._progressPixelSize]); - var duration = this.slideDuration * (percent-start/100); - if(duration == 0){ return; } - if(duration < 0){ duration = 0 - duration; } - props[this._progressPixelSize] = { start: start, end: percent*100, units:"%" }; - this._inProgressAnim = dojo.animateProperty({ node: progressBar, duration: duration, - onAnimate: function(v){ remainingBar.style[_this._progressPixelSize] = (100-parseFloat(v[_this._progressPixelSize])) + "%"; }, - onEnd: function(){ delete _this._inProgressAnim; }, - properties: props - }) - this._inProgressAnim.play(); - }else{ - progressBar.style[this._progressPixelSize] = (percent*100) + "%"; - remainingBar.style[this._progressPixelSize] = ((1-percent)*100) + "%"; - } - }, - - _bumpValue: function(signedChange, /*Boolean?*/ priorityChange){ - if(this.disabled || this.readOnly){ return; } - var s = dojo.getComputedStyle(this.sliderBarContainer); - var c = dojo._getContentBox(this.sliderBarContainer, s); - var count = this.discreteValues; - if(count <= 1 || count == Infinity){ count = c[this._pixelCount]; } - count--; - var value = (this.value - this.minimum) * count / (this.maximum - this.minimum) + signedChange; - if(value < 0){ value = 0; } - if(value > count){ value = count; } - value = value * (this.maximum - this.minimum) / count + this.minimum; - this._setValueAttr(value, priorityChange); - }, - - _onClkBumper: function(val){ - if(this.disabled || this.readOnly || !this.clickSelect){ return; } - this._setValueAttr(val, true); - }, - - _onClkIncBumper: function(){ - this._onClkBumper(this._descending === false ? this.minimum : this.maximum); - }, - - _onClkDecBumper: function(){ - this._onClkBumper(this._descending === false ? this.maximum : this.minimum); - }, - - decrement: function(/*Event*/ e){ - // summary: - // Decrement slider - // tags: - // private - this._bumpValue(e.charOrCode == dojo.keys.PAGE_DOWN ? -this.pageIncrement : -1); - }, - - increment: function(/*Event*/ e){ - // summary: - // Increment slider - // tags: - // private - this._bumpValue(e.charOrCode == dojo.keys.PAGE_UP ? this.pageIncrement : 1); - }, - - _mouseWheeled: function(/*Event*/ evt){ - // summary: - // Event handler for mousewheel where supported - dojo.stopEvent(evt); - var janky = !dojo.isMozilla; - var scroll = evt[(janky ? "wheelDelta" : "detail")] * (janky ? 1 : -1); - this._bumpValue(scroll < 0 ? -1 : 1, true); // negative scroll acts like a decrement - }, - - startup: function(){ - if(this._started){ return; } - - dojo.forEach(this.getChildren(), function(child){ - if(this[child.container] != this.containerNode){ - this[child.container].appendChild(child.domNode); - } - }, this); - - this.inherited(arguments); - }, - - _typematicCallback: function(/*Number*/ count, /*Object*/ button, /*Event*/ e){ - if(count == -1){ - this._setValueAttr(this.value, true); - }else{ - this[(button == (this._descending? this.incrementButton : this.decrementButton)) ? "decrement" : "increment"](e); - } - }, - - buildRendering: function(){ - this.inherited(arguments); - if(this.showButtons){ - this.incrementButton.style.display=""; - this.decrementButton.style.display=""; - } - - // find any associated label element and add to slider focusnode. - var label = dojo.query('label[for="'+this.id+'"]'); - if(label.length){ - label[0].id = (this.id+"_label"); - dijit.setWaiState(this.focusNode, "labelledby", label[0].id); - } - - dijit.setWaiState(this.focusNode, "valuemin", this.minimum); - dijit.setWaiState(this.focusNode, "valuemax", this.maximum); - }, - - postCreate: function(){ - this.inherited(arguments); - - if(this.showButtons){ - this._connects.push(dijit.typematic.addMouseListener( - this.decrementButton, this, "_typematicCallback", 25, 500)); - this._connects.push(dijit.typematic.addMouseListener( - this.incrementButton, this, "_typematicCallback", 25, 500)); - } - this.connect(this.domNode, !dojo.isMozilla ? "onmousewheel" : "DOMMouseScroll", "_mouseWheeled"); - - // define a custom constructor for a SliderMover that points back to me - var mover = dojo.declare(dijit.form._SliderMover, { - widget: this - }); - this._movable = new dojo.dnd.Moveable(this.sliderHandle, {mover: mover}); - - this._layoutHackIE7(); - }, - - destroy: function(){ - this._movable.destroy(); - if(this._inProgressAnim && this._inProgressAnim.status != "stopped"){ - this._inProgressAnim.stop(true); - } - this._supportingWidgets = dijit.findWidgets(this.domNode); // tells destroy about pseudo-child widgets (ruler/labels) - this.inherited(arguments); - } -}); - -dojo.declare("dijit.form._SliderMover", - dojo.dnd.Mover, -{ - onMouseMove: function(e){ - var widget = this.widget; - var abspos = widget._abspos; - if(!abspos){ - abspos = widget._abspos = dojo.position(widget.sliderBarContainer, true); - widget._setPixelValue_ = dojo.hitch(widget, "_setPixelValue"); - widget._isReversed_ = widget._isReversed(); - } - var coordEvent = e.touches ? e.touches[0] : e, // if multitouch take first touch for coords - pixelValue = coordEvent[widget._mousePixelCoord] - abspos[widget._startingPixelCoord]; - widget._setPixelValue_(widget._isReversed_ ? (abspos[widget._pixelCount]-pixelValue) : pixelValue, abspos[widget._pixelCount], false); - }, - - destroy: function(e){ - dojo.dnd.Mover.prototype.destroy.apply(this, arguments); - var widget = this.widget; - widget._abspos = null; - widget._setValueAttr(widget.value, true); - } -}); - -} +//>>built +require({cache:{"url:dijit/form/templates/HorizontalSlider.html":"
-
+
\n"}});define("dijit/form/HorizontalSlider",["dojo/_base/array","dojo/_base/declare","dojo/dnd/move","dojo/_base/event","dojo/_base/fx","dojo/dom-geometry","dojo/dom-style","dojo/keys","dojo/_base/lang","dojo/_base/sniff","dojo/dnd/Moveable","dojo/dnd/Mover","dojo/query","../registry","../focus","../typematic","./Button","./_FormValueWidget","../_Container","dojo/text!./templates/HorizontalSlider.html"],function(_1,_2,_3,_4,fx,_5,_6,_7,_8,_9,_a,_b,_c,_d,_e,_f,_10,_11,_12,_13){var _14=_2("dijit.form._SliderMover",_b,{onMouseMove:function(e){var _15=this.widget;var _16=_15._abspos;if(!_16){_16=_15._abspos=_5.position(_15.sliderBarContainer,true);_15._setPixelValue_=_8.hitch(_15,"_setPixelValue");_15._isReversed_=_15._isReversed();}var _17=e[_15._mousePixelCoord]-_16[_15._startingPixelCoord];_15._setPixelValue_(_15._isReversed_?(_16[_15._pixelCount]-_17):_17,_16[_15._pixelCount],false);},destroy:function(e){_b.prototype.destroy.apply(this,arguments);var _18=this.widget;_18._abspos=null;_18._setValueAttr(_18.value,true);}});var _19=_2("dijit.form.HorizontalSlider",[_11,_12],{templateString:_13,value:0,showButtons:true,minimum:0,maximum:100,discreteValues:Infinity,pageIncrement:2,clickSelect:true,slideDuration:_d.defaultDuration,_setIdAttr:"",baseClass:"dijitSlider",cssStateNodes:{incrementButton:"dijitSliderIncrementButton",decrementButton:"dijitSliderDecrementButton",focusNode:"dijitSliderThumb"},_mousePixelCoord:"pageX",_pixelCount:"w",_startingPixelCoord:"x",_handleOffsetCoord:"left",_progressPixelSize:"width",_onKeyUp:function(e){if(this.disabled||this.readOnly||e.altKey||e.ctrlKey||e.metaKey){return;}this._setValueAttr(this.value,true);},_onKeyPress:function(e){if(this.disabled||this.readOnly||e.altKey||e.ctrlKey||e.metaKey){return;}switch(e.charOrCode){case _7.HOME:this._setValueAttr(this.minimum,false);break;case _7.END:this._setValueAttr(this.maximum,false);break;case ((this._descending||this.isLeftToRight())?_7.RIGHT_ARROW:_7.LEFT_ARROW):case (this._descending===false?_7.DOWN_ARROW:_7.UP_ARROW):case (this._descending===false?_7.PAGE_DOWN:_7.PAGE_UP):this.increment(e);break;case ((this._descending||this.isLeftToRight())?_7.LEFT_ARROW:_7.RIGHT_ARROW):case (this._descending===false?_7.UP_ARROW:_7.DOWN_ARROW):case (this._descending===false?_7.PAGE_UP:_7.PAGE_DOWN):this.decrement(e);break;default:return;}_4.stop(e);},_onHandleClick:function(e){if(this.disabled||this.readOnly){return;}if(!_9("ie")){_e.focus(this.sliderHandle);}_4.stop(e);},_isReversed:function(){return !this.isLeftToRight();},_onBarClick:function(e){if(this.disabled||this.readOnly||!this.clickSelect){return;}_e.focus(this.sliderHandle);_4.stop(e);var _1a=_5.position(this.sliderBarContainer,true);var _1b=e[this._mousePixelCoord]-_1a[this._startingPixelCoord];this._setPixelValue(this._isReversed()?(_1a[this._pixelCount]-_1b):_1b,_1a[this._pixelCount],true);this._movable.onMouseDown(e);},_setPixelValue:function(_1c,_1d,_1e){if(this.disabled||this.readOnly){return;}var _1f=this.discreteValues;if(_1f<=1||_1f==Infinity){_1f=_1d;}_1f--;var _20=_1d/_1f;var _21=Math.round(_1c/_20);this._setValueAttr(Math.max(Math.min((this.maximum-this.minimum)*_21/_1f+this.minimum,this.maximum),this.minimum),_1e);},_setValueAttr:function(_22,_23){this._set("value",_22);this.valueNode.value=_22;this.focusNode.setAttribute("aria-valuenow",_22);this.inherited(arguments);var _24=(_22-this.minimum)/(this.maximum-this.minimum);var _25=(this._descending===false)?this.remainingBar:this.progressBar;var _26=(this._descending===false)?this.progressBar:this.remainingBar;if(this._inProgressAnim&&this._inProgressAnim.status!="stopped"){this._inProgressAnim.stop(true);}if(_23&&this.slideDuration>0&&_25.style[this._progressPixelSize]){var _27=this;var _28={};var _29=parseFloat(_25.style[this._progressPixelSize]);var _2a=this.slideDuration*(_24-_29/100);if(_2a==0){return;}if(_2a<0){_2a=0-_2a;}_28[this._progressPixelSize]={start:_29,end:_24*100,units:"%"};this._inProgressAnim=fx.animateProperty({node:_25,duration:_2a,onAnimate:function(v){_26.style[_27._progressPixelSize]=(100-parseFloat(v[_27._progressPixelSize]))+"%";},onEnd:function(){delete _27._inProgressAnim;},properties:_28});this._inProgressAnim.play();}else{_25.style[this._progressPixelSize]=(_24*100)+"%";_26.style[this._progressPixelSize]=((1-_24)*100)+"%";}},_bumpValue:function(_2b,_2c){if(this.disabled||this.readOnly){return;}var s=_6.getComputedStyle(this.sliderBarContainer);var c=_5.getContentBox(this.sliderBarContainer,s);var _2d=this.discreteValues;if(_2d<=1||_2d==Infinity){_2d=c[this._pixelCount];}_2d--;var _2e=(this.value-this.minimum)*_2d/(this.maximum-this.minimum)+_2b;if(_2e<0){_2e=0;}if(_2e>_2d){_2e=_2d;}_2e=_2e*(this.maximum-this.minimum)/_2d+this.minimum;this._setValueAttr(_2e,_2c);},_onClkBumper:function(val){if(this.disabled||this.readOnly||!this.clickSelect){return;}this._setValueAttr(val,true);},_onClkIncBumper:function(){this._onClkBumper(this._descending===false?this.minimum:this.maximum);},_onClkDecBumper:function(){this._onClkBumper(this._descending===false?this.maximum:this.minimum);},decrement:function(e){this._bumpValue(e.charOrCode==_7.PAGE_DOWN?-this.pageIncrement:-1);},increment:function(e){this._bumpValue(e.charOrCode==_7.PAGE_UP?this.pageIncrement:1);},_mouseWheeled:function(evt){_4.stop(evt);var _2f=!_9("mozilla");var _30=evt[(_2f?"wheelDelta":"detail")]*(_2f?1:-1);this._bumpValue(_30<0?-1:1,true);},startup:function(){if(this._started){return;}_1.forEach(this.getChildren(),function(_31){if(this[_31.container]!=this.containerNode){this[_31.container].appendChild(_31.domNode);}},this);this.inherited(arguments);},_typematicCallback:function(_32,_33,e){if(_32==-1){this._setValueAttr(this.value,true);}else{this[(_33==(this._descending?this.incrementButton:this.decrementButton))?"decrement":"increment"](e);}},buildRendering:function(){this.inherited(arguments);if(this.showButtons){this.incrementButton.style.display="";this.decrementButton.style.display="";}var _34=_c("label[for=\""+this.id+"\"]");if(_34.length){_34[0].id=(this.id+"_label");this.focusNode.setAttribute("aria-labelledby",_34[0].id);}this.focusNode.setAttribute("aria-valuemin",this.minimum);this.focusNode.setAttribute("aria-valuemax",this.maximum);},postCreate:function(){this.inherited(arguments);if(this.showButtons){this._connects.push(_f.addMouseListener(this.decrementButton,this,"_typematicCallback",25,500));this._connects.push(_f.addMouseListener(this.incrementButton,this,"_typematicCallback",25,500));}this.connect(this.domNode,!_9("mozilla")?"onmousewheel":"DOMMouseScroll","_mouseWheeled");var _35=_2(_14,{widget:this});this._movable=new _a(this.sliderHandle,{mover:_35});this._layoutHackIE7();},destroy:function(){this._movable.destroy();if(this._inProgressAnim&&this._inProgressAnim.status!="stopped"){this._inProgressAnim.stop(true);}this._supportingWidgets=_d.findWidgets(this.domNode);this.inherited(arguments);}});_19._Mover=_14;return _19;}); \ No newline at end of file -- cgit v1.2.3