kabc Library API Documentation

address.h

00001 /*
00002     This file is part of libkabc.
00003     Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org>
00004 
00005     This library is free software; you can redistribute it and/or
00006     modify it under the terms of the GNU Library General Public
00007     License as published by the Free Software Foundation; either
00008     version 2 of the License, or (at your option) any later version.
00009 
00010     This library is distributed in the hope that it will be useful,
00011     but WITHOUT ANY WARRANTY; without even the implied warranty of
00012     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013     Library General Public License for more details.
00014 
00015     You should have received a copy of the GNU Library General Public License
00016     along with this library; see the file COPYING.LIB.  If not, write to
00017     the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
00018     Boston, MA 02111-1307, USA.
00019 */
00020 
00021 #ifndef KABC_ADDRESS_H
00022 #define KABC_ADDRESS_H
00023 
00024 #include <qmap.h>
00025 #include <qstring.h>
00026 #include <qvaluelist.h>
00027 
00028 // template tags for address formatting localization
00029 #define KABC_FMTTAG_realname   QString("%n")
00030 #define KABC_FMTTAG_REALNAME   QString("%N")
00031 #define KABC_FMTTAG_company    QString("%cm")
00032 #define KABC_FMTTAG_COMPANY    QString("%CM")
00033 #define KABC_FMTTAG_pobox      QString("%p")
00034 #define KABC_FMTTAG_street     QString("%s")
00035 #define KABC_FMTTAG_STREET     QString("%S")
00036 #define KABC_FMTTAG_zipcode    QString("%z")
00037 #define KABC_FMTTAG_location   QString("%l")
00038 #define KABC_FMTTAG_LOCATION   QString("%L")
00039 #define KABC_FMTTAG_region     QString("%r")
00040 #define KABC_FMTTAG_REGION     QString("%R")
00041 #define KABC_FMTTAG_newline    QString("\\n")
00042 #define KABC_FMTTAG_condcomma  QString("%,")
00043 #define KABC_FMTTAG_condwhite  QString("%w")
00044 #define KABC_FMTTAG_purgeempty QString("%0")
00045 
00046 namespace KABC {
00047 
00053 class Address
00054 {
00055     friend QDataStream &operator<<( QDataStream &, const Address & );
00056     friend QDataStream &operator>>( QDataStream &, Address & );
00057 
00058   public:
00062     typedef QValueList<Address> List;
00063     typedef QValueList<int> TypeList;
00064   
00076     enum Type { Dom = 1, Intl = 2, Postal = 4, Parcel = 8, Home = 16, Work = 32,
00077            Pref = 64 };
00078 
00083     Address();
00084   
00089     Address( int );
00090 
00091     bool operator==( const Address & ) const;
00092     bool operator!=( const Address & ) const;
00093   
00097     bool isEmpty() const;
00098 
00102     void clear();
00103 
00107     void setId( const QString & );
00108 
00109     /*
00110       Returns the unique id.
00111     */
00112     QString id() const;
00113 
00119     void setType( int type );
00120 
00124     int type() const;
00125 
00129     QString typeLabel() const;
00130 
00134     void setPostOfficeBox( const QString & );
00135 
00139     QString postOfficeBox() const;
00140 
00144     static QString postOfficeBoxLabel();
00145 
00149     void setExtended( const QString & );
00150 
00154     QString extended() const;
00155 
00159     static QString extendedLabel();
00160     
00164     void setStreet( const QString & );
00165 
00169     QString street() const;
00170 
00174     static QString streetLabel();
00175 
00179     void setLocality( const QString & );
00180 
00184     QString locality() const;
00185 
00189     static QString localityLabel();
00190 
00194     void setRegion( const QString & );
00195 
00199     QString region() const;
00200 
00204     static QString regionLabel();
00205  
00209     void setPostalCode( const QString & );
00210 
00214     QString postalCode() const;
00215 
00219     static QString postalCodeLabel();
00220 
00224     void setCountry( const QString & );
00225 
00229     QString country() const;
00230 
00234     static QString countryLabel();
00235 
00239     void setLabel( const QString & );
00240 
00244     QString label() const;
00245 
00249     static QString labelLabel();
00250 
00254     static TypeList typeList();
00255 
00259     static QString typeLabel( int type );
00260 
00264     void dump() const;
00265 
00277     QString formattedAddress( const QString &realName=QString::null
00278                             , const QString &orgaName=QString::null ) const;
00279 
00287     static QString countryToISO( const QString &cname );
00288 
00296     static QString ISOtoCountry( const QString &ISOname );
00297 
00298   private:
00305     bool parseAddressTemplateSection( const QString &tsection
00306                                     ,       QString &result
00307                                     , const QString &realName
00308                                     , const QString &orgaName ) const;
00309 
00315     int  findBalancedBracket( const QString &tsection, int pos ) const;
00316 
00317     bool mEmpty;
00318   
00319     QString mId;
00320     int mType;
00321   
00322     QString mPostOfficeBox;
00323     QString mExtended;
00324     QString mStreet;
00325     QString mLocality;
00326     QString mRegion;
00327     QString mPostalCode;
00328     QString mCountry;
00329     QString mLabel;
00330 
00331     static QMap<QString, QString> *mISOMap;
00332 };
00333 
00334 QDataStream &operator<<( QDataStream &, const Address & );
00335 QDataStream &operator>>( QDataStream &, Address & );
00336 
00337 }
00338 
00339 #endif
KDE Logo
This file is part of the documentation for kabc Library Version 3.2.3.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Thu Sep 30 05:21:03 2004 by doxygen 1.3.4 written by Dimitri van Heesch, © 1997-2003