diff options
Diffstat (limited to 'mailnews/base/public/nsIMsgHdr.idl')
-rw-r--r-- | mailnews/base/public/nsIMsgHdr.idl | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/mailnews/base/public/nsIMsgHdr.idl b/mailnews/base/public/nsIMsgHdr.idl new file mode 100644 index 000000000..977695c10 --- /dev/null +++ b/mailnews/base/public/nsIMsgHdr.idl @@ -0,0 +1,104 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* 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 "MailNewsTypes2.idl" + +interface nsIMsgFolder; +interface nsIUTF8StringEnumerator; + +[scriptable, uuid(3c11ddbe-c805-40c5-b9c9-d065fad5d0be)] +interface nsIMsgDBHdr : nsISupports +{ + /* general property routines - I think this can retrieve any + header in the db */ + AString getProperty(in string propertyName); + void setProperty(in string propertyName, in AString propertyStr); + void setStringProperty(in string propertyName, in string propertyValue); + string getStringProperty(in string propertyName); + unsigned long getUint32Property(in string propertyName); + void setUint32Property(in string propertyName, + in unsigned long propertyVal); + + // accessors, to make our JS cleaner + readonly attribute boolean isRead; + readonly attribute boolean isFlagged; + + // Special accessor that checks if a message is part of an ignored subthread + readonly attribute boolean isKilled; + + // Mark message routines + void markRead(in boolean read); + void markFlagged(in boolean flagged); + void markHasAttachments(in boolean hasAttachments); + + attribute nsMsgPriorityValue priority; + void setPriorityString(in string priority); + + /* flag handling routines */ + attribute unsigned long flags; + unsigned long OrFlags(in unsigned long flags); + unsigned long AndFlags(in unsigned long flags); + + /* various threading stuff */ + attribute nsMsgKey threadId; + attribute nsMsgKey messageKey; + attribute nsMsgKey threadParent; + + /* meta information about the message, learned from reading the message */ + attribute unsigned long messageSize; + attribute unsigned long lineCount; + attribute unsigned long statusOffset; + /** + * The offset into the local folder/offline store of the message. This + * will be pluggable store-dependent, e.g., for mail dir it should + * always be 0. + */ + attribute unsigned long long messageOffset; + attribute unsigned long offlineMessageSize; + /* common headers */ + attribute PRTime date; + readonly attribute unsigned long dateInSeconds; + attribute string messageId; + attribute string ccList; + attribute string bccList; + attribute string author; + attribute string subject; + attribute string recipients; + + /* anything below here still has to be fixed */ + void setReferences(in string references); + readonly attribute unsigned short numReferences; + ACString getStringReference(in long refNum); + + readonly attribute AString mime2DecodedAuthor; + readonly attribute AString mime2DecodedSubject; + readonly attribute AString mime2DecodedRecipients; + + void getAuthorCollationKey(out unsigned long aCount, + [array, size_is(aCount)] out octet aKey); + void getSubjectCollationKey(out unsigned long aCount, + [array, size_is(aCount)] out octet aKey); + void getRecipientsCollationKey(out unsigned long aCount, + [array, size_is(aCount)] out octet aKey); + + attribute string Charset; + /** + * Returns the effective character set for the message (@ref Charset). + * If there is no specific set defined for the message or the + * characterSetOverride option is turned on for the folder it will return + * the effective character set of the folder instead. + */ + readonly attribute ACString effectiveCharset; + attribute nsMsgLabelValue label; + attribute string accountKey; + readonly attribute nsIMsgFolder folder; + + /// Enumerator for names of all database properties in the header. + readonly attribute nsIUTF8StringEnumerator propertyEnumerator; +}; +/* *******************************************************************************/ + |