# HG changeset patch # User luginbue # Date 1026057834 -7200 # Node ID 9a3fc958fb4345beedd4b032adb9011596f964f0 # Parent cff6aff17bb86cbab891c38330748fc36da90429 bugfixes and new module diff -r cff6aff17bb8 -r 9a3fc958fb43 client/digitallibrary/modules/contextMenu.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/client/digitallibrary/modules/contextMenu.js Sun Jul 07 18:03:54 2002 +0200 @@ -0,0 +1,117 @@ +/**************************************************************************** + * - module for digilib: adds a menu for digilib functionality * + * * + * pressing [ctrl] + [left mousebutton] to bring it up * + * * + * to install this module, you do not just have to load it in * + * dlImage.jsp (like every module), but you also have to put the * + * following three lines in the
of dlImage.jsp: * + * * + * * + * * + * christian luginbuehl (luginbuehl@student.unibe.ch) * + ****************************************************************************/ + +browser = new checkBrowser(); + +var menu = false; + +if (browser.ns4) { + document.captureEvents(Event.MOUSEDOWN); + document.onmousedown = showmenu; +} else if (browser.ns6) { + document.addEventListener("mousedown", showmenu, true); +} else { + document.onmousedown = showmenu; +} + + +function checkBrowser() { + + this.ua = navigator.userAgent; + this.ver = navigator.appVersion; + this.dom = ( document.getElementById ); + this.opera = ( this.dom ) && ( this.ua.toLowerCase().indexOf("opera") > -1 ); + this.ie4 = ( document.all ) && ( !this.dom ); + this.ie5 = ( this.ver.indexOf("MSIE 5") > -1 ) && ( this.dom ); + this.ie6 = ( this.ver.indexOf("MSIE 6") > -1 ) && ( this.dom ); + this.ns4 = ( document.layers ) && ( !this.dom ); + this.ns6 = ( this.dom ) && ( parseInt(this.ver) >= 5 ) && ( !this.opera ); + this.ns = ( this.ns4 ) || ( this.ns6 ); + this.ie = ( this.ie4 ) || ( this.ie5 ) || ( this.ie6 ); + + return this; +} + + +function showmenu(event) { + + if (browser.ns4) { + if (event.which == 1 && (event.modifiers == Event.CONTROL_MASK) && !menu) { + menu = true; + document.layers["menu"].left = Math.min(event.pageX + 3, innerWidth - 160 + pageXOffset); + document.layers["menu"].top = Math.min(event.pageY + 3, innerHeight - 180 + pageYOffset); + document.layers["menu"].clip.width = 140; + document.layers["menu"].bgColor = "#DDDDDD"; + document.layers["menu"].margin = 4; + document.layers["menu"].visibility = "show"; + } else if (menu) { + menu = false; + document.layers["menu"].visibility = "hide"; + } + + } else if (browser.ns6) { + if (event.which == 1 && event.ctrlKey && !menu) { + menu = true; + document.getElementById("menu").style.left = Math.min(event.pageX + 3, innerWidth - 160 + pageXOffset); + document.getElementById("menu").style.top = Math.min(event.pageY + 3, innerHeight - 160 + pageYOffset); + document.getElementById("menu").style.visibility = "visible"; + } else if (menu) { + menu = false; + document.getElementById("menu").style.visibility = "hidden"; + } + } else { + event = window.event; + + if (event.button == 1 && event.ctrlKey && !menu) { + menu = true; + document.all["menu"].style.left = event.x + 3; + document.all["menu"].style.top = event.y + 3; + document.all["menu"].style.visibility = "visible"; + } else if (menu) { + menu = false; + document.all["menu"].style.visibility = "hidden"; + } + } +} + + +function cm_htmlCode() { + + document.write('\n'); + document.write(' \n'); + +}