diff options
author | Rodrigo Moya <rodrigo@ximian.com> | 2002-10-02 02:03:10 +0800 |
---|---|---|
committer | Rodrigo Moya <rodrigo@src.gnome.org> | 2002-10-02 02:03:10 +0800 |
commit | b48599b701d22e5dff77c1d94dd4e0059a922c37 (patch) | |
tree | 94daca16651660838d9fbc4e198312412ef768a0 /calendar/pcs | |
parent | 14829e0cc4f6ed7e25f60aafb52a1ff17359731c (diff) | |
download | gsoc2013-evolution-b48599b701d22e5dff77c1d94dd4e0059a922c37.tar.gz gsoc2013-evolution-b48599b701d22e5dff77c1d94dd4e0059a922c37.tar.zst gsoc2013-evolution-b48599b701d22e5dff77c1d94dd4e0059a922c37.zip |
added isReadOnly method to Cal interface.
2002-10-01 Rodrigo Moya <rodrigo@ximian.com>
* idl/evolution-calendar.idl: added isReadOnly method to Cal
interface.
* pcs/cal.c (impl_Cal_is_read_only): new method implementation.
* pcs/cal-backend.[ch]: added is_read_only method to CalBackend class.
(cal_backend_is_read_only): new function.
* pcs/cal-backend-file.c (cal_backend_file_is_read_only): new method.
(cal_backend_file_class_init): set new signal's virtual method.
* cal-client/cal-client.[ch] (cal_client_is_read_only): new function.
svn path=/trunk/; revision=18282
Diffstat (limited to 'calendar/pcs')
-rw-r--r-- | calendar/pcs/cal-backend-file.c | 10 | ||||
-rw-r--r-- | calendar/pcs/cal-backend.c | 23 | ||||
-rw-r--r-- | calendar/pcs/cal-backend.h | 3 | ||||
-rw-r--r-- | calendar/pcs/cal.c | 17 |
4 files changed, 52 insertions, 1 deletions
diff --git a/calendar/pcs/cal-backend-file.c b/calendar/pcs/cal-backend-file.c index 70b56be130..4fd65904cc 100644 --- a/calendar/pcs/cal-backend-file.c +++ b/calendar/pcs/cal-backend-file.c @@ -91,6 +91,7 @@ static void cal_backend_file_init (CalBackendFile *cbfile); static void cal_backend_file_destroy (GtkObject *object); static const char *cal_backend_file_get_uri (CalBackend *backend); +static gboolean cal_backend_file_is_read_only (CalBackend *backend); static const char *cal_backend_file_get_email_address (CalBackend *backend); static CalBackendOpenStatus cal_backend_file_open (CalBackend *backend, const char *uristr, @@ -188,6 +189,7 @@ cal_backend_file_class_init (CalBackendFileClass *class) object_class->destroy = cal_backend_file_destroy; backend_class->get_uri = cal_backend_file_get_uri; + backend_class->is_read_only = cal_backend_file_is_read_only; backend_class->get_email_address = cal_backend_file_get_email_address; backend_class->open = cal_backend_file_open; backend_class->is_loaded = cal_backend_file_is_loaded; @@ -451,6 +453,14 @@ cal_backend_file_get_uri (CalBackend *backend) return (const char *) priv->uri; } +/* Is_read_only handler for the file backend */ +static gboolean +cal_backend_file_is_read_only (CalBackend *backend) +{ + /* we just return FALSE, since all calendars are read-write */ + return FALSE; +} + /* Get_email_address handler for the file backend */ static const char * cal_backend_file_get_email_address (CalBackend *backend) diff --git a/calendar/pcs/cal-backend.c b/calendar/pcs/cal-backend.c index 19f8261797..95bc26b093 100644 --- a/calendar/pcs/cal-backend.c +++ b/calendar/pcs/cal-backend.c @@ -144,6 +144,7 @@ cal_backend_class_init (CalBackendClass *class) class->get_email_address = NULL; class->open = NULL; class->is_loaded = NULL; + class->is_read_only = NULL; class->get_query = NULL; class->get_mode = NULL; class->set_mode = NULL; @@ -319,6 +320,28 @@ cal_backend_is_loaded (CalBackend *backend) } /** + * cal_backend_is_read_only + * @backend: A calendar backend. + * + * Queries whether a calendar backend is read only or not. + * + * Return value: TRUE if the calendar is read only, FALSE otherwise. + */ +gboolean +cal_backend_is_read_only (CalBackend *backend) +{ + gboolean result; + + g_return_val_if_fail (backend != NULL, FALSE); + g_return_val_if_fail (IS_CAL_BACKEND (backend), FALSE); + + g_assert (CLASS (backend)->is_read_only != NULL); + result = (* CLASS (backend)->is_read_only) (backend); + + return result; +} + +/** * cal_backend_get_query: * @backend: A calendar backend. * @ql: The query listener. diff --git a/calendar/pcs/cal-backend.h b/calendar/pcs/cal-backend.h index af11be14e8..8bc71ac91e 100644 --- a/calendar/pcs/cal-backend.h +++ b/calendar/pcs/cal-backend.h @@ -99,6 +99,7 @@ struct _CalBackendClass { gboolean only_if_exists); gboolean (* is_loaded) (CalBackend *backend); + gboolean (* is_read_only) (CalBackend *backend); Query *(* get_query) (CalBackend *backend, GNOME_Evolution_Calendar_QueryListener ql, @@ -157,6 +158,8 @@ CalBackendOpenStatus cal_backend_open (CalBackend *backend, const char *uristr, gboolean cal_backend_is_loaded (CalBackend *backend); +gboolean cal_backend_is_read_only (CalBackend *backend); + Query *cal_backend_get_query (CalBackend *backend, GNOME_Evolution_Calendar_QueryListener ql, const char *sexp); diff --git a/calendar/pcs/cal.c b/calendar/pcs/cal.c index 31580e62e4..60fcdc59ad 100644 --- a/calendar/pcs/cal.c +++ b/calendar/pcs/cal.c @@ -48,7 +48,7 @@ struct _CalPrivate { /* Cal::get_uri method */ static CORBA_char * impl_Cal_get_uri (PortableServer_Servant servant, - CORBA_Environment *ev) + CORBA_Environment *ev) { Cal *cal; CalPrivate *priv; @@ -64,6 +64,20 @@ impl_Cal_get_uri (PortableServer_Servant servant, return str_uri_copy; } +/* Cal::is_read_only method */ +static CORBA_boolean +impl_Cal_is_read_only (PortableServer_Servant servant, + CORBA_Environment *ev) +{ + Cal *cal; + CalPrivate *priv; + + cal = CAL (bonobo_object_from_servant (servant)); + priv = cal->priv; + + return cal_backend_is_read_only (priv->backend); +} + /* Cal::get_email_address method */ static CORBA_char * impl_Cal_get_email_address (PortableServer_Servant servant, @@ -731,6 +745,7 @@ cal_class_init (CalClass *klass) /* Epv methods */ epv->_get_uri = impl_Cal_get_uri; + epv->isReadOnly = impl_Cal_is_read_only; epv->getEmailAddress = impl_Cal_get_email_address; epv->setMode = impl_Cal_set_mode; epv->countObjects = impl_Cal_get_n_objects; |