[Pkg-mozext-commits] [all-in-one-sidebar] 05/05: Imported Upstream version 0.7.25
David Prévot
taffit at moszumanska.debian.org
Mon Sep 29 22:55:16 UTC 2014
This is an automated email from the git hooks/post-receive script.
taffit pushed a commit to branch upstream
in repository all-in-one-sidebar.
commit 769e69d25b427c00d63e5ac17099e23f0d96aec4
Merge: eeb7a83 c01c53a
Author: David Prévot <taffit at debian.org>
Date: Mon Sep 29 18:34:30 2014 -0400
Imported Upstream version 0.7.25
content/_helper.js | 8 --------
content/aios.js | 6 ------
content/aios.xul | 10 +++++-----
content/aios_old.js | 15 ---------------
content/aios_tbx.js | 27 ---------------------------
content/pageinfo.js | 3 ---
install.rdf | 4 ++--
7 files changed, 7 insertions(+), 66 deletions(-)
diff --cc content/_helper.js
index 7f7e79d,5a55a38..0d08b20
--- a/content/_helper.js
+++ b/content/_helper.js
@@@ -1,413 -1,405 +1,405 @@@
-var AiOS_HELPER = {
-
- init: function() {
-
- this.prefInterface = Components.interfaces.nsIPrefBranch;
- this.prefService = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService);
- this.prefBranch = this.prefService.getBranch(null);
- this.prefBranchAiOS = this.prefService.getBranch("extensions.aios.");
-
- this.windowWatcher = Components.classes["@mozilla.org/embedcomp/window-watcher;1"].getService(Components.interfaces.nsIWindowWatcher);
- this.windowMediator = Components.classes["@mozilla.org/appshell/window-mediator;1"].getService(Components.interfaces.nsIWindowMediator);
- this.mostRecentWindow = this.windowMediator.getMostRecentWindow('navigator:browser');
-
- this.appInfo = Components.classes['@mozilla.org/xre/app-info;1'].getService(Components.interfaces.nsIXULAppInfo);
- this.os = Components.classes['@mozilla.org/xre/app-info;1'].getService(Components.interfaces.nsIXULRuntime).OS;
- this.osVersion = window.navigator.oscpu;
- this.defTheme = (this.prefBranch.getCharPref('general.skins.selectedSkin') == "classic/1.0") ? true : false;
-
- },
-
- initOnDOMLoaded: function() {
-
- AiOS_HELPER.aiosToolbar = document.getElementById('aios-toolbar');
- AiOS_HELPER.sbhToolbar = document.getElementById('aios-sbhtoolbar');
-
- },
-
- rememberAppInfo: function(aObj) {
-
- aObj.setAttribute('aios-appVendor', this.appInfo.vendor);
- aObj.setAttribute('aios-appVersion', this.appInfo.version);
- aObj.setAttribute('aios-appOS', this.os);
- aObj.setAttribute('aios-appOSVersion', this.osVersion);
- aObj.setAttribute('aios-appDefTheme', this.defTheme);
-
- },
-
- unload: function() {
- window.removeEventListener("DOMContentLoaded", AiOS_HELPER.initOnDOMLoaded);
- //window.removeEventListener("load", AiOS_HELPER.initOnLoad);
- window.removeEventListener("unload", AiOS_HELPER.unload);
- }
-
-};
-
-AiOS_HELPER.init();
-
-window.addEventListener("DOMContentLoaded", AiOS_HELPER.initOnDOMLoaded, false);
-window.addEventListener("unload", AiOS_HELPER.unload, false);
-
-
-
-// globale Variablen und Funktionen zur Ueberwachung auf Progress-Veraenderungen
-// Verwendung in pageInfo.xul
-var aios_ProgListStart = Components.interfaces.nsIWebProgressListener.STATE_START;
-var aios_ProgListStop = Components.interfaces.nsIWebProgressListener.STATE_STOP;
-
-var aiosProgListener = {
- QueryInterface: function(aIID) {
- if (aIID.equals(Components.interfaces.nsIWebProgressListener) ||
- aIID.equals(Components.interfaces.nsISupportsWeakReference) ||
- aIID.equals(Components.interfaces.nsISupports))
- return this;
- throw Components.results.NS_NOINTERFACE;
- },
-
- onStateChange: function(aProgress, aRequest, aFlag, aStatus) {
- //if(aFlag & aios_ProgListStart) { /* This fires when the load event is initiated */ }
- //if(aFlag & aios_ProgListStop) { /* This fires when the load finishes */ }
- if(aFlag & aios_ProgListStop) {
- if(typeof aios_onStateChange == "function") aios_onStateChange();
- }
- return 0;
- },
-
- onLocationChange: function(aProgress, aRequest, aURI) {
- // This fires when the location bar changes i.e load event is confirmed
- // or when the user switches tabs
- if(typeof aios_onLocationChange == "function") aios_onLocationChange();
- return 0;
- },
-
- // For definitions of the remaining functions see XulPlanet.com
- onProgressChange: function() {
- return 0;
- },
- onStatusChange: function() {
- return 0;
- },
- onSecurityChange: function() {
- return 0;
- },
- onLinkIconAvailable: function() {
- return 0;
- }
-};
-
-
-/*
- oeffnet ein neues Tab mit der uebergebenen Adresse im Vordergrund
-*/
-var aiosLastSelTab; // wird fuer Page Info/MultiPanel im Tab benoetigt
-function aios_addTab(aUrl) {
-
- var browser = AiOS_HELPER.mostRecentWindow.getBrowser();
- aiosLastSelTab = AiOS_HELPER.mostRecentWindow.content;
-
- var browserDoc;
- var existTab = null;
- var emptyTab = null;
-
- // alle geoeffneten Tabs durchgehen
- for(var i = 0; i < browser.tabContainer.childNodes.length; i++) {
- browserDoc = browser.getBrowserAtIndex(i).contentWindow.document;
- //alert(browser.getBrowserAtIndex(i).currentURI.spec);
-
- var isPermaTab = (browser.tabContainer.childNodes[i].getAttribute('isPermaTab')) ? true : false;
-
- // wenn der Tab leer ist
- if(browserDoc.location.href == "about:blank" && browser.selectedTab.getAttribute('openBy') != "aios" && !isPermaTab && emptyTab == null)
- emptyTab = i;
- // wenn der Tab schon existiert
- if(browserDoc.location.href == aUrl && !isPermaTab && existTab == null)
- existTab = i;
- }
-
- // wenn der Tab schon existiert
- if(existTab != null) {
- browser.selectedTab = browser.tabContainer.childNodes[existTab];
- return browser.selectedTab;
- }
-
- // wenn der Tab leer ist
- if(emptyTab != null) {
- // URL oeffnen und Tab selektieren
- browser.getBrowserAtIndex(emptyTab).contentWindow.document.location.href = aUrl;
- browser.selectedTab = browser.tabContainer.childNodes[emptyTab];
- browser.selectedTab.setAttribute('openBy', 'aios');
- return browser.selectedTab;
- }
-
- // wenn kein leerer Tab vorhanden war, wird ein neuer geoeffnet
- browser.selectedTab = browser.addTab(aUrl);
- browser.selectedTab.setAttribute('openBy', 'aios');
- return browser.selectedTab;
-}
-
-
-/*
- fuegt dem Dokument dynamisch ein Stylesheet hinzu
- => Aufruf u.a. durch aios_init() und aios_sidebarLayout() bei den Add-ons, Downloads
-*/
-function aios_addCSS(aURI, aBefore) {
- var path = "chrome://aios/skin/css/";
-
- var elem = (typeof aBefore == "object") ? aBefore : document.getElementById(aBefore);
-
- var css = document.createProcessingInstruction("xml-stylesheet", 'href="' + path + aURI + '" type="text/css"');
- document.insertBefore(css, elem);
-}
-
-
-/*
- errechnet die Breite des Browsers exkl. der AIOS-Toolbar
- => Aufruf durch aios_setSidebarDefWidth() in aios.js und aios_setSidebarWidth() in general.js
-*/
-function aios_getBrowserWidth() {
- var cStyleSidebar = AiOS_HELPER.mostRecentWindow.document.defaultView.getComputedStyle(AiOS_HELPER.mostRecentWindow.document.getElementById('sidebar-box'), '');
- var cStyleSplitter = AiOS_HELPER.mostRecentWindow.document.defaultView.getComputedStyle(AiOS_HELPER.mostRecentWindow.document.getElementById('sidebar-splitter'), '');
- var cStyleContent = AiOS_HELPER.mostRecentWindow.document.defaultView.getComputedStyle(AiOS_HELPER.mostRecentWindow.document.getElementById('appcontent'), '');
-
- var widthSidebar = parseInt(cStyleSidebar.width) + parseInt(cStyleSidebar.paddingLeft) + parseInt(cStyleSidebar.paddingRight) + parseInt(cStyleSidebar.marginLeft) + parseInt(cStyleSidebar.marginRight);
-
- var widthSplitter = parseInt(cStyleSplitter.width) + parseInt(cStyleSplitter.paddingLeft) + parseInt(cStyleSplitter.paddingRight) + parseInt(cStyleSplitter.marginLeft) + parseInt(cStyleSplitter.marginRight);
-
- var widthContent = parseInt(cStyleContent.width) + parseInt(cStyleContent.paddingLeft) + parseInt(cStyleContent.paddingRight) + parseInt(cStyleContent.marginLeft) + parseInt(cStyleContent.marginRight);
-
- var compWidth = widthSidebar + widthSplitter + widthContent;
-
- var ret_arr = new Array(widthSidebar, widthSplitter, widthContent, compWidth);
- return(ret_arr);
-}
-
-
-/*
- erweitert das Attribut "class" eines Elementes
-*/
-function aios_appendClass(elem, appClass) {
- if(typeof elem == "string") elem = document.getElementById(elem);
-
- var old_class = elem.getAttribute('class');
- if(old_class.indexOf(appClass) < 0) elem.setAttribute('class', old_class + " " + appClass);
-}
-
-
-/*
- loescht einen Klassennamen im Attribut "class" eines Elementes
-*/
-function aios_stripClass(elem, stripClass) {
- if(typeof elem == "string") elem = document.getElementById(elem);
-
- var old_class = elem.getAttribute('class');
-
- if(old_class.indexOf(stripClass) >= 0) {
- var pos = old_class.indexOf(stripClass);
-
- var slice1 = old_class.substring(0, pos);
- slice1 = slice1.replace(/ /, "");
- var slice2 = old_class.substring(pos + stripClass.length, old_class.length);
- slice2 = slice2.replace(/ /, "");
-
- elem.setAttribute('class', slice1 + " " + slice2);
- }
-
-}
-
-
-function aios_gElem(aID) {
- if(AiOS_HELPER.mostRecentWindow && AiOS_HELPER.mostRecentWindow.document.getElementById(aID)) return AiOS_HELPER.mostRecentWindow.document.getElementById(aID);
- return false;
-}
-
-
-/*
- * ersetzt fuer MacOS X die Angaben zu Tastaturkuerzeln in den Tooltips
- *
- **/
-function aios_replaceKey(aElem, aAttr, aKey) {
- var strings = document.getElementById("aiosProperties");
-
- var rep_elem = document.getElementById(aElem);
- var rep = rep_elem.getAttribute(aAttr);
- rep = rep.substr(rep.indexOf('+'), rep.length);
- rep_elem.setAttribute(aAttr, strings.getString('key.mac.' + aKey) + rep);
-}
-
-
-/*
- gibt den boolschen Wert eines Wertes zurueck
- => getAttribute(val) liefert nur "true" oder "false" als String
-*/
-function aios_getBoolean(aElem, aVal) {
- var elem, bool;
-
- if(typeof aElem == "object") {
- elem = aElem;
- }
- else if(typeof aElem == "string" && document.getElementById(aElem)) {
- elem = document.getElementById(aElem);
- }
-
- if(elem) {
- if(typeof elem.getAttribute == "function") bool = elem.getAttribute(aVal);
- }
-
- if(bool == "true") return true;
- else return false;
-}
-
-
-/*
- Dialoge oeffnen
-*/
-function aios_openDialog(which, args) {
- var theUrl, theId, theFeatures;
- var theArgs = args;
-
- switch(which) {
- case "prefs":
- theUrl = "chrome://aios/content/prefs/prefs.xul";
- theId = "aiosPrefsDialog";
- theFeatures = "chrome,titlebar,toolbar,centerscreen,";
- theFeatures+= (AiOS_HELPER.os == "Darwin") ? "dialog=no" : "modal";
- break;
-
- case "about":
- theUrl = "chrome://aios/content/about.xul";
- theId = "aiosAboutDialog";
- theFeatures = "chrome,modal";
- break;
-
- case "bookmarks":
- theUrl = "chrome://browser/content/bookmarks/bookmarksPanel.xul";
- theId = "aiosGlobal:Bookmarks";
- theFeatures = "width=640,height=480,chrome,resizable,centerscreen";
- break;
-
- case "history":
- theUrl = "chrome://browser/content/history/history-panel.xul";
- theId = "aiosGlobal:History";
- theFeatures = "width=640,height=480,chrome,resizable,centerscreen";
- break;
-
- case "multipanel":
- theUrl = "chrome://browser/content/web-panels.xul";
- theId = "aiosGlobal:MultiPanel";
- theFeatures = "width=640,height=480,chrome,resizable,centerscreen";
- break;
- }
-
- if(which == "prefs" || which == "about") openDialog(theUrl, theId, theFeatures, theArgs);
- else toOpenWindowByType(theId, theUrl, theFeatures);
-}
-
-
-/*
- prueft welche Elemente angezeigt werden sollen
- => Aufruf jeweils durch Initialisierung
-*/
-function aios_synchElements(aElems) {
- var elem, child, childElems, childMode;
-
- for(var i = 0; i < aElems.length; i++) {
- elem = document.getElementById(aElems[i]);
-
- if(elem) {
-
- childElems = elem.getAttribute('aiosChilds');
-
- if(childElems) {
- childMode = !aios_getBoolean(elem, 'checked');
- aios_toggleChilds(childElems, childMode);
- }
- }
- }
-}
-
-
-/*
- toggelt einen Menuepunkt und das/die zugehoerige/n Element/e
- => Aufruf durch die menuitems in der aios.xul
-*/
-function aios_toggleElement(aMenuitem) {
- var menuitem;
-
- if(typeof aMenuitem != "object") aMenuitem = document.getElementById(aMenuitem);
-
- if(aMenuitem.getAttribute('observes')) {
- menuitem = document.getElementById(aMenuitem.getAttribute('observes'));
- }
- else {
- menuitem = document.getElementById(aMenuitem.id);
- }
-
- var mode = aios_getBoolean(menuitem, 'checked');
- var childElems = menuitem.getAttribute('aiosChilds');
-
- menuitem.setAttribute('checked', !mode);
- aios_toggleChilds(childElems, mode);
-}
-
-
-/*
- toggelt Kindelemente eines Menuepunkts
- => Aufruf durch aios_toggleElement()
-*/
-function aios_toggleChilds(childElems, childMode) {
- var child_str, child;
-
- if(childElems != "") {
- var childElems_arr = childElems.split(",");
-
- for(var i = 0; i < childElems_arr.length; i++) {
- child_str = childElems_arr[i].replace(/ /, "");
-
- var idChilds_arr = document.getElementsByAttribute('id', child_str);
-
- // wenn es nur ein Element mit der ID gibt...
- if(idChilds_arr.length == 1) {
- child = document.getElementById(child_str);
- }
- // wenn es mehrere Elemente mit der ID gibt...
- else {
- for(var j = 0; j < idChilds_arr.length; j++) {
- //... nimm das auf der AIOS-Toolbar
- if(idChilds_arr[j].parentNode.id == "aios-toolbar") child = idChilds_arr[j];
- }
- }
-
- if(child) child.setAttribute('hidden', childMode);
- }
- }
-}
-
-
-/**
- * Tastaturkuerzel entfernen, um nicht die des Hauptbrowsers zu blockieren
- *
- * => Aufruf in downloads.js, pageinfo.js, console.js
- **/
-function aios_removeAccesskeys() {
- var keys = document.getElementsByAttribute('accesskey', '*');
- for(var i = 0; i < keys.length; i++) {
- keys[i].removeAttribute('accesskey')
- }
-}
-
-
-/**
- *
- **/
-function aios_hideMacMenubar() {
- if(document.getElementById('main-menubar'))
- document.getElementById('main-menubar').style.display = "none";
+var AiOS_HELPER = {
+
+ init: function() {
+
+ this.prefInterface = Components.interfaces.nsIPrefBranch;
+ this.prefService = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService);
+ this.prefBranch = this.prefService.getBranch(null);
+ this.prefBranchAiOS = this.prefService.getBranch("extensions.aios.");
+
+ this.windowWatcher = Components.classes["@mozilla.org/embedcomp/window-watcher;1"].getService(Components.interfaces.nsIWindowWatcher);
+ this.windowMediator = Components.classes["@mozilla.org/appshell/window-mediator;1"].getService(Components.interfaces.nsIWindowMediator);
+ this.mostRecentWindow = this.windowMediator.getMostRecentWindow('navigator:browser');
+
+ this.appInfo = Components.classes['@mozilla.org/xre/app-info;1'].getService(Components.interfaces.nsIXULAppInfo);
+ this.os = Components.classes['@mozilla.org/xre/app-info;1'].getService(Components.interfaces.nsIXULRuntime).OS;
+ this.osVersion = window.navigator.oscpu;
+ this.defTheme = (this.prefBranch.getCharPref('general.skins.selectedSkin') == "classic/1.0") ? true : false;
+
+ },
+
+ initOnDOMLoaded: function() {
+
+ AiOS_HELPER.aiosToolbar = document.getElementById('aios-toolbar');
+ AiOS_HELPER.sbhToolbar = document.getElementById('aios-sbhtoolbar');
+
+ },
+
+ rememberAppInfo: function(aObj) {
+
+ aObj.setAttribute('aios-appVendor', this.appInfo.vendor);
+ aObj.setAttribute('aios-appVersion', this.appInfo.version);
+ aObj.setAttribute('aios-appOS', this.os);
+ aObj.setAttribute('aios-appOSVersion', this.osVersion);
+ aObj.setAttribute('aios-appDefTheme', this.defTheme);
+
+ },
+
+ unload: function() {
+ window.removeEventListener("DOMContentLoaded", AiOS_HELPER.initOnDOMLoaded);
+ //window.removeEventListener("load", AiOS_HELPER.initOnLoad);
+ window.removeEventListener("unload", AiOS_HELPER.unload);
+ }
+
+};
+
+AiOS_HELPER.init();
+
+window.addEventListener("DOMContentLoaded", AiOS_HELPER.initOnDOMLoaded, false);
- //window.addEventListener("load", AiOS_HELPER.initOnLoad, false);
+window.addEventListener("unload", AiOS_HELPER.unload, false);
+
+
+
+// globale Variablen und Funktionen zur Ueberwachung auf Progress-Veraenderungen
+// Verwendung in pageInfo.xul
+var aios_ProgListStart = Components.interfaces.nsIWebProgressListener.STATE_START;
+var aios_ProgListStop = Components.interfaces.nsIWebProgressListener.STATE_STOP;
+
+var aiosProgListener = {
+ QueryInterface: function(aIID) {
+ if (aIID.equals(Components.interfaces.nsIWebProgressListener) ||
+ aIID.equals(Components.interfaces.nsISupportsWeakReference) ||
+ aIID.equals(Components.interfaces.nsISupports))
+ return this;
+ throw Components.results.NS_NOINTERFACE;
+ },
+
+ onStateChange: function(aProgress, aRequest, aFlag, aStatus) {
+ //if(aFlag & aios_ProgListStart) { /* This fires when the load event is initiated */ }
+ //if(aFlag & aios_ProgListStop) { /* This fires when the load finishes */ }
+ if(aFlag & aios_ProgListStop) {
+ if(typeof aios_onStateChange == "function") aios_onStateChange();
+ }
+ return 0;
+ },
+
+ onLocationChange: function(aProgress, aRequest, aURI) {
+ // This fires when the location bar changes i.e load event is confirmed
+ // or when the user switches tabs
+ if(typeof aios_onLocationChange == "function") aios_onLocationChange();
+ return 0;
+ },
+
+ // For definitions of the remaining functions see XulPlanet.com
+ onProgressChange: function() {
+ return 0;
+ },
+ onStatusChange: function() {
+ return 0;
+ },
+ onSecurityChange: function() {
+ return 0;
+ },
+ onLinkIconAvailable: function() {
+ return 0;
+ }
+};
+
+
+/*
+ oeffnet ein neues Tab mit der uebergebenen Adresse im Vordergrund
+*/
+var aiosLastSelTab; // wird fuer Page Info/MultiPanel im Tab benoetigt
+function aios_addTab(aUrl) {
+
+ var browser = AiOS_HELPER.mostRecentWindow.getBrowser();
+ aiosLastSelTab = AiOS_HELPER.mostRecentWindow.content;
+
+ var browserDoc;
+ var existTab = null;
+ var emptyTab = null;
+
+ // alle geoeffneten Tabs durchgehen
+ for(var i = 0; i < browser.tabContainer.childNodes.length; i++) {
+ browserDoc = browser.getBrowserAtIndex(i).contentWindow.document;
+ //alert(browser.getBrowserAtIndex(i).currentURI.spec);
+
+ var isPermaTab = (browser.tabContainer.childNodes[i].getAttribute('isPermaTab')) ? true : false;
- //alert(isPermaTab);
-
- /*var attribs = browser.tabContainer.childNodes[i].attributes;
- //var attribs = browser.mCurrentTab.attributes;
- for(var a = 0; a < attribs.length; a++) {
- alert(attribs[a].name + ": " + attribs[a].value);
- }*/
+
+ // wenn der Tab leer ist
+ if(browserDoc.location.href == "about:blank" && browser.selectedTab.getAttribute('openBy') != "aios" && !isPermaTab && emptyTab == null)
+ emptyTab = i;
+ // wenn der Tab schon existiert
+ if(browserDoc.location.href == aUrl && !isPermaTab && existTab == null)
+ existTab = i;
+ }
+
+ // wenn der Tab schon existiert
+ if(existTab != null) {
+ browser.selectedTab = browser.tabContainer.childNodes[existTab];
+ return browser.selectedTab;
+ }
+
+ // wenn der Tab leer ist
+ if(emptyTab != null) {
+ // URL oeffnen und Tab selektieren
+ browser.getBrowserAtIndex(emptyTab).contentWindow.document.location.href = aUrl;
+ browser.selectedTab = browser.tabContainer.childNodes[emptyTab];
+ browser.selectedTab.setAttribute('openBy', 'aios');
+ return browser.selectedTab;
+ }
+
+ // wenn kein leerer Tab vorhanden war, wird ein neuer geoeffnet
+ browser.selectedTab = browser.addTab(aUrl);
+ browser.selectedTab.setAttribute('openBy', 'aios');
+ return browser.selectedTab;
+}
+
+
+/*
+ fuegt dem Dokument dynamisch ein Stylesheet hinzu
+ => Aufruf u.a. durch aios_init() und aios_sidebarLayout() bei den Add-ons, Downloads
+*/
+function aios_addCSS(aURI, aBefore) {
+ var path = "chrome://aios/skin/css/";
+
+ var elem = (typeof aBefore == "object") ? aBefore : document.getElementById(aBefore);
+
+ var css = document.createProcessingInstruction("xml-stylesheet", 'href="' + path + aURI + '" type="text/css"');
+ document.insertBefore(css, elem);
+}
+
+
+/*
+ errechnet die Breite des Browsers exkl. der AIOS-Toolbar
+ => Aufruf durch aios_setSidebarDefWidth() in aios.js und aios_setSidebarWidth() in general.js
+*/
+function aios_getBrowserWidth() {
+ var cStyleSidebar = AiOS_HELPER.mostRecentWindow.document.defaultView.getComputedStyle(AiOS_HELPER.mostRecentWindow.document.getElementById('sidebar-box'), '');
+ var cStyleSplitter = AiOS_HELPER.mostRecentWindow.document.defaultView.getComputedStyle(AiOS_HELPER.mostRecentWindow.document.getElementById('sidebar-splitter'), '');
+ var cStyleContent = AiOS_HELPER.mostRecentWindow.document.defaultView.getComputedStyle(AiOS_HELPER.mostRecentWindow.document.getElementById('appcontent'), '');
+
+ var widthSidebar = parseInt(cStyleSidebar.width) + parseInt(cStyleSidebar.paddingLeft) + parseInt(cStyleSidebar.paddingRight) + parseInt(cStyleSidebar.marginLeft) + parseInt(cStyleSidebar.marginRight);
+
+ var widthSplitter = parseInt(cStyleSplitter.width) + parseInt(cStyleSplitter.paddingLeft) + parseInt(cStyleSplitter.paddingRight) + parseInt(cStyleSplitter.marginLeft) + parseInt(cStyleSplitter.marginRight);
+
+ var widthContent = parseInt(cStyleContent.width) + parseInt(cStyleContent.paddingLeft) + parseInt(cStyleContent.paddingRight) + parseInt(cStyleContent.marginLeft) + parseInt(cStyleContent.marginRight);
+
+ var compWidth = widthSidebar + widthSplitter + widthContent;
+
+ var ret_arr = new Array(widthSidebar, widthSplitter, widthContent, compWidth);
+ return(ret_arr);
+}
+
+
+/*
+ erweitert das Attribut "class" eines Elementes
+*/
+function aios_appendClass(elem, appClass) {
+ if(typeof elem == "string") elem = document.getElementById(elem);
+
+ var old_class = elem.getAttribute('class');
+ if(old_class.indexOf(appClass) < 0) elem.setAttribute('class', old_class + " " + appClass);
+}
+
+
+/*
+ loescht einen Klassennamen im Attribut "class" eines Elementes
+*/
+function aios_stripClass(elem, stripClass) {
+ if(typeof elem == "string") elem = document.getElementById(elem);
+
+ var old_class = elem.getAttribute('class');
+
+ if(old_class.indexOf(stripClass) >= 0) {
+ var pos = old_class.indexOf(stripClass);
+
+ var slice1 = old_class.substring(0, pos);
+ slice1 = slice1.replace(/ /, "");
+ var slice2 = old_class.substring(pos + stripClass.length, old_class.length);
+ slice2 = slice2.replace(/ /, "");
+
+ elem.setAttribute('class', slice1 + " " + slice2);
+ }
+
+}
+
+
+function aios_gElem(aID) {
+ if(AiOS_HELPER.mostRecentWindow && AiOS_HELPER.mostRecentWindow.document.getElementById(aID)) return AiOS_HELPER.mostRecentWindow.document.getElementById(aID);
+ return false;
+}
+
+
+/*
+ * ersetzt fuer MacOS X die Angaben zu Tastaturkuerzeln in den Tooltips
+ *
+ **/
+function aios_replaceKey(aElem, aAttr, aKey) {
+ var strings = document.getElementById("aiosProperties");
+
+ var rep_elem = document.getElementById(aElem);
+ var rep = rep_elem.getAttribute(aAttr);
+ rep = rep.substr(rep.indexOf('+'), rep.length);
+ rep_elem.setAttribute(aAttr, strings.getString('key.mac.' + aKey) + rep);
+}
+
+
+/*
+ gibt den boolschen Wert eines Wertes zurueck
+ => getAttribute(val) liefert nur "true" oder "false" als String
+*/
+function aios_getBoolean(aElem, aVal) {
+ var elem, bool;
+
+ if(typeof aElem == "object") {
+ elem = aElem;
+ }
+ else if(typeof aElem == "string" && document.getElementById(aElem)) {
+ elem = document.getElementById(aElem);
+ }
+
+ if(elem) {
+ if(typeof elem.getAttribute == "function") bool = elem.getAttribute(aVal);
+ }
+
+ if(bool == "true") return true;
+ else return false;
+}
+
+
+/*
+ Dialoge oeffnen
+*/
+function aios_openDialog(which, args) {
+ var theUrl, theId, theFeatures;
+ var theArgs = args;
+
+ switch(which) {
+ case "prefs":
+ theUrl = "chrome://aios/content/prefs/prefs.xul";
+ theId = "aiosPrefsDialog";
+ theFeatures = "chrome,titlebar,toolbar,centerscreen,";
+ theFeatures+= (AiOS_HELPER.os == "Darwin") ? "dialog=no" : "modal";
+ break;
+
+ case "about":
+ theUrl = "chrome://aios/content/about.xul";
+ theId = "aiosAboutDialog";
+ theFeatures = "chrome,modal";
+ break;
+
+ case "bookmarks":
+ theUrl = "chrome://browser/content/bookmarks/bookmarksPanel.xul";
+ theId = "aiosGlobal:Bookmarks";
+ theFeatures = "width=640,height=480,chrome,resizable,centerscreen";
+ break;
+
+ case "history":
+ theUrl = "chrome://browser/content/history/history-panel.xul";
+ theId = "aiosGlobal:History";
+ theFeatures = "width=640,height=480,chrome,resizable,centerscreen";
+ break;
+
+ case "multipanel":
+ theUrl = "chrome://browser/content/web-panels.xul";
+ theId = "aiosGlobal:MultiPanel";
+ theFeatures = "width=640,height=480,chrome,resizable,centerscreen";
+ break;
+ }
+
+ if(which == "prefs" || which == "about") openDialog(theUrl, theId, theFeatures, theArgs);
+ else toOpenWindowByType(theId, theUrl, theFeatures);
+}
+
+
+/*
+ prueft welche Elemente angezeigt werden sollen
+ => Aufruf jeweils durch Initialisierung
+*/
+function aios_synchElements(aElems) {
+ var elem, child, childElems, childMode;
+
+ for(var i = 0; i < aElems.length; i++) {
+ elem = document.getElementById(aElems[i]);
+
+ if(elem) {
+
+ childElems = elem.getAttribute('aiosChilds');
+
+ if(childElems) {
+ childMode = !aios_getBoolean(elem, 'checked');
+ aios_toggleChilds(childElems, childMode);
+ }
+ }
+ }
+}
+
+
+/*
+ toggelt einen Menuepunkt und das/die zugehoerige/n Element/e
+ => Aufruf durch die menuitems in der aios.xul
+*/
+function aios_toggleElement(aMenuitem) {
+ var menuitem;
+
+ if(typeof aMenuitem != "object") aMenuitem = document.getElementById(aMenuitem);
+
+ if(aMenuitem.getAttribute('observes')) {
+ menuitem = document.getElementById(aMenuitem.getAttribute('observes'));
+ }
+ else {
+ menuitem = document.getElementById(aMenuitem.id);
+ }
+
+ var mode = aios_getBoolean(menuitem, 'checked');
+ var childElems = menuitem.getAttribute('aiosChilds');
+
+ menuitem.setAttribute('checked', !mode);
+ aios_toggleChilds(childElems, mode);
+}
+
+
+/*
+ toggelt Kindelemente eines Menuepunkts
+ => Aufruf durch aios_toggleElement()
+*/
+function aios_toggleChilds(childElems, childMode) {
+ var child_str, child;
+
+ if(childElems != "") {
+ var childElems_arr = childElems.split(",");
+
+ for(var i = 0; i < childElems_arr.length; i++) {
+ child_str = childElems_arr[i].replace(/ /, "");
+
+ var idChilds_arr = document.getElementsByAttribute('id', child_str);
+
+ // wenn es nur ein Element mit der ID gibt...
+ if(idChilds_arr.length == 1) {
+ child = document.getElementById(child_str);
+ }
+ // wenn es mehrere Elemente mit der ID gibt...
+ else {
+ for(var j = 0; j < idChilds_arr.length; j++) {
+ //... nimm das auf der AIOS-Toolbar
+ if(idChilds_arr[j].parentNode.id == "aios-toolbar") child = idChilds_arr[j];
+ }
+ }
+
+ if(child) child.setAttribute('hidden', childMode);
+ }
+ }
+}
+
+
+/**
+ * Tastaturkuerzel entfernen, um nicht die des Hauptbrowsers zu blockieren
+ *
+ * => Aufruf in downloads.js, pageinfo.js, console.js
+ **/
+function aios_removeAccesskeys() {
+ var keys = document.getElementsByAttribute('accesskey', '*');
+ for(var i = 0; i < keys.length; i++) {
+ keys[i].removeAttribute('accesskey')
+ }
+}
+
+
+/**
+ *
+ **/
+function aios_hideMacMenubar() {
+ if(document.getElementById('main-menubar'))
+ document.getElementById('main-menubar').style.display = "none";
}
diff --cc content/aios.js
index 6fbc670,6446207..4adcf2d
--- a/content/aios.js
+++ b/content/aios.js
@@@ -1,95 -1,89 +1,89 @@@
-var AiOS = {
-
- mainWindow: document.getElementById('main-window'),
-
-
- initOnDOMLoaded: function() {
-
- AiOS_HELPER.rememberAppInfo( AiOS.mainWindow );
-
- },
-
-
- beforeCustomization: function() {
-
- var toolbars = new Array(AiOS_HELPER.aiosToolbar, AiOS_HELPER.sbhToolbar);
-
- PlacesToolbarHelper.customizeStart();
-
- for(var i in toolbars) {
-
- toolbars[i].setAttribute('_toolbox', toolbars[i].parentNode.id);
-
- toolbars[i].setAttribute('_context', toolbars[i].getAttribute('context'));
- toolbars[i].setAttribute('context', 'toolbar-context-menu');
- toolbars[i].setAttribute('_orient', toolbars[i].getAttribute('orient'));
- toolbars[i].setAttribute('orient', 'horizontal');
- toolbars[i].setAttribute('_mode', toolbars[i].getAttribute('mode'));
- toolbars[i].setAttribute('mode', 'icons');
-
- toolbars[i].setAttribute('align', 'center');
-
- var label = document.createElement('label');
- label.setAttribute('value', toolbars[i].getAttribute('toolbarlabel'));
- toolbars[i].insertBefore(label, toolbars[i].firstChild);
-
- gNavToolbox.appendChild(toolbars[i]);
-
- }
-
- PlacesToolbarHelper.customizeDone();
-
- },
-
-
- afterCustomization: function() {
-
- var toolbars = new Array(AiOS_HELPER.aiosToolbar, AiOS_HELPER.sbhToolbar);
-
- PlacesToolbarHelper.customizeStart();
-
- for(var i in toolbars) {
-
- toolbars[i].removeChild(toolbars[i].querySelector('label'));
-
- toolbars[i].setAttribute('context', toolbars[i].getAttribute('_context'));
- toolbars[i].removeAttribute('_context');
- toolbars[i].setAttribute('orient', toolbars[i].getAttribute('_orient'));
- toolbars[i].removeAttribute('_orient');
- toolbars[i].setAttribute('mode', toolbars[i].getAttribute('_mode'));
- toolbars[i].removeAttribute('_mode');
-
- toolbars[i].removeAttribute('align');
-
- document.getElementById(toolbars[i].getAttribute('_toolbox')).appendChild(toolbars[i]);
- toolbars[i].removeAttribute('_toolbox');
-
- }
-
- PlacesToolbarHelper.customizeDone();
-
- },
-
-
- unload: function() {
- window.removeEventListener("DOMContentLoaded", AiOS.initOnDOMLoaded);
- //window.removeEventListener("load", AiOS.initOnLoad);
- window.removeEventListener("unload", AiOS.unload);
-
- gNavToolbox.removeEventListener("beforecustomization", AiOS.beforeCustomization);
- gNavToolbox.removeEventListener("aftercustomization", AiOS.afterCustomization);
- }
-
-};
-
-window.addEventListener("DOMContentLoaded", AiOS.initOnDOMLoaded, false);
-window.addEventListener("unload", AiOS.unload, false);
-
-gNavToolbox.addEventListener("beforecustomization", AiOS.beforeCustomization, false);
+var AiOS = {
+
+ mainWindow: document.getElementById('main-window'),
+
+
+ initOnDOMLoaded: function() {
+
+ AiOS_HELPER.rememberAppInfo( AiOS.mainWindow );
+
+ },
+
+
- // initOnLoad: function() {
-
- // },
-
-
+ beforeCustomization: function() {
+
+ var toolbars = new Array(AiOS_HELPER.aiosToolbar, AiOS_HELPER.sbhToolbar);
+
+ PlacesToolbarHelper.customizeStart();
+
+ for(var i in toolbars) {
+
+ toolbars[i].setAttribute('_toolbox', toolbars[i].parentNode.id);
+
+ toolbars[i].setAttribute('_context', toolbars[i].getAttribute('context'));
+ toolbars[i].setAttribute('context', 'toolbar-context-menu');
+ toolbars[i].setAttribute('_orient', toolbars[i].getAttribute('orient'));
+ toolbars[i].setAttribute('orient', 'horizontal');
+ toolbars[i].setAttribute('_mode', toolbars[i].getAttribute('mode'));
+ toolbars[i].setAttribute('mode', 'icons');
+
+ toolbars[i].setAttribute('align', 'center');
+
+ var label = document.createElement('label');
+ label.setAttribute('value', toolbars[i].getAttribute('toolbarlabel'));
+ toolbars[i].insertBefore(label, toolbars[i].firstChild);
+
+ gNavToolbox.appendChild(toolbars[i]);
+
+ }
+
+ PlacesToolbarHelper.customizeDone();
+
+ },
+
+
+ afterCustomization: function() {
+
+ var toolbars = new Array(AiOS_HELPER.aiosToolbar, AiOS_HELPER.sbhToolbar);
+
+ PlacesToolbarHelper.customizeStart();
+
+ for(var i in toolbars) {
+
+ toolbars[i].removeChild(toolbars[i].querySelector('label'));
+
+ toolbars[i].setAttribute('context', toolbars[i].getAttribute('_context'));
+ toolbars[i].removeAttribute('_context');
+ toolbars[i].setAttribute('orient', toolbars[i].getAttribute('_orient'));
+ toolbars[i].removeAttribute('_orient');
+ toolbars[i].setAttribute('mode', toolbars[i].getAttribute('_mode'));
+ toolbars[i].removeAttribute('_mode');
+
+ toolbars[i].removeAttribute('align');
+
+ document.getElementById(toolbars[i].getAttribute('_toolbox')).appendChild(toolbars[i]);
+ toolbars[i].removeAttribute('_toolbox');
+
+ }
+
+ PlacesToolbarHelper.customizeDone();
+
+ },
+
+
+ unload: function() {
+ window.removeEventListener("DOMContentLoaded", AiOS.initOnDOMLoaded);
+ //window.removeEventListener("load", AiOS.initOnLoad);
+ window.removeEventListener("unload", AiOS.unload);
+
+ gNavToolbox.removeEventListener("beforecustomization", AiOS.beforeCustomization);
+ gNavToolbox.removeEventListener("aftercustomization", AiOS.afterCustomization);
+ }
+
+};
+
+window.addEventListener("DOMContentLoaded", AiOS.initOnDOMLoaded, false);
- //window.addEventListener("load", AiOS.initOnLoad, false);
+window.addEventListener("unload", AiOS.unload, false);
+
+gNavToolbox.addEventListener("beforecustomization", AiOS.beforeCustomization, false);
gNavToolbox.addEventListener("aftercustomization", AiOS.afterCustomization, false);
diff --cc content/aios_old.js
index dbeb337,a8ea2b7..3a56093
--- a/content/aios_old.js
+++ b/content/aios_old.js
@@@ -1,816 -1,801 +1,801 @@@
-
-window.addEventListener("load", aios_initSidebar, false);
-window.addEventListener("resize", aios_checkThinSwitch, false);
-window.addEventListener("mozfullscreenchange", aios_BrowserFullScreen, false);
-
-// sonst werden neu definierte Shortcuts bei Browser-Neustart zurueckgesetzt
-extLoad.add(30, function() {
- aiosKeyconfig.loadkeys(aiosKeyconfig.prefService.getCharPref("extensions.aios.keyconf.profile"));
-});
-
-var initialised = false;
-
-var fx_mainWindow, fx_browser, fx_sidebar, fx_sidebarBox, fx_sidebarHeader, fx_sidebarSplitter, fx_sidebarMenu, fx_maximizedWindow;
-var aios_toggleBox, aios_toggleBar, aios_toggleSwitchItem, aios_toggleToolbarItem, aios_toolbar;
-var elem_switch, elem_tbb, elem_key, elem_close, elem_close2;
-
-var aios_enterFullScreen = 0;
-var aios_leaveFullScreen = 0;
-
-// Sidebar nur zusammenklappen statt schliessen
-var aios_collapseSidebar = AiOS_HELPER.prefBranchAiOS.getBoolPref('collapse');
-
-
-function aios_getObjects() {
- try {
- fx_mainWindow = document.getElementById('main-window');
- fx_browser = document.getElementById('browser');
- fx_sidebar = document.getElementById('sidebar');
- fx_sidebarBox = document.getElementById('sidebar-box');
- fx_sidebarHeader = document.getElementById('sidebar-header');
- fx_sidebarSplitter = document.getElementById('sidebar-splitter');
- fx_sidebarMenu = document.getElementById('viewSidebarMenu');
-
- aios_toggleBox = document.getElementById('aios-toggle-toolbox');
- aios_toggleBar = document.getElementById('aios-toggle-toolbar');
-
- // broadcaster in aios.xul mit gespeichertem Wunsch-Toolbar-Zustand
- // => gespeichert durch onViewToolbarCommand() in tbx.js (AiOS < 0.7.7)
- // => gespeichert/gesetzt durch aios_toggleToolbar()
- aios_toggleSwitchItem = document.getElementById('aios-viewTogglebar');
- aios_toggleToolbarItem = document.getElementById('aios-viewToolbar');
-
- aios_toolbar = document.getElementById('aios-toolbar');
-
- elem_switch = document.getElementById('aios-toggle-button');
- elem_tbb = document.getElementById('sidebars-togglebutton');
- elem_key = document.getElementById('aiosKey_sidebar');
- elem_close = document.getElementById('sidebarclose-button');
- elem_close2 = document.getElementById('sbh-sidebarclose-button');
- }
- catch(e) { }
-}
-
-
-/*
- Initialisierung
- => Aufruf durch das onload-Event
-*/
-function aios_initSidebar() {
- aios_getObjects();
-
- // MacOS X => Tastaturkuerzel ersetzen (Strg. wird durch Command ersetzt und Umschalt durch das Symbol dafuer)
- if(AiOS_HELPER.os == "Darwin") {
- aios_replaceKey('switch-tooltip-box', 'r2c2', 'command');
- aios_replaceKey('template-sidebar-tooltip-box', 'r2c2', 'command');
- aios_replaceKey('template-window-tooltip-box', 'r2c2', 'command');
- aios_replaceKey('paneltab-tooltip-box', 'r2c2', 'command');
- aios_replaceKey('paneltab-tooltip-reverse-box', 'r2c2', 'command');
- aios_replaceKey('sidebarheader-tooltip-box', 'r3c2', 'command');
-
- aios_replaceKey('switch-tooltip-box', 'r3c2', 'shift');
- aios_replaceKey('template-sidebar-tooltip-box', 'r3c2', 'shift');
- aios_replaceKey('template-window-tooltip-box', 'r3c2', 'shift');
- aios_replaceKey('paneltab-tooltip-box', 'r3c2', 'shift');
- aios_replaceKey('paneltab-tooltip-reverse-box', 'r3c2', 'shift');
- aios_replaceKey('sidebarheader-tooltip-box', 'r1c2', 'shift');
- }
-
- // Sidebar li. oder re.
- // Eigenschaftenzuweisung fuer CSS (LTR <=> RTL; Sidebar links <=> rechts)
- aios_setSidebarOrient();
-
- // beim ersten Start (bzw. nach loeschen der localstore.rdf) => ...
- if(!aios_getBoolean(fx_sidebarBox, 'aiosInit')) {
- // Icongroesse an die der Nav-Toolbar anpassen
- fx_sidebarBox.setAttribute('aiosInit', true);
- document.persist(fx_sidebarBox.id, 'aiosInit');
-
- if(aios_toolbar) aios_toolbar.setAttribute('iconsize', document.getElementById('nav-bar').getAttribute('iconsize'));
-
- // Sidebar-Breite nach Konfiguration festsetzen
- aios_setConfSidebarWidth();
- }
-
-
- // legt commands (Ziele) fuer Manager und Fenster lt. Einstellungen fest
- window.setTimeout(function() {
- aios_setTargets();
- }, 50);
-
- // Autohide-Feature initialisieren
- aios_initAutohide();
-
-
- // Sidebar nur zusammenklappen statt schliessen
- var lp;
- if(aios_collapseSidebar) {
-
- // in jedem Fall das Hidden-Attribut zuruecksetzen
- document.getElementById('sidebar-box').setAttribute('hidden', false);
-
- // wenn die Sidebar beim Start nicht geoeffnet sein soll
- // neues bzw. weiteres Fenster
- if(window.opener) {
-
- fx_sidebarBox.setAttribute('collapsed', window.opener.document.getElementById('sidebar-box').getAttribute('collapsed'));
-
- /* CollapseByStyle-Methode
- if(window.opener.document.getElementById('sidebar-box').getAttribute('style') != "")
- fx_sidebarBox.setAttribute('style', 'display:none;');
- else
- fx_sidebarBox.removeAttribute('style');*/
-
- aios_toolbar.setAttribute('hidden', window.opener.document.getElementById('aios-toolbar').getAttribute('hidden'));
- }
- // Browserstart
- else {
- //alert(aios_getBoolean('main-window', 'aiosOpen'));
- if(!aios_getBoolean('main-window', 'aiosOpen')) {
- fx_sidebarBox.setAttribute('collapsed', true);
- // CollapseByStyle-Methode fx_sidebarBox.setAttribute('style', 'display:none;');
- fx_sidebarSplitter.setAttribute('hidden', true);
- }
- }
-
- // sonst ist nach Deaktivieren/Aktivieren die Sidebar sichtbar aber leer
- lp = document.getElementById('sidebar-box').getAttribute("aiosLastPanel");
- if(aios_getBoolean(document.getElementById('main-window'), 'aiosOpen') && lp != "") {
- toggleSidebar(lp, true);
- document.getElementById('sidebar-splitter').hidden = false;
- document.getElementById('sidebar-splitter').setAttribute('state', 'open');
- }
- }
-
- // wenn es keine zuletzt geoeffnete Sidebar gibt oder diese nicht mehr existiert, dann nimm die Bookmarks
- lp = fx_sidebarBox.getAttribute("aiosLastPanel");
- if(!lp || (lp && !document.getElementById(lp))) {
- fx_sidebarBox.setAttribute("aiosLastPanel", "viewBookmarksSidebar");
- document.persist(fx_sidebarBox.id, "aiosLastPanel");
- }
-
- // Sidebar, Toolbar u. Switch beim Start gem. Einstellungen
- try {
- var sidebarInit = AiOS_HELPER.prefBranchAiOS.getCharPref('gen.init');
- var toolbarInit = AiOS_HELPER.prefBranchAiOS.getIntPref('gen.toolbar.init');
- var switchInit = AiOS_HELPER.prefBranchAiOS.getIntPref('gen.switch.init');
-
- // Sidebar beim Start oeffnen
- if(sidebarInit == "open") toggleSidebar(fx_sidebarBox.getAttribute('aiosLastPanel'), true);
-
- // Sidebar beim Start schliessen
- if(sidebarInit == "close" && !aios_isSidebarHidden()) {
- toggleSidebar();
- if(aios_collapseSidebar) {
- document.getElementById('sidebar-box').setAttribute('collapsed', true);
- // CollapseByStyle-Methode document.getElementById('sidebar-box').setAttribute('style', 'display:none;');
- }
- }
-
- // bestimmte Sidebar beim Start oeffnen
- if(sidebarInit != "rem" && sidebarInit != "open" && sidebarInit != "close") {
- if(document.getElementById(sidebarInit)) toggleSidebar(sidebarInit, true);
- }
-
- if(toolbarInit != 2) aios_toolbar.setAttribute('hidden', !toolbarInit);
- if(switchInit != 2) aios_toggleBox.setAttribute('hidden', !switchInit);
- }
- catch(e) { }
-
- // bei Doppelklick die Standardgroesse der Sidebar einstellen
- var fx_sidebarheader = document.getElementsByTagName('sidebarheader')[0];
- fx_sidebarheader.addEventListener("dblclick", function(e) {
- aios_setSidebarWidth(e);
- }, false);
-
- // Sidebars-Menue ueberwachen - noetig fuer den Fall, dass ein erster Aufruf durch das View-Menue erfolgt
- //fx_sidebarMenu.addEventListener('popupshowing', aios_modSidebarMenu, false);
-
-
- // Drag&Drop-Funktion fuer den Sidebar-Umschalter deaktivieren?
- try {
- var switchDrag = AiOS_HELPER.prefBranchAiOS.getBoolPref("gen.switch.drag");
- var switchDelay = AiOS_HELPER.prefBranchAiOS.getIntPref("gen.switch.delay");
-
- if(!switchDrag) elem_switch.removeAttribute('ondragenter');
- }
- catch(e) { }
-
- // Changelog anzeigen?
- try {
- var changelog = AiOS_HELPER.prefBranchAiOS.getCharPref('changelog');
- }
- catch(e) { }
-
- // mit einer manuell gesetzten 0 laesst sich das abschalten
- if(parseFloat(changelog) != 0) {
-
- Components.utils.import("resource://gre/modules/AddonManager.jsm");
-
- AddonManager.getAddonByID("{097d3191-e6fa-4728-9826-b533d755359d}", function(addon) {
- var aiosVersion = addon.version;
-
- if(aiosVersion && (aiosVersion != changelog)) {
-
- var aiosUpdated = (changelog != "") ? true : false;
-
- try {
- AiOS_HELPER.prefBranchAiOS.setCharPref('changelog', aiosVersion);
- var changelog_new = AiOS_HELPER.prefBranchAiOS.getCharPref('changelog');
- }
- catch(e) { }
-
- // wenn das speichern der aktuellen Version geklappt hat
- if(changelog_new === aiosVersion && gBrowser) {
- var hp = "http://www.exxile.de/aios_installed.htm?v=" + aiosVersion;
- if(aiosUpdated) hp = "http://www.exxile.de/aios_updated.htm?v=" + aiosVersion;
-
- window.setTimeout(function() {
- gBrowser.loadTabs(new Array(hp), false);
- }, 500);
- }
- }
- });
- }
-
- // vertikale Buttons?
- try {
- var vButtons = AiOS_HELPER.prefBranchAiOS.getBoolPref("vbuttons");
-
- fx_mainWindow.setAttribute('aiosVButtons', 'true');
- if(!vButtons) fx_mainWindow.setAttribute('aiosVButtons', 'false');
- document.persist(fx_mainWindow.id, 'aiosVButtons');
- }
- catch(e) { }
-
- // vertikale Bookmarkleiste?
- // Attribut der Bookmarks-Leiste entfernen. Wenn sie auf der AiOS-Toolbar platziert wird, kann man per CSS die Orientation bestimmen.
- if(document.getElementById('PlacesToolbarItems')) document.getElementById('PlacesToolbarItems').removeAttribute('orient');
-
- initialised = true;
-}
-
-
-/*
- stellt bei Doppelklick auf den Sidebarheader die Standardgroesse der Sidebar wieder her
- => Aufruf durch EventListener auf dem Header, gesetzt in aios_initSidebar()
-*/
-function aios_setSidebarWidth(event) {
- aios_getObjects();
-
- var mode = "def";
- if(event) {
- if(event.shiftKey) mode = "min";
- if(event.ctrlKey || event.metaKey) mode = "max"; // metaKey = Mac
- }
-
- try {
- var sWidthVal = AiOS_HELPER.prefBranchAiOS.getIntPref('gen.width.' + mode + 'Val');
- var sWidthUnit = AiOS_HELPER.prefBranchAiOS.getCharPref('gen.width.' + mode + 'Unit');
-
- if(sWidthUnit == "%") {
- var browserWidth = aios_getBrowserWidth();
- var compWidth = browserWidth[3];
-
- sWidthVal = parseInt(Math.round((compWidth * sWidthVal) / 100));
- }
-
- // Sidebargoesse einstellen
- fx_sidebarBox.setAttribute('width', sWidthVal);
- }
- catch(e) { }
-}
-
-
-/*
-stellt die Anzeige der Sidebar ein
- => Aufruf durch aios_initSidebar() und aios_savePrefs() in prefs.js
- => 1 = links, 2 = rechts
-*/
-function aios_setSidebarOrient() {
- aios_getObjects();
-
- try {
- // Sidebar-Ausrichtung
- var sidebarOrient = AiOS_HELPER.prefBranchAiOS.getIntPref('gen.orient');
- fx_mainWindow.setAttribute('aiosOrient', 'left');
- if(sidebarOrient == 2) fx_mainWindow.setAttribute('aiosOrient', 'right');
- //document.persist(fx_mainWindow.id, 'aiosOrient');
-
- // Links-Rechts <=> Rechts-Links
- //var cStyleWindow = document.defaultView.getComputedStyle(fx_mainWindow, '');
- fx_mainWindow.setAttribute('aiosMode', 'ltr');
- //if(typeof cStyleWindow === 'object' && typeof cStyleWindow.direction === 'string' && cStyleWindow.direction == "rtl") fx_mainWindow.setAttribute('aiosMode', 'rtl');
- //document.persist(fx_mainWindow.id, 'aiosMode');
-
- // Fix fuer MileWideBack
- if(document.getElementById('back-strip') && sidebarOrient == 2) {
- var mwb = document.getElementById('back-strip');
- var mwbParent = document.getElementById('back-strip').parentNode;
- mwbParent.removeChild(mwb);
- mwbParent.appendChild(mwb);
- }
- }
- catch(e) { }
-
- aios_setToolbarPos();
-}
-
-
-/*
- Sidebar-Status auf Veraenderungen ueberwachen
- => Aufruf durch observes-Elemente (hidden und collapsed) in 'sidebar-box'
-*/
-function aios_observeSidebar(mode) {
- aios_getObjects();
-
- // fuer den Fall, dass vor dem Oeffnen die Toolbar ausgeblendet wurde (z.B. durch Switch im Opera-Modus)
- var showToolbar = aios_getBoolean(aios_toggleToolbarItem, 'checked');
- if(showToolbar && !aios_isSidebarHidden()) aios_toggleToolbar(false);
-
- // fuer den Fall, dass vor dem Oeffnen der Switch ausgeblendet wurde (z.B. durch Startup-Verhalten)
- var showSwitch = aios_getBoolean(aios_toggleSwitchItem, 'checked');
- if(showSwitch && !aios_isSidebarHidden()) aios_toggleBox.setAttribute('hidden', false);
-
- // Grippy-Status (CSS achtet auf Attribut 'aiosOpen')
- fx_mainWindow.setAttribute('aiosOpen', !fx_sidebarBox.hidden && !fx_sidebarBox.collapsed);
- // CollapseByStyle-Methode fx_mainWindow.setAttribute('aiosOpen', !fx_sidebarBox.hidden && fx_sidebarBox.getAttribute('style') == "");
- document.persist(fx_mainWindow.id, 'aiosOpen');
-
- // Toggle-Button-Status (Button achtet auf Attribut 'checked')
- fx_sidebarBox.setAttribute('checked', !fx_sidebarBox.hidden && !fx_sidebarBox.collapsed);
- // CollapseByStyle-Methode fx_sidebarBox.setAttribute('checked', !fx_sidebarBox.hidden && fx_sidebarBox.getAttribute('style') == "");
-
- // fuer den Fall, dass vor dem Oeffnen der Grippy benutzt wurde...
- if(mode == "hidden") {
- fx_sidebarBox.removeAttribute('collapsed');
- // CollapseByStyle-Methode fx_sidebarBox.removeAttribute('style');
- fx_sidebarSplitter.removeAttribute('hidden');
-
- fx_sidebarSplitter.setAttribute('state', 'open');
- }
-}
-
-
-/*
- Letzte Sidebar merken und als persist speichern
- => Aufruf durch observes-Element in 'sidebar-box' und aios_modSidebarMenu()
-*/
-function aios_remLastSidebar() {
- aios_getObjects();
-
- var actSidebar = false;
-
- // letzte Sidebar merken und speichern
- var allSidebars = document.getElementsByAttribute('group', 'sidebar');
- for(var i = 0; i < allSidebars.length; i++) {
-
- // darf kein Element observen (Menueeintraege usw.), aber muss eine Sidebar-URL haben
- if(!allSidebars[i].getAttribute('observes') && allSidebars[i].getAttribute('sidebarurl')) {
-
- // muss eine ID haben und muss "checked" sein
- if(allSidebars[i].getAttribute('id') && aios_getBoolean(allSidebars[i], 'checked')) {
-
- // command in der "persist"-var "aiosLastPanel" speichern und zurueckgeben
- fx_sidebarBox.setAttribute("aiosLastPanel", allSidebars[i].id);
- document.persist(fx_sidebarBox.id, "aiosLastPanel");
- actSidebar = allSidebars[i].id;
-
- //fx_sidebarBox.setAttribute("sidebarcommand", allSidebars[i].id);
- //document.persist(fx_sidebarBox.id, "sidebarcommand");
-
- //fx_sidebarBox.setAttribute('src', fx_sidebar.getAttribute('src'));
- //fx_sidebar.setAttribute('src', fx_sidebarBox.getAttribute('src'));
- }
- }
- }
-
- return actSidebar;
-}
-
-
-/*
- toggelt die Sidebar im Opera-Verhalten
- => Aufruf durch aios_toggleSidebar() fuer Elemente im Opera-Verhalten
-*/
-function aios_toggleOperaMode(aForcePanel, aForceOpen) {
- aios_getObjects();
-
- var showToolbar = aios_getBoolean(aios_toggleToolbarItem, 'checked');
-
- // zu oeffnende Sidebar feststellen
- var openPanel = fx_sidebarBox.getAttribute('aiosLastPanel'); // zuletzt geoeffnete Sidebar
- if(openPanel == "") openPanel = "viewBookmarksSidebar"; // Lesezeichen wenn keine Sidebar geoeffnet war
- if(aForcePanel) openPanel = aForcePanel; // bestimmte Sidebar gewuenscht (bei jedem oeffnen)
-
- // vertikaler Toolbar-Modus
- if(aios_toolbar.orient == "vertical") {
-
- // wenn die Toolbar sichtbar ist
- if(!aios_getBoolean(aios_toolbar, 'hidden')) {
-
- // wenn die Sidebar sichtbar ist
- if(!aios_isSidebarHidden() && !aForceOpen) {
- fx_sidebarBox.setAttribute("aiosShouldOpen", true); // Zustand der Sidebar merken (sichtbar)
- document.persist(fx_sidebarBox.id, 'aiosShouldOpen');
- toggleSidebar(); // Sidebar ausblenden
- }
- else {
- fx_sidebarBox.setAttribute("aiosShouldOpen", false); // Zustand der Sidebar merken (unsichtbar)
- document.persist(fx_sidebarBox.id, 'aiosShouldOpen');
- }
-
- //aios_toolbar.setAttribute('hidden', true);
- //if(!aForceOpen) onViewToolbarCommand(true); // Toolbar ausblenden
- if(!aForceOpen) aios_toggleToolbar(true); // Toolbar ausblenden
- }
- // wenn die Toolbar nicht sichtbar ist
- else {
- if(showToolbar) // Toolbar anzeigen?
- aios_toggleToolbar(false); // Toolbar einblenden
- //onViewToolbarCommand(false); // Toolbar einblenden
- //aios_toolbar.setAttribute('hidden', false);
-
- // wenn Sidebar angezeigt werden soll (Status vor dem letzten Schliessen) oder die Toolbar abgeschaltet wurde
- if(aios_getBoolean(fx_sidebarBox, 'aiosShouldOpen') || !showToolbar) toggleSidebar(openPanel);
- }
- }
- // horizontaler Toolbar-Modus
- else {
- // wenn die Sidebar sichtbar ist
- if(!aios_isSidebarHidden()) {
- fx_sidebarBox.setAttribute("aiosShouldOpen", true); // Zustand der Sidebar merken (sichtbar)
- document.persist(fx_sidebarBox.id, 'aiosShouldOpen');
- toggleSidebar(); // Sidebar ausblenden
- }
- else {
- if(lastPanel == "") toggleSidebar(openPanel);
-
- //if(showToolbar) aios_toolbar.setAttribute('hidden', false);
- }
- }
-
-}
-
-
-/*
- klont das Firefox-Sidebar-Menue fuer die Sidebars-Buttons
- => Aufruf durch Menuebutton-Events 'onpopupshowing' aufgerufen
-*/
-function aios_getSidebarMenu(aPopup) {
-
- aios_getObjects();
-
- // Menue modifizieren (aktiven Menuepunkt deaktivieren, Ez Sidebar-Fix u.a.)
- aios_modSidebarMenu();
-
- /*var aios_sidebarMenu = fx_sidebarMenu.cloneNode(true);
- aios_sidebarMenu.setAttribute('onpopupshowing', 'aios_getSidebarMenu(this);');
- aPopup.parentNode.replaceChild(aios_sidebarMenu, aPopup);*/
-
- while(aPopup.hasChildNodes()) {
- aPopup.removeChild(aPopup.firstChild);
- }
-
- for(var i = 0; i < fx_sidebarMenu.childNodes.length; i++) {
- aPopup.appendChild(fx_sidebarMenu.childNodes[i].cloneNode(true));
- }
-}
-
-
-/*
- schliesst die Sidebar, wenn die Maus den Content-Bereich ueberfaehrt
- => Aufruf durch mouse-over des 'appcontent' und des Sidebar-Switches (mit Uebergabe von mode)
-
- => aios_initSidebar() fuegt dem Object "sidebar-box" einen mouse-over-Event hinzu,...
- => dieser mouse-over-Event fuegt dem "appcontent" einen mouse-over-Event hinzu,...
- => der diese Funktion aufruft
-*/
-var aios_autoTimeout;
-function aios_autoShowHide(mode) {
- //try {
- var autobutton = aios_getBoolean('aios-enableAutohide', 'checked');
-
- var autoshow = AiOS_HELPER.prefBranchAiOS.getBoolPref('gen.switch.autoshow');
- var onlymax = AiOS_HELPER.prefBranchAiOS.getBoolPref('gen.switch.onlymax');
- var delay = AiOS_HELPER.prefBranchAiOS.getIntPref('gen.switch.delay');
- var hidemethod = AiOS_HELPER.prefBranchAiOS.getIntPref('gen.switch.hidemethod');
-
- //alert(mode);
-
- // Feature nicht aktiviert, Feature soll nur bei max. Fenster greifen, Fenster hat nicht den Focus
- if(!autoshow || !autobutton || (onlymax && !aios_isWinMax()) || !aiosFocus) return false;
-
- /*
- * Ausloesung durch den Umschalter
- **/
- if(mode == "switch") {
- // wenn Sidebar sichtbar und nicht ausgeblendet werden soll => ignorieren
- if(!aios_isSidebarHidden() && hidemethod == 1) return false;
-
- // nach bestimmter Zeit ein-/ausblenden
- aios_autoTimeout = window.setTimeout(function() {
- aios_toggleSidebar('switch');
- }, delay);
-
- // timeout wieder loeschen, wenn die Maus zu kurz auf dem Umschalter war oder geklickt wurde
- elem_switch.addEventListener("mouseout", function(){
- window.clearTimeout(aios_autoTimeout);
- }, true);
- elem_switch.addEventListener("click", function(){
- window.clearTimeout(aios_autoTimeout);
- }, true);
-
- return true;
- }
- /*
- * Ausloesung durch den Contentbereich
- **/
- else {
-
- // wenn Sidebar sichtbar und ausgeblendet werden soll
- // mode.originalTarget.parentNode.id != "" => behebt Kompatibilitaetsproblem mit TabSidebar (Sidebar wird bei Rollover des SidebarTabs ausgeblendet)
-
- // macht scheinbar Probleme, weil der Event auf appcontent nicht (immer) geloescht wird => TabSidebar wird nicht weiterentwickelt
- //if(!aios_isSidebarHidden() && hidemethod == 1 && mode.originalTarget.parentNode.id != "") {
- if(!aios_isSidebarHidden() && hidemethod == 1) {
-
- // Event auf "appcontent" wieder loeschen, weil sonst die Sidebar wieder eingeblendet wuerde
- // => mouse-over der Sidebar (in aios_initSidebar()) fuegt dem "appcontent" dieses Feature wieder hinzu
- document.getElementById('appcontent').removeEventListener("mouseover", aios_autoShowHide, true);
-
- // nach bestimmter Zeit ausblenden
- aios_autoTimeout = window.setTimeout(function() {
- aios_toggleSidebar('switch');
- }, delay);
-
- // timeout wieder loeschen, wenn die Maus zurueck in die Sidebar kommt
- fx_sidebarBox.addEventListener("mouseover", function(){
- window.clearTimeout(aios_autoTimeout);
- }, true);
- }
- }
- //}
- //catch(e) { }
-
- return true;
-}
-
-
-/*
- aktiviert/deaktiviert die Sidebar/Toolbar/Switch je nach Element und Einstellungen
- => Aufruf durch Toggle-Button, Switch, Shortcut, Open/Close-Menuitems, Sidebar-Close-Button
- => mode 1: nur die Sidebar oeffnen/schliessen
- => mode 2: Sidebar und Toolbar oeffnen/schliessen
- => mode 3: Sidebar, Toolbar und Togglebar oeffnen/schliessen
- => mode 4: Opera-Verhalten
-*/
-function aios_toggleSidebar(aMode, aForceOpen) {
- aios_getObjects();
- //aForceOpen = false; // erlaubt das automatische ein-/ausblenden waehrend Drag auf Sidebar Switch
-
- var prefstring = "key";
- if(aMode == elem_switch || aMode == "switch") prefstring = "switch";
- if(aMode == elem_tbb || aMode == "tbb") prefstring = "tbb";
- if(aMode == elem_close || aMode == elem_close2 || aMode == "close") prefstring = "close";
-
- try {
- var mode = AiOS_HELPER.prefBranchAiOS.getIntPref('cmode.' + prefstring);
- var toolBox_enabled = aios_getBoolean('aios-viewToolbar', 'checked');
- var toggleBox_enabled = aios_getBoolean(aios_toggleSwitchItem, 'checked');
-
- // direkte Uebergabe per JavaScript z.B. per "Custom Buttons"
- if(aMode === 1) mode = 1;
- if(aMode === 2) mode = 2;
- if(aMode === 3) mode = 3;
- if(aMode === 4) mode = 4;
-
-
- // bestimmtes Panel laden?
- var forcePanel;
- var openPanel = AiOS_HELPER.prefBranchAiOS.getCharPref("gen.open.init");
- if(openPanel != "rem" && (prefstring == "key" || prefstring == "switch" || prefstring == "tbb")) forcePanel = openPanel;
- else forcePanel = false;
-
- if(mode == 4) {
- aios_toggleOperaMode(forcePanel, aForceOpen);
- }
- else {
- // wenn Sidebar Collpasing aktiviert ist...
- // ein bestimmtes Panel grundsaetzlich geoeffnet werden soll...
- // es aber noch nicht geoeffnet ist...
- // die Sidebar aber noch geoeffnet ist...
- // dann soll das Panel zwar geladen, die Sidebar aber dennoch geschlossen werden => reiner Performance-Zweck
- if(aios_collapseSidebar && forcePanel && fx_sidebarBox.getAttribute('aiosLastPanel') != forcePanel && !aios_isSidebarHidden()) var closeNow = true;
-
- var tmpcmd = (forcePanel) ? forcePanel : fx_sidebarBox.getAttribute('aiosLastPanel');
- toggleSidebar(tmpcmd, aForceOpen);
-
- // Sidebar schliessen, wenn die obigen Bedingungen erfuellt sind
- if(closeNow) toggleSidebar(tmpcmd, aForceOpen);
-
-
- if((mode == 2 || mode == 3) && toolBox_enabled) {
- //aios_toolbar.setAttribute('hidden', aios_isSidebarHidden());
- //onViewToolbarCommand(aios_isSidebarHidden());
- aios_toggleToolbar(aios_isSidebarHidden());
- }
-
- if(mode == 3 && toggleBox_enabled)
- aios_toggleBox.setAttribute('hidden', aios_isSidebarHidden());
- }
- }
- catch(e) { }
-
- return true;
-}
-
-
-/*
- Sidebar-Toggle per collapsed
- => Aufruf durch den Grippy selbst bei onClick()
-*/
-function aios_useGrippy() {
- fx_sidebarBox.collapsed = !fx_sidebarBox.collapsed;
-
- // Fix fuer Win Vista & 7: aiosOpen wird durch fehlenden Aufruf von aios_observeSidebar nicht gesetzt
- // aios_observeSidebar wird eigentlich durch Observer der sidebar-box aufgerufen, k.A. warum hier nicht
- if(AiOS_HELPER.os == "WINNT" && AiOS_HELPER.osVersion.indexOf("5.1") == -1) aios_observeSidebar(true);
-
- /* CollapseByStyle-Methode
- if(fx_sidebarBox.getAttribute('style') != "") fx_sidebarBox.removeAttribute('style');
- else fx_sidebarBox.setAttribute('style', 'display:none;')*/
-}
-
-
-/*
- aktiviert/deaktiviert den schmalen Sidebar-Umschalter
- => Aufruf durch Event-Listener "onresize", observer (sizemode) in tbx.xul,
- aios_BrowserFullScreen() und aios_savePrefs() in prefs.js
-*/
-function aios_checkThinSwitch() {
- if(!initialised) return;
-
- aios_getObjects();
-
- var thin_switch, thinmax_switch, switch_width, switch_twidth, athin_switch;
-
- try {
- thin_switch = AiOS_HELPER.prefBranchAiOS.getBoolPref('gen.switch.thin');
- thinmax_switch = AiOS_HELPER.prefBranchAiOS.getBoolPref('gen.switch.thinmax');
-
- switch_width = AiOS_HELPER.prefBranchAiOS.getIntPref('gen.switch.width');
- switch_twidth = AiOS_HELPER.prefBranchAiOS.getIntPref('gen.switch.twidth');
-
- // soll er schmal sein?
- var thin = thin_switch;
- if(thin_switch && thinmax_switch && !aios_isWinMax()) thin = false;
-
- var width_val = (thin) ? switch_twidth : switch_width;
- var barStyle = "min-width: " + width_val + "px; max-width: " + width_val + "px;";
-
- if(width_val < 4) elem_switch.setAttribute('style', 'background-image: none;');
- else elem_switch.setAttribute('style', '');
-
- if(width_val < 2) barStyle += " border: none;";
- aios_toggleBar.setAttribute('style', barStyle);
- }
- catch(e) { }
-}
-
-
-/*
- Steuerung der Mausaktionen des Sidebar-Umschalters
- => Aufruf durch onClick() des Umschalters
-*/
-function aios_controlSwitch(ev, which) {
-
- // Linksklick => metaKey = Mac
- if(ev.button == 0 && (!ev.shiftKey && !ev.ctrlKey && !ev.metaKey)) {
- aios_toggleSidebar(which);
- }
-
- // Mittelklick / Ctrl+Linksklick => metaKey = Mac
- if(ev.button == 1 || (ev.button == 0 && ev.ctrlKey) || (ev.button == 0 && ev.metaKey)) {
- aios_toggleElement('aios-viewToolbar');
- aios_toggleToolbar('aios-viewToolbar');
- }
-
- // Rechtsklick / Shift+Linksklick
- if(ev.button == 2 || (ev.button == 0 && ev.shiftKey)) {
- if(aios_isSidebarHidden()) toggleSidebar(fx_sidebarBox.getAttribute('aiosLastPanel'), true);
- else toggleSidebar();
- }
-}
-
-
-/*
- Erweitert die FF-Funktion BrowserFullScreen() zur Steuerung der AIOS-Elemente
- => Aufruf durch aios_initSidebar()
-*/
-function aios_BrowserFullScreen() {
- aios_getObjects();
-
- try {
- var enable_restore = AiOS_HELPER.prefBranchAiOS.getBoolPref('fs.restore');
- }
- catch(e) {
- return false;
- }
-
- // Fullscreen an
- // => Elemente ausblenden
- if(document.mozFullScreenElement) {
-
- // Fix für mehrmaliges feuern des mozfullscreenchange events
- aios_leaveFullScreen = 0;
- aios_enterFullScreen++;
- if(aios_enterFullScreen > 1) return;
-
- try {
- // Soll-Zustaende
- var close_switch = AiOS_HELPER.prefBranchAiOS.getBoolPref('fs.switch');
- var close_toolbar = AiOS_HELPER.prefBranchAiOS.getBoolPref('fs.toolbar');
- var close_sidebar = AiOS_HELPER.prefBranchAiOS.getBoolPref('fs.sidebar');
-
- // Ist-Zustaende
- var rem_switchHidden = aios_getBoolean(aios_toggleBox, 'hidden');
- var rem_toolbarHidden = aios_getBoolean(aios_toolbar, 'hidden');
- var rem_sidebarHidden = aios_isSidebarHidden();
- }
- catch(e) {
- return false;
- }
-
- // Ist-Zustaende speichern
- aios_toggleBox.setAttribute('fsSwitch', rem_switchHidden);
- aios_toggleBox.setAttribute('fsToolbar', rem_toolbarHidden);
- aios_toggleBox.setAttribute('fsToolbarMode', aios_toolbar.getAttribute("mode"));
- aios_toggleBox.setAttribute('fsToolbarIconsize', aios_toolbar.getAttribute("iconsize"));
- aios_toggleBox.setAttribute('fsSidebar', rem_sidebarHidden);
-
- // Soll-Zustaende herstellen (SidebarSwitch und Toolbar werden standardmaessig ausgeblendet)
- if(close_sidebar && !rem_sidebarHidden) toggleSidebar();
-
- aios_toggleBar.setAttribute("moz-collapsed", false);
- if(close_switch && !rem_switchHidden) aios_toggleBox.hidden = true;
-
- document.getElementById('aios-sbhtoolbar').setAttribute("moz-collapsed", false);
-
- aios_toolbar.setAttribute("moz-collapsed", false);
- //if(close_toolbar && !rem_toolbarHidden) onViewToolbarCommand(true);
- if(close_toolbar && !rem_toolbarHidden) aios_toggleToolbar(true);
-
- // Toolbar fuer Fullscreen einstellen (nur ohne die Erweiterung Autohide)
- if(typeof autoHIDE != "object") {
- aios_toolbar.setAttribute("mode", "icons");
- aios_toolbar.setAttribute("iconsize", "small");
- }
- }
- // Fullscreen aus
- // => Elemente einblenden
- else {
-
- // Fix für mehrmaliges feuern des mozfullscreenchange events
- aios_enterFullScreen = 0;
- aios_leaveFullScreen++;
- if(aios_leaveFullScreen > 1) return;
-
- // Toolbareinstellungen wiederherstellen (nur ohne die Erweiterung Autohide)
- if(typeof autoHIDE != "object") {
- aios_toolbar.setAttribute("mode", aios_toggleBox.getAttribute('fsToolbarMode'));
- aios_toolbar.setAttribute("iconsize", aios_toggleBox.getAttribute('fsToolbarIconsize'));
- }
-
- if(enable_restore) {
- if(!aios_getBoolean(aios_toggleBox, 'fsSidebar')) toggleSidebar(fx_sidebarBox.getAttribute('aiosLastPanel'), true);
- else if(!aios_isSidebarHidden()) toggleSidebar();
-
- //onViewToolbarCommand(aios_getBoolean(aios_toggleBox, 'fsToolbar'));
- aios_toggleToolbar(aios_getBoolean(aios_toggleBox, 'fsToolbar'));
- aios_toggleBox.hidden = aios_getBoolean(aios_toggleBox, 'fsSwitch');
- }
- }
-
- // aktiviert/deaktiviert den schmalen Sidebar-Umschalter
- aios_checkThinSwitch();
-
- aios_adjustToolboxWidth(false);
-
- return true;
+
- // dem Sidebarheader eine ID zuweisen => dann per CSS ansprechbar (bei load oder DOMContentLoaded zu spaet)
- //top.document.getElementById("sidebar-throbber").parentNode.setAttribute('id', 'sidebar-header');
-
+window.addEventListener("load", aios_initSidebar, false);
+window.addEventListener("resize", aios_checkThinSwitch, false);
+window.addEventListener("mozfullscreenchange", aios_BrowserFullScreen, false);
+
+// sonst werden neu definierte Shortcuts bei Browser-Neustart zurueckgesetzt
+extLoad.add(30, function() {
+ aiosKeyconfig.loadkeys(aiosKeyconfig.prefService.getCharPref("extensions.aios.keyconf.profile"));
+});
+
+var initialised = false;
+
+var fx_mainWindow, fx_browser, fx_sidebar, fx_sidebarBox, fx_sidebarHeader, fx_sidebarSplitter, fx_sidebarMenu, fx_maximizedWindow;
+var aios_toggleBox, aios_toggleBar, aios_toggleSwitchItem, aios_toggleToolbarItem, aios_toolbar;
+var elem_switch, elem_tbb, elem_key, elem_close, elem_close2;
+
+var aios_enterFullScreen = 0;
+var aios_leaveFullScreen = 0;
+
+// Sidebar nur zusammenklappen statt schliessen
+var aios_collapseSidebar = AiOS_HELPER.prefBranchAiOS.getBoolPref('collapse');
+
+
+function aios_getObjects() {
+ try {
+ fx_mainWindow = document.getElementById('main-window');
+ fx_browser = document.getElementById('browser');
+ fx_sidebar = document.getElementById('sidebar');
+ fx_sidebarBox = document.getElementById('sidebar-box');
+ fx_sidebarHeader = document.getElementById('sidebar-header');
+ fx_sidebarSplitter = document.getElementById('sidebar-splitter');
+ fx_sidebarMenu = document.getElementById('viewSidebarMenu');
+
+ aios_toggleBox = document.getElementById('aios-toggle-toolbox');
+ aios_toggleBar = document.getElementById('aios-toggle-toolbar');
+
+ // broadcaster in aios.xul mit gespeichertem Wunsch-Toolbar-Zustand
+ // => gespeichert durch onViewToolbarCommand() in tbx.js (AiOS < 0.7.7)
+ // => gespeichert/gesetzt durch aios_toggleToolbar()
+ aios_toggleSwitchItem = document.getElementById('aios-viewTogglebar');
+ aios_toggleToolbarItem = document.getElementById('aios-viewToolbar');
+
+ aios_toolbar = document.getElementById('aios-toolbar');
+
+ elem_switch = document.getElementById('aios-toggle-button');
+ elem_tbb = document.getElementById('sidebars-togglebutton');
+ elem_key = document.getElementById('aiosKey_sidebar');
+ elem_close = document.getElementById('sidebarclose-button');
+ elem_close2 = document.getElementById('sbh-sidebarclose-button');
+ }
+ catch(e) { }
+}
+
+
+/*
+ Initialisierung
+ => Aufruf durch das onload-Event
+*/
+function aios_initSidebar() {
+ aios_getObjects();
+
- // Toolbarbuttons in der Sidebarheader Toolbar ohne Button-Gedoens anzeigen
- /*for(var i = 0; i < document.getElementById('aios-sbhtoolbar').childNodes.length; i++) {
- aios_stripClass(document.getElementById('aios-sbhtoolbar').childNodes[i], 'toolbarbutton-1');
- }*/
-
+ // MacOS X => Tastaturkuerzel ersetzen (Strg. wird durch Command ersetzt und Umschalt durch das Symbol dafuer)
+ if(AiOS_HELPER.os == "Darwin") {
+ aios_replaceKey('switch-tooltip-box', 'r2c2', 'command');
+ aios_replaceKey('template-sidebar-tooltip-box', 'r2c2', 'command');
+ aios_replaceKey('template-window-tooltip-box', 'r2c2', 'command');
+ aios_replaceKey('paneltab-tooltip-box', 'r2c2', 'command');
+ aios_replaceKey('paneltab-tooltip-reverse-box', 'r2c2', 'command');
+ aios_replaceKey('sidebarheader-tooltip-box', 'r3c2', 'command');
+
+ aios_replaceKey('switch-tooltip-box', 'r3c2', 'shift');
+ aios_replaceKey('template-sidebar-tooltip-box', 'r3c2', 'shift');
+ aios_replaceKey('template-window-tooltip-box', 'r3c2', 'shift');
+ aios_replaceKey('paneltab-tooltip-box', 'r3c2', 'shift');
+ aios_replaceKey('paneltab-tooltip-reverse-box', 'r3c2', 'shift');
+ aios_replaceKey('sidebarheader-tooltip-box', 'r1c2', 'shift');
+ }
+
+ // Sidebar li. oder re.
+ // Eigenschaftenzuweisung fuer CSS (LTR <=> RTL; Sidebar links <=> rechts)
+ aios_setSidebarOrient();
+
+ // beim ersten Start (bzw. nach loeschen der localstore.rdf) => ...
+ if(!aios_getBoolean(fx_sidebarBox, 'aiosInit')) {
+ // Icongroesse an die der Nav-Toolbar anpassen
+ fx_sidebarBox.setAttribute('aiosInit', true);
+ document.persist(fx_sidebarBox.id, 'aiosInit');
+
+ if(aios_toolbar) aios_toolbar.setAttribute('iconsize', document.getElementById('nav-bar').getAttribute('iconsize'));
+
+ // Sidebar-Breite nach Konfiguration festsetzen
+ aios_setConfSidebarWidth();
+ }
+
+
- // Sidebarheader-Symbolleiste aus der Navigations-Symbolleiste in den Sidebarheader verschieben
- // wenn die Symbolleiste gleich im Header waere, wuerden keine Icons angezeigt werden, wenn die Sidebar beim Start geschlossen ist
- //document.getElementById('aios-sbhtoolbox').appendChild(document.getElementById('aios-sbhtoolbar'));
-
-
+ // legt commands (Ziele) fuer Manager und Fenster lt. Einstellungen fest
+ window.setTimeout(function() {
+ aios_setTargets();
+ }, 50);
+
+ // Autohide-Feature initialisieren
+ aios_initAutohide();
+
+
+ // Sidebar nur zusammenklappen statt schliessen
+ var lp;
+ if(aios_collapseSidebar) {
+
+ // in jedem Fall das Hidden-Attribut zuruecksetzen
+ document.getElementById('sidebar-box').setAttribute('hidden', false);
+
+ // wenn die Sidebar beim Start nicht geoeffnet sein soll
+ // neues bzw. weiteres Fenster
+ if(window.opener) {
+
+ fx_sidebarBox.setAttribute('collapsed', window.opener.document.getElementById('sidebar-box').getAttribute('collapsed'));
+
+ /* CollapseByStyle-Methode
+ if(window.opener.document.getElementById('sidebar-box').getAttribute('style') != "")
+ fx_sidebarBox.setAttribute('style', 'display:none;');
+ else
+ fx_sidebarBox.removeAttribute('style');*/
+
+ aios_toolbar.setAttribute('hidden', window.opener.document.getElementById('aios-toolbar').getAttribute('hidden'));
+ }
+ // Browserstart
+ else {
+ //alert(aios_getBoolean('main-window', 'aiosOpen'));
+ if(!aios_getBoolean('main-window', 'aiosOpen')) {
+ fx_sidebarBox.setAttribute('collapsed', true);
+ // CollapseByStyle-Methode fx_sidebarBox.setAttribute('style', 'display:none;');
+ fx_sidebarSplitter.setAttribute('hidden', true);
+ }
+ }
+
+ // sonst ist nach Deaktivieren/Aktivieren die Sidebar sichtbar aber leer
+ lp = document.getElementById('sidebar-box').getAttribute("aiosLastPanel");
+ if(aios_getBoolean(document.getElementById('main-window'), 'aiosOpen') && lp != "") {
+ toggleSidebar(lp, true);
+ document.getElementById('sidebar-splitter').hidden = false;
+ document.getElementById('sidebar-splitter').setAttribute('state', 'open');
+ }
+ }
+
+ // wenn es keine zuletzt geoeffnete Sidebar gibt oder diese nicht mehr existiert, dann nimm die Bookmarks
+ lp = fx_sidebarBox.getAttribute("aiosLastPanel");
+ if(!lp || (lp && !document.getElementById(lp))) {
+ fx_sidebarBox.setAttribute("aiosLastPanel", "viewBookmarksSidebar");
+ document.persist(fx_sidebarBox.id, "aiosLastPanel");
+ }
+
+ // Sidebar, Toolbar u. Switch beim Start gem. Einstellungen
+ try {
+ var sidebarInit = AiOS_HELPER.prefBranchAiOS.getCharPref('gen.init');
+ var toolbarInit = AiOS_HELPER.prefBranchAiOS.getIntPref('gen.toolbar.init');
+ var switchInit = AiOS_HELPER.prefBranchAiOS.getIntPref('gen.switch.init');
+
+ // Sidebar beim Start oeffnen
+ if(sidebarInit == "open") toggleSidebar(fx_sidebarBox.getAttribute('aiosLastPanel'), true);
+
+ // Sidebar beim Start schliessen
+ if(sidebarInit == "close" && !aios_isSidebarHidden()) {
+ toggleSidebar();
+ if(aios_collapseSidebar) {
+ document.getElementById('sidebar-box').setAttribute('collapsed', true);
+ // CollapseByStyle-Methode document.getElementById('sidebar-box').setAttribute('style', 'display:none;');
+ }
+ }
+
+ // bestimmte Sidebar beim Start oeffnen
+ if(sidebarInit != "rem" && sidebarInit != "open" && sidebarInit != "close") {
+ if(document.getElementById(sidebarInit)) toggleSidebar(sidebarInit, true);
+ }
+
+ if(toolbarInit != 2) aios_toolbar.setAttribute('hidden', !toolbarInit);
+ if(switchInit != 2) aios_toggleBox.setAttribute('hidden', !switchInit);
+ }
+ catch(e) { }
+
+ // bei Doppelklick die Standardgroesse der Sidebar einstellen
+ var fx_sidebarheader = document.getElementsByTagName('sidebarheader')[0];
+ fx_sidebarheader.addEventListener("dblclick", function(e) {
+ aios_setSidebarWidth(e);
+ }, false);
+
+ // Sidebars-Menue ueberwachen - noetig fuer den Fall, dass ein erster Aufruf durch das View-Menue erfolgt
+ //fx_sidebarMenu.addEventListener('popupshowing', aios_modSidebarMenu, false);
+
- // Sidebar-Ladezustand ueberwachen
- /*document.getElementById('sidebar').addProgressListener(aiosSBListener, Components.interfaces.nsIWebProgress.NOTIFY_STATE_DOCUMENT);*/
+
+ // Drag&Drop-Funktion fuer den Sidebar-Umschalter deaktivieren?
+ try {
+ var switchDrag = AiOS_HELPER.prefBranchAiOS.getBoolPref("gen.switch.drag");
+ var switchDelay = AiOS_HELPER.prefBranchAiOS.getIntPref("gen.switch.delay");
+
+ if(!switchDrag) elem_switch.removeAttribute('ondragenter');
+ }
+ catch(e) { }
+
+ // Changelog anzeigen?
+ try {
+ var changelog = AiOS_HELPER.prefBranchAiOS.getCharPref('changelog');
+ }
+ catch(e) { }
+
+ // mit einer manuell gesetzten 0 laesst sich das abschalten
+ if(parseFloat(changelog) != 0) {
+
+ Components.utils.import("resource://gre/modules/AddonManager.jsm");
+
+ AddonManager.getAddonByID("{097d3191-e6fa-4728-9826-b533d755359d}", function(addon) {
+ var aiosVersion = addon.version;
+
+ if(aiosVersion && (aiosVersion != changelog)) {
+
+ var aiosUpdated = (changelog != "") ? true : false;
+
+ try {
+ AiOS_HELPER.prefBranchAiOS.setCharPref('changelog', aiosVersion);
+ var changelog_new = AiOS_HELPER.prefBranchAiOS.getCharPref('changelog');
+ }
+ catch(e) { }
+
+ // wenn das speichern der aktuellen Version geklappt hat
+ if(changelog_new === aiosVersion && gBrowser) {
+ var hp = "http://www.exxile.de/aios_installed.htm?v=" + aiosVersion;
+ if(aiosUpdated) hp = "http://www.exxile.de/aios_updated.htm?v=" + aiosVersion;
+
+ window.setTimeout(function() {
+ gBrowser.loadTabs(new Array(hp), false);
+ }, 500);
+ }
+ }
+ });
+ }
+
+ // vertikale Buttons?
+ try {
+ var vButtons = AiOS_HELPER.prefBranchAiOS.getBoolPref("vbuttons");
+
+ fx_mainWindow.setAttribute('aiosVButtons', 'true');
+ if(!vButtons) fx_mainWindow.setAttribute('aiosVButtons', 'false');
+ document.persist(fx_mainWindow.id, 'aiosVButtons');
+ }
+ catch(e) { }
+
+ // vertikale Bookmarkleiste?
+ // Attribut der Bookmarks-Leiste entfernen. Wenn sie auf der AiOS-Toolbar platziert wird, kann man per CSS die Orientation bestimmen.
+ if(document.getElementById('PlacesToolbarItems')) document.getElementById('PlacesToolbarItems').removeAttribute('orient');
+
+ initialised = true;
+}
+
+
+/*
+ stellt bei Doppelklick auf den Sidebarheader die Standardgroesse der Sidebar wieder her
+ => Aufruf durch EventListener auf dem Header, gesetzt in aios_initSidebar()
+*/
+function aios_setSidebarWidth(event) {
+ aios_getObjects();
+
+ var mode = "def";
+ if(event) {
+ if(event.shiftKey) mode = "min";
+ if(event.ctrlKey || event.metaKey) mode = "max"; // metaKey = Mac
+ }
+
+ try {
+ var sWidthVal = AiOS_HELPER.prefBranchAiOS.getIntPref('gen.width.' + mode + 'Val');
+ var sWidthUnit = AiOS_HELPER.prefBranchAiOS.getCharPref('gen.width.' + mode + 'Unit');
+
+ if(sWidthUnit == "%") {
+ var browserWidth = aios_getBrowserWidth();
+ var compWidth = browserWidth[3];
+
+ sWidthVal = parseInt(Math.round((compWidth * sWidthVal) / 100));
+ }
+
+ // Sidebargoesse einstellen
+ fx_sidebarBox.setAttribute('width', sWidthVal);
+ }
+ catch(e) { }
+}
+
+
+/*
+stellt die Anzeige der Sidebar ein
+ => Aufruf durch aios_initSidebar() und aios_savePrefs() in prefs.js
+ => 1 = links, 2 = rechts
+*/
+function aios_setSidebarOrient() {
+ aios_getObjects();
+
+ try {
+ // Sidebar-Ausrichtung
+ var sidebarOrient = AiOS_HELPER.prefBranchAiOS.getIntPref('gen.orient');
+ fx_mainWindow.setAttribute('aiosOrient', 'left');
+ if(sidebarOrient == 2) fx_mainWindow.setAttribute('aiosOrient', 'right');
+ //document.persist(fx_mainWindow.id, 'aiosOrient');
+
+ // Links-Rechts <=> Rechts-Links
+ //var cStyleWindow = document.defaultView.getComputedStyle(fx_mainWindow, '');
+ fx_mainWindow.setAttribute('aiosMode', 'ltr');
+ //if(typeof cStyleWindow === 'object' && typeof cStyleWindow.direction === 'string' && cStyleWindow.direction == "rtl") fx_mainWindow.setAttribute('aiosMode', 'rtl');
+ //document.persist(fx_mainWindow.id, 'aiosMode');
+
+ // Fix fuer MileWideBack
+ if(document.getElementById('back-strip') && sidebarOrient == 2) {
+ var mwb = document.getElementById('back-strip');
+ var mwbParent = document.getElementById('back-strip').parentNode;
+ mwbParent.removeChild(mwb);
+ mwbParent.appendChild(mwb);
+ }
+ }
+ catch(e) { }
+
+ aios_setToolbarPos();
+}
+
+
+/*
+ Sidebar-Status auf Veraenderungen ueberwachen
+ => Aufruf durch observes-Elemente (hidden und collapsed) in 'sidebar-box'
+*/
+function aios_observeSidebar(mode) {
+ aios_getObjects();
+
+ // fuer den Fall, dass vor dem Oeffnen die Toolbar ausgeblendet wurde (z.B. durch Switch im Opera-Modus)
+ var showToolbar = aios_getBoolean(aios_toggleToolbarItem, 'checked');
+ if(showToolbar && !aios_isSidebarHidden()) aios_toggleToolbar(false);
+
+ // fuer den Fall, dass vor dem Oeffnen der Switch ausgeblendet wurde (z.B. durch Startup-Verhalten)
+ var showSwitch = aios_getBoolean(aios_toggleSwitchItem, 'checked');
+ if(showSwitch && !aios_isSidebarHidden()) aios_toggleBox.setAttribute('hidden', false);
+
+ // Grippy-Status (CSS achtet auf Attribut 'aiosOpen')
+ fx_mainWindow.setAttribute('aiosOpen', !fx_sidebarBox.hidden && !fx_sidebarBox.collapsed);
+ // CollapseByStyle-Methode fx_mainWindow.setAttribute('aiosOpen', !fx_sidebarBox.hidden && fx_sidebarBox.getAttribute('style') == "");
+ document.persist(fx_mainWindow.id, 'aiosOpen');
+
+ // Toggle-Button-Status (Button achtet auf Attribut 'checked')
+ fx_sidebarBox.setAttribute('checked', !fx_sidebarBox.hidden && !fx_sidebarBox.collapsed);
+ // CollapseByStyle-Methode fx_sidebarBox.setAttribute('checked', !fx_sidebarBox.hidden && fx_sidebarBox.getAttribute('style') == "");
+
+ // fuer den Fall, dass vor dem Oeffnen der Grippy benutzt wurde...
+ if(mode == "hidden") {
+ fx_sidebarBox.removeAttribute('collapsed');
+ // CollapseByStyle-Methode fx_sidebarBox.removeAttribute('style');
+ fx_sidebarSplitter.removeAttribute('hidden');
+
+ fx_sidebarSplitter.setAttribute('state', 'open');
+ }
+}
+
+
+/*
+ Letzte Sidebar merken und als persist speichern
+ => Aufruf durch observes-Element in 'sidebar-box' und aios_modSidebarMenu()
+*/
+function aios_remLastSidebar() {
+ aios_getObjects();
+
+ var actSidebar = false;
+
+ // letzte Sidebar merken und speichern
+ var allSidebars = document.getElementsByAttribute('group', 'sidebar');
+ for(var i = 0; i < allSidebars.length; i++) {
+
+ // darf kein Element observen (Menueeintraege usw.), aber muss eine Sidebar-URL haben
+ if(!allSidebars[i].getAttribute('observes') && allSidebars[i].getAttribute('sidebarurl')) {
+
+ // muss eine ID haben und muss "checked" sein
+ if(allSidebars[i].getAttribute('id') && aios_getBoolean(allSidebars[i], 'checked')) {
+
+ // command in der "persist"-var "aiosLastPanel" speichern und zurueckgeben
+ fx_sidebarBox.setAttribute("aiosLastPanel", allSidebars[i].id);
+ document.persist(fx_sidebarBox.id, "aiosLastPanel");
+ actSidebar = allSidebars[i].id;
+
+ //fx_sidebarBox.setAttribute("sidebarcommand", allSidebars[i].id);
+ //document.persist(fx_sidebarBox.id, "sidebarcommand");
+
+ //fx_sidebarBox.setAttribute('src', fx_sidebar.getAttribute('src'));
+ //fx_sidebar.setAttribute('src', fx_sidebarBox.getAttribute('src'));
+ }
+ }
+ }
+
+ return actSidebar;
+}
+
+
+/*
+ toggelt die Sidebar im Opera-Verhalten
+ => Aufruf durch aios_toggleSidebar() fuer Elemente im Opera-Verhalten
+*/
+function aios_toggleOperaMode(aForcePanel, aForceOpen) {
+ aios_getObjects();
+
+ var showToolbar = aios_getBoolean(aios_toggleToolbarItem, 'checked');
+
+ // zu oeffnende Sidebar feststellen
+ var openPanel = fx_sidebarBox.getAttribute('aiosLastPanel'); // zuletzt geoeffnete Sidebar
+ if(openPanel == "") openPanel = "viewBookmarksSidebar"; // Lesezeichen wenn keine Sidebar geoeffnet war
+ if(aForcePanel) openPanel = aForcePanel; // bestimmte Sidebar gewuenscht (bei jedem oeffnen)
+
+ // vertikaler Toolbar-Modus
+ if(aios_toolbar.orient == "vertical") {
+
+ // wenn die Toolbar sichtbar ist
+ if(!aios_getBoolean(aios_toolbar, 'hidden')) {
+
+ // wenn die Sidebar sichtbar ist
+ if(!aios_isSidebarHidden() && !aForceOpen) {
+ fx_sidebarBox.setAttribute("aiosShouldOpen", true); // Zustand der Sidebar merken (sichtbar)
+ document.persist(fx_sidebarBox.id, 'aiosShouldOpen');
+ toggleSidebar(); // Sidebar ausblenden
+ }
+ else {
+ fx_sidebarBox.setAttribute("aiosShouldOpen", false); // Zustand der Sidebar merken (unsichtbar)
+ document.persist(fx_sidebarBox.id, 'aiosShouldOpen');
+ }
+
+ //aios_toolbar.setAttribute('hidden', true);
+ //if(!aForceOpen) onViewToolbarCommand(true); // Toolbar ausblenden
+ if(!aForceOpen) aios_toggleToolbar(true); // Toolbar ausblenden
+ }
+ // wenn die Toolbar nicht sichtbar ist
+ else {
+ if(showToolbar) // Toolbar anzeigen?
+ aios_toggleToolbar(false); // Toolbar einblenden
+ //onViewToolbarCommand(false); // Toolbar einblenden
+ //aios_toolbar.setAttribute('hidden', false);
+
+ // wenn Sidebar angezeigt werden soll (Status vor dem letzten Schliessen) oder die Toolbar abgeschaltet wurde
+ if(aios_getBoolean(fx_sidebarBox, 'aiosShouldOpen') || !showToolbar) toggleSidebar(openPanel);
+ }
+ }
+ // horizontaler Toolbar-Modus
+ else {
+ // wenn die Sidebar sichtbar ist
+ if(!aios_isSidebarHidden()) {
+ fx_sidebarBox.setAttribute("aiosShouldOpen", true); // Zustand der Sidebar merken (sichtbar)
+ document.persist(fx_sidebarBox.id, 'aiosShouldOpen');
+ toggleSidebar(); // Sidebar ausblenden
+ }
+ else {
+ if(lastPanel == "") toggleSidebar(openPanel);
+
+ //if(showToolbar) aios_toolbar.setAttribute('hidden', false);
+ }
+ }
+
+}
+
+
+/*
+ klont das Firefox-Sidebar-Menue fuer die Sidebars-Buttons
+ => Aufruf durch Menuebutton-Events 'onpopupshowing' aufgerufen
+*/
+function aios_getSidebarMenu(aPopup) {
+
+ aios_getObjects();
+
+ // Menue modifizieren (aktiven Menuepunkt deaktivieren, Ez Sidebar-Fix u.a.)
+ aios_modSidebarMenu();
+
+ /*var aios_sidebarMenu = fx_sidebarMenu.cloneNode(true);
+ aios_sidebarMenu.setAttribute('onpopupshowing', 'aios_getSidebarMenu(this);');
+ aPopup.parentNode.replaceChild(aios_sidebarMenu, aPopup);*/
+
+ while(aPopup.hasChildNodes()) {
+ aPopup.removeChild(aPopup.firstChild);
+ }
+
+ for(var i = 0; i < fx_sidebarMenu.childNodes.length; i++) {
+ aPopup.appendChild(fx_sidebarMenu.childNodes[i].cloneNode(true));
+ }
+}
+
+
+/*
+ schliesst die Sidebar, wenn die Maus den Content-Bereich ueberfaehrt
+ => Aufruf durch mouse-over des 'appcontent' und des Sidebar-Switches (mit Uebergabe von mode)
+
+ => aios_initSidebar() fuegt dem Object "sidebar-box" einen mouse-over-Event hinzu,...
+ => dieser mouse-over-Event fuegt dem "appcontent" einen mouse-over-Event hinzu,...
+ => der diese Funktion aufruft
+*/
+var aios_autoTimeout;
+function aios_autoShowHide(mode) {
+ //try {
+ var autobutton = aios_getBoolean('aios-enableAutohide', 'checked');
+
+ var autoshow = AiOS_HELPER.prefBranchAiOS.getBoolPref('gen.switch.autoshow');
+ var onlymax = AiOS_HELPER.prefBranchAiOS.getBoolPref('gen.switch.onlymax');
+ var delay = AiOS_HELPER.prefBranchAiOS.getIntPref('gen.switch.delay');
+ var hidemethod = AiOS_HELPER.prefBranchAiOS.getIntPref('gen.switch.hidemethod');
+
+ //alert(mode);
+
+ // Feature nicht aktiviert, Feature soll nur bei max. Fenster greifen, Fenster hat nicht den Focus
+ if(!autoshow || !autobutton || (onlymax && !aios_isWinMax()) || !aiosFocus) return false;
+
+ /*
+ * Ausloesung durch den Umschalter
+ **/
+ if(mode == "switch") {
+ // wenn Sidebar sichtbar und nicht ausgeblendet werden soll => ignorieren
+ if(!aios_isSidebarHidden() && hidemethod == 1) return false;
+
+ // nach bestimmter Zeit ein-/ausblenden
+ aios_autoTimeout = window.setTimeout(function() {
+ aios_toggleSidebar('switch');
+ }, delay);
+
+ // timeout wieder loeschen, wenn die Maus zu kurz auf dem Umschalter war oder geklickt wurde
+ elem_switch.addEventListener("mouseout", function(){
+ window.clearTimeout(aios_autoTimeout);
+ }, true);
+ elem_switch.addEventListener("click", function(){
+ window.clearTimeout(aios_autoTimeout);
+ }, true);
+
+ return true;
+ }
+ /*
+ * Ausloesung durch den Contentbereich
+ **/
+ else {
+
+ // wenn Sidebar sichtbar und ausgeblendet werden soll
+ // mode.originalTarget.parentNode.id != "" => behebt Kompatibilitaetsproblem mit TabSidebar (Sidebar wird bei Rollover des SidebarTabs ausgeblendet)
+
+ // macht scheinbar Probleme, weil der Event auf appcontent nicht (immer) geloescht wird => TabSidebar wird nicht weiterentwickelt
+ //if(!aios_isSidebarHidden() && hidemethod == 1 && mode.originalTarget.parentNode.id != "") {
+ if(!aios_isSidebarHidden() && hidemethod == 1) {
+
+ // Event auf "appcontent" wieder loeschen, weil sonst die Sidebar wieder eingeblendet wuerde
+ // => mouse-over der Sidebar (in aios_initSidebar()) fuegt dem "appcontent" dieses Feature wieder hinzu
+ document.getElementById('appcontent').removeEventListener("mouseover", aios_autoShowHide, true);
+
+ // nach bestimmter Zeit ausblenden
+ aios_autoTimeout = window.setTimeout(function() {
+ aios_toggleSidebar('switch');
+ }, delay);
+
+ // timeout wieder loeschen, wenn die Maus zurueck in die Sidebar kommt
+ fx_sidebarBox.addEventListener("mouseover", function(){
+ window.clearTimeout(aios_autoTimeout);
+ }, true);
+ }
+ }
+ //}
+ //catch(e) { }
+
+ return true;
+}
+
+
+/*
+ aktiviert/deaktiviert die Sidebar/Toolbar/Switch je nach Element und Einstellungen
+ => Aufruf durch Toggle-Button, Switch, Shortcut, Open/Close-Menuitems, Sidebar-Close-Button
+ => mode 1: nur die Sidebar oeffnen/schliessen
+ => mode 2: Sidebar und Toolbar oeffnen/schliessen
+ => mode 3: Sidebar, Toolbar und Togglebar oeffnen/schliessen
+ => mode 4: Opera-Verhalten
+*/
+function aios_toggleSidebar(aMode, aForceOpen) {
+ aios_getObjects();
+ //aForceOpen = false; // erlaubt das automatische ein-/ausblenden waehrend Drag auf Sidebar Switch
+
+ var prefstring = "key";
+ if(aMode == elem_switch || aMode == "switch") prefstring = "switch";
+ if(aMode == elem_tbb || aMode == "tbb") prefstring = "tbb";
+ if(aMode == elem_close || aMode == elem_close2 || aMode == "close") prefstring = "close";
+
+ try {
+ var mode = AiOS_HELPER.prefBranchAiOS.getIntPref('cmode.' + prefstring);
+ var toolBox_enabled = aios_getBoolean('aios-viewToolbar', 'checked');
+ var toggleBox_enabled = aios_getBoolean(aios_toggleSwitchItem, 'checked');
+
+ // direkte Uebergabe per JavaScript z.B. per "Custom Buttons"
+ if(aMode === 1) mode = 1;
+ if(aMode === 2) mode = 2;
+ if(aMode === 3) mode = 3;
+ if(aMode === 4) mode = 4;
+
+
+ // bestimmtes Panel laden?
+ var forcePanel;
+ var openPanel = AiOS_HELPER.prefBranchAiOS.getCharPref("gen.open.init");
+ if(openPanel != "rem" && (prefstring == "key" || prefstring == "switch" || prefstring == "tbb")) forcePanel = openPanel;
+ else forcePanel = false;
+
+ if(mode == 4) {
+ aios_toggleOperaMode(forcePanel, aForceOpen);
+ }
+ else {
+ // wenn Sidebar Collpasing aktiviert ist...
+ // ein bestimmtes Panel grundsaetzlich geoeffnet werden soll...
+ // es aber noch nicht geoeffnet ist...
+ // die Sidebar aber noch geoeffnet ist...
+ // dann soll das Panel zwar geladen, die Sidebar aber dennoch geschlossen werden => reiner Performance-Zweck
+ if(aios_collapseSidebar && forcePanel && fx_sidebarBox.getAttribute('aiosLastPanel') != forcePanel && !aios_isSidebarHidden()) var closeNow = true;
+
+ var tmpcmd = (forcePanel) ? forcePanel : fx_sidebarBox.getAttribute('aiosLastPanel');
+ toggleSidebar(tmpcmd, aForceOpen);
+
+ // Sidebar schliessen, wenn die obigen Bedingungen erfuellt sind
+ if(closeNow) toggleSidebar(tmpcmd, aForceOpen);
+
+
+ if((mode == 2 || mode == 3) && toolBox_enabled) {
+ //aios_toolbar.setAttribute('hidden', aios_isSidebarHidden());
+ //onViewToolbarCommand(aios_isSidebarHidden());
+ aios_toggleToolbar(aios_isSidebarHidden());
+ }
+
+ if(mode == 3 && toggleBox_enabled)
+ aios_toggleBox.setAttribute('hidden', aios_isSidebarHidden());
+ }
+ }
+ catch(e) { }
+
+ return true;
+}
+
+
+/*
+ Sidebar-Toggle per collapsed
+ => Aufruf durch den Grippy selbst bei onClick()
+*/
+function aios_useGrippy() {
+ fx_sidebarBox.collapsed = !fx_sidebarBox.collapsed;
+
+ // Fix fuer Win Vista & 7: aiosOpen wird durch fehlenden Aufruf von aios_observeSidebar nicht gesetzt
+ // aios_observeSidebar wird eigentlich durch Observer der sidebar-box aufgerufen, k.A. warum hier nicht
+ if(AiOS_HELPER.os == "WINNT" && AiOS_HELPER.osVersion.indexOf("5.1") == -1) aios_observeSidebar(true);
+
+ /* CollapseByStyle-Methode
+ if(fx_sidebarBox.getAttribute('style') != "") fx_sidebarBox.removeAttribute('style');
+ else fx_sidebarBox.setAttribute('style', 'display:none;')*/
+}
+
+
+/*
+ aktiviert/deaktiviert den schmalen Sidebar-Umschalter
+ => Aufruf durch Event-Listener "onresize", observer (sizemode) in tbx.xul,
+ aios_BrowserFullScreen() und aios_savePrefs() in prefs.js
+*/
+function aios_checkThinSwitch() {
+ if(!initialised) return;
+
+ aios_getObjects();
+
+ var thin_switch, thinmax_switch, switch_width, switch_twidth, athin_switch;
+
+ try {
+ thin_switch = AiOS_HELPER.prefBranchAiOS.getBoolPref('gen.switch.thin');
+ thinmax_switch = AiOS_HELPER.prefBranchAiOS.getBoolPref('gen.switch.thinmax');
+
+ switch_width = AiOS_HELPER.prefBranchAiOS.getIntPref('gen.switch.width');
+ switch_twidth = AiOS_HELPER.prefBranchAiOS.getIntPref('gen.switch.twidth');
+
+ // soll er schmal sein?
+ var thin = thin_switch;
+ if(thin_switch && thinmax_switch && !aios_isWinMax()) thin = false;
+
+ var width_val = (thin) ? switch_twidth : switch_width;
+ var barStyle = "min-width: " + width_val + "px; max-width: " + width_val + "px;";
+
+ if(width_val < 4) elem_switch.setAttribute('style', 'background-image: none;');
+ else elem_switch.setAttribute('style', '');
+
+ if(width_val < 2) barStyle += " border: none;";
+ aios_toggleBar.setAttribute('style', barStyle);
+ }
+ catch(e) { }
+}
+
+
+/*
+ Steuerung der Mausaktionen des Sidebar-Umschalters
+ => Aufruf durch onClick() des Umschalters
+*/
+function aios_controlSwitch(ev, which) {
+
+ // Linksklick => metaKey = Mac
+ if(ev.button == 0 && (!ev.shiftKey && !ev.ctrlKey && !ev.metaKey)) {
+ aios_toggleSidebar(which);
+ }
+
+ // Mittelklick / Ctrl+Linksklick => metaKey = Mac
+ if(ev.button == 1 || (ev.button == 0 && ev.ctrlKey) || (ev.button == 0 && ev.metaKey)) {
+ aios_toggleElement('aios-viewToolbar');
+ aios_toggleToolbar('aios-viewToolbar');
+ }
+
+ // Rechtsklick / Shift+Linksklick
+ if(ev.button == 2 || (ev.button == 0 && ev.shiftKey)) {
+ if(aios_isSidebarHidden()) toggleSidebar(fx_sidebarBox.getAttribute('aiosLastPanel'), true);
+ else toggleSidebar();
+ }
+}
+
+
+/*
+ Erweitert die FF-Funktion BrowserFullScreen() zur Steuerung der AIOS-Elemente
+ => Aufruf durch aios_initSidebar()
+*/
+function aios_BrowserFullScreen() {
+ aios_getObjects();
+
+ try {
+ var enable_restore = AiOS_HELPER.prefBranchAiOS.getBoolPref('fs.restore');
+ }
+ catch(e) {
+ return false;
+ }
+
+ // Fullscreen an
+ // => Elemente ausblenden
+ if(document.mozFullScreenElement) {
+
+ // Fix für mehrmaliges feuern des mozfullscreenchange events
+ aios_leaveFullScreen = 0;
+ aios_enterFullScreen++;
+ if(aios_enterFullScreen > 1) return;
+
+ try {
+ // Soll-Zustaende
+ var close_switch = AiOS_HELPER.prefBranchAiOS.getBoolPref('fs.switch');
+ var close_toolbar = AiOS_HELPER.prefBranchAiOS.getBoolPref('fs.toolbar');
+ var close_sidebar = AiOS_HELPER.prefBranchAiOS.getBoolPref('fs.sidebar');
+
+ // Ist-Zustaende
+ var rem_switchHidden = aios_getBoolean(aios_toggleBox, 'hidden');
+ var rem_toolbarHidden = aios_getBoolean(aios_toolbar, 'hidden');
+ var rem_sidebarHidden = aios_isSidebarHidden();
+ }
+ catch(e) {
+ return false;
+ }
+
+ // Ist-Zustaende speichern
+ aios_toggleBox.setAttribute('fsSwitch', rem_switchHidden);
+ aios_toggleBox.setAttribute('fsToolbar', rem_toolbarHidden);
+ aios_toggleBox.setAttribute('fsToolbarMode', aios_toolbar.getAttribute("mode"));
+ aios_toggleBox.setAttribute('fsToolbarIconsize', aios_toolbar.getAttribute("iconsize"));
+ aios_toggleBox.setAttribute('fsSidebar', rem_sidebarHidden);
+
+ // Soll-Zustaende herstellen (SidebarSwitch und Toolbar werden standardmaessig ausgeblendet)
+ if(close_sidebar && !rem_sidebarHidden) toggleSidebar();
+
+ aios_toggleBar.setAttribute("moz-collapsed", false);
+ if(close_switch && !rem_switchHidden) aios_toggleBox.hidden = true;
+
+ document.getElementById('aios-sbhtoolbar').setAttribute("moz-collapsed", false);
+
+ aios_toolbar.setAttribute("moz-collapsed", false);
+ //if(close_toolbar && !rem_toolbarHidden) onViewToolbarCommand(true);
+ if(close_toolbar && !rem_toolbarHidden) aios_toggleToolbar(true);
+
+ // Toolbar fuer Fullscreen einstellen (nur ohne die Erweiterung Autohide)
+ if(typeof autoHIDE != "object") {
+ aios_toolbar.setAttribute("mode", "icons");
+ aios_toolbar.setAttribute("iconsize", "small");
+ }
+ }
+ // Fullscreen aus
+ // => Elemente einblenden
+ else {
+
+ // Fix für mehrmaliges feuern des mozfullscreenchange events
+ aios_enterFullScreen = 0;
+ aios_leaveFullScreen++;
+ if(aios_leaveFullScreen > 1) return;
+
+ // Toolbareinstellungen wiederherstellen (nur ohne die Erweiterung Autohide)
+ if(typeof autoHIDE != "object") {
+ aios_toolbar.setAttribute("mode", aios_toggleBox.getAttribute('fsToolbarMode'));
+ aios_toolbar.setAttribute("iconsize", aios_toggleBox.getAttribute('fsToolbarIconsize'));
+ }
+
+ if(enable_restore) {
+ if(!aios_getBoolean(aios_toggleBox, 'fsSidebar')) toggleSidebar(fx_sidebarBox.getAttribute('aiosLastPanel'), true);
+ else if(!aios_isSidebarHidden()) toggleSidebar();
+
+ //onViewToolbarCommand(aios_getBoolean(aios_toggleBox, 'fsToolbar'));
+ aios_toggleToolbar(aios_getBoolean(aios_toggleBox, 'fsToolbar'));
+ aios_toggleBox.hidden = aios_getBoolean(aios_toggleBox, 'fsSwitch');
+ }
+ }
+
+ // aktiviert/deaktiviert den schmalen Sidebar-Umschalter
+ aios_checkThinSwitch();
+
+ aios_adjustToolboxWidth(false);
+
+ return true;
}
diff --cc content/aios_tbx.js
index 987ef3d,ea7d8b4..713d854
--- a/content/aios_tbx.js
+++ b/content/aios_tbx.js
@@@ -1,323 -1,296 +1,296 @@@
-/*
- Breite der vertikalen Toolboxen freigeben bzw. festsetzen
- => Aufruf durch aios_toggleToolbar(), aios_setToolbarView(), aios_setToolbarPos(), aios_customizeToolbar() und aios_BrowserFullScreen()
- => Aufruf indirekt auch durch aios_initSidebar() => aios_setSidebarOrient() loest aios_setToolbarPos() aus
- => per JS statt CSS, weil es wegen Themes dynamisch sein muss
- */
-function aios_adjustToolboxWidth(aMode) {
- aios_getObjects();
-
- var tboxen = new Array('aios-toolbox-left', 'aios-toolbox-right');
- var tbox;
-
- // erstmal alle Festlegungen loeschen
- for(tbox in tboxen) {
- aios_gElem(tboxen[tbox]).style.minWidth = "";
- aios_gElem(tboxen[tbox]).style.width = "";
- aios_gElem(tboxen[tbox]).style.maxWidth = "";
- aios_gElem(tboxen[tbox]).removeAttribute('width');
- }
-
- // wenn noch keine Festlegungen getroffen werden sollten, diese durch rekursiven Aufruf kurze Zeit spaeter initiieren
- // verzoegerter Aufruf sichert die einwandfreie Funktion
- if(!aMode) {
-
- window.setTimeout(function() {
- aios_adjustToolboxWidth(true);
- }, 100);
-
- return false;
- }
-
- // Breiten festlegen...
- var usedToolbox;
- var aiosOrient = fx_mainWindow.getAttribute('aiosOrient');
- var posMode = aios_toolbar.getAttribute('posMode');
-
- // Toolbox je nach Sidebar-Ausrichtung waehlen
- if((aiosOrient == "left" && posMode == "1") || (aiosOrient == "right" && posMode == "2")) {
- usedToolbox = 'aios-toolbox-left';
- }
- else if((aiosOrient == "left" && posMode == "2") || (aiosOrient == "right" && posMode == "1")) {
- usedToolbox = 'aios-toolbox-right';
- }
-
- // usedToolbox ist false wenn die Toolbar innerhalb der Sidebar positioniert ist...
- if(usedToolbox) {
- var cStyle = document.defaultView.getComputedStyle(aios_gElem(usedToolbox), null);
- var myWidth = parseInt(cStyle.width) + parseInt(cStyle.paddingLeft) + parseInt(cStyle.paddingRight);
- }
-
- for(tbox in tboxen) {
- // Breite fuer verwendete Toolbox feststzen
- if(tboxen[tbox] == usedToolbox) {
- aios_gElem(tboxen[tbox]).style.minWidth = myWidth + "px";
- aios_gElem(tboxen[tbox]).style.maxWidth = myWidth + "px";
- }
- // Breite fuer nicht verwendete Toolbox auf 0px festsetzen => ansonsten skaliert die Toolbox mit der Sidebar-Skalierung
- else {
- aios_gElem(tboxen[tbox]).style.minWidth = "0px";
- aios_gElem(tboxen[tbox]).style.maxWidth = "0px";
- }
- }
-
- return true;
-}
-
-
-/*
- Ansichtoptionen der Toolbars (AiOS-Toolbar, Sidebarheader-Toolbar) initialisieren
- => Aufruf durch onpopupshowing-Handler der Kontextmenues in aios.xul
- */
-function aios_onToolbarPopupShowing(aWhich) {
- aios_getObjects();
-
- var mode;
-
- /*
- AiOS-Toolbar
- */
- if(aWhich.id == "aios-toolbar-contextmenu") {
-
- // Schaltflaechen-Modus
- mode = aios_toolbar.getAttribute('mode');
-
- switch(mode) {
- case "full":
- document.getElementById('aios-view-mitem1').setAttribute('checked', true);
- break;
- case "icons":
- document.getElementById('aios-view-mitem2').setAttribute('checked', true);
- break;
- case "full":
- document.getElementById('aios-view-mitem3').setAttribute('checked', true);
- document.getElementById('aios-view-mitem4').setAttribute('disabled', true);
- break;
- }
-
- // Icongroesse
- document.getElementById('aios-view-mitem4').setAttribute('checked', aios_toolbar.getAttribute('iconsize') == "small");
-
- // Flexible Schaltflaechen
- document.getElementById('aios-view-mitem5').setAttribute('checked', aios_toolbar.getAttribute('flexbuttons') == "true");
- }
- /*
- Sidebarheader-Toolbar
- */
- else if(aWhich.id == "aios-sbhtoolbar-contextmenu") {
-
- // Schaltflaechen-Modus => wird fuer CSS-Definitionen benoetigt
- fx_sidebarHeader.setAttribute('mode', aios_gElem("aios-sbhtoolbar").getAttribute('mode'));
-
- // Icongroesse
- document.getElementById('aios-sbhview-mitem4').setAttribute('checked', aios_gElem("aios-sbhtoolbar").getAttribute('iconsize') == "small");
- fx_sidebarHeader.setAttribute('iconsize', aios_gElem("aios-sbhtoolbar").getAttribute('iconsize'));
- }
-}
-
-
-/*
- positioniert die AiOS- und die Sidebarheader-Toolbar
- => Aufruf durch die Menueoptionen des Kontextmenues und aios_setSidebarOrient()
- => Aufruf indirekt auch durch aios_initSidebar() => aios_setSidebarOrient() loest aios_setToolbarPos() aus
- => posMode 1 = links neben der Sidebar (vertikal)
- => posMode 2 = rechts neben der Sidebar (vertikal)
- => posMode 3 = ueber dem Sidebarheader (horizontal)
- => posMode 4 = unter dem Sidebarheader (horizontal)
- => posMode 5 = unter der Sidebar (horizontal)
- */
-function aios_setToolbarPos(posMode) {
- aios_getObjects();
-
- var tbox, orient, button_flex, separator;
-
- if(!posMode) posMode = parseInt(aios_toolbar.getAttribute('posMode'));
-
- try {
- var sidebarOrient = AiOS_HELPER.prefBranchAiOS.getIntPref('gen.orient');
- }
- catch(e) { }
-
- switch(posMode) {
- case 1:
- tbox = (sidebarOrient == 1) ? "aios-toolbox-left" : "aios-toolbox-right";
- orient = "vertical";
- break;
-
- case 2:
- tbox = (sidebarOrient == 1) ? "aios-toolbox-right" : "aios-toolbox-left";
- orient = "vertical";
- break;
-
- case 3:
- tbox = "aios-toolbox-sidebartop";
- orient = "horizontal";
- break;
-
- case 4:
- tbox = "aios-toolbox-sidebartop2";
- orient = "horizontal";
- break;
-
- case 5:
- tbox = "aios-toolbox-sidebarbottom";
- orient = "horizontal";
- break;
- }
-
- aios_toolbar.setAttribute('posMode', posMode);
- aios_toolbar.setAttribute('orient', orient);
-
- document.getElementById(tbox).appendChild(aios_toolbar);
-
- aios_adjustToolboxWidth(false);
-
- document.getElementById('aios-pos-mitem' + posMode).setAttribute('checked', true);
-}
-
-
-/*
- stellt die Ansichtsoptionen der Symbolleisten ein
- => Aufruf durch die Menueoptionen der Symbolleisten-Kontextmenues
- => viewMode 1 = Symbole und Text
- => viewMode 2 = Symbole
- => viewMode 3 = Text
- => viewMode 4 = kleine Symbole an/aus
- => viewMode 5 = flexible Buttons an/aus
- */
-function aios_setToolbarView(aViewMode, aWhich) {
- aios_getObjects();
-
- var viewMode = aViewMode;
-
-
- // feststellen, welche Toolbar konfiguriert werden soll
- var elem = aWhich;
- while(elem.tagName != "menupopup") {
- elem = elem.parentNode;
- }
-
- var tbar, menuid;
-
- if(elem.id == "aios-toolbar-contextmenu") {
- tbar = aios_gElem("aios-toolbar");
- menuid = "view";
- }
- else {
- tbar = aios_gElem("aios-sbhtoolbar");
- menuid = "sbhview";
- }
-
-
- // Einstellungen vornehmen
- var set_property = "mode";
- var set_value = "full";
-
- // Modus: Symbole & Text, Symbole, Text
- if(viewMode <= 2) {
- if(viewMode == 2) set_value = "icons";
- document.getElementById('aios-'+menuid+'-mitem4').setAttribute('disabled', false);
- }
- else if(viewMode == 3) {
- set_value = "text";
- document.getElementById('aios-'+menuid+'-mitem4').setAttribute('disabled', true);
- }
-
- // Icongroesse
- if(viewMode == 4) {
- set_property = "iconsize";
- set_value = (aios_getBoolean('aios-'+menuid+'-mitem4', 'checked')) ? "small" : "large";
- }
-
- // Flexible Buttons
- if(viewMode == 5) {
- set_property = "flexbuttons";
- set_value = (aios_getBoolean('aios-'+menuid+'-mitem5', 'checked')) ? "true" : "false";
- }
-
- tbar.setAttribute(set_property, set_value);
-
-
- if(tbar == aios_gElem("aios-toolbar")) aios_adjustToolboxWidth(false);
- else fx_sidebarHeader.setAttribute(set_property, set_value);
-}
-
-
-/*
- Aktiviert/Deaktiviert die AiOS-Toolbar
- => Aufruf durch Menueoption (Ansicht > Symbolleisten)
- => Aufruf durch aios_observeSidebar(), aios_toggleOperaMode(), aios_toggleSidebar(), aios_controlSwitch(), aios_BrowserFullScreen
- */
-function aios_toggleToolbar(aWhich) {
- aios_getObjects();
-
- var mode = (typeof aWhich == "boolean") ? aWhich : !aios_getBoolean(aWhich, 'checked');
-
- aios_toolbar.hidden = mode;
-
- aios_adjustToolboxWidth(false);
-}
-
-
-/*
- fuegt dem Menue Ansicht > Symbolleisten und dem Kontextmenue der Symbolleisten eine Option hinzu
- => Aufruf durch onpopupshowing-Handler der Menues in aios.xul
- */
-function aios_addToolbarMitem(aWhich) {
- aios_getObjects();
-
- var popup = document.getElementById('viewToolbarsMenu').firstChild;
- if(aWhich.id == "toolbar-context-menu") popup = document.getElementById('toolbar-context-menu');
-
- // Menuitem erzeugen
- var menuItem = document.createElement("menuitem");
- // toolbarid = TotalToolbar-Fix => ohne wird der Eintrag mehrmals angezeigt, weil das Menue nicht korrekt entleert wird
- menuItem.setAttribute("toolbarId", 'aios-toolbar');
- menuItem.setAttribute("observes", "aios-viewToolbar");
- menuItem.setAttribute("label", aios_toolbar.getAttribute('toolbarname'));
-
- var mitems = popup.childNodes;
- for(var i = 0; i < mitems.length; i++) {
- // TotalToolbar => unnoetige/unerwuenschte Menuitems entfernen
- if(mitems[i].tagName == "menuitem") {
- if(mitems[i].getAttribute('toolbarId') == "aios-toolbar") mitems[i].parentNode.removeChild(mitems[i]);
- if(mitems[i].getAttribute('toolbarId') == "aios-sbhtoolbar") mitems[i].parentNode.removeChild(mitems[i]);
- if(mitems[i].getAttribute('label') == menuItem.getAttribute("label")) mitems[i].parentNode.removeChild(mitems[i]);
- }
-
- // ersten Separator ermitteln, um gleich den Menueeintrag direkt davor einzufuegen
- if(mitems[i].tagName == "menuseparator" && !aios_context_sep) {
- var aios_context_sep = mitems[i];
- }
- }
-
- // AiOS-Toolbar einfuegen
- popup.insertBefore(menuItem.cloneNode(true), aios_context_sep);
+/*
+ Breite der vertikalen Toolboxen freigeben bzw. festsetzen
+ => Aufruf durch aios_toggleToolbar(), aios_setToolbarView(), aios_setToolbarPos(), aios_customizeToolbar() und aios_BrowserFullScreen()
+ => Aufruf indirekt auch durch aios_initSidebar() => aios_setSidebarOrient() loest aios_setToolbarPos() aus
+ => per JS statt CSS, weil es wegen Themes dynamisch sein muss
+ */
+function aios_adjustToolboxWidth(aMode) {
+ aios_getObjects();
+
+ var tboxen = new Array('aios-toolbox-left', 'aios-toolbox-right');
+ var tbox;
+
+ // erstmal alle Festlegungen loeschen
+ for(tbox in tboxen) {
+ aios_gElem(tboxen[tbox]).style.minWidth = "";
+ aios_gElem(tboxen[tbox]).style.width = "";
+ aios_gElem(tboxen[tbox]).style.maxWidth = "";
+ aios_gElem(tboxen[tbox]).removeAttribute('width');
+ }
+
+ // wenn noch keine Festlegungen getroffen werden sollten, diese durch rekursiven Aufruf kurze Zeit spaeter initiieren
+ // verzoegerter Aufruf sichert die einwandfreie Funktion
+ if(!aMode) {
+
+ window.setTimeout(function() {
+ aios_adjustToolboxWidth(true);
+ }, 100);
+
+ return false;
+ }
+
+ // Breiten festlegen...
+ var usedToolbox;
+ var aiosOrient = fx_mainWindow.getAttribute('aiosOrient');
+ var posMode = aios_toolbar.getAttribute('posMode');
+
+ // Toolbox je nach Sidebar-Ausrichtung waehlen
+ if((aiosOrient == "left" && posMode == "1") || (aiosOrient == "right" && posMode == "2")) {
+ usedToolbox = 'aios-toolbox-left';
+ }
+ else if((aiosOrient == "left" && posMode == "2") || (aiosOrient == "right" && posMode == "1")) {
+ usedToolbox = 'aios-toolbox-right';
+ }
+
+ // usedToolbox ist false wenn die Toolbar innerhalb der Sidebar positioniert ist...
+ if(usedToolbox) {
+ var cStyle = document.defaultView.getComputedStyle(aios_gElem(usedToolbox), null);
+ var myWidth = parseInt(cStyle.width) + parseInt(cStyle.paddingLeft) + parseInt(cStyle.paddingRight);
+ }
+
+ for(tbox in tboxen) {
+ // Breite fuer verwendete Toolbox feststzen
+ if(tboxen[tbox] == usedToolbox) {
+ aios_gElem(tboxen[tbox]).style.minWidth = myWidth + "px";
+ aios_gElem(tboxen[tbox]).style.maxWidth = myWidth + "px";
+ }
+ // Breite fuer nicht verwendete Toolbox auf 0px festsetzen => ansonsten skaliert die Toolbox mit der Sidebar-Skalierung
+ else {
+ aios_gElem(tboxen[tbox]).style.minWidth = "0px";
+ aios_gElem(tboxen[tbox]).style.maxWidth = "0px";
+ }
+ }
+
+ return true;
+}
+
+
+/*
+ Ansichtoptionen der Toolbars (AiOS-Toolbar, Sidebarheader-Toolbar) initialisieren
+ => Aufruf durch onpopupshowing-Handler der Kontextmenues in aios.xul
+ */
+function aios_onToolbarPopupShowing(aWhich) {
+ aios_getObjects();
+
+ var mode;
+
+ /*
+ AiOS-Toolbar
+ */
+ if(aWhich.id == "aios-toolbar-contextmenu") {
+
+ // Schaltflaechen-Modus
+ mode = aios_toolbar.getAttribute('mode');
+
+ switch(mode) {
+ case "full":
+ document.getElementById('aios-view-mitem1').setAttribute('checked', true);
+ break;
+ case "icons":
+ document.getElementById('aios-view-mitem2').setAttribute('checked', true);
+ break;
+ case "full":
+ document.getElementById('aios-view-mitem3').setAttribute('checked', true);
+ document.getElementById('aios-view-mitem4').setAttribute('disabled', true);
+ break;
+ }
+
+ // Icongroesse
+ document.getElementById('aios-view-mitem4').setAttribute('checked', aios_toolbar.getAttribute('iconsize') == "small");
+
+ // Flexible Schaltflaechen
+ document.getElementById('aios-view-mitem5').setAttribute('checked', aios_toolbar.getAttribute('flexbuttons') == "true");
-
- /*/ keine Konfigurationsmoeglichkeiten in Mac OS X
- if(AiOS_HELPER.os == "Darwin") {
- if(document.getElementById('aios-customize-separator'))
- document.getElementById('aios-toolbar-contextmenu').removeChild(document.getElementById('aios-customize-separator'));
-
- if(document.getElementById('aios-customize-mitem'))
- document.getElementById('aios-toolbar-contextmenu').removeChild(document.getElementById('aios-customize-mitem'));
- }*/
+ }
+ /*
+ Sidebarheader-Toolbar
+ */
+ else if(aWhich.id == "aios-sbhtoolbar-contextmenu") {
+
+ // Schaltflaechen-Modus => wird fuer CSS-Definitionen benoetigt
+ fx_sidebarHeader.setAttribute('mode', aios_gElem("aios-sbhtoolbar").getAttribute('mode'));
+
+ // Icongroesse
+ document.getElementById('aios-sbhview-mitem4').setAttribute('checked', aios_gElem("aios-sbhtoolbar").getAttribute('iconsize') == "small");
+ fx_sidebarHeader.setAttribute('iconsize', aios_gElem("aios-sbhtoolbar").getAttribute('iconsize'));
-
- /*/ keine Konfigurationsmoeglichkeiten in Mac OS X
- if(AiOS_HELPER.os == "Darwin") {
- if(document.getElementById('aios-sbhcustomize-separator'))
- document.getElementById('aios-sbhtoolbar-contextmenu').removeChild(document.getElementById('aios-sbhcustomize-separator'));
-
- if(document.getElementById('aios-sbhcustomize-mitem'))
- document.getElementById('aios-sbhtoolbar-contextmenu').removeChild(document.getElementById('aios-sbhcustomize-mitem'));
- }*/
+ }
+}
+
+
+/*
+ positioniert die AiOS- und die Sidebarheader-Toolbar
+ => Aufruf durch die Menueoptionen des Kontextmenues und aios_setSidebarOrient()
+ => Aufruf indirekt auch durch aios_initSidebar() => aios_setSidebarOrient() loest aios_setToolbarPos() aus
+ => posMode 1 = links neben der Sidebar (vertikal)
+ => posMode 2 = rechts neben der Sidebar (vertikal)
+ => posMode 3 = ueber dem Sidebarheader (horizontal)
+ => posMode 4 = unter dem Sidebarheader (horizontal)
+ => posMode 5 = unter der Sidebar (horizontal)
+ */
+function aios_setToolbarPos(posMode) {
+ aios_getObjects();
+
+ var tbox, orient, button_flex, separator;
+
+ if(!posMode) posMode = parseInt(aios_toolbar.getAttribute('posMode'));
+
+ try {
+ var sidebarOrient = AiOS_HELPER.prefBranchAiOS.getIntPref('gen.orient');
+ }
+ catch(e) { }
+
+ switch(posMode) {
+ case 1:
+ tbox = (sidebarOrient == 1) ? "aios-toolbox-left" : "aios-toolbox-right";
+ orient = "vertical";
+ break;
+
+ case 2:
+ tbox = (sidebarOrient == 1) ? "aios-toolbox-right" : "aios-toolbox-left";
+ orient = "vertical";
+ break;
+
+ case 3:
+ tbox = "aios-toolbox-sidebartop";
+ orient = "horizontal";
+ break;
+
+ case 4:
+ tbox = "aios-toolbox-sidebartop2";
+ orient = "horizontal";
+ break;
+
+ case 5:
+ tbox = "aios-toolbox-sidebarbottom";
+ orient = "horizontal";
+ break;
+ }
+
+ aios_toolbar.setAttribute('posMode', posMode);
+ aios_toolbar.setAttribute('orient', orient);
+
+ document.getElementById(tbox).appendChild(aios_toolbar);
+
+ aios_adjustToolboxWidth(false);
+
+ document.getElementById('aios-pos-mitem' + posMode).setAttribute('checked', true);
+}
+
+
+/*
+ stellt die Ansichtsoptionen der Symbolleisten ein
+ => Aufruf durch die Menueoptionen der Symbolleisten-Kontextmenues
+ => viewMode 1 = Symbole und Text
+ => viewMode 2 = Symbole
+ => viewMode 3 = Text
+ => viewMode 4 = kleine Symbole an/aus
+ => viewMode 5 = flexible Buttons an/aus
+ */
+function aios_setToolbarView(aViewMode, aWhich) {
+ aios_getObjects();
+
+ var viewMode = aViewMode;
+
+
+ // feststellen, welche Toolbar konfiguriert werden soll
+ var elem = aWhich;
+ while(elem.tagName != "menupopup") {
+ elem = elem.parentNode;
+ }
+
+ var tbar, menuid;
+
+ if(elem.id == "aios-toolbar-contextmenu") {
+ tbar = aios_gElem("aios-toolbar");
+ menuid = "view";
+ }
+ else {
+ tbar = aios_gElem("aios-sbhtoolbar");
+ menuid = "sbhview";
+ }
+
+
+ // Einstellungen vornehmen
+ var set_property = "mode";
+ var set_value = "full";
+
+ // Modus: Symbole & Text, Symbole, Text
+ if(viewMode <= 2) {
+ if(viewMode == 2) set_value = "icons";
+ document.getElementById('aios-'+menuid+'-mitem4').setAttribute('disabled', false);
+ }
+ else if(viewMode == 3) {
+ set_value = "text";
+ document.getElementById('aios-'+menuid+'-mitem4').setAttribute('disabled', true);
+ }
+
+ // Icongroesse
+ if(viewMode == 4) {
+ set_property = "iconsize";
+ set_value = (aios_getBoolean('aios-'+menuid+'-mitem4', 'checked')) ? "small" : "large";
+ }
+
+ // Flexible Buttons
+ if(viewMode == 5) {
+ set_property = "flexbuttons";
+ set_value = (aios_getBoolean('aios-'+menuid+'-mitem5', 'checked')) ? "true" : "false";
+ }
+
+ tbar.setAttribute(set_property, set_value);
+
+
+ if(tbar == aios_gElem("aios-toolbar")) aios_adjustToolboxWidth(false);
+ else fx_sidebarHeader.setAttribute(set_property, set_value);
+}
+
+
+/*
+ Aktiviert/Deaktiviert die AiOS-Toolbar
+ => Aufruf durch Menueoption (Ansicht > Symbolleisten)
+ => Aufruf durch aios_observeSidebar(), aios_toggleOperaMode(), aios_toggleSidebar(), aios_controlSwitch(), aios_BrowserFullScreen
+ */
+function aios_toggleToolbar(aWhich) {
+ aios_getObjects();
+
+ var mode = (typeof aWhich == "boolean") ? aWhich : !aios_getBoolean(aWhich, 'checked');
+
+ aios_toolbar.hidden = mode;
+
- // setting (collapsed) aus aelteren Versionen (<= 0.7.8) rueckgaengig machen (war auf persist gesetzt)
- // wenn die Toolbox 'collapsed' ist (Observer der Toolbar), ist die Sidebargroesse nicht veraenderbar, wenn die Toolbar deaktiviert ist
- /*if(aios_toolbar.getAttribute('collapsed')) {
- aios_toolbar.removeAttribute('collapsed');
- document.persist(aios_toolbar.id, 'collapsed');
- }*/
-
+ aios_adjustToolboxWidth(false);
+}
+
+
+/*
+ fuegt dem Menue Ansicht > Symbolleisten und dem Kontextmenue der Symbolleisten eine Option hinzu
+ => Aufruf durch onpopupshowing-Handler der Menues in aios.xul
+ */
+function aios_addToolbarMitem(aWhich) {
+ aios_getObjects();
+
+ var popup = document.getElementById('viewToolbarsMenu').firstChild;
+ if(aWhich.id == "toolbar-context-menu") popup = document.getElementById('toolbar-context-menu');
+
+ // Menuitem erzeugen
+ var menuItem = document.createElement("menuitem");
+ // toolbarid = TotalToolbar-Fix => ohne wird der Eintrag mehrmals angezeigt, weil das Menue nicht korrekt entleert wird
+ menuItem.setAttribute("toolbarId", 'aios-toolbar');
+ menuItem.setAttribute("observes", "aios-viewToolbar");
+ menuItem.setAttribute("label", aios_toolbar.getAttribute('toolbarname'));
+
+ var mitems = popup.childNodes;
+ for(var i = 0; i < mitems.length; i++) {
+ // TotalToolbar => unnoetige/unerwuenschte Menuitems entfernen
+ if(mitems[i].tagName == "menuitem") {
+ if(mitems[i].getAttribute('toolbarId') == "aios-toolbar") mitems[i].parentNode.removeChild(mitems[i]);
+ if(mitems[i].getAttribute('toolbarId') == "aios-sbhtoolbar") mitems[i].parentNode.removeChild(mitems[i]);
+ if(mitems[i].getAttribute('label') == menuItem.getAttribute("label")) mitems[i].parentNode.removeChild(mitems[i]);
+ }
+
+ // ersten Separator ermitteln, um gleich den Menueeintrag direkt davor einzufuegen
+ if(mitems[i].tagName == "menuseparator" && !aios_context_sep) {
+ var aios_context_sep = mitems[i];
+ }
+ }
+
+ // AiOS-Toolbar einfuegen
- //popup.insertBefore(menuItem.cloneNode(true), popup.firstChild);
- //popup.insertBefore(menuItem.cloneNode(true), popup.lastChild.previousSibling);
+ popup.insertBefore(menuItem.cloneNode(true), aios_context_sep);
}
diff --cc content/pageinfo.js
index f06fc90,115a99b..966af75
--- a/content/pageinfo.js
+++ b/content/pageinfo.js
@@@ -1,342 -1,339 +1,339 @@@
-
-var aios_inSidebar = (top.document.getElementById('sidebar-box')) ? true : false;
-var aios_inTab = (AiOS_HELPER.mostRecentWindow.aiosLastSelTab) ? true : false;
-
-// Listener fuer automatische Aktualisierung hinzufuegen u. entfernen
-if(aios_inSidebar) {
- window.addEventListener("load", function(e) {
- top.gBrowser.addProgressListener(aiosProgListener);
- }, false);
-
- window.addEventListener("unload",function(e) {
- top.gBrowser.removeProgressListener(aiosProgListener);
- }, false);
-}
-
-
-
-function aios_init() {
- // Menueleiste unter Mac OS X ausblenden
- aios_hideMacMenubar();
-
- // fuer CSS-Zwecke speichern
- AiOS_HELPER.rememberAppInfo( document.getElementById('main-window') );
-
- try {
- var enable_layout = AiOS_HELPER.prefBranchAiOS.getBoolPref("pi.layout");
- var enable_layoutall = AiOS_HELPER.prefBranchAiOS.getBoolPref("pi.layoutall");
- if((enable_layout && aios_inSidebar) || enable_layoutall) aios_sidebarLayout();
- }
- catch(e) { }
-
- // Tastaturkuerzel entfernen, um nicht die des Hauptbrowsers zu blockieren
- if(aios_inSidebar) aios_removeAccesskeys();
-}
-
-
-function aios_sidebarLayout() {
- var vbox;
-
- // CSS fuer Sidebar-Optimierungen aktivieren
- aios_addCSS("pageinfo.css", "main-window");
-
- // Label der Radio-Buttons unsichtbar machen => nur wenn es Icons gibt
- var cStyle = document.defaultView.getComputedStyle(document.getElementById('generalTab'), '');
- if(cStyle.listStyleImage && cStyle.listStyleImage != "none") {
- if(document.getElementById('viewGroup')) document.getElementById('viewGroup').setAttribute("hideLabel", true);
- }
-
- // Radio-Buttons mit Tooltip
- if(document.getElementById('viewGroup')) {
- var radioChilds = document.getElementById('viewGroup').childNodes;
- for(var i = 0; i < radioChilds.length; i++) {
- if(radioChilds[i].tagName == "radio") radioChilds[i].setAttribute('tooltiptext', radioChilds[i].label);
- }
- }
-
- // Media-Panel: Save as... button umbrechen
- var hbox = document.getElementById('mediaPreviewBox').getElementsByTagName('hbox')[0];
- hbox.setAttribute('align', 'start');
- hbox.setAttribute('orient', 'vertical');
- hbox.removeChild(hbox.getElementsByTagName('spacer')[0]);
- hbox.appendChild(hbox.getElementsByTagName('vbox')[0]);
-
- // Security-Panel: Texte und Buttons umbrechen
- // Identity
- var groupbox = document.getElementById('security-identity-groupbox');
- groupbox.removeChild(groupbox.getElementsByTagName('spacer')[0]);
- groupbox.getElementsByTagName('hbox')[0].setAttribute('orient', 'vertical');
- groupbox.getElementsByTagName('hbox')[0].setAttribute('align', 'start');
-
- // History
- var historyrow = document.getElementById('security-privacy-history-label').parentNode;
- vbox = document.createElement("vbox");
- while(historyrow.childNodes.length != 0) {
- vbox.appendChild(historyrow.firstChild);
- }
- vbox.setAttribute('flex', '100');
- historyrow.appendChild(vbox);
-
- // Cookies
- var cookierow = document.getElementById('security-privacy-cookies-label').parentNode;
- vbox = document.createElement("vbox");
- while(cookierow.childNodes.length != 0) {
- vbox.appendChild(cookierow.firstChild);
- }
- vbox.setAttribute('flex', '100');
- cookierow.appendChild(vbox);
-
- // Passwords
- var pwdrow = document.getElementById('security-privacy-passwords-label').parentNode;
- vbox = document.createElement("vbox");
- while(pwdrow.childNodes.length != 0) {
- vbox.appendChild(pwdrow.firstChild);
- }
- vbox.setAttribute('flex', '100');
- pwdrow.appendChild(vbox);
-}
-
-
-// automatische Aktualisierung => Aufruf durch aiosProgListener (_helper.js)
-function aios_onLocationChange() {
- if(aios_inSidebar) {
- aios_persistSelTab();
- location.reload();
- }
-}
-
-
-function aios_onStateChange() {
- aios_onLocationChange();
-}
-
-
-// letzten selektierten Tab merken
-function aios_persistSelTab() {
- document.getElementById('main-window').setAttribute("seltab", document.getElementById('viewGroup').selectedIndex);
-}
-
-
-/* Called when PageInfo window is loaded. Arguments are:
- * window.arguments[0] - (optional) an object consisting of
- * - doc: (optional) document to use for source. if not provided,
- * the calling window's document will be used
- * - initialTab: (optional) id of the inital tab to display
- */
-function onLoadPageInfo() {
- gBundle = document.getElementById("pageinfobundle");
- gStrings.unknown = gBundle.getString("unknown");
- gStrings.notSet = gBundle.getString("notset");
- gStrings.mediaImg = gBundle.getString("mediaImg");
- gStrings.mediaBGImg = gBundle.getString("mediaBGImg");
- gStrings.mediaObject = gBundle.getString("mediaObject");
- gStrings.mediaEmbed = gBundle.getString("mediaEmbed");
- gStrings.mediaLink = gBundle.getString("mediaLink");
- gStrings.mediaInput = gBundle.getString("mediaInput");
- //@line 292 "e:\builds\moz2_slave\rel-cen-w32-bld\build\browser\base\content\pageinfo\pageInfo.js"
- gStrings.mediaVideo = gBundle.getString("mediaVideo");
- gStrings.mediaAudio = gBundle.getString("mediaAudio");
- //@line 295 "e:\builds\moz2_slave\rel-cen-w32-bld\build\browser\base\content\pageinfo\pageInfo.js"
-
- var args = "arguments" in window &&
- window.arguments.length >= 1 &&
- window.arguments[0];
-
- // mod by eXXile
- if(aios_inSidebar) {
- var aios_sidebar = top.document.getElementById('sidebar-box');
- var aios_window = document.getElementById('main-window');
-
- gDocument = AiOS_HELPER.mostRecentWindow.content.document;
- gWindow = AiOS_HELPER.mostRecentWindow.content.window;
- }
- else if(aios_inTab) {
-
- gDocument = AiOS_HELPER.mostRecentWindow.aiosLastSelTab.document;
- gWindow = AiOS_HELPER.mostRecentWindow.content.window;
- }
- // Original-FF-Teil
- else {
- if (!args || !args.doc) {
- gWindow = window.opener.content;
- gDocument = gWindow.document;
- }
- }
-
- // init media view
- var imageTree = document.getElementById("imagetree");
- imageTree.view = gImageView;
-
- /* Select the requested tab, if the name is specified */
- loadTab(args);
- Components.classes["@mozilla.org/observer-service;1"]
- .getService(Components.interfaces.nsIObserverService)
- .notifyObservers(window, "page-info-dialog-loaded", null);
-}
-
-
-var security = {
- // Display the server certificate (static)
- viewCert : function () {
- var cert = security._cert;
- //viewCertHelper(window, cert);
-
- // mod by eXXile
- if(aios_inSidebar) viewCertHelper(AiOS_HELPER.mostRecentWindow.content.window, cert);
- else if(aios_inTab) viewCertHelper(AiOS_HELPER.mostRecentWindow.aiosLastSelTab.window, cert);
- else viewCertHelper(window, cert);
- // endmod by eXXile
- },
-
- _getSecurityInfo : function() {
- const nsIX509Cert = Components.interfaces.nsIX509Cert;
- //mod by exxile const nsIX509CertDB = Components.interfaces.nsIX509CertDB;
- const nsX509CertDB = "@mozilla.org/security/x509certdb;1";
- const nsISSLStatusProvider = Components.interfaces.nsISSLStatusProvider;
- const nsISSLStatus = Components.interfaces.nsISSLStatus;
-
- // We don't have separate info for a frame, return null until further notice
- // (see bug 138479)
- if (gWindow != gWindow.top)
- return null;
-
- var hName = null;
- try {
- hName = gWindow.location.host;
- }
- catch (exception) { }
-
- var ui = security._getSecurityUI();
- if (!ui)
- return null;
-
- var isBroken =
- (ui.state & Components.interfaces.nsIWebProgressListener.STATE_IS_BROKEN);
- var isInsecure =
- (ui.state & Components.interfaces.nsIWebProgressListener.STATE_IS_INSECURE);
- var isEV =
- (ui.state & Components.interfaces.nsIWebProgressListener.STATE_IDENTITY_EV_TOPLEVEL);
- ui.QueryInterface(nsISSLStatusProvider);
- var status = ui.SSLStatus;
-
- if (!isInsecure && status) {
- status.QueryInterface(nsISSLStatus);
- var cert = status.serverCert;
- var issuerName =
- this.mapIssuerOrganization(cert.issuerOrganization) || cert.issuerName;
-
- var retval = {
- hostName : hName,
- cAName : issuerName,
- encryptionAlgorithm : undefined,
- encryptionStrength : undefined,
- isBroken : isBroken,
- isEV : isEV,
- cert : cert,
- fullLocation : gWindow.location
- };
-
- try {
- retval.encryptionAlgorithm = status.cipherName;
- retval.encryptionStrength = status.secretKeyLength;
- }
- catch (e) {
- }
-
- return retval;
- } else {
- return {
- hostName : hName,
- cAName : "",
- encryptionAlgorithm : "",
- encryptionStrength : 0,
- isBroken : isBroken,
- isEV : isEV,
- cert : null,
- fullLocation : gWindow.location
- };
- }
- },
-
- // Find the secureBrowserUI object (if present)
- _getSecurityUI : function() {
- // mod by eXXile
- if(aios_inSidebar) {
- if("gBrowser" in top) return top.gBrowser.securityUI;
- return null;
- }
- else if(aios_inTab) {
- return AiOS_HELPER.mostRecentWindow.aiosLastSelTab.securityUI;
- }
- // Original-FF-Teil
- else {
- if (window.opener.gBrowser) return window.opener.gBrowser.securityUI;
- return null;
- }
- },
-
- // Interface for mapping a certificate issuer organization to
- // the value to be displayed.
- // Bug 82017 - this implementation should be moved to pipnss C++ code
- mapIssuerOrganization: function(name) {
- if (!name) return null;
-
- if (name == "RSA Data Security, Inc.") return "Verisign, Inc.";
-
- // No mapping required
- return name;
- },
-
- /**
- * Open the cookie manager window
- */
- viewCookies : function() {
- var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"].getService(Components.interfaces.nsIWindowMediator);
- var win = wm.getMostRecentWindow("Browser:Cookies");
- var eTLDService = Components.classes["@mozilla.org/network/effective-tld-service;1"].
- getService(Components.interfaces.nsIEffectiveTLDService);
-
- var eTLD;
- var uri = gDocument.documentURIObject;
- try {
- eTLD = eTLDService.getBaseDomain(uri);
- }
- catch (e) {
- // getBaseDomain will fail if the host is an IP address or is empty
- eTLD = uri.asciiHost;
- }
-
- if (win) {
- win.gCookiesWindow.setFilter(eTLD);
- win.focus();
- }
- else
- window.openDialog("chrome://browser/content/preferences/cookies.xul",
- "Browser:Cookies", "", {
- filterString : eTLD
- });
- },
-
- /**
- * Open the login manager window
- */
- viewPasswords : function() {
- var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"].getService(Components.interfaces.nsIWindowMediator);
- var win = wm.getMostRecentWindow("Toolkit:PasswordManager");
- if (win) {
- win.setFilter(this._getSecurityInfo().hostName);
- win.focus();
- }
- else
- window.openDialog("chrome://passwordmgr/content/passwordManager.xul",
- "Toolkit:PasswordManager", "",
- {
- filterString : this._getSecurityInfo().hostName
- });
- },
-
- _cert : null
+
+var aios_inSidebar = (top.document.getElementById('sidebar-box')) ? true : false;
+var aios_inTab = (AiOS_HELPER.mostRecentWindow.aiosLastSelTab) ? true : false;
+
+// Listener fuer automatische Aktualisierung hinzufuegen u. entfernen
+if(aios_inSidebar) {
+ window.addEventListener("load", function(e) {
+ top.gBrowser.addProgressListener(aiosProgListener);
+ }, false);
+
+ window.addEventListener("unload",function(e) {
+ top.gBrowser.removeProgressListener(aiosProgListener);
+ }, false);
+}
+
+
+
+function aios_init() {
+ // Menueleiste unter Mac OS X ausblenden
+ aios_hideMacMenubar();
+
+ // fuer CSS-Zwecke speichern
+ AiOS_HELPER.rememberAppInfo( document.getElementById('main-window') );
+
+ try {
+ var enable_layout = AiOS_HELPER.prefBranchAiOS.getBoolPref("pi.layout");
+ var enable_layoutall = AiOS_HELPER.prefBranchAiOS.getBoolPref("pi.layoutall");
+ if((enable_layout && aios_inSidebar) || enable_layoutall) aios_sidebarLayout();
+ }
+ catch(e) { }
+
+ // Tastaturkuerzel entfernen, um nicht die des Hauptbrowsers zu blockieren
+ if(aios_inSidebar) aios_removeAccesskeys();
-
- //alert(document.getElementById('topBar').clientWidth);
- //document.getElementById('metatree').getElementsByTagName('treechildren')[0].style.maxWidth = document.getElementById('topBar').clientWidth + "px";
+}
+
+
+function aios_sidebarLayout() {
+ var vbox;
+
+ // CSS fuer Sidebar-Optimierungen aktivieren
+ aios_addCSS("pageinfo.css", "main-window");
+
+ // Label der Radio-Buttons unsichtbar machen => nur wenn es Icons gibt
+ var cStyle = document.defaultView.getComputedStyle(document.getElementById('generalTab'), '');
+ if(cStyle.listStyleImage && cStyle.listStyleImage != "none") {
+ if(document.getElementById('viewGroup')) document.getElementById('viewGroup').setAttribute("hideLabel", true);
+ }
+
+ // Radio-Buttons mit Tooltip
+ if(document.getElementById('viewGroup')) {
+ var radioChilds = document.getElementById('viewGroup').childNodes;
+ for(var i = 0; i < radioChilds.length; i++) {
+ if(radioChilds[i].tagName == "radio") radioChilds[i].setAttribute('tooltiptext', radioChilds[i].label);
+ }
+ }
+
+ // Media-Panel: Save as... button umbrechen
+ var hbox = document.getElementById('mediaPreviewBox').getElementsByTagName('hbox')[0];
+ hbox.setAttribute('align', 'start');
+ hbox.setAttribute('orient', 'vertical');
+ hbox.removeChild(hbox.getElementsByTagName('spacer')[0]);
+ hbox.appendChild(hbox.getElementsByTagName('vbox')[0]);
+
+ // Security-Panel: Texte und Buttons umbrechen
+ // Identity
+ var groupbox = document.getElementById('security-identity-groupbox');
+ groupbox.removeChild(groupbox.getElementsByTagName('spacer')[0]);
+ groupbox.getElementsByTagName('hbox')[0].setAttribute('orient', 'vertical');
+ groupbox.getElementsByTagName('hbox')[0].setAttribute('align', 'start');
+
+ // History
+ var historyrow = document.getElementById('security-privacy-history-label').parentNode;
+ vbox = document.createElement("vbox");
+ while(historyrow.childNodes.length != 0) {
+ vbox.appendChild(historyrow.firstChild);
+ }
+ vbox.setAttribute('flex', '100');
+ historyrow.appendChild(vbox);
+
+ // Cookies
+ var cookierow = document.getElementById('security-privacy-cookies-label').parentNode;
+ vbox = document.createElement("vbox");
+ while(cookierow.childNodes.length != 0) {
+ vbox.appendChild(cookierow.firstChild);
+ }
+ vbox.setAttribute('flex', '100');
+ cookierow.appendChild(vbox);
+
+ // Passwords
+ var pwdrow = document.getElementById('security-privacy-passwords-label').parentNode;
+ vbox = document.createElement("vbox");
+ while(pwdrow.childNodes.length != 0) {
+ vbox.appendChild(pwdrow.firstChild);
+ }
+ vbox.setAttribute('flex', '100');
+ pwdrow.appendChild(vbox);
+}
+
+
+// automatische Aktualisierung => Aufruf durch aiosProgListener (_helper.js)
+function aios_onLocationChange() {
+ if(aios_inSidebar) {
+ aios_persistSelTab();
+ location.reload();
+ }
+}
+
+
+function aios_onStateChange() {
+ aios_onLocationChange();
+}
+
+
+// letzten selektierten Tab merken
+function aios_persistSelTab() {
+ document.getElementById('main-window').setAttribute("seltab", document.getElementById('viewGroup').selectedIndex);
+}
+
+
+/* Called when PageInfo window is loaded. Arguments are:
+ * window.arguments[0] - (optional) an object consisting of
+ * - doc: (optional) document to use for source. if not provided,
+ * the calling window's document will be used
+ * - initialTab: (optional) id of the inital tab to display
+ */
+function onLoadPageInfo() {
+ gBundle = document.getElementById("pageinfobundle");
+ gStrings.unknown = gBundle.getString("unknown");
+ gStrings.notSet = gBundle.getString("notset");
+ gStrings.mediaImg = gBundle.getString("mediaImg");
+ gStrings.mediaBGImg = gBundle.getString("mediaBGImg");
+ gStrings.mediaObject = gBundle.getString("mediaObject");
+ gStrings.mediaEmbed = gBundle.getString("mediaEmbed");
+ gStrings.mediaLink = gBundle.getString("mediaLink");
+ gStrings.mediaInput = gBundle.getString("mediaInput");
+ //@line 292 "e:\builds\moz2_slave\rel-cen-w32-bld\build\browser\base\content\pageinfo\pageInfo.js"
+ gStrings.mediaVideo = gBundle.getString("mediaVideo");
+ gStrings.mediaAudio = gBundle.getString("mediaAudio");
+ //@line 295 "e:\builds\moz2_slave\rel-cen-w32-bld\build\browser\base\content\pageinfo\pageInfo.js"
+
+ var args = "arguments" in window &&
+ window.arguments.length >= 1 &&
+ window.arguments[0];
+
+ // mod by eXXile
+ if(aios_inSidebar) {
+ var aios_sidebar = top.document.getElementById('sidebar-box');
+ var aios_window = document.getElementById('main-window');
+
+ gDocument = AiOS_HELPER.mostRecentWindow.content.document;
+ gWindow = AiOS_HELPER.mostRecentWindow.content.window;
+ }
+ else if(aios_inTab) {
+
+ gDocument = AiOS_HELPER.mostRecentWindow.aiosLastSelTab.document;
+ gWindow = AiOS_HELPER.mostRecentWindow.content.window;
+ }
+ // Original-FF-Teil
+ else {
+ if (!args || !args.doc) {
+ gWindow = window.opener.content;
+ gDocument = gWindow.document;
+ }
+ }
+
+ // init media view
+ var imageTree = document.getElementById("imagetree");
+ imageTree.view = gImageView;
+
+ /* Select the requested tab, if the name is specified */
+ loadTab(args);
+ Components.classes["@mozilla.org/observer-service;1"]
+ .getService(Components.interfaces.nsIObserverService)
+ .notifyObservers(window, "page-info-dialog-loaded", null);
+}
+
+
+var security = {
+ // Display the server certificate (static)
+ viewCert : function () {
+ var cert = security._cert;
+ //viewCertHelper(window, cert);
+
+ // mod by eXXile
+ if(aios_inSidebar) viewCertHelper(AiOS_HELPER.mostRecentWindow.content.window, cert);
+ else if(aios_inTab) viewCertHelper(AiOS_HELPER.mostRecentWindow.aiosLastSelTab.window, cert);
+ else viewCertHelper(window, cert);
+ // endmod by eXXile
+ },
+
+ _getSecurityInfo : function() {
+ const nsIX509Cert = Components.interfaces.nsIX509Cert;
+ //mod by exxile const nsIX509CertDB = Components.interfaces.nsIX509CertDB;
+ const nsX509CertDB = "@mozilla.org/security/x509certdb;1";
+ const nsISSLStatusProvider = Components.interfaces.nsISSLStatusProvider;
+ const nsISSLStatus = Components.interfaces.nsISSLStatus;
+
+ // We don't have separate info for a frame, return null until further notice
+ // (see bug 138479)
+ if (gWindow != gWindow.top)
+ return null;
+
+ var hName = null;
+ try {
+ hName = gWindow.location.host;
+ }
+ catch (exception) { }
+
+ var ui = security._getSecurityUI();
+ if (!ui)
+ return null;
+
+ var isBroken =
+ (ui.state & Components.interfaces.nsIWebProgressListener.STATE_IS_BROKEN);
+ var isInsecure =
+ (ui.state & Components.interfaces.nsIWebProgressListener.STATE_IS_INSECURE);
+ var isEV =
+ (ui.state & Components.interfaces.nsIWebProgressListener.STATE_IDENTITY_EV_TOPLEVEL);
+ ui.QueryInterface(nsISSLStatusProvider);
+ var status = ui.SSLStatus;
+
+ if (!isInsecure && status) {
+ status.QueryInterface(nsISSLStatus);
+ var cert = status.serverCert;
+ var issuerName =
+ this.mapIssuerOrganization(cert.issuerOrganization) || cert.issuerName;
+
+ var retval = {
+ hostName : hName,
+ cAName : issuerName,
+ encryptionAlgorithm : undefined,
+ encryptionStrength : undefined,
+ isBroken : isBroken,
+ isEV : isEV,
+ cert : cert,
+ fullLocation : gWindow.location
+ };
+
+ try {
+ retval.encryptionAlgorithm = status.cipherName;
+ retval.encryptionStrength = status.secretKeyLength;
+ }
+ catch (e) {
+ }
+
+ return retval;
+ } else {
+ return {
+ hostName : hName,
+ cAName : "",
+ encryptionAlgorithm : "",
+ encryptionStrength : 0,
+ isBroken : isBroken,
+ isEV : isEV,
+ cert : null,
+ fullLocation : gWindow.location
+ };
+ }
+ },
+
+ // Find the secureBrowserUI object (if present)
+ _getSecurityUI : function() {
+ // mod by eXXile
+ if(aios_inSidebar) {
+ if("gBrowser" in top) return top.gBrowser.securityUI;
+ return null;
+ }
+ else if(aios_inTab) {
+ return AiOS_HELPER.mostRecentWindow.aiosLastSelTab.securityUI;
+ }
+ // Original-FF-Teil
+ else {
+ if (window.opener.gBrowser) return window.opener.gBrowser.securityUI;
+ return null;
+ }
+ },
+
+ // Interface for mapping a certificate issuer organization to
+ // the value to be displayed.
+ // Bug 82017 - this implementation should be moved to pipnss C++ code
+ mapIssuerOrganization: function(name) {
+ if (!name) return null;
+
+ if (name == "RSA Data Security, Inc.") return "Verisign, Inc.";
+
+ // No mapping required
+ return name;
+ },
+
+ /**
+ * Open the cookie manager window
+ */
+ viewCookies : function() {
+ var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"].getService(Components.interfaces.nsIWindowMediator);
+ var win = wm.getMostRecentWindow("Browser:Cookies");
+ var eTLDService = Components.classes["@mozilla.org/network/effective-tld-service;1"].
+ getService(Components.interfaces.nsIEffectiveTLDService);
+
+ var eTLD;
+ var uri = gDocument.documentURIObject;
+ try {
+ eTLD = eTLDService.getBaseDomain(uri);
+ }
+ catch (e) {
+ // getBaseDomain will fail if the host is an IP address or is empty
+ eTLD = uri.asciiHost;
+ }
+
+ if (win) {
+ win.gCookiesWindow.setFilter(eTLD);
+ win.focus();
+ }
+ else
+ window.openDialog("chrome://browser/content/preferences/cookies.xul",
+ "Browser:Cookies", "", {
+ filterString : eTLD
+ });
+ },
+
+ /**
+ * Open the login manager window
+ */
+ viewPasswords : function() {
+ var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"].getService(Components.interfaces.nsIWindowMediator);
+ var win = wm.getMostRecentWindow("Toolkit:PasswordManager");
+ if (win) {
+ win.setFilter(this._getSecurityInfo().hostName);
+ win.focus();
+ }
+ else
+ window.openDialog("chrome://passwordmgr/content/passwordManager.xul",
+ "Toolkit:PasswordManager", "",
+ {
+ filterString : this._getSecurityInfo().hostName
+ });
+ },
+
+ _cert : null
};
diff --cc install.rdf
index af90d06,43c51da..91d1d4e
--- a/install.rdf
+++ b/install.rdf
@@@ -1,30 -1,30 +1,30 @@@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-
-<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#">
- <Description about="urn:mozilla:install-manifest">
- <em:name>All-in-One Sidebar</em:name>
- <em:version>0.7.25</em:version>
- <em:description>Sidebar control with award-winning user experience!</em:description>
- <em:creator>Ingo Wennemaring</em:creator>
-
- <em:id>{097d3191-e6fa-4728-9826-b533d755359d}</em:id>
- <em:type>2</em:type>
-
- <em:icon64URL>chrome://aios/skin/icons/icon64.png</em:icon64URL>
- <em:aboutURL>chrome://aios/content/about.xul</em:aboutURL>
- <em:homepageURL>http://addonlab.com</em:homepageURL>
- <em:optionsURL>chrome://aios/content/prefs/prefs.xul</em:optionsURL>
-
- <em:targetApplication>
-
- <!-- Firefox -->
- <Description>
- <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
- <em:minVersion>32.0</em:minVersion>
- <em:maxVersion>33.*</em:maxVersion>
- </Description>
-
- </em:targetApplication>
-
- </Description>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#">
+ <Description about="urn:mozilla:install-manifest">
+ <em:name>All-in-One Sidebar</em:name>
- <em:version>0.7.24</em:version>
++ <em:version>0.7.25</em:version>
+ <em:description>Sidebar control with award-winning user experience!</em:description>
+ <em:creator>Ingo Wennemaring</em:creator>
+
+ <em:id>{097d3191-e6fa-4728-9826-b533d755359d}</em:id>
+ <em:type>2</em:type>
+
+ <em:icon64URL>chrome://aios/skin/icons/icon64.png</em:icon64URL>
+ <em:aboutURL>chrome://aios/content/about.xul</em:aboutURL>
+ <em:homepageURL>http://addonlab.com</em:homepageURL>
+ <em:optionsURL>chrome://aios/content/prefs/prefs.xul</em:optionsURL>
+
+ <em:targetApplication>
+
+ <!-- Firefox -->
+ <Description>
+ <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
+ <em:minVersion>32.0</em:minVersion>
+ <em:maxVersion>33.*</em:maxVersion>
+ </Description>
+
+ </em:targetApplication>
+
+ </Description>
- </RDF>
+ </RDF>
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-mozext/all-in-one-sidebar.git
More information about the Pkg-mozext-commits
mailing list