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