kaddressbook Library API Documentation

pab_mapihd.h

00001 /***************************************************************************
00002                           mapihd.h  -  description
00003                              -------------------
00004     begin                : Tue Jul 25 2000
00005     copyright            : (C) 2000 by Hans Dijkema
00006     email                : kmailcvt@hum.org
00007  ***************************************************************************/
00008 
00009 /***************************************************************************
00010  *                                                                         *
00011  *   This program is free software; you can redistribute it and/or modify  *
00012  *   it under the terms of the GNU General Public License as published by  *
00013  *   the Free Software Foundation; either version 2 of the License, or     *
00014  *   (at your option) any later version.                                   *
00015  *                                                                         *
00016  ***************************************************************************/
00017 
00018 #ifndef _MAPIHD_H_
00019 #define _MAPIHD_H_
00020 
00021 #include <qmemarray.h> 
00022 
00023 #include "pab_xxport.h"
00024 
00025 #define T_MS_ARRAY         0x1100               // Some sort of array
00026 #define T_MS_STRING  ((unsigned long) 0x1e) // definitely a string 
00027 
00028  typedef unsigned long adr_t;
00029  typedef unsigned long content_t;
00030  typedef unsigned short pabsize_t;
00031  typedef unsigned char byte_t;
00032  typedef unsigned short word_t;
00033  typedef byte_t byte;
00034 
00035  class pab;
00036 
00037  class pabrec {
00038    private:
00039      char   entry[1024];
00040      byte   *_mem;
00041      word_t m_N;
00042      word_t *m_W;
00043    public:
00044      pabrec(pab &);       // expects record the begin at reading point (ftell).
00045     ~pabrec();
00046    public:
00047      word_t N(void)                 { return m_N; }
00048      word_t operator[](int i)       { return m_W[i]; }
00049      const char *getEntry(int i);
00050    public:
00051      content_t read(word_t offset);
00052  };
00053 
00054  typedef enum {
00055    pr_unknown,pr_notused,
00056    pr_givenname,pr_email,
00057    pr_firstname,pr_additionalname,pr_lastname,pr_title,
00058    pr_address,pr_town,pr_state,pr_zip,pr_country,
00059    pr_organization,pr_department,pr_subdep,pr_job,
00060    pr_tel,pr_fax,pr_modem,pr_mobile,pr_url,pr_talk,
00061    pr_notes,pr_birthday
00062  }
00063  pabrec_entry;
00064 
00065  class mapitag_t
00066  {
00067    friend bool operator < (mapitag_t &,mapitag_t &);
00068    friend bool operator > (mapitag_t &,mapitag_t &);
00069    friend bool operator == (mapitag_t &,mapitag_t &);
00070    private:
00071      word_t        _tag;
00072      word_t        _type;
00073      content_t     _order;
00074    public:
00075      mapitag_t(content_t tag,content_t order)   { _tag=(word_t) tag;_type=(word_t) (tag>>16);_order=order; }
00076      mapitag_t()                                { _tag=0;_type=0;_order=0; }
00077    public:
00078      mapitag_t & operator = (mapitag_t & t)     { _tag=t._tag;_type=t._type;_order=t._order;return *this; }
00079    public:
00080      bool      isUsed(void)                     { return (_type==T_MS_STRING || (_type&T_MS_ARRAY)!=0) && _order!=0; }
00081      word_t    literal(void)                    { return _tag; }
00082      content_t order(void)                      { return _order; }
00083      pabrec_entry matchTag(void);
00084  };
00085 
00086  bool operator < (mapitag_t & a,mapitag_t & b);
00087  bool operator > (mapitag_t & a,mapitag_t & b);
00088  bool operator == (mapitag_t & a,mapitag_t & b);
00089 
00090  class pabfields_t
00091  {
00092    private:
00093      QMemArray<mapitag_t> tags,context_tags;
00094      pabrec            *m_R;
00095      QString givenName,email,
00096              title,firstName,additionalName,lastName,
00097              address,town,state,zip,country,
00098              organization,department,subDep,job,
00099              tel,fax,modem,mobile,homepage,talk,
00100              comment,birthday;
00101      bool               OK;
00102    private:
00103      bool          isUsed(int k);
00104      pabrec_entry  isWhat(int k);
00105      word_t        literal(int k);
00106      content_t     order(int k);
00107    public:
00108      pabfields_t(pabrec & R, QWidget *parent);
00109    public:
00110      KABC::Addressee get( );
00111      bool isOK(void)     { return OK; }
00112      bool isUsable(void) { return givenName!=""; }
00113  };
00114 
00115 
00116 #endif
00117 
KDE Logo
This file is part of the documentation for kaddressbook Library Version 3.2.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Sat May 1 11:38:53 2004 by doxygen 1.2.15 written by Dimitri van Heesch, © 1997-2003