X-Git-Url: http://lambda.jimpryor.net/git/gitweb.cgi?a=blobdiff_plain;f=jsMath%2Fplugins%2FCHMmode.js;fp=jsMath%2Fplugins%2FCHMmode.js;h=1bab915f05b0a29a1956f5b9e191b4a536c24f33;hb=f084723ab17e56d39e05a8a8da8d976e670dfd42;hp=0000000000000000000000000000000000000000;hpb=b3b3c1c988e48e53f295529431d640528bb17927;p=lambda.git diff --git a/jsMath/plugins/CHMmode.js b/jsMath/plugins/CHMmode.js new file mode 100644 index 00000000..1bab915f --- /dev/null +++ b/jsMath/plugins/CHMmode.js @@ -0,0 +1,85 @@ +/* + * CHMmode.js + * + * Part of the jsMath package for mathematics on the web. + * + * This file makes jsMath work with MicroSoft's HTML Help system + * from within .chm files (compiled help archives). + * + * This file should be loaded BEFORE jsMath.js. + * + * --------------------------------------------------------------------- + * + * Copyright 2006-2007 by Davide P. Cervone + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +if (!window.jsMath) {window.jsMath = {}} +if (!jsMath.Controls) {jsMath.Controls = {}} +if (!jsMath.Controls.cookie) {jsMath.Controls.cookie = {}} + +jsMath.isCHMmode = 1; + +jsMath.noChangeGlobal = 1; +jsMath.noShowGlobal = 1; +jsMath.noImgFonts = 1; +jsMath.Controls.cookie.global = 'always'; +jsMath.Controls.cookie.hiddenGlobal = 1; + +if (window.location.protocol == "mk:") { + + /* + * Work around bug in hh.exe that causes it to run at 100% CPU + * and not exit if the page is reloaded after an IFRAME is used + * to load the controls file, so fake it using XMLHttpRequest. + * Load the data into a DIV instead of an IFRAME, and make sure + * that the styles are correct for it. Change the GetPanel() + * call to hide the other panel and open the correct one. + */ + + jsMath.Controls.Init = function () { + this.controlPanels = jsMath.Setup.DIV("controlPanels"); + if (!jsMath.Browser.msieButtonBug) {this.Button()} + else {setTimeout("jsMath.Controls.Button()",500)} + } + + jsMath.Controls.Panel = function () { + jsMath.Translate.Cancel(); + jsMath.Setup.AddStyleSheet({ + '#jsMath_options': jsMath.styles['#jsMath_panel'], + '#jsMath_options .disabled': jsMath.styles['#jsMath_panel .disabled'], + '#jsMath_options .infoLink': jsMath.styles['#jsMath_panel .infoLink'] + }); + if (this.loaded) {this.panel = jsMath.Element("panel"); this.Main(); return} + var html = jsMath.Script.xmlRequest(jsMath.root+"jsMath-controls.html"); + var body = (html.match(/([\s\S]*)<\/body>/))[1]; + this.controlPanels.innerHTML = body; + var script = (body.match(/