summaryrefslogtreecommitdiffabout
path: root/kabc/phonenumber.h
Unidiff
Diffstat (limited to 'kabc/phonenumber.h') (more/less context) (ignore whitespace changes)
-rw-r--r--kabc/phonenumber.h165
1 files changed, 165 insertions, 0 deletions
diff --git a/kabc/phonenumber.h b/kabc/phonenumber.h
new file mode 100644
index 0000000..6a9c8cb
--- a/dev/null
+++ b/kabc/phonenumber.h
@@ -0,0 +1,165 @@
1/*
2 This file is part of libkabc.
3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org>
4
5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Library General Public
7 License as published by the Free Software Foundation; either
8 version 2 of the License, or (at your option) any later version.
9
10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Library General Public License for more details.
14
15 You should have received a copy of the GNU Library General Public License
16 along with this library; see the file COPYING.LIB. If not, write to
17 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18 Boston, MA 02111-1307, USA.
19*/
20
21/*
22Enhanced Version of the file for platform independent KDE tools.
23Copyright (c) 2004 Ulf Schenk
24
25$Id$
26*/
27
28#ifndef KABC_PHONENUMBER_H
29#define KABC_PHONENUMBER_H
30
31#include <qvaluelist.h>
32#include <qstring.h>
33
34namespace KABC {
35
36/**
37 @short Phonenumber information.
38
39 This class provides phone number information. A phone number is classified by
40 a type. The following types are available, it's possible to use multiple types
41 @ref Types for a number by combining them through a logical or.
42*/
43class PhoneNumber
44{
45 friend QDataStream &operator<<( QDataStream &, const PhoneNumber & );
46 friend QDataStream &operator>>( QDataStream &, PhoneNumber & );
47
48 public:
49 typedef QValueList<PhoneNumber> List;
50 typedef QValueList<int> TypeList;
51
52 /**
53 @li @p Home - Home number
54 @li @p Work - Office number
55 @li @p Msg - Messaging
56 @li @p Pref - Preferred number
57 @li @p Voice - Voice
58 @li @p Fax - Fax machine
59 @li @p Cell - Cell phone
60 @li @p Video - Video phone
61 @li @p Bbs - Mailbox
62 @li @p Modem - Modem
63 @li @p Car - Car phone
64 @li @p Isdn - ISDN connection
65 @li @p Pcs - Personal Communication Service
66 @li @p Pager - Pager
67 */
68 enum Types { Home = 1, Work = 2, Msg = 4, Pref = 8, Voice = 16, Fax = 32,
69 Cell = 64, Video = 128, Bbs = 256, Modem = 512, Car = 1024,
70 Isdn = 2048, Pcs = 4096, Pager = 8192 };
71
72 /**
73 Create an empty phone number object.
74 */
75 PhoneNumber();
76
77 /**
78 Create a phonenumber object.
79
80 @param number Number
81 @param type Type as defined in enum. Multiple types can be
82 specified by combining them by a logical or.
83 */
84 PhoneNumber( const QString &number, int type = Home );
85
86 /**
87 Destructor.
88 */
89 ~PhoneNumber();
90
91 bool operator==( const PhoneNumber & ) const;
92 bool operator!=( const PhoneNumber & ) const;
93
94 /**
95 Sets the unique identifier.
96 */
97 void setId( const QString &id );
98
99 /**
100 Returns the unique identifier.
101 */
102 QString id() const;
103
104 /**
105 Sets the number.
106 */
107 void setNumber( const QString & );
108
109 /**
110 Returns the number.
111 */
112 QString number() const;
113
114 /**
115 Sets the type. Multiple types can be specified by combining them by
116 a logical or.
117 */
118 void setType( int );
119
120 /**
121 Returns the type. Can be a multiple types combined by a logical or.
122 */
123 int type() const;
124
125 /**
126 Returns a translated string of all types the address has.
127 */
128 QString typeLabel() const;
129
130 /**
131 Returns the translated label for phone number depending on its type.
132 */
133 QString label() const;
134
135 /**
136 Returns a list of all available types
137 */
138 static TypeList typeList();
139
140 /**
141 Returns the translated label for phone number type.
142 */
143 static QString typeLabel( int type );
144
145 /**
146 Returns the translated label for phone number type.
147 @obsolete
148 */
149 static QString label( int type );
150
151 private:
152 void init();
153
154 QString mId;
155
156 int mType;
157 QString mNumber;
158};
159
160QDataStream &operator<<( QDataStream &, const PhoneNumber & );
161QDataStream &operator>>( QDataStream &, PhoneNumber & );
162
163}
164
165#endif