123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- /*
- * Ext JS Library 2.0 Copyright(c) 2006-2007, Ext JS, LLC. licensing@extjs.com
- *
- * http://extjs.com/license
- */
- // vim: fdc=4:nu:ts=4:sw=4:nospell
- /**
- * @class Ext.form.SliderField
- * @extends Ext.form.Field Slider form field.
- * @constructor Creates a new SliderField
- * @param {Object}
- * config Configuration options
- */
- Ext.form.SliderField = Ext.extend(Ext.form.Field, {
- defaultAutoCreate : {
- tag : 'input',
- type : 'hidden'
- },
- // private
- initComponent : function() {
- Ext.form.SliderField.superclass.initComponent.call(this);
- this.minValue = this.minValue || 0;
- this.maxValue = this.maxValue || 1;
- },
- // private
- onRender : function(ct, position) {
- Ext.form.SliderField.superclass.onRender.call(this, ct, position);
- this.setValue(this.getValue() || this.minValue);
- this.sbar = Ext.DomHelper.insertFirst(ct, {
- tag : 'div',
- cls : 'x-slider-hbar'
- }, true);
- this.sthumb = Ext.DomHelper.append(ct, {
- tag : 'img',
- src : Ext.BLANK_IMAGE_URL,
- cls : 'x-slider-thumb'
- }, true);
- this.sthumb.addClassOnOver('x-slider-thumb-over');
- },
- // private
- afterRender : function() {
- Ext.form.SliderField.superclass.afterRender.call(this);
- this.sbar.setWidth(parseInt(this.el.dom.style.width, 10));
- this.dd = new Ext.dd.DD(this.sthumb.id, 'slider-' + this.sthumb.id, {});
- this.dd.slider = this;
- this.dd.onDrag = this.onDrag;
- this.dd.startDrag = this.startDrag;
- },
- startDrag : function(x, y) {
- var slider = this.slider;
- var bb = slider.sbar.getBox();
- var tb = slider.sthumb.getBox();
- this.resetConstraints();
- this.setYConstraint(0, 0);
- this.setXConstraint(tb.x - bb.x + 1, bb.x + bb.width - tb.x - tb.width
- - 1);
- slider.pixelMax = bb.width - tb.width;
- // debugger;
- },
- onDrag : function(e) {
- var min = this.slider.minValue;
- var max = this.slider.maxValue;
- var pixelPos = parseInt(this.getEl().style.left, 10);
- this.slider.setValue(min + (max - min) * pixelPos
- / this.slider.pixelMax);
- }
- });
- Ext.reg('sliderfield', Ext.form.SliderField);
- // end of file
|