/* GNOME calendar interfaces * * Copyright (C) 2000 Eskil Heyn Olsen * Copyright (C) 2000 Helix Code, Inc. * * Authors: Eskil Heyn Olsen * Federico Mena-Quintero */ #ifndef _GNOME_CALENDAR_IDL_ #define _GNOME_CALENDAR_IDL_ #include module GNOME { module Calendar { /* A calendar object (event/todo/journal/etc), represented as an * iCalendar string. */ typedef string CalObj; /* An unique identifier for a calendar object */ typedef string CalObjUID; interface Listener; /* Calendar client interface */ interface Cal : Bonobo::Unknown { /* A calendar is identified by its URI */ readonly attribute string uri; }; /* Listener for changes in a calendar */ interface Listener : Bonobo::Unknown { /* Return status when loading a calendar; we need better error reporting */ enum LoadStatus { SUCESSS, ERROR }; /* Called from a CalFactory when a calendar is initially loaded * or created. The listener must remember the cal object. */ void cal_loaded (in LoadStatus status, in Cal cal); /* Called from a Calendar when an object is added */ void obj_added (in CalObj calobj); /* Called from a Calendar when an object is removed */ void obj_removed (in CalObjUID uid); /* Called from a Calendar when an object is changed */ void obj_changed (in CalObj calobj); }; /* A calendar factory, can load and create calendars */ interface CalFactory : Bonobo::Unknown { exception NilListener {}; /* Load a calendar from an URI */ void load (in string uri, in Listener listener) raises (NilListener); /* Create a new calendar at the specified URI */ void create (in string uri, in Listener listener) raises (NilListener); }; }; }; #endif