1 /* 2 * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com) 3 * 4 * This library is free software: you can redistribute it and/or modify it 5 * under the terms of the GNU Lesser General Public License as published by 6 * the Free Software Foundation. 7 * 8 * This library is distributed in the hope that it will be useful, but 9 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 10 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 11 * for more details. 12 * 13 * You should have received a copy of the GNU Lesser General Public License 14 * along with this library. If not, see <http://www.gnu.org/licenses/>. 15 * 16 * Authors: Federico Mena-Quintero <federico@ximian.com> 17 * JP Rosevear <jpr@ximian.com> 18 */ 19 20 #if !defined (__LIBECAL_H_INSIDE__) && !defined (LIBECAL_COMPILATION) 21 #error "Only <libecal/libecal.h> should be included directly." 22 #endif 23 24 #ifndef E_CAL_ENUMS_H 25 #define E_CAL_ENUMS_H 26 27 G_BEGIN_DECLS 28 29 /** 30 * ECalClientSourceType: 31 * @E_CAL_CLIENT_SOURCE_TYPE_EVENTS: Events calander 32 * @E_CAL_CLIENT_SOURCE_TYPE_TASKS: Task list calendar 33 * @E_CAL_CLIENT_SOURCE_TYPE_MEMOS: Memo list calendar 34 * @E_CAL_CLIENT_SOURCE_TYPE_LAST: Artificial 'last' value of the enum 35 * 36 * Indicates the type of calendar 37 * 38 * Since: 3.2 39 **/ 40 typedef enum { 41 E_CAL_CLIENT_SOURCE_TYPE_EVENTS, 42 E_CAL_CLIENT_SOURCE_TYPE_TASKS, 43 E_CAL_CLIENT_SOURCE_TYPE_MEMOS, 44 E_CAL_CLIENT_SOURCE_TYPE_LAST /*< skip >*/ 45 } ECalClientSourceType; 46 47 /** 48 * ECalObjModType: 49 * @E_CAL_OBJ_MOD_THIS: Modify this component 50 * @E_CAL_OBJ_MOD_THIS_AND_PRIOR: Modify this component and all prior occurrances 51 * @E_CAL_OBJ_MOD_THIS_AND_FUTURE: Modify this component and all future occurrances 52 * @E_CAL_OBJ_MOD_ALL: Modify all occurrances of this component 53 * @E_CAL_OBJ_MOD_ONLY_THIS: Modify only this component 54 * 55 * Indicates the type of modification made to a calendar 56 * 57 * Since: 3.8 58 **/ 59 typedef enum { 60 E_CAL_OBJ_MOD_THIS = 1 << 0, 61 E_CAL_OBJ_MOD_THIS_AND_PRIOR = 1 << 1, 62 E_CAL_OBJ_MOD_THIS_AND_FUTURE = 1 << 2, 63 E_CAL_OBJ_MOD_ALL = 0x07, 64 E_CAL_OBJ_MOD_ONLY_THIS = 1 << 3 65 } ECalObjModType; 66 67 /** 68 * ECalComponentVType: 69 * @E_CAL_COMPONENT_NO_TYPE: Unknown or unsupported component type 70 * @E_CAL_COMPONENT_EVENT: vEvent type 71 * @E_CAL_COMPONENT_TODO: vTodo type 72 * @E_CAL_COMPONENT_JOURNAL: vJournal type 73 * @E_CAL_COMPONENT_FREEBUSY: vFreeBusy type 74 * @E_CAL_COMPONENT_TIMEZONE: vTimezone type 75 * 76 * Types of calendar components to be stored by a ECalComponent, as per RFC 2445. 77 * We don't put the alarm component type here since we store alarms as separate 78 * structures inside the other "real" components. 79 **/ 80 typedef enum { 81 E_CAL_COMPONENT_NO_TYPE, 82 E_CAL_COMPONENT_EVENT, 83 E_CAL_COMPONENT_TODO, 84 E_CAL_COMPONENT_JOURNAL, 85 E_CAL_COMPONENT_FREEBUSY, 86 E_CAL_COMPONENT_TIMEZONE 87 } ECalComponentVType; 88 89 /** 90 * ECalComponentClassification: 91 * @E_CAL_COMPONENT_CLASS_NONE: None 92 * @E_CAL_COMPONENT_CLASS_PUBLIC: Public 93 * @E_CAL_COMPONENT_CLASS_PRIVATE: Private 94 * @E_CAL_COMPONENT_CLASS_CONFIDENTIAL: Confidential 95 * @E_CAL_COMPONENT_CLASS_UNKNOWN: Unknown 96 * 97 * CLASSIFICATION property 98 **/ 99 typedef enum { 100 E_CAL_COMPONENT_CLASS_NONE, 101 E_CAL_COMPONENT_CLASS_PUBLIC, 102 E_CAL_COMPONENT_CLASS_PRIVATE, 103 E_CAL_COMPONENT_CLASS_CONFIDENTIAL, 104 E_CAL_COMPONENT_CLASS_UNKNOWN 105 } ECalComponentClassification; 106 107 /** 108 * ECalComponentPeriodKind: 109 * @E_CAL_COMPONENT_PERIOD_DATETIME: Date and time 110 * @E_CAL_COMPONENT_PERIOD_DURATION: Duration 111 * 112 * Way in which a period of time is specified 113 **/ 114 typedef enum { 115 E_CAL_COMPONENT_PERIOD_DATETIME, 116 E_CAL_COMPONENT_PERIOD_DURATION 117 } ECalComponentPeriodKind; 118 119 /** 120 * ECalComponentRangeKind: 121 * @E_CAL_COMPONENT_RANGE_SINGLE: Single 122 * @E_CAL_COMPONENT_RANGE_THISPRIOR: This and prior 123 * @E_CAL_COMPONENT_RANGE_THISFUTURE: This and future 124 * 125 * The kind of range 126 **/ 127 typedef enum { 128 E_CAL_COMPONENT_RANGE_SINGLE, 129 E_CAL_COMPONENT_RANGE_THISPRIOR, 130 E_CAL_COMPONENT_RANGE_THISFUTURE 131 } ECalComponentRangeKind; 132 133 /** 134 * ECalComponentTransparency: 135 * @E_CAL_COMPONENT_TRANSP_NONE: None 136 * @E_CAL_COMPONENT_TRANSP_TRANSPARENT: Transparent 137 * @E_CAL_COMPONENT_TRANSP_OPAQUE: Opaque 138 * @E_CAL_COMPONENT_TRANSP_UNKNOWN: Unknown 139 * 140 * Time transparency 141 **/ 142 typedef enum { 143 E_CAL_COMPONENT_TRANSP_NONE, 144 E_CAL_COMPONENT_TRANSP_TRANSPARENT, 145 E_CAL_COMPONENT_TRANSP_OPAQUE, 146 E_CAL_COMPONENT_TRANSP_UNKNOWN 147 } ECalComponentTransparency; 148 149 /** 150 * ECalComponentAlarmAction: 151 * @E_CAL_COMPONENT_ALARM_NONE: None 152 * @E_CAL_COMPONENT_ALARM_AUDIO: Audio 153 * @E_CAL_COMPONENT_ALARM_DISPLAY: Display message 154 * @E_CAL_COMPONENT_ALARM_EMAIL: Email 155 * @E_CAL_COMPONENT_ALARM_PROCEDURE: Procedure 156 * @E_CAL_COMPONENT_ALARM_UNKNOWN: Unknown 157 * 158 * Alarm types 159 **/ 160 typedef enum { 161 E_CAL_COMPONENT_ALARM_NONE, 162 E_CAL_COMPONENT_ALARM_AUDIO, 163 E_CAL_COMPONENT_ALARM_DISPLAY, 164 E_CAL_COMPONENT_ALARM_EMAIL, 165 E_CAL_COMPONENT_ALARM_PROCEDURE, 166 E_CAL_COMPONENT_ALARM_UNKNOWN 167 } ECalComponentAlarmAction; 168 169 /** 170 * ECalComponentAlarmTriggerkind: 171 * @E_CAL_COMPONENT_ALARM_TRIGGER_NONE: None 172 * @E_CAL_COMPONENT_ALARM_TRIGGER_RELATIVE_START: Relative to the start 173 * @E_CAL_COMPONENT_ALARM_TRIGGER_RELATIVE_END: Relative to the end 174 * @E_CAL_COMPONENT_ALARM_TRIGGER_ABSOLUTE: Absolute 175 * 176 * Whether a trigger is relative to the start or end of an event occurrence, or 177 * whether it is specified to occur at an absolute time. 178 */ 179 typedef enum { 180 E_CAL_COMPONENT_ALARM_TRIGGER_NONE, 181 E_CAL_COMPONENT_ALARM_TRIGGER_RELATIVE_START, 182 E_CAL_COMPONENT_ALARM_TRIGGER_RELATIVE_END, 183 E_CAL_COMPONENT_ALARM_TRIGGER_ABSOLUTE 184 } ECalComponentAlarmTriggerKind; 185 186 /** 187 * ECalRecurDescribeRecurrenceFlags: 188 * @E_CAL_RECUR_DESCRIBE_RECURRENCE_FLAG_NONE: no extra flags, either returns %NULL or the recurrence description, 189 * something like "Every 2 weeks..." 190 * @E_CAL_RECUR_DESCRIBE_RECURRENCE_FLAG_PREFIXED: either returns %NULL or the recurrence description prefixed 191 * with text like "The meeting recurs", forming something like "The meeting recurs every 2 weeks..." 192 * @E_CAL_RECUR_DESCRIBE_RECURRENCE_FLAG_FALLBACK: returns %NULL only if the component doesn't recur, 193 * otherwise returns either the recurrence description or at least text like "The meeting recurs" 194 * 195 * Influences behaviour of e_cal_recur_describe_recurrence(). 196 * 197 * Since: 3.30 198 **/ 199 typedef enum { /*< flags >*/ 200 E_CAL_RECUR_DESCRIBE_RECURRENCE_FLAG_NONE = 0, 201 E_CAL_RECUR_DESCRIBE_RECURRENCE_FLAG_PREFIXED = (1 << 0), 202 E_CAL_RECUR_DESCRIBE_RECURRENCE_FLAG_FALLBACK = (1 << 1) 203 } ECalRecurDescribeRecurrenceFlags; 204 205 /** 206 * ECalOperationFlags: 207 * @E_CAL_OPERATION_FLAG_NONE: no operation flags defined 208 * @E_CAL_OPERATION_FLAG_CONFLICT_FAIL: conflict resolution mode, to fail and do not 209 * do any changes, when a conflict is detected 210 * @E_CAL_OPERATION_FLAG_CONFLICT_USE_NEWER: conflict resolution mode, to use newer 211 * of the local and the server side data, when a conflict is detected 212 * @E_CAL_OPERATION_FLAG_CONFLICT_KEEP_SERVER: conflict resolution mode, to use 213 * the server data (and local changed), when a conflict is detected 214 * @E_CAL_OPERATION_FLAG_CONFLICT_KEEP_LOCAL: conflict resolution mode, to use 215 * local data (and always overwrite server data), when a conflict is detected 216 * @E_CAL_OPERATION_FLAG_CONFLICT_WRITE_COPY: conflict resolution mode, to create 217 * a copy of the data, when a conflict is detected 218 * @E_CAL_OPERATION_FLAG_DISABLE_ITIP_MESSAGE: request to disable send of an iTip 219 * message by the server; this works only for servers which support iTip handling 220 * 221 * Calendar operation flags, to specify behavior in certain situations. The conflict 222 * resolution mode flags cannot be combined together, where the @E_CAL_OPERATION_FLAG_CONFLICT_KEEP_LOCAL 223 * is the default behavior (and it is used when no other conflict resolution flag is set). 224 * The flags can be ignored when the operation or the backend don't support it. 225 * 226 * Since: 3.34 227 **/ 228 typedef enum { /*< flags >*/ 229 E_CAL_OPERATION_FLAG_NONE = 0, 230 E_CAL_OPERATION_FLAG_CONFLICT_FAIL = (1 << 0), 231 E_CAL_OPERATION_FLAG_CONFLICT_USE_NEWER = (1 << 1), 232 E_CAL_OPERATION_FLAG_CONFLICT_KEEP_SERVER = (1 << 2), 233 E_CAL_OPERATION_FLAG_CONFLICT_KEEP_LOCAL = 0, 234 E_CAL_OPERATION_FLAG_CONFLICT_WRITE_COPY = (1 << 3), 235 E_CAL_OPERATION_FLAG_DISABLE_ITIP_MESSAGE = (1 << 4) 236 } ECalOperationFlags; 237 238 G_END_DECLS 239 240 #endif /* E_CAL_ENUMS_H */ 241