/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- * * The contents of this file are subject to the Netscape Public * License Version 1.1 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of * the License at http://www.mozilla.org/NPL/ * * Software distributed under the License is distributed on an "AS * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or * implied. See the License for the specific language governing * rights and limitations under the License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is Netscape * Communications Corporation. Portions created by Netscape are * Copyright (C) 1998 Netscape Communications Corporation. All * Rights Reserved. * * Contributor(s): */ #include "nsISupports.idl" #include "nsIFolder.idl" #include "nsIMsgThread.idl" #include "nsIMsgIncomingServer.idl" #include "nsIFileSpec.idl" #include "nsISupportsArray.idl" #include "nsIMsgCopyServiceListener.idl" %{ C++ #include "nsIMsgDatabase.h" #include "nsMsgKeyArray.h" %} interface nsIMessage; interface nsIMsgWindow; interface nsIMsgDatabase; interface nsMsgKeyArray; interface nsIMsgFolderCacheElement; interface nsAutoString; [scriptable, uuid(85e39ff0-b248-11d2-b7ef-00805f05ffa5)] interface nsIMsgFolder : nsIFolder { /* already exists in nsIFolder */ /* readonly attribute string name; */ /* void SetName(in string name); */ /* XXX should these 2 go on nsIFolder or nsICollection? */ void AddUnique(in nsISupports element); void ReplaceElement(in nsISupports element, in nsISupports newElement); nsISimpleEnumerator getMessages(); nsISimpleEnumerator getThreads(); void startFolderLoading(); void endFolderLoading(); /* get new headers for db */ void updateFolder(in nsIMsgWindow aWindow); nsIMsgThread getThreadForMessage(in nsIMessage message); boolean hasMessage(in nsIMessage message); nsIEnumerator getVisibleSubFolders(); readonly attribute wstring prettiestName; readonly attribute string folderURL; readonly attribute boolean deleteIsMoveToTrash; readonly attribute boolean showDeletedMessages; readonly attribute nsIMsgIncomingServer server; readonly attribute boolean isServer; void OnCloseFolder (); void Delete (); void deleteSubFolders(in nsISupportsArray folders); void propagateDelete(in nsIMsgFolder folder, in boolean deleteStorage); void recursiveDelete(in boolean deleteStorage); void createSubfolder(in string folderName); nsIMsgFolder addSubfolder(in nsAutoString folderName); void compact(); void emptyTrash(); void rename(in string name); void adopt(in nsIMsgFolder srcFolder, out unsigned long outPos); boolean containsChildNamed(in string name); boolean isAncestorOf(in nsIMsgFolder folder); string generateUniqueSubfolderName(in string prefix, in nsIMsgFolder otherFolder); void updateSummaryTotals(in boolean force); void summaryChanged(); long getNumUnread(in boolean deep); long getTotalMessages(in boolean deep); readonly attribute unsigned long expungedBytesCount; readonly attribute boolean deletable; readonly attribute boolean canCreateChildren; readonly attribute boolean canBeRenamed; readonly attribute boolean requiresCleanup; void clearRequiresCleanup(); boolean manyHeadersToDownload(); readonly attribute boolean knowsSearchNntpExtension; readonly attribute boolean allowsPosting; readonly attribute boolean displayRecipients; readonly attribute string relativePathName; readonly attribute unsigned long sizeOnDisk; void rememberPassword(in string password); readonly attribute string rememberedPassword; boolean userNeedsToAuthenticateForFolder(in boolean displayOnly); readonly attribute string username; readonly attribute string hostname; void setFlag(in unsigned long flag); void clearFlag(in unsigned long flag); boolean getFlag(in unsigned long flag); void toggleFlag (in unsigned long flag); void onFlagChange (in unsigned long flag); readonly attribute unsigned long flags; void getFoldersWithFlag(in unsigned long flags, out nsIMsgFolder result, in unsigned long resultsize, out unsigned long numFolders); void getExpansionArray(in nsISupportsArray expansionArray); void deleteMessages(in nsISupportsArray message, in nsIMsgWindow msgWindow, in boolean deleteStorage); void copyMessages(in nsIMsgFolder srcFolder, in nsISupportsArray messages, in boolean isMove, in nsIMsgWindow msgWindow, in nsIMsgCopyServiceListener listener); void copyFileMessage(in nsIFileSpec fileSpec, in nsIMessage msgToReplace, in boolean isDraft, in nsIMsgWindow msgWindow, in nsIMsgCopyServiceListener listener); void acquireSemaphore (in nsISupports semHolder); void releaseSemaphore (in nsISupports semHolder); boolean testSemaphore (in nsISupports semHolder); readonly attribute boolean locked; nsIMessage createMessageFromMsgDBHdr(in nsIMsgDBHdr msgDBHdr); void getNewMessages(in nsIMsgWindow aWindow); void writeToFolderCache(in nsIMsgFolderCache folderCache); attribute wstring charset; attribute unsigned long biffState; attribute long numNewMessages; readonly attribute wstring newMessagesNotificationDescription; readonly attribute nsIMsgFolder rootFolder; readonly attribute nsIMsgDatabase msgDatabase; readonly attribute nsIFileSpec path; void markMessagesRead(in nsISupportsArray messages, in boolean markRead); void markAllMessagesRead(); void markMessagesFlagged(in nsISupportsArray messages, in boolean markFlagged); nsIMsgFolder getChildWithURI(in string uri, in boolean deep); }; [scriptable, uuid(27D2DE40-BAF1-11d2-9578-00805F8AC615)] interface nsIMsgLocalMailFolder : nsISupports { }; [scriptable, uuid(3716abe4-f6d4-11d2-86d5-004005263078)] interface nsIMsgNewsFolder : nsISupports { attribute string unreadSetStr; }; [scriptable, uuid(FBFEBE79-C1DD-11d2-8A40-0060B0FC04D2)] interface nsIMsgImapMailFolder : nsISupports { void RemoveSubFolder(in nsIMsgFolder folder); void CreateClientSubfolderInfo(in string folderName); attribute boolean verifiedAsOnlineFolder; attribute boolean explicitlyVerify; };