aboutsummaryrefslogblamecommitdiffstats
path: root/calendar/idl/evolution-calendar.idl
blob: 6357a014d05dcbd785b2962262574678e6286d8a (plain) (tree)






























































                                                                               
/* GNOME calendar interfaces
 *
 * Copyright (C) 2000 Eskil Heyn Olsen
 * Copyright (C) 2000 Helix Code, Inc.
 *
 * Authors: Eskil Heyn Olsen <deity@eskil.dk>
 *          Federico Mena-Quintero <federico@helixcode.com>
 */

#ifndef _GNOME_CALENDAR_IDL_
#define _GNOME_CALENDAR_IDL_

#include <gnome-unknown.idl>

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;

    /* A calendar handle */
    interface Cal : Unknown {
        /* A calendar is identified by its URI */
        readonly attribute string uri;
    };

    /* Listener for changes in a calendar */
    interface Listener : Unknown {
        /* Called from a CalFactory when a calendar is initially loaded
         * or created.  The listener must remember the cal object.  
         */
        void cal_loaded (in Cal cal, in CalObj calobj);

        /* 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 : Unknown {
        /* Load a calendar from an URI */
        void load (in string uri, in Listener listener);

        /* Create a new calendar at the specified URI */
        void create (in string uri, in Listener listener);
    };
};

};

#endif