/* -*- Mode: IDL; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Interface for the Evolution components. * * Authors: * Ettore Perazzoli * * Copyright (C) 2003 Ximian, Inc. */ #include module GNOME { module Evolution { /* A type of item that the component can create when asked by the user, e.g. a mail message or an appointment. */ struct CreatableItemType { string id; string description; string menuDescription; string tooltip; char menuShortcut; string iconName; }; typedef sequence CreatableItemTypeList; interface Component : Bonobo::Unknown { exception Failed {}; exception UnknownType {}; /*** Upgrade path. ***/ boolean upgradeFromVersion (in short major, in short minor, in short revision); /*** Basic functionality. ***/ /* Create the controls for embedding in the shell. */ void createControls (out Bonobo::Control sidebar_control, out Bonobo::Control view_control, out Bonobo::Control statusbar_control) raises (Failed); /* Request the component to quit. The component will return TRUE if it agrees to quit and FALSE if it doesn't want to. */ boolean requestQuit (); /* Notify the component of whether the shell is currently running in interactive mode or not. (I.e. basically, whether there are any Evolution windows on the screen.) @new_view_xid is an X Window ID ("None" if @now_interactive is FALSE) */ void interactive (in boolean now_interactive, in unsigned long new_view_xid); /*** The following stuff is needed to build the "New" toolbar item as well as the "File -> New" submenu. ***/ /* List of creatable items. */ readonly attribute CreatableItemTypeList userCreatableItems; /* Pop up a new editing dialog for the item with the specified @item_type_name. */ void requestCreateItem (in string item_type_name) raises (UnknownType); /*** URI handling (e.g. for the command-line, "evolution mailto:foo@bar.org") ***/ void handleURI (in string uri); /*** Send/receive. ***/ void sendAndReceive (); }; }; };