summaryrefslogtreecommitdiffstats
path: root/comm/mail/components/activity/ActivityManagerUI.jsm
diff options
context:
space:
mode:
Diffstat (limited to 'comm/mail/components/activity/ActivityManagerUI.jsm')
-rw-r--r--comm/mail/components/activity/ActivityManagerUI.jsm47
1 files changed, 47 insertions, 0 deletions
diff --git a/comm/mail/components/activity/ActivityManagerUI.jsm b/comm/mail/components/activity/ActivityManagerUI.jsm
new file mode 100644
index 0000000000..b36b9b5a72
--- /dev/null
+++ b/comm/mail/components/activity/ActivityManagerUI.jsm
@@ -0,0 +1,47 @@
+/* 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 EXPORTED_SYMBOLS = ["ActivityManagerUI"];
+
+const ACTIVITY_MANAGER_URL = "chrome://messenger/content/activity.xhtml";
+
+function ActivityManagerUI() {}
+
+ActivityManagerUI.prototype = {
+ show(aWindowContext, aID) {
+ // First we see if it is already visible
+ let window = this.recentWindow;
+ if (window) {
+ window.focus();
+ return;
+ }
+
+ let parent = null;
+ try {
+ if (aWindowContext) {
+ parent = aWindowContext.docShell.domWindow;
+ }
+ } catch (e) {
+ /* it's OK to not have a parent window */
+ }
+
+ Services.ww.openWindow(
+ parent,
+ ACTIVITY_MANAGER_URL,
+ "ActivityManager",
+ "chrome,dialog=no,resizable",
+ {}
+ );
+ },
+
+ get visible() {
+ return null != this.recentWindow;
+ },
+
+ get recentWindow() {
+ return Services.wm.getMostRecentWindow("Activity:Manager");
+ },
+
+ QueryInterface: ChromeUtils.generateQI(["nsIActivityManagerUI"]),
+};