mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-09 16:57:30 +09:00
Add Pale Moon
This commit is contained in:
parent
dcd9973243
commit
fe8028fa2e
1173 changed files with 143053 additions and 934 deletions
221
application/palemoon/components/statusbar/Toolbars.jsm
Normal file
221
application/palemoon/components/statusbar/Toolbars.jsm
Normal file
|
|
@ -0,0 +1,221 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
"use strict";
|
||||
|
||||
const EXPORTED_SYMBOLS = ["S4EToolbars"];
|
||||
|
||||
const CI = Components.interfaces;
|
||||
const CU = Components.utils;
|
||||
|
||||
CU.import("resource://gre/modules/Services.jsm");
|
||||
|
||||
function S4EToolbars(window, gBrowser, toolbox, service, getters)
|
||||
{
|
||||
this._window = window;
|
||||
this._toolbox = toolbox;
|
||||
this._service = service;
|
||||
this._getters = getters;
|
||||
this._handler = new ClassicS4EToolbars(this._window, this._toolbox);
|
||||
}
|
||||
|
||||
S4EToolbars.prototype =
|
||||
{
|
||||
_window: null,
|
||||
_toolbox: null,
|
||||
_service: null,
|
||||
_getters: null,
|
||||
|
||||
_handler: null,
|
||||
|
||||
setup: function()
|
||||
{
|
||||
this.updateSplitters(false);
|
||||
this.updateWindowGripper(false);
|
||||
this._handler.setup(this._service.firstRun);
|
||||
},
|
||||
|
||||
destroy: function()
|
||||
{
|
||||
this._handler.destroy();
|
||||
|
||||
["_window", "_toolbox", "_service", "_getters", "_handler"].forEach(function(prop)
|
||||
{
|
||||
delete this[prop];
|
||||
}, this);
|
||||
},
|
||||
|
||||
updateSplitters: function(action)
|
||||
{
|
||||
let document = this._window.document;
|
||||
|
||||
let splitter_before = document.getElementById("status4evar-status-splitter-before");
|
||||
if(splitter_before)
|
||||
{
|
||||
splitter_before.parentNode.removeChild(splitter_before);
|
||||
}
|
||||
|
||||
let splitter_after = document.getElementById("status4evar-status-splitter-after");
|
||||
if(splitter_after)
|
||||
{
|
||||
splitter_after.parentNode.removeChild(splitter_after);
|
||||
}
|
||||
|
||||
let status = this._getters.statusWidget;
|
||||
if(!action || !status)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
let urlbar = document.getElementById("urlbar-container");
|
||||
let stop = document.getElementById("stop-button");
|
||||
let fullscreenflex = document.getElementById("fullscreenflex");
|
||||
|
||||
let nextSibling = status.nextSibling;
|
||||
let previousSibling = status.previousSibling;
|
||||
|
||||
function getSplitter(splitter, suffix)
|
||||
{
|
||||
if(!splitter)
|
||||
{
|
||||
splitter = document.createElement("splitter");
|
||||
splitter.id = "status4evar-status-splitter-" + suffix;
|
||||
splitter.setAttribute("resizebefore", "flex");
|
||||
splitter.setAttribute("resizeafter", "flex");
|
||||
splitter.className = "chromeclass-toolbar-additional status4evar-status-splitter";
|
||||
}
|
||||
return splitter;
|
||||
}
|
||||
|
||||
if((previousSibling && previousSibling.flex > 0)
|
||||
|| (urlbar && stop && urlbar.getAttribute("combined") && stop == previousSibling))
|
||||
{
|
||||
status.parentNode.insertBefore(getSplitter(splitter_before, "before"), status);
|
||||
}
|
||||
|
||||
if(nextSibling && nextSibling.flex > 0 && nextSibling != fullscreenflex)
|
||||
{
|
||||
status.parentNode.insertBefore(getSplitter(splitter_after, "after"), nextSibling);
|
||||
}
|
||||
},
|
||||
|
||||
updateWindowGripper: function(action)
|
||||
{
|
||||
let document = this._window.document;
|
||||
|
||||
let gripper = document.getElementById("status4evar-window-gripper");
|
||||
let toolbar = this._getters.statusBar || this._getters.addonbar;
|
||||
|
||||
if(!action || !toolbar || !this._service.addonbarWindowGripper
|
||||
|| this._window.windowState != CI.nsIDOMChromeWindow.STATE_NORMAL || toolbar.toolbox.customizing)
|
||||
{
|
||||
if(gripper)
|
||||
{
|
||||
gripper.parentNode.removeChild(gripper);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
gripper = this._handler.buildGripper(toolbar, gripper, "status4evar-window-gripper");
|
||||
|
||||
toolbar.appendChild(gripper);
|
||||
}
|
||||
};
|
||||
|
||||
function ClassicS4EToolbars(window, toolbox)
|
||||
{
|
||||
this._window = window;
|
||||
this._toolbox = toolbox;
|
||||
}
|
||||
|
||||
ClassicS4EToolbars.prototype =
|
||||
{
|
||||
_window: null,
|
||||
_toolbox: null,
|
||||
|
||||
setup: function(firstRun)
|
||||
{
|
||||
let document = this._window.document;
|
||||
|
||||
let addon_bar = document.getElementById("addon-bar");
|
||||
if(addon_bar)
|
||||
{
|
||||
let baseSet = "addonbar-closebutton"
|
||||
+ ",status4evar-status-widget"
|
||||
+ ",status4evar-progress-widget";
|
||||
|
||||
// Update the defaultSet
|
||||
let defaultSet = baseSet;
|
||||
let defaultSetIgnore = ["addonbar-closebutton", "spring", "status-bar"];
|
||||
addon_bar.getAttribute("defaultset").split(",").forEach(function(item)
|
||||
{
|
||||
if(defaultSetIgnore.indexOf(item) == -1)
|
||||
{
|
||||
defaultSet += "," + item;
|
||||
}
|
||||
});
|
||||
defaultSet += ",status-bar"
|
||||
addon_bar.setAttribute("defaultset", defaultSet);
|
||||
|
||||
// Update the currentSet
|
||||
if(firstRun)
|
||||
{
|
||||
let isCustomizableToolbar = function(aElt)
|
||||
{
|
||||
return aElt.localName == "toolbar" && aElt.getAttribute("customizable") == "true";
|
||||
}
|
||||
|
||||
let isCustomizedAlready = false;
|
||||
let toolbars = Array.filter(this._toolbox.childNodes, isCustomizableToolbar).concat(
|
||||
Array.filter(this._toolbox.externalToolbars, isCustomizableToolbar));
|
||||
toolbars.forEach(function(toolbar)
|
||||
{
|
||||
if(toolbar.currentSet.indexOf("status4evar") > -1)
|
||||
{
|
||||
isCustomizedAlready = true;
|
||||
}
|
||||
});
|
||||
|
||||
if(!isCustomizedAlready)
|
||||
{
|
||||
let currentSet = baseSet;
|
||||
let currentSetIgnore = ["addonbar-closebutton", "spring"];
|
||||
addon_bar.currentSet.split(",").forEach(function(item)
|
||||
{
|
||||
if(currentSetIgnore.indexOf(item) == -1)
|
||||
{
|
||||
currentSet += "," + item;
|
||||
}
|
||||
});
|
||||
addon_bar.currentSet = currentSet;
|
||||
addon_bar.setAttribute("currentset", currentSet);
|
||||
document.persist(addon_bar.id, "currentset");
|
||||
this._window.setToolbarVisibility(addon_bar, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
destroy: function()
|
||||
{
|
||||
["_window", "_toolbox"].forEach(function(prop)
|
||||
{
|
||||
delete this[prop];
|
||||
}, this);
|
||||
},
|
||||
|
||||
buildGripper: function(toolbar, gripper, id)
|
||||
{
|
||||
if(!gripper)
|
||||
{
|
||||
let document = this._window.document;
|
||||
|
||||
gripper = document.createElement("resizer");
|
||||
gripper.id = id;
|
||||
gripper.dir = "bottomend";
|
||||
}
|
||||
|
||||
return gripper;
|
||||
}
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue