1 /*
2  *
3  * Evolution calendar - Data model for ETable
4  *
5  * This program is free software; you can redistribute it and/or modify it
6  * under the terms of the GNU Lesser General Public License as published by
7  * the Free Software Foundation.
8  *
9  * This program is distributed in the hope that it will be useful, but
10  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
11  * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
12  * for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public License
15  * along with this program; if not, see <http://www.gnu.org/licenses/>.
16  *
17  *
18  * Authors:
19  *		Rodrigo Moya <rodrigo@ximian.com>
20  *
21  * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com)
22  *
23  */
24 
25 #ifndef E_CAL_MODEL_CALENDAR_H
26 #define E_CAL_MODEL_CALENDAR_H
27 
28 #include "e-cal-model.h"
29 
30 /* Standard GObject macros */
31 #define E_TYPE_CAL_MODEL_CALENDAR \
32 	(e_cal_model_calendar_get_type ())
33 #define E_CAL_MODEL_CALENDAR(obj) \
34 	(G_TYPE_CHECK_INSTANCE_CAST \
35 	((obj), E_TYPE_CAL_MODEL_CALENDAR, ECalModelCalendar))
36 #define E_CAL_MODEL_CALENDAR_CLASS(cls) \
37 	(G_TYPE_CHECK_CLASS_CAST \
38 	((cls), E_TYPE_CAL_MODEL_CALENDAR, ECalModelCalendarClass))
39 #define E_IS_CAL_MODEL_CALENDAR(obj) \
40 	(G_TYPE_CHECK_INSTANCE_TYPE \
41 	((obj), E_TYPE_CAL_MODEL_CALENDAR))
42 #define E_IS_CAL_MODEL_CALENDAR_CLASS(cls) \
43 	(G_TYPE_CHECK_CLASS_TYPE \
44 	((cls), E_TYPE_CAL_MODEL_CALENDAR))
45 #define E_CAL_MODEL_CALENDAR_GET_CLASS(obj) \
46 	(G_TYPE_INSTANCE_GET_CLASS \
47 	((obj), E_TYPE_CAL_MODEL_CALENDAR, ECalModelCalendarClass))
48 
49 G_BEGIN_DECLS
50 
51 typedef struct _ECalModelCalendar ECalModelCalendar;
52 typedef struct _ECalModelCalendarClass ECalModelCalendarClass;
53 typedef struct _ECalModelCalendarPrivate ECalModelCalendarPrivate;
54 
55 typedef enum {
56 	/* If you add new items here or reorder them, you have to update the
57 	 * .etspec files for the tables using this model */
58 	E_CAL_MODEL_CALENDAR_FIELD_DTEND = E_CAL_MODEL_FIELD_LAST,
59 	E_CAL_MODEL_CALENDAR_FIELD_LOCATION,
60 	E_CAL_MODEL_CALENDAR_FIELD_TRANSPARENCY,
61 	E_CAL_MODEL_CALENDAR_FIELD_STATUS,
62 	E_CAL_MODEL_CALENDAR_FIELD_LAST
63 } ECalModelCalendarField;
64 
65 struct _ECalModelCalendar {
66 	ECalModel parent;
67 	ECalModelCalendarPrivate *priv;
68 };
69 
70 struct _ECalModelCalendarClass {
71 	ECalModelClass parent_class;
72 };
73 
74 GType		e_cal_model_calendar_get_type	(void);
75 ECalModel *	e_cal_model_calendar_new	(ECalDataModel *data_model,
76 						 ESourceRegistry *registry,
77 						 EShell *shell);
78 
79 G_END_DECLS
80 
81 #endif /* E_CAL_MODEL_CALENDAR_H */
82