It would be useful to allow a hidedelay on the hovercomponent. This will allow the user to select/click a hovercomponent (like a link to external documentation).
This is a dirty hack to allow this:
Usage:
This is a dirty hack to allow this:
Code:
isc.Hover.addClassMethods({ oldShowPtr:isc.Hover.show, oldHidePtr:isc.Hover.hide, show: function (contents, properties, rect, targetCanvas){ if(this.hideDelayTimer){ this.hide(true); } this.oldShowPtr(contents,properties,rect,targetCanvas); }, hide: function(ignoreDelay){ var hoverCanvas = isc.Hover.hoverCanvas; if(hoverCanvas!=null){ if(hoverCanvas.hideDelay){ if(!ignoreDelay){ if(!this.hideDelayTimer){ this.hideDelayTimer = isc.Hover.delayCall('hide',[true],hoverCanvas.hideDelay); } return; } if(this.hideDelayTimer) isc.Timer.clear(this.hideDelayTimer); delete this.hideDelayTimer; } } this.oldHidePtr(); } })
Code:
isc.ListGrid.create({ ... fields:[{ name:'name',headerHoverHTML: function(fieldNum,defaultHtml){ return isc.Label.create({ contents: this.getField(fieldNum).documentation, hideDelay:3000 // in milliseconds }) } }] })