/* -*- 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 "MailNewsTypes2.idl" interface nsIPropertyBag2; [scriptable, uuid(a72dab4b-b3bd-471e-9a38-1b242b385459)] interface nsIDBFolderInfo : nsISupports { attribute long flags; /** * Or's aFlags into flags. * * @param - the flags(s) to set * * @return - the resulting flags. */ long orFlags(in long aFlags); /** * And's aFlags with flags, set flags to the result * * @param the flags(s) to AND * * @return the resulting flags. */ long andFlags(in long aFlags); /** * Allows us to keep track of the highwater mark * * @param aNewKey If larger than the current highwater * mark, sets the highwater mark to aNewKey. */ void onKeyAdded(in nsMsgKey aNewKey); attribute nsMsgKey highWater; attribute long long folderSize; attribute unsigned long folderDate; void changeNumUnreadMessages(in long aDelta); void changeNumMessages(in long aDelta); // Key value that is used to determine the order among sibling folders. // The user can change this value through the UI. // nsIMsgFolder::NO_SORT_VALUE means not specified. attribute unsigned long userSortOrder; // numUnreadMessages and numMessages will never return negative numbers. 0 means 'no msgs'. attribute long numUnreadMessages; attribute long numMessages; attribute long long expungedBytes; attribute long imapUidValidity; attribute unsigned long version; attribute long imapTotalPendingMessages; attribute long imapUnreadPendingMessages; attribute nsMsgViewTypeValue viewType; attribute nsMsgViewFlagsTypeValue viewFlags; attribute nsMsgViewSortTypeValue sortType; attribute nsMsgViewSortOrderValue sortOrder; void changeExpungedBytes(in long aDelta); /** * Gets a string property from the folder. Also used for URIs, hence the AUTF8String type. * * @param propertyName The name of the property for the value to retrieve. */ AUTF8String getCharProperty(in string propertyName); /** * Sets a string property from the folder. Also used for URIs, hence the AUTF8String type. * * @param propertyName The name of the property for which to set a value * @param propertyValue The new value of the property. */ void setCharProperty(in string aPropertyName, in AUTF8String aPropertyValue); void setUint32Property(in string propertyName, in unsigned long propertyValue); void setInt64Property(in string propertyName, in long long propertyValue); unsigned long getUint32Property(in string propertyName, in unsigned long defaultValue); long long getInt64Property(in string propertyName, in long long defaultValue); boolean getBooleanProperty(in string propertyName, in boolean defaultValue); void setBooleanProperty(in string propertyName, in boolean aPropertyValue); nsIPropertyBag2 GetTransferInfo(); void initFromTransferInfo(in nsIPropertyBag2 transferInfo); attribute AString locale; attribute AUTF8String mailboxName; AString getProperty(in string propertyName); void setProperty(in string propertyName, in AString propertyStr); attribute string knownArtsSet; attribute ACString folderName; };