Bug 1163306 - enable icaljs by default only on comm-central, use libical on comm-aurora. r=philipp
/* -*- 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"
#include "nsIAbListener.idl"
interface nsIDOMWindow;
interface nsIAbDirectory;
interface nsIAbCard;
interface nsIAbDirectoryProperties;
interface nsIFile;
interface nsISimpleEnumerator;
interface nsIAbBooleanExpression;
/**
* nsIAbManager is an interface to the main address book mananger
* via the contract id "@mozilla.org/abmanager;1"
*
* It contains the main functions to create and delete address books as well
* as some helper functions.
*/
[scriptable, uuid(4271daa0-de0b-48ed-9c2b-934dc895383d)]
interface nsIAbManager : nsISupports
{
/**
* Returns an enumerator containing all the top-level directories
* (non-recursive)
*/
readonly attribute nsISimpleEnumerator directories;
/**
* Returns the directory that represents the supplied URI.
*
* @param aURI The URI of the address book to find.
* @return The found address book.
*/
nsIAbDirectory getDirectory(in ACString aURI);
/**
* Returns the directory that has the supplied dirPrefId.
*
* @param aDirPrefId The dirPrefId of the directory.
* @return The found AB directory.
*/
nsIAbDirectory getDirectoryFromId(in ACString aDirPrefId);
/**
* Creates a new address book.
*
* @param aDirName The description of the address book.
* @param aURI The URI for the address book. This is specific to each
* type of address book.
* @param aType The type of the address book (see nsDirPrefs.h)
* @param aPrefName Overrides the default of ldap_2.servers.<aDirName>
* (note that the caller must ensure its uniqueness).
*/
ACString newAddressBook(in AString aDirName, in ACString aURI,
in unsigned long aType,
[optional] in ACString aPrefName);
/**
* Deletes an address book.
*
* @param aURI The URI for the address book. This is specific to each
* type of address book.
*/
void deleteAddressBook(in ACString aURI);
/**
* Exports an address book, it will provide a dialog to the user for the
* location to save the file to and will then save the address book to media.
*
* @param aParentWin Parent Window for the file save dialog to use.
* @param aDirectory The directory to export.
*/
void exportAddressBook(in nsIDOMWindow aParentWin, in nsIAbDirectory aDirectory);
/**
* Adds a nsIAbListener to receive notifications of address book updates
* according to the specified notifyFlags.
*
* @param aListener The listener that is to receive updates.
* @param aNotifyFlags A bitwise-or of abListenerNotifyFlagValue items
* specifying which notifications to receive. See
* nsIAbListener for possible values.
*/
void addAddressBookListener(in nsIAbListener aListener,
in abListenerNotifyFlagValue aNotifyFlags);
/**
* Removes a nsIAbListener from receive notifications of address book
* updates.
*
* @param aListener The listener that is to no longer receive updates.
*/
void removeAddressBookListener(in nsIAbListener aListener);
/**
* Call to notify the registered listeners when a property on an item has
* changed.
*
* @param aItem The items that has changed (e.g. an nsIAbDirectory)
* @param aProperty The property that has changed (e.g. DirName)
* @param aOldValue The old value of the property.
* @param aNewValue The new value of the property.
*/
void notifyItemPropertyChanged(in nsISupports aItem,
in string aProperty,
in wstring aOldValue,
in wstring aNewValue);
/**
* Call to notify the registered listeners when a directory item is added.
*
* @param aParentDirectory The parent directory of the item that has been
* added.
* @param aItem The item that has been added.
*/
void notifyDirectoryItemAdded(in nsIAbDirectory aParentDirectory,
in nsISupports aItem);
/**
* Call to notify the registered listeners when a directory item is removed.
*
* @param aParentDirectory The parent directory of the item that has been
* removed.
* @param aItem The item that has been removed.
*/
void notifyDirectoryItemDeleted(in nsIAbDirectory aParentDirectory,
in nsISupports aItem);
/**
* Call to notify the registered listeners when a directory is removed.
*
* @param aParentDirectory The parent directory of the directory that has
* been removed.
* @param aDirectory The directory that has been removed.
*/
void notifyDirectoryDeleted(in nsIAbDirectory aParentDirectory,
in nsISupports aDirectory);
/**
* Returns the user profile directory. NOTE: this should not be used
* as it may go away soon.
*/
readonly attribute nsIFile userProfileDirectory;
/**
* Finds out if the mailing list name exists in any *mork/MDB* based
* address book
*
* @param aName The name of the list to try and find.
*
* @return True if the name exists.
*/
boolean mailListNameExists(in wstring name);
/**
* Translates an escaped vcard string into a nsIAbCard.
*
* @param escapedVCardStr The string containing the vcard.
*
* @return A card containing the translated vcard data.
*/
nsIAbCard escapedVCardToAbCard(in string escapedVCardStr);
/**
* Generates a UUID from a (directory ID, local ID) tuple.
*
* Use of this method is preferred in such cases, since it is designed to work
* with other methods of this interface.
*
* @param directoryId The directory ID.
* @param localId The per-directory ID.
* @return A string to use for the UUID.
*/
AUTF8String generateUUID(in AUTF8String directoryId, in AUTF8String localId);
/**
* A utility function that converts an nsIAbDirectory query string to an
* nsIAbBooleanExpression.
*
* @param aQueryString The nsIAbDirectory query string
* @return an nsIAbBooleanExpression for the query string
*/
nsIAbBooleanExpression convertQueryStringToExpression(in AUTF8String aQueryString);
};