mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-28 03:17:31 +09:00
Issue #1258 - Part 1: Import mailnews, ldap, and mork from comm-esr52.9.1
This commit is contained in:
parent
23e0d82436
commit
e400f4130a
1564 changed files with 510348 additions and 0 deletions
47
mailnews/addrbook/public/moz.build
Normal file
47
mailnews/addrbook/public/moz.build
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
# vim: set filetype=python:
|
||||
# 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/.
|
||||
|
||||
XPIDL_SOURCES += [
|
||||
'nsIAbAddressCollector.idl',
|
||||
'nsIAbAutoCompleteResult.idl',
|
||||
'nsIAbBooleanExpression.idl',
|
||||
'nsIAbCard.idl',
|
||||
'nsIAbCollection.idl',
|
||||
'nsIAbDirectory.idl',
|
||||
'nsIAbDirectoryQuery.idl',
|
||||
'nsIAbDirectoryQueryProxy.idl',
|
||||
'nsIAbDirectorySearch.idl',
|
||||
'nsIAbDirFactory.idl',
|
||||
'nsIAbDirFactoryService.idl',
|
||||
'nsIAbDirSearchListener.idl',
|
||||
'nsIAbItem.idl',
|
||||
'nsIAbLDAPAttributeMap.idl',
|
||||
'nsIAbLDIFService.idl',
|
||||
'nsIAbListener.idl',
|
||||
'nsIAbManager.idl',
|
||||
'nsIAbMDBDirectory.idl',
|
||||
'nsIAbView.idl',
|
||||
'nsIAddbookUrl.idl',
|
||||
'nsIAddrDatabase.idl',
|
||||
'nsIAddrDBAnnouncer.idl',
|
||||
'nsIAddrDBListener.idl',
|
||||
'nsIMsgVCardService.idl',
|
||||
]
|
||||
|
||||
if CONFIG['MOZ_LDAP_XPCOM']:
|
||||
XPIDL_SOURCES += [
|
||||
'nsIAbLDAPCard.idl',
|
||||
'nsIAbLDAPDirectory.idl',
|
||||
'nsIAbLDAPReplicationData.idl',
|
||||
'nsIAbLDAPReplicationQuery.idl',
|
||||
'nsIAbLDAPReplicationService.idl',
|
||||
]
|
||||
|
||||
XPIDL_MODULE = 'addrbook'
|
||||
|
||||
EXPORTS += [
|
||||
'nsAbBaseCID.h',
|
||||
]
|
||||
|
||||
445
mailnews/addrbook/public/nsAbBaseCID.h
Normal file
445
mailnews/addrbook/public/nsAbBaseCID.h
Normal file
|
|
@ -0,0 +1,445 @@
|
|||
/* -*- 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/. */
|
||||
|
||||
#ifndef nsAbBaseCID_h__
|
||||
#define nsAbBaseCID_h__
|
||||
|
||||
#include "nsISupports.h"
|
||||
#include "nsIFactory.h"
|
||||
#include "nsIComponentManager.h"
|
||||
|
||||
//
|
||||
// The start of the contract ID for address book directory factories.
|
||||
//
|
||||
#define NS_AB_DIRECTORY_FACTORY_CONTRACTID_PREFIX \
|
||||
"@mozilla.org/addressbook/directory-factory;1?name="
|
||||
|
||||
//
|
||||
// The start of the contract ID for address book directory types
|
||||
//
|
||||
#define NS_AB_DIRECTORY_TYPE_CONTRACTID_PREFIX \
|
||||
"@mozilla.org/addressbook/directory;1?type="
|
||||
|
||||
//
|
||||
// nsAbManager
|
||||
//
|
||||
#define NS_ABMANAGER_CONTRACTID \
|
||||
"@mozilla.org/abmanager;1"
|
||||
|
||||
#define NS_ABMANAGERSTARTUPHANDLER_CONTRACTID \
|
||||
"@mozilla.org/commandlinehandler/general-startup;1?type=addressbook"
|
||||
|
||||
#define NS_ABMANAGER_CID \
|
||||
{ /* {ad81b321-8a8a-42ca-a508-fe659de84586} */ \
|
||||
0xad81b321, 0x8a8a, 0x42ca, \
|
||||
{0xa5, 0x08, 0xfe, 0x65, 0x9d, 0x8e, 0x45, 0x86} \
|
||||
}
|
||||
|
||||
//
|
||||
// nsAbContentHandler
|
||||
//
|
||||
#define NS_ABCONTENTHANDLER_CID \
|
||||
{ /* {a72ad552-0484-4b5f-8d45-2d79158d22e3} */ \
|
||||
0xa72ad552, 0x0484, 0x4b5f, \
|
||||
{0x8d, 0x45, 0x2d, 0x79, 0x15, 0x8d, 0x22, 0xe3} \
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// nsAbBSDirectory - the root address book
|
||||
//
|
||||
#define NS_ABDIRECTORY_CONTRACTID \
|
||||
NS_AB_DIRECTORY_TYPE_CONTRACTID_PREFIX "moz-abdirectory"
|
||||
|
||||
#define NS_ABDIRECTORY_CID \
|
||||
{ /* {012D3C24-1DD2-11B2-BA79-B4AD359FC461}*/ \
|
||||
0x012D3C24, 0x1DD2, 0x11B2, \
|
||||
{0xBA, 0x79, 0xB4, 0xAD, 0x35, 0x9F, 0xC4, 0x61} \
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// nsAddressBookDB
|
||||
//
|
||||
#define NS_ADDRDATABASE_CONTRACTID \
|
||||
"@mozilla.org/addressbook/carddatabase;1"
|
||||
|
||||
#define NS_ADDRDATABASE_CID \
|
||||
{ /* 63187917-1D19-11d3-A302-001083003D0C */ \
|
||||
0x63187917, 0x1d19, 0x11d3, \
|
||||
{0xa3, 0x2, 0x0, 0x10, 0x83, 0x0, 0x3d, 0xc} \
|
||||
}
|
||||
|
||||
//
|
||||
// nsAbCardProperty
|
||||
//
|
||||
#define NS_ABCARDPROPERTY_CONTRACTID \
|
||||
"@mozilla.org/addressbook/cardproperty;1"
|
||||
#define NS_ABCARDPROPERTY_CID \
|
||||
{ /* 2B722171-2CEA-11d3-9E0B-00A0C92B5F0D */ \
|
||||
0x2b722171, 0x2cea, 0x11d3, \
|
||||
{0x9e, 0xb, 0x0, 0xa0, 0xc9, 0x2b, 0x5f, 0xd} \
|
||||
}
|
||||
|
||||
//
|
||||
// nsAbDirProperty
|
||||
//
|
||||
#define NS_ABDIRPROPERTY_CONTRACTID \
|
||||
"@mozilla.org/addressbook/directoryproperty;1"
|
||||
#define NS_ABDIRPROPERTY_CID \
|
||||
{ /* 6FD8EC67-3965-11d3-A316-001083003D0C */ \
|
||||
0x6fd8ec67, 0x3965, 0x11d3, \
|
||||
{0xa3, 0x16, 0x0, 0x10, 0x83, 0x0, 0x3d, 0xc} \
|
||||
}
|
||||
|
||||
//
|
||||
// nsAbDirectoryProperties
|
||||
//
|
||||
#define NS_ABDIRECTORYPROPERTIES_CONTRACTID \
|
||||
"@mozilla.org/addressbook/properties;1"
|
||||
#define NS_ABDIRECTORYPROPERTIES_CID \
|
||||
{ /* 8b00a972-1dd2-11b2-9d9c-9c377a9c3dba */ \
|
||||
0x8b00a972, 0x1dd2, 0x11b2, \
|
||||
{0x9d, 0x9c, 0x9c, 0x37, 0x7a, 0x9c, 0x3d, 0xba} \
|
||||
}
|
||||
|
||||
//
|
||||
// nsAbAddressCollector
|
||||
//
|
||||
#define NS_ABADDRESSCOLLECTOR_CONTRACTID \
|
||||
"@mozilla.org/addressbook/services/addressCollector;1"
|
||||
#define NS_ABADDRESSCOLLECTOR_CID \
|
||||
{ /* e7702d5a-99d8-4648-bab7-919ea29f30b6 */ \
|
||||
0xe7702d5a, 0x99d8, 0x4648, \
|
||||
{0xba, 0xb7, 0x91, 0x9e, 0xa2, 0x9f, 0x30, 0xb6} \
|
||||
}
|
||||
|
||||
//
|
||||
// addbook URL
|
||||
//
|
||||
#define NS_ADDBOOKURL_CONTRACTID \
|
||||
"@mozilla.org/addressbook/services/url;1?type=addbook"
|
||||
|
||||
#define NS_ADDBOOKURL_CID \
|
||||
{ /* ff04c8e6-501e-11d3-a527-0060b0fc0444 */ \
|
||||
0xff04c8e6, 0x501e, 0x11d3, \
|
||||
{0xa5, 0x27, 0x0, 0x60, 0xb0, 0xfc, 0x4, 0x44} \
|
||||
}
|
||||
|
||||
//
|
||||
// addbook Protocol Handler
|
||||
//
|
||||
#define NS_ADDBOOK_HANDLER_CONTRACTID \
|
||||
"@mozilla.org/addressbook/services/addbook;1"
|
||||
#define NS_ADDBOOK_HANDLER_CID \
|
||||
{ /* ff04c8e6-501e-11d3-ffcc-0060b0fc0444 */ \
|
||||
0xff04c8e6, 0x501e, 0x11d3, \
|
||||
{0xff, 0xcc, 0x0, 0x60, 0xb0, 0xfc, 0x4, 0x44} \
|
||||
}
|
||||
|
||||
//
|
||||
// directory factory service
|
||||
//
|
||||
#define NS_ABDIRFACTORYSERVICE_CONTRACTID \
|
||||
"@mozilla.org/addressbook/directory-factory-service;1"
|
||||
|
||||
#define NS_ABDIRFACTORYSERVICE_CID \
|
||||
{ /* {F8B212F2-742B-4A48-B7A0-4C44D4DDB121}*/ \
|
||||
0xF8B212F2, 0x742B, 0x4A48, \
|
||||
{0xB7, 0xA0, 0x4C, 0x44, 0xD4, 0xDD, 0xB1, 0x21} \
|
||||
}
|
||||
|
||||
//
|
||||
// mdb directory factory
|
||||
//
|
||||
#define NS_ABMDBDIRECTORY "moz-abmdbdirectory"
|
||||
|
||||
#define NS_ABMDBDIRFACTORY_CONTRACTID \
|
||||
NS_AB_DIRECTORY_FACTORY_CONTRACTID_PREFIX NS_ABMDBDIRECTORY
|
||||
|
||||
#define NS_ABMDBDIRFACTORY_CID \
|
||||
{ /* {E1CB9C8A-722D-43E4-9D7B-7CCAE4B0338A}*/ \
|
||||
0xE1CB9C8A, 0x722D, 0x43E4, \
|
||||
{0x9D, 0x7B, 0x7C, 0xCA, 0xE4, 0xB0, 0x33, 0x8A} \
|
||||
}
|
||||
|
||||
//
|
||||
// nsAbMDBDirectory
|
||||
//
|
||||
#define NS_ABMDBDIRECTORY_CONTRACTID \
|
||||
NS_AB_DIRECTORY_TYPE_CONTRACTID_PREFIX NS_ABMDBDIRECTORY
|
||||
|
||||
#define NS_ABMDBDIRECTORY_CID \
|
||||
{ /* {e618f894-1dd1-11b2-889c-9aaefaa90dde}*/ \
|
||||
0xe618f894, 0x1dd1, 0x11b2, \
|
||||
{0x88, 0x9c, 0x9a, 0xae, 0xfa, 0xa9, 0x0d, 0xde} \
|
||||
}
|
||||
|
||||
//
|
||||
// nsAbMDBCard
|
||||
//
|
||||
#define NS_ABMDBCARD_CONTRACTID \
|
||||
"@mozilla.org/addressbook/moz-abmdbcard;1"
|
||||
|
||||
#define NS_ABMDBCARD_CID \
|
||||
{ /* {f578a5d2-1dd1-11b2-8841-f45cc5e765f8} */ \
|
||||
0xf578a5d2, 0x1dd1, 0x11b2, \
|
||||
{0x88, 0x41, 0xf4, 0x5c, 0xc5, 0xe7, 0x65, 0xf8} \
|
||||
}
|
||||
|
||||
#ifdef XP_WIN
|
||||
//
|
||||
// nsAbOutlookDirectory
|
||||
//
|
||||
#define NS_ABOUTLOOKDIRECTORY_CONTRACTID \
|
||||
NS_AB_DIRECTORY_TYPE_CONTRACTID_PREFIX "moz-aboutlookdirectory"
|
||||
|
||||
#define NS_ABOUTLOOKDIRECTORY_CID \
|
||||
{ /* {9cc57822-0599-4c47-a399-1c6fa185a05c}*/ \
|
||||
0x9cc57822, 0x0599, 0x4c47, \
|
||||
{0xa3, 0x99, 0x1c, 0x6f, 0xa1, 0x85, 0xa0, 0x5c} \
|
||||
}
|
||||
|
||||
//
|
||||
// Outlook directory factory
|
||||
//
|
||||
#define NS_ABOUTLOOKDIRFACTORY_CONTRACTID \
|
||||
NS_AB_DIRECTORY_FACTORY_CONTRACTID_PREFIX "moz-aboutlookdirectory"
|
||||
|
||||
#define NS_ABOUTLOOKDIRFACTORY_CID \
|
||||
{ /* {558ccc0f-2681-4dac-a066-debd8d26faf6}*/ \
|
||||
0x558ccc0f, 0x2681, 0x4dac, \
|
||||
{0xa0, 0x66, 0xde, 0xbd, 0x8d, 0x26, 0xfa, 0xf6} \
|
||||
}
|
||||
#endif
|
||||
|
||||
//
|
||||
// Addressbook Query support
|
||||
//
|
||||
|
||||
#define NS_ABDIRECTORYQUERYARGUMENTS_CONTRACTID \
|
||||
"@mozilla.org/addressbook/directory/query-arguments;1"
|
||||
|
||||
#define NS_ABDIRECTORYQUERYARGUMENTS_CID \
|
||||
{ /* {f7dc2aeb-8e62-4750-965c-24b9e09ed8d2} */ \
|
||||
0xf7dc2aeb, 0x8e62, 0x4750, \
|
||||
{ 0x96, 0x5c, 0x24, 0xb9, 0xe0, 0x9e, 0xd8, 0xd2 } \
|
||||
}
|
||||
|
||||
|
||||
#define NS_BOOLEANCONDITIONSTRING_CONTRACTID \
|
||||
"@mozilla.org/boolean-expression/condition-string;1"
|
||||
|
||||
#define NS_BOOLEANCONDITIONSTRING_CID \
|
||||
{ /* {ca1944a9-527e-4c77-895d-d0466dd41cf5} */ \
|
||||
0xca1944a9, 0x527e, 0x4c77, \
|
||||
{ 0x89, 0x5d, 0xd0, 0x46, 0x6d, 0xd4, 0x1c, 0xf5 } \
|
||||
}
|
||||
|
||||
|
||||
#define NS_BOOLEANEXPRESSION_CONTRACTID \
|
||||
"@mozilla.org/boolean-expression/n-peer;1"
|
||||
|
||||
#define NS_BOOLEANEXPRESSION_CID \
|
||||
{ /* {2c2e75c8-6f56-4a50-af1c-72af5d0e8d41} */ \
|
||||
0x2c2e75c8, 0x6f56, 0x4a50, \
|
||||
{ 0xaf, 0x1c, 0x72, 0xaf, 0x5d, 0x0e, 0x8d, 0x41 } \
|
||||
}
|
||||
|
||||
#define NS_ABDIRECTORYQUERYPROXY_CONTRACTID \
|
||||
"@mozilla.org/addressbook/directory-query/proxy;1"
|
||||
|
||||
#define NS_ABDIRECTORYQUERYPROXY_CID \
|
||||
{ /* {E162E335-541B-43B4-AAEA-FE591E240CAF}*/ \
|
||||
0xE162E335, 0x541B, 0x43B4, \
|
||||
{0xAA, 0xEA, 0xFE, 0x59, 0x1E, 0x24, 0x0C, 0xAF} \
|
||||
}
|
||||
|
||||
// nsAbLDAPDirectory
|
||||
//
|
||||
#define NS_ABLDAPDIRECTORY_CONTRACTID \
|
||||
NS_AB_DIRECTORY_TYPE_CONTRACTID_PREFIX "moz-abldapdirectory"
|
||||
|
||||
#define NS_ABLDAPDIRECTORY_CID \
|
||||
{ /* {783E2777-66D7-4826-9E4B-8AB58C228A52}*/ \
|
||||
0x783E2777, 0x66D7, 0x4826, \
|
||||
{0x9E, 0x4B, 0x8A, 0xB5, 0x8C, 0x22, 0x8A, 0x52} \
|
||||
}
|
||||
|
||||
// nsAbLDAPDirectoryQuery
|
||||
//
|
||||
#define NS_ABLDAPDIRECTORYQUERY_CONTRACTID \
|
||||
"@mozilla.org/addressbook/ldap-directory-query;1"
|
||||
|
||||
#define NS_ABLDAPDIRECTORYQUERY_CID \
|
||||
{ /* {783E2777-66D7-4826-9E4B-8AB58C228A53}*/ \
|
||||
0x783E2777, 0x66D7, 0x4826, \
|
||||
{0x9E, 0x4B, 0x8A, 0xB5, 0x8C, 0x22, 0x8A, 0x53} \
|
||||
}
|
||||
|
||||
//
|
||||
// nsAbLDAPCard
|
||||
//
|
||||
#define NS_ABLDAPCARD_CONTRACTID \
|
||||
"@mozilla.org/addressbook/moz-abldapcard"
|
||||
|
||||
#define NS_ABLDAPCARD_CID \
|
||||
{ /* {10307B01-EBD6-465F-B972-1630410F70E6}*/ \
|
||||
0x10307B01, 0xEBD6, 0x465F, \
|
||||
{0xB9, 0x72, 0x16, 0x30, 0x41, 0x0F, 0x70, 0xE6} \
|
||||
}
|
||||
|
||||
//
|
||||
// LDAP directory factory
|
||||
//
|
||||
#define NS_ABLDAPDIRFACTORY_CONTRACTID \
|
||||
NS_AB_DIRECTORY_FACTORY_CONTRACTID_PREFIX "moz-abldapdirectory"
|
||||
|
||||
#define NS_ABLDAPDIRFACTORY_CID \
|
||||
{ /* {8e3701af-8828-426c-84ac-124825c778f8} */ \
|
||||
0x8e3701af, 0x8828, 0x426c, \
|
||||
{0x84, 0xac, 0x12, 0x48, 0x25, 0xc7, 0x78, 0xf8} \
|
||||
}
|
||||
|
||||
//
|
||||
// LDAP autocomplete directory factory
|
||||
//
|
||||
#define NS_ABLDAPACDIRFACTORY_CONTRACTID \
|
||||
NS_AB_DIRECTORY_FACTORY_CONTRACTID_PREFIX "ldap"
|
||||
#define NS_ABLDAPSACDIRFACTORY_CONTRACTID \
|
||||
NS_AB_DIRECTORY_FACTORY_CONTRACTID_PREFIX "ldaps"
|
||||
|
||||
// nsAbLDAPAutoCompFormatter
|
||||
|
||||
// 4e276d6d-9981-46b4-9070-92f344ac5f5a
|
||||
//
|
||||
#define NS_ABLDAPAUTOCOMPFORMATTER_CID \
|
||||
{ 0x4e276d6d, 0x9981, 0x46b4, \
|
||||
{ 0x90, 0x70, 0x92, 0xf3, 0x44, 0xac, 0x5f, 0x5a }}
|
||||
|
||||
#define NS_ABLDAPAUTOCOMPFORMATTER_CONTRACTID \
|
||||
"@mozilla.org/ldap-autocomplete-formatter;1?type=addrbook"
|
||||
|
||||
|
||||
// nsAbLDAPReplicationService
|
||||
//
|
||||
// {ece81280-2639-11d6-b791-00b0d06e5f27}
|
||||
//
|
||||
#define NS_ABLDAP_REPLICATIONSERVICE_CID \
|
||||
{0xece81280, 0x2639, 0x11d6, \
|
||||
{ 0xb7, 0x91, 0x00, 0xb0, 0xd0, 0x6e, 0x5f, 0x27 }}
|
||||
|
||||
#define NS_ABLDAP_REPLICATIONSERVICE_CONTRACTID \
|
||||
"@mozilla.org/addressbook/ldap-replication-service;1"
|
||||
|
||||
// nsAbLDAPReplicationQuery
|
||||
//
|
||||
// {5414fff0-263b-11d6-b791-00b0d06e5f27}
|
||||
//
|
||||
#define NS_ABLDAP_REPLICATIONQUERY_CID \
|
||||
{0x5414fff0, 0x263b, 0x11d6, \
|
||||
{ 0xb7, 0x91, 0x00, 0xb0, 0xd0, 0x6e, 0x5f, 0x27 }}
|
||||
|
||||
#define NS_ABLDAP_REPLICATIONQUERY_CONTRACTID \
|
||||
"@mozilla.org/addressbook/ldap-replication-query;1"
|
||||
|
||||
|
||||
// nsAbLDAPChangeLogQuery
|
||||
//
|
||||
// {63E11D51-3C9B-11d6-B7B9-00B0D06E5F27}
|
||||
#define NS_ABLDAP_CHANGELOGQUERY_CID \
|
||||
{0x63e11d51, 0x3c9b, 0x11d6, \
|
||||
{ 0xb7, 0xb9, 0x0, 0xb0, 0xd0, 0x6e, 0x5f, 0x27 }}
|
||||
|
||||
#define NS_ABLDAP_CHANGELOGQUERY_CONTRACTID \
|
||||
"@mozilla.org/addressbook/ldap-changelog-query;1"
|
||||
|
||||
// nsAbLDAPProcessReplicationData
|
||||
//
|
||||
// {5414fff1-263b-11d6-b791-00b0d06e5f27}
|
||||
//
|
||||
#define NS_ABLDAP_PROCESSREPLICATIONDATA_CID \
|
||||
{0x5414fff1, 0x263b, 0x11d6, \
|
||||
{ 0xb7, 0x91, 0x00, 0xb0, 0xd0, 0x6e, 0x5f, 0x27 }}
|
||||
|
||||
#define NS_ABLDAP_PROCESSREPLICATIONDATA_CONTRACTID \
|
||||
"@mozilla.org/addressbook/ldap-process-replication-data;1"
|
||||
|
||||
|
||||
// nsAbLDAPProcessChangeLogData
|
||||
//
|
||||
// {63E11D52-3C9B-11d6-B7B9-00B0D06E5F27}
|
||||
#define NS_ABLDAP_PROCESSCHANGELOGDATA_CID \
|
||||
{0x63e11d52, 0x3c9b, 0x11d6, \
|
||||
{0xb7, 0xb9, 0x0, 0xb0, 0xd0, 0x6e, 0x5f, 0x27 }}
|
||||
|
||||
#define NS_ABLDAP_PROCESSCHANGELOGDATA_CONTRACTID \
|
||||
"@mozilla.org/addressbook/ldap-process-changelog-data;1"
|
||||
|
||||
// nsABView
|
||||
|
||||
#define NS_ABVIEW_CID \
|
||||
{ 0xc5eb5d6a, 0x1dd1, 0x11b2, \
|
||||
{ 0xa0, 0x25, 0x94, 0xd1, 0x18, 0x1f, 0xc5, 0x9c }}
|
||||
|
||||
#define NS_ABVIEW_CONTRACTID \
|
||||
"@mozilla.org/addressbook/abview;1"
|
||||
|
||||
#ifdef XP_MACOSX
|
||||
//
|
||||
// nsAbOSXDirectory
|
||||
//
|
||||
#define NS_ABOSXDIRECTORY_PREFIX "moz-abosxdirectory"
|
||||
#define NS_ABOSXCARD_PREFIX "moz-abosxcard"
|
||||
|
||||
#define NS_ABOSXDIRECTORY_CONTRACTID \
|
||||
NS_AB_DIRECTORY_TYPE_CONTRACTID_PREFIX NS_ABOSXDIRECTORY_PREFIX
|
||||
|
||||
#define NS_ABOSXDIRECTORY_CID \
|
||||
{ /* {83781cc6-c682-11d6-bdeb-0005024967b8}*/ \
|
||||
0x83781cc6, 0xc682, 0x11d6, \
|
||||
{0xbd, 0xeb, 0x00, 0x05, 0x02, 0x49, 0x67, 0xb8} \
|
||||
}
|
||||
|
||||
//
|
||||
// nsAbOSXCard
|
||||
//
|
||||
#define NS_ABOSXCARD_CONTRACTID \
|
||||
NS_AB_DIRECTORY_TYPE_CONTRACTID_PREFIX NS_ABOSXCARD_PREFIX
|
||||
|
||||
#define NS_ABOSXCARD_CID \
|
||||
{ /* {89bbf582-c682-11d6-bc9d-0005024967b8}*/ \
|
||||
0x89bbf582, 0xc682, 0x11d6, \
|
||||
{0xbc, 0x9d, 0x00, 0x05, 0x02, 0x49, 0x67, 0xb8} \
|
||||
}
|
||||
|
||||
//
|
||||
// OS X directory factory
|
||||
//
|
||||
#define NS_ABOSXDIRFACTORY_CONTRACTID \
|
||||
NS_AB_DIRECTORY_FACTORY_CONTRACTID_PREFIX NS_ABOSXDIRECTORY_PREFIX
|
||||
|
||||
#define NS_ABOSXDIRFACTORY_CID \
|
||||
{ /* {90efe2fe-c682-11d6-9c83-0005024967b8}*/ \
|
||||
0x90efe2fe, 0xc682, 0x11d6, \
|
||||
{0x9c, 0x83, 0x00, 0x05, 0x02, 0x49, 0x67, 0xb8} \
|
||||
}
|
||||
#endif
|
||||
|
||||
#define NS_MSGVCARDSERVICE_CID \
|
||||
{ 0x3c4ac0da, 0x2cda, 0x4018, \
|
||||
{ 0x95, 0x51, 0xe1, 0x58, 0xb2, 0xe1, 0x22, 0xd3 }}
|
||||
|
||||
#define NS_MSGVCARDSERVICE_CONTRACTID \
|
||||
"@mozilla.org/addressbook/msgvcardservice;1"
|
||||
|
||||
#define NS_ABLDIFSERVICE_CID \
|
||||
{ 0xdb6f46da, 0x8de3, 0x478d, \
|
||||
{ 0xb5, 0x39, 0x80, 0x13, 0x98, 0x65, 0x6c, 0xf6 }}
|
||||
|
||||
#define NS_ABLDIFSERVICE_CONTRACTID \
|
||||
"@mozilla.org/addressbook/abldifservice;1"
|
||||
|
||||
#endif // nsAbBaseCID_h__
|
||||
58
mailnews/addrbook/public/nsIAbAddressCollector.idl
Normal file
58
mailnews/addrbook/public/nsIAbAddressCollector.idl
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
/* -*- 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"
|
||||
|
||||
interface nsIAbCard;
|
||||
|
||||
/**
|
||||
* nsIAbAddressCollector is the interface to the address collecter service.
|
||||
* It will save and update the supplied addresses into the address book
|
||||
* specified by the "mail.collect_addressbook" pref.
|
||||
*/
|
||||
[scriptable, uuid(069d3fba-37d4-4158-b401-a8efaeea0b66)]
|
||||
interface nsIAbAddressCollector : nsISupports {
|
||||
/**
|
||||
* Collects email addresses into the address book.
|
||||
* If a card already exists for the email, the first/last/display names
|
||||
* will be updated if they are supplied alongside the address.
|
||||
* If a card does not exist for the email it will be created if aCreateCard
|
||||
* is true.
|
||||
*
|
||||
* @param aAddresses The list of emails (in standard header format)
|
||||
* to collect into the address book.
|
||||
* @param aCreateCard Set to true if a card should be created if the
|
||||
* email address doesn't exist.
|
||||
* @param aSendFormat The send format to save for the card. See
|
||||
* nsIAbPreferMailFormat for values. If updating a card
|
||||
* this value will only be changed if the current value
|
||||
* for the card is "unknown".
|
||||
*/
|
||||
void collectAddress(in AUTF8String aAddresses, in boolean aCreateCard,
|
||||
in unsigned long aSendFormat);
|
||||
|
||||
/**
|
||||
* Collects a single name and email address into the address book.
|
||||
* By default, it saves the address without checking for an existing one.
|
||||
* See collectAddress for the general implementation.
|
||||
*
|
||||
* @param aEmail The email address to collect.
|
||||
* @param aDisplayName The display name associated with the email address.
|
||||
* @param aCreateCard Set to true if a card should be created if the
|
||||
* email address doesn't exist (ignored if
|
||||
* aSkipCheckExisting is true).
|
||||
* @param aSendFormat The send format to save for the card. See
|
||||
* nsIAbPreferMailFormat for values. If updating a card
|
||||
* this value will only be changed if the current value
|
||||
* for the card is "unknown".
|
||||
* @param aSkipCheckExisting Optional parameter, if this is set then the
|
||||
* implementation will skip checking for an
|
||||
* existing card, and just create a new card.
|
||||
*/
|
||||
void collectSingleAddress(in AUTF8String aEmail, in AUTF8String aDisplayName,
|
||||
in boolean aCreateCard,
|
||||
in unsigned long aSendFormat,
|
||||
[optional] in boolean aSkipCheckExisting);
|
||||
};
|
||||
36
mailnews/addrbook/public/nsIAbAutoCompleteResult.idl
Normal file
36
mailnews/addrbook/public/nsIAbAutoCompleteResult.idl
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
/* -*- 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 "nsIAutoCompleteResult.idl"
|
||||
|
||||
interface nsIAbCard;
|
||||
|
||||
/**
|
||||
* This interface is used to extend the nsIAutoCompleteResult interface to
|
||||
* provide extra facilities for obtaining more details of the results of
|
||||
* an address book search.
|
||||
*/
|
||||
[scriptable, uuid(c0d35623-f719-4e43-ae24-573e393f87f9)]
|
||||
interface nsIAbAutoCompleteResult : nsIAutoCompleteResult {
|
||||
/**
|
||||
* Get the card from the result at the given index
|
||||
*/
|
||||
nsIAbCard getCardAt(in long index);
|
||||
|
||||
/**
|
||||
* Gets the email to use for the card within the result at the given index.
|
||||
* This is the email that was matched against for the card where there are
|
||||
* multiple email addresses on a card.
|
||||
*
|
||||
* @param index Index of the autocomplete result to return the value for.
|
||||
* @result The email address to use from the card.
|
||||
*/
|
||||
AString getEmailToUse(in long index);
|
||||
|
||||
/**
|
||||
* The template used to build the query for this search. Optional.
|
||||
*/
|
||||
attribute AString modelQuery;
|
||||
};
|
||||
122
mailnews/addrbook/public/nsIAbBooleanExpression.idl
Normal file
122
mailnews/addrbook/public/nsIAbBooleanExpression.idl
Normal file
|
|
@ -0,0 +1,122 @@
|
|||
/* -*- 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"
|
||||
|
||||
interface nsIArray;
|
||||
typedef long nsAbBooleanConditionType;
|
||||
|
||||
/**
|
||||
* Condition types
|
||||
*
|
||||
* Constants defining the types of condition
|
||||
* to obtain a boolean result of TRUE or FALSE
|
||||
*
|
||||
*/
|
||||
[scriptable, uuid(F51387B1-5AEF-4A1C-830E-7CD3B02366CE)]
|
||||
interface nsIAbBooleanConditionTypes
|
||||
{
|
||||
const long Exists = 0;
|
||||
const long DoesNotExist = 1;
|
||||
const long Contains = 2;
|
||||
const long DoesNotContain = 3;
|
||||
const long Is = 4;
|
||||
const long IsNot = 5;
|
||||
const long BeginsWith = 6;
|
||||
const long EndsWith = 7;
|
||||
const long LessThan = 8;
|
||||
const long GreaterThan = 9;
|
||||
const long SoundsLike = 10;
|
||||
const long RegExp = 11;
|
||||
};
|
||||
|
||||
|
||||
typedef long nsAbBooleanOperationType;
|
||||
|
||||
/*
|
||||
* Operation types
|
||||
*
|
||||
* Constants defining the boolean operation that
|
||||
* should be performed between two boolean expressions
|
||||
*
|
||||
*/
|
||||
[uuid(9bdd2e51-2be4-49a4-a558-36d1a812231a)]
|
||||
interface nsIAbBooleanOperationTypes
|
||||
{
|
||||
const long AND = 0;
|
||||
const long OR = 1;
|
||||
const long NOT = 2;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* String condition
|
||||
*
|
||||
* A string condition represents a leaf node in a
|
||||
* boolean expression tree and represents
|
||||
* test which will return TRUE or FALSE
|
||||
*
|
||||
* Condition is an expression which is a
|
||||
* leaf node in a boolean expression tree
|
||||
*
|
||||
*/
|
||||
[scriptable, uuid(C3869D72-CFD0-45F0-A0EC-3F67D83C7110)]
|
||||
interface nsIAbBooleanConditionString : nsISupports
|
||||
{
|
||||
/**
|
||||
* The condition for how the a value
|
||||
* should be compared
|
||||
*
|
||||
*/
|
||||
attribute nsAbBooleanConditionType condition;
|
||||
|
||||
/**
|
||||
* The lhs of the condition
|
||||
*
|
||||
* Represents a property name which
|
||||
* should be evaluated to obtain the
|
||||
* lhs.
|
||||
*
|
||||
*/
|
||||
attribute string name;
|
||||
|
||||
/**
|
||||
* The rhs of the condition
|
||||
*
|
||||
* <name> [condition] value
|
||||
*
|
||||
*/
|
||||
attribute wstring value;
|
||||
};
|
||||
|
||||
/**
|
||||
* N Boolean expression type
|
||||
*
|
||||
* Supports Unary Binary and N boolean expressions
|
||||
*
|
||||
* An operation represents a node in a boolean
|
||||
* expression tree which may contain one or more
|
||||
* child conditions or expressions
|
||||
*
|
||||
*/
|
||||
[scriptable, uuid(223a9462-1aeb-4c1f-b069-5fc6278989b2)]
|
||||
interface nsIAbBooleanExpression: nsISupports
|
||||
{
|
||||
/**
|
||||
* The boolean operation to be applied to
|
||||
* results of all evaluated expressions
|
||||
*
|
||||
*/
|
||||
attribute nsAbBooleanOperationType operation;
|
||||
|
||||
/**
|
||||
* List of peer expressions
|
||||
*
|
||||
* e1 [op] e2 [op] .... en
|
||||
*
|
||||
*/
|
||||
attribute nsIArray expressions;
|
||||
};
|
||||
|
||||
358
mailnews/addrbook/public/nsIAbCard.idl
Normal file
358
mailnews/addrbook/public/nsIAbCard.idl
Normal file
|
|
@ -0,0 +1,358 @@
|
|||
/* -*- 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 "nsIAbItem.idl"
|
||||
|
||||
interface nsISimpleEnumerator;
|
||||
interface nsIVariant;
|
||||
|
||||
[scriptable, uuid(97448252-F189-11d4-A422-001083003D0C)]
|
||||
interface nsIAbPreferMailFormat {
|
||||
const unsigned long unknown = 0;
|
||||
const unsigned long plaintext = 1;
|
||||
const unsigned long html = 2;
|
||||
};
|
||||
|
||||
/**
|
||||
* An interface representing an address book card.
|
||||
*
|
||||
* The UUID of a card is a composition of a directory ID and a per-directory ID.
|
||||
* The per-directory ID is reflected in the localId property. If either of these
|
||||
* properties change, the UUID will change correspondingly.
|
||||
*
|
||||
* None of these IDs will be reflected in the property collection. Neither
|
||||
* nsIAbCard::properties, nsIAbCard::deleteProperty, nor any of the property
|
||||
* getters and setters are able to interact with these properties.
|
||||
*
|
||||
* Fundamentally, a card is a collection of properties. Modifying a property in
|
||||
* some way on a card does not change the backend used to store the card; the
|
||||
* directory is required to do make the changes here.
|
||||
*
|
||||
* The following are the core properties that are used:
|
||||
* - Names:
|
||||
* - FirstName, LastName
|
||||
* - PhoneticFirstName, PhoneticLastName
|
||||
* - DisplayName, NickName
|
||||
* - SpouseName, FamilyName
|
||||
* - PrimaryEmail, SecondEmail
|
||||
* - Home Contact:
|
||||
* - HomeAddress, HomeAddress2, HomeCity, HomeState, HomeZipCode, HomeCountry
|
||||
* - HomePhone, HomePhoneType
|
||||
* - Work contact. Same as home, but with `Work' instead of `Home'
|
||||
* - Other Contact:
|
||||
* - FaxNumber, FaxNumberType
|
||||
* - PagerNumber, PagerNumberType
|
||||
* - CellularNumber, CellularNumberType
|
||||
* - JobTitle, Department, Company
|
||||
* - _AimScreenName
|
||||
* - Dates:
|
||||
* - AnniversaryYear, AnniversaryMonth, AnniversaryDay
|
||||
* - BirthYear, BirthMonth, BirthDay
|
||||
* - WebPage1 (work), WebPage2 (home)
|
||||
* - Custom1, Custom2, Custom3, Custom4
|
||||
* - Notes
|
||||
* - Integral properties:
|
||||
* - LastModifiedDate
|
||||
* - PopularityIndex
|
||||
* - PreferMailFormat (see nsIAbPreferMailFormat)
|
||||
* - Photo properties:
|
||||
* - PhotoName
|
||||
* - PhotoType
|
||||
* - PhotoURI
|
||||
*
|
||||
* The contract id for the standard implementation is
|
||||
* <tt>\@mozilla.org/addressbook/cardproperty;1</tt>.
|
||||
*/
|
||||
[scriptable, uuid(9bddf024-5178-4097-894e-d84b4ddde101)]
|
||||
interface nsIAbCard : nsIAbItem {
|
||||
/**
|
||||
* The UUID for the nsIAbDirectory containing this card.
|
||||
*
|
||||
* The directory considered to contain this card is the directory which
|
||||
* produced this card (e.g., through nsIAbDirectory::getCardForProperty) or
|
||||
* the last directory to modify this card, if another directory did so. If the
|
||||
* last directory to modify this card deleted it, then this card is considered
|
||||
* unassociated.
|
||||
*
|
||||
* If this card is not associated with a directory, this string will be empty.
|
||||
*
|
||||
* There is no standardized way to associate a card with multiple directories.
|
||||
*
|
||||
* Consumers of this interface outside of directory implementations SHOULD
|
||||
* NOT, in general, modify this property.
|
||||
*/
|
||||
attribute AUTF8String directoryId;
|
||||
|
||||
/**
|
||||
* The per-directory ID of this card.
|
||||
*
|
||||
* This property is the second part of the tuple logically representing a card
|
||||
* UUID. It shares many requirements with that of nsIAbItem::uuid. In
|
||||
* particular:
|
||||
* - It MUST be unique (within the scope of its directory).
|
||||
* - The empty string MUST only be used to indicate that it has not yet been
|
||||
* assigned a localId.
|
||||
* - It is STRONGLY RECOMMENDED that this id is consistent across sessions and
|
||||
* that, should the card be deleted, its ids will not be reused.
|
||||
* - The format of localId is left undefined.
|
||||
*
|
||||
* As long as directoryId is not changed, this property SHOULD NOT be changed.
|
||||
* If directoryId is changed, the new directory MAY choose to reuse the same
|
||||
* localId if reasonable. However, consumers MUST NOT assume that two cards
|
||||
* with different directoryIds but the same localId are logically the same
|
||||
* card.
|
||||
*
|
||||
* Similar to directoryId, consumers of cards outside of directory
|
||||
* implementations SHOULD NOT, in general, modify this property.
|
||||
*/
|
||||
attribute AUTF8String localId;
|
||||
|
||||
/**
|
||||
* A list of all the properties that this card has as an enumerator, whose
|
||||
* members are all nsIProperty objects.
|
||||
*/
|
||||
readonly attribute nsISimpleEnumerator properties;
|
||||
|
||||
/**
|
||||
* Returns a property for the given name.
|
||||
*
|
||||
* @param name The case-sensitive name of the property to get.
|
||||
* @param defaultValue The value to return if the property does not exist.
|
||||
* @exception NS_ERROR_NOT_AVAILABLE if the named property does not exist.
|
||||
* @exception NS_ERROR_CANNOT_CONVERT_DATA if the property cannot be converted
|
||||
* to the desired type.
|
||||
*/
|
||||
nsIVariant getProperty(in AUTF8String name, in nsIVariant defaultValue);
|
||||
/**
|
||||
* @{
|
||||
* Returns a property for the given name. Javascript callers should NOT use these,
|
||||
* but use getProperty instead. XPConnect will do the type conversion automagically.
|
||||
*
|
||||
* These functions convert values in the same manner as the default
|
||||
* implementation of nsIVariant. Of particular note is that boolean variables
|
||||
* are converted to integers as in C/C++ (true is a non-zero value), so that
|
||||
* false will be converted to a string of "0" and not "false."
|
||||
*
|
||||
*
|
||||
* @param name The case-sensitive name of the property to get.
|
||||
* @exception NS_ERROR_NOT_AVAILABLE if the named property does not exist.
|
||||
* @exception NS_ERROR_CANNOT_CONVERT_DATA if the property cannot be converted
|
||||
* to the desired type.
|
||||
*/
|
||||
AString getPropertyAsAString(in string name);
|
||||
AUTF8String getPropertyAsAUTF8String(in string name);
|
||||
unsigned long getPropertyAsUint32(in string name);
|
||||
boolean getPropertyAsBool(in string name);
|
||||
|
||||
/** @} */
|
||||
|
||||
/**
|
||||
* Assigns the given to value to the property of the given name.
|
||||
*
|
||||
* Should the property exist, its value will be overwritten. An
|
||||
* implementation may impose additional semantic constraints for certain
|
||||
* properties. However, such constraints might not be checked by this method.
|
||||
*
|
||||
* @warning A value MUST be convertible to a string; if this convention is not
|
||||
* followed, consumers of cards may fail unpredictably or return incorrect
|
||||
* results.
|
||||
*
|
||||
* @param name The case-sensitive name of the property to set.
|
||||
* @param value The new value of the property.
|
||||
*/
|
||||
void setProperty(in AUTF8String name, in nsIVariant value);
|
||||
|
||||
/**
|
||||
* @{
|
||||
* Sets a property for the given name. Javascript callers should NOT use these,
|
||||
* but use setProperty instead. XPConnect will do the type conversion automagically.
|
||||
*
|
||||
* These functions convert values in the same manner as the default
|
||||
* implementation of nsIVariant.
|
||||
*/
|
||||
void setPropertyAsAString(in string name, in AString value);
|
||||
void setPropertyAsAUTF8String(in string name, in AUTF8String value);
|
||||
void setPropertyAsUint32(in string name, in unsigned long value);
|
||||
void setPropertyAsBool(in string name, in boolean value);
|
||||
|
||||
/** @} */
|
||||
|
||||
/**
|
||||
* Deletes the property with the given name.
|
||||
*
|
||||
* Some properties may not be deleted. However, the implementation will not
|
||||
* check this constraint at this method. If such a property is deleted, an
|
||||
* error may be thrown when the card is modified at the database level.
|
||||
*
|
||||
* @param name The case-sensitive name of the property to set.
|
||||
*/
|
||||
void deleteProperty(in AUTF8String name);
|
||||
|
||||
/**
|
||||
* @{
|
||||
* These properties are shorthand for getProperty and setProperty.
|
||||
*/
|
||||
attribute AString firstName;
|
||||
attribute AString lastName;
|
||||
attribute AString displayName;
|
||||
attribute AString primaryEmail;
|
||||
/** @} */
|
||||
|
||||
/**
|
||||
* Determines whether or not a card has the supplied email address in either
|
||||
* of its PrimaryEmail or SecondEmail attributes.
|
||||
*
|
||||
* Note: This function is likely to be temporary whilst we work out proper
|
||||
* APIs for multi-valued attributes in bug 118665.
|
||||
*
|
||||
* @param aEmailAddress The email address to attempt to match against.
|
||||
* @return True if aEmailAddress matches any of the email
|
||||
* addresses stored in the card.
|
||||
*/
|
||||
boolean hasEmailAddress(in AUTF8String aEmailAddress);
|
||||
|
||||
/**
|
||||
* Translates a card into a specific format.
|
||||
* The following types are supported:
|
||||
* - base64xml
|
||||
* - xml
|
||||
* - vcard
|
||||
*
|
||||
* @param aType The type of item to translate the card into.
|
||||
* @return A string containing the translated card.
|
||||
* @exception NS_ERROR_ILLEGAL_VALUE if we do not recognize the type.
|
||||
*/
|
||||
AUTF8String translateTo(in AUTF8String aType);
|
||||
|
||||
/**
|
||||
* Translates a card from the specified format
|
||||
*/
|
||||
//void translateFrom(in AUTF8String aType, in AUTF8String aData);
|
||||
|
||||
/**
|
||||
* Generate a phonetic name from the card, using the firstName and lastName
|
||||
* values.
|
||||
*
|
||||
* @param aLastNameFirst Set to True to put the last name before the first.
|
||||
* @return A string containing the generated phonetic name.
|
||||
*/
|
||||
AString generatePhoneticName(in boolean aLastNameFirst);
|
||||
|
||||
/**
|
||||
* Generate a chat name from the card, containing the value of the
|
||||
* first non-empty chat field.
|
||||
*
|
||||
* @return A string containing the generated chat name.
|
||||
*/
|
||||
AString generateChatName();
|
||||
|
||||
/**
|
||||
* This function will copy all values from one card to another.
|
||||
*
|
||||
* @param srcCard The source card to copy values from.
|
||||
*/
|
||||
void copy(in nsIAbCard aSrcCard);
|
||||
|
||||
/**
|
||||
* Returns true if this card is equal to the other card.
|
||||
*
|
||||
* The default implementation defines equal as this card pointing to the
|
||||
* same object as @arg aCard; another implementation defines it as equality of
|
||||
* properties and values.
|
||||
*
|
||||
* @warning The exact nature of equality is still undefined, and actual
|
||||
* results may not match theoretical results. Most notably, the code
|
||||
* <tt>a.equals(b) == b.equals(a)</tt> might not return true. In
|
||||
* particular, calling equals on cards from different address books
|
||||
* may return inaccurate results.
|
||||
*
|
||||
*
|
||||
* @return Equality, as defined above.
|
||||
* @param aCard The card to compare against.
|
||||
*/
|
||||
boolean equals(in nsIAbCard aCard);
|
||||
|
||||
// PROPERTIES TO BE DELETED AS PART OF REWRITE
|
||||
|
||||
attribute boolean isMailList;
|
||||
/**
|
||||
* If isMailList is true then mailListURI
|
||||
* will contain the URI of the associated
|
||||
* mail list
|
||||
*/
|
||||
attribute string mailListURI;
|
||||
};
|
||||
|
||||
%{C++
|
||||
// A nice list of properties for the benefit of C++ clients
|
||||
#define kFirstNameProperty "FirstName"
|
||||
#define kLastNameProperty "LastName"
|
||||
#define kDisplayNameProperty "DisplayName"
|
||||
#define kNicknameProperty "NickName"
|
||||
#define kPriEmailProperty "PrimaryEmail"
|
||||
#define kPreferMailFormatProperty "PreferMailFormat"
|
||||
#define kLastModifiedDateProperty "LastModifiedDate"
|
||||
#define kPopularityIndexProperty "PopularityIndex"
|
||||
|
||||
#define kPhoneticFirstNameProperty "PhoneticFirstName"
|
||||
#define kPhoneticLastNameProperty "PhoneticLastName"
|
||||
#define kSpouseNameProperty "SpouseName"
|
||||
#define kFamilyNameProperty "FamilyName"
|
||||
#define k2ndEmailProperty "SecondEmail"
|
||||
|
||||
#define kHomeAddressProperty "HomeAddress"
|
||||
#define kHomeAddress2Property "HomeAddress2"
|
||||
#define kHomeCityProperty "HomeCity"
|
||||
#define kHomeStateProperty "HomeState"
|
||||
#define kHomeZipCodeProperty "HomeZipCode"
|
||||
#define kHomeCountryProperty "HomeCountry"
|
||||
#define kHomeWebPageProperty "WebPage2"
|
||||
|
||||
#define kWorkAddressProperty "WorkAddress"
|
||||
#define kWorkAddress2Property "WorkAddress2"
|
||||
#define kWorkCityProperty "WorkCity"
|
||||
#define kWorkStateProperty "WorkState"
|
||||
#define kWorkZipCodeProperty "WorkZipCode"
|
||||
#define kWorkCountryProperty "WorkCountry"
|
||||
#define kWorkWebPageProperty "WebPage1"
|
||||
|
||||
#define kHomePhoneProperty "HomePhone"
|
||||
#define kHomePhoneTypeProperty "HomePhoneType"
|
||||
#define kWorkPhoneProperty "WorkPhone"
|
||||
#define kWorkPhoneTypeProperty "WorkPhoneType"
|
||||
#define kFaxProperty "FaxNumber"
|
||||
#define kFaxTypeProperty "FaxNumberType"
|
||||
#define kPagerTypeProperty "PagerNumberType"
|
||||
#define kPagerProperty "PagerNumber"
|
||||
#define kCellularProperty "CellularNumber"
|
||||
#define kCellularTypeProperty "CellularNumberType"
|
||||
|
||||
#define kJobTitleProperty "JobTitle"
|
||||
#define kDepartmentProperty "Department"
|
||||
#define kCompanyProperty "Company"
|
||||
#define kScreenNameProperty "_AimScreenName"
|
||||
#define kCustom1Property "Custom1"
|
||||
#define kCustom2Property "Custom2"
|
||||
#define kCustom3Property "Custom3"
|
||||
#define kCustom4Property "Custom4"
|
||||
#define kNotesProperty "Notes"
|
||||
|
||||
#define kGtalkProperty "_GoogleTalk"
|
||||
#define kAIMProperty "_AimScreenName"
|
||||
#define kYahooProperty "_Yahoo"
|
||||
#define kSkypeProperty "_Skype"
|
||||
#define kQQProperty "_QQ"
|
||||
#define kMSNProperty "_MSN"
|
||||
#define kICQProperty "_ICQ"
|
||||
#define kXMPPProperty "_JabberId"
|
||||
#define kIRCProperty "_IRC"
|
||||
|
||||
#define kAnniversaryYearProperty "AnniversaryYear"
|
||||
#define kAnniversaryMonthProperty "AnniversaryMonth"
|
||||
#define kAnniversaryDayProperty "AnniversaryDay"
|
||||
#define kBirthYearProperty "BirthYear"
|
||||
#define kBirthMonthProperty "BirthMonth"
|
||||
#define kBirthDayProperty "BirthDay"
|
||||
%}
|
||||
92
mailnews/addrbook/public/nsIAbCollection.idl
Normal file
92
mailnews/addrbook/public/nsIAbCollection.idl
Normal file
|
|
@ -0,0 +1,92 @@
|
|||
/* -*- 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 "nsIAbItem.idl"
|
||||
|
||||
interface nsIAbCard;
|
||||
interface nsISimpleEnumerator;
|
||||
|
||||
/**
|
||||
* A collection of address book items.
|
||||
*/
|
||||
[scriptable, uuid(70f6123f-e06b-4101-9750-4ce73b38134b)]
|
||||
interface nsIAbCollection : nsIAbItem {
|
||||
|
||||
/**
|
||||
* Returns true if this collection is read-only.
|
||||
*/
|
||||
readonly attribute boolean readOnly;
|
||||
|
||||
/**
|
||||
* Returns true if this collection is accessed over a network connection.
|
||||
*/
|
||||
readonly attribute boolean isRemote;
|
||||
|
||||
/**
|
||||
* Returns true if this collection is accessed over a secure connection.
|
||||
*
|
||||
* If isRemote returns false, then this value MUST be false as well.
|
||||
*/
|
||||
readonly attribute boolean isSecure;
|
||||
|
||||
/**
|
||||
* Returns an address book card for the specified email address if found.
|
||||
*
|
||||
* If there are multiple cards with the given email address, this method will
|
||||
* return one of these cards in an implementation-defined manner.
|
||||
*
|
||||
* Matching is performed in a case-insensitive manner.
|
||||
*
|
||||
* This method performs a synchronous operation. If the collection cannot do
|
||||
* the search in such a manner, then it should throw NS_ERROR_NOT_IMPLEMENTED.
|
||||
*
|
||||
* @param emailAddress The email address to find in any of the email address
|
||||
* fields. If emailAddress is empty, the database won't
|
||||
* be searched and the function will return as if no card
|
||||
* was found.
|
||||
* @return An nsIAbCard if one was found, else returns NULL.
|
||||
* @exception NS_ERROR_NOT_IMPLEMENTED If the collection cannot do this.
|
||||
*/
|
||||
nsIAbCard cardForEmailAddress(in AUTF8String emailAddress);
|
||||
|
||||
/**
|
||||
* Returns an address book card for the specified property if found.
|
||||
*
|
||||
* If there are multiple cards with the given value for the property, this
|
||||
* method will return one of these cards in an implementation-defined manner.
|
||||
*
|
||||
* This method performs a synchronous operation. If the collection cannot do
|
||||
* the search in such a manner, then it should throw NS_ERROR_NOT_IMPLEMENTED.
|
||||
*
|
||||
* If the property is not natively a string, it can still be searched for
|
||||
* using the string-encoded value of the property, e.g. "0". See
|
||||
* nsIAbCard::getPropertyAsAUTF8String for more information. Empty values will
|
||||
* return no match, to prevent spurious results.
|
||||
*
|
||||
* @param aProperty The property to look for.
|
||||
* @param aValue The value to search for.
|
||||
* @param aCaseSensitive True if matching should be done case-sensitively.
|
||||
* @result An nsIAbCard if one was found, else returns NULL.
|
||||
* @exception NS_ERROR_NOT_IMPLEMENTED If the collection cannot do this.
|
||||
*/
|
||||
nsIAbCard getCardFromProperty(in string aProperty, in AUTF8String aValue,
|
||||
in boolean aCaseSensitive);
|
||||
|
||||
/**
|
||||
* Returns all address book cards with a specific property matching value
|
||||
*
|
||||
* This function is almost identical to getCardFromProperty, with the
|
||||
* exception of returning all cards rather than just the first.
|
||||
*
|
||||
* @param aProperty The property to look for.
|
||||
* @param aValue The value to search for.
|
||||
* @param aCaseSensitive True if matching should be done case-sensitively.
|
||||
* @result A nsISimpleEnumerator that holds nsIAbCard
|
||||
* instances.
|
||||
*/
|
||||
nsISimpleEnumerator getCardsFromProperty(in string aProperty,
|
||||
in AUTF8String aValue,
|
||||
in boolean aCaseSensitive);
|
||||
};
|
||||
35
mailnews/addrbook/public/nsIAbDirFactory.idl
Normal file
35
mailnews/addrbook/public/nsIAbDirFactory.idl
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
/* -*- 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 "nsISimpleEnumerator.idl"
|
||||
|
||||
interface nsIAbDirectory;
|
||||
|
||||
[scriptable, uuid(ad61b4fc-d8d8-40b2-b924-4c10f28a8a17)]
|
||||
interface nsIAbDirFactory : nsISupports
|
||||
{
|
||||
/**
|
||||
* Get a top level address book directory and sub directories, given some
|
||||
* properties.
|
||||
*
|
||||
* @param aDirName Name of the address book
|
||||
*
|
||||
* @param aURI URI of the address book
|
||||
*
|
||||
* @param aPrefName Pref name for the preferences of the address book
|
||||
*
|
||||
* @return Enumeration of nsIAbDirectory interfaces
|
||||
*/
|
||||
nsISimpleEnumerator getDirectories(in AString aDirName, in ACString aURI,
|
||||
in ACString aPrefName);
|
||||
|
||||
/**
|
||||
* Delete a top level address book directory
|
||||
*
|
||||
*/
|
||||
void deleteDirectory (in nsIAbDirectory directory);
|
||||
};
|
||||
|
||||
28
mailnews/addrbook/public/nsIAbDirFactoryService.idl
Normal file
28
mailnews/addrbook/public/nsIAbDirFactoryService.idl
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
/* -*- 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"
|
||||
|
||||
interface nsIAbDirFactory;
|
||||
|
||||
[scriptable, uuid(154a951b-a310-400c-b98f-d769cc5d575f)]
|
||||
interface nsIAbDirFactoryService : nsISupports
|
||||
{
|
||||
/**
|
||||
* Obtain a directory factory component given a uri representing an address
|
||||
* book. The scheme is extracted from the uri and contract id is generated
|
||||
* of the form:
|
||||
* @mozilla.org/addressbook/directory-factory;1?name=<scheme>
|
||||
*
|
||||
* This id is used to instantiate a registered component which implemented
|
||||
* the nsIAbDirFactory interface.
|
||||
*
|
||||
* @param aURI The uri which contains the scheme that defines what directory
|
||||
* factory instance is returned
|
||||
*/
|
||||
nsIAbDirFactory getDirFactory(in ACString aURI);
|
||||
};
|
||||
|
||||
15
mailnews/addrbook/public/nsIAbDirSearchListener.idl
Normal file
15
mailnews/addrbook/public/nsIAbDirSearchListener.idl
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
/* -*- 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"
|
||||
|
||||
interface nsIAbCard;
|
||||
|
||||
[scriptable, uuid(eafe2488-4efb-4ac8-a6b4-7756eb1650a3)]
|
||||
interface nsIAbDirSearchListener : nsISupports {
|
||||
void onSearchFinished(in long aResult, in AString aErrorMsg);
|
||||
|
||||
void onSearchFoundCard(in nsIAbCard aCard);
|
||||
};
|
||||
296
mailnews/addrbook/public/nsIAbDirectory.idl
Normal file
296
mailnews/addrbook/public/nsIAbDirectory.idl
Normal file
|
|
@ -0,0 +1,296 @@
|
|||
/* -*- 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 "nsIAbCollection.idl"
|
||||
#include "nsIAbCard.idl"
|
||||
|
||||
interface nsISimpleEnumerator;
|
||||
interface nsIArray;
|
||||
interface nsIMutableArray;
|
||||
|
||||
/* moz-abdirectory:// is the URI to access nsAbBSDirectory,
|
||||
* which is the root directory for all types of address books
|
||||
* this is used to get all address book directories. */
|
||||
|
||||
%{C++
|
||||
#define kAllDirectoryRoot "moz-abdirectory://"
|
||||
|
||||
#define kPersonalAddressbook "abook.mab"
|
||||
#define kPersonalAddressbookUri "moz-abmdbdirectory://abook.mab"
|
||||
#define kCollectedAddressbook "history.mab"
|
||||
#define kCollectedAddressbookUri "moz-abmdbdirectory://history.mab"
|
||||
|
||||
#define kABFileName_PreviousSuffix ".na2" /* final v2 address book format */
|
||||
#define kABFileName_PreviousSuffixLen 4
|
||||
#define kABFileName_CurrentSuffix ".mab" /* v3 address book extension */
|
||||
%}
|
||||
|
||||
/**
|
||||
* A top-level address book directory.
|
||||
*
|
||||
* Please note that in order to be properly instantiated by nsIAbManager, every
|
||||
* type of nsIAbDirectory must have a contract ID of the form:
|
||||
*
|
||||
* @mozilla.org/addressbook/directory;1?type=<AB URI Scheme>
|
||||
*
|
||||
* Where AB URI Scheme does not include the ://. For example, for the Mork-based
|
||||
* address book, the scheme is "moz-abmdbdirectory", so the contract ID for
|
||||
* the Mork-based address book type is:
|
||||
*
|
||||
* @mozilla.org/addressbook/directory;1?type=moz-abmdbdirectory
|
||||
*
|
||||
* The UUID of an nsIAbDirectory is its preference ID and its name, concatenated
|
||||
* together.
|
||||
*/
|
||||
[scriptable, uuid(72dc868b-db5b-4daa-b6c6-071be4a05d02)]
|
||||
interface nsIAbDirectory : nsIAbCollection {
|
||||
|
||||
/**
|
||||
* The chrome URI to use for bringing up a dialog to edit this directory.
|
||||
* When opening the dialog, use a JS argument of
|
||||
* {selectedDirectory: thisdir} where thisdir is this directory that you just
|
||||
* got the chrome URI from.
|
||||
*/
|
||||
readonly attribute ACString propertiesChromeURI;
|
||||
|
||||
/**
|
||||
* The description of the directory. If this directory is not a mailing list,
|
||||
* then setting this attribute will send round a "DirName" update via
|
||||
* nsIAddrBookSession.
|
||||
*/
|
||||
attribute AString dirName;
|
||||
|
||||
// XXX This should really be replaced by a QI or something better
|
||||
readonly attribute long dirType;
|
||||
|
||||
// eliminated a bit more.
|
||||
|
||||
// The filename for address books within this directory.
|
||||
readonly attribute ACString fileName;
|
||||
|
||||
// The URI of the address book
|
||||
readonly attribute ACString URI;
|
||||
|
||||
// The position of the directory on the display.
|
||||
readonly attribute long position;
|
||||
|
||||
// will be used for LDAP replication
|
||||
attribute unsigned long lastModifiedDate;
|
||||
|
||||
// Defines whether this directory is a mail
|
||||
// list or not
|
||||
attribute boolean isMailList;
|
||||
|
||||
// Get the children directories
|
||||
readonly attribute nsISimpleEnumerator childNodes;
|
||||
|
||||
/**
|
||||
* Get the cards associated with the directory. This will return the cards
|
||||
* associated with the mailing lists too.
|
||||
*/
|
||||
readonly attribute nsISimpleEnumerator childCards;
|
||||
|
||||
/**
|
||||
* Returns true if this directory represents a query - i.e. the rdf resource
|
||||
* was something like moz-abmdbdirectory://abook.mab?....
|
||||
*/
|
||||
readonly attribute boolean isQuery;
|
||||
|
||||
/**
|
||||
* Initializes a directory, pointing to a particular
|
||||
* URI
|
||||
*/
|
||||
void init(in string aURI);
|
||||
|
||||
// Deletes either a mailing list or a top
|
||||
// level directory, which also updates the
|
||||
// preferences
|
||||
void deleteDirectory(in nsIAbDirectory directory);
|
||||
|
||||
// Check if directory contains card
|
||||
// If the implementation is asynchronous the card
|
||||
// may not yet have arrived. If it is in the process
|
||||
// of obtaining cards the method will throw an
|
||||
// NS_ERROR_NOT_AVAILABLE exception if the card
|
||||
// cannot be found.
|
||||
boolean hasCard(in nsIAbCard cards);
|
||||
|
||||
// Check if directory contains directory
|
||||
boolean hasDirectory(in nsIAbDirectory dir);
|
||||
|
||||
// Check if directory contains a mailinglist by name
|
||||
boolean hasMailListWithName(in wstring aName);
|
||||
|
||||
/**
|
||||
* Adds a card to the database.
|
||||
*
|
||||
* This card does not need to be of the same type as the database, e.g., one
|
||||
* can add an nsIAbLDAPCard to an nsIAbMDBDirectory.
|
||||
*
|
||||
* @return "Real" card (eg nsIAbLDAPCard) that can be used for some
|
||||
* extra functions.
|
||||
*/
|
||||
nsIAbCard addCard(in nsIAbCard card);
|
||||
|
||||
/**
|
||||
* Modifies a card in the database to match that supplied.
|
||||
*/
|
||||
void modifyCard(in nsIAbCard modifiedCard);
|
||||
|
||||
/**
|
||||
* Deletes the array of cards from the database.
|
||||
*
|
||||
* @param aCards The cards to delete from the database.
|
||||
*/
|
||||
void deleteCards(in nsIArray aCards);
|
||||
|
||||
void dropCard(in nsIAbCard card, in boolean needToCopyCard);
|
||||
|
||||
/**
|
||||
* Whether or not the directory should be searched when doing autocomplete,
|
||||
* (currently by using GetChildCards); LDAP does not support this in online
|
||||
* mode, so that should return false; additionally any other directory types
|
||||
* that also do not support GetChildCards should return false.
|
||||
*
|
||||
* @param aIdentity An optional parameter detailing the identity key (see
|
||||
* nsIMsgAccountManager) that this autocomplete is being
|
||||
* run against.
|
||||
* @return True if this directory should/can be used during
|
||||
* local autocomplete.
|
||||
*/
|
||||
boolean useForAutocomplete(in ACString aIdentityKey);
|
||||
|
||||
/**
|
||||
* Does this directory support mailing lists? Note that in the case
|
||||
* this directory is a mailing list and nested mailing lists are not
|
||||
* supported, this will return false rather than true which the parent
|
||||
* directory might.
|
||||
*/
|
||||
readonly attribute boolean supportsMailingLists;
|
||||
|
||||
/**
|
||||
* This attribute serves two purposes
|
||||
* 1. If this directory is not a mail list, directories are stored here
|
||||
* 2. If it is a mail list card entries are stored here
|
||||
*
|
||||
* @note This is a *live* array and not a static copy
|
||||
*/
|
||||
attribute nsIMutableArray addressLists;
|
||||
|
||||
// Specific to a directory which stores mail lists
|
||||
|
||||
/**
|
||||
* Creates a new mailing list in the directory. Currently only supported
|
||||
* for top-level directories.
|
||||
*
|
||||
* @param list The new mailing list to add.
|
||||
* @return The mailing list directory added, which may have been modified.
|
||||
*/
|
||||
nsIAbDirectory addMailList(in nsIAbDirectory list);
|
||||
|
||||
/**
|
||||
* Nick Name of the mailing list. This attribute is only really used when
|
||||
* the nsIAbDirectory represents a mailing list.
|
||||
*/
|
||||
attribute AString listNickName;
|
||||
|
||||
/**
|
||||
* Description of the mailing list. This attribute is only really used when
|
||||
* the nsIAbDirectory represents a mailing list.
|
||||
*/
|
||||
attribute AString description;
|
||||
|
||||
/**
|
||||
* Edits an existing mailing list (specified as listCard) into its parent
|
||||
* directory. You should call this function on the resource with the same
|
||||
* uri as the listCard.
|
||||
*
|
||||
* @param listCard A nsIAbCard version of the mailing list with the new
|
||||
* values.
|
||||
*/
|
||||
void editMailListToDatabase(in nsIAbCard listCard);
|
||||
|
||||
// Copies mail list properties from the srcList
|
||||
void copyMailList(in nsIAbDirectory srcList);
|
||||
|
||||
/**
|
||||
* Only creates a top level address book
|
||||
* which is stored in the preferences
|
||||
*
|
||||
* Need to change to factory based approach
|
||||
* to create new address books
|
||||
*
|
||||
* This method should become redundant or
|
||||
* be only associated with card folders
|
||||
*
|
||||
* The parameters are the same as for
|
||||
* nsIAbManager::newAddressBook
|
||||
*/
|
||||
ACString createNewDirectory(in AString aDirName, in ACString aURI,
|
||||
in unsigned long aType, in ACString aPrefName);
|
||||
|
||||
/* create a directory by passing the display name and address book uri */
|
||||
void createDirectoryByURI(in AString displayName, in ACString aURI);
|
||||
|
||||
/**
|
||||
* The id of the directory used in prefs e.g. "ldap_2.servers.pab"
|
||||
* Setting this will cause directoryPrefs to be updated.
|
||||
*/
|
||||
attribute ACString dirPrefId;
|
||||
|
||||
/**
|
||||
* @name getXXXValue
|
||||
*
|
||||
* Helper functions to get different types of pref, but return a default
|
||||
* value if a pref value was not obtained.
|
||||
*
|
||||
* @param aName The name of the pref within the branch dirPrefId to
|
||||
* get a value from.
|
||||
*
|
||||
* @param aDefaultValue The default value to return if getting the pref fails
|
||||
* or the pref is not present.
|
||||
*
|
||||
* @return The value of the pref or the default value.
|
||||
*
|
||||
* @exception NS_ERROR_NOT_INITIALIZED if the pref branch couldn't
|
||||
* be obtained (e.g. dirPrefId isn't set).
|
||||
*/
|
||||
//@{
|
||||
long getIntValue(in string aName, in long aDefaultValue);
|
||||
boolean getBoolValue(in string aName, in boolean aDefaultValue);
|
||||
ACString getStringValue(in string aName, in ACString aDefaultValue);
|
||||
AUTF8String getLocalizedStringValue(in string aName, in AUTF8String aDefaultValue);
|
||||
//@}
|
||||
|
||||
/**
|
||||
* The following attributes are read from an nsIAbDirectory via the above methods:
|
||||
*
|
||||
* HidesRecipients (Boolean)
|
||||
* If true, and this nsIAbDirectory is a mailing list, then when sending mail to
|
||||
* this list, recipients addresses will be hidden from one another by sending
|
||||
* via BCC.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @name setXXXValue
|
||||
*
|
||||
* Helper functions to set different types of pref values.
|
||||
*
|
||||
* @param aName The name of the pref within the branch dirPrefId to
|
||||
* get a value from.
|
||||
*
|
||||
* @param aValue The value to set the pref to.
|
||||
*
|
||||
* @exception NS_ERROR_NOT_INITIALIZED if the pref branch couldn't
|
||||
* be obtained (e.g. dirPrefId isn't set).
|
||||
*/
|
||||
//@{
|
||||
void setIntValue(in string aName, in long aValue);
|
||||
void setBoolValue(in string aName, in boolean aValue);
|
||||
void setStringValue(in string aName, in ACString aValue);
|
||||
void setLocalizedStringValue(in string aName, in AUTF8String aValue);
|
||||
//@}
|
||||
|
||||
};
|
||||
164
mailnews/addrbook/public/nsIAbDirectoryQuery.idl
Normal file
164
mailnews/addrbook/public/nsIAbDirectoryQuery.idl
Normal file
|
|
@ -0,0 +1,164 @@
|
|||
/* -*- 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"
|
||||
|
||||
interface nsIAbDirSearchListener;
|
||||
interface nsIAbCard;
|
||||
interface nsIAbDirectory;
|
||||
|
||||
/**
|
||||
* The arguments for a query.
|
||||
*
|
||||
* Contains an expression for perform matches
|
||||
* and an array of properties which should be
|
||||
* returned if a match is found from the expression
|
||||
*
|
||||
*/
|
||||
[scriptable, uuid(03af3018-2590-4f4c-a88c-1fff6595ef05)]
|
||||
interface nsIAbDirectoryQueryArguments : nsISupports
|
||||
{
|
||||
/**
|
||||
* Defines the boolean expression for
|
||||
* the matching of cards
|
||||
*
|
||||
*/
|
||||
attribute nsISupports expression;
|
||||
|
||||
/**
|
||||
* Defines if sub directories should be
|
||||
* queried
|
||||
*
|
||||
*/
|
||||
attribute boolean querySubDirectories;
|
||||
|
||||
/**
|
||||
* A parameter which can be used to pass in data specific to a particular
|
||||
* type of addressbook.
|
||||
*/
|
||||
attribute nsISupports typeSpecificArg;
|
||||
|
||||
/**
|
||||
* A custom search filter which user wants to use in LDAP query.
|
||||
*/
|
||||
attribute AUTF8String filter;
|
||||
};
|
||||
|
||||
|
||||
[scriptable, uuid(3A6E0C0C-1DD2-11B2-B23D-EA3A8CCB333C)]
|
||||
interface nsIAbDirectoryQueryPropertyValue : nsISupports
|
||||
{
|
||||
/**
|
||||
* The property which should be matched
|
||||
*
|
||||
* For example 'primaryEmail' or 'homePhone'
|
||||
* for card properties.
|
||||
*
|
||||
* Two further properties are defined that
|
||||
* do not exist as properties on a card.
|
||||
*
|
||||
* 'card:nsIAbCard' which represents the interface
|
||||
* of a card component
|
||||
*
|
||||
*/
|
||||
readonly attribute string name;
|
||||
|
||||
/**
|
||||
* The value of the property
|
||||
*
|
||||
*/
|
||||
readonly attribute wstring value;
|
||||
|
||||
/**
|
||||
* The value of the property
|
||||
* as an interface
|
||||
*
|
||||
* Only valid if the corresponding
|
||||
* property name is related to an
|
||||
* interface instead of a wstring
|
||||
*
|
||||
*/
|
||||
readonly attribute nsISupports valueISupports;
|
||||
};
|
||||
|
||||
[scriptable, uuid(516e7ffa-69bc-41db-a493-dfb4895832f3)]
|
||||
interface nsIAbDirectoryQueryResultListener : nsISupports
|
||||
{
|
||||
/**
|
||||
* Called when a match is found. May be called from a different thread to
|
||||
* the one that initiates the query.
|
||||
*
|
||||
* @param aCard An individual result associated returned from a query
|
||||
*/
|
||||
void onQueryFoundCard(in nsIAbCard aCard);
|
||||
|
||||
/**
|
||||
* List of defined query results
|
||||
*
|
||||
*/
|
||||
const long queryResultMatch = 0;
|
||||
const long queryResultComplete = 1;
|
||||
const long queryResultStopped = 2;
|
||||
const long queryResultError = 3;
|
||||
|
||||
/**
|
||||
* Called when a query has finished. May be called from a different thread
|
||||
* to the one that initiates the query.
|
||||
*
|
||||
* @param aResult A result code from the list above.
|
||||
*
|
||||
* @param aErrorCode An error code specific to the type of query.
|
||||
*/
|
||||
void onQueryResult(in long aResult, in long aErrorCode);
|
||||
};
|
||||
|
||||
[scriptable, uuid(60b5961c-ce61-47b3-aa99-6d865f734dee)]
|
||||
interface nsIAbDirectoryQuery : nsISupports
|
||||
{
|
||||
/**
|
||||
* Initiates a query on a directory and sub-directories for properties
|
||||
* on cards
|
||||
*
|
||||
* @param aDirectory A directory that the query may get extra details
|
||||
* from.
|
||||
*
|
||||
* @param aArguments The properties and values to match value could of
|
||||
* type nsIAbDirectoryQueryMatchItem for matches other
|
||||
* than ?contains?
|
||||
*
|
||||
* @param aListener The listener which will obtain individual query
|
||||
* results.
|
||||
*
|
||||
* @param aResultLimit Limits the number of results returned to a maximum
|
||||
* value.
|
||||
*
|
||||
* @param aTimeOut The maximum length of time for the query
|
||||
*
|
||||
* @return A context id for the query
|
||||
*/
|
||||
long doQuery(in nsIAbDirectory aDirectory,
|
||||
in nsIAbDirectoryQueryArguments aArguments,
|
||||
in nsIAbDirSearchListener aListener,
|
||||
in long aResultLimit,
|
||||
in long aTimeOut);
|
||||
|
||||
/**
|
||||
* Stops an existing query operation if
|
||||
* query operation is asynchronous
|
||||
*
|
||||
* The nsIAbDirectoryQueryResultListener will
|
||||
* be notified when query has stopped
|
||||
*
|
||||
* It is implementation specific if notification
|
||||
* synchronous or asynchronous
|
||||
*
|
||||
* @param contextID
|
||||
* The unique number returned from
|
||||
* the doQuery methods
|
||||
*
|
||||
*/
|
||||
void stopQuery (in long contextID);
|
||||
};
|
||||
14
mailnews/addrbook/public/nsIAbDirectoryQueryProxy.idl
Normal file
14
mailnews/addrbook/public/nsIAbDirectoryQueryProxy.idl
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
/* -*- 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 "nsIAbDirectoryQuery.idl"
|
||||
|
||||
[scriptable, uuid(b8034849-1e98-4d39-819c-15ba61a7434f)]
|
||||
interface nsIAbDirectoryQueryProxy : nsIAbDirectoryQuery
|
||||
{
|
||||
void initiate();
|
||||
};
|
||||
|
||||
53
mailnews/addrbook/public/nsIAbDirectorySearch.idl
Normal file
53
mailnews/addrbook/public/nsIAbDirectorySearch.idl
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
/* -*- 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"
|
||||
|
||||
/**
|
||||
* Searching of cards on a directory.
|
||||
*
|
||||
* The search data is defined in the query
|
||||
* section of the directory URI, for example
|
||||
*
|
||||
* moz-abldapdirectory://ldap1.holland/dc=sun,dc=com?<query>
|
||||
*
|
||||
* If no search data is defined then the methods
|
||||
* will return immediately with no error.
|
||||
*/
|
||||
[scriptable, uuid(ABF26047-37E3-44FD-A28A-6D37A1B9CCB3)]
|
||||
interface nsIAbDirectorySearch : nsISupports
|
||||
{
|
||||
/**
|
||||
* Starts a search on the directory.
|
||||
*
|
||||
* If a search is already being performed
|
||||
* it is stopped.
|
||||
*
|
||||
* The results from a search, cards, will
|
||||
* returned by informing the address book
|
||||
* session that a new card has been added
|
||||
* to the directory.
|
||||
*
|
||||
* The nsIAbDirectoryQuery implementation
|
||||
* of the directory component (or a proxy)
|
||||
* may be used as an implementation for
|
||||
* this specialization of query.
|
||||
*
|
||||
* This method is semantically equivalent
|
||||
* to the nsIAbDirectory.getChildCards
|
||||
* method when there is search criteria
|
||||
* defined in the directory uri.
|
||||
*
|
||||
*/
|
||||
void startSearch ();
|
||||
|
||||
/**
|
||||
* Stops a search on the directory.
|
||||
*
|
||||
*/
|
||||
void stopSearch ();
|
||||
};
|
||||
|
||||
90
mailnews/addrbook/public/nsIAbItem.idl
Normal file
90
mailnews/addrbook/public/nsIAbItem.idl
Normal file
|
|
@ -0,0 +1,90 @@
|
|||
/* -*- 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"
|
||||
|
||||
interface nsIMsgHeaderParser;
|
||||
interface nsIStringBundle;
|
||||
|
||||
/**
|
||||
* A containable item for address books.
|
||||
*/
|
||||
[scriptable, uuid(bb691a55-cbfe-4cf8-974a-e18cfa845a73)]
|
||||
interface nsIAbItem : nsISupports {
|
||||
/**
|
||||
* A universally-unique identifier for this item.
|
||||
*
|
||||
* If this item cannot be associated with a UUID for some reason, it MUST
|
||||
* return the empty string. The empty string MUST NOT be a valid UUID for any
|
||||
* item. Under no circumstances may this function throw an error.
|
||||
*
|
||||
* It is STRONGLY RECOMMENDED that implementations guarantee that this UUID
|
||||
* will not change between two different sessions of the application and that,
|
||||
* if this item is deleted, the UUID will not be reused.
|
||||
*
|
||||
* The format of the UUID for a generic nsIAbItem is purposefully left
|
||||
* undefined, although any item contained by an nsIAbDirectory SHOULD use
|
||||
* nsIAbManager::generateUUID to generate the UUID.
|
||||
*/
|
||||
readonly attribute AUTF8String uuid;
|
||||
|
||||
/**
|
||||
* @{
|
||||
* These constants reflect the possible values of the
|
||||
* mail.addr_book.lastnamefirst preferences. They are intended to be used in
|
||||
* generateName, defined below.
|
||||
*/
|
||||
const unsigned long GENERATE_DISPLAY_NAME = 0;
|
||||
const unsigned long GENERATE_LAST_FIRST_ORDER = 1;
|
||||
const unsigned long GENERATE_FIRST_LAST_ORDER = 2;
|
||||
/** @} */
|
||||
|
||||
/**
|
||||
* Generate a name from the item for display purposes.
|
||||
*
|
||||
* If this item is an nsIAbCard, then it will use the aGenerateFormat option
|
||||
* to determine the string to return.
|
||||
* If this item is not an nsIAbCard, then the aGenerateFormat option may be
|
||||
* ignored, and the displayName of the item returned.
|
||||
*
|
||||
* @param aGenerateFormat The format to generate as per the GENERATE_*
|
||||
* constants above.
|
||||
* @param aBundle An optional parameter that is a pointer to a string
|
||||
* bundle that holds:
|
||||
* chrome://messenger/locale/addressbook/addressBook.properties
|
||||
* If this bundle is not supplied, then the function
|
||||
* will obtain the bundle itself. If cached by the
|
||||
* caller and supplied to this function, then
|
||||
* performance will be improved over many calls.
|
||||
* @return A string containing the generated name.
|
||||
*/
|
||||
AString generateName(in long aGenerateFormat,
|
||||
[optional] in nsIStringBundle aBundle);
|
||||
|
||||
/**
|
||||
* Generate a formatted email address from the card, that can be used for
|
||||
* sending emails.
|
||||
*
|
||||
* @param aExpandList If this card is a list, and this parameter is set
|
||||
* to true, then the list will be expanded to include
|
||||
* the emails of the cards within the list.
|
||||
* @param aGroupMailLists If this card (or the items within this card) is a
|
||||
* list, and this is set to true, then the list will
|
||||
* be expanded in the RFC 2822 group format
|
||||
* "displayname : email1 ; email2 ; etc".
|
||||
* @param aHeaderParser An optional parameter pointing to the
|
||||
* nsIMsgHeaderParser service. If this is not supplied
|
||||
* the function will obtain the service itself. If
|
||||
* cached by the called and supplied to this function,
|
||||
* then performance will be improved over many calls.
|
||||
* @return A string containing a comma-separated list of
|
||||
* formatted addresses.
|
||||
*/
|
||||
//AString generateFormattedEmail(in boolean aExpandList,
|
||||
// in boolean aAsGroupMailLists,
|
||||
// [optional] in nsIMsgHeaderParser aHeaderParser);
|
||||
|
||||
};
|
||||
|
||||
194
mailnews/addrbook/public/nsIAbLDAPAttributeMap.idl
Normal file
194
mailnews/addrbook/public/nsIAbLDAPAttributeMap.idl
Normal file
|
|
@ -0,0 +1,194 @@
|
|||
/* -*- Mode: C++; tab-width: 20; 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"
|
||||
|
||||
interface nsILDAPMessage;
|
||||
interface nsIAbCard;
|
||||
|
||||
/**
|
||||
* A mapping between addressbook properties and ldap attributes.
|
||||
*
|
||||
* Each addressbook property can map to one or more attributes. If
|
||||
* there is no entry in preferences for a field, the getters generally
|
||||
* return null; empty strings are passed through as usual. The intent is
|
||||
* that properties with a non-zero number of attributes can be overridden for
|
||||
* a specific server by supplying a zero-length string. For this to work,
|
||||
* most callers are likely to want to check for both success and a
|
||||
* non-empty string.
|
||||
*
|
||||
* Note that the one exception to this pattern is getAttributes, which
|
||||
* throws NS_ERROR_FAILURE for non-existent property entries, since
|
||||
* XPConnect doesn't like returning null arrays.
|
||||
*
|
||||
* Note that each LDAP attribute can map to at most one addressbook
|
||||
* property. The checkState method is a useful tool in enforcing
|
||||
* this. Failure to enforce it may make it impossible to guarantee
|
||||
* that getProperty will do something consistent and reasonable.
|
||||
*
|
||||
* Maybe someday once we support ldap autoconfig stuff (ie
|
||||
* draft-joslin-config-schema-11.txt), we can simplify this and other
|
||||
* code and only allow a property to map to a single attribute.
|
||||
*/
|
||||
[scriptable, uuid(fa019fd1-7f3d-417a-8957-154cca0240be)]
|
||||
interface nsIAbLDAPAttributeMap : nsISupports
|
||||
{
|
||||
/**
|
||||
* Get all the LDAP attributes associated with a given property
|
||||
* name, in order of precedence (highest to lowest).
|
||||
*
|
||||
* @param aProperty the address book property to return attrs for
|
||||
*
|
||||
* @return a comma-separated list of attributes, null if no entry is
|
||||
* present
|
||||
*/
|
||||
ACString getAttributeList(in ACString aProperty);
|
||||
|
||||
/**
|
||||
* Get all the LDAP attributes associated with a given property name, in
|
||||
* order of precedence (highest to lowest).
|
||||
*
|
||||
* @param aProperty the address book property to return attrs for
|
||||
*
|
||||
* @return an array of attributes
|
||||
*
|
||||
* @exception NS_ERROR_FAILURE if there is no entry for this property
|
||||
*/
|
||||
void getAttributes(in ACString aProperty, out unsigned long aCount,
|
||||
[retval, array, size_is(aCount)] out string aAttrs);
|
||||
|
||||
/**
|
||||
* Get the first (canonical) LDAP attribute associated with a given property
|
||||
* name
|
||||
*
|
||||
* @param aProperty the address book property to return attrs for
|
||||
*
|
||||
* @return the first attribute associated with a given property,
|
||||
* null if there is no entry for this property
|
||||
*/
|
||||
ACString getFirstAttribute(in ACString aProperty);
|
||||
|
||||
/**
|
||||
* Set an existing mapping to the comma-separated list of attributes.
|
||||
*
|
||||
* @param aProperty the mozilla addressbook property name
|
||||
*
|
||||
* @param aAttributeList a comma-separated list of attributes in
|
||||
* order of precedence from high to low
|
||||
*
|
||||
* @param aAllowInconsistencies allow changes that would result in
|
||||
* a map with an LDAP attribute associated
|
||||
* with more than one property. Useful for
|
||||
* doing a bunch of sets at once, and
|
||||
* calling checkState at the end.
|
||||
*
|
||||
* @exception NS_ERROR_FAILURE making this change would result in a map
|
||||
* with an LDAP attribute pointing to more
|
||||
* than one property
|
||||
*/
|
||||
void setAttributeList(in ACString aProperty, in ACString aAttributeList,
|
||||
in boolean allowInconsistencies);
|
||||
|
||||
/**
|
||||
* Find the Mozilla addressbook property name that this attribute should
|
||||
* map to.
|
||||
*
|
||||
* @return the addressbook property name, null if it's not used in the map
|
||||
*/
|
||||
ACString getProperty(in ACString aAttribute);
|
||||
|
||||
/**
|
||||
* Get all attributes that may be used in an addressbook card via this
|
||||
* property map (used for passing to to an LDAP search when you want
|
||||
* everything that could be in a card returned).
|
||||
*
|
||||
* @return a comma-separated list of attribute names
|
||||
*
|
||||
* @exception NS_ERROR_FAILURE there are no attributes in this property map
|
||||
*/
|
||||
ACString getAllCardAttributes();
|
||||
|
||||
/**
|
||||
* Get all properties that may be used in an addressbook card via this
|
||||
* property map.
|
||||
*
|
||||
* @return an array of properties
|
||||
*
|
||||
* @exception NS_ERROR_FAILURE there are no attributes in this property map
|
||||
*/
|
||||
void getAllCardProperties(out unsigned long aCount,
|
||||
[retval, array, size_is(aCount)] out string aProps);
|
||||
|
||||
/**
|
||||
* Check that no LDAP attributes are listed in more than one property.
|
||||
*
|
||||
* @exception NS_ERROR_FAILURE one or more LDAP attributes are listed
|
||||
* multiple times. The object is now in an
|
||||
* inconsistent state, and should be either
|
||||
* manually repaired or discarded.
|
||||
*/
|
||||
void checkState();
|
||||
|
||||
/* These last two methods are really just for the convenience of the caller
|
||||
* and to avoid tons of unnecessary crossing of the XPConnect boundary.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Set any attributes specified in the given prefbranch on this object.
|
||||
*
|
||||
* @param aPrefBranchName the pref branch containing all the
|
||||
* property names
|
||||
*
|
||||
* @exception NS_ERROR_FAILURE one or more LDAP attributes are listed
|
||||
* multiple times. The object is now in an
|
||||
* inconsistent state, and should be either
|
||||
* manually repaired or discarded.
|
||||
*/
|
||||
void setFromPrefs(in ACString aPrefBranchName);
|
||||
|
||||
/**
|
||||
* Set the properties on an addressbook card from the given LDAP message
|
||||
* using the map in this object.
|
||||
*
|
||||
* @param aCard is the card object whose values are to be set
|
||||
* @param aMessage is the LDAP message to get the values from
|
||||
*
|
||||
* @exception NS_ERROR_FAILURE is thrown if no addressbook properties
|
||||
* are found in the message
|
||||
*/
|
||||
void setCardPropertiesFromLDAPMessage(in nsILDAPMessage aMessage,
|
||||
in nsIAbCard aCard);
|
||||
};
|
||||
|
||||
/**
|
||||
* The nsIAbLDAPAttributeMapService is used to build and hold a cache
|
||||
* of maps.
|
||||
*/
|
||||
[scriptable, uuid(12e2d589-3c2a-48e4-8c82-b1e6464a0dfd)]
|
||||
interface nsIAbLDAPAttributeMapService : nsISupports
|
||||
{
|
||||
/**
|
||||
* Accessor to construct or return a cached copy of the attribute
|
||||
* map for a given preference branch. The map is constructed by
|
||||
* first taking the default map (as specified by the
|
||||
* "ldap_2.servers.default.attrmap" prefbranch), and then having any
|
||||
* preferences specified by aPrefBranchName override the defaults.
|
||||
* LDIF import and export code should use the default map.
|
||||
*
|
||||
* @return the requested map
|
||||
*
|
||||
* @exception NS_ERROR_FAILURE error constructing the map;
|
||||
* possibly because of a failure
|
||||
* from checkState()
|
||||
*/
|
||||
nsIAbLDAPAttributeMap getMapForPrefBranch(in ACString aPrefBranchName);
|
||||
};
|
||||
|
||||
|
||||
%{C++
|
||||
// test whether one of the getters has actually found an attribute
|
||||
#define ATTRMAP_FOUND_ATTR(rv, str) (NS_SUCCEEDED(rv) && !(str).IsEmpty())
|
||||
%}
|
||||
56
mailnews/addrbook/public/nsIAbLDAPCard.idl
Normal file
56
mailnews/addrbook/public/nsIAbLDAPCard.idl
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
/* -*- 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 "nsIAbCard.idl"
|
||||
|
||||
interface nsIAbLDAPAttributeMap;
|
||||
interface nsILDAPModification;
|
||||
interface nsILDAPMessage;
|
||||
interface nsIArray;
|
||||
|
||||
[scriptable, uuid(2831b3b0-30ef-4070-8ad3-90ae04980e11)]
|
||||
interface nsIAbLDAPCard : nsISupports
|
||||
{
|
||||
/**
|
||||
* Returns the required information for an LDAP update message.
|
||||
*
|
||||
* @param aAttrMap The map between LDAP attributes and card properties
|
||||
* @param aClassCount The number of objectClass values
|
||||
* @param aClasses The objectClass values that the card needs to have
|
||||
* @param updateType This should be one of:
|
||||
* nsILDAPModification::MOD_ADD
|
||||
* nsILDAPModification::MOD_REPLACE
|
||||
*
|
||||
* @return Returns an array of modifications required to
|
||||
* add or replace the card in the ldap directory.
|
||||
*/
|
||||
nsIArray getLDAPMessageInfo(in nsIAbLDAPAttributeMap aAttrMap,
|
||||
in unsigned long aClassCount,
|
||||
[array, size_is(aClassCount)] in string aClasses,
|
||||
in long updateType);
|
||||
|
||||
/**
|
||||
* Builds a relative distinguished name (RDN) with the given set of
|
||||
* attributes.
|
||||
*
|
||||
* @param aAttrMap The map between LDAP attributes and card properties
|
||||
* @param aAttrCount The number of attributes to use for the RDN
|
||||
* @param aAttributes The name of the attributes to use for the RDN
|
||||
*
|
||||
*/
|
||||
ACString buildRdn(in nsIAbLDAPAttributeMap aAttrMap,
|
||||
in unsigned long aAttrCount,
|
||||
[array, size_is(aAttrCount)] in string aAttributes);
|
||||
|
||||
/**
|
||||
* Stores meta-properties from a raw LDAP search result.
|
||||
*
|
||||
* @param aMessage The LDAP search result message.
|
||||
*
|
||||
*/
|
||||
void setMetaProperties(in nsILDAPMessage aMessage);
|
||||
|
||||
attribute ACString dn;
|
||||
};
|
||||
112
mailnews/addrbook/public/nsIAbLDAPDirectory.idl
Normal file
112
mailnews/addrbook/public/nsIAbLDAPDirectory.idl
Normal file
|
|
@ -0,0 +1,112 @@
|
|||
/* -*- 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"
|
||||
|
||||
interface nsIMutableArray;
|
||||
interface nsIFile;
|
||||
interface nsIAddrDatabase;
|
||||
interface nsIAbLDAPAttributeMap;
|
||||
interface nsILDAPURL;
|
||||
|
||||
%{C++
|
||||
#define kLDAPDirectoryRoot "moz-abldapdirectory://"
|
||||
#define kLDAPDirectoryRootLen 22
|
||||
%}
|
||||
|
||||
/**
|
||||
* XXX This should really inherit from nsIAbDirectory, and some day it will.
|
||||
* But for now, doing that complicates implementation.
|
||||
*/
|
||||
[scriptable, uuid(90dde295-e354-4d58-Add8-f9b29a95942d)]
|
||||
interface nsIAbLDAPDirectory : nsISupports
|
||||
{
|
||||
/**
|
||||
* If set, these arrays of nsILDAPControls are passed through to the
|
||||
* nsILDAPOperation that searchExt is called on.
|
||||
*/
|
||||
attribute nsIMutableArray searchServerControls;
|
||||
attribute nsIMutableArray searchClientControls;
|
||||
|
||||
/**
|
||||
* The Replication File Name to use.
|
||||
*/
|
||||
attribute ACString replicationFileName;
|
||||
|
||||
/**
|
||||
* The version of LDAP protocol in use.
|
||||
*/
|
||||
attribute unsigned long protocolVersion;
|
||||
|
||||
/**
|
||||
* The SASL mechanism to use to authenticate to the LDAP server
|
||||
* If this is an empty string, then a simple bind will be performed
|
||||
* A non-zero string is assumed to be the name of the SASL mechanism.
|
||||
* Currently the only supported mechanism is GSSAPI
|
||||
*/
|
||||
attribute ACString saslMechanism;
|
||||
|
||||
/**
|
||||
* The AuthDN to use to access the server.
|
||||
*/
|
||||
attribute AUTF8String authDn;
|
||||
|
||||
/**
|
||||
* The maximum number of matches that the server will return per a search.
|
||||
*/
|
||||
attribute long maxHits;
|
||||
|
||||
/**
|
||||
* The Last Change Number used for replication.
|
||||
*/
|
||||
attribute long lastChangeNumber;
|
||||
|
||||
/**
|
||||
* The LDAP server's scoping of the lastChangeNumber.
|
||||
*/
|
||||
attribute ACString dataVersion;
|
||||
|
||||
/**
|
||||
* The attribute map that is associated with this directory's server.
|
||||
*/
|
||||
readonly attribute nsIAbLDAPAttributeMap attributeMap;
|
||||
|
||||
/**
|
||||
* The LDAP URL for this directory. Note that this differs from
|
||||
* nsIAbDirectory::URI. This attribute will give you a true ldap
|
||||
* url, e.g. ldap://localhost:389/ whereas the uri will give you the
|
||||
* directories rdf uri, e.g. moz-abldapdirectory://<pref base name>/.
|
||||
*/
|
||||
attribute nsILDAPURL lDAPURL;
|
||||
|
||||
/**
|
||||
* The replication (offline) file that this database uses.
|
||||
*/
|
||||
readonly attribute nsIFile replicationFile;
|
||||
|
||||
/**
|
||||
* A database that is set up for the replication file.
|
||||
*/
|
||||
readonly attribute nsIAddrDatabase replicationDatabase;
|
||||
|
||||
/**
|
||||
* The LDAP attributes used to build the Relative Distinguished Name
|
||||
* of new cards, in the form of a comma separated list.
|
||||
*
|
||||
* The default is to use the common name (cn) attribute.
|
||||
*/
|
||||
attribute ACString rdnAttributes;
|
||||
|
||||
/**
|
||||
* The LDAP objectClass values added to cards when they are created/added,
|
||||
* in the form of a comma separated list.
|
||||
*
|
||||
* The default is to use the following classes:
|
||||
* top,person,organizationalPerson,inetOrgPerson,mozillaAbPersonAlpha
|
||||
*/
|
||||
attribute ACString objectClasses;
|
||||
|
||||
};
|
||||
|
||||
68
mailnews/addrbook/public/nsIAbLDAPReplicationData.idl
Normal file
68
mailnews/addrbook/public/nsIAbLDAPReplicationData.idl
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
/* -*- 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"
|
||||
|
||||
interface nsIAbLDAPDirectory;
|
||||
interface nsILDAPConnection;
|
||||
interface nsILDAPURL;
|
||||
interface nsIAbLDAPReplicationQuery;
|
||||
interface nsIWebProgressListener;
|
||||
|
||||
/**
|
||||
* this service does replication of an LDAP directory to a local Mork AB Database.
|
||||
*/
|
||||
[scriptable, uuid(e628bbc9-8793-4f0b-bce4-990d399b1fca)]
|
||||
interface nsIAbLDAPProcessReplicationData : nsISupports
|
||||
{
|
||||
/**
|
||||
* readonly attribute giving the current replication state
|
||||
*/
|
||||
readonly attribute int32_t replicationState;
|
||||
|
||||
/**
|
||||
* replication states
|
||||
*/
|
||||
const long kIdle = 0;
|
||||
const long kAnonymousBinding = 1;
|
||||
const long kAuthenticatedBinding = 2;
|
||||
const long kSyncServerBinding = 3;
|
||||
const long kSearchingAuthDN = 4;
|
||||
const long kDecidingProtocol = 5;
|
||||
const long kAuthenticating = 6;
|
||||
const long kReplicatingAll = 7;
|
||||
const long kSearchingRootDSE = 8;
|
||||
const long kFindingChanges = 9;
|
||||
const long kReplicatingChanges = 10;
|
||||
const long kReplicationDone = 11;
|
||||
|
||||
/**
|
||||
* readonly attribute giving the current protocol used
|
||||
*/
|
||||
readonly attribute int32_t protocolUsed ;
|
||||
|
||||
/**
|
||||
* replication protocols
|
||||
*/
|
||||
const long kDefaultDownloadAll = 0;
|
||||
const long kChangeLogProtocol = 1;
|
||||
const long kLCUPProtocol = 2;
|
||||
const long kLastUpdatedTimeStampMethod = 3;
|
||||
|
||||
/**
|
||||
* this method initializes the implementation
|
||||
*/
|
||||
void init(in nsIAbLDAPDirectory directory,
|
||||
in nsILDAPConnection connection,
|
||||
in nsILDAPURL url,
|
||||
in nsIAbLDAPReplicationQuery query,
|
||||
in nsIWebProgressListener progressListener);
|
||||
|
||||
/**
|
||||
* this method a aborts the ongoing processing
|
||||
*/
|
||||
void abort();
|
||||
};
|
||||
|
||||
67
mailnews/addrbook/public/nsIAbLDAPReplicationQuery.idl
Normal file
67
mailnews/addrbook/public/nsIAbLDAPReplicationQuery.idl
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
/* -*- 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"
|
||||
|
||||
interface nsIWebProgressListener;
|
||||
interface nsILDAPURL;
|
||||
interface nsILDAPConnection;
|
||||
interface nsILDAPOperation;
|
||||
interface nsIAbLDAPDirectory;
|
||||
|
||||
/**
|
||||
* this interface provides methods to perform LDAP Replication Queries
|
||||
*/
|
||||
[scriptable, uuid(460a739c-a8c1-4f24-b705-c89d136ab9f5)]
|
||||
interface nsIAbLDAPReplicationQuery : nsISupports
|
||||
{
|
||||
/**
|
||||
* initialize for the query
|
||||
*/
|
||||
void init(in nsIAbLDAPDirectory aDirectory,
|
||||
in nsIWebProgressListener aProgressListener);
|
||||
|
||||
/**
|
||||
* Starts an LDAP query to do replication as needed
|
||||
*/
|
||||
void doReplicationQuery();
|
||||
|
||||
/**
|
||||
* Cancels the currently executing query
|
||||
*/
|
||||
void cancelQuery();
|
||||
|
||||
/**
|
||||
* this method is the callback when query is done, failed or successful
|
||||
*/
|
||||
void done(in boolean aSuccess);
|
||||
};
|
||||
|
||||
// XXX This interface currently isn't implemented as it didn't work.
|
||||
// Bug 311632 should fix it
|
||||
[scriptable, uuid(126202D1-4460-11d6-B7C2-00B0D06E5F27)]
|
||||
interface nsIAbLDAPChangeLogQuery : nsISupports
|
||||
{
|
||||
/**
|
||||
* Starts an LDAP query to find auth DN
|
||||
*/
|
||||
void queryAuthDN(in AUTF8String aValueUsedToFindDn);
|
||||
|
||||
/**
|
||||
* Starts an LDAP query to search server's Root DSE
|
||||
*/
|
||||
void queryRootDSE();
|
||||
|
||||
/**
|
||||
* Starts an LDAP ChangeLog query to find changelog entries
|
||||
*/
|
||||
void queryChangeLog(in AUTF8String aChangeLogDN, in int32_t aLastChangeNo);
|
||||
|
||||
/**
|
||||
* Starts an LDAP query to find changed entries
|
||||
*/
|
||||
void queryChangedEntries(in AUTF8String aChangedEntryDN);
|
||||
};
|
||||
|
||||
32
mailnews/addrbook/public/nsIAbLDAPReplicationService.idl
Normal file
32
mailnews/addrbook/public/nsIAbLDAPReplicationService.idl
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
/* 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"
|
||||
|
||||
interface nsIWebProgressListener;
|
||||
interface nsIAbLDAPDirectory;
|
||||
|
||||
/**
|
||||
* this service does replication of an LDAP directory to a local Mork AB Database.
|
||||
*/
|
||||
[scriptable, uuid(3f499c70-5ceb-4b91-8b7f-62c366859383)]
|
||||
interface nsIAbLDAPReplicationService: nsISupports {
|
||||
|
||||
/**
|
||||
* Start Replication of given LDAP directory represented by the URI
|
||||
*/
|
||||
void startReplication(in nsIAbLDAPDirectory aDirectory,
|
||||
in nsIWebProgressListener progressListener);
|
||||
|
||||
/**
|
||||
* Cancel Replication of given LDAP directory represented by the URI
|
||||
*/
|
||||
void cancelReplication(in nsIAbLDAPDirectory aDirectory);
|
||||
|
||||
/**
|
||||
* callback when replication is done, failure or success
|
||||
*/
|
||||
void done(in boolean aSuccess);
|
||||
};
|
||||
|
||||
40
mailnews/addrbook/public/nsIAbLDIFService.idl
Normal file
40
mailnews/addrbook/public/nsIAbLDIFService.idl
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
/* -*- 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"
|
||||
|
||||
interface nsIFile;
|
||||
interface nsIAddrDatabase;
|
||||
|
||||
[scriptable, uuid(7afaa95f-0b1c-4d8a-a65f-bb5073ed6d39)]
|
||||
interface nsIAbLDIFService : nsISupports {
|
||||
|
||||
/**
|
||||
* Determine if a file is likely to be an LDIF file based on field
|
||||
* names that commonly appear in LDIF files.
|
||||
*
|
||||
* @param aSrc The file to examine
|
||||
*
|
||||
* @return true if the file appears to be of LDIF type,
|
||||
* false otherwise
|
||||
*/
|
||||
boolean isLDIFFile(in nsIFile aSrc);
|
||||
|
||||
/**
|
||||
* Imports a file into the specified address book.
|
||||
*
|
||||
* @param aDb The address book to import addresses into.
|
||||
*
|
||||
* @param aSrc The file to import addresses from.
|
||||
*
|
||||
* @param aStoreLocAsHome Stores the address as a home rather than work
|
||||
* address.
|
||||
*
|
||||
* @param aProgress May be null, but if a pointer is supplied,
|
||||
* then it will be updated regularly with the
|
||||
* current position of reading from the file.
|
||||
*
|
||||
*/
|
||||
void importLDIFFile(in nsIAddrDatabase aDb, in nsIFile aSrc, in boolean aStoreLocAsHome, inout unsigned long aProgress);
|
||||
};
|
||||
90
mailnews/addrbook/public/nsIAbListener.idl
Normal file
90
mailnews/addrbook/public/nsIAbListener.idl
Normal file
|
|
@ -0,0 +1,90 @@
|
|||
/* -*- 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"
|
||||
|
||||
typedef unsigned long abListenerNotifyFlagValue;
|
||||
|
||||
/**
|
||||
* nsIAbListener
|
||||
*
|
||||
* Implement this interface to receive notifications of address book
|
||||
* items being added, removed or changed with loaded address books.
|
||||
*
|
||||
* Subscribe to events by using nsIAbManager.
|
||||
*/
|
||||
[scriptable, uuid(b3ca8745-2dad-4032-ae2f-0b8622f32697)]
|
||||
interface nsIAbListener : nsISupports {
|
||||
/**
|
||||
* These flags are used when registering the listener with nsIAbManager to
|
||||
* specify when to receive notifications of address book updates.
|
||||
*/
|
||||
|
||||
/**
|
||||
* An address book, mailing list or card is added.
|
||||
*/
|
||||
const abListenerNotifyFlagValue itemAdded = 0x1;
|
||||
/**
|
||||
* A mailing list or card is removed from an address book.
|
||||
*/
|
||||
const abListenerNotifyFlagValue directoryItemRemoved = 0x2;
|
||||
/**
|
||||
* An address book is removed
|
||||
*/
|
||||
const abListenerNotifyFlagValue directoryRemoved = 0x4;
|
||||
/**
|
||||
* An address book, mailing list or card is changed.
|
||||
*/
|
||||
const abListenerNotifyFlagValue itemChanged = 0x8;
|
||||
/**
|
||||
* All of the above notifications are to be received.
|
||||
*/
|
||||
const abListenerNotifyFlagValue all = 0xFFFFFFFF;
|
||||
|
||||
/**
|
||||
* Called when an address book item (book, card or list) is added
|
||||
*
|
||||
* @param parentDir The parent of the item being added.
|
||||
*
|
||||
* @param item The item being added to the database (a
|
||||
* directory or card).
|
||||
*
|
||||
*/
|
||||
void onItemAdded(in nsISupports parentDir, in nsISupports item);
|
||||
|
||||
/**
|
||||
* Called when an address book, mailing list or card is removed. This
|
||||
* is partially configurable when setting up the listener via
|
||||
* nsIAddrBookSession
|
||||
*
|
||||
* @param parentDir The parent of the item being removed, this
|
||||
* may be an empty directory in the case of a
|
||||
* top level address book.
|
||||
*
|
||||
* @param item The item being removed from the database.
|
||||
*
|
||||
*/
|
||||
void onItemRemoved(in nsISupports parentDir, in nsISupports item);
|
||||
|
||||
/**
|
||||
* Called when an address book item is changed. Note the current
|
||||
* implementation means that property is either the literal string "DirName"
|
||||
* or null, with oldValue and newValue being specified if the property is
|
||||
* "DirName" otherwise they are null.
|
||||
*
|
||||
* @param item The item being updated (a directory or a
|
||||
* card).
|
||||
*
|
||||
* @param property The property of the item being changed.
|
||||
*
|
||||
* @param oldValue The old value of the item property being
|
||||
* changed if it is known, null otherwise.
|
||||
*
|
||||
* @param newValue The new value of the item property being
|
||||
* changed.
|
||||
*
|
||||
*/
|
||||
void onItemPropertyChanged(in nsISupports item, in string property, in wstring oldValue, in wstring newValue);
|
||||
};
|
||||
71
mailnews/addrbook/public/nsIAbMDBDirectory.idl
Normal file
71
mailnews/addrbook/public/nsIAbMDBDirectory.idl
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
/* -*- 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"
|
||||
|
||||
interface nsIFile;
|
||||
interface nsIAbDirectory;
|
||||
interface nsIAbCard;
|
||||
interface nsIAddrDatabase;
|
||||
|
||||
%{C++
|
||||
#define kMDBDirectoryRoot "moz-abmdbdirectory://"
|
||||
#define kMDBDirectoryRootLen 21
|
||||
%}
|
||||
|
||||
[scriptable, uuid(744072be-1ba0-46bc-af24-46e22567a2ea)]
|
||||
interface nsIAbMDBDirectory : nsISupports {
|
||||
|
||||
// Creates a directory component from the
|
||||
// uriName, adds it to its children and returns
|
||||
// the component
|
||||
nsIAbDirectory addDirectory(in string uriName);
|
||||
|
||||
/**
|
||||
* Supplies a nsIFile point to the database file for this directory
|
||||
*
|
||||
* @exception NS_ERROR_NOT_INITIALIZED If there is no filename preference
|
||||
* present or it is empty
|
||||
*/
|
||||
readonly attribute nsIFile databaseFile;
|
||||
|
||||
/**
|
||||
* Supplies a nsIAddrDatabase that uses the databaseFile. See also
|
||||
* databaseFile for possible exceptions.
|
||||
*/
|
||||
readonly attribute nsIAddrDatabase database;
|
||||
|
||||
// Mail list specific
|
||||
//
|
||||
|
||||
// Removes all elements from the addressLists
|
||||
// property
|
||||
[noscript] void removeElementsFromAddressList();
|
||||
|
||||
// Specific to a directory which stores mail lists
|
||||
//
|
||||
|
||||
// Adds a directory to the addressLists attribute
|
||||
void addMailListToDirectory(in nsIAbDirectory mailList);
|
||||
|
||||
// Specific to a directory which is a mail list
|
||||
//
|
||||
|
||||
// Copies mail list properties from the srcList
|
||||
void copyDBMailList(in nsIAbMDBDirectory srcListDB);
|
||||
|
||||
// Adds a card to the addressList attribute
|
||||
void addAddressToList(in nsIAbCard card);
|
||||
|
||||
// Removes items from the addressLists member
|
||||
void removeEmailAddressAt(in unsigned long aIndex);
|
||||
|
||||
attribute unsigned long dbRowID;
|
||||
|
||||
// Empty implementation, called by the data base
|
||||
[noscript] void notifyDirItemAdded(in nsISupports item);
|
||||
|
||||
[noscript] void clearDatabase();
|
||||
};
|
||||
190
mailnews/addrbook/public/nsIAbManager.idl
Normal file
190
mailnews/addrbook/public/nsIAbManager.idl
Normal file
|
|
@ -0,0 +1,190 @@
|
|||
/* -*- 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 mozIDOMWindowProxy;
|
||||
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(ea0d8b3d-a549-4874-82d8-3a82cee2a3f1)]
|
||||
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 mozIDOMWindowProxy 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);
|
||||
};
|
||||
109
mailnews/addrbook/public/nsIAbView.idl
Normal file
109
mailnews/addrbook/public/nsIAbView.idl
Normal file
|
|
@ -0,0 +1,109 @@
|
|||
/* -*- 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"
|
||||
|
||||
interface nsIAbCard;
|
||||
interface nsIAbDirectory;
|
||||
interface nsIArray;
|
||||
|
||||
/// Define a class using this interface to listen to updates from nsIAbView.
|
||||
[scriptable, uuid(79ad5d6e-1dd2-11b2-addd-f547dab50d75)]
|
||||
interface nsIAbViewListener : nsISupports
|
||||
{
|
||||
/// Called when the selection is changed in the tree
|
||||
void onSelectionChanged();
|
||||
|
||||
/// Called when the total count of cards is changed.
|
||||
void onCountChanged(in long total);
|
||||
};
|
||||
|
||||
/**
|
||||
* This interface and its associated nsAbView object provides an interface
|
||||
* to allow a tree to be associated with an address book, and the results
|
||||
* to be displayed in that tree.
|
||||
*
|
||||
* If you wish for the tree to display the results of a different address
|
||||
* book, then call setView again. There is no need to delete and recreate the
|
||||
* nsAbView object. If you wish to clear the view, then just call clearView.
|
||||
*/
|
||||
[scriptable, uuid(45e2fa9f-0b59-4090-a2fa-fb7042cf64a2)]
|
||||
interface nsIAbView : nsISupports
|
||||
{
|
||||
/**
|
||||
* Sets up the nsIAbView to look at the specified directory. This may be
|
||||
* called multiple times.
|
||||
*
|
||||
* @param aDirectory The directory to search, this may be a directory
|
||||
* with a query string.
|
||||
* @param aViewListener An optional listener.
|
||||
* @param aSortColumn The column to sort by. See the xul element with
|
||||
* id abResultsTreeCols for possible values.
|
||||
* @param aSortDirection The sort direction to use ("ascending"/"descending")
|
||||
* @return The actual sortColumn (various switching of apps
|
||||
* could cause the persisted sortColumn to be bogus).
|
||||
*/
|
||||
AString setView(in nsIAbDirectory aAddressBook,
|
||||
in nsIAbViewListener aAbViewListener,
|
||||
in AString aSortColumn,
|
||||
in AString aSortDirection);
|
||||
|
||||
/**
|
||||
* Clears the view and releases any locally held copies of the address book
|
||||
* directory. This should be called when the view is no longer required, e.g.
|
||||
* on unload.
|
||||
*/
|
||||
void clearView();
|
||||
|
||||
/**
|
||||
* Sorts the tree by the specified parameters.
|
||||
*
|
||||
* @param aSortColumn The column to sort by. See the xul element with
|
||||
* id abResultsTreeCols for possible values.
|
||||
* @param aSortDirection The sort direction to use ("ascending"/"descending")
|
||||
* @param aResort The function DOES optimize for the case when sortColumn
|
||||
* and sortDirection is identical since the last call.
|
||||
* If an unconditional resort is needed, set this to true.
|
||||
*/
|
||||
void sortBy(in wstring aSortColumn, in wstring aSortDirection,
|
||||
[optional] in boolean aResort);
|
||||
|
||||
/// Returns the current sort column
|
||||
readonly attribute AString sortColumn;
|
||||
|
||||
/// Returns the current sort direction
|
||||
readonly attribute AString sortDirection;
|
||||
|
||||
/**
|
||||
* Returns the current directory that this view is hooked up to. May be
|
||||
* null if no directory has been set.
|
||||
*/
|
||||
readonly attribute nsIAbDirectory directory;
|
||||
|
||||
/**
|
||||
* Returns the card associated with the given row.
|
||||
*
|
||||
* @param aRow The row from which to return the card.
|
||||
* @return A card associated with the row, or null if row is not valid.
|
||||
*/
|
||||
nsIAbCard getCardFromRow(in long aRow);
|
||||
|
||||
/// Selects all rows in the view.
|
||||
void selectAll();
|
||||
|
||||
/// Deletes all the selected cards (no prompts are given).
|
||||
void deleteSelectedCards();
|
||||
|
||||
/**
|
||||
* Swaps the first and last name order, and updates the appropriate
|
||||
* preference.
|
||||
*/
|
||||
void swapFirstNameLastName();
|
||||
|
||||
/**
|
||||
* Returns an array of the currently selected addresses.
|
||||
*/
|
||||
readonly attribute nsIArray selectedAddresses;
|
||||
};
|
||||
19
mailnews/addrbook/public/nsIAddbookUrl.idl
Normal file
19
mailnews/addrbook/public/nsIAddbookUrl.idl
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
/* -*- 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 "nsIURI.idl"
|
||||
|
||||
[scriptable, uuid(6EB9D874-01AA-11d4-8FBE-000064657374)]
|
||||
interface nsIAddbookUrlOperation
|
||||
{
|
||||
const long InvalidUrl = 0;
|
||||
const long PrintAddressBook = 1;
|
||||
const long AddVCard = 2;
|
||||
};
|
||||
|
||||
[uuid(5f965083-e866-4bfb-ba40-13c344395798)]
|
||||
interface nsIAddbookUrl : nsIURI {
|
||||
readonly attribute long addbookOperation;
|
||||
};
|
||||
35
mailnews/addrbook/public/nsIAddrDBAnnouncer.idl
Normal file
35
mailnews/addrbook/public/nsIAddrDBAnnouncer.idl
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
/* -*- 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 "nsIAbCard.idl"
|
||||
#include "nsIAbDirectory.idl"
|
||||
|
||||
interface nsIAddrDBListener;
|
||||
|
||||
[scriptable, uuid(166b19a1-1235-4613-9601-816dedc48c9e)]
|
||||
interface nsIAddrDBAnnouncer : nsISupports {
|
||||
|
||||
void addListener(in nsIAddrDBListener listener);
|
||||
void removeListener(in nsIAddrDBListener listener);
|
||||
|
||||
void notifyCardAttribChange(in unsigned long abCode);
|
||||
|
||||
/**
|
||||
* Notify all the listeners of the database about an event performed
|
||||
* on a card entry.
|
||||
*
|
||||
* @param aAbCode The code to indicate the type of event
|
||||
* (see nsAddrDatabase.h AB_NOTIFY_CODE for values).
|
||||
* @param aCard The card entry on which the event occurred.
|
||||
* @param aParent The parent of card entry. This is set by
|
||||
* object which performs the operation.
|
||||
*/
|
||||
void notifyCardEntryChange(in unsigned long aAbCode,
|
||||
in nsIAbCard aCard,
|
||||
in nsIAbDirectory aParent);
|
||||
|
||||
void notifyAnnouncerGoingAway();
|
||||
};
|
||||
36
mailnews/addrbook/public/nsIAddrDBListener.idl
Normal file
36
mailnews/addrbook/public/nsIAddrDBListener.idl
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
/* -*- 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 "nsIAbCard.idl"
|
||||
#include "nsIAbDirectory.idl"
|
||||
|
||||
interface nsIAddrDBAnnouncer;
|
||||
|
||||
[scriptable, uuid(5d7e5a7a-1ac9-46dc-abfd-758c98be26e9)]
|
||||
interface nsIAddrDBListener : nsISupports {
|
||||
|
||||
void onCardAttribChange(in unsigned long abCode);
|
||||
|
||||
/**
|
||||
* Handle the card entry change event.
|
||||
*
|
||||
* @param aAbCode The code to indicate the type of event
|
||||
* (see nsAddrDatabase.h AB_NOTIFY_CODE for values).
|
||||
* @param aCard The card entry on which the event occurred.
|
||||
* @param aParent The parent of card entry.
|
||||
* If set to null, the event can be ignored.
|
||||
* This happens during import & sync operations when
|
||||
* listeners of a database need not be notified about
|
||||
* card entry changes.
|
||||
*/
|
||||
void onCardEntryChange (in unsigned long aAbCode,
|
||||
in nsIAbCard aCard,
|
||||
in nsIAbDirectory aParent);
|
||||
|
||||
void onListEntryChange (in unsigned long abCode,
|
||||
in nsIAbDirectory list);
|
||||
void onAnnouncerGoingAway();
|
||||
|
||||
};
|
||||
311
mailnews/addrbook/public/nsIAddrDatabase.idl
Normal file
311
mailnews/addrbook/public/nsIAddrDatabase.idl
Normal file
|
|
@ -0,0 +1,311 @@
|
|||
/* -*- 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);
|
||||
};
|
||||
29
mailnews/addrbook/public/nsIMsgVCardService.idl
Normal file
29
mailnews/addrbook/public/nsIMsgVCardService.idl
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
/* -*- 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"
|
||||
|
||||
%{C++
|
||||
#include "nsVCardObj.h"
|
||||
%}
|
||||
|
||||
[ptr] native VObject_ptr(VObject);
|
||||
[ptr] native VObjectIterator_ptr(VObjectIterator);
|
||||
[ptr] native const_char_ptr(const char);
|
||||
|
||||
[uuid(8b6ae917-676d-4f1f-bbad-2ecc9be0d9b1)]
|
||||
interface nsIMsgVCardService : nsISupports {
|
||||
[noscript, notxpcom] void cleanVObject(in VObject_ptr o);
|
||||
[noscript, notxpcom] VObject_ptr nextVObjectInList(in VObject_ptr o);
|
||||
[noscript, notxpcom] VObject_ptr parse_MIME(in string input, in unsigned long len);
|
||||
[noscript, notxpcom] charPtr fakeCString(in VObject_ptr o);
|
||||
[noscript, notxpcom] VObject_ptr isAPropertyOf(in VObject_ptr o, in string id);
|
||||
[noscript, notxpcom] charPtr writeMemoryVObjects(in string s, out long len, in VObject_ptr list, in boolean expandSpaces);
|
||||
[noscript, notxpcom] VObject_ptr nextVObject(in VObjectIterator_ptr i);
|
||||
[noscript, notxpcom] void initPropIterator(in VObjectIterator_ptr i, in VObject_ptr o);
|
||||
[noscript, notxpcom] long moreIteration(in VObjectIterator_ptr i);
|
||||
[noscript, notxpcom] const_char_ptr vObjectName(in VObject_ptr o);
|
||||
[noscript, notxpcom] charPtr vObjectAnyValue(in VObject_ptr o);
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue