Rev 1318 | Blame | Compare with Previous | Last modification | View Log | RSS feed
/*Copyright (c) 2004-2006, The Dojo FoundationAll Rights Reserved.Licensed under the Academic Free License version 2.1 or above OR themodified BSD license. For more information on Dojo licensing, see:http://dojotoolkit.org/community/licensing.shtml*/dojo.provide("dojo.widget.Editor2Plugin.AlwaysShowToolbar");dojo.event.topic.subscribe("dojo.widget.Editor2::onLoad", function (editor) {if (editor.toolbarAlwaysVisible) {var p = new dojo.widget.Editor2Plugin.AlwaysShowToolbar(editor);}});dojo.declare("dojo.widget.Editor2Plugin.AlwaysShowToolbar", null, function (editor) {this.editor = editor;this.editor.registerLoadedPlugin(this);this.setup();}, {_scrollSetUp:false, _fixEnabled:false, _scrollThreshold:false, _handleScroll:true, setup:function () {var tdn = this.editor.toolbarWidget;if (!tdn.tbBgIframe) {tdn.tbBgIframe = new dojo.html.BackgroundIframe(tdn.domNode);tdn.tbBgIframe.onResized();}this.scrollInterval = setInterval(dojo.lang.hitch(this, "globalOnScrollHandler"), 100);dojo.event.connect("before", this.editor.toolbarWidget, "destroy", this, "destroy");}, globalOnScrollHandler:function () {var isIE = dojo.render.html.ie;if (!this._handleScroll) {return;}var dh = dojo.html;var tdn = this.editor.toolbarWidget.domNode;var db = dojo.body();if (!this._scrollSetUp) {this._scrollSetUp = true;var editorWidth = dh.getMarginBox(this.editor.domNode).width;this._scrollThreshold = dh.abs(tdn, true).y;if ((isIE) && (db) && (dh.getStyle(db, "background-image") == "none")) {with (db.style) {backgroundImage = "url(" + dojo.uri.moduleUri("dojo.widget", "templates/images/blank.gif") + ")";backgroundAttachment = "fixed";}}}var scrollPos = (window["pageYOffset"]) ? window["pageYOffset"] : (document["documentElement"] || document["body"]).scrollTop;if (scrollPos > this._scrollThreshold) {if (!this._fixEnabled) {var tdnbox = dojo.html.getMarginBox(tdn);this.editor.editorObject.style.marginTop = tdnbox.height + "px";if (isIE) {tdn.style.left = dojo.html.abs(tdn, dojo.html.boxSizing.MARGIN_BOX).x;if (tdn.previousSibling) {this._IEOriginalPos = ["after", tdn.previousSibling];} else {if (tdn.nextSibling) {this._IEOriginalPos = ["before", tdn.nextSibling];} else {this._IEOriginalPos = ["", tdn.parentNode];}}dojo.body().appendChild(tdn);dojo.html.addClass(tdn, "IEFixedToolbar");} else {with (tdn.style) {position = "fixed";top = "0px";}}tdn.style.width = tdnbox.width + "px";tdn.style.zIndex = 1000;this._fixEnabled = true;}if (!dojo.render.html.safari) {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.object || this.editor.iframe).style.marginTop = null;with (tdn.style) {position = "";top = "";zIndex = "";display = "";}if (isIE) {tdn.style.left = "";dojo.html.removeClass(tdn, "IEFixedToolbar");if (this._IEOriginalPos) {dojo.html.insertAtPosition(tdn, this._IEOriginalPos[1], this._IEOriginalPos[0]);this._IEOriginalPos = null;} else {dojo.html.insertBefore(tdn, this.editor.object || this.editor.iframe);}}tdn.style.width = "";this._fixEnabled = false;}}}, destroy:function () {this._IEOriginalPos = null;this._handleScroll = false;clearInterval(this.scrollInterval);this.editor.unregisterLoadedPlugin(this);if (dojo.render.html.ie) {dojo.html.removeClass(this.editor.toolbarWidget.domNode, "IEFixedToolbar");}}});