RetroZilla/mailnews/addrbook/public/nsIAbCard.idl
2015-10-20 23:03:22 -04:00

167 lines
5.6 KiB
Plaintext

/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is mozilla.org code.
*
* The Initial Developer of the Original Code is
* Netscape Communications Corporation.
* Portions created by the Initial Developer are Copyright (C) 1998
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
*
* Alternatively, the contents of this file may be used under the terms of
* either of the GNU General Public License Version 2 or later (the "GPL"),
* or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
* in which case the provisions of the GPL or the LGPL are applicable instead
* of those above. If you wish to allow use of your version of this file only
* under the terms of either the GPL or the LGPL, and not to allow others to
* use your version of this file under the terms of the MPL, indicate your
* decision by deleting the provisions above and replace them with the notice
* and other provisions required by the GPL or the LGPL. If you do not delete
* the provisions above, a recipient may use your version of this file under
* the terms of any one of the MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK ***** */
#include "nsISupports.idl"
%{C++
// Constants used for default email.
// "0": screen name, "1": other email #1, "2": other email #2
#define AB_DEFAULT_EMAIL_IS_SCREEN_NAME "0"
#define AB_DEFAULT_EMAIL_IS_EMAIL_1 "1"
#define AB_DEFAULT_EMAIL_IS_EMAIL_2 "2"
// Constants used for card types.
// "" or "0": normal, "1": AOL groups, "2": AOL additional email address
#define AB_CARD_IS_NORMAL_CARD "0"
#define AB_CARD_IS_AOL_GROUPS "1"
#define AB_CARD_IS_AOL_ADDITIONAL_EMAIL "2"
%}
[scriptable, uuid(97448252-F189-11d4-A422-001083003D0C)]
interface nsIAbPreferMailFormat {
const unsigned long unknown = 0;
const unsigned long plaintext = 1;
const unsigned long html = 2;
};
[scriptable, uuid(6B46BDD5-10DB-44f4-99C9-C7FFE0D3D954)]
interface nsIAbCard : nsISupports {
// Card properties
attribute wstring firstName;
attribute wstring lastName;
attribute wstring phoneticFirstName;
attribute wstring phoneticLastName;
attribute wstring displayName;
attribute wstring nickName;
attribute wstring primaryEmail;
attribute wstring secondEmail;
attribute wstring defaultEmail;
attribute wstring cardType;
attribute wstring workPhone;
attribute wstring homePhone;
attribute wstring faxNumber;
attribute wstring pagerNumber;
attribute wstring cellularNumber;
attribute wstring workPhoneType;
attribute wstring homePhoneType;
attribute wstring faxNumberType;
attribute wstring pagerNumberType;
attribute wstring cellularNumberType;
attribute wstring homeAddress;
attribute wstring homeAddress2;
attribute wstring homeCity;
attribute wstring homeState;
attribute wstring homeZipCode;
attribute wstring homeCountry;
attribute wstring workAddress;
attribute wstring workAddress2;
attribute wstring workCity;
attribute wstring workState;
attribute wstring workZipCode;
attribute wstring workCountry;
attribute wstring jobTitle;
attribute wstring department;
attribute wstring company;
attribute wstring aimScreenName;
attribute wstring anniversaryYear;
attribute wstring anniversaryMonth;
attribute wstring anniversaryDay;
attribute wstring spouseName;
attribute wstring familyName;
attribute wstring defaultAddress;
attribute wstring category;
/**
* webPage1 is work web page
*/
attribute wstring webPage1;
/**
* webPage2 is home web page
*/
attribute wstring webPage2;
attribute wstring birthYear;
attribute wstring birthMonth;
attribute wstring birthDay;
attribute wstring custom1;
attribute wstring custom2;
attribute wstring custom3;
attribute wstring custom4;
attribute wstring notes;
attribute unsigned long lastModifiedDate;
attribute unsigned long popularityIndex; /* bumped every time e-mail is sent to this recipient */
attribute unsigned long preferMailFormat;
attribute boolean isMailList;
/**
* If isMailList is true then mailListURI
* will contain the URI of the associated
* mail list
*/
attribute string mailListURI;
/**
* allowRemoteContent to be displayed in HTML mail received from this contact.
*/
attribute boolean allowRemoteContent;
/**
* Card type helper attributes
*/
readonly attribute boolean isANormalCard;
readonly attribute boolean isASpecialGroup;
readonly attribute boolean isAnEmailAddress;
wstring getCardValue(in string name);
void setCardValue(in string attrname, in wstring value);
// Copies the card attributes from srcCard
void copy(in nsIAbCard srcCard);
// Edits an existing card in the directory defined by 'uri'
// Rename to editCardInDirectory
// Component will be an RDF card, since it has already
// been created
//
// XXX FIX ME, this should not be a the card, it should be on the addressbook.
void editCardToDatabase(in string uri);
boolean equals(in nsIAbCard card);
string convertToBase64EncodedXML();
wstring convertToXMLPrintData();
string convertToEscapedVCard();
};