Blame | Last modification | View Log | RSS feed
if(!dojo._hasResource["dijit._editor.plugins.AlwaysShowToolbar"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.dojo._hasResource["dijit._editor.plugins.AlwaysShowToolbar"] = true;dojo.provide("dijit._editor.plugins.AlwaysShowToolbar");dojo.declare("dijit._editor.plugins.AlwaysShowToolbar", null,{_handleScroll: true,setEditor: function(e){this.editor=e;// setTimeout(dojo.hitch(this,this.enable),10000);e.onLoadDeferred.addCallback(dojo.hitch(this,this.enable));// this.scrollInterval = setInterval(dojo.hitch(this, "globalOnScrollHandler"), 100);},enable: function(d){this._updateHeight();this._connects=[dojo.connect(window,'onscroll',this,"globalOnScrollHandler"),dojo.connect(this.editor,'onNormalizedDisplayChanged',this,"_updateHeight")];return d;},_updateHeight: function(){// summary:// Updates the height of the editor area to fit the contents.var e=this.editor;if(!e.isLoaded){ return; }if(e.height){ return; }var height = dojo.marginBox(e.editNode).h;if(dojo.isOpera){height = e.editNode.scrollHeight;}// console.debug('height',height);// alert(this.editNode);//height maybe zero in some cases even though the content is not empty,//we try the height of body insteadif(!height){height = dojo.marginBox(e.document.body).h;}if(height == 0){console.debug("Can not figure out the height of the editing area!");return; //prevent setting height to 0}if(height != this._lastHeight){this._lastHeight = height;// this.editorObject.style.height = this._lastHeight + "px";dojo.marginBox(e.iframe, { h: this._lastHeight });// this.iframe.height=this._lastHeight+10+'px';// this.iframe.style.height=this._lastHeight+'px';}},_lastHeight: 0,globalOnScrollHandler: function(){var isIE = dojo.isIE && dojo.isIE<7;if(!this._handleScroll){ return; }var tdn = this.editor.toolbar.domNode;var db = dojo.body;if(!this._scrollSetUp){this._scrollSetUp = true;this._scrollThreshold = dojo._abs(tdn, true).y;// console.log("threshold:", this._scrollThreshold);//what's this for?? comment out for now// if((isIE)&&(db)&&(dojo.style(db, "backgroundIimage")=="none")){// db.style.backgroundImage = "url(" + dojo.uri.moduleUri("dijit", "templates/blank.gif") + ")";// db.style.backgroundAttachment = "fixed";// }}var scrollPos = dojo._docScroll().y;if(scrollPos > this._scrollThreshold && scrollPos < this._scrollThreshold+this._lastHeight){// dojo.debug(scrollPos);if(!this._fixEnabled){var tdnbox = dojo.marginBox(tdn);this.editor.iframe.style.marginTop = tdnbox.h+"px";if(isIE){tdn.style.left = dojo._abs(tdn).x;if(tdn.previousSibling){this._IEOriginalPos = ['after',tdn.previousSibling];}else if(tdn.nextSibling){this._IEOriginalPos = ['before',tdn.nextSibling];}else{this._IEOriginalPos = ['last',tdn.parentNode];}dojo.body().appendChild(tdn);dojo.addClass(tdn,'IEFixedToolbar');}else{with(tdn.style){position = "fixed";top = "0px";}}dojo.marginBox(tdn, { w: tdnbox.w });tdn.style.zIndex = 2000;this._fixEnabled = true;}// if we're showing the floating toolbar, make sure that if// we've scrolled past the bottom of the editor that we hide// the toolbar for this instance of the editor.// TODO: when we get multiple editor toolbar support working// correctly, ensure that we check this against the scroll// position of the bottom-most editor instance.var eHeight = (this.height) ? parseInt(this.editor.height) : this.editor._lastHeight;if(scrollPos > (this._scrollThreshold+eHeight)){tdn.style.display = "none";}else{tdn.style.display = "";}}else if(this._fixEnabled){this.editor.iframe.style.marginTop = '';with(tdn.style){position = "";top = "";zIndex = "";display = "";}if(isIE){tdn.style.left = "";dojo.removeClass(tdn,'IEFixedToolbar');if(this._IEOriginalPos){dojo.place(tdn, this._IEOriginalPos[1], this._IEOriginalPos[0]);this._IEOriginalPos = null;}else{dojo.place(tdn, this.editor.iframe,'before');}}tdn.style.width = "";this._fixEnabled = false;}},destroy: function(){this._IEOriginalPos = null;this._handleScroll = false;dojo.forEach(this._connects,dojo.disconnect);// clearInterval(this.scrollInterval);if(dojo.isIE && dojo.isIE<7){dojo.removeClass(this.editor.toolbar.domNode,'IEFixedToolbar');}}});}