From f77a93fe56b90c89d3a881d9af84d43e451efe8d Mon Sep 17 00:00:00 2001 From: Einar Egilsson Date: Mon, 28 May 2007 23:17:52 +0000 Subject: git-svn-id: http://einaregilsson.googlecode.com/svn/mozilla/redirector/trunk@56 119bf307-c92d-0410-89bd-8f53e6181181 --- chrome/content/overlay.js | 101 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 chrome/content/overlay.js (limited to 'chrome/content/overlay.js') diff --git a/chrome/content/overlay.js b/chrome/content/overlay.js new file mode 100644 index 0000000..9092938 --- /dev/null +++ b/chrome/content/overlay.js @@ -0,0 +1,101 @@ +//// $Id$ + +var RedirectorOverlay = { + + id : "redirector@einaregilsson.com", + name : "Redirector", + initialized : false, + strings : null, + + onLoad : function(event) { + try { + + // initialization code + RedirLib.initialize(this); + RedirLib.debug("Initializing..."); + + $('contentAreaContextMenu') + .addEventListener("popupshowing", function(e) { RedirectorOverlay.showContextMenu(e); }, false); + + Redirector.init(); + + var appcontent = window.document.getElementById('appcontent'); + + if (appcontent && !appcontent.processed) { + appcontent.processed = true; + + appcontent.addEventListener('DOMContentLoaded', function(event) { + + RedirectorOverlay.onDOMContentLoaded(event); + + }, false); + } + this.strings = document.getElementById("redirector-strings"); + + RedirLib.debug("Finished initialization"); + this.initialized = true; + + } catch(e) { + //Don't use RedirLib because it's initialization might have failed. + if (this.strings) { + alert(this.strings.getString("initError")._(this.name) + "\n\n" + e); + } else { + alert(e); + } + } + }, + + onDOMContentLoaded : function(event) { + var redirect, link, links, url; + + if (event.target != window.content.document) { + return; + } + + url = window.content.location.href; + + RedirLib.debug('Processing url %1'._(url)); + Redirector.processUrl(url); + }, + + + onUnload : function(event) { + //Clean up here + RedirLib.debug("Finished cleanup"); + }, + + showContextMenu : function(event) { + if (gContextMenu.onLink) { + $("redirector-context").label = this.strings.getString('addLinkUrl'); + } else { + $("redirector-context").label = this.strings.getString('addCurrentUrl'); + } + }, + + onContextMenuCommand: function(event) { + + params = { inn : { url : window.content.location.href}, out : {} }; + if (gContextMenu.onLink) { + params.inn.redirect = gContextMenu.link.toString(); + } + + window.openDialog("chrome://redirector/content/redirect.xul", + "redirect", + "chrome,dialog,modal,centerscreen", params); + + if (params.out.pattern) { + Redirector.addRedirect(params.out); + } + + }, + + onMenuItemCommand: function(event) { + window.openDialog("chrome://redirector/content/redirectList.xul", + "redirectList", + "chrome,dialog,modal,centerscreen", this); + + }, + +}; +window.addEventListener("load", function(event) { RedirectorOverlay.onLoad(event); }, false); +window.addEventListener("unload", function(event) { RedirectorOverlay.onUnload(event); }, false); \ No newline at end of file -- cgit v1.2.3-70-g09d2