1 /*
2 *  Rubrica
3 *  file: types.h
4 *
5 *  Copyright (C) 2000-2005 Nicola Fragale <nicolafragale@libero.it>
6 *
7 *  This program is free software; you can redistribute it and/or modify
8 *  it under the terms of the GNU General Public License as published by
9 *  the Free Software Foundation; either version 3 of the License
10 *
11 *  This program is distributed in the hope that it will be useful,
12 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
13 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 *  GNU General Public License for more details.
15 *
16 *  You should have received a copy of the GNU General Public License
17 *  along with this program; if not, write to the Free Software
18 *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
19 */
20 
21 #include <gtk/gtk.h>
22 #include <glade/glade.h>
23 
24 #include "libral.h"
25 
26 #ifndef RUBRICA_TYPES_H
27 #define RUBRICA_TYPES_H
28 
29 #define RUBRICA_GET_ENTRY(x) g_strdup(gtk_entry_get_text(GTK_ENTRY(x)))
30 #define RUBRICA_GET_CHECK(x) gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(x))
31 
32 
33 typedef enum {
34   VAL_STRING,
35   VAL_INT
36 } valtype;
37 
38 
39 /** Models **/
40 typedef enum {
41   ADDRESS_MODEL,
42   NET_MODEL,
43   TELEPHONE_MODEL,
44   INFO_MODEL,
45 } RubricaModelType;
46 
47 
48 /** Columns types **/
49 typedef enum {
50   ADDRESS_COLUMNS,
51   URI_COLUMNS,
52   TELEPHONE_COLUMNS,
53   INFO_COLUMNS,
54 } RubricaColumnsType;
55 
56 
57 
58 /*  PersonalCardColumns
59  */
60 typedef enum {
61   PRINT_COLUMN = 0,
62   CARD_COLUMN,
63   FIRST_NAME_COLUMN,
64   LAST_NAME_COLUMN,
65   PROFESSION_COLUMN,
66   CITY_COLUMN,
67   COUNTRY_COLUMN,
68   WEB_CARD_COLUMN,
69   EMAIL_CARD_COLUMN,
70   TELEPHONE_COLUMN,
71   COMPANY_COLUMN,
72   ASSIGNMENT_COLUMN,
73   ID_COLUMN,
74   COLUMNS
75 } PersonalCardColumns;
76 
77 
78 /*  RubricaGroupColumnType
79 */
80 typedef enum {
81   GROUP_BELONG_COLUMN = 0,       /* card belongs to this group  */
82   GROUP_PIXMAP_COLUMN,           /* group pixmap                */
83   GROUP_NAME_COLUMN,             /* group name                  */
84   GROUP_LABEL_COLUMN,            /* group label                 */
85   GROUP_OWNER_COLUMN,            /* group owner (hidden column) */
86   GROUP_PIXMAP_PATH,             /* group pixmap's path         */
87   GROUP_ID,                      /* group's id                  */
88   GROUP_LAST_COLUMN
89 } RubricaGroupColumnType;
90 
91 
92 
93 /*  RubricaAddressColumnType
94     columns in address model/treeview
95  */
96 typedef enum {
97   ADDRESS_STREET_COLUMN = 0,    /* visible */
98   ADDRESS_NUMBER_COLUMN,        /* visible */
99   ADDRESS_CITY_COLUMN,          /* visible */
100   ADDRESS_LABEL_COLUMN,         /* visible */
101   ADDRESS_TYPE_COLUMN,          /* hidden  */
102   ADDRESS_ZIP_COLUMN,           /* hidden  */
103   ADDRESS_PROVINCE_COLUMN,      /* hidden  */
104   ADDRESS_STATE_COLUMN,         /* hidden  */
105   ADDRESS_COUNTRY_COLUMN,       /* hidden  */
106   LAST_ADDRESS_COLUMN
107 } RubricaAddressColumnType;
108 
109 
110 /*  RubricaNetColumnType
111     colums in net model/treeview
112  */
113 typedef enum {
114   URI_COLUMN = 0,
115   URI_TYPE_COLUMN,
116   LAST_NET_COLUMN
117 } RubricaNetColumnType;
118 
119 
120 /*  RubricaPhoneColumnType
121     columns in telephone model/treeview
122 */
123 typedef enum {
124   TELEPHONE_NUMBER_COLUMN = 0,
125   TELEPHONE_LABEL_COLUMN,
126   TELEPHONE_TYPE_COLUMN,
127   LAST_TEL_COLUMN
128 } RubricaPhoneColumnType;
129 
130 
131 /*  RubricaInfoColumnType
132 */
133 typedef enum {
134   INFO_CARD_LABEL_COLUMN = 0,
135   INFO_FIRST_NAME_COLUMN,
136   INFO_LAST_NAME_COLUMN,
137   INFO_ASSIGNMENT_COLUMN,
138   INFO_TELEPHONE_COLUMN,
139   INFO_EMAIL_COLUMN,
140   INFO_ID_COLUMN,
141   LAST_INFO_COLUMN
142 } RubricaInfoColumnType;
143 
144 
145 /*  RubricaGroupType
146 */
147 typedef enum {
148   NO_GROUP         = 0,
149   ALL_GROUP,
150   FAVORITES_GROUP,
151   HOT_GROUP,
152   FRIENDS_GROUP,
153   HEART_GROUP,
154   RELATIVES_GROUP,
155   HOLIDAYS_GROUP,
156   HOBBIES_GROUP,
157   SPORT_GROUP,
158   BUSSINES_GROUP,
159   COMPANY_GROUP,
160   WORK_GROUP,
161   CUSTOMER_GROUP,
162   STRATEGIES_GROUP,
163   PROGRAMMERS_GROUP,
164   BSD_GROUP,
165   PLUTO_GROUP
166 } RubricaGroupType;
167 
168 
169 /*  RubricaComboColumnType
170 */
171 typedef enum {
172   COMBO_PIXMAP,
173   COMBO_LABEL,
174   COMBO_LAST_COLUMN
175 } RubricaComboColumnType;
176 
177 
178 
179 typedef enum {
180   WEB_LINK,
181   EMAIL_LINK,
182   IRC_LINK,
183   TELEPHONE_LINK,
184   UNKNOWN_LINK
185 } RubricaLinkType;
186 
187 
188 typedef enum {
189   PIXMAP_RATE_NONE = R_RATE_NONE,
190   PIXMAP_RATE_FEW,
191   PIXMAP_RATE_NORMAL,
192   PIXMAP_RATE_HIGH,
193   PIXMAP_RATE_VERY_HIGH,
194   PIXMAP_UNLOCK,
195   PIXMAP_LOCK
196 } RubricaPixmap;
197 
198 
199 
200 typedef struct {
201   gchar* label;
202   gchar* icon;
203   gchar* exec;
204 } RubricaThemedItem;
205 
206 
207 typedef struct {
208   gchar* uri;
209   RubricaLinkType type;
210 } RubricaLink;
211 
212 
213 typedef struct {
214   gchar* pixmap;
215   gchar* name;
216   gchar* label;
217 } RubricaDefaultCategories;
218 
219 
220 typedef struct {
221   SearchType type;
222 
223   gint first;           /* date/first date  */
224   gint second;          /* second date      */
225 } RubricaSearch;
226 
227 
228 typedef struct  {
229   gchar* icon;
230   gchar* label;
231 } RubricaCombo;
232 
233 
234 
235 #endif
236