summaryrefslogtreecommitdiffstats
path: root/mailnews/base/public/nsIFolderListener.idl
diff options
context:
space:
mode:
Diffstat (limited to 'mailnews/base/public/nsIFolderListener.idl')
-rw-r--r--mailnews/base/public/nsIFolderListener.idl63
1 files changed, 63 insertions, 0 deletions
diff --git a/mailnews/base/public/nsIFolderListener.idl b/mailnews/base/public/nsIFolderListener.idl
new file mode 100644
index 000000000..7448099eb
--- /dev/null
+++ b/mailnews/base/public/nsIFolderListener.idl
@@ -0,0 +1,63 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* 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/. */
+
+#include "nsISupports.idl"
+#include "nsIAtom.idl"
+
+interface nsIMsgFolder;
+interface nsIMsgDBHdr;
+
+typedef unsigned long folderListenerNotifyFlagValue;
+
+[scriptable, uuid(f60ee1a2-6d81-422c-958f-d408b1b2daa7)]
+interface nsIFolderListener : nsISupports {
+ const folderListenerNotifyFlagValue added = 0x1;
+ void OnItemAdded(in nsIMsgFolder aParentItem,
+ in nsISupports aItem);
+
+ const folderListenerNotifyFlagValue removed = 0x2;
+ void OnItemRemoved(in nsIMsgFolder aParentItem,
+ in nsISupports aItem);
+
+ const folderListenerNotifyFlagValue propertyChanged = 0x4;
+ void OnItemPropertyChanged(in nsIMsgFolder aItem,
+ in nsIAtom aProperty,
+ in string aOldValue,
+ in string aNewValue);
+
+ const folderListenerNotifyFlagValue intPropertyChanged = 0x8;
+ // While this property handles long long (64bit wide) values,
+ // the Javascript engine will only pass values up to 2^53 to the consumers.
+ void OnItemIntPropertyChanged(in nsIMsgFolder aItem,
+ in nsIAtom aProperty,
+ in long long aOldValue,
+ in long long aNewValue);
+
+ const folderListenerNotifyFlagValue boolPropertyChanged = 0x10;
+ void OnItemBoolPropertyChanged(in nsIMsgFolder aItem,
+ in nsIAtom aProperty,
+ in boolean aOldValue,
+ in boolean aNewValue);
+
+ const folderListenerNotifyFlagValue unicharPropertyChanged = 0x20;
+ void OnItemUnicharPropertyChanged(in nsIMsgFolder aItem,
+ in nsIAtom aProperty,
+ in wstring aOldValue,
+ in wstring aNewValue);
+
+ const folderListenerNotifyFlagValue propertyFlagChanged = 0x40;
+ void OnItemPropertyFlagChanged(in nsIMsgDBHdr aItem,
+ in nsIAtom aProperty,
+ in unsigned long aOldFlag,
+ in unsigned long aNewFlag);
+
+ const folderListenerNotifyFlagValue event = 0x80;
+ void OnItemEvent(in nsIMsgFolder aItem, in nsIAtom aEvent);
+
+ const folderListenerNotifyFlagValue all = 0xFFFFFFFF;
+
+ // void OnFolderLoaded(in nsIMsgFolder aFolder);
+ // void OnDeleteOrMoveMessagesCompleted(in nsIMsgFolder aFolder);
+};