5 Ext.define('Ext.chart.Tip', {
7 /* Begin Definitions */
9 requires: ['Ext.tip.ToolTip', 'Ext.chart.TipSurface'],
13 constructor: function(config) {
20 me.tipConfig = Ext.apply({}, config.tips, {
21 renderer: Ext.emptyFn,
22 constrainPosition: false
24 me.tooltip = Ext.create('Ext.tip.ToolTip', me.tipConfig);
25 Ext.getBody().on('mousemove', me.tooltip.onMouseMove, me.tooltip);
26 if (me.tipConfig.surface) {
27 //initialize a surface
28 surface = me.tipConfig.surface;
29 sprites = surface.sprites;
30 tipSurface = Ext.create('Ext.chart.TipSurface', {
31 id: 'tipSurfaceComponent',
34 if (surface.width && surface.height) {
35 tipSurface.setSize(surface.width, surface.height);
37 me.tooltip.add(tipSurface);
38 me.spriteTip = tipSurface;
43 showTip: function(item) {
48 clearTimeout(me.tipTimeout);
49 var tooltip = me.tooltip,
50 spriteTip = me.spriteTip,
51 tipConfig = me.tipConfig,
52 trackMouse = tooltip.trackMouse,
53 sprite, surface, surfaceExt, pos, x, y;
55 tooltip.trackMouse = true;
57 surface = sprite.surface;
58 surfaceExt = Ext.get(surface.getId());
60 pos = surfaceExt.getXY();
61 x = pos[0] + (sprite.attr.x || 0) + (sprite.attr.translation && sprite.attr.translation.x || 0);
62 y = pos[1] + (sprite.attr.y || 0) + (sprite.attr.translation && sprite.attr.translation.y || 0);
63 tooltip.targetXY = [x, y];
67 tipConfig.renderer.call(tooltip, item.storeItem, item, spriteTip.surface);
69 tipConfig.renderer.call(tooltip, item.storeItem, item);
72 tooltip.trackMouse = trackMouse;
75 hideTip: function(item) {
76 var tooltip = this.tooltip;
80 clearTimeout(this.tipTimeout);
81 this.tipTimeout = setTimeout(function() {