X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/0494b8d9b9bb03ab6c22b34dae81261e3cd7e3e6..7a654f8d43fdb43d78b63d90528bed6e86b608cc:/src/slider/Tip.js diff --git a/src/slider/Tip.js b/src/slider/Tip.js new file mode 100644 index 00000000..cd4a2671 --- /dev/null +++ b/src/slider/Tip.js @@ -0,0 +1,76 @@ +/** + * @class Ext.slider.Tip + * @extends Ext.tip.Tip + * Simple plugin for using an Ext.tip.Tip with a slider to show the slider value. In general this + * class is not created directly, instead pass the {@link Ext.slider.Multi#useTips} and + * {@link Ext.slider.Multi#tipText} configuration options to the slider directly. + * {@img Ext.slider.Tip/Ext.slider.Tip1.png Ext.slider.Tip component} + * Example usage: +
+    Ext.create('Ext.slider.Single', {
+        width: 214,
+        minValue: 0,
+        maxValue: 100,
+        useTips: true,
+        renderTo: Ext.getBody()
+    });   
+
+ * Optionally provide your own tip text by passing tipText: +
+ new Ext.slider.Single({
+     width: 214,
+     minValue: 0,
+     maxValue: 100,
+     useTips: true,
+     tipText: function(thumb){
+         return Ext.String.format('{0}% complete', thumb.value);
+     }
+ });
+ 
+ * @xtype slidertip + */ +Ext.define('Ext.slider.Tip', { + extend: 'Ext.tip.Tip', + minWidth: 10, + alias: 'widget.slidertip', + offsets : [0, -10], + + isSliderTip: true, + + init: function(slider) { + var me = this; + + slider.on({ + scope : me, + dragstart: me.onSlide, + drag : me.onSlide, + dragend : me.hide, + destroy : me.destroy + }); + }, + /** + * @private + * Called whenever a dragstart or drag event is received on the associated Thumb. + * Aligns the Tip with the Thumb's new position. + * @param {Ext.slider.MultiSlider} slider The slider + * @param {Ext.EventObject} e The Event object + * @param {Ext.slider.Thumb} thumb The thumb that the Tip is attached to + */ + onSlide : function(slider, e, thumb) { + var me = this; + me.show(); + me.update(me.getText(thumb)); + me.doComponentLayout(); + me.el.alignTo(thumb.el, 'b-t?', me.offsets); + }, + + /** + * Used to create the text that appears in the Tip's body. By default this just returns + * the value of the Slider Thumb that the Tip is attached to. Override to customize. + * @param {Ext.slider.Thumb} thumb The Thumb that the Tip is attached to + * @return {String} The text to display in the tip + */ + getText : function(thumb) { + return String(thumb.value); + } +}); \ No newline at end of file