Back to index

lightning-sunbird  0.9+nobinonly
nsIMsgImapMailFolder.idl
Go to the documentation of this file.
00001 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
00002 /* ***** BEGIN LICENSE BLOCK *****
00003  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
00004  *
00005  * The contents of this file are subject to the Mozilla Public License Version
00006  * 1.1 (the "License"); you may not use this file except in compliance with
00007  * the License. You may obtain a copy of the License at
00008  * http://www.mozilla.org/MPL/
00009  *
00010  * Software distributed under the License is distributed on an "AS IS" basis,
00011  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
00012  * for the specific language governing rights and limitations under the
00013  * License.
00014  *
00015  * The Original Code is mozilla.org code.
00016  *
00017  * The Initial Developer of the Original Code is
00018  * Netscape Communications Corporation.
00019  * Portions created by the Initial Developer are Copyright (C) 1998
00020  * the Initial Developer. All Rights Reserved.
00021  *
00022  * Contributor(s):
00023  *   Lorenzo Colitti <lorenzo@colitti.com>
00024  *
00025  * Alternatively, the contents of this file may be used under the terms of
00026  * either of the GNU General Public License Version 2 or later (the "GPL"),
00027  * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
00028  * in which case the provisions of the GPL or the LGPL are applicable instead
00029  * of those above. If you wish to allow use of your version of this file only
00030  * under the terms of either the GPL or the LGPL, and not to allow others to
00031  * use your version of this file under the terms of the MPL, indicate your
00032  * decision by deleting the provisions above and replace them with the notice
00033  * and other provisions required by the GPL or the LGPL. If you do not delete
00034  * the provisions above, a recipient may use your version of this file under
00035  * the terms of any one of the MPL, the GPL or the LGPL.
00036  *
00037  * ***** END LICENSE BLOCK ***** */
00038 
00039 #include "nsISupports.idl"
00040 #include "nsIMsgFolder.idl"
00041 
00042 interface nsIMsgWindow;
00043 interface nsIImapIncomingServer;
00044 interface nsIMsgParseMailMsgState;
00045 
00046 // this is a simple interface which allows the imap folder to update some values
00047 // that the folder props js code will use to update the sharing and quota tabs in the folder props.
00048 
00049 [scriptable, uuid(239472a2-6e8f-46f0-9507-887998da49e5)] 
00050 interface nsIMsgImapFolderProps : nsISupports {
00051 
00052     void setFolderType(in wstring folderType);
00053     void setFolderTypeDescription(in wstring folderTypeDescription);
00054     void setFolderPermissions(in wstring permissions);
00055     void serverDoesntSupportACL();
00056 
00064     void showQuotaData(in boolean showData);
00065 
00070     void setQuotaStatus(in AString folderQuotaStatus);
00071 
00075     void setQuotaData(in ACString quotaroot, in unsigned long usedKB, in unsigned long maxKB);
00076 };
00077 
00078 
00079 [scriptable, uuid(7bf6ecd1-dc71-4472-8ea1-a081511ee17f)]
00080 interface nsIMsgImapMailFolder : nsISupports {
00081   void removeSubFolder(in nsIMsgFolder folder);
00082   void createClientSubfolderInfo(in string folderName, in wchar hierarchyDelimiter, in long flags, in boolean suppressNotification);
00083   void list();
00084   void renameLocal(in string newname, in nsIMsgFolder parent);
00085   void prepareToRename();
00086   void performExpand(in nsIMsgWindow aMsgWindow);
00087   void recursiveCloseActiveConnections(in nsIImapIncomingServer aImapServer);
00088   void renameClient(in nsIMsgWindow msgWindow, in nsIMsgFolder msgFolder, in string oldName, in string newName);
00089 
00090   // these are used for offline synchronization
00091   void storeImapFlags(in long aFlags, in boolean aAddFlags, [array, size_is (aNumKeys)] 
00092       in nsMsgKey aKeysToFlag, in unsigned long aNumKeys, in nsIUrlListener aUrlListener);
00093   void setImapFlags(in string uids, in long flags, out nsIURI url);
00094   void replayOfflineMoveCopy([array, size_is (numKeys)] in nsMsgKey keys, in unsigned long numKeys, in boolean isMove, in nsIMsgFolder aDstFolder,
00095                          in nsIUrlListener aUrlListener, in nsIMsgWindow aWindow);
00096   void playbackOfflineFolderCreate(in wstring folderName, in nsIMsgWindow aWindow, out nsIURI url);
00097   void liteSelect(in nsIUrlListener aUrlListener);
00098   void fillInFolderProps(in nsIMsgImapFolderProps aFolderProps);
00099   void resetNamespaceReferences();
00100   void folderPrivileges(in nsIMsgWindow aWindow);
00101   nsIMsgImapMailFolder findOnlineSubFolder(in string onlineName);
00102   void addFolderRights(in string userName, in string rights);
00103   void refreshFolderRights();
00104 
00105   void updateStatus(in nsIUrlListener aListener, in nsIMsgWindow aMsgWindow);
00106   // this is used to issue an arbitrary imap command on the passed in msgs.
00107   // It assumes the command needs to be run in the selected state.
00108   nsIURI issueCommandOnMsgs(in string command, in string uids, in nsIMsgWindow aWindow);
00109   nsIURI fetchCustomMsgAttribute(in string msgAttribute, in string uids, in nsIMsgWindow aWindow);
00110   nsIURI storeCustomKeywords(in nsIMsgWindow aMsgWindow,
00111                       in string aFlagsToAdd,
00112                       in string aFlagsToSubtract,
00113                       [array, size_is (aNumKeys)] in nsMsgKey aKeysToStore,
00114                       in unsigned long aNumKeys);
00115 
00116   void notifyIfNewMail();
00117 
00118   attribute boolean verifiedAsOnlineFolder;
00119   attribute boolean explicitlyVerify;
00120   attribute wchar hierarchyDelimiter;
00121   attribute long boxFlags;
00122   attribute string onlineName;
00123   attribute boolean isNamespace;
00124   readonly attribute boolean canIOpenThisFolder;
00125   attribute string adminUrl;
00126   readonly attribute boolean hasAdminUrl;
00127   attribute boolean performingBiff;
00128   readonly attribute nsIMsgParseMailMsgState hdrParser;
00129 
00142   void getQuota(out boolean valid, out unsigned long usedKB, out unsigned long maxKB);
00143 };