mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-25 09:57:32 +09:00
311 lines
15 KiB
Text
311 lines
15 KiB
Text
/* -*- 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 "nsIAddrDBAnnouncer.idl"
|
|
#include "nsIAbCard.idl"
|
|
#include "nsIAbDirectory.idl"
|
|
|
|
interface nsIFile;
|
|
interface nsIMdbTableRowCursor;
|
|
interface nsIMdbEnv;
|
|
interface nsIMdbRow;
|
|
interface nsIArray;
|
|
interface nsISimpleEnumerator;
|
|
|
|
%{C++
|
|
// this is the prefix we for attributes that are specific
|
|
// to the mozilla addressbook, and weren't in 4.x and aren't specified in
|
|
// RFC 2789. used when exporting and import LDIF
|
|
// see nsTextAddress.cpp, nsAddressBook.cpp
|
|
#define MOZ_AB_LDIF_PREFIX "mozilla"
|
|
|
|
// note, GeneratedName is not a real column
|
|
// if you change any of this, make sure to change
|
|
// Get / Set CardValue in nsAbCardProperty.cpp
|
|
#define kPhoneticNameColumn "_PhoneticName"
|
|
#define kAddressCharSetColumn "AddrCharSet"
|
|
#define kMailListName "ListName"
|
|
#define kMailListNickName "ListNickName"
|
|
#define kMailListDescription "ListDescription"
|
|
#define kMailListTotalAddresses "ListTotalAddresses"
|
|
// not shown in the UI
|
|
#define kLowerPriEmailColumn "LowercasePrimaryEmail"
|
|
#define kLower2ndEmailColumn "LowercaseSecondEmail"
|
|
|
|
// Palm Integration
|
|
#define CARD_ATTRIB_PALMID "PalmRecId"
|
|
#define CARD_ATTRIB_DISPLAY "DisplayName"
|
|
|
|
%}
|
|
|
|
[scriptable, uuid(20d4c6c3-0460-403e-aa9c-813654641566)]
|
|
interface nsAddrDBCommitType
|
|
{
|
|
const long kLargeCommit = 1;
|
|
const long kSessionCommit = 2;
|
|
const long kCompressCommit = 3;
|
|
};
|
|
|
|
[scriptable, uuid(c54973e4-d251-4b93-a0d0-81a616225061)]
|
|
interface nsIAddrDatabase : nsIAddrDBAnnouncer {
|
|
|
|
/**
|
|
* Path to the address book database that this instance represents.
|
|
*/
|
|
attribute nsIFile dbPath;
|
|
nsIAddrDatabase open(in nsIFile dbFile, in boolean create, in boolean upgrading);
|
|
|
|
void close(in boolean forceCommit);
|
|
|
|
/**
|
|
* Open the MDB database synchronously creating it if required. If
|
|
* successful, this routine will set up the m_mdbStore and m_mdbEnv of the
|
|
* database object so other database calls can work.
|
|
*
|
|
* @param dbName The location of the database file
|
|
* to open.
|
|
* @param create If set to true, will create the
|
|
* database file if it does not
|
|
* already exist.
|
|
* @exception NS_ERROR_FILE_NOT_FOUND The file was not found at the
|
|
* specified location (and create was
|
|
* false).
|
|
* @exception NS_ERROR_FILE_ACCESS_DENIED The file could not be opened as
|
|
* access was denied.
|
|
*/
|
|
void openMDB(in nsIFile dbName, in boolean create);
|
|
void closeMDB(in boolean commit);
|
|
|
|
void commit(in unsigned long commitType);
|
|
void forceClosed();
|
|
|
|
/**
|
|
* Create a new card and add to the database
|
|
*
|
|
* @param aNewCard the card to be added
|
|
* @param aNotify if set to true, all the listeners of the
|
|
* database will be notified.
|
|
* @param aParent parent directory or mailing list to which the
|
|
* card is added. If set to null, listeners of the
|
|
* database will not be notified of card creation.
|
|
*/
|
|
void createNewCardAndAddToDB(in nsIAbCard aNewCard, in boolean aNotify, in nsIAbDirectory aParent);
|
|
|
|
void createNewListCardAndAddToDB(in nsIAbDirectory list, in unsigned long listRowID, in nsIAbCard newCard, in boolean aNotify);
|
|
|
|
/**
|
|
* Create a new mailing list and add to the database
|
|
*
|
|
* @param aNewList the mailing list to be added.
|
|
* @param aNotify if set to true, all the listeners of the
|
|
* database will be notified.
|
|
* @param aParent parent directory to which the mailing list
|
|
* is added. If set to null, listeners of the database
|
|
* will not be notified of mailing list creation.
|
|
*/
|
|
void createMailListAndAddToDB(in nsIAbDirectory aNewList, in boolean aNotify, in nsIAbDirectory aParent);
|
|
|
|
/**
|
|
* Enumerate the cards in the directory. The enumerator will return the
|
|
* cards associated with mailing lists too.
|
|
*
|
|
* @param directory the directory of which to enumerate the cards.
|
|
* @return an enumerator.
|
|
*/
|
|
nsISimpleEnumerator enumerateCards(in nsIAbDirectory directory);
|
|
|
|
/**
|
|
* Enumerate the cards associated with the mailing lists in the directory.
|
|
*
|
|
* @param directory the directory of which to enumerate the cards.
|
|
* @return an enumerator.
|
|
*/
|
|
nsISimpleEnumerator enumerateListAddresses(in nsIAbDirectory directory);
|
|
|
|
void getMailingListsFromDB(in nsIAbDirectory parentDir);
|
|
|
|
/**
|
|
* Delete a card from the database.
|
|
*
|
|
* @param aCard the card to be deleted.
|
|
* @param aNotify if set to true, all the listeners of the
|
|
* database will be notified.
|
|
* @param aParent parent directory from which the card
|
|
* is to be deleted. If set to null, listeners of
|
|
* the database will not be notified of card deletion.
|
|
*/
|
|
void deleteCard(in nsIAbCard aCard, in boolean aNotify, in nsIAbDirectory aParent);
|
|
|
|
/**
|
|
* Edit a card in the database.
|
|
*
|
|
* @param aCard the card to be edited.
|
|
* @param aNotify if set to true, all the listeners of the
|
|
* database will be notified.
|
|
* @param aParent parent directory in which the card
|
|
* is to be edited. If set to null, listeners of
|
|
* the database will not be notified of card entry
|
|
* change.
|
|
*/
|
|
void editCard(in nsIAbCard aCard, in boolean aNotify, in nsIAbDirectory aParent);
|
|
boolean containsCard(in nsIAbCard card);
|
|
/**
|
|
* Deletes a mailing list from the directory
|
|
*
|
|
* @param aMailList The nsIAbDirectory implementation of the mailing
|
|
* list that is to be deleted.
|
|
* @param aParent The parent of the mailing list that is being
|
|
* deleted. If this is supplied, then a notification
|
|
* of card entry change in the database will be made.
|
|
*/
|
|
void deleteMailList(in nsIAbDirectory aMailList,
|
|
[optional] in nsIAbDirectory aParent);
|
|
void editMailList(in nsIAbDirectory mailList, in nsIAbCard listCard, in boolean aNotify);
|
|
boolean containsMailList(in nsIAbDirectory mailList);
|
|
void deleteCardFromMailList(in nsIAbDirectory mailList, in nsIAbCard card, in boolean aNotify);
|
|
|
|
/**
|
|
* Gets the first card which matches the attribute/value pair supplied.
|
|
*
|
|
* @param aDirectory The current nsIAbDirectory associated with this
|
|
* instance of the database.
|
|
* @param aName The attribute to look up the value in.
|
|
* @param aUTF8Value The value to look up in UTF8 format.
|
|
* @param aCaseInsensitive Set to true for case-insenstive matching.
|
|
* @result Returns an nsIAbCard if one is found, otherwise
|
|
* NULL.
|
|
*/
|
|
nsIAbCard getCardFromAttribute(in nsIAbDirectory aDirectory, in string aName,
|
|
in AUTF8String aUTF8Value,
|
|
in boolean aCaseInsensitive);
|
|
|
|
/**
|
|
* Gets all cards which matches the attribute/value pair supplied.
|
|
*
|
|
* @param aDirectory The current nsIAbDirectory associated with this
|
|
* instance of the database.
|
|
* @param aName The attribute to look up the value in.
|
|
* @param aUTF8Value The value to look up in UTF8 format.
|
|
* @param aCaseInsensitive Set to true for case-insenstive matching.
|
|
* @result Returns an nsISimpleEnumerator of nsIAbCard
|
|
* instances.
|
|
*/
|
|
nsISimpleEnumerator getCardsFromAttribute(in nsIAbDirectory aDirectory,
|
|
in string aName,
|
|
in AUTF8String uUTF8Value,
|
|
in boolean aCaseInsensitive);
|
|
|
|
boolean findMailListbyUnicodeName(in wstring listName);
|
|
|
|
void getCardCount(out uint32_t count);
|
|
|
|
[noscript] readonly attribute nsIMdbRow newRow;
|
|
[noscript] readonly attribute nsIMdbRow newListRow;
|
|
[noscript] void addCardRowToDB(in nsIMdbRow newRow);
|
|
[noscript] void addLdifListMember(in nsIMdbRow row, in string value);
|
|
[noscript] void addFirstName(in nsIMdbRow row, in string value);
|
|
[noscript] void addLastName(in nsIMdbRow row, in string value);
|
|
[noscript] void addPhoneticFirstName(in nsIMdbRow row, in string value);
|
|
[noscript] void addPhoneticLastName(in nsIMdbRow row, in string value);
|
|
[noscript] void addDisplayName(in nsIMdbRow row, in string value);
|
|
[noscript] void addNickName(in nsIMdbRow row, in string value);
|
|
[noscript] void addPrimaryEmail(in nsIMdbRow row, in string value);
|
|
[noscript] void add2ndEmail(in nsIMdbRow row, in string value);
|
|
[noscript] void addWorkPhone(in nsIMdbRow row, in string value);
|
|
[noscript] void addHomePhone(in nsIMdbRow row, in string value);
|
|
[noscript] void addFaxNumber(in nsIMdbRow row, in string value);
|
|
[noscript] void addPagerNumber(in nsIMdbRow row, in string value);
|
|
[noscript] void addCellularNumber(in nsIMdbRow row, in string value);
|
|
[noscript] void addWorkPhoneType(in nsIMdbRow row, in string value);
|
|
[noscript] void addHomePhoneType(in nsIMdbRow row, in string value);
|
|
[noscript] void addFaxNumberType(in nsIMdbRow row, in string value);
|
|
[noscript] void addPagerNumberType(in nsIMdbRow row, in string value);
|
|
[noscript] void addCellularNumberType(in nsIMdbRow row, in string value);
|
|
[noscript] void addHomeAddress(in nsIMdbRow row, in string value);
|
|
[noscript] void addHomeAddress2(in nsIMdbRow row, in string value);
|
|
[noscript] void addHomeCity(in nsIMdbRow row, in string value);
|
|
[noscript] void addHomeState(in nsIMdbRow row, in string value);
|
|
[noscript] void addHomeZipCode(in nsIMdbRow row, in string value);
|
|
[noscript] void addHomeCountry(in nsIMdbRow row, in string value);
|
|
[noscript] void addWorkAddress(in nsIMdbRow row, in string value);
|
|
[noscript] void addWorkAddress2(in nsIMdbRow row, in string value);
|
|
[noscript] void addWorkCity(in nsIMdbRow row, in string value);
|
|
[noscript] void addWorkState(in nsIMdbRow row, in string value);
|
|
[noscript] void addWorkZipCode(in nsIMdbRow row, in string value);
|
|
[noscript] void addWorkCountry(in nsIMdbRow row, in string value);
|
|
[noscript] void addJobTitle(in nsIMdbRow row, in string value);
|
|
[noscript] void addDepartment(in nsIMdbRow row, in string value);
|
|
[noscript] void addCompany(in nsIMdbRow row, in string value);
|
|
[noscript] void addAimScreenName(in nsIMdbRow row, in string value);
|
|
[noscript] void addAnniversaryYear(in nsIMdbRow row, in string value);
|
|
[noscript] void addAnniversaryMonth(in nsIMdbRow row, in string value);
|
|
[noscript] void addAnniversaryDay(in nsIMdbRow row, in string value);
|
|
[noscript] void addSpouseName(in nsIMdbRow row, in string value);
|
|
[noscript] void addFamilyName(in nsIMdbRow row, in string value);
|
|
[noscript] void addDefaultAddress(in nsIMdbRow row, in string value);
|
|
[noscript] void addCategory(in nsIMdbRow row, in string value);
|
|
[noscript] void addWebPage1(in nsIMdbRow row, in string value);
|
|
[noscript] void addWebPage2(in nsIMdbRow row, in string value);
|
|
[noscript] void addBirthYear(in nsIMdbRow row, in string value);
|
|
[noscript] void addBirthMonth(in nsIMdbRow row, in string value);
|
|
[noscript] void addBirthDay(in nsIMdbRow row, in string value);
|
|
[noscript] void addCustom1(in nsIMdbRow row, in string value);
|
|
[noscript] void addCustom2(in nsIMdbRow row, in string value);
|
|
[noscript] void addCustom3(in nsIMdbRow row, in string value);
|
|
[noscript] void addCustom4(in nsIMdbRow row, in string value);
|
|
[noscript] void addNotes(in nsIMdbRow row, in string value);
|
|
[noscript] void addPreferMailFormat(in nsIMdbRow row, in unsigned long value);
|
|
[noscript] void addPopularityIndex(in nsIMdbRow row, in unsigned long value);
|
|
|
|
[noscript] void addListName(in nsIMdbRow row, in string value);
|
|
[noscript] void addListNickName(in nsIMdbRow row, in string value);
|
|
[noscript] void addListDescription(in nsIMdbRow row, in string value);
|
|
[noscript] void addListDirNode(in nsIMdbRow listRow);
|
|
|
|
/**
|
|
* use for getting and setting generic string attributes
|
|
* like _AimScreenName
|
|
*/
|
|
void setCardValue(in nsIAbCard card, in string name, in wstring value, in boolean notify);
|
|
wstring getCardValue(in nsIAbCard card, in string name);
|
|
|
|
/**
|
|
* Returns an array of the deleted cards currently stored in the mork file.
|
|
*/
|
|
readonly attribute nsIArray deletedCardList;
|
|
|
|
/**
|
|
* Returns the count of the deleted card currently stored in the mork file.
|
|
*/
|
|
readonly attribute unsigned long deletedCardCount;
|
|
|
|
/**
|
|
* Add the column representing the card to the mailing list row
|
|
* in the database.
|
|
*
|
|
* @param aPCard the card to be added.
|
|
* @param aPListRow the row to which the column will be added.
|
|
* @param aPos the position of the card in the mailing list.
|
|
* @param aPNewCard a pointer to hold the new card added to the row.
|
|
* @param aInMailingList If set to true, the card is already present
|
|
* in the mailing list
|
|
* @param aParent parent mailing list to which the card
|
|
* is added. If set to null, listeners of the
|
|
* database will not be notified of card creation.
|
|
* @param aRoot If the card is created while creating a new mailing
|
|
* list, its set to the parent addressbook.
|
|
* Set to null in other case.
|
|
*/
|
|
void AddListCardColumnsToRow(in nsIAbCard aPCard,
|
|
in nsIMdbRow aPListRow,
|
|
in unsigned long aPos,
|
|
out nsIAbCard aPNewCard,
|
|
in boolean aInMailingList,
|
|
in nsIAbDirectory aParent,
|
|
in nsIAbDirectory aRoot);
|
|
void InitCardFromRow(in nsIAbCard aNewCard,in nsIMdbRow aCardRow);
|
|
void SetListAddressTotal(in nsIMdbRow aListRow, in uint32_t aTotal);
|
|
nsIMdbRow FindRowByCard(in nsIAbCard aCard);
|
|
};
|