summaryrefslogtreecommitdiff
path: root/gdata/gd/gdata-gd-when.h
blob: 6bf9f051d36dd64a761e80d96466843b01d36e00 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
/*
 * GData Client
 * Copyright (C) Philip Withnall 2009–2010 <philip@tecnocode.co.uk>
 *
 * GData Client is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * GData Client is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with GData Client.  If not, see <http://www.gnu.org/licenses/>.
 */

#ifndef GDATA_GD_WHEN_H
#define GDATA_GD_WHEN_H

#include <glib.h>
#include <glib-object.h>

#include <gdata/gdata-parsable.h>
#include <gdata/gd/gdata-gd-reminder.h>

G_BEGIN_DECLS

/**
 * GDATA_GD_EVENT_STATUS_CANCELED:
 *
 * The event has been canceled.
 *
 * Since: 0.7.0
 */
#define GDATA_GD_EVENT_STATUS_CANCELED "http://schemas.google.com/g/2005#event.canceled"

/**
 * GDATA_GD_EVENT_STATUS_CONFIRMED:
 *
 * The event has been planned and confirmed.
 *
 * Since: 0.7.0
 */
#define GDATA_GD_EVENT_STATUS_CONFIRMED "http://schemas.google.com/g/2005#event.confirmed"

/**
 * GDATA_GD_EVENT_STATUS_TENTATIVE:
 *
 * The event has been planned, but only tentatively scheduled.
 *
 * Since: 0.7.0
 */
#define GDATA_GD_EVENT_STATUS_TENTATIVE "http://schemas.google.com/g/2005#event.tentative"

/**
 * GDATA_GD_EVENT_VISIBILITY_CONFIDENTIAL:
 *
 * The event is visible to only certain people.
 *
 * Since: 0.7.0
 */
#define GDATA_GD_EVENT_VISIBILITY_CONFIDENTIAL "http://schemas.google.com/g/2005#event.confidential"

/**
 * GDATA_GD_EVENT_VISIBILITY_DEFAULT:
 *
 * The event's visibility is inherited from the preferences of its owner.
 *
 * Since: 0.7.0
 */
#define GDATA_GD_EVENT_VISIBILITY_DEFAULT "http://schemas.google.com/g/2005#event.default"

/**
 * GDATA_GD_EVENT_VISIBILITY_PRIVATE:
 *
 * The event is visible to very few people.
 *
 * Since: 0.7.0
 */
#define GDATA_GD_EVENT_VISIBILITY_PRIVATE "http://schemas.google.com/g/2005#event.private"

/**
 * GDATA_GD_EVENT_VISIBILITY_PUBLIC:
 *
 * The event is visible to most people.
 *
 * Since: 0.7.0
 */
#define GDATA_GD_EVENT_VISIBILITY_PUBLIC "http://schemas.google.com/g/2005#event.public"

/**
 * GDATA_GD_EVENT_TRANSPARENCY_OPAQUE:
 *
 * The event consumes time in calendars; its time will be marked as busy in a free/busy search.
 *
 * Since: 0.7.0
 */
#define GDATA_GD_EVENT_TRANSPARENCY_OPAQUE "http://schemas.google.com/g/2005#event.opaque"

/**
 * GDATA_GD_EVENT_TRANSPARENCY_TRANSPARENT:
 *
 * The event does not consume time in calendars; its time will be not marked as busy in a free/busy search.
 *
 * Since: 0.7.0
 */
#define GDATA_GD_EVENT_TRANSPARENCY_TRANSPARENT "http://schemas.google.com/g/2005#event.transparent"

#define GDATA_TYPE_GD_WHEN		(gdata_gd_when_get_type ())
#define GDATA_GD_WHEN(o)		(G_TYPE_CHECK_INSTANCE_CAST ((o), GDATA_TYPE_GD_WHEN, GDataGDWhen))
#define GDATA_GD_WHEN_CLASS(k)		(G_TYPE_CHECK_CLASS_CAST((k), GDATA_TYPE_GD_WHEN, GDataGDWhenClass))
#define GDATA_IS_GD_WHEN(o)		(G_TYPE_CHECK_INSTANCE_TYPE ((o), GDATA_TYPE_GD_WHEN))
#define GDATA_IS_GD_WHEN_CLASS(k)	(G_TYPE_CHECK_CLASS_TYPE ((k), GDATA_TYPE_GD_WHEN))
#define GDATA_GD_WHEN_GET_CLASS(o)	(G_TYPE_INSTANCE_GET_CLASS ((o), GDATA_TYPE_GD_WHEN, GDataGDWhenClass))

typedef struct _GDataGDWhenPrivate	GDataGDWhenPrivate;

/**
 * GDataGDWhen:
 *
 * All the fields in the #GDataGDWhen structure are private and should never be accessed directly.
 *
 * Since: 0.2.0
 */
typedef struct {
	GDataParsable parent;
	GDataGDWhenPrivate *priv;
} GDataGDWhen;

/**
 * GDataGDWhenClass:
 *
 * All the fields in the #GDataGDWhenClass structure are private and should never be accessed directly.
 *
 * Since: 0.4.0
 */
typedef struct {
	/*< private >*/
	GDataParsableClass parent;

	/*< private >*/
	/* Padding for future expansion */
	void (*_g_reserved0) (void);
	void (*_g_reserved1) (void);
} GDataGDWhenClass;

GType gdata_gd_when_get_type (void) G_GNUC_CONST;

GDataGDWhen *gdata_gd_when_new (gint64 start_time, gint64 end_time, gboolean is_date) G_GNUC_WARN_UNUSED_RESULT G_GNUC_MALLOC;

gint64 gdata_gd_when_get_start_time (GDataGDWhen *self);
void gdata_gd_when_set_start_time (GDataGDWhen *self, gint64 start_time);

gint64 gdata_gd_when_get_end_time (GDataGDWhen *self);
void gdata_gd_when_set_end_time (GDataGDWhen *self, gint64 end_time);

gboolean gdata_gd_when_is_date (GDataGDWhen *self) G_GNUC_PURE;
void gdata_gd_when_set_is_date (GDataGDWhen *self, gboolean is_date);

const gchar *gdata_gd_when_get_value_string (GDataGDWhen *self) G_GNUC_PURE;
void gdata_gd_when_set_value_string (GDataGDWhen *self, const gchar *value_string);

GList *gdata_gd_when_get_reminders (GDataGDWhen *self) G_GNUC_PURE;
void gdata_gd_when_add_reminder (GDataGDWhen *self, GDataGDReminder *reminder);
/* TODO: More reminder API */

G_END_DECLS

#endif /* !GDATA_GD_WHEN_H */