/* Product Name: dhtmlxSuite Version: 4.0.3 Edition: Professional License: content of this file is covered by DHTMLX Commercial or Enterprise license. Usage without proper license is prohibited. To obtain it contact sales@dhtmlx.com Copyright UAB Dinamenta http://www.dhtmlx.com */ /** * @desc: enable pop up menu which allows hidding/showing columns * @edition: Professional * @type: public */ dhtmlXGridObject.prototype.enableHeaderMenu=function(columns) { if (typeof columns == "string") columns = columns.split(","); this._hm_config = columns; var that=this; this.attachEvent("onInit",function(){ this.hdr.oncontextmenu = function(e){ return that._doHContClick(e||window.event); }; { this.startColResizeA=this.startColResize; this.startColResize=function(e){ if (e.button==2 || (_isMacOS&&e.ctrlKey)) return this._doHContClick(e) return this.startColResizeA(e); } } this._chm_ooc=this.obj.onclick; this._chm_hoc=this.hdr.onclick; this.hdr.onclick=function(e){ if (e && ( e.button==2 || (_isMacOS&&e.ctrlKey))) return false; that._showHContext(false); return that._chm_hoc.apply(this,arguments) } this.obj.onclick=function(){ that._showHContext(false); return that._chm_ooc.apply(this,arguments) } }); dhtmlxEvent(document.body,"click",function(){ if (that._hContext) that._showHContext(false); }) if (this.hdr.rows.length) this.callEvent("onInit",[]); this.enableHeaderMenu=function(){}; } dhtmlXGridObject.prototype._doHContClick=function(ev) { function mouseCoords(ev){ if(ev.pageX || ev.pageY){ return {x:ev.pageX, y:ev.pageY}; } var d = ((_isIE)&&(document.compatMode != "BackCompat"))?document.documentElement:document.body; return { x:ev.clientX + d.scrollLeft - d.clientLeft, y:ev.clientY + d.scrollTop - d.clientTop }; } this._createHContext(); var coords = mouseCoords(ev); this._showHContext(true,coords.x,coords.y); ev[_isIE?"srcElement":"target"].oncontextmenu = function(e){ (e||event).cancelBubble=true; return false; }; ev.cancelBubble=true; if (ev.preventDefault) ev.preventDefault(); return false; } dhtmlXGridObject.prototype._createHContext=function() { if (this._hContext) return this._hContext; var d = document.createElement("DIV"); d.oncontextmenu = function(e){ (e||event).cancelBubble=true; return false; }; d.onclick=function(e){ (e||event).cancelBubble=true; return true; } d.className="dhx_header_cmenu"; d.style.width=d.style.height="5px"; d.style.display="none"; var a=[]; var i=0; if (this._fake) i=this._fake._cCount; var true_ind=i; for (var i; i]*>/gi,""); a.push("
"+val+"
"); } true_ind+=(c.colSpan||1); } d.innerHTML=a.join(""); var that=this; var f=function(){ var c=this.getAttribute("column"); if (!this.checked && !that._checkLast(c)) return this.checked=true; if (that._realfake) that=that._fake; for (var i=0; i