aboutsummaryrefslogblamecommitdiffstats
path: root/addressbook/backend/ebook/e-card-types.h
blob: c148423b2154df42e59fef96bd834646d071044a (plain) (tree)





















































































































































































































































                                                                              
/*
 * Authors:
 *   Arturo Espinosa
 *   Nat Friedman (nat@helixcode.com)
 *
 * Copyright (C) 2000 Helix Code, Inc.
 * Copyright (C) 1999 The Free Software Foundation
 */

#ifndef __E_CARD_TYPES_H__
#define __E_CARD_TYPES_H__

typedef enum
{
    PROP_NONE = 0, /* Must always be the first, with value = 0. */
    PROP_CARD = 1,
    PROP_FNAME = 2,
    PROP_NAME = 3,
    PROP_PHOTO = 4,
    PROP_BDAY = 5,
    PROP_DELADDR_LIST = 6,
    PROP_DELADDR = 7,
    PROP_DELLABEL_LIST = 8,
    PROP_DELLABEL = 9,
    PROP_PHONE_LIST = 10,
    PROP_PHONE = 11,
    PROP_EMAIL_LIST = 12,
    PROP_EMAIL = 13,
    PROP_MAILER = 14,
    PROP_TIMEZN = 15,
    PROP_GEOPOS = 16,
    PROP_TITLE = 17,
    PROP_ROLE = 18,
    PROP_LOGO = 19,
    PROP_AGENT = 20,
    PROP_ORG = 21,
    PROP_COMMENT = 22,
    PROP_REV = 23,
    PROP_SOUND = 24,
    PROP_URL = 25,
    PROP_UID = 26,
    PROP_VERSION = 27,
    PROP_KEY = 28,
    PROP_CATEGORIES = 29,
    PROP_XTENSION_LIST = 30,
    PROP_VALUE = 31,
    PROP_ENCODING = 32,
    PROP_QUOTED_PRINTABLE = 33,
    PROP_8BIT = 34,
    PROP_BASE64 = 35,
    PROP_LANG = 36,
    PROP_CHARSET = 37,
    PROP_LAST = 38 /* Must always be the last, with the gratest value. */
} ECardPropertyType;

typedef enum
{
    ENC_NONE = 0,
    ENC_BASE64 = 1,
    ENC_QUOTED_PRINTABLE = 2,
    ENC_8BIT = 3,
    ENC_7BIT = 4,
    ENC_LAST = 5
} ECardEncodeType;

typedef enum 
{
    VAL_NONE = 0,
    VAL_INLINE = 1,
    VAL_CID = 2,
    VAL_URL = 3,
    VAL_LAST = 4
} ECardValueType;

typedef struct {
    gboolean           used;
    ECardPropertyType  type;
    ECardEncodeType    encode;
    ECardValueType     value;
    char              *charset;
    char              *lang;
    GList             *xtension;
    
    void              *user_data;
} CardProperty;

typedef struct {
    char *name;
    char *data;
} CardXAttribute;

typedef struct {
    CardProperty      prop;
    
    char             *name;
    char             *data;
} ECardXProperty;

typedef struct {
    CardProperty      prop;
    
    GList            *l;
} ECardList;

/* IDENTIFICATION PROPERTIES */


typedef struct {
    char            *prefix;        /* Mr. */
    char            *given;         /* John */
    char            *additional;    /* Quinlan */
    char            *family;        /* Public */
    char            *suffix;        /* Esq. */
} ECardName;

typedef struct {
    CardProperty prop;
    
    enum ECardPhotoType type;
    guint size;
    char *data;

} ECardPhoto;

typedef struct {
    int year;
    int month;
    int day;
} ECardDate;


/* TELECOMMUNICATIONS ADDRESSING PROPERTIES */

typedef enum {
    PHONE_PREF  = 1 << 0,
    PHONE_WORK  = 1 << 1,
    PHONE_HOME  = 1 << 2,
    PHONE_VOICE = 1 << 3,
    PHONE_FAX   = 1 << 4,
    PHONE_MSG   = 1 << 5,
    PHONE_CELL  = 1 << 6,
    PHONE_PAGER = 1 << 7,
    PHONE_BBS   = 1 << 8,
    PHONE_MODEM = 1 << 9,
    PHONE_CAR   = 1 << 10,
    PHONE_ISDN  = 1 << 11,
    PHONE_VIDEO = 1 << 12 
} ECardPhoneFlags;

typedef struct {
    ECardPhoneFlags  flags;
    char            *data;
} ECardPhone;

typedef struct {
    int sign;      /* 1 or -1 */
    int hours;     /* Mexico General is at -6:00 UTC */
    int mins;      /* sign -1, hours 6, mins 0 */
} ECardTimeZone;

typedef struct {
    CardProperty prop;
    
    float lon;
    float lat;
} ECardGeoPos;


typedef enum {
    PHOTO_GIF,  PHOTO_CGM,   PHOTO_WMF,  PHOTO_BMP, PHOTO_MET, PHOTO_PMB, 
    PHOTO_DIB,  PHOTO_PICT,  PHOTO_TIFF, PHOTO_PS,  PHOTO_PDF, PHOTO_JPEG,
    PHOTO_MPEG, PHOTO_MPEG2, PHOTO_AVI,  PHOTO_QTIME
} ECardPhotoType;

/* DELIVERY ADDRESSING PROPERTIES */

typedef enum {
    ADDR_HOME   = 1 << 0, 
    ADDR_WORK   = 1 << 1,
    ADDR_POSTAL = 1 << 2, 
    ADDR_PARCEL = 1 << 3, 
    ADDR_DOM    = 1 << 4,
    ADDR_INTL   = 1 << 5 
} ECardAddrFlags;

typedef struct {
    ECardAddrFlags  flags;

    char           *pobox;
    char           *ext;
    char           *street;
    char           *city;
    char           *region;
    char           *code;
    char           *country;
} ECardAddr;


typedef struct 
{
    ECardAddrFlags  flags;
    char           *data;
} ECardAddrLabel;

/* ORGANIZATIONAL PROPERTIES */

typedef struct {
    char *name;
    char *unit1;
    char *unit2;
    char *unit3;
    char *unit4;
} ECardOrg;

typedef enum {
    SOUND_AIFF,
    SOUND_PCM, 
    SOUND_WAVE, 
    SOUND_PHONETIC
} ECardSoundType;

typedef enum {
    KEY_X509, 
    KEY_PGP
} ECardKeyType;

typedef struct {
    int       utc;
    struct tm tm;
} ECardRev;


typedef struct {
    enum SoundType  type;
    unsigned int    size;
    char           *data;
} ECardSound;

typedef struct {
    CardProperty  prop;
    
    enum KeyType  type;
    char         *data;
} ECardKey;

#endif /* __E_CARD_TYPES_H__ */