Revision control

Copy as Markdown

Other Tools

/*-*- Mode: IDL; 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"
// This must be limited to unsigned long (uint32_t, no uint64_t)
// as long as nsIMsgFolder exposes the 'flags' property which contains
// all the flags values. The callers are used to do
// (folder.flags & nsMsgFolderFlags.<flagname>) in Javascript
// which cuts the value to 32bit only. See bug 813459.
typedef unsigned long nsMsgFolderFlagType;
/// Flags about a folder or a newsgroup.
[scriptable,uuid(440cd0fc-b4b3-4a0f-a492-92fbe7920588)]
interface nsMsgFolderFlags : nsISupports {
/**
* @name Folder Type Flags
* These flags define the type of folder. Exactly one will be set.
* @{
*/
/// This folder is a newsgroup folder.
const nsMsgFolderFlagType Newsgroup = 0x00000001;
/// Used to be for a folder that is a news server (NewsHost).
const nsMsgFolderFlagType Unused3 = 0x00000002;
/// This folder is a mail folder.
const nsMsgFolderFlagType Mail = 0x00000004;
/** @} */
/** Whether this is a directory: NewsHosts are always directories;
* NewsGroups can be directories if we are in ``show all groups'' mode;
* Mail folders will have this bit if they are really directories, not files.
* (Note that directories may have zero children.)
*/
const nsMsgFolderFlagType Directory = 0x00000008;
/** Whether the children of this folder are currently hidden in the listing.
* This will only be present if the nsMsgFolderFlags::Directory bit is on.
*/
const nsMsgFolderFlagType Elided = 0x00000010;
/// Whether this is a virtual search folder
const nsMsgFolderFlagType Virtual = 0x00000020;
/** @name News Folder Flags
* These flags only occur in folders which have
* the nsMsgFolderFlags::Newsgroup bit set, and do
* not have the nsMsgFolderFlags::Directory or
* nsMsgFolderFlags::Elided bits set.
* @{
*/
/// Used to be for folders representing a subscribed newsgroup (Subscribed).
const nsMsgFolderFlagType Unused5 = 0x00000040;
/// Used to be for new newsgroups added by the `Check New Groups' command.
const nsMsgFolderFlagType Unused2 = 0x00000080;
/** @} */
/** @name Mail Folder Flags
* These flags only occur in folders which have
* the nsMsgFolderFlags::Mail bit set, and do
* not have the nsMsgFolderFlags::Directory or
* nsMsgFolderFlags::Elided bits set.
* @{
*/
/// Whether this is the trash folder.
const nsMsgFolderFlagType Trash = 0x00000100;
/// Whether this is a folder that sent mail gets delivered to.
const nsMsgFolderFlagType SentMail = 0x00000200;
/// Whether this is the folder in which unfinished, unsent messages are saved for later editing.
const nsMsgFolderFlagType Drafts = 0x00000400;
/// Whether this is the folder in which messages are queued for later delivery.
const nsMsgFolderFlagType Queue = 0x00000800;
/// Whether this is the primary inbox folder.
const nsMsgFolderFlagType Inbox = 0x00001000;
/// Whether this folder on online IMAP
const nsMsgFolderFlagType ImapBox = 0x00002000;
/// Whether this is an archive folder
const nsMsgFolderFlagType Archive = 0x00004000;
/// This used to be used for virtual newsgroups
const nsMsgFolderFlagType Unused1 = 0x00008000;
/// Used to be for categories
const nsMsgFolderFlagType Unused4 = 0x00010000;
/// Used to be for new msgs in a folder
const nsMsgFolderFlagType Unused7 = 0x00020000;
/// Used to be for a folder that is an IMAP server (ImapServer)
const nsMsgFolderFlagType Unused6 = 0x00040000;
/// This folder is an IMAP personal folder
const nsMsgFolderFlagType ImapPersonal = 0x00080000;
/// This folder is an IMAP public folder
const nsMsgFolderFlagType ImapPublic = 0x00100000;
/// This folder is another user's IMAP folder. Think of it like a folder that someone would share.
const nsMsgFolderFlagType ImapOtherUser = 0x00200000;
/// Whether this is the template folder
const nsMsgFolderFlagType Templates = 0x00400000;
/// This folder is one of your personal folders that is shared with other users
const nsMsgFolderFlagType PersonalShared = 0x00800000;
/// This folder is an IMAP \\Noselect folder
const nsMsgFolderFlagType ImapNoselect = 0x01000000;
/// This folder created offline (this is never set in current code,
/// but it is still checked for and obeyed if found on a folder.
const nsMsgFolderFlagType CreatedOffline = 0x02000000;
/// This imap folder cannot have children :-(
const nsMsgFolderFlagType ImapNoinferiors = 0x04000000;
/// This folder configured for offline use
const nsMsgFolderFlagType Offline = 0x08000000;
/// This folder has offline events to play back
const nsMsgFolderFlagType OfflineEvents = 0x10000000;
/// This folder is checked for new messages
const nsMsgFolderFlagType CheckNew = 0x20000000;
/// This folder is for spam messages
const nsMsgFolderFlagType Junk = 0x40000000;
/// This folder is in favorites view
const nsMsgFolderFlagType Favorite = 0x80000000;
/// Special-use folders
const nsMsgFolderFlagType SpecialUse = Inbox|Drafts|Trash|SentMail|
Templates|Junk|Archive|Queue;
/** @} */
};