SliderField_wev8.js
1.96 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
/*
* Ext JS Library 2.0.2
* Copyright(c) 2006-2008, 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