summaryrefslogtreecommitdiffstats
path: root/comm/suite/components/helpviewer/content/contextHelp.js
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--comm/suite/components/helpviewer/content/contextHelp.js68
1 files changed, 68 insertions, 0 deletions
diff --git a/comm/suite/components/helpviewer/content/contextHelp.js b/comm/suite/components/helpviewer/content/contextHelp.js
new file mode 100644
index 0000000000..151cd777a9
--- /dev/null
+++ b/comm/suite/components/helpviewer/content/contextHelp.js
@@ -0,0 +1,68 @@
+/* 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/. */
+
+var { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
+var { AppConstants } =
+ ChromeUtils.import("resource://gre/modules/AppConstants.jsm");
+
+// Set the default content pack to the Mozilla content pack. Use the
+// setHelpFileURI function to set this value.
+var helpFileURI;
+
+// openHelp - Opens up the Mozilla Help Viewer with the specified
+// topic and content pack.
+// see http://www.mozilla.org/projects/help-viewer/content_packs.html
+function openHelp(topic, contentPack)
+{
+ // helpFileURI is the content pack to use in this function. If contentPack is defined,
+ // use that and set the helpFileURI to that value so that it will be the default.
+ helpFileURI = contentPack || helpFileURI;
+
+ // Try to find previously opened help.
+ var topWindow = locateHelpWindow(helpFileURI);
+
+ if ( topWindow ) {
+ // Open topic in existing window.
+ topWindow.focus();
+ topWindow.displayTopic(topic);
+ } else {
+ // Open topic in new window.
+ const params = Cc["@mozilla.org/embedcomp/dialogparam;1"]
+ .createInstance(Ci.nsIDialogParamBlock);
+ params.SetNumberStrings(2);
+ params.SetString(0, helpFileURI);
+ params.SetString(1, topic);
+
+ let openFeatures = "chrome,all,dialog=no";
+
+ if (AppConstants.platform == "win") {
+ openFeatures += ",alwaysRaised";
+ }
+ Services.ww.openWindow(null, "chrome://help/content/help.xul", "_blank",
+ openFeatures, params);
+ }
+}
+
+// setHelpFileURI - Sets the default content pack to use in the Help Viewer
+function setHelpFileURI(rdfURI)
+{
+ helpFileURI = rdfURI;
+}
+
+// Locate existing help window for this content pack.
+function locateHelpWindow(contentPack) {
+ const iterator = Services.wm.getEnumerator("suite:help");
+ var topWindow = null;
+ var aWindow;
+
+ // Loop through help windows looking for one with selected content
+ // pack.
+ while (iterator.hasMoreElements()) {
+ aWindow = iterator.getNext();
+ if (!aWindow.closed && aWindow.getHelpFileURI() == contentPack) {
+ topWindow = aWindow;
+ }
+ }
+ return topWindow;
+}