зеркало из https://github.com/mozilla/pjs.git
80 строки
3.2 KiB
JavaScript
80 строки
3.2 KiB
JavaScript
/* 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/. */
|
|
|
|
const Cc = Components.classes;
|
|
const Ci = Components.interfaces;
|
|
const Cu = Components.utils;
|
|
|
|
Cu.import("resource://webapprt/modules/WebappRT.jsm");
|
|
Cu.import("resource://gre/modules/Services.jsm");
|
|
|
|
function onLoad() {
|
|
window.removeEventListener("load", onLoad, false);
|
|
|
|
// Set the title of the window to the name of the webapp
|
|
let manifest = WebappRT.config.app.manifest;
|
|
document.documentElement.setAttribute("title", manifest.name);
|
|
|
|
// Only load the webapp on the initially launched main window
|
|
if ("arguments" in window) {
|
|
// Load the webapp's launch URL
|
|
let installRecord = WebappRT.config.app;
|
|
let url = Services.io.newURI(installRecord.origin, null, null);
|
|
if (manifest.launch_path)
|
|
url = Services.io.newURI(manifest.launch_path, null, url);
|
|
document.getElementById("content").setAttribute("src", url.spec);
|
|
}
|
|
}
|
|
window.addEventListener("load", onLoad, false);
|
|
|
|
#ifdef XP_MACOSX
|
|
// On Mac, we dynamically create the label for the Quit menuitem, using
|
|
// a string property to inject the name of the webapp into it.
|
|
window.addEventListener("load", function onLoadUpdateMenuItems() {
|
|
window.removeEventListener("load", onLoadUpdateMenuItems, false);
|
|
let installRecord = WebappRT.config.app;
|
|
let manifest = WebappRT.config.app.manifest;
|
|
let bundle =
|
|
Services.strings.createBundle("chrome://webapprt/locale/webapp.properties");
|
|
let quitLabel = bundle.formatStringFromName("quitApplicationCmdMac.label",
|
|
[manifest.name], 1);
|
|
let hideLabel = bundle.formatStringFromName("hideApplicationCmdMac.label",
|
|
[manifest.name], 1);
|
|
document.getElementById("menu_FileQuitItem").setAttribute("label", quitLabel);
|
|
document.getElementById("menu_mac_hide_app").setAttribute("label", hideLabel);
|
|
}, false);
|
|
#endif
|
|
|
|
function updateEditUIVisibility() {
|
|
#ifndef XP_MACOSX
|
|
let editMenuPopupState = document.getElementById("menu_EditPopup").state;
|
|
|
|
// The UI is visible if the Edit menu is opening or open, if the context menu
|
|
// is open, or if the toolbar has been customized to include the Cut, Copy,
|
|
// or Paste toolbar buttons.
|
|
gEditUIVisible = editMenuPopupState == "showing" ||
|
|
editMenuPopupState == "open";
|
|
|
|
// If UI is visible, update the edit commands' enabled state to reflect
|
|
// whether or not they are actually enabled for the current focus/selection.
|
|
if (gEditUIVisible) {
|
|
goUpdateGlobalEditMenuItems();
|
|
}
|
|
|
|
// Otherwise, enable all commands, so that keyboard shortcuts still work,
|
|
// then lazily determine their actual enabled state when the user presses
|
|
// a keyboard shortcut.
|
|
else {
|
|
goSetCommandEnabled("cmd_undo", true);
|
|
goSetCommandEnabled("cmd_redo", true);
|
|
goSetCommandEnabled("cmd_cut", true);
|
|
goSetCommandEnabled("cmd_copy", true);
|
|
goSetCommandEnabled("cmd_paste", true);
|
|
goSetCommandEnabled("cmd_selectAll", true);
|
|
goSetCommandEnabled("cmd_delete", true);
|
|
goSetCommandEnabled("cmd_switchTextDirection", true);
|
|
}
|
|
#endif
|
|
}
|